From b6cc24aa6b7e180b947eea2475fe8732183775ec Mon Sep 17 00:00:00 2001 From: Dmitrii Date: Mon, 21 Nov 2022 13:20:51 +0100 Subject: [PATCH] Historical rules packages PoC --- .../detection-rules-composite/LICENSE.txt | 93 +++++++++ .../detection-rules-composite/changelog.yml | 6 + .../detection-rules-composite/docs/README.md | 84 ++++++++ .../img/sample-logo.svg | 1 + .../img/sample-screenshot.png | Bin 0 -> 18849 bytes .../000047bb-b27a-47ec-8b62-ef1a5d2c9e19.json | 1 + .../00140285-b827-4aee-aa09-8113f58a08f3.json | 1 + .../0022d47d-39c7-4f69-a232-4fe9dc7a3acd.json | 1 + .../0136b315-b566-482f-866c-1d8e2477ba16.json | 1 + .../015cca13-8832-49ac-a01b-a396114809f6.json | 1 + .../027ff9ea-85e7-42e3-99d2-bbb7069e02eb.json | 1 + .../02a23ee7-c8f8-4701-b99d-e9038ce313cb.json | 1 + .../02a4576a-7480-4284-9327-548a806b5e48.json | 1 + .../02ea4563-ec10-4974-b7de-12e65aa4f9b3.json | 1 + .../03024bd9-d23f-4ec1-8674-3cf1a21e130b.json | 1 + .../035889c4-2686-4583-a7df-67f89c292f2c.json | 1 + .../0415f22a-2336-45fa-ba07-618a5942e22c.json | 1 + .../041d4d41-9589-43e2-ba13-5680af75ebc2.json | 1 + .../04c5a96f-19c5-44fd-9571-a0b033f9086f.json | 1 + .../053a0387-f3b5-4ba5-8245-8002cca2bd08.json | 1 + .../0564fb9d-90b9-4234-a411-82a546dc1343.json | 1 + .../05b358de-aa6d-4f6c-89e6-78f74018b43b.json | 1 + .../05e5a668-7b51-4a67-93ab-e9af405c9ef3.json | 1 + .../0635c542-1b96-4335-9b47-126582d2c19a.json | 1 + .../06dceabf-adca-48af-ac79-ffdf4c3b1e9a.json | 1 + .../074464f9-f30d-4029-8c03-0ed237fffec7.json | 1 + .../07b1ef73-1fde-4a49-a34a-5dd40011b076.json | 1 + .../07b5f85a-240f-11ed-b3d9-f661ea17fbce.json | 1 + .../080bc66a-5d56-4d1f-8071-817671716db9.json | 1 + .../082e3f8c-6f80-485c-91eb-5b112cb79b28.json | 1 + .../083fa162-e790-4d85-9aeb-4fea04188adb.json | 1 + .../092b068f-84ac-485d-8a55-7dd9e006715f.json | 1 + .../09443c92-46b3-45a4-8f25-383b028b258d.json | 1 + .../09d028a5-dcde-409f-8ae0-557cef1b7082.json | 1 + .../0a97b20f-4144-49ea-be32-b540ecc445de.json | 1 + .../0b29cab4-dbbd-4a3f-9e8e-1287c7c11ae5.json | 1 + .../0b2f3da5-b5ec-47d1-908b-6ebb74814289.json | 1 + .../0c7ca5c2-728d-4ad9-b1c5-bbba83ecb1f4.json | 1 + .../0c9a14d9-d65d-486f-9b5b-91e4e6b22bd0.json | 1 + .../0ce6487d-8069-4888-9ddd-61b52490cebc.json | 1 + .../0d69150b-96f8-467c-a86d-a67a3378ce77.json | 1 + .../0d8ad79f-9025-45d8-80c1-4f0cd3c5e8e5.json | 1 + .../0e52157a-8e96-4a95-a6e3-5faae5081a74.json | 1 + .../0e5acaae-6a64-4bbc-adb8-27649c03f7e1.json | 1 + .../0e79980b-4250-4a50-a509-69294c14e84b.json | 1 + .../0f93cb9a-1931-48c2-8cd0-f173fd3e5283.json | 1 + .../0ff84c42-873d-41a2-a4ed-08d74d352d01.json | 1 + .../10a500bb-a28f-418e-ba29-ca4c8d1a9f2f.json | 1 + .../11013227-0301-4a8c-b150-4db924484475.json | 1 + .../1160dcdb-0a0a-4a79-91d8-9b84616edebd.json | 1 + .../1178ae09-5aff-460a-9f2f-455cd0ac4d8e.json | 1 + .../119c8877-8613-416d-a98a-96b6664ee73a.json | 1 + .../11dd9713-0ec6-4110-9707-32daae1ee68c.json | 1 + .../11ea6bec-ebde-4d71-a8e9-784948f8e3e9.json | 1 + .../12051077-0124-4394-9522-8f4f4db1d674.json | 1 + .../12a2f15d-597e-4334-88ff-38a02cb1330b.json | 1 + .../12cbf709-69e8-4055-94f9-24314385c27e.json | 1 + .../12f07955-1674-44f7-86b5-c35da0a6f41a.json | 1 + .../1327384f-00f3-44d5-9a8c-2373ba071e92.json | 1 + .../138c5dd5-838b-446e-b1ac-c995c7f8108a.json | 1 + .../141e9b3a-ff37-4756-989d-05d7cbf35b0e.json | 1 + .../143cb236-0956-4f42-a706-814bcaa0cf5a.json | 1 + .../14de811c-d60f-11ec-9fd7-f661ea17fbce.json | 1 + .../14ed1aa9-ebfd-4cf9-a463-0ac59ec55204.json | 1 + .../15a8ba77-1c13-4274-88fe-6bd14133861e.json | 1 + .../15c0b7a7-9c34-4869-b25b-fa6518414899.json | 1 + .../15dacaa0-5b90-466b-acab-63435a59701a.json | 1 + .../16280f1e-57e6-4242-aa21-bb4d16f13b2f.json | 1 + .../16904215-2c95-4ac8-bf5c-12354e047192.json | 1 + .../169f3a93-efc7-4df2-94d6-0d9438c310d1.json | 1 + .../16a52c14-7883-47af-8745-9357803f0d4c.json | 1 + .../16fac1a1-21ee-4ca6-b720-458e3855d046.json | 1 + .../1781d055-5c66-4adf-9c59-fc0fa58336a5.json | 1 + .../1781d055-5c66-4adf-9c71-fc0fa58338c7.json | 1 + .../1781d055-5c66-4adf-9d60-fc0fa58337b6.json | 1 + .../1781d055-5c66-4adf-9d82-fc0fa58449c8.json | 1 + .../1781d055-5c66-4adf-9e93-fc0fa69550c9.json | 1 + .../17c7f6a5-5bc9-4e1f-92bf-13632d24384d.json | 1 + .../17e68559-b274-4948-ad0b-f8415bb31126.json | 1 + .../184dfe52-2999-42d9-b9d1-d1ca54495a61.json | 1 + .../19de8096-e2b0-4bd8-80c9-34a820813fff.json | 1 + .../1a36cace-11a7-43a8-9a10-b497c5a02cd3.json | 1 + .../1a6075b0-7479-450e-8fe7-b8b8438ac570.json | 1 + .../1aa8fa52-44a7-4dae-b058-f3333b91c8d7.json | 1 + .../1aa9181a-492b-4c01-8b16-fa0735786b2b.json | 1 + .../1b21abcc-4d9f-4b08-a7f5-316f5f94b973.json | 1 + .../1ba5160d-f5a2-4624-b0ff-6a1dc55d2516.json | 1 + .../1c27fa22-7727-4dd3-81c0-de6da5555feb.json | 1 + .../1c6a8c7a-5cb6-4a82-ba27-d5a5b8a40a38.json | 1 + .../1c84dd64-7e6c-4bad-ac73-a5014ee37042.json | 1 + .../1c966416-60c1-436b-bfd0-e002fddbfd89.json | 1 + .../1cd01db9-be24-4bef-8e7c-e923f0ff78ab.json | 1 + .../1d276579-3380-4095-ad38-e596a01bc64f.json | 1 + .../1d72d014-e2ab-4707-b056-9b96abe7b511.json | 1 + .../1dcc51f6-ba26-49e7-9ef4-2655abb2361e.json | 1 + .../1defdd62-cd8d-426e-a246-81a37751bb2b.json | 1 + .../1e0b832e-957e-43ae-b319-db82d228c908.json | 1 + .../1e9fc667-9ff1-4b33-9f40-fefca8537eb0.json | 1 + .../1faec04b-d902-4f89-8aff-92cd9043c16f.json | 1 + .../1fe3b299-fbb5-4657-a937-1d746f2c711a.json | 1 + .../2003cdc8-8d83-4aa5-b132-1f9a8eb48514.json | 1 + .../201200f1-a99b-43fb-88ed-f65a45c4972c.json | 1 + .../203ab79b-239b-4aa5-8e54-fc50623ee8e4.json | 1 + .../2045567e-b0af-444a-8c0b-0b6e2dae9e13.json | 1 + .../20457e4f-d1de-4b92-ae69-142e27a4342a.json | 1 + .../208dbe77-01ed-4954-8d44-1e5751cb20de.json | 1 + .../220be143-5c67-4fdb-b6ce-dd6826d024fd.json | 1 + .../2215b8bd-1759-4ffa-8ab8-55c8e6b32e7f.json | 1 + .../22599847-5d13-48cb-8872-5796fee8692b.json | 1 + .../227dc608-e558-43d9-b521-150772250bae.json | 1 + .../231876e7-4d1f-4d63-a47c-47dd1acdc1cb.json | 1 + .../2326d1b2-9acf-4dee-bd21-867ea7378b4d.json | 1 + .../2339f03c-f53f-40fa-834b-40c5983fc41f.json | 1 + .../25224a80-5a4a-4b8a-991e-6ab390465c4f.json | 1 + .../2636aa6c-88b5-4337-9c31-8d0192a8ef45.json | 1 + .../265db8f5-fc73-4d0d-b434-6483b56372e2.json | 1 + .../26b01043-4f04-4d2f-882a-5a1d2e95751b.json | 1 + .../26edba02-6979-4bce-920a-70b080a7be81.json | 1 + .../26f68dba-ce29-497b-8e13-b4fde1db5a2d.json | 1 + .../272a6484-2663-46db-a532-ef734bf9a796.json | 1 + .../2772264c-6fb9-4d9d-9014-b416eed21254.json | 1 + .../2783d84f-5091-4d7d-9319-9fceda8fa71b.json | 1 + .../27f7c15a-91f8-4c3d-8b9e-1f99cc030a51.json | 1 + .../2820c9c2-bcd7-4d6e-9eba-faf3891ba450.json | 1 + .../2856446a-34e6-435b-9fb5-f8f040bfa7ed.json | 1 + .../2863ffeb-bf77-44dd-b7a5-93ef94b72036.json | 1 + .../29052c19-ff3e-42fd-8363-7be14d7c5469.json | 1 + .../290aca65-e94d-403b-ba0f-62f320e63f51.json | 1 + .../2917d495-59bd-4250-b395-c29409b76086.json | 1 + .../291a0de9-937a-4189-94c0-3e847c8b13e4.json | 1 + .../2abda169-416b-4bb3-9a6b-f8d239fd78ba.json | 1 + .../2bf78aa2-9c56-48de-b139-f169bf99cf86.json | 1 + .../2c17e5d7-08b9-43b2-b58a-0270d65ac85b.json | 1 + .../2c3c29a4-f170-42f8-a3d8-2ceebc18eb6a.json | 1 + .../2d8043ed-5bda-4caf-801c-c1feb7410504.json | 1 + .../2dd480be-1263-4d9c-8672-172928f6789a.json | 1 + .../2de10e77-c144-4e69-afb7-344e7127abd0.json | 1 + .../2de87d72-ee0c-43e2-b975-5f0b029ac600.json | 1 + .../2e1e835d-01e5-48ca-b9fc-7a61f7f11902.json | 1 + .../2e29e96a-b67c-455a-afe4-de6183431d0d.json | 1 + .../2e580225-2a58-48ef-938b-572933be06fe.json | 1 + .../2edc8076-291e-41e9-81e4-e3fcbc97ae5e.json | 1 + .../2f2f4939-0b34-40c2-a0a3-844eb7889f43.json | 1 + .../2f8a1226-5720-437d-9c20-e0029deb6194.json | 1 + .../2fba96c0-ade5-4bce-b92f-a5df2509da3f.json | 1 + .../2ffa1f1e-b6db-47fa-994b-1512743847eb.json | 1 + .../30562697-9859-4ae0-a8c5-dab45d664170.json | 1 + .../3115bd2c-0baa-4df0-80ea-45e474b5ef93.json | 1 + .../31295df3-277b-4c56-a1fb-84e31b4222a9.json | 1 + .../31b4c719-f2b4-41f6-a9bd-fce93c2eaf62.json | 1 + .../3202e172-01b1-4738-a932-d024c514ba72.json | 1 + .../323cb487-279d-4218-bcbd-a568efe930c6.json | 1 + .../32923416-763a-4531-bb35-f33b9232ecdb.json | 1 + .../32c5cf9c-2ef8-4e87-819e-5ccb7cd18b14.json | 1 + .../32f4675e-6c49-4ace-80f9-97c9259dca2e.json | 1 + .../333de828-8190-4cf5-8d7c-7575846f6fe0.json | 1 + .../33f306e8-417c-411b-965c-c2812d6d3f4d.json | 1 + .../34fde489-94b0-4500-a76f-b8a157cf9269.json | 1 + .../35330ba2-c859-4c98-8b7f-c19159ea0e58.json | 1 + .../3535c8bb-3bd5-40f4-ae32-b7cd589d5372.json | 1 + .../35df0dd8-092d-4a83-88c1-5151a804f31b.json | 1 + .../35f86980-1fb1-4dff-b311-3be941549c8d.json | 1 + .../3688577a-d196-11ec-90b0-f661ea17fbce.json | 1 + .../36a8e048-d888-4f61-a8b9-0f9e2e40f317.json | 1 + .../378f9024-8a0c-46a5-aa08-ce147ac73a4e.json | 1 + .../37994bca-0611-4500-ab67-5588afe73b77.json | 1 + .../37b211e8-4e2f-440f-86d8-06cc8f158cfa.json | 1 + .../37f638ea-909d-4f94-9248-edd21e4a9906.json | 1 + .../3805c3dc-f82c-4f8d-891e-63c24d3102b0.json | 1 + .../3838e0e3-1850-4850-a411-2e8c5ba40ba8.json | 1 + .../38948d29-3d5d-42e3-8aec-be832aaaf8eb.json | 1 + .../38e5acdd-5f20-4d99-8fe4-f0a1a592077f.json | 1 + .../39144f38-5284-4f8e-a2ae-e3fd628d90b0.json | 1 + .../397945f3-d39a-4e6f-8bcb-9656c2031438.json | 1 + .../3a59fc81-99d3-47ea-8cd6-d48d561fca20.json | 1 + .../3ad49c61-7adc-42c1-b788-732eda2f5abf.json | 1 + .../3ad77ed4-4dcf-4c51-8bfc-e3f7ce316b2f.json | 1 + .../3b382770-efbb-44f4-beed-f5e0a051b895.json | 1 + .../3b47900d-e793-49e8-968f-c90dc3526aa1.json | 1 + .../3bc6deaa-fbd4-433a-ae21-3e892f95624f.json | 1 + .../3c7e32e6-6104-46d9-a06e-da0f8b5795a0.json | 1 + .../3e002465-876f-4f04-b016-84ef48ce7e5d.json | 1 + .../3e3d15c6-1509-479a-b125-21718372157e.json | 1 + .../3ecbdc9e-e4f2-43fa-8cca-63802125e582.json | 1 + .../3ed032b2-45d8-4406-bc79-7ad1eabb2c72.json | 1 + .../3efee4f0-182a-40a8-a835-102c68a4175d.json | 1 + .../3f0e5410-a4bf-4e8c-bcfc-79d67a285c54.json | 1 + .../3f3f9fe2-d095-11ec-95dc-f661ea17fbce.json | 1 + .../403ef0d3-8259-40c9-a5b6-d48354712e49.json | 1 + .../416697ae-e468-4093-a93d-59661fa619ec.json | 1 + .../41824afb-d68c-4d0e-bfee-474dac1fa56e.json | 1 + .../41b638a1-8ab6-4f8e-86d9-466317ef2db5.json | 1 + .../42bf698b-4738-445b-8231-c834ddefd8a0.json | 1 + .../42eeee3d-947f-46d3-a14d-7036b962c266.json | 1 + .../4330272b-9724-4bc6-a3ca-f1532b81e5c2.json | 1 + .../43303fd4-4839-4e48-b2b2-803ab060758d.json | 1 + .../440e2db4-bc7f-4c96-a068-65b78da59bde.json | 1 + .../445a342e-03fb-42d0-8656-0367eb2dead5.json | 1 + .../44fc462c-1159-4fa8-b1b7-9b6296ab4f96.json | 1 + .../453f659e-0429-40b1-bfdb-b6957286e04b.json | 1 + .../45ac4800-840f-414c-b221-53dd36a5aaf7.json | 1 + .../45d273fb-1dca-457d-9855-bcb302180c21.json | 1 + .../4630d948-40d4-4cef-ac69-4002e29bc3db.json | 1 + .../4682fd2c-cfae-47ed-a543-9bed37657aa6.json | 1 + .../46f804f5-b289-43d6-a881-9387cf594f75.json | 1 + .../47e22836-4a16-4b35-beee-98f6c4ee9bf2.json | 1 + .../47f76567-d58a-4fed-b32b-21f571e28910.json | 1 + .../483c4daf-b0c6-49e0-adf3-0bfa93231d6b.json | 1 + .../48b6edfc-079d-4907-b43c-baffa243270d.json | 1 + .../48d7f54d-c29e-4430-93a9-9db6b5892270.json | 1 + .../48ec9452-e1fd-4513-a376-10a1a26d2c83.json | 1 + .../493834ca-f861-414c-8602-150d5505b777.json | 1 + .../495e5f2e-2480-11ed-bea8-f661ea17fbce.json | 1 + .../4a4e23cf-78a2-449c-bac3-701924c269d3.json | 1 + .../4b438734-3793-4fda-bd42-ceeada0be8f9.json | 1 + .../4bd1c1af-79d4-4d37-9efa-6e0240640242.json | 1 + .../4c59cff1-b78a-41b8-a9f1-4231984d1fb6.json | 1 + .../4d50a94f-2844-43fa-8395-6afbd5e1c5ef.json | 1 + .../4da13d6e-904f-4636-81d8-6ab14b4e6ae9.json | 1 + .../4de76544-f0e5-486a-8f84-eae0b6063cdc.json | 1 + .../4e85dc8a-3e41-40d8-bc28-91af7ac6cf60.json | 1 + .../4ed493fc-d637-4a36-80ff-ac84937e5461.json | 1 + .../4ed678a9-3a4f-41fb-9fea-f85a6e0a0dff.json | 1 + .../4edd3e1a-3aa0-499b-8147-4d2ea43b1613.json | 1 + .../4fe9d835-40e1-452d-8230-17c147cafad8.json | 1 + .../513f0ffd-b317-4b9c-9494-92ce861f22c7.json | 1 + .../514121ce-c7b6-474a-8237-68ff71672379.json | 1 + .../51859fa0-d86b-4214-bf48-ebb30ed91305.json | 1 + .../51ce96fb-9e52-4dad-b0ba-99b54440fc9a.json | 1 + .../523116c0-d89d-4d7c-82c2-39e6845a78ef.json | 1 + .../52376a86-ee86-4967-97ae-1a05f55816f0.json | 1 + .../52aaab7b-b51c-441a-89ce-4387b3aea886.json | 1 + .../52afbdc5-db15-485e-bc24-f5707f820c4b.json | 1 + .../530178da-92ea-43ce-94c2-8877a826783d.json | 1 + .../536997f7-ae73-447d-a12d-bff1e8f5f0a0.json | 1 + .../5370d4cd-2bb3-4d71-abf5-1e1d0ff5a2de.json | 1 + .../53a26770-9cbd-40c5-8b57-61d01a325e14.json | 1 + .../54902e45-3467-49a4-8abc-529f2c8cfb80.json | 1 + .../54c3d186-0461-4dc3-9b33-2dc5c7473936.json | 1 + .../55c2bf58-2a39-4c58-a384-c8b1978153c2.json | 1 + .../55d551c6-333b-4665-ab7e-5d14a59715ce.json | 1 + .../56557cde-d923-4b88-adee-c61b3f3b5dc3.json | 1 + .../565c2b44-7a21-4818-955f-8d4737967d2e.json | 1 + .../565d6ca5-75ba-4c82-9b13-add25353471c.json | 1 + .../5663b693-0dea-4f2e-8275-f1ae5ff2de8e.json | 1 + .../56f2e9b5-4803-4e44-a0a4-a52dc79d57fe.json | 1 + .../5700cb81-df44-46aa-a5d7-337798f53eb8.json | 1 + .../571afc56-5ed9-465d-a2a9-045f099f6e7e.json | 1 + .../573f6e7a-7acf-4bcd-ad42-c4969124d3c0.json | 1 + .../577ec21e-56fe-4065-91d8-45eb8224fe77.json | 1 + .../581add16-df76-42bb-af8e-c979bfb39a59.json | 1 + .../58aa72ca-d968-4f34-b9f7-bea51d75eb50.json | 1 + .../58ac2aa5-6718-427c-a845-5f3ac5af00ba.json | 1 + .../58bc134c-e8d2-4291-a552-b4b3e537c60b.json | 1 + .../58c6d58b-a0d3-412d-b3b8-0981a9400607.json | 1 + .../5930658c-2107-4afc-91af-e0e55b7f7184.json | 1 + .../594e0cbf-86cc-45aa-9ff7-ff27db27d3ed.json | 1 + .../59756272-1998-4b8c-be14-e287035c4d10.json | 1 + .../5a14d01d-7ac8-4545-914c-b687c2cf66b3.json | 1 + .../5ae4e6f8-d1bf-40fa-96ba-e29645e1e4dc.json | 1 + .../5aee924b-6ceb-4633-980e-1bde8cdb40c5.json | 1 + .../5b03c9fb-9945-4d2f-9568-fd690fee3fba.json | 1 + .../5bb4a95d-5a08-48eb-80db-4c3a63ec78a8.json | 1 + .../5beaebc1-cc13-4bfc-9949-776f9e0dc318.json | 1 + .../5c983105-4681-46c3-9890-0c66d05e776b.json | 1 + .../5cd55388-a19c-47c7-8ec4-f41656c2fded.json | 1 + .../5cd8e1f7-0050-4afc-b2df-904e40b2f5ae.json | 1 + .../5cf6397e-eb91-4f31-8951-9f0eaa755a31.json | 1 + .../5d0265bf-dea9-41a9-92ad-48a8dcd05080.json | 1 + .../5d1d6907-0747-4d5d-9b24-e4a18853dc0a.json | 1 + .../5d9f8cfc-0d03-443e-a167-2b0597ce0965.json | 1 + .../5e161522-2545-11ed-ac47-f661ea17fbce.json | 1 + .../5e552599-ddec-4e14-bad1-28aa42404388.json | 1 + .../60884af6-f553-4a6c-af13-300047455491.json | 1 + .../60b6b72f-0fbc-47e7-9895-9ba7627a8b50.json | 1 + .../60f3adec-1df9-4104-9c75-b97d9f078b25.json | 1 + .../610949a1-312f-4e04-bb55-3a79b8c95267.json | 1 + .../61ac3638-40a3-44b2-855a-985636ca985e.json | 1 + .../61d29caf-6c15-4d1e-9ccb-7ad12ccc0bc7.json | 1 + .../622ecb68-fa81-4601-90b5-f8cd661e4520.json | 1 + .../62a70f6f-3c37-43df-a556-f64fa475fba2.json | 1 + .../63c05204-339a-11ed-a261-0242ac120002.json | 1 + .../63c056a0-339a-11ed-a261-0242ac120002.json | 1 + .../63c057cc-339a-11ed-a261-0242ac120002.json | 1 + .../63e65ec3-43b1-45b0-8f2d-45b34291dc44.json | 1 + .../647fc812-7996-4795-8869-9c4ea595fe88.json | 1 + .../6482255d-f468-45ea-a5b3-d3a7de1331ae.json | 1 + .../65f9bccd-510b-40df-8263-334f03174fed.json | 1 + .../661545b4-1a90-4f45-85ce-2ebd7c6a15d0.json | 1 + .../665e7a4f-c58e-4fc6-bc83-87a7572670ac.json | 1 + .../66883649-f908-4a5b-a1e0-54090a1d3a32.json | 1 + .../66da12b1-ac83-40eb-814c-07ed1d82b7b9.json | 1 + .../670b3b5a-35e5-42db-bd36-6c5b9b4b7313.json | 1 + .../6731fbf2-8f28-49ed-9ab9-9a918ceb5a45.json | 1 + .../675239ea-c1bc-4467-a6d3-b9e2cc7f676d.json | 1 + .../676cff2b-450b-4cf1-8ed2-c0c58a4a2dd7.json | 1 + .../67f8443a-4ff3-4a70-916d-3cfa3ae9f02b.json | 1 + .../6839c821-011d-43bd-bd5b-acff00257226.json | 1 + .../684554fc-0777-47ce-8c9b-3d01f198d7f8.json | 1 + .../6885d2ae-e008-4762-b98a-e8e1cd3a81e9.json | 1 + .../68921d85-d0dc-48b3-865f-43291ca2c4f2.json | 1 + .../68994a6c-c7ba-4e82-b476-26a26877adf6.json | 1 + .../689b9d57-e4d5-4357-ad17-9c334609d79a.json | 1 + .../68a7a5a5-a2fc-4a76-ba9f-26849de881b4.json | 1 + .../68d56fdc-7ffa-4419-8e95-81641bd6f845.json | 1 + .../6951f15e-533c-4a60-8014-a3c3ab851a1b.json | 1 + .../699e9fdb-b77c-4c01-995c-1c15019b9c43.json | 1 + .../69c251fb-a5d6-4035-b5ec-40438bd829ff.json | 1 + .../69c420e8-6c9e-4d28-86c0-8a2be2d1e78c.json | 1 + .../6a8ab9cc-4023-4d17-b5df-1a3e16882ce7.json | 1 + .../6aace640-e631-4870-ba8e-5fdda09325db.json | 1 + .../6b84d470-9036-4cc0-a27c-6d90bbfe81ab.json | 1 + .../6bed021a-0afb-461c-acbe-ffdb9574d3f3.json | 1 + .../6cd1779c-560f-4b68-a8f1-11009b27fe63.json | 1 + .../6d448b96-c922-4adb-b51c-b767f1ea5b76.json | 1 + .../6e40d56f-5c0e-4ac6-aece-bee96645b172.json | 1 + .../6e9130a5-9be6-48e5-943a-9628bfc74b18.json | 1 + .../6e9b351e-a531-4bdc-b73e-7034d6eed7ff.json | 1 + .../6ea41894-66c3-4df7-ad6b-2c5074eb3df8.json | 1 + .../6ea55c81-e2ba-42f2-a134-bccf857ba922.json | 1 + .../6f435062-b7fc-4af9-acea-5b1ead65c5a5.json | 1 + .../7024e2a0-315d-4334-bb1a-441c593e16ab.json | 1 + .../7024e2a0-315d-4334-bb1a-552d604f27bc.json | 1 + .../70d12c9c-0dbd-4a1a-bc44-1467502c9cf6.json | 1 + .../70fa1af4-27fd-4f26-bd03-50b6af6b9e24.json | 1 + .../7164081a-3930-11ed-a261-0242ac120002.json | 1 + .../717f82c2-7741-4f9b-85b8-d06aeb853f4f.json | 1 + .../71bccb61-e19b-452f-b104-79a60e546a95.json | 1 + .../71c5cb27-eca5-4151-bb47-64bc3f883270.json | 1 + .../721999d0-7ab2-44bf-b328-6e63367b9b29.json | 1 + .../729aa18d-06a6-41c7-b175-b65b739b1181.json | 1 + .../7405ddf1-6c8e-41ce-818f-48bea6bcaed8.json | 1 + .../7453e19e-3dbf-4e4e-9ae0-33d6c6ed15e1.json | 1 + .../745b0119-0560-43ba-860a-7235dd8cee8d.json | 1 + .../746edc4c-c54c-49c6-97a1-651223819448.json | 1 + .../75ee75d8-c180-481c-ba88-ee50129a6aef.json | 1 + .../76152ca1-71d0-4003-9e37-0983e12832da.json | 1 + .../764c8437-a581-4537-8060-1fdb0e92c92d.json | 1 + .../764c9fcd-4c4c-41e6-a0c7-d6c46c2eff66.json | 1 + .../766d3f91-3f12-448c-b65f-20123e9e9e8c.json | 1 + .../76ddb638-abf7-42d5-be22-4a70b0bf7241.json | 1 + .../76fd43b7-3480-4dd9-8ad7-8bd36bfad92f.json | 1 + .../770e0c4d-b998-41e5-a62e-c7901fd7f470.json | 1 + .../774f5e28-7b75-4a58-b94e-41bf060fdd86.json | 1 + .../77a3c3df-8ec4-4da4-b758-878f551dee69.json | 1 + .../785a404b-75aa-4ffd-8be5-3334a5a544dd.json | 1 + .../7882cebf-6cf1-4de3-9662-213aa13e8b80.json | 1 + .../78d3d8d9-b476-451d-a9e0-7a5addd70670.json | 1 + .../792dd7a6-7e00-4a0a-8a9a-a7c24720b5ec.json | 1 + .../79f97b31-480e-4e63-a7f4-ede42bf2c6de.json | 1 + .../7b3da11a-60a2-412e-8aa7-011e1eb9ed47.json | 1 + .../7b8bfc26-81d2-435e-965c-d722ee397ef1.json | 1 + .../7ba58110-ae13-439b-8192-357b0fcfa9d7.json | 1 + .../7bcbb3ac-e533-41ad-a612-d6c3bf666aba.json | 1 + .../7caa8e60-2df0-11ed-b814-f661ea17fbce.json | 1 + .../7ceb2216-47dd-4e64-9433-cddc99727623.json | 1 + .../7f370d54-c0eb-4270-ac5a-9a6020585dc6.json | 1 + .../809b70d3-e2c3-455e-af1b-2626a5a1a276.json | 1 + .../80c52164-c82a-402c-9964-852533d58be1.json | 1 + .../818e23e6-2094-4f0e-8c01-22d30f3506c6.json | 1 + .../81fe9dc6-a2d7-4192-a2d8-eed98afc766a.json | 1 + .../81ff45f8-f8c2-4e28-992e-5a0e8d98e0fe.json | 1 + .../827f8d8f-4117-4ae4-b551-f56d54b9da6b.json | 1 + .../83a1931d-8136-46fc-b7b9-2db4f639e014.json | 1 + .../84da2554-e12a-11ec-b896-f661ea17fbcd.json | 1 + .../850d901a-2a3c-46c6-8b22-55398a01aad8.json | 1 + .../852c1f19-68e8-43a6-9dce-340771fe1be3.json | 1 + .../8623535c-1e17-44e1-aa97-7a0699c3037d.json | 1 + .../863cdf31-7fd3-41cf-a185-681237ea277b.json | 1 + .../867616ec-41e5-4edc-ada2-ab13ab45de8a.json | 1 + .../870aecc0-cea4-4110-af3f-e02e9b373655.json | 1 + .../871ea072-1b71-4def-b016-6278b505138d.json | 1 + .../87594192-4539-4bc4-8543-23bc3d5bd2b4.json | 1 + .../88671231-6626-4e1b-abb7-6e361a171fbb.json | 1 + .../88817a33-60d3-411f-ba79-7c905d865b2a.json | 1 + .../891cb88e-441a-4c3e-be2d-120d99fe7b0d.json | 1 + .../897dc6b5-b39f-432a-8d75-d3730d50c782.json | 1 + .../89f9a4b0-9f8f-4ee0-8823-c4751a6d6696.json | 1 + .../89fa6cb7-6b53-4de2-b604-648488841ab8.json | 1 + .../8a1b0278-0f9a-487d-96bd-d4833298e87a.json | 1 + .../8a1d4831-3ce6-4859-9891-28931fa6101d.json | 1 + .../8a5c1e5f-ad63-481e-b53a-ef959230f7f1.json | 1 + .../8acb7614-1d92-4359-bfcf-478b6d9de150.json | 1 + .../8b2b3a62-a598-4293-bc14-3d5fa22bb98f.json | 1 + .../8b4f0816-6a65-4630-86a6-c21c179c0d09.json | 1 + .../8b64d36a-1307-4b2e-a77b-a0027e4d27c8.json | 1 + .../8c1bdde8-4204-45c0-9e0c-c85ca3902488.json | 1 + .../8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45.json | 1 + .../8c81e506-6e82-4884-9b9a-75d3d252f967.json | 1 + .../8cb4f625-7743-4dfb-ae1b-ad92be9df7bd.json | 1 + .../8cb84371-d053-4f4f-bce0-c74990e28f28.json | 1 + .../8da41fc9-7735-4b24-9cc6-c78dfc9fc9c9.json | 1 + .../8ddab73b-3d15-4e5d-9413-47f05553c1d7.json | 1 + .../8f3e91c7-d791-4704-80a1-42c160d7aa27.json | 1 + .../8f919d4b-a5af-47ca-a594-6be59cd924a4.json | 1 + .../8fb75dda-c47a-4e34-8ecd-34facf7aad13.json | 1 + .../90169566-2260-4824-b8e4-8615c3b4ed52.json | 1 + .../9055ece6-2689-4224-a0e0-b04881e1f8ad.json | 1 + .../9092cd6c-650f-4fa3-8a8a-28256c7489c9.json | 1 + .../9180ffdf-f3d0-4db3-bf66-7a14bcff71b8.json | 1 + .../91d04cd4-47a9-4334-ab14-084abe274d49.json | 1 + .../91f02f01-969f-4167-8d77-07827ac4cee0.json | 1 + .../91f02f01-969f-4167-8f55-07827ac3acc9.json | 1 + .../91f02f01-969f-4167-8f66-07827ac3bdd9.json | 1 + .../92a6faf5-78ec-4e25-bea1-73bacc9b59d9.json | 1 + .../93075852-b0f5-4b8b-89c3-a226efae5726.json | 1 + .../931e25a5-0f5e-4ae0-ba0d-9e94eff7e3a4.json | 1 + .../9395fd2c-9947-4472-86ef-4aceb2f7e872.json | 1 + .../93b22c0a-06a0-4131-b830-b10d5e166ff4.json | 1 + .../93c1ce76-494c-4f01-8167-35edfb52f7b1.json | 1 + .../93e63c3e-4154-4fc6-9f86-b411e0987bbf.json | 1 + .../93f47b6f-5728-4004-ba00-625083b3dcb0.json | 1 + .../9510add4-3392-11ed-bd01-f661ea17fbce.json | 1 + .../954ee7c8-5437-49ae-b2d6-2960883898e9.json | 1 + .../959a7353-1129-4aa7-9084-30746b256a70.json | 1 + .../968ccab9-da51-4a87-9ce2-d3c9782fd759.json | 1 + .../96b9f4ea-0e8c-435b-8d53-2096e75fcac5.json | 1 + .../96e90768-c3b7-4df6-b5d9-6237f8bc36a8.json | 1 + .../97020e61-e591-4191-8a3b-2861a2b887cd.json | 1 + .../97314185-2568-4561-ae81-f3e480e5e695.json | 1 + .../97359fd8-757d-4b1d-9af1-ef29e4a8680e.json | 1 + .../979729e7-0c52-4c4c-b71e-88103304a79f.json | 1 + .../97a8e584-fd3b-421f-9b9d-9c9d9e57e9d7.json | 1 + .../97aba1ef-6034-4bd3-8c1a-1e0996b27afa.json | 1 + .../97fc44d3-8dae-4019-ae83-298c3015600f.json | 1 + .../9890ee61-d061-403d-9bf6-64934c51f638.json | 1 + .../98995807-5b09-4e37-8a54-5cae5dc932d7.json | 1 + .../98fd7407-0bd5-5817-cda0-3fcc33113a56.json | 1 + .../990838aa-a953-4f3e-b3cb-6ddf7584de9e.json | 1 + .../99239e7d-b0d4-46e3-8609-acafcf99f68c.json | 1 + .../9960432d-9b26-409f-972b-839a959e79e2.json | 1 + .../99dcf974-6587-4f65-9252-d866a3fdfd9c.json | 1 + .../9a1a2dae-0b5f-4c3d-8305-a268d404c306.json | 1 + .../9a3a3689-8ed1-4cdb-83fb-9506db54c61f.json | 1 + .../9a5b4e31-6cde-4295-9ff7-6be1b8567e1b.json | 1 + .../9aa0e1f6-52ce-42e1-abb3-09657cee2698.json | 1 + .../9b6813a1-daf1-457e-b0e6-0bb4e55b8a4c.json | 1 + .../9c260313-c811-4ec8-ab89-8f6530e0246c.json | 1 + .../9c865691-5599-447a-bac9-b3f2df5f9a9d.json | 1 + .../9ccf3ce0-0057-440a-91f5-870c6ad39093.json | 1 + .../9cf7a0ae-2404-11ed-ae7d-f661ea17fbce.json | 1 + .../9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae2.json | 1 + .../9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae3.json | 1 + .../9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae4.json | 1 + .../9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae5.json | 1 + .../9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae6.json | 1 + .../9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae9.json | 1 + .../9d19ece6-c20e-481a-90c5-ccca596537de.json | 1 + .../9d302377-d226-4e12-b54c-1906b5aec4f6.json | 1 + .../9f1c4ca3-44b5-481d-ba42-32dc215a2769.json | 1 + .../9f962927-1a4f-45f3-a57b-287f2c7029c1.json | 1 + .../9f9a2a82-93a8-4b1a-8778-1780895626d4.json | 1 + .../a00681e3-9ed6-447c-ab2c-be648821c622.json | 1 + .../a02cb68e-7c93-48d1-93b2-2c39023308eb.json | 1 + .../a10d3d9d-0f65-48f1-8b25-af175e2594f5.json | 1 + .../a13167f1-eec2-4015-9631-1fee60406dcf.json | 1 + .../a1329140-8de3-4445-9f87-908fb6d824f4.json | 1 + .../a16612dd-b30e-4d41-86a0-ebe70974ec00.json | 1 + .../a17bcc91-297b-459b-b5ce-bc7460d8f82a.json | 1 + .../a1a0375f-22c2-48c0-81a4-7c2d11cc6856.json | 1 + .../a22a09c2-2162-4df0-a356-9aacbeb56a04.json | 1 + .../a2795334-2499-11ed-9e1a-f661ea17fbce.json | 1 + .../a3ea12f3-0d4e-4667-8b44-4230c63f3c75.json | 1 + .../a4c7473a-5cb4-4bc1-9d06-e4a75adbc494.json | 1 + .../a5f0d057-d540-44f5-924d-c6a2ae92f045.json | 1 + .../a60326d7-dca7-4fb7-93eb-1ca03a1febbd.json | 1 + .../a605c51a-73ad-406d-bf3a-f24cc41d5c97.json | 1 + .../a624863f-a70d-417f-a7d2-7a404638d47f.json | 1 + .../a6bf4dd4-743e-4da8-8c03-3ebd753a6c90.json | 1 + .../a7ccae7b-9d2c-44b2-a061-98e5946971fa.json | 1 + .../a7e7bfa3-088e-4f13-b29e-3986e0e756b8.json | 1 + .../a87a4e42-1d82-44bd-b0bf-d9b7f91fb89e.json | 1 + .../a989fa1b-9a11-4dd8-a3e9-f0de9c6eb5f2.json | 1 + .../a99f82f5-8e77-4f8b-b3ce-10c0f6afbc73.json | 1 + .../a9b05c3b-b304-4bf9-970d-acdfaef2944c.json | 1 + .../a9cb3641-ff4b-4cdc-a063-b4b8d02a67c7.json | 1 + .../aa8007f0-d1df-49ef-8520-407857594827.json | 1 + .../aa895aea-b69c-4411-b110-8d7599634b30.json | 1 + .../aa9a274d-6b53-424d-ac5e-cb8ca4251650.json | 1 + .../ab75c24b-2502-43a0-bf7c-e60e662c811e.json | 1 + .../abae61a8-c560-4dbd-acca-1e1438bff36b.json | 1 + .../ac412404-57a5-476f-858f-4e8fbb4f48d8.json | 1 + .../ac5012b8-8da8-440b-aaaf-aedafdea2dff.json | 1 + .../ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1.json | 1 + .../ac96ceb8-4399-4191-af1d-4feeac1f1f46.json | 1 + .../acbc8bb9-2486-49a8-8779-45fb5f9a93ee.json | 1 + .../acd611f3-2b93-47b3-a0a3-7723bcc46f6d.json | 1 + .../ace1e989-a541-44df-93a8-a8b0591b63c0.json | 1 + .../acf738b5-b5b2-4acc-bad9-1e18ee234f40.json | 1 + .../ad0d2742-9a49-11ec-8d6b-acde48001122.json | 1 + .../ad3f2807-2b3e-47d7-b282-f84acbbe14be.json | 1 + .../ad84d445-b1ce-4377-82d9-7c633f28bf9a.json | 1 + .../ad88231f-e2ab-491c-8fc6-64746da26cfe.json | 1 + .../adb961e0-cb74-42a0-af9e-29fc41f88f5f.json | 1 + .../afcce5ad-65de-4ed2-8516-5e093d3ac99a.json | 1 + .../b0046934-486e-462f-9487-0d4cf9e429c6.json | 1 + .../b00bcd89-000c-4425-b94c-716ef67762f6.json | 1 + .../b240bfb8-26b7-4e5e-924e-218144a3fa71.json | 1 + .../b25a7df2-120a-4db2-bd3f-3e4b86b24bee.json | 1 + .../b2951150-658f-4a60-832f-a00d1e6c6745.json | 1 + .../b29ee2be-bf99-446c-ab1a-2dc0183394b8.json | 1 + .../b347b919-665f-4aac-b9e8-68369bf2340c.json | 1 + .../b41a13c6-ba45-4bab-a534-df53d0cfed6a.json | 1 + .../b4449455-f986-4b5a-82ed-e36b129331f7.json | 1 + .../b45ab1d2-712f-4f01-a751-df3826969807.json | 1 + .../b4bb1440-0fcb-4ed1-87e5-b06d58efc5e9.json | 1 + .../b5877334-677f-4fb9-86d5-a9721274223b.json | 1 + .../b5ea4bfe-a1b2-421f-9d47-22a75a6f2921.json | 1 + .../b627cd12-dac4-11ec-9582-f661ea17fbcd.json | 1 + .../b64b183e-1a76-422d-9179-7b389513e74d.json | 1 + .../b6dce542-2b75-4ffb-b7d6-38787298ba9d.json | 1 + .../b719a170-3bdb-4141-b0e3-13e3cf627bfe.json | 1 + .../b8075894-0b62-46e5-977c-31275da34419.json | 1 + .../b83a7e96-2eb3-4edf-8346-427b6858d3bd.json | 1 + .../b86afe07-0d98-4738-b15d-8d7465f95ff5.json | 1 + .../b90cdde7-7e0d-4359-8bf0-2c112ce2008a.json | 1 + .../b910f25a-2d44-47f2-a873-aabdc0d355e6.json | 1 + .../b946c2f7-df06-4c00-a5aa-1f6fbc7bb72c.json | 1 + .../b9554892-5e0e-424b-83a0-5aef95aa43bf.json | 1 + .../b9666521-4742-49ce-9ddc-b8e84c35acae.json | 1 + .../b9960fef-82c6-4816-befa-44745030e917.json | 1 + .../ba342eb2-583c-439f-b04d-1fdd7c1417cc.json | 1 + .../baa5d22c-5e1c-4f33-bfc9-efa73bb53022.json | 1 + .../bb4fe8d2-7ae2-475c-8b5d-55b449e4264f.json | 1 + .../bb9b13b2-1700-48a8-a750-b43b0a72ab69.json | 1 + .../bba1b212-b85c-41c6-9b28-be0e5cdfc9b1.json | 1 + .../bbd1a775-8267-41fa-9232-20e5582596ac.json | 1 + .../bc0c6f0d-dab0-47a3-b135-0925f0a333bc.json | 1 + .../bc0f2d83-32b8-4ae2-b0e6-6a45772e9331.json | 1 + .../bc1eeacf-2972-434f-b782-3a532b100d67.json | 1 + .../bc48bba7-4a23-4232-b551-eca3ca1e3f20.json | 1 + .../bc8ca7e0-92fd-4b7c-b11e-ee0266b8d9c9.json | 1 + .../bca7d28e-4a48-47b1-adb7-5074310e9a61.json | 1 + .../bd2c86a0-8b61-4457-ab38-96943984e889.json | 1 + .../bd7eefee-f671-494e-98df-f01daf9e5f17.json | 1 + .../bdcf646b-08d4-492c-870a-6c04e3700034.json | 1 + .../be8afaed-4bcd-4e0a-b5f9-5562003dde81.json | 1 + .../bf1073bf-ce26-4607-b405-ba1ed8e9e204.json | 1 + .../bfeaf89b-a2a7-48a3-817f-e41829dc61ee.json | 1 + .../c02c8b9f-5e1d-463c-a1b0-04edcdfe1a3d.json | 1 + .../c0429aa8-9974-42da-bfb6-53a0a515a145.json | 1 + .../c0be5f31-e180-48ed-aa08-96b36899d48f.json | 1 + .../c1812764-0788-470f-8e74-eb4a14d47573.json | 1 + .../c25e9c87-95e1-4368-bfab-9fd34cf867ec.json | 1 + .../c28c4d8c-f014-40ef-88b6-79a1d67cd499.json | 1 + .../c292fa52-4115-408a-b897-e14f684b3cb7.json | 1 + .../c2d90150-0133-451c-a783-533e736c12d7.json | 1 + .../c3167e1b-f73c-41be-b60b-87f4df707fe3.json | 1 + .../c3b915e0-22f3-4bf7-991d-b643513c722f.json | 1 + .../c3f5e1d8-910e-43b4-8d44-d748e498ca86.json | 1 + .../c4210e1c-64f2-4f48-b67e-b5a8ffe3aa14.json | 1 + .../c4818812-d44f-47be-aaef-4cfb2f9cc799.json | 1 + .../c57f8579-e2a5-4804-847f-f2732edc5156.json | 1 + .../c58c3081-2e1d-4497-8491-e73a45d1a6d6.json | 1 + .../c5c9f591-d111-4cf8-baec-c26a39bc31ef.json | 1 + .../c5ce48a6-7f57-4ee8-9313-3d0024caee10.json | 1 + .../c5dc3223-13a2-44a2-946c-e9dc0aa0449c.json | 1 + .../c5f81243-56e0-47f9-b5bb-55a5ed89ba57.json | 1 + .../c6453e73-90eb-4fe7-a98c-cde7bbfc504a.json | 1 + .../c749e367-a069-4a73-b1f2-43a3798153ad.json | 1 + .../c74fd275-ab2c-4d49-8890-e2943fa65c09.json | 1 + .../c7894234-7814-44c2-92a9-f7d851ea246a.json | 1 + .../c7908cac-337a-4f38-b50d-5eeb78bdb531.json | 1 + .../c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9.json | 1 + .../c7db5533-ca2a-41f6-a8b0-ee98abe0f573.json | 1 + .../c81cefcb-82b9-4408-a533-3c3df549e62d.json | 1 + .../c82b2bd8-d701-420c-ba43-f11a155b681a.json | 1 + .../c82c7d8f-fb9e-4874-a4bd-fd9e3f9becf1.json | 1 + .../c85eb82c-d2c8-485c-a36f-534f914b7663.json | 1 + .../c88d4bd0-5649-4c52-87ea-9be59dbfbcf2.json | 1 + .../c8b150f0-0164-475b-a75e-74b47800a9ff.json | 1 + .../c8cccb06-faf2-4cd5-886e-2c9636cfcb87.json | 1 + .../c9e38e64-3f4c-4bf3-ad48-0e61a60ea1fa.json | 1 + .../ca79768e-40e1-4e45-a097-0e5fbc876ac2.json | 1 + .../cac91072-d165-11ec-a764-f661ea17fbce.json | 1 + .../cad4500a-abd7-4ef3-b5d3-95524de7cfe1.json | 1 + .../cb71aa62-55c8-42f0-b0dd-afb0bb0b1f51.json | 1 + .../cc2fd2d0-ba3a-4939-b87f-2901764ed036.json | 1 + .../cc6a8a20-2df2-11ed-8378-f661ea17fbce.json | 1 + .../cc89312d-6f47-48e4-a87c-4977bd4633c3.json | 1 + .../cc92c835-da92-45c9-9f29-b4992ad621a0.json | 1 + .../ccc55af4-9882-4c67-87b4-449a7ae8079c.json | 1 + .../cd16fb10-0261-46e8-9932-a0336278cdbe.json | 1 + .../cd66a419-9b3f-4f57-8ff8-ac4cd2d5f530.json | 1 + .../cd66a5af-e34b-4bb0-8931-57d0a043f2ef.json | 1 + .../cd89602e-9db0-48e3-9391-ae3bf241acd8.json | 1 + .../cdbebdc1-dc97-43c6-a538-f26a20c0a911.json | 1 + .../ce64d965-6cb0-466d-b74f-8d2c76f47f05.json | 1 + .../cf53f532-9cc9-445a-9ae7-fced307ec53c.json | 1 + .../cf549724-c577-4fd6-8f9b-d1b8ec519ec0.json | 1 + .../cff92c41-2225-4763-b4ce-6f71e5bda5e6.json | 1 + .../d00f33e7-b57d-4023-9952-2db91b1767c4.json | 1 + .../d0e159cf-73e9-40d1-a9ed-077e3158a855.json | 1 + .../d117cbb4-7d56-41b4-b999-bdf8c25648a0.json | 1 + .../d22a85c6-d2ad-4cc4-bf7b-54787473669a.json | 1 + .../d31f183a-e5b1-451b-8534-ba62bca0b404.json | 1 + .../d331bbe2-6db4-4941-80a5-8270db72eb61.json | 1 + .../d33ea3bf-9a11-463e-bd46-f648f2a0f4b1.json | 1 + .../d461fac0-43e8-49e2-85ea-3a58fe120b4f.json | 1 + .../d48e1c13-4aca-4d1f-a7b1-a9161c0ad86f.json | 1 + .../d49cc73f-7a16-4def-89ce-9fc7127d7820.json | 1 + .../d4af3a06-1e0a-48ec-b96a-faf2309fae46.json | 1 + .../d4b73fa0-9d43-465e-b8bf-50230da6718b.json | 1 + .../d563aaba-2e72-462b-8658-3e5ea22db3a6.json | 1 + .../d5d86bf5-cf0c-4c06-b688-53fdc072fdfd.json | 1 + .../d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc.json | 1 + .../d624f0ae-3dd1-4856-9aad-ccfe4d4bfa17.json | 1 + .../d62b64a8-a7c9-43e5-aee3-15a725a794e7.json | 1 + .../d68e95ad-1c82-4074-a12a-125fe10ac8ba.json | 1 + .../d68eb1b5-5f1c-4b6d-9e63-5b6b145cd4aa.json | 1 + .../d703a5af-d5b0-43bd-8ddb-7a5d500b7da5.json | 1 + .../d72e33fc-6e91-42ff-ac8b-e573268c5a87.json | 1 + .../d743ff2a-203e-4a46-a3e3-40512cfe8fbb.json | 1 + .../d75991f2-b989-419d-b797-ac1e54ec2d61.json | 1 + .../d76b02ef-fc95-4001-9297-01cb7412232f.json | 1 + .../d79c4b2a-6134-4edd-86e6-564a92a933f9.json | 1 + .../d7d5c059-c19a-4a96-8ae3-41496ef3bcf9.json | 1 + .../d7e62693-aab9-4f66-a21a-3d79ecdd603d.json | 1 + .../d8fc1cca-93ed-43c1-bbb6-c0dd3eff2958.json | 1 + .../d99a037b-c8e2-47a5-97b9-170d076827c4.json | 1 + .../da87eee1-129c-4661-a7aa-57d0b9645fad.json | 1 + .../dafa3235-76dc-40e2-9f71-1773b96d24cf.json | 1 + .../db8c33a8-03cd-4988-9e2c-d0a4863adb13.json | 1 + .../dc9c1f74-dac3-48e3-b47f-eb79db358f57.json | 1 + .../dca28dee-c999-400f-b640-50a081cc0fd1.json | 1 + .../dd7f1524-643e-11ed-9e35-f661ea17fbcd.json | 1 + .../ddab1f5f-7089-44f5-9fda-de5b11322e77.json | 1 + .../de9bd7e0-49e9-4e92-a64d-53ade2e66af1.json | 1 + .../debff20a-46bc-4a4d-bae5-5cdd14222795.json | 1 + .../df197323-72a8-46a9-a08e-3f5b04a4a97a.json | 1 + .../df26fd74-1baa-4479-b42e-48da84642330.json | 1 + .../df6f62d9-caab-4b88-affa-044f4395a1e0.json | 1 + .../df7fda76-c92b-4943-bc68-04460a5ea5ba.json | 1 + .../e02bd3ea-72c6-4181-ac2b-0f83d17ad969.json | 1 + .../e052c845-48d0-4f46-8a13-7d0aba05df82.json | 1 + .../e08ccd49-0380-4b2b-8d71-8000377d6e49.json | 1 + .../e0f36de1-0342-453d-95a9-a068b257b053.json | 1 + .../e12c0318-99b1-44f2-830c-3a38a43207ca.json | 1 + .../e14c5fd7-fdd7-49c2-9e5b-ec49d817bc8d.json | 1 + .../e19e64ee-130e-4c07-961f-8a339f0b8362.json | 1 + .../e26aed74-c816-40d3-a810-48d6fbd8b2fd.json | 1 + .../e26f042e-c590-4e82-8e05-41e81bd822ad.json | 1 + .../e2a67480-3b79-403d-96e3-fdd2992c50ef.json | 1 + .../e2f9fdf5-8076-45ad-9427-41e0e03dc9c2.json | 1 + .../e2fb5b18-e33c-4270-851e-c3d675c9afcd.json | 1 + .../e3343ab9-4245-4715-b344-e11c56b0a47f.json | 1 + .../e3c27562-709a-42bd-82f2-3ed926cced19.json | 1 + .../e3c5d5cb-41d5-4206-805c-f30561eae3ac.json | 1 + .../e3cf38fa-d5b8-46cc-87f9-4a7513e4281d.json | 1 + .../e3e904b3-0a8e-4e68-86a8-977a163e21d3.json | 1 + .../e48236ca-b67a-4b4e-840c-fdc7782bc0c3.json | 1 + .../e4e31051-ee01-4307-a6ee-b21b186958f4.json | 1 + .../e514d8cd-ed15-4011-84e2-d15147e059f1.json | 1 + .../e555105c-ba6d-481f-82bb-9b633e7b4827.json | 1 + .../e6c1a552-7776-44ad-ae0f-8746cc07773c.json | 1 + .../e6c98d38-633d-4b3e-9387-42112cd5ac10.json | 1 + .../e6e3ecff-03dd-48ec-acbd-54a04de10c68.json | 1 + .../e6e8912f-283f-4d0d-8442-e0dcaf49944b.json | 1 + .../e7075e8d-a966-458e-a183-85cd331af255.json | 1 + .../e7125cea-9fe1-42a5-9a05-b0792cf86f5a.json | 1 + .../e7cd5982-17c8-4959-874c-633acde7d426.json | 1 + .../e8571d5f-bea1-46c2-9f56-998de2d3ed95.json | 1 + .../e86da94d-e54b-4fb5-b96c-cecff87e8787.json | 1 + .../e90ee3af-45fc-432e-a850-4a58cf14a457.json | 1 + .../e919611d-6b6f-493b-8314-7ed6ac2e413b.json | 1 + .../e94262f2-c1e9-4d3f-a907-aeab16712e1a.json | 1 + .../e9abe69b-1deb-4e19-ac4a-5d5ac00f72eb.json | 1 + .../e9ff9c1c-fe36-4d0d-b3fd-9e0bf4853a62.json | 1 + .../ea248a02-bc47-4043-8e94-2885b19b2636.json | 1 + .../eaa77d63-9679-4ce3-be25-3ba8b795e5fa.json | 1 + .../eb079c62-4481-4d6e-9643-3ca499df7aaa.json | 1 + .../eb610e70-f9e6-4949-82b9-f1c5bcd37c39.json | 1 + .../eb6a3790-d52d-11ec-8ce9-f661ea17fbce.json | 1 + .../eb9eb8ba-a983-41d9-9c93-a1c05112ca5e.json | 1 + .../ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6.json | 1 + .../ebf1adea-ccf2-4943-8b96-7ab11ca173a5.json | 1 + .../ebfe1448-7fac-4d59-acea-181bd89b1f7f.json | 1 + .../ec8efb0c-604d-42fa-ac46-ed1cfbc38f78.json | 1 + .../ecf2b32c-e221-4bd4-aa3b-c7d59b3bc01d.json | 1 + .../ed9ecd27-e3e6-4fd9-8586-7754803f7fc8.json | 1 + .../eda499b8-a073-4e35-9733-22ec71f57f3a.json | 1 + .../edb91186-1c7e-4db8-b53e-bfa33a1a0a8a.json | 1 + .../edf8ee23-5ea7-4123-ba19-56b41e424ae3.json | 1 + .../ee5300a7-7e31-4a72-a258-250abb8b3aa1.json | 1 + .../eea82229-b002-470e-a9e1-00be38b14d32.json | 1 + .../ef04a476-07ec-48fc-8f3d-5e1742de76d3.json | 1 + .../ef862985-3f13-4262-a686-5f357bbb9bc2.json | 1 + .../f036953a-4615-4707-a1ca-dc53bf69dcd5.json | 1 + .../f0493cb4-9b15-43a9-9359-68c23a7f2cf3.json | 1 + .../f06414a6-f2a4-466d-8eba-10f85e8abf71.json | 1 + .../f0b48bbc-549e-4bcf-8ee0-a7a72586c6a7.json | 1 + .../f0bc081a-2346-4744-a6a4-81514817e888.json | 1 + .../f0eb70e9-71e9-40cd-813f-bf8e8c812cb1.json | 1 + .../f24bcae1-8980-4b30-b5dd-f851b055c9e7.json | 1 + .../f28e2be4-6eca-4349-bdd9-381573730c22.json | 1 + .../f2c7b914-eda3-40c2-96ac-d23ef91776ca.json | 1 + .../f2f46686-6f3c-4724-bd7d-24e31c70f98f.json | 1 + .../f30f3443-4fbb-4c27-ab89-c3ad49d62315.json | 1 + .../f3475224-b179-4f78-8877-c2bd64c26b88.json | 1 + .../f37f3054-d40b-49ac-aa9b-a786c74c58b8.json | 1 + .../f44fa4b6-524c-4e87-8d9e-a32599e4fb7c.json | 1 + .../f494c678-3c33-43aa-b169-bb3d5198c41d.json | 1 + .../f545ff26-3c94-4fd0-bd33-3c7f95a3a0fc.json | 1 + .../f5fb4598-4f10-11ed-bdc3-0242ac120002.json | 1 + .../f63c8e3c-d396-404f-b2ea-0379d3942d73.json | 1 + .../f675872f-6d85-40a3-b502-c0d2ef101e92.json | 1 + .../f683dcdf-a018-4801-b066-193d4ae6c8e5.json | 1 + .../f766ffaf-9568-4909-b734-75d19b35cbf4.json | 1 + .../f772ec8a-e182-483c-91d2-72058f76a44c.json | 1 + .../f7c4dc5a-a58d-491d-9f14-9b66507121c0.json | 1 + .../f81ee52c-297e-46d9-9205-07e66931df26.json | 1 + .../f85ce03f-d8a8-4c83-acdc-5c8cd0592be7.json | 1 + .../f874315d-5188-4b4a-8521-d1c73093a7e4.json | 1 + .../f9590f47-6bd5-4a49-bd49-a2f886476fb9.json | 1 + .../f9790abf-bd0c-45f9-8b5f-d0b74015e029.json | 1 + .../f994964f-6fce-4d75-8e79-e16ccc412588.json | 1 + .../fa01341d-6662-426b-9d0c-6d81e33c8a9d.json | 1 + .../fb02b8d3-71ee-4af1-bacd-215d23f17efa.json | 1 + .../fbd44836-0d69-4004-a0b4-03c20370c435.json | 1 + .../fc7c0fa4-8f03-4b3e-8336-c5feab0be022.json | 1 + .../fd4a992d-6130-4802-9ff8-829b89ae801f.json | 1 + .../fd70c98a-c410-42dc-a2e3-761c71848acf.json | 1 + .../fd7a6052-58fa-4397-93c3-4795249ccfa2.json | 1 + .../fe794edd-487f-4a90-b285-3ee54f2af2d3.json | 1 + .../feeed87c-5e95-4339-aef1-47fd79bcfbe3.json | 1 + .../ff013cb4-274d-434a-96bb-fe15ddd3ae92.json | 1 + .../ff4dd44a-0ac6-44c4-8609-3f81bc820f02.json | 1 + .../ff9b571e-61d6-4f6c-9561-eb4cca3bafe1.json | 1 + .../detection-rules-composite/manifest.yml | 18 ++ .../detection-rules-flat/LICENSE.txt | 93 +++++++++ .../detection-rules-flat/changelog.yml | 6 + .../detection-rules-flat/docs/README.md | 84 ++++++++ .../detection-rules-flat/img/sample-logo.svg | 1 + .../img/sample-screenshot.png | Bin 0 -> 18849 bytes ...b-b27a-47ec-8b62-ef1a5d2c9e19:102.0.0.json | 1 + ...b-b27a-47ec-8b62-ef1a5d2c9e19:102.0.1.json | 1 + ...b-b27a-47ec-8b62-ef1a5d2c9e19:102.0.2.json | 1 + ...5-b827-4aee-aa09-8113f58a08f3:102.0.0.json | 1 + ...5-b827-4aee-aa09-8113f58a08f3:102.0.1.json | 1 + ...5-b827-4aee-aa09-8113f58a08f3:102.0.2.json | 1 + ...d-39c7-4f69-a232-4fe9dc7a3acd:102.0.0.json | 1 + ...d-39c7-4f69-a232-4fe9dc7a3acd:102.0.1.json | 1 + ...d-39c7-4f69-a232-4fe9dc7a3acd:102.0.2.json | 1 + ...5-b566-482f-866c-1d8e2477ba16:101.0.0.json | 1 + ...5-b566-482f-866c-1d8e2477ba16:101.0.1.json | 1 + ...5-b566-482f-866c-1d8e2477ba16:101.0.2.json | 1 + ...3-8832-49ac-a01b-a396114809f6:101.0.0.json | 1 + ...3-8832-49ac-a01b-a396114809f6:101.0.1.json | 1 + ...3-8832-49ac-a01b-a396114809f6:101.0.2.json | 1 + ...a-85e7-42e3-99d2-bbb7069e02eb:100.0.0.json | 1 + ...a-85e7-42e3-99d2-bbb7069e02eb:100.0.1.json | 1 + ...a-85e7-42e3-99d2-bbb7069e02eb:100.0.2.json | 1 + ...ee7-c8f8-4701-b99d-e9038ce313cb:1.0.0.json | 1 + ...ee7-c8f8-4701-b99d-e9038ce313cb:1.0.1.json | 1 + ...ee7-c8f8-4701-b99d-e9038ce313cb:1.0.2.json | 1 + ...a-7480-4284-9327-548a806b5e48:101.0.0.json | 1 + ...a-7480-4284-9327-548a806b5e48:101.0.1.json | 1 + ...a-7480-4284-9327-548a806b5e48:101.0.2.json | 1 + ...3-ec10-4974-b7de-12e65aa4f9b3:100.0.0.json | 1 + ...3-ec10-4974-b7de-12e65aa4f9b3:100.0.1.json | 1 + ...3-ec10-4974-b7de-12e65aa4f9b3:100.0.2.json | 1 + ...9-d23f-4ec1-8674-3cf1a21e130b:101.0.0.json | 1 + ...9-d23f-4ec1-8674-3cf1a21e130b:101.0.1.json | 1 + ...9-d23f-4ec1-8674-3cf1a21e130b:101.0.2.json | 1 + ...4-2686-4583-a7df-67f89c292f2c:102.0.0.json | 1 + ...4-2686-4583-a7df-67f89c292f2c:102.0.1.json | 1 + ...4-2686-4583-a7df-67f89c292f2c:102.0.2.json | 1 + ...a-2336-45fa-ba07-618a5942e22c:100.0.0.json | 1 + ...a-2336-45fa-ba07-618a5942e22c:100.0.1.json | 1 + ...a-2336-45fa-ba07-618a5942e22c:100.0.2.json | 1 + ...1-9589-43e2-ba13-5680af75ebc2:100.0.0.json | 1 + ...1-9589-43e2-ba13-5680af75ebc2:100.0.1.json | 1 + ...1-9589-43e2-ba13-5680af75ebc2:100.0.2.json | 1 + ...f-19c5-44fd-9571-a0b033f9086f:101.0.0.json | 1 + ...f-19c5-44fd-9571-a0b033f9086f:101.0.1.json | 1 + ...f-19c5-44fd-9571-a0b033f9086f:101.0.2.json | 1 + ...7-f3b5-4ba5-8245-8002cca2bd08:101.0.0.json | 1 + ...7-f3b5-4ba5-8245-8002cca2bd08:101.0.1.json | 1 + ...7-f3b5-4ba5-8245-8002cca2bd08:101.0.2.json | 1 + ...d-90b9-4234-a411-82a546dc1343:102.0.0.json | 1 + ...d-90b9-4234-a411-82a546dc1343:102.0.1.json | 1 + ...d-90b9-4234-a411-82a546dc1343:102.0.2.json | 1 + ...e-aa6d-4f6c-89e6-78f74018b43b:102.0.0.json | 1 + ...e-aa6d-4f6c-89e6-78f74018b43b:102.0.1.json | 1 + ...e-aa6d-4f6c-89e6-78f74018b43b:102.0.2.json | 1 + ...8-7b51-4a67-93ab-e9af405c9ef3:100.0.0.json | 1 + ...8-7b51-4a67-93ab-e9af405c9ef3:100.0.1.json | 1 + ...8-7b51-4a67-93ab-e9af405c9ef3:100.0.2.json | 1 + ...2-1b96-4335-9b47-126582d2c19a:102.0.0.json | 1 + ...2-1b96-4335-9b47-126582d2c19a:102.0.1.json | 1 + ...2-1b96-4335-9b47-126582d2c19a:102.0.2.json | 1 + ...f-adca-48af-ac79-ffdf4c3b1e9a:102.0.0.json | 1 + ...f-adca-48af-ac79-ffdf4c3b1e9a:102.0.1.json | 1 + ...f-adca-48af-ac79-ffdf4c3b1e9a:102.0.2.json | 1 + ...9-f30d-4029-8c03-0ed237fffec7:102.0.0.json | 1 + ...9-f30d-4029-8c03-0ed237fffec7:102.0.1.json | 1 + ...9-f30d-4029-8c03-0ed237fffec7:102.0.2.json | 1 + ...f73-1fde-4a49-a34a-5dd40011b076:1.0.0.json | 1 + ...f73-1fde-4a49-a34a-5dd40011b076:1.0.1.json | 1 + ...f73-1fde-4a49-a34a-5dd40011b076:1.0.2.json | 1 + ...85a-240f-11ed-b3d9-f661ea17fbce:2.0.0.json | 1 + ...85a-240f-11ed-b3d9-f661ea17fbce:2.0.1.json | 1 + ...85a-240f-11ed-b3d9-f661ea17fbce:2.0.2.json | 1 + ...a-5d56-4d1f-8071-817671716db9:100.0.0.json | 1 + ...a-5d56-4d1f-8071-817671716db9:100.0.1.json | 1 + ...a-5d56-4d1f-8071-817671716db9:100.0.2.json | 1 + ...c-6f80-485c-91eb-5b112cb79b28:100.0.0.json | 1 + ...c-6f80-485c-91eb-5b112cb79b28:100.0.1.json | 1 + ...c-6f80-485c-91eb-5b112cb79b28:100.0.2.json | 1 + ...2-e790-4d85-9aeb-4fea04188adb:100.0.0.json | 1 + ...2-e790-4d85-9aeb-4fea04188adb:100.0.1.json | 1 + ...2-e790-4d85-9aeb-4fea04188adb:100.0.2.json | 1 + ...f-84ac-485d-8a55-7dd9e006715f:100.0.0.json | 1 + ...f-84ac-485d-8a55-7dd9e006715f:100.0.1.json | 1 + ...f-84ac-485d-8a55-7dd9e006715f:100.0.2.json | 1 + ...2-46b3-45a4-8f25-383b028b258d:101.0.0.json | 1 + ...2-46b3-45a4-8f25-383b028b258d:101.0.1.json | 1 + ...2-46b3-45a4-8f25-383b028b258d:101.0.2.json | 1 + ...5-dcde-409f-8ae0-557cef1b7082:101.0.0.json | 1 + ...5-dcde-409f-8ae0-557cef1b7082:101.0.1.json | 1 + ...5-dcde-409f-8ae0-557cef1b7082:101.0.2.json | 1 + ...f-4144-49ea-be32-b540ecc445de:100.0.0.json | 1 + ...f-4144-49ea-be32-b540ecc445de:100.0.1.json | 1 + ...f-4144-49ea-be32-b540ecc445de:100.0.2.json | 1 + ...4-dbbd-4a3f-9e8e-1287c7c11ae5:100.0.0.json | 1 + ...4-dbbd-4a3f-9e8e-1287c7c11ae5:100.0.1.json | 1 + ...4-dbbd-4a3f-9e8e-1287c7c11ae5:100.0.2.json | 1 + ...5-b5ec-47d1-908b-6ebb74814289:102.0.0.json | 1 + ...5-b5ec-47d1-908b-6ebb74814289:102.0.1.json | 1 + ...5-b5ec-47d1-908b-6ebb74814289:102.0.2.json | 1 + ...2-728d-4ad9-b1c5-bbba83ecb1f4:102.0.0.json | 1 + ...2-728d-4ad9-b1c5-bbba83ecb1f4:102.0.1.json | 1 + ...2-728d-4ad9-b1c5-bbba83ecb1f4:102.0.2.json | 1 + ...9-d65d-486f-9b5b-91e4e6b22bd0:102.0.0.json | 1 + ...9-d65d-486f-9b5b-91e4e6b22bd0:102.0.1.json | 1 + ...9-d65d-486f-9b5b-91e4e6b22bd0:102.0.2.json | 1 + ...d-8069-4888-9ddd-61b52490cebc:101.0.0.json | 1 + ...d-8069-4888-9ddd-61b52490cebc:101.0.1.json | 1 + ...d-8069-4888-9ddd-61b52490cebc:101.0.2.json | 1 + ...b-96f8-467c-a86d-a67a3378ce77:100.0.0.json | 1 + ...b-96f8-467c-a86d-a67a3378ce77:100.0.1.json | 1 + ...b-96f8-467c-a86d-a67a3378ce77:100.0.2.json | 1 + ...f-9025-45d8-80c1-4f0cd3c5e8e5:102.0.0.json | 1 + ...f-9025-45d8-80c1-4f0cd3c5e8e5:102.0.1.json | 1 + ...f-9025-45d8-80c1-4f0cd3c5e8e5:102.0.2.json | 1 + ...a-8e96-4a95-a6e3-5faae5081a74:101.0.0.json | 1 + ...a-8e96-4a95-a6e3-5faae5081a74:101.0.1.json | 1 + ...a-8e96-4a95-a6e3-5faae5081a74:101.0.2.json | 1 + ...e-6a64-4bbc-adb8-27649c03f7e1:102.0.0.json | 1 + ...e-6a64-4bbc-adb8-27649c03f7e1:102.0.1.json | 1 + ...e-6a64-4bbc-adb8-27649c03f7e1:102.0.2.json | 1 + ...b-4250-4a50-a509-69294c14e84b:100.0.0.json | 1 + ...b-4250-4a50-a509-69294c14e84b:100.0.1.json | 1 + ...b-4250-4a50-a509-69294c14e84b:100.0.2.json | 1 + ...a-1931-48c2-8cd0-f173fd3e5283:101.0.0.json | 1 + ...a-1931-48c2-8cd0-f173fd3e5283:101.0.1.json | 1 + ...a-1931-48c2-8cd0-f173fd3e5283:101.0.2.json | 1 + ...2-873d-41a2-a4ed-08d74d352d01:100.0.0.json | 1 + ...2-873d-41a2-a4ed-08d74d352d01:100.0.1.json | 1 + ...2-873d-41a2-a4ed-08d74d352d01:100.0.2.json | 1 + ...b-a28f-418e-ba29-ca4c8d1a9f2f:100.0.0.json | 1 + ...b-a28f-418e-ba29-ca4c8d1a9f2f:100.0.1.json | 1 + ...b-a28f-418e-ba29-ca4c8d1a9f2f:100.0.2.json | 1 + ...7-0301-4a8c-b150-4db924484475:102.0.0.json | 1 + ...7-0301-4a8c-b150-4db924484475:102.0.1.json | 1 + ...7-0301-4a8c-b150-4db924484475:102.0.2.json | 1 + ...b-0a0a-4a79-91d8-9b84616edebd:101.0.0.json | 1 + ...b-0a0a-4a79-91d8-9b84616edebd:101.0.1.json | 1 + ...b-0a0a-4a79-91d8-9b84616edebd:101.0.2.json | 1 + ...9-5aff-460a-9f2f-455cd0ac4d8e:102.0.0.json | 1 + ...9-5aff-460a-9f2f-455cd0ac4d8e:102.0.1.json | 1 + ...9-5aff-460a-9f2f-455cd0ac4d8e:102.0.2.json | 1 + ...7-8613-416d-a98a-96b6664ee73a:101.0.0.json | 1 + ...7-8613-416d-a98a-96b6664ee73a:101.0.1.json | 1 + ...7-8613-416d-a98a-96b6664ee73a:101.0.2.json | 1 + ...713-0ec6-4110-9707-32daae1ee68c:1.0.0.json | 1 + ...713-0ec6-4110-9707-32daae1ee68c:1.0.1.json | 1 + ...713-0ec6-4110-9707-32daae1ee68c:1.0.2.json | 1 + ...c-ebde-4d71-a8e9-784948f8e3e9:102.0.0.json | 1 + ...c-ebde-4d71-a8e9-784948f8e3e9:102.0.1.json | 1 + ...c-ebde-4d71-a8e9-784948f8e3e9:102.0.2.json | 1 + ...7-0124-4394-9522-8f4f4db1d674:101.0.0.json | 1 + ...7-0124-4394-9522-8f4f4db1d674:101.0.1.json | 1 + ...7-0124-4394-9522-8f4f4db1d674:101.0.2.json | 1 + ...d-597e-4334-88ff-38a02cb1330b:200.0.0.json | 1 + ...d-597e-4334-88ff-38a02cb1330b:200.0.1.json | 1 + ...d-597e-4334-88ff-38a02cb1330b:200.0.2.json | 1 + ...9-69e8-4055-94f9-24314385c27e:200.0.0.json | 1 + ...9-69e8-4055-94f9-24314385c27e:200.0.1.json | 1 + ...9-69e8-4055-94f9-24314385c27e:200.0.2.json | 1 + ...5-1674-44f7-86b5-c35da0a6f41a:102.0.0.json | 1 + ...5-1674-44f7-86b5-c35da0a6f41a:102.0.1.json | 1 + ...5-1674-44f7-86b5-c35da0a6f41a:102.0.2.json | 1 + ...f-00f3-44d5-9a8c-2373ba071e92:100.0.0.json | 1 + ...f-00f3-44d5-9a8c-2373ba071e92:100.0.1.json | 1 + ...f-00f3-44d5-9a8c-2373ba071e92:100.0.2.json | 1 + ...5-838b-446e-b1ac-c995c7f8108a:100.0.0.json | 1 + ...5-838b-446e-b1ac-c995c7f8108a:100.0.1.json | 1 + ...5-838b-446e-b1ac-c995c7f8108a:100.0.2.json | 1 + ...a-ff37-4756-989d-05d7cbf35b0e:101.0.0.json | 1 + ...a-ff37-4756-989d-05d7cbf35b0e:101.0.1.json | 1 + ...a-ff37-4756-989d-05d7cbf35b0e:101.0.2.json | 1 + ...6-0956-4f42-a706-814bcaa0cf5a:100.0.0.json | 1 + ...6-0956-4f42-a706-814bcaa0cf5a:100.0.1.json | 1 + ...6-0956-4f42-a706-814bcaa0cf5a:100.0.2.json | 1 + ...c-d60f-11ec-9fd7-f661ea17fbce:200.0.0.json | 1 + ...c-d60f-11ec-9fd7-f661ea17fbce:200.0.1.json | 1 + ...c-d60f-11ec-9fd7-f661ea17fbce:200.0.2.json | 1 + ...9-ebfd-4cf9-a463-0ac59ec55204:100.0.0.json | 1 + ...9-ebfd-4cf9-a463-0ac59ec55204:100.0.1.json | 1 + ...9-ebfd-4cf9-a463-0ac59ec55204:100.0.2.json | 1 + ...7-1c13-4274-88fe-6bd14133861e:102.0.0.json | 1 + ...7-1c13-4274-88fe-6bd14133861e:102.0.1.json | 1 + ...7-1c13-4274-88fe-6bd14133861e:102.0.2.json | 1 + ...7-9c34-4869-b25b-fa6518414899:102.0.0.json | 1 + ...7-9c34-4869-b25b-fa6518414899:102.0.1.json | 1 + ...7-9c34-4869-b25b-fa6518414899:102.0.2.json | 1 + ...0-5b90-466b-acab-63435a59701a:100.0.0.json | 1 + ...0-5b90-466b-acab-63435a59701a:100.0.1.json | 1 + ...0-5b90-466b-acab-63435a59701a:100.0.2.json | 1 + ...e-57e6-4242-aa21-bb4d16f13b2f:101.0.0.json | 1 + ...e-57e6-4242-aa21-bb4d16f13b2f:101.0.1.json | 1 + ...e-57e6-4242-aa21-bb4d16f13b2f:101.0.2.json | 1 + ...5-2c95-4ac8-bf5c-12354e047192:100.0.0.json | 1 + ...5-2c95-4ac8-bf5c-12354e047192:100.0.1.json | 1 + ...5-2c95-4ac8-bf5c-12354e047192:100.0.2.json | 1 + ...3-efc7-4df2-94d6-0d9438c310d1:101.0.0.json | 1 + ...3-efc7-4df2-94d6-0d9438c310d1:101.0.1.json | 1 + ...3-efc7-4df2-94d6-0d9438c310d1:101.0.2.json | 1 + ...4-7883-47af-8745-9357803f0d4c:102.0.0.json | 1 + ...4-7883-47af-8745-9357803f0d4c:102.0.1.json | 1 + ...4-7883-47af-8745-9357803f0d4c:102.0.2.json | 1 + ...1-21ee-4ca6-b720-458e3855d046:102.0.0.json | 1 + ...1-21ee-4ca6-b720-458e3855d046:102.0.1.json | 1 + ...1-21ee-4ca6-b720-458e3855d046:102.0.2.json | 1 + ...5-5c66-4adf-9c59-fc0fa58336a5:100.0.0.json | 1 + ...5-5c66-4adf-9c59-fc0fa58336a5:100.0.1.json | 1 + ...5-5c66-4adf-9c59-fc0fa58336a5:100.0.2.json | 1 + ...5-5c66-4adf-9c71-fc0fa58338c7:100.0.0.json | 1 + ...5-5c66-4adf-9c71-fc0fa58338c7:100.0.1.json | 1 + ...5-5c66-4adf-9c71-fc0fa58338c7:100.0.2.json | 1 + ...5-5c66-4adf-9d60-fc0fa58337b6:101.0.0.json | 1 + ...5-5c66-4adf-9d60-fc0fa58337b6:101.0.1.json | 1 + ...5-5c66-4adf-9d60-fc0fa58337b6:101.0.2.json | 1 + ...5-5c66-4adf-9d82-fc0fa58449c8:100.0.0.json | 1 + ...5-5c66-4adf-9d82-fc0fa58449c8:100.0.1.json | 1 + ...5-5c66-4adf-9d82-fc0fa58449c8:100.0.2.json | 1 + ...5-5c66-4adf-9e93-fc0fa69550c9:100.0.0.json | 1 + ...5-5c66-4adf-9e93-fc0fa69550c9:100.0.1.json | 1 + ...5-5c66-4adf-9e93-fc0fa69550c9:100.0.2.json | 1 + ...5-5bc9-4e1f-92bf-13632d24384d:102.0.0.json | 1 + ...5-5bc9-4e1f-92bf-13632d24384d:102.0.1.json | 1 + ...5-5bc9-4e1f-92bf-13632d24384d:102.0.2.json | 1 + ...9-b274-4948-ad0b-f8415bb31126:100.0.0.json | 1 + ...9-b274-4948-ad0b-f8415bb31126:100.0.1.json | 1 + ...9-b274-4948-ad0b-f8415bb31126:100.0.2.json | 1 + ...2-2999-42d9-b9d1-d1ca54495a61:102.0.0.json | 1 + ...2-2999-42d9-b9d1-d1ca54495a61:102.0.1.json | 1 + ...2-2999-42d9-b9d1-d1ca54495a61:102.0.2.json | 1 + ...6-e2b0-4bd8-80c9-34a820813fff:102.0.0.json | 1 + ...6-e2b0-4bd8-80c9-34a820813fff:102.0.1.json | 1 + ...6-e2b0-4bd8-80c9-34a820813fff:102.0.2.json | 1 + ...e-11a7-43a8-9a10-b497c5a02cd3:101.0.0.json | 1 + ...e-11a7-43a8-9a10-b497c5a02cd3:101.0.1.json | 1 + ...e-11a7-43a8-9a10-b497c5a02cd3:101.0.2.json | 1 + ...0-7479-450e-8fe7-b8b8438ac570:102.0.0.json | 1 + ...0-7479-450e-8fe7-b8b8438ac570:102.0.1.json | 1 + ...0-7479-450e-8fe7-b8b8438ac570:102.0.2.json | 1 + ...2-44a7-4dae-b058-f3333b91c8d7:103.0.0.json | 1 + ...2-44a7-4dae-b058-f3333b91c8d7:103.0.1.json | 1 + ...2-44a7-4dae-b058-f3333b91c8d7:103.0.2.json | 1 + ...a-492b-4c01-8b16-fa0735786b2b:102.0.0.json | 1 + ...a-492b-4c01-8b16-fa0735786b2b:102.0.1.json | 1 + ...a-492b-4c01-8b16-fa0735786b2b:102.0.2.json | 1 + ...c-4d9f-4b08-a7f5-316f5f94b973:100.0.0.json | 1 + ...c-4d9f-4b08-a7f5-316f5f94b973:100.0.1.json | 1 + ...c-4d9f-4b08-a7f5-316f5f94b973:100.0.2.json | 1 + ...d-f5a2-4624-b0ff-6a1dc55d2516:101.0.0.json | 1 + ...d-f5a2-4624-b0ff-6a1dc55d2516:101.0.1.json | 1 + ...d-f5a2-4624-b0ff-6a1dc55d2516:101.0.2.json | 1 + ...a22-7727-4dd3-81c0-de6da5555feb:1.0.0.json | 1 + ...a22-7727-4dd3-81c0-de6da5555feb:1.0.1.json | 1 + ...a22-7727-4dd3-81c0-de6da5555feb:1.0.2.json | 1 + ...a-5cb6-4a82-ba27-d5a5b8a40a38:103.0.0.json | 1 + ...a-5cb6-4a82-ba27-d5a5b8a40a38:103.0.1.json | 1 + ...a-5cb6-4a82-ba27-d5a5b8a40a38:103.0.2.json | 1 + ...4-7e6c-4bad-ac73-a5014ee37042:101.0.0.json | 1 + ...4-7e6c-4bad-ac73-a5014ee37042:101.0.1.json | 1 + ...4-7e6c-4bad-ac73-a5014ee37042:101.0.2.json | 1 + ...6-60c1-436b-bfd0-e002fddbfd89:101.0.0.json | 1 + ...6-60c1-436b-bfd0-e002fddbfd89:101.0.1.json | 1 + ...6-60c1-436b-bfd0-e002fddbfd89:101.0.2.json | 1 + ...9-be24-4bef-8e7c-e923f0ff78ab:100.0.0.json | 1 + ...9-be24-4bef-8e7c-e923f0ff78ab:100.0.1.json | 1 + ...9-be24-4bef-8e7c-e923f0ff78ab:100.0.2.json | 1 + ...9-3380-4095-ad38-e596a01bc64f:102.0.0.json | 1 + ...9-3380-4095-ad38-e596a01bc64f:102.0.1.json | 1 + ...9-3380-4095-ad38-e596a01bc64f:102.0.2.json | 1 + ...4-e2ab-4707-b056-9b96abe7b511:102.0.0.json | 1 + ...4-e2ab-4707-b056-9b96abe7b511:102.0.1.json | 1 + ...4-e2ab-4707-b056-9b96abe7b511:102.0.2.json | 1 + ...6-ba26-49e7-9ef4-2655abb2361e:100.0.0.json | 1 + ...6-ba26-49e7-9ef4-2655abb2361e:100.0.1.json | 1 + ...6-ba26-49e7-9ef4-2655abb2361e:100.0.2.json | 1 + ...2-cd8d-426e-a246-81a37751bb2b:102.0.0.json | 1 + ...2-cd8d-426e-a246-81a37751bb2b:102.0.1.json | 1 + ...2-cd8d-426e-a246-81a37751bb2b:102.0.2.json | 1 + ...e-957e-43ae-b319-db82d228c908:101.0.0.json | 1 + ...e-957e-43ae-b319-db82d228c908:101.0.1.json | 1 + ...e-957e-43ae-b319-db82d228c908:101.0.2.json | 1 + ...7-9ff1-4b33-9f40-fefca8537eb0:100.0.0.json | 1 + ...7-9ff1-4b33-9f40-fefca8537eb0:100.0.1.json | 1 + ...7-9ff1-4b33-9f40-fefca8537eb0:100.0.2.json | 1 + ...b-d902-4f89-8aff-92cd9043c16f:100.0.0.json | 1 + ...b-d902-4f89-8aff-92cd9043c16f:100.0.1.json | 1 + ...b-d902-4f89-8aff-92cd9043c16f:100.0.2.json | 1 + ...9-fbb5-4657-a937-1d746f2c711a:101.0.0.json | 1 + ...9-fbb5-4657-a937-1d746f2c711a:101.0.1.json | 1 + ...9-fbb5-4657-a937-1d746f2c711a:101.0.2.json | 1 + ...8-8d83-4aa5-b132-1f9a8eb48514:100.0.0.json | 1 + ...8-8d83-4aa5-b132-1f9a8eb48514:100.0.1.json | 1 + ...8-8d83-4aa5-b132-1f9a8eb48514:100.0.2.json | 1 + ...1-a99b-43fb-88ed-f65a45c4972c:102.0.0.json | 1 + ...1-a99b-43fb-88ed-f65a45c4972c:102.0.1.json | 1 + ...1-a99b-43fb-88ed-f65a45c4972c:102.0.2.json | 1 + ...b-239b-4aa5-8e54-fc50623ee8e4:102.0.0.json | 1 + ...b-239b-4aa5-8e54-fc50623ee8e4:102.0.1.json | 1 + ...b-239b-4aa5-8e54-fc50623ee8e4:102.0.2.json | 1 + ...e-b0af-444a-8c0b-0b6e2dae9e13:101.0.0.json | 1 + ...e-b0af-444a-8c0b-0b6e2dae9e13:101.0.1.json | 1 + ...e-b0af-444a-8c0b-0b6e2dae9e13:101.0.2.json | 1 + ...f-d1de-4b92-ae69-142e27a4342a:100.0.0.json | 1 + ...f-d1de-4b92-ae69-142e27a4342a:100.0.1.json | 1 + ...f-d1de-4b92-ae69-142e27a4342a:100.0.2.json | 1 + ...7-01ed-4954-8d44-1e5751cb20de:102.0.0.json | 1 + ...7-01ed-4954-8d44-1e5751cb20de:102.0.1.json | 1 + ...7-01ed-4954-8d44-1e5751cb20de:102.0.2.json | 1 + ...143-5c67-4fdb-b6ce-dd6826d024fd:1.0.0.json | 1 + ...143-5c67-4fdb-b6ce-dd6826d024fd:1.0.1.json | 1 + ...143-5c67-4fdb-b6ce-dd6826d024fd:1.0.2.json | 1 + ...d-1759-4ffa-8ab8-55c8e6b32e7f:100.0.0.json | 1 + ...d-1759-4ffa-8ab8-55c8e6b32e7f:100.0.1.json | 1 + ...d-1759-4ffa-8ab8-55c8e6b32e7f:100.0.2.json | 1 + ...7-5d13-48cb-8872-5796fee8692b:102.0.0.json | 1 + ...7-5d13-48cb-8872-5796fee8692b:102.0.1.json | 1 + ...7-5d13-48cb-8872-5796fee8692b:102.0.2.json | 1 + ...8-e558-43d9-b521-150772250bae:101.0.0.json | 1 + ...8-e558-43d9-b521-150772250bae:101.0.1.json | 1 + ...8-e558-43d9-b521-150772250bae:101.0.2.json | 1 + ...7-4d1f-4d63-a47c-47dd1acdc1cb:102.0.0.json | 1 + ...7-4d1f-4d63-a47c-47dd1acdc1cb:102.0.1.json | 1 + ...7-4d1f-4d63-a47c-47dd1acdc1cb:102.0.2.json | 1 + ...2-9acf-4dee-bd21-867ea7378b4d:102.0.0.json | 1 + ...2-9acf-4dee-bd21-867ea7378b4d:102.0.1.json | 1 + ...2-9acf-4dee-bd21-867ea7378b4d:102.0.2.json | 1 + ...c-f53f-40fa-834b-40c5983fc41f:100.0.0.json | 1 + ...c-f53f-40fa-834b-40c5983fc41f:100.0.1.json | 1 + ...c-f53f-40fa-834b-40c5983fc41f:100.0.2.json | 1 + ...0-5a4a-4b8a-991e-6ab390465c4f:100.0.0.json | 1 + ...0-5a4a-4b8a-991e-6ab390465c4f:100.0.1.json | 1 + ...0-5a4a-4b8a-991e-6ab390465c4f:100.0.2.json | 1 + ...c-88b5-4337-9c31-8d0192a8ef45:101.0.0.json | 1 + ...c-88b5-4337-9c31-8d0192a8ef45:101.0.1.json | 1 + ...c-88b5-4337-9c31-8d0192a8ef45:101.0.2.json | 1 + ...5-fc73-4d0d-b434-6483b56372e2:102.0.0.json | 1 + ...5-fc73-4d0d-b434-6483b56372e2:102.0.1.json | 1 + ...5-fc73-4d0d-b434-6483b56372e2:102.0.2.json | 1 + ...043-4f04-4d2f-882a-5a1d2e95751b:1.0.0.json | 1 + ...043-4f04-4d2f-882a-5a1d2e95751b:1.0.1.json | 1 + ...043-4f04-4d2f-882a-5a1d2e95751b:1.0.2.json | 1 + ...2-6979-4bce-920a-70b080a7be81:103.0.0.json | 1 + ...2-6979-4bce-920a-70b080a7be81:103.0.1.json | 1 + ...2-6979-4bce-920a-70b080a7be81:103.0.2.json | 1 + ...a-ce29-497b-8e13-b4fde1db5a2d:101.0.0.json | 1 + ...a-ce29-497b-8e13-b4fde1db5a2d:101.0.1.json | 1 + ...a-ce29-497b-8e13-b4fde1db5a2d:101.0.2.json | 1 + ...4-2663-46db-a532-ef734bf9a796:101.0.0.json | 1 + ...4-2663-46db-a532-ef734bf9a796:101.0.1.json | 1 + ...4-2663-46db-a532-ef734bf9a796:101.0.2.json | 1 + ...c-6fb9-4d9d-9014-b416eed21254:100.0.0.json | 1 + ...c-6fb9-4d9d-9014-b416eed21254:100.0.1.json | 1 + ...c-6fb9-4d9d-9014-b416eed21254:100.0.2.json | 1 + ...f-5091-4d7d-9319-9fceda8fa71b:102.0.0.json | 1 + ...f-5091-4d7d-9319-9fceda8fa71b:102.0.1.json | 1 + ...f-5091-4d7d-9319-9fceda8fa71b:102.0.2.json | 1 + ...a-91f8-4c3d-8b9e-1f99cc030a51:101.0.0.json | 1 + ...a-91f8-4c3d-8b9e-1f99cc030a51:101.0.1.json | 1 + ...a-91f8-4c3d-8b9e-1f99cc030a51:101.0.2.json | 1 + ...2-bcd7-4d6e-9eba-faf3891ba450:101.0.0.json | 1 + ...2-bcd7-4d6e-9eba-faf3891ba450:101.0.1.json | 1 + ...2-bcd7-4d6e-9eba-faf3891ba450:101.0.2.json | 1 + ...a-34e6-435b-9fb5-f8f040bfa7ed:102.0.0.json | 1 + ...a-34e6-435b-9fb5-f8f040bfa7ed:102.0.1.json | 1 + ...a-34e6-435b-9fb5-f8f040bfa7ed:102.0.2.json | 1 + ...b-bf77-44dd-b7a5-93ef94b72036:100.0.0.json | 1 + ...b-bf77-44dd-b7a5-93ef94b72036:100.0.1.json | 1 + ...b-bf77-44dd-b7a5-93ef94b72036:100.0.2.json | 1 + ...9-ff3e-42fd-8363-7be14d7c5469:101.0.0.json | 1 + ...9-ff3e-42fd-8363-7be14d7c5469:101.0.1.json | 1 + ...9-ff3e-42fd-8363-7be14d7c5469:101.0.2.json | 1 + ...5-e94d-403b-ba0f-62f320e63f51:102.0.0.json | 1 + ...5-e94d-403b-ba0f-62f320e63f51:102.0.1.json | 1 + ...5-e94d-403b-ba0f-62f320e63f51:102.0.2.json | 1 + ...5-59bd-4250-b395-c29409b76086:102.0.0.json | 1 + ...5-59bd-4250-b395-c29409b76086:102.0.1.json | 1 + ...5-59bd-4250-b395-c29409b76086:102.0.2.json | 1 + ...9-937a-4189-94c0-3e847c8b13e4:102.0.0.json | 1 + ...9-937a-4189-94c0-3e847c8b13e4:102.0.1.json | 1 + ...9-937a-4189-94c0-3e847c8b13e4:102.0.2.json | 1 + ...9-416b-4bb3-9a6b-f8d239fd78ba:200.0.0.json | 1 + ...9-416b-4bb3-9a6b-f8d239fd78ba:200.0.1.json | 1 + ...9-416b-4bb3-9a6b-f8d239fd78ba:200.0.2.json | 1 + ...2-9c56-48de-b139-f169bf99cf86:102.0.0.json | 1 + ...2-9c56-48de-b139-f169bf99cf86:102.0.1.json | 1 + ...2-9c56-48de-b139-f169bf99cf86:102.0.2.json | 1 + ...7-08b9-43b2-b58a-0270d65ac85b:102.0.0.json | 1 + ...7-08b9-43b2-b58a-0270d65ac85b:102.0.1.json | 1 + ...7-08b9-43b2-b58a-0270d65ac85b:102.0.2.json | 1 + ...4-f170-42f8-a3d8-2ceebc18eb6a:102.0.0.json | 1 + ...4-f170-42f8-a3d8-2ceebc18eb6a:102.0.1.json | 1 + ...4-f170-42f8-a3d8-2ceebc18eb6a:102.0.2.json | 1 + ...d-5bda-4caf-801c-c1feb7410504:100.0.0.json | 1 + ...d-5bda-4caf-801c-c1feb7410504:100.0.1.json | 1 + ...d-5bda-4caf-801c-c1feb7410504:100.0.2.json | 1 + ...e-1263-4d9c-8672-172928f6789a:102.0.0.json | 1 + ...e-1263-4d9c-8672-172928f6789a:102.0.1.json | 1 + ...e-1263-4d9c-8672-172928f6789a:102.0.2.json | 1 + ...7-c144-4e69-afb7-344e7127abd0:101.0.0.json | 1 + ...7-c144-4e69-afb7-344e7127abd0:101.0.1.json | 1 + ...7-c144-4e69-afb7-344e7127abd0:101.0.2.json | 1 + ...d72-ee0c-43e2-b975-5f0b029ac600:1.0.0.json | 1 + ...d72-ee0c-43e2-b975-5f0b029ac600:1.0.1.json | 1 + ...d72-ee0c-43e2-b975-5f0b029ac600:1.0.2.json | 1 + ...d-01e5-48ca-b9fc-7a61f7f11902:102.0.0.json | 1 + ...d-01e5-48ca-b9fc-7a61f7f11902:102.0.1.json | 1 + ...d-01e5-48ca-b9fc-7a61f7f11902:102.0.2.json | 1 + ...a-b67c-455a-afe4-de6183431d0d:102.0.0.json | 1 + ...a-b67c-455a-afe4-de6183431d0d:102.0.1.json | 1 + ...a-b67c-455a-afe4-de6183431d0d:102.0.2.json | 1 + ...5-2a58-48ef-938b-572933be06fe:100.0.0.json | 1 + ...5-2a58-48ef-938b-572933be06fe:100.0.1.json | 1 + ...5-2a58-48ef-938b-572933be06fe:100.0.2.json | 1 + ...6-291e-41e9-81e4-e3fcbc97ae5e:102.0.0.json | 1 + ...6-291e-41e9-81e4-e3fcbc97ae5e:102.0.1.json | 1 + ...6-291e-41e9-81e4-e3fcbc97ae5e:102.0.2.json | 1 + ...9-0b34-40c2-a0a3-844eb7889f43:102.0.0.json | 1 + ...9-0b34-40c2-a0a3-844eb7889f43:102.0.1.json | 1 + ...9-0b34-40c2-a0a3-844eb7889f43:102.0.2.json | 1 + ...6-5720-437d-9c20-e0029deb6194:100.0.0.json | 1 + ...6-5720-437d-9c20-e0029deb6194:100.0.1.json | 1 + ...6-5720-437d-9c20-e0029deb6194:100.0.2.json | 1 + ...0-ade5-4bce-b92f-a5df2509da3f:102.0.0.json | 1 + ...0-ade5-4bce-b92f-a5df2509da3f:102.0.1.json | 1 + ...0-ade5-4bce-b92f-a5df2509da3f:102.0.2.json | 1 + ...e-b6db-47fa-994b-1512743847eb:102.0.0.json | 1 + ...e-b6db-47fa-994b-1512743847eb:102.0.1.json | 1 + ...e-b6db-47fa-994b-1512743847eb:102.0.2.json | 1 + ...7-9859-4ae0-a8c5-dab45d664170:102.0.0.json | 1 + ...7-9859-4ae0-a8c5-dab45d664170:102.0.1.json | 1 + ...7-9859-4ae0-a8c5-dab45d664170:102.0.2.json | 1 + ...c-0baa-4df0-80ea-45e474b5ef93:100.0.0.json | 1 + ...c-0baa-4df0-80ea-45e474b5ef93:100.0.1.json | 1 + ...c-0baa-4df0-80ea-45e474b5ef93:100.0.2.json | 1 + ...3-277b-4c56-a1fb-84e31b4222a9:100.0.0.json | 1 + ...3-277b-4c56-a1fb-84e31b4222a9:100.0.1.json | 1 + ...3-277b-4c56-a1fb-84e31b4222a9:100.0.2.json | 1 + ...9-f2b4-41f6-a9bd-fce93c2eaf62:102.0.0.json | 1 + ...9-f2b4-41f6-a9bd-fce93c2eaf62:102.0.1.json | 1 + ...9-f2b4-41f6-a9bd-fce93c2eaf62:102.0.2.json | 1 + ...2-01b1-4738-a932-d024c514ba72:102.0.0.json | 1 + ...2-01b1-4738-a932-d024c514ba72:102.0.1.json | 1 + ...2-01b1-4738-a932-d024c514ba72:102.0.2.json | 1 + ...7-279d-4218-bcbd-a568efe930c6:101.0.0.json | 1 + ...7-279d-4218-bcbd-a568efe930c6:101.0.1.json | 1 + ...7-279d-4218-bcbd-a568efe930c6:101.0.2.json | 1 + ...6-763a-4531-bb35-f33b9232ecdb:100.0.0.json | 1 + ...6-763a-4531-bb35-f33b9232ecdb:100.0.1.json | 1 + ...6-763a-4531-bb35-f33b9232ecdb:100.0.2.json | 1 + ...c-2ef8-4e87-819e-5ccb7cd18b14:101.0.0.json | 1 + ...c-2ef8-4e87-819e-5ccb7cd18b14:101.0.1.json | 1 + ...c-2ef8-4e87-819e-5ccb7cd18b14:101.0.2.json | 1 + ...e-6c49-4ace-80f9-97c9259dca2e:102.0.0.json | 1 + ...e-6c49-4ace-80f9-97c9259dca2e:102.0.1.json | 1 + ...e-6c49-4ace-80f9-97c9259dca2e:102.0.2.json | 1 + ...8-8190-4cf5-8d7c-7575846f6fe0:103.0.0.json | 1 + ...8-8190-4cf5-8d7c-7575846f6fe0:103.0.1.json | 1 + ...8-8190-4cf5-8d7c-7575846f6fe0:103.0.2.json | 1 + ...8-417c-411b-965c-c2812d6d3f4d:102.0.0.json | 1 + ...8-417c-411b-965c-c2812d6d3f4d:102.0.1.json | 1 + ...8-417c-411b-965c-c2812d6d3f4d:102.0.2.json | 1 + ...9-94b0-4500-a76f-b8a157cf9269:101.0.0.json | 1 + ...9-94b0-4500-a76f-b8a157cf9269:101.0.1.json | 1 + ...9-94b0-4500-a76f-b8a157cf9269:101.0.2.json | 1 + ...2-c859-4c98-8b7f-c19159ea0e58:100.0.0.json | 1 + ...2-c859-4c98-8b7f-c19159ea0e58:100.0.1.json | 1 + ...2-c859-4c98-8b7f-c19159ea0e58:100.0.2.json | 1 + ...b-3bd5-40f4-ae32-b7cd589d5372:102.0.0.json | 1 + ...b-3bd5-40f4-ae32-b7cd589d5372:102.0.1.json | 1 + ...b-3bd5-40f4-ae32-b7cd589d5372:102.0.2.json | 1 + ...8-092d-4a83-88c1-5151a804f31b:102.0.0.json | 1 + ...8-092d-4a83-88c1-5151a804f31b:102.0.1.json | 1 + ...8-092d-4a83-88c1-5151a804f31b:102.0.2.json | 1 + ...0-1fb1-4dff-b311-3be941549c8d:100.0.0.json | 1 + ...0-1fb1-4dff-b311-3be941549c8d:100.0.1.json | 1 + ...0-1fb1-4dff-b311-3be941549c8d:100.0.2.json | 1 + ...a-d196-11ec-90b0-f661ea17fbce:101.0.0.json | 1 + ...a-d196-11ec-90b0-f661ea17fbce:101.0.1.json | 1 + ...a-d196-11ec-90b0-f661ea17fbce:101.0.2.json | 1 + ...8-d888-4f61-a8b9-0f9e2e40f317:100.0.0.json | 1 + ...8-d888-4f61-a8b9-0f9e2e40f317:100.0.1.json | 1 + ...8-d888-4f61-a8b9-0f9e2e40f317:100.0.2.json | 1 + ...4-8a0c-46a5-aa08-ce147ac73a4e:101.0.0.json | 1 + ...4-8a0c-46a5-aa08-ce147ac73a4e:101.0.1.json | 1 + ...4-8a0c-46a5-aa08-ce147ac73a4e:101.0.2.json | 1 + ...a-0611-4500-ab67-5588afe73b77:103.0.0.json | 1 + ...a-0611-4500-ab67-5588afe73b77:103.0.1.json | 1 + ...a-0611-4500-ab67-5588afe73b77:103.0.2.json | 1 + ...8-4e2f-440f-86d8-06cc8f158cfa:103.0.0.json | 1 + ...8-4e2f-440f-86d8-06cc8f158cfa:103.0.1.json | 1 + ...8-4e2f-440f-86d8-06cc8f158cfa:103.0.2.json | 1 + ...a-909d-4f94-9248-edd21e4a9906:100.0.0.json | 1 + ...a-909d-4f94-9248-edd21e4a9906:100.0.1.json | 1 + ...a-909d-4f94-9248-edd21e4a9906:100.0.2.json | 1 + ...c-f82c-4f8d-891e-63c24d3102b0:102.0.0.json | 1 + ...c-f82c-4f8d-891e-63c24d3102b0:102.0.1.json | 1 + ...c-f82c-4f8d-891e-63c24d3102b0:102.0.2.json | 1 + ...3-1850-4850-a411-2e8c5ba40ba8:102.0.0.json | 1 + ...3-1850-4850-a411-2e8c5ba40ba8:102.0.1.json | 1 + ...3-1850-4850-a411-2e8c5ba40ba8:102.0.2.json | 1 + ...9-3d5d-42e3-8aec-be832aaaf8eb:100.0.0.json | 1 + ...9-3d5d-42e3-8aec-be832aaaf8eb:100.0.1.json | 1 + ...9-3d5d-42e3-8aec-be832aaaf8eb:100.0.2.json | 1 + ...d-5f20-4d99-8fe4-f0a1a592077f:101.0.0.json | 1 + ...d-5f20-4d99-8fe4-f0a1a592077f:101.0.1.json | 1 + ...d-5f20-4d99-8fe4-f0a1a592077f:101.0.2.json | 1 + ...8-5284-4f8e-a2ae-e3fd628d90b0:101.0.0.json | 1 + ...8-5284-4f8e-a2ae-e3fd628d90b0:101.0.1.json | 1 + ...8-5284-4f8e-a2ae-e3fd628d90b0:101.0.2.json | 1 + ...3-d39a-4e6f-8bcb-9656c2031438:100.0.0.json | 1 + ...3-d39a-4e6f-8bcb-9656c2031438:100.0.1.json | 1 + ...3-d39a-4e6f-8bcb-9656c2031438:100.0.2.json | 1 + ...1-99d3-47ea-8cd6-d48d561fca20:102.0.0.json | 1 + ...1-99d3-47ea-8cd6-d48d561fca20:102.0.1.json | 1 + ...1-99d3-47ea-8cd6-d48d561fca20:102.0.2.json | 1 + ...1-7adc-42c1-b788-732eda2f5abf:100.0.0.json | 1 + ...1-7adc-42c1-b788-732eda2f5abf:100.0.1.json | 1 + ...1-7adc-42c1-b788-732eda2f5abf:100.0.2.json | 1 + ...4-4dcf-4c51-8bfc-e3f7ce316b2f:101.0.0.json | 1 + ...4-4dcf-4c51-8bfc-e3f7ce316b2f:101.0.1.json | 1 + ...4-4dcf-4c51-8bfc-e3f7ce316b2f:101.0.2.json | 1 + ...0-efbb-44f4-beed-f5e0a051b895:100.0.0.json | 1 + ...0-efbb-44f4-beed-f5e0a051b895:100.0.1.json | 1 + ...0-efbb-44f4-beed-f5e0a051b895:100.0.2.json | 1 + ...d-e793-49e8-968f-c90dc3526aa1:102.0.0.json | 1 + ...d-e793-49e8-968f-c90dc3526aa1:102.0.1.json | 1 + ...d-e793-49e8-968f-c90dc3526aa1:102.0.2.json | 1 + ...a-fbd4-433a-ae21-3e892f95624f:102.0.0.json | 1 + ...a-fbd4-433a-ae21-3e892f95624f:102.0.1.json | 1 + ...a-fbd4-433a-ae21-3e892f95624f:102.0.2.json | 1 + ...6-6104-46d9-a06e-da0f8b5795a0:100.0.0.json | 1 + ...6-6104-46d9-a06e-da0f8b5795a0:100.0.1.json | 1 + ...6-6104-46d9-a06e-da0f8b5795a0:100.0.2.json | 1 + ...5-876f-4f04-b016-84ef48ce7e5d:103.0.0.json | 1 + ...5-876f-4f04-b016-84ef48ce7e5d:103.0.1.json | 1 + ...5-876f-4f04-b016-84ef48ce7e5d:103.0.2.json | 1 + ...6-1509-479a-b125-21718372157e:100.0.0.json | 1 + ...6-1509-479a-b125-21718372157e:100.0.1.json | 1 + ...6-1509-479a-b125-21718372157e:100.0.2.json | 1 + ...e-e4f2-43fa-8cca-63802125e582:101.0.0.json | 1 + ...e-e4f2-43fa-8cca-63802125e582:101.0.1.json | 1 + ...e-e4f2-43fa-8cca-63802125e582:101.0.2.json | 1 + ...2-45d8-4406-bc79-7ad1eabb2c72:102.0.0.json | 1 + ...2-45d8-4406-bc79-7ad1eabb2c72:102.0.1.json | 1 + ...2-45d8-4406-bc79-7ad1eabb2c72:102.0.2.json | 1 + ...0-182a-40a8-a835-102c68a4175d:101.0.0.json | 1 + ...0-182a-40a8-a835-102c68a4175d:101.0.1.json | 1 + ...0-182a-40a8-a835-102c68a4175d:101.0.2.json | 1 + ...0-a4bf-4e8c-bcfc-79d67a285c54:101.0.0.json | 1 + ...0-a4bf-4e8c-bcfc-79d67a285c54:101.0.1.json | 1 + ...0-a4bf-4e8c-bcfc-79d67a285c54:101.0.2.json | 1 + ...2-d095-11ec-95dc-f661ea17fbce:101.0.0.json | 1 + ...2-d095-11ec-95dc-f661ea17fbce:101.0.1.json | 1 + ...2-d095-11ec-95dc-f661ea17fbce:101.0.2.json | 1 + ...3-8259-40c9-a5b6-d48354712e49:100.0.0.json | 1 + ...3-8259-40c9-a5b6-d48354712e49:100.0.1.json | 1 + ...3-8259-40c9-a5b6-d48354712e49:100.0.2.json | 1 + ...e-e468-4093-a93d-59661fa619ec:102.0.0.json | 1 + ...e-e468-4093-a93d-59661fa619ec:102.0.1.json | 1 + ...e-e468-4093-a93d-59661fa619ec:102.0.2.json | 1 + ...b-d68c-4d0e-bfee-474dac1fa56e:100.0.0.json | 1 + ...b-d68c-4d0e-bfee-474dac1fa56e:100.0.1.json | 1 + ...b-d68c-4d0e-bfee-474dac1fa56e:100.0.2.json | 1 + ...1-8ab6-4f8e-86d9-466317ef2db5:100.0.0.json | 1 + ...1-8ab6-4f8e-86d9-466317ef2db5:100.0.1.json | 1 + ...1-8ab6-4f8e-86d9-466317ef2db5:100.0.2.json | 1 + ...b-4738-445b-8231-c834ddefd8a0:102.0.0.json | 1 + ...b-4738-445b-8231-c834ddefd8a0:102.0.1.json | 1 + ...b-4738-445b-8231-c834ddefd8a0:102.0.2.json | 1 + ...e3d-947f-46d3-a14d-7036b962c266:2.0.0.json | 1 + ...e3d-947f-46d3-a14d-7036b962c266:2.0.1.json | 1 + ...e3d-947f-46d3-a14d-7036b962c266:2.0.2.json | 1 + ...b-9724-4bc6-a3ca-f1532b81e5c2:100.0.0.json | 1 + ...b-9724-4bc6-a3ca-f1532b81e5c2:100.0.1.json | 1 + ...b-9724-4bc6-a3ca-f1532b81e5c2:100.0.2.json | 1 + ...4-4839-4e48-b2b2-803ab060758d:100.0.0.json | 1 + ...4-4839-4e48-b2b2-803ab060758d:100.0.1.json | 1 + ...4-4839-4e48-b2b2-803ab060758d:100.0.2.json | 1 + ...4-bc7f-4c96-a068-65b78da59bde:102.0.0.json | 1 + ...4-bc7f-4c96-a068-65b78da59bde:102.0.1.json | 1 + ...4-bc7f-4c96-a068-65b78da59bde:102.0.2.json | 1 + ...e-03fb-42d0-8656-0367eb2dead5:100.0.0.json | 1 + ...e-03fb-42d0-8656-0367eb2dead5:100.0.1.json | 1 + ...e-03fb-42d0-8656-0367eb2dead5:100.0.2.json | 1 + ...62c-1159-4fa8-b1b7-9b6296ab4f96:2.0.0.json | 1 + ...62c-1159-4fa8-b1b7-9b6296ab4f96:2.0.1.json | 1 + ...62c-1159-4fa8-b1b7-9b6296ab4f96:2.0.2.json | 1 + ...e-0429-40b1-bfdb-b6957286e04b:100.0.0.json | 1 + ...e-0429-40b1-bfdb-b6957286e04b:100.0.1.json | 1 + ...e-0429-40b1-bfdb-b6957286e04b:100.0.2.json | 1 + ...0-840f-414c-b221-53dd36a5aaf7:102.0.0.json | 1 + ...0-840f-414c-b221-53dd36a5aaf7:102.0.1.json | 1 + ...0-840f-414c-b221-53dd36a5aaf7:102.0.2.json | 1 + ...b-1dca-457d-9855-bcb302180c21:102.0.0.json | 1 + ...b-1dca-457d-9855-bcb302180c21:102.0.1.json | 1 + ...b-1dca-457d-9855-bcb302180c21:102.0.2.json | 1 + ...8-40d4-4cef-ac69-4002e29bc3db:102.0.0.json | 1 + ...8-40d4-4cef-ac69-4002e29bc3db:102.0.1.json | 1 + ...8-40d4-4cef-ac69-4002e29bc3db:102.0.2.json | 1 + ...c-cfae-47ed-a543-9bed37657aa6:102.0.0.json | 1 + ...c-cfae-47ed-a543-9bed37657aa6:102.0.1.json | 1 + ...c-cfae-47ed-a543-9bed37657aa6:102.0.2.json | 1 + ...5-b289-43d6-a881-9387cf594f75:100.0.0.json | 1 + ...5-b289-43d6-a881-9387cf594f75:100.0.1.json | 1 + ...5-b289-43d6-a881-9387cf594f75:100.0.2.json | 1 + ...6-4a16-4b35-beee-98f6c4ee9bf2:102.0.0.json | 1 + ...6-4a16-4b35-beee-98f6c4ee9bf2:102.0.1.json | 1 + ...6-4a16-4b35-beee-98f6c4ee9bf2:102.0.2.json | 1 + ...7-d58a-4fed-b32b-21f571e28910:100.0.0.json | 1 + ...7-d58a-4fed-b32b-21f571e28910:100.0.1.json | 1 + ...7-d58a-4fed-b32b-21f571e28910:100.0.2.json | 1 + ...f-b0c6-49e0-adf3-0bfa93231d6b:100.0.0.json | 1 + ...f-b0c6-49e0-adf3-0bfa93231d6b:100.0.1.json | 1 + ...f-b0c6-49e0-adf3-0bfa93231d6b:100.0.2.json | 1 + ...dfc-079d-4907-b43c-baffa243270d:1.0.0.json | 1 + ...dfc-079d-4907-b43c-baffa243270d:1.0.1.json | 1 + ...dfc-079d-4907-b43c-baffa243270d:1.0.2.json | 1 + ...d-c29e-4430-93a9-9db6b5892270:100.0.0.json | 1 + ...d-c29e-4430-93a9-9db6b5892270:100.0.1.json | 1 + ...d-c29e-4430-93a9-9db6b5892270:100.0.2.json | 1 + ...2-e1fd-4513-a376-10a1a26d2c83:100.0.0.json | 1 + ...2-e1fd-4513-a376-10a1a26d2c83:100.0.1.json | 1 + ...2-e1fd-4513-a376-10a1a26d2c83:100.0.2.json | 1 + ...a-f861-414c-8602-150d5505b777:100.0.0.json | 1 + ...a-f861-414c-8602-150d5505b777:100.0.1.json | 1 + ...a-f861-414c-8602-150d5505b777:100.0.2.json | 1 + ...f2e-2480-11ed-bea8-f661ea17fbce:2.0.0.json | 1 + ...f2e-2480-11ed-bea8-f661ea17fbce:2.0.1.json | 1 + ...f2e-2480-11ed-bea8-f661ea17fbce:2.0.2.json | 1 + ...f-78a2-449c-bac3-701924c269d3:100.0.0.json | 1 + ...f-78a2-449c-bac3-701924c269d3:100.0.1.json | 1 + ...f-78a2-449c-bac3-701924c269d3:100.0.2.json | 1 + ...4-3793-4fda-bd42-ceeada0be8f9:102.0.0.json | 1 + ...4-3793-4fda-bd42-ceeada0be8f9:102.0.1.json | 1 + ...4-3793-4fda-bd42-ceeada0be8f9:102.0.2.json | 1 + ...f-79d4-4d37-9efa-6e0240640242:101.0.0.json | 1 + ...f-79d4-4d37-9efa-6e0240640242:101.0.1.json | 1 + ...f-79d4-4d37-9efa-6e0240640242:101.0.2.json | 1 + ...ff1-b78a-41b8-a9f1-4231984d1fb6:2.0.0.json | 1 + ...ff1-b78a-41b8-a9f1-4231984d1fb6:2.0.1.json | 1 + ...ff1-b78a-41b8-a9f1-4231984d1fb6:2.0.2.json | 1 + ...f-2844-43fa-8395-6afbd5e1c5ef:101.0.0.json | 1 + ...f-2844-43fa-8395-6afbd5e1c5ef:101.0.1.json | 1 + ...f-2844-43fa-8395-6afbd5e1c5ef:101.0.2.json | 1 + ...e-904f-4636-81d8-6ab14b4e6ae9:100.0.0.json | 1 + ...e-904f-4636-81d8-6ab14b4e6ae9:100.0.1.json | 1 + ...e-904f-4636-81d8-6ab14b4e6ae9:100.0.2.json | 1 + ...4-f0e5-486a-8f84-eae0b6063cdc:102.0.0.json | 1 + ...4-f0e5-486a-8f84-eae0b6063cdc:102.0.1.json | 1 + ...4-f0e5-486a-8f84-eae0b6063cdc:102.0.2.json | 1 + ...c8a-3e41-40d8-bc28-91af7ac6cf60:1.0.0.json | 1 + ...c8a-3e41-40d8-bc28-91af7ac6cf60:1.0.1.json | 1 + ...c8a-3e41-40d8-bc28-91af7ac6cf60:1.0.2.json | 1 + ...c-d637-4a36-80ff-ac84937e5461:102.0.0.json | 1 + ...c-d637-4a36-80ff-ac84937e5461:102.0.1.json | 1 + ...c-d637-4a36-80ff-ac84937e5461:102.0.2.json | 1 + ...9-3a4f-41fb-9fea-f85a6e0a0dff:100.0.0.json | 1 + ...9-3a4f-41fb-9fea-f85a6e0a0dff:100.0.1.json | 1 + ...9-3a4f-41fb-9fea-f85a6e0a0dff:100.0.2.json | 1 + ...a-3aa0-499b-8147-4d2ea43b1613:102.0.0.json | 1 + ...a-3aa0-499b-8147-4d2ea43b1613:102.0.1.json | 1 + ...a-3aa0-499b-8147-4d2ea43b1613:102.0.2.json | 1 + ...5-40e1-452d-8230-17c147cafad8:101.0.0.json | 1 + ...5-40e1-452d-8230-17c147cafad8:101.0.1.json | 1 + ...5-40e1-452d-8230-17c147cafad8:101.0.2.json | 1 + ...d-b317-4b9c-9494-92ce861f22c7:100.0.0.json | 1 + ...d-b317-4b9c-9494-92ce861f22c7:100.0.1.json | 1 + ...d-b317-4b9c-9494-92ce861f22c7:100.0.2.json | 1 + ...e-c7b6-474a-8237-68ff71672379:101.0.0.json | 1 + ...e-c7b6-474a-8237-68ff71672379:101.0.1.json | 1 + ...e-c7b6-474a-8237-68ff71672379:101.0.2.json | 1 + ...0-d86b-4214-bf48-ebb30ed91305:102.0.0.json | 1 + ...0-d86b-4214-bf48-ebb30ed91305:102.0.1.json | 1 + ...0-d86b-4214-bf48-ebb30ed91305:102.0.2.json | 1 + ...b-9e52-4dad-b0ba-99b54440fc9a:101.0.0.json | 1 + ...b-9e52-4dad-b0ba-99b54440fc9a:101.0.1.json | 1 + ...b-9e52-4dad-b0ba-99b54440fc9a:101.0.2.json | 1 + ...0-d89d-4d7c-82c2-39e6845a78ef:101.0.0.json | 1 + ...0-d89d-4d7c-82c2-39e6845a78ef:101.0.1.json | 1 + ...0-d89d-4d7c-82c2-39e6845a78ef:101.0.2.json | 1 + ...6-ee86-4967-97ae-1a05f55816f0:100.0.0.json | 1 + ...6-ee86-4967-97ae-1a05f55816f0:100.0.1.json | 1 + ...6-ee86-4967-97ae-1a05f55816f0:100.0.2.json | 1 + ...b-b51c-441a-89ce-4387b3aea886:102.0.0.json | 1 + ...b-b51c-441a-89ce-4387b3aea886:102.0.1.json | 1 + ...b-b51c-441a-89ce-4387b3aea886:102.0.2.json | 1 + ...5-db15-485e-bc24-f5707f820c4b:100.0.0.json | 1 + ...5-db15-485e-bc24-f5707f820c4b:100.0.1.json | 1 + ...5-db15-485e-bc24-f5707f820c4b:100.0.2.json | 1 + ...a-92ea-43ce-94c2-8877a826783d:100.0.0.json | 1 + ...a-92ea-43ce-94c2-8877a826783d:100.0.1.json | 1 + ...a-92ea-43ce-94c2-8877a826783d:100.0.2.json | 1 + ...7-ae73-447d-a12d-bff1e8f5f0a0:101.0.0.json | 1 + ...7-ae73-447d-a12d-bff1e8f5f0a0:101.0.1.json | 1 + ...7-ae73-447d-a12d-bff1e8f5f0a0:101.0.2.json | 1 + ...d-2bb3-4d71-abf5-1e1d0ff5a2de:101.0.0.json | 1 + ...d-2bb3-4d71-abf5-1e1d0ff5a2de:101.0.1.json | 1 + ...d-2bb3-4d71-abf5-1e1d0ff5a2de:101.0.2.json | 1 + ...0-9cbd-40c5-8b57-61d01a325e14:102.0.0.json | 1 + ...0-9cbd-40c5-8b57-61d01a325e14:102.0.1.json | 1 + ...0-9cbd-40c5-8b57-61d01a325e14:102.0.2.json | 1 + ...5-3467-49a4-8abc-529f2c8cfb80:100.0.0.json | 1 + ...5-3467-49a4-8abc-529f2c8cfb80:100.0.1.json | 1 + ...5-3467-49a4-8abc-529f2c8cfb80:100.0.2.json | 1 + ...6-0461-4dc3-9b33-2dc5c7473936:101.0.0.json | 1 + ...6-0461-4dc3-9b33-2dc5c7473936:101.0.1.json | 1 + ...6-0461-4dc3-9b33-2dc5c7473936:101.0.2.json | 1 + ...8-2a39-4c58-a384-c8b1978153c2:100.0.0.json | 1 + ...8-2a39-4c58-a384-c8b1978153c2:100.0.1.json | 1 + ...8-2a39-4c58-a384-c8b1978153c2:100.0.2.json | 1 + ...6-333b-4665-ab7e-5d14a59715ce:102.0.0.json | 1 + ...6-333b-4665-ab7e-5d14a59715ce:102.0.1.json | 1 + ...6-333b-4665-ab7e-5d14a59715ce:102.0.2.json | 1 + ...e-d923-4b88-adee-c61b3f3b5dc3:100.0.0.json | 1 + ...e-d923-4b88-adee-c61b3f3b5dc3:100.0.1.json | 1 + ...e-d923-4b88-adee-c61b3f3b5dc3:100.0.2.json | 1 + ...4-7a21-4818-955f-8d4737967d2e:100.0.0.json | 1 + ...4-7a21-4818-955f-8d4737967d2e:100.0.1.json | 1 + ...4-7a21-4818-955f-8d4737967d2e:100.0.2.json | 1 + ...5-75ba-4c82-9b13-add25353471c:100.0.0.json | 1 + ...5-75ba-4c82-9b13-add25353471c:100.0.1.json | 1 + ...5-75ba-4c82-9b13-add25353471c:100.0.2.json | 1 + ...3-0dea-4f2e-8275-f1ae5ff2de8e:102.0.0.json | 1 + ...3-0dea-4f2e-8275-f1ae5ff2de8e:102.0.1.json | 1 + ...3-0dea-4f2e-8275-f1ae5ff2de8e:102.0.2.json | 1 + ...5-4803-4e44-a0a4-a52dc79d57fe:102.0.0.json | 1 + ...5-4803-4e44-a0a4-a52dc79d57fe:102.0.1.json | 1 + ...5-4803-4e44-a0a4-a52dc79d57fe:102.0.2.json | 1 + ...1-df44-46aa-a5d7-337798f53eb8:100.0.0.json | 1 + ...1-df44-46aa-a5d7-337798f53eb8:100.0.1.json | 1 + ...1-df44-46aa-a5d7-337798f53eb8:100.0.2.json | 1 + ...6-5ed9-465d-a2a9-045f099f6e7e:100.0.0.json | 1 + ...6-5ed9-465d-a2a9-045f099f6e7e:100.0.1.json | 1 + ...6-5ed9-465d-a2a9-045f099f6e7e:100.0.2.json | 1 + ...a-7acf-4bcd-ad42-c4969124d3c0:101.0.0.json | 1 + ...a-7acf-4bcd-ad42-c4969124d3c0:101.0.1.json | 1 + ...a-7acf-4bcd-ad42-c4969124d3c0:101.0.2.json | 1 + ...e-56fe-4065-91d8-45eb8224fe77:102.0.0.json | 1 + ...e-56fe-4065-91d8-45eb8224fe77:102.0.1.json | 1 + ...e-56fe-4065-91d8-45eb8224fe77:102.0.2.json | 1 + ...6-df76-42bb-af8e-c979bfb39a59:102.0.0.json | 1 + ...6-df76-42bb-af8e-c979bfb39a59:102.0.1.json | 1 + ...6-df76-42bb-af8e-c979bfb39a59:102.0.2.json | 1 + ...a-d968-4f34-b9f7-bea51d75eb50:102.0.0.json | 1 + ...a-d968-4f34-b9f7-bea51d75eb50:102.0.1.json | 1 + ...a-d968-4f34-b9f7-bea51d75eb50:102.0.2.json | 1 + ...5-6718-427c-a845-5f3ac5af00ba:100.0.0.json | 1 + ...5-6718-427c-a845-5f3ac5af00ba:100.0.1.json | 1 + ...5-6718-427c-a845-5f3ac5af00ba:100.0.2.json | 1 + ...c-e8d2-4291-a552-b4b3e537c60b:102.0.0.json | 1 + ...c-e8d2-4291-a552-b4b3e537c60b:102.0.1.json | 1 + ...c-e8d2-4291-a552-b4b3e537c60b:102.0.2.json | 1 + ...b-a0d3-412d-b3b8-0981a9400607:102.0.0.json | 1 + ...b-a0d3-412d-b3b8-0981a9400607:102.0.1.json | 1 + ...b-a0d3-412d-b3b8-0981a9400607:102.0.2.json | 1 + ...c-2107-4afc-91af-e0e55b7f7184:101.0.0.json | 1 + ...c-2107-4afc-91af-e0e55b7f7184:101.0.1.json | 1 + ...c-2107-4afc-91af-e0e55b7f7184:101.0.2.json | 1 + ...f-86cc-45aa-9ff7-ff27db27d3ed:101.0.0.json | 1 + ...f-86cc-45aa-9ff7-ff27db27d3ed:101.0.1.json | 1 + ...f-86cc-45aa-9ff7-ff27db27d3ed:101.0.2.json | 1 + ...2-1998-4b8c-be14-e287035c4d10:100.0.0.json | 1 + ...2-1998-4b8c-be14-e287035c4d10:100.0.1.json | 1 + ...2-1998-4b8c-be14-e287035c4d10:100.0.2.json | 1 + ...d-7ac8-4545-914c-b687c2cf66b3:101.0.0.json | 1 + ...d-7ac8-4545-914c-b687c2cf66b3:101.0.1.json | 1 + ...d-7ac8-4545-914c-b687c2cf66b3:101.0.2.json | 1 + ...8-d1bf-40fa-96ba-e29645e1e4dc:100.0.0.json | 1 + ...8-d1bf-40fa-96ba-e29645e1e4dc:100.0.1.json | 1 + ...8-d1bf-40fa-96ba-e29645e1e4dc:100.0.2.json | 1 + ...b-6ceb-4633-980e-1bde8cdb40c5:101.0.0.json | 1 + ...b-6ceb-4633-980e-1bde8cdb40c5:101.0.1.json | 1 + ...b-6ceb-4633-980e-1bde8cdb40c5:101.0.2.json | 1 + ...b-9945-4d2f-9568-fd690fee3fba:100.0.0.json | 1 + ...b-9945-4d2f-9568-fd690fee3fba:100.0.1.json | 1 + ...b-9945-4d2f-9568-fd690fee3fba:100.0.2.json | 1 + ...d-5a08-48eb-80db-4c3a63ec78a8:100.0.0.json | 1 + ...d-5a08-48eb-80db-4c3a63ec78a8:100.0.1.json | 1 + ...d-5a08-48eb-80db-4c3a63ec78a8:100.0.2.json | 1 + ...1-cc13-4bfc-9949-776f9e0dc318:101.0.0.json | 1 + ...1-cc13-4bfc-9949-776f9e0dc318:101.0.1.json | 1 + ...1-cc13-4bfc-9949-776f9e0dc318:101.0.2.json | 1 + ...5-4681-46c3-9890-0c66d05e776b:100.0.0.json | 1 + ...5-4681-46c3-9890-0c66d05e776b:100.0.1.json | 1 + ...5-4681-46c3-9890-0c66d05e776b:100.0.2.json | 1 + ...8-a19c-47c7-8ec4-f41656c2fded:100.0.0.json | 1 + ...8-a19c-47c7-8ec4-f41656c2fded:100.0.1.json | 1 + ...8-a19c-47c7-8ec4-f41656c2fded:100.0.2.json | 1 + ...7-0050-4afc-b2df-904e40b2f5ae:102.0.0.json | 1 + ...7-0050-4afc-b2df-904e40b2f5ae:102.0.1.json | 1 + ...7-0050-4afc-b2df-904e40b2f5ae:102.0.2.json | 1 + ...97e-eb91-4f31-8951-9f0eaa755a31:1.0.0.json | 1 + ...97e-eb91-4f31-8951-9f0eaa755a31:1.0.1.json | 1 + ...97e-eb91-4f31-8951-9f0eaa755a31:1.0.2.json | 1 + ...f-dea9-41a9-92ad-48a8dcd05080:100.0.0.json | 1 + ...f-dea9-41a9-92ad-48a8dcd05080:100.0.1.json | 1 + ...f-dea9-41a9-92ad-48a8dcd05080:100.0.2.json | 1 + ...7-0747-4d5d-9b24-e4a18853dc0a:100.0.0.json | 1 + ...7-0747-4d5d-9b24-e4a18853dc0a:100.0.1.json | 1 + ...7-0747-4d5d-9b24-e4a18853dc0a:100.0.2.json | 1 + ...c-0d03-443e-a167-2b0597ce0965:100.0.0.json | 1 + ...c-0d03-443e-a167-2b0597ce0965:100.0.1.json | 1 + ...c-0d03-443e-a167-2b0597ce0965:100.0.2.json | 1 + ...522-2545-11ed-ac47-f661ea17fbce:2.0.0.json | 1 + ...522-2545-11ed-ac47-f661ea17fbce:2.0.1.json | 1 + ...522-2545-11ed-ac47-f661ea17fbce:2.0.2.json | 1 + ...9-ddec-4e14-bad1-28aa42404388:101.0.0.json | 1 + ...9-ddec-4e14-bad1-28aa42404388:101.0.1.json | 1 + ...9-ddec-4e14-bad1-28aa42404388:101.0.2.json | 1 + ...6-f553-4a6c-af13-300047455491:101.0.0.json | 1 + ...6-f553-4a6c-af13-300047455491:101.0.1.json | 1 + ...6-f553-4a6c-af13-300047455491:101.0.2.json | 1 + ...f-0fbc-47e7-9895-9ba7627a8b50:103.0.0.json | 1 + ...f-0fbc-47e7-9895-9ba7627a8b50:103.0.1.json | 1 + ...f-0fbc-47e7-9895-9ba7627a8b50:103.0.2.json | 1 + ...c-1df9-4104-9c75-b97d9f078b25:101.0.0.json | 1 + ...c-1df9-4104-9c75-b97d9f078b25:101.0.1.json | 1 + ...c-1df9-4104-9c75-b97d9f078b25:101.0.2.json | 1 + ...1-312f-4e04-bb55-3a79b8c95267:102.0.0.json | 1 + ...1-312f-4e04-bb55-3a79b8c95267:102.0.1.json | 1 + ...1-312f-4e04-bb55-3a79b8c95267:102.0.2.json | 1 + ...8-40a3-44b2-855a-985636ca985e:102.0.0.json | 1 + ...8-40a3-44b2-855a-985636ca985e:102.0.1.json | 1 + ...8-40a3-44b2-855a-985636ca985e:102.0.2.json | 1 + ...f-6c15-4d1e-9ccb-7ad12ccc0bc7:102.0.0.json | 1 + ...f-6c15-4d1e-9ccb-7ad12ccc0bc7:102.0.1.json | 1 + ...f-6c15-4d1e-9ccb-7ad12ccc0bc7:102.0.2.json | 1 + ...8-fa81-4601-90b5-f8cd661e4520:101.0.0.json | 1 + ...8-fa81-4601-90b5-f8cd661e4520:101.0.1.json | 1 + ...8-fa81-4601-90b5-f8cd661e4520:101.0.2.json | 1 + ...f-3c37-43df-a556-f64fa475fba2:102.0.0.json | 1 + ...f-3c37-43df-a556-f64fa475fba2:102.0.1.json | 1 + ...f-3c37-43df-a556-f64fa475fba2:102.0.2.json | 1 + ...204-339a-11ed-a261-0242ac120002:3.0.0.json | 1 + ...204-339a-11ed-a261-0242ac120002:3.0.1.json | 1 + ...204-339a-11ed-a261-0242ac120002:3.0.2.json | 1 + ...6a0-339a-11ed-a261-0242ac120002:2.0.0.json | 1 + ...6a0-339a-11ed-a261-0242ac120002:2.0.1.json | 1 + ...6a0-339a-11ed-a261-0242ac120002:2.0.2.json | 1 + ...7cc-339a-11ed-a261-0242ac120002:2.0.0.json | 1 + ...7cc-339a-11ed-a261-0242ac120002:2.0.1.json | 1 + ...7cc-339a-11ed-a261-0242ac120002:2.0.2.json | 1 + ...3-43b1-45b0-8f2d-45b34291dc44:100.0.0.json | 1 + ...3-43b1-45b0-8f2d-45b34291dc44:100.0.1.json | 1 + ...3-43b1-45b0-8f2d-45b34291dc44:100.0.2.json | 1 + ...2-7996-4795-8869-9c4ea595fe88:100.0.0.json | 1 + ...2-7996-4795-8869-9c4ea595fe88:100.0.1.json | 1 + ...2-7996-4795-8869-9c4ea595fe88:100.0.2.json | 1 + ...d-f468-45ea-a5b3-d3a7de1331ae:100.0.0.json | 1 + ...d-f468-45ea-a5b3-d3a7de1331ae:100.0.1.json | 1 + ...d-f468-45ea-a5b3-d3a7de1331ae:100.0.2.json | 1 + ...d-510b-40df-8263-334f03174fed:200.0.0.json | 1 + ...d-510b-40df-8263-334f03174fed:200.0.1.json | 1 + ...d-510b-40df-8263-334f03174fed:200.0.2.json | 1 + ...4-1a90-4f45-85ce-2ebd7c6a15d0:100.0.0.json | 1 + ...4-1a90-4f45-85ce-2ebd7c6a15d0:100.0.1.json | 1 + ...4-1a90-4f45-85ce-2ebd7c6a15d0:100.0.2.json | 1 + ...f-c58e-4fc6-bc83-87a7572670ac:100.0.0.json | 1 + ...f-c58e-4fc6-bc83-87a7572670ac:100.0.1.json | 1 + ...f-c58e-4fc6-bc83-87a7572670ac:100.0.2.json | 1 + ...9-f908-4a5b-a1e0-54090a1d3a32:102.0.0.json | 1 + ...9-f908-4a5b-a1e0-54090a1d3a32:102.0.1.json | 1 + ...9-f908-4a5b-a1e0-54090a1d3a32:102.0.2.json | 1 + ...1-ac83-40eb-814c-07ed1d82b7b9:100.0.0.json | 1 + ...1-ac83-40eb-814c-07ed1d82b7b9:100.0.1.json | 1 + ...1-ac83-40eb-814c-07ed1d82b7b9:100.0.2.json | 1 + ...b5a-35e5-42db-bd36-6c5b9b4b7313:1.0.0.json | 1 + ...b5a-35e5-42db-bd36-6c5b9b4b7313:1.0.1.json | 1 + ...b5a-35e5-42db-bd36-6c5b9b4b7313:1.0.2.json | 1 + ...2-8f28-49ed-9ab9-9a918ceb5a45:102.0.0.json | 1 + ...2-8f28-49ed-9ab9-9a918ceb5a45:102.0.1.json | 1 + ...2-8f28-49ed-9ab9-9a918ceb5a45:102.0.2.json | 1 + ...a-c1bc-4467-a6d3-b9e2cc7f676d:101.0.0.json | 1 + ...a-c1bc-4467-a6d3-b9e2cc7f676d:101.0.1.json | 1 + ...a-c1bc-4467-a6d3-b9e2cc7f676d:101.0.2.json | 1 + ...b-450b-4cf1-8ed2-c0c58a4a2dd7:102.0.0.json | 1 + ...b-450b-4cf1-8ed2-c0c58a4a2dd7:102.0.1.json | 1 + ...b-450b-4cf1-8ed2-c0c58a4a2dd7:102.0.2.json | 1 + ...a-4ff3-4a70-916d-3cfa3ae9f02b:102.0.0.json | 1 + ...a-4ff3-4a70-916d-3cfa3ae9f02b:102.0.1.json | 1 + ...a-4ff3-4a70-916d-3cfa3ae9f02b:102.0.2.json | 1 + ...1-011d-43bd-bd5b-acff00257226:100.0.0.json | 1 + ...1-011d-43bd-bd5b-acff00257226:100.0.1.json | 1 + ...1-011d-43bd-bd5b-acff00257226:100.0.2.json | 1 + ...c-0777-47ce-8c9b-3d01f198d7f8:101.0.0.json | 1 + ...c-0777-47ce-8c9b-3d01f198d7f8:101.0.1.json | 1 + ...c-0777-47ce-8c9b-3d01f198d7f8:101.0.2.json | 1 + ...e-e008-4762-b98a-e8e1cd3a81e9:102.0.0.json | 1 + ...e-e008-4762-b98a-e8e1cd3a81e9:102.0.1.json | 1 + ...e-e008-4762-b98a-e8e1cd3a81e9:102.0.2.json | 1 + ...5-d0dc-48b3-865f-43291ca2c4f2:101.0.0.json | 1 + ...5-d0dc-48b3-865f-43291ca2c4f2:101.0.1.json | 1 + ...5-d0dc-48b3-865f-43291ca2c4f2:101.0.2.json | 1 + ...c-c7ba-4e82-b476-26a26877adf6:102.0.0.json | 1 + ...c-c7ba-4e82-b476-26a26877adf6:102.0.1.json | 1 + ...c-c7ba-4e82-b476-26a26877adf6:102.0.2.json | 1 + ...7-e4d5-4357-ad17-9c334609d79a:100.0.0.json | 1 + ...7-e4d5-4357-ad17-9c334609d79a:100.0.1.json | 1 + ...7-e4d5-4357-ad17-9c334609d79a:100.0.2.json | 1 + ...5-a2fc-4a76-ba9f-26849de881b4:103.0.0.json | 1 + ...5-a2fc-4a76-ba9f-26849de881b4:103.0.1.json | 1 + ...5-a2fc-4a76-ba9f-26849de881b4:103.0.2.json | 1 + ...c-7ffa-4419-8e95-81641bd6f845:101.0.0.json | 1 + ...c-7ffa-4419-8e95-81641bd6f845:101.0.1.json | 1 + ...c-7ffa-4419-8e95-81641bd6f845:101.0.2.json | 1 + ...15e-533c-4a60-8014-a3c3ab851a1b:1.0.0.json | 1 + ...15e-533c-4a60-8014-a3c3ab851a1b:1.0.1.json | 1 + ...15e-533c-4a60-8014-a3c3ab851a1b:1.0.2.json | 1 + ...b-b77c-4c01-995c-1c15019b9c43:102.0.0.json | 1 + ...b-b77c-4c01-995c-1c15019b9c43:102.0.1.json | 1 + ...b-b77c-4c01-995c-1c15019b9c43:102.0.2.json | 1 + ...b-a5d6-4035-b5ec-40438bd829ff:102.0.0.json | 1 + ...b-a5d6-4035-b5ec-40438bd829ff:102.0.1.json | 1 + ...b-a5d6-4035-b5ec-40438bd829ff:102.0.2.json | 1 + ...8-6c9e-4d28-86c0-8a2be2d1e78c:101.0.0.json | 1 + ...8-6c9e-4d28-86c0-8a2be2d1e78c:101.0.1.json | 1 + ...8-6c9e-4d28-86c0-8a2be2d1e78c:101.0.2.json | 1 + ...c-4023-4d17-b5df-1a3e16882ce7:101.0.0.json | 1 + ...c-4023-4d17-b5df-1a3e16882ce7:101.0.1.json | 1 + ...c-4023-4d17-b5df-1a3e16882ce7:101.0.2.json | 1 + ...0-e631-4870-ba8e-5fdda09325db:102.0.0.json | 1 + ...0-e631-4870-ba8e-5fdda09325db:102.0.1.json | 1 + ...0-e631-4870-ba8e-5fdda09325db:102.0.2.json | 1 + ...0-9036-4cc0-a27c-6d90bbfe81ab:100.0.0.json | 1 + ...0-9036-4cc0-a27c-6d90bbfe81ab:100.0.1.json | 1 + ...0-9036-4cc0-a27c-6d90bbfe81ab:100.0.2.json | 1 + ...a-0afb-461c-acbe-ffdb9574d3f3:101.0.0.json | 1 + ...a-0afb-461c-acbe-ffdb9574d3f3:101.0.1.json | 1 + ...a-0afb-461c-acbe-ffdb9574d3f3:101.0.2.json | 1 + ...c-560f-4b68-a8f1-11009b27fe63:100.0.0.json | 1 + ...c-560f-4b68-a8f1-11009b27fe63:100.0.1.json | 1 + ...c-560f-4b68-a8f1-11009b27fe63:100.0.2.json | 1 + ...6-c922-4adb-b51c-b767f1ea5b76:102.0.0.json | 1 + ...6-c922-4adb-b51c-b767f1ea5b76:102.0.1.json | 1 + ...6-c922-4adb-b51c-b767f1ea5b76:102.0.2.json | 1 + ...f-5c0e-4ac6-aece-bee96645b172:100.0.0.json | 1 + ...f-5c0e-4ac6-aece-bee96645b172:100.0.1.json | 1 + ...f-5c0e-4ac6-aece-bee96645b172:100.0.2.json | 1 + ...5-9be6-48e5-943a-9628bfc74b18:100.0.0.json | 1 + ...5-9be6-48e5-943a-9628bfc74b18:100.0.1.json | 1 + ...5-9be6-48e5-943a-9628bfc74b18:100.0.2.json | 1 + ...e-a531-4bdc-b73e-7034d6eed7ff:100.0.0.json | 1 + ...e-a531-4bdc-b73e-7034d6eed7ff:100.0.1.json | 1 + ...e-a531-4bdc-b73e-7034d6eed7ff:100.0.2.json | 1 + ...4-66c3-4df7-ad6b-2c5074eb3df8:100.0.0.json | 1 + ...4-66c3-4df7-ad6b-2c5074eb3df8:100.0.1.json | 1 + ...4-66c3-4df7-ad6b-2c5074eb3df8:100.0.2.json | 1 + ...1-e2ba-42f2-a134-bccf857ba922:102.0.0.json | 1 + ...1-e2ba-42f2-a134-bccf857ba922:102.0.1.json | 1 + ...1-e2ba-42f2-a134-bccf857ba922:102.0.2.json | 1 + ...2-b7fc-4af9-acea-5b1ead65c5a5:101.0.0.json | 1 + ...2-b7fc-4af9-acea-5b1ead65c5a5:101.0.1.json | 1 + ...2-b7fc-4af9-acea-5b1ead65c5a5:101.0.2.json | 1 + ...0-315d-4334-bb1a-441c593e16ab:103.0.0.json | 1 + ...0-315d-4334-bb1a-441c593e16ab:103.0.1.json | 1 + ...0-315d-4334-bb1a-441c593e16ab:103.0.2.json | 1 + ...0-315d-4334-bb1a-552d604f27bc:103.0.0.json | 1 + ...0-315d-4334-bb1a-552d604f27bc:103.0.1.json | 1 + ...0-315d-4334-bb1a-552d604f27bc:103.0.2.json | 1 + ...c-0dbd-4a1a-bc44-1467502c9cf6:101.0.0.json | 1 + ...c-0dbd-4a1a-bc44-1467502c9cf6:101.0.1.json | 1 + ...c-0dbd-4a1a-bc44-1467502c9cf6:101.0.2.json | 1 + ...4-27fd-4f26-bd03-50b6af6b9e24:100.0.0.json | 1 + ...4-27fd-4f26-bd03-50b6af6b9e24:100.0.1.json | 1 + ...4-27fd-4f26-bd03-50b6af6b9e24:100.0.2.json | 1 + ...81a-3930-11ed-a261-0242ac120002:1.0.0.json | 1 + ...81a-3930-11ed-a261-0242ac120002:1.0.1.json | 1 + ...81a-3930-11ed-a261-0242ac120002:1.0.2.json | 1 + ...2-7741-4f9b-85b8-d06aeb853f4f:100.0.0.json | 1 + ...2-7741-4f9b-85b8-d06aeb853f4f:100.0.1.json | 1 + ...2-7741-4f9b-85b8-d06aeb853f4f:100.0.2.json | 1 + ...1-e19b-452f-b104-79a60e546a95:102.0.0.json | 1 + ...1-e19b-452f-b104-79a60e546a95:102.0.1.json | 1 + ...1-e19b-452f-b104-79a60e546a95:102.0.2.json | 1 + ...7-eca5-4151-bb47-64bc3f883270:100.0.0.json | 1 + ...7-eca5-4151-bb47-64bc3f883270:100.0.1.json | 1 + ...7-eca5-4151-bb47-64bc3f883270:100.0.2.json | 1 + ...0-7ab2-44bf-b328-6e63367b9b29:101.0.0.json | 1 + ...0-7ab2-44bf-b328-6e63367b9b29:101.0.1.json | 1 + ...0-7ab2-44bf-b328-6e63367b9b29:101.0.2.json | 1 + ...d-06a6-41c7-b175-b65b739b1181:102.0.0.json | 1 + ...d-06a6-41c7-b175-b65b739b1181:102.0.1.json | 1 + ...d-06a6-41c7-b175-b65b739b1181:102.0.2.json | 1 + ...1-6c8e-41ce-818f-48bea6bcaed8:102.0.0.json | 1 + ...1-6c8e-41ce-818f-48bea6bcaed8:102.0.1.json | 1 + ...1-6c8e-41ce-818f-48bea6bcaed8:102.0.2.json | 1 + ...e-3dbf-4e4e-9ae0-33d6c6ed15e1:100.0.0.json | 1 + ...e-3dbf-4e4e-9ae0-33d6c6ed15e1:100.0.1.json | 1 + ...e-3dbf-4e4e-9ae0-33d6c6ed15e1:100.0.2.json | 1 + ...9-0560-43ba-860a-7235dd8cee8d:100.0.0.json | 1 + ...9-0560-43ba-860a-7235dd8cee8d:100.0.1.json | 1 + ...9-0560-43ba-860a-7235dd8cee8d:100.0.2.json | 1 + ...c-c54c-49c6-97a1-651223819448:100.0.0.json | 1 + ...c-c54c-49c6-97a1-651223819448:100.0.1.json | 1 + ...c-c54c-49c6-97a1-651223819448:100.0.2.json | 1 + ...8-c180-481c-ba88-ee50129a6aef:100.0.0.json | 1 + ...8-c180-481c-ba88-ee50129a6aef:100.0.1.json | 1 + ...8-c180-481c-ba88-ee50129a6aef:100.0.2.json | 1 + ...1-71d0-4003-9e37-0983e12832da:100.0.0.json | 1 + ...1-71d0-4003-9e37-0983e12832da:100.0.1.json | 1 + ...1-71d0-4003-9e37-0983e12832da:100.0.2.json | 1 + ...7-a581-4537-8060-1fdb0e92c92d:200.0.0.json | 1 + ...7-a581-4537-8060-1fdb0e92c92d:200.0.1.json | 1 + ...7-a581-4537-8060-1fdb0e92c92d:200.0.2.json | 1 + ...fcd-4c4c-41e6-a0c7-d6c46c2eff66:1.0.0.json | 1 + ...fcd-4c4c-41e6-a0c7-d6c46c2eff66:1.0.1.json | 1 + ...fcd-4c4c-41e6-a0c7-d6c46c2eff66:1.0.2.json | 1 + ...1-3f12-448c-b65f-20123e9e9e8c:100.0.0.json | 1 + ...1-3f12-448c-b65f-20123e9e9e8c:100.0.1.json | 1 + ...1-3f12-448c-b65f-20123e9e9e8c:100.0.2.json | 1 + ...8-abf7-42d5-be22-4a70b0bf7241:101.0.0.json | 1 + ...8-abf7-42d5-be22-4a70b0bf7241:101.0.1.json | 1 + ...8-abf7-42d5-be22-4a70b0bf7241:101.0.2.json | 1 + ...7-3480-4dd9-8ad7-8bd36bfad92f:102.0.0.json | 1 + ...7-3480-4dd9-8ad7-8bd36bfad92f:102.0.1.json | 1 + ...7-3480-4dd9-8ad7-8bd36bfad92f:102.0.2.json | 1 + ...d-b998-41e5-a62e-c7901fd7f470:102.0.0.json | 1 + ...d-b998-41e5-a62e-c7901fd7f470:102.0.1.json | 1 + ...d-b998-41e5-a62e-c7901fd7f470:102.0.2.json | 1 + ...8-7b75-4a58-b94e-41bf060fdd86:101.0.0.json | 1 + ...8-7b75-4a58-b94e-41bf060fdd86:101.0.1.json | 1 + ...8-7b75-4a58-b94e-41bf060fdd86:101.0.2.json | 1 + ...f-8ec4-4da4-b758-878f551dee69:101.0.0.json | 1 + ...f-8ec4-4da4-b758-878f551dee69:101.0.1.json | 1 + ...f-8ec4-4da4-b758-878f551dee69:101.0.2.json | 1 + ...b-75aa-4ffd-8be5-3334a5a544dd:101.0.0.json | 1 + ...b-75aa-4ffd-8be5-3334a5a544dd:101.0.1.json | 1 + ...b-75aa-4ffd-8be5-3334a5a544dd:101.0.2.json | 1 + ...f-6cf1-4de3-9662-213aa13e8b80:103.0.0.json | 1 + ...f-6cf1-4de3-9662-213aa13e8b80:103.0.1.json | 1 + ...f-6cf1-4de3-9662-213aa13e8b80:103.0.2.json | 1 + ...9-b476-451d-a9e0-7a5addd70670:102.0.0.json | 1 + ...9-b476-451d-a9e0-7a5addd70670:102.0.1.json | 1 + ...9-b476-451d-a9e0-7a5addd70670:102.0.2.json | 1 + ...6-7e00-4a0a-8a9a-a7c24720b5ec:102.0.0.json | 1 + ...6-7e00-4a0a-8a9a-a7c24720b5ec:102.0.1.json | 1 + ...6-7e00-4a0a-8a9a-a7c24720b5ec:102.0.2.json | 1 + ...1-480e-4e63-a7f4-ede42bf2c6de:101.0.0.json | 1 + ...1-480e-4e63-a7f4-ede42bf2c6de:101.0.1.json | 1 + ...1-480e-4e63-a7f4-ede42bf2c6de:101.0.2.json | 1 + ...a-60a2-412e-8aa7-011e1eb9ed47:101.0.0.json | 1 + ...a-60a2-412e-8aa7-011e1eb9ed47:101.0.1.json | 1 + ...a-60a2-412e-8aa7-011e1eb9ed47:101.0.2.json | 1 + ...6-81d2-435e-965c-d722ee397ef1:102.0.0.json | 1 + ...6-81d2-435e-965c-d722ee397ef1:102.0.1.json | 1 + ...6-81d2-435e-965c-d722ee397ef1:102.0.2.json | 1 + ...0-ae13-439b-8192-357b0fcfa9d7:101.0.0.json | 1 + ...0-ae13-439b-8192-357b0fcfa9d7:101.0.1.json | 1 + ...0-ae13-439b-8192-357b0fcfa9d7:101.0.2.json | 1 + ...c-e533-41ad-a612-d6c3bf666aba:100.0.0.json | 1 + ...c-e533-41ad-a612-d6c3bf666aba:100.0.1.json | 1 + ...c-e533-41ad-a612-d6c3bf666aba:100.0.2.json | 1 + ...e60-2df0-11ed-b814-f661ea17fbce:2.0.0.json | 1 + ...e60-2df0-11ed-b814-f661ea17fbce:2.0.1.json | 1 + ...e60-2df0-11ed-b814-f661ea17fbce:2.0.2.json | 1 + ...6-47dd-4e64-9433-cddc99727623:102.0.0.json | 1 + ...6-47dd-4e64-9433-cddc99727623:102.0.1.json | 1 + ...6-47dd-4e64-9433-cddc99727623:102.0.2.json | 1 + ...4-c0eb-4270-ac5a-9a6020585dc6:101.0.0.json | 1 + ...4-c0eb-4270-ac5a-9a6020585dc6:101.0.1.json | 1 + ...4-c0eb-4270-ac5a-9a6020585dc6:101.0.2.json | 1 + ...3-e2c3-455e-af1b-2626a5a1a276:102.0.0.json | 1 + ...3-e2c3-455e-af1b-2626a5a1a276:102.0.1.json | 1 + ...3-e2c3-455e-af1b-2626a5a1a276:102.0.2.json | 1 + ...4-c82a-402c-9964-852533d58be1:100.0.0.json | 1 + ...4-c82a-402c-9964-852533d58be1:100.0.1.json | 1 + ...4-c82a-402c-9964-852533d58be1:100.0.2.json | 1 + ...6-2094-4f0e-8c01-22d30f3506c6:102.0.0.json | 1 + ...6-2094-4f0e-8c01-22d30f3506c6:102.0.1.json | 1 + ...6-2094-4f0e-8c01-22d30f3506c6:102.0.2.json | 1 + ...6-a2d7-4192-a2d8-eed98afc766a:102.0.0.json | 1 + ...6-a2d7-4192-a2d8-eed98afc766a:102.0.1.json | 1 + ...6-a2d7-4192-a2d8-eed98afc766a:102.0.2.json | 1 + ...5f8-f8c2-4e28-992e-5a0e8d98e0fe:2.0.0.json | 1 + ...5f8-f8c2-4e28-992e-5a0e8d98e0fe:2.0.1.json | 1 + ...5f8-f8c2-4e28-992e-5a0e8d98e0fe:2.0.2.json | 1 + ...f-4117-4ae4-b551-f56d54b9da6b:100.0.0.json | 1 + ...f-4117-4ae4-b551-f56d54b9da6b:100.0.1.json | 1 + ...f-4117-4ae4-b551-f56d54b9da6b:100.0.2.json | 1 + ...d-8136-46fc-b7b9-2db4f639e014:101.0.0.json | 1 + ...d-8136-46fc-b7b9-2db4f639e014:101.0.1.json | 1 + ...d-8136-46fc-b7b9-2db4f639e014:101.0.2.json | 1 + ...4-e12a-11ec-b896-f661ea17fbcd:102.0.0.json | 1 + ...4-e12a-11ec-b896-f661ea17fbcd:102.0.1.json | 1 + ...4-e12a-11ec-b896-f661ea17fbcd:102.0.2.json | 1 + ...a-2a3c-46c6-8b22-55398a01aad8:102.0.0.json | 1 + ...a-2a3c-46c6-8b22-55398a01aad8:102.0.1.json | 1 + ...a-2a3c-46c6-8b22-55398a01aad8:102.0.2.json | 1 + ...9-68e8-43a6-9dce-340771fe1be3:102.0.0.json | 1 + ...9-68e8-43a6-9dce-340771fe1be3:102.0.1.json | 1 + ...9-68e8-43a6-9dce-340771fe1be3:102.0.2.json | 1 + ...c-1e17-44e1-aa97-7a0699c3037d:101.0.0.json | 1 + ...c-1e17-44e1-aa97-7a0699c3037d:101.0.1.json | 1 + ...c-1e17-44e1-aa97-7a0699c3037d:101.0.2.json | 1 + ...1-7fd3-41cf-a185-681237ea277b:101.0.0.json | 1 + ...1-7fd3-41cf-a185-681237ea277b:101.0.1.json | 1 + ...1-7fd3-41cf-a185-681237ea277b:101.0.2.json | 1 + ...c-41e5-4edc-ada2-ab13ab45de8a:101.0.0.json | 1 + ...c-41e5-4edc-ada2-ab13ab45de8a:101.0.1.json | 1 + ...c-41e5-4edc-ada2-ab13ab45de8a:101.0.2.json | 1 + ...0-cea4-4110-af3f-e02e9b373655:102.0.0.json | 1 + ...0-cea4-4110-af3f-e02e9b373655:102.0.1.json | 1 + ...0-cea4-4110-af3f-e02e9b373655:102.0.2.json | 1 + ...2-1b71-4def-b016-6278b505138d:102.0.0.json | 1 + ...2-1b71-4def-b016-6278b505138d:102.0.1.json | 1 + ...2-1b71-4def-b016-6278b505138d:102.0.2.json | 1 + ...2-4539-4bc4-8543-23bc3d5bd2b4:101.0.0.json | 1 + ...2-4539-4bc4-8543-23bc3d5bd2b4:101.0.1.json | 1 + ...2-4539-4bc4-8543-23bc3d5bd2b4:101.0.2.json | 1 + ...1-6626-4e1b-abb7-6e361a171fbb:101.0.0.json | 1 + ...1-6626-4e1b-abb7-6e361a171fbb:101.0.1.json | 1 + ...1-6626-4e1b-abb7-6e361a171fbb:101.0.2.json | 1 + ...3-60d3-411f-ba79-7c905d865b2a:100.0.0.json | 1 + ...3-60d3-411f-ba79-7c905d865b2a:100.0.1.json | 1 + ...3-60d3-411f-ba79-7c905d865b2a:100.0.2.json | 1 + ...e-441a-4c3e-be2d-120d99fe7b0d:101.0.0.json | 1 + ...e-441a-4c3e-be2d-120d99fe7b0d:101.0.1.json | 1 + ...e-441a-4c3e-be2d-120d99fe7b0d:101.0.2.json | 1 + ...5-b39f-432a-8d75-d3730d50c782:102.0.0.json | 1 + ...5-b39f-432a-8d75-d3730d50c782:102.0.1.json | 1 + ...5-b39f-432a-8d75-d3730d50c782:102.0.2.json | 1 + ...0-9f8f-4ee0-8823-c4751a6d6696:100.0.0.json | 1 + ...0-9f8f-4ee0-8823-c4751a6d6696:100.0.1.json | 1 + ...0-9f8f-4ee0-8823-c4751a6d6696:100.0.2.json | 1 + ...7-6b53-4de2-b604-648488841ab8:100.0.0.json | 1 + ...7-6b53-4de2-b604-648488841ab8:100.0.1.json | 1 + ...7-6b53-4de2-b604-648488841ab8:100.0.2.json | 1 + ...8-0f9a-487d-96bd-d4833298e87a:100.0.0.json | 1 + ...8-0f9a-487d-96bd-d4833298e87a:100.0.1.json | 1 + ...8-0f9a-487d-96bd-d4833298e87a:100.0.2.json | 1 + ...1-3ce6-4859-9891-28931fa6101d:100.0.0.json | 1 + ...1-3ce6-4859-9891-28931fa6101d:100.0.1.json | 1 + ...1-3ce6-4859-9891-28931fa6101d:100.0.2.json | 1 + ...f-ad63-481e-b53a-ef959230f7f1:102.0.0.json | 1 + ...f-ad63-481e-b53a-ef959230f7f1:102.0.1.json | 1 + ...f-ad63-481e-b53a-ef959230f7f1:102.0.2.json | 1 + ...4-1d92-4359-bfcf-478b6d9de150:102.0.0.json | 1 + ...4-1d92-4359-bfcf-478b6d9de150:102.0.1.json | 1 + ...4-1d92-4359-bfcf-478b6d9de150:102.0.2.json | 1 + ...2-a598-4293-bc14-3d5fa22bb98f:101.0.0.json | 1 + ...2-a598-4293-bc14-3d5fa22bb98f:101.0.1.json | 1 + ...2-a598-4293-bc14-3d5fa22bb98f:101.0.2.json | 1 + ...6-6a65-4630-86a6-c21c179c0d09:102.0.0.json | 1 + ...6-6a65-4630-86a6-c21c179c0d09:102.0.1.json | 1 + ...6-6a65-4630-86a6-c21c179c0d09:102.0.2.json | 1 + ...a-1307-4b2e-a77b-a0027e4d27c8:101.0.0.json | 1 + ...a-1307-4b2e-a77b-a0027e4d27c8:101.0.1.json | 1 + ...a-1307-4b2e-a77b-a0027e4d27c8:101.0.2.json | 1 + ...8-4204-45c0-9e0c-c85ca3902488:100.0.0.json | 1 + ...8-4204-45c0-9e0c-c85ca3902488:100.0.1.json | 1 + ...8-4204-45c0-9e0c-c85ca3902488:100.0.2.json | 1 + ...e-e3ac-4c97-8aa0-cf6a9122de45:102.0.0.json | 1 + ...e-e3ac-4c97-8aa0-cf6a9122de45:102.0.1.json | 1 + ...e-e3ac-4c97-8aa0-cf6a9122de45:102.0.2.json | 1 + ...6-6e82-4884-9b9a-75d3d252f967:101.0.0.json | 1 + ...6-6e82-4884-9b9a-75d3d252f967:101.0.1.json | 1 + ...6-6e82-4884-9b9a-75d3d252f967:101.0.2.json | 1 + ...5-7743-4dfb-ae1b-ad92be9df7bd:100.0.0.json | 1 + ...5-7743-4dfb-ae1b-ad92be9df7bd:100.0.1.json | 1 + ...5-7743-4dfb-ae1b-ad92be9df7bd:100.0.2.json | 1 + ...371-d053-4f4f-bce0-c74990e28f28:1.0.0.json | 1 + ...371-d053-4f4f-bce0-c74990e28f28:1.0.1.json | 1 + ...371-d053-4f4f-bce0-c74990e28f28:1.0.2.json | 1 + ...9-7735-4b24-9cc6-c78dfc9fc9c9:100.0.0.json | 1 + ...9-7735-4b24-9cc6-c78dfc9fc9c9:100.0.1.json | 1 + ...9-7735-4b24-9cc6-c78dfc9fc9c9:100.0.2.json | 1 + ...b-3d15-4e5d-9413-47f05553c1d7:101.0.0.json | 1 + ...b-3d15-4e5d-9413-47f05553c1d7:101.0.1.json | 1 + ...b-3d15-4e5d-9413-47f05553c1d7:101.0.2.json | 1 + ...7-d791-4704-80a1-42c160d7aa27:100.0.0.json | 1 + ...7-d791-4704-80a1-42c160d7aa27:100.0.1.json | 1 + ...7-d791-4704-80a1-42c160d7aa27:100.0.2.json | 1 + ...b-a5af-47ca-a594-6be59cd924a4:101.0.0.json | 1 + ...b-a5af-47ca-a594-6be59cd924a4:101.0.1.json | 1 + ...b-a5af-47ca-a594-6be59cd924a4:101.0.2.json | 1 + ...a-c47a-4e34-8ecd-34facf7aad13:102.0.0.json | 1 + ...a-c47a-4e34-8ecd-34facf7aad13:102.0.1.json | 1 + ...a-c47a-4e34-8ecd-34facf7aad13:102.0.2.json | 1 + ...6-2260-4824-b8e4-8615c3b4ed52:100.0.0.json | 1 + ...6-2260-4824-b8e4-8615c3b4ed52:100.0.1.json | 1 + ...6-2260-4824-b8e4-8615c3b4ed52:100.0.2.json | 1 + ...6-2689-4224-a0e0-b04881e1f8ad:101.0.0.json | 1 + ...6-2689-4224-a0e0-b04881e1f8ad:101.0.1.json | 1 + ...6-2689-4224-a0e0-b04881e1f8ad:101.0.2.json | 1 + ...c-650f-4fa3-8a8a-28256c7489c9:100.0.0.json | 1 + ...c-650f-4fa3-8a8a-28256c7489c9:100.0.1.json | 1 + ...c-650f-4fa3-8a8a-28256c7489c9:100.0.2.json | 1 + ...f-f3d0-4db3-bf66-7a14bcff71b8:102.0.0.json | 1 + ...f-f3d0-4db3-bf66-7a14bcff71b8:102.0.1.json | 1 + ...f-f3d0-4db3-bf66-7a14bcff71b8:102.0.2.json | 1 + ...4-47a9-4334-ab14-084abe274d49:101.0.0.json | 1 + ...4-47a9-4334-ab14-084abe274d49:101.0.1.json | 1 + ...4-47a9-4334-ab14-084abe274d49:101.0.2.json | 1 + ...1-969f-4167-8d77-07827ac4cee0:100.0.0.json | 1 + ...1-969f-4167-8d77-07827ac4cee0:100.0.1.json | 1 + ...1-969f-4167-8d77-07827ac4cee0:100.0.2.json | 1 + ...1-969f-4167-8f55-07827ac3acc9:100.0.0.json | 1 + ...1-969f-4167-8f55-07827ac3acc9:100.0.1.json | 1 + ...1-969f-4167-8f55-07827ac3acc9:100.0.2.json | 1 + ...1-969f-4167-8f66-07827ac3bdd9:100.0.0.json | 1 + ...1-969f-4167-8f66-07827ac3bdd9:100.0.1.json | 1 + ...1-969f-4167-8f66-07827ac3bdd9:100.0.2.json | 1 + ...af5-78ec-4e25-bea1-73bacc9b59d9:2.0.0.json | 1 + ...af5-78ec-4e25-bea1-73bacc9b59d9:2.0.1.json | 1 + ...af5-78ec-4e25-bea1-73bacc9b59d9:2.0.2.json | 1 + ...2-b0f5-4b8b-89c3-a226efae5726:101.0.0.json | 1 + ...2-b0f5-4b8b-89c3-a226efae5726:101.0.1.json | 1 + ...2-b0f5-4b8b-89c3-a226efae5726:101.0.2.json | 1 + ...5-0f5e-4ae0-ba0d-9e94eff7e3a4:100.0.0.json | 1 + ...5-0f5e-4ae0-ba0d-9e94eff7e3a4:100.0.1.json | 1 + ...5-0f5e-4ae0-ba0d-9e94eff7e3a4:100.0.2.json | 1 + ...c-9947-4472-86ef-4aceb2f7e872:103.0.0.json | 1 + ...c-9947-4472-86ef-4aceb2f7e872:103.0.1.json | 1 + ...c-9947-4472-86ef-4aceb2f7e872:103.0.2.json | 1 + ...a-06a0-4131-b830-b10d5e166ff4:102.0.0.json | 1 + ...a-06a0-4131-b830-b10d5e166ff4:102.0.1.json | 1 + ...a-06a0-4131-b830-b10d5e166ff4:102.0.2.json | 1 + ...6-494c-4f01-8167-35edfb52f7b1:101.0.0.json | 1 + ...6-494c-4f01-8167-35edfb52f7b1:101.0.1.json | 1 + ...6-494c-4f01-8167-35edfb52f7b1:101.0.2.json | 1 + ...e-4154-4fc6-9f86-b411e0987bbf:101.0.0.json | 1 + ...e-4154-4fc6-9f86-b411e0987bbf:101.0.1.json | 1 + ...e-4154-4fc6-9f86-b411e0987bbf:101.0.2.json | 1 + ...f-5728-4004-ba00-625083b3dcb0:100.0.0.json | 1 + ...f-5728-4004-ba00-625083b3dcb0:100.0.1.json | 1 + ...f-5728-4004-ba00-625083b3dcb0:100.0.2.json | 1 + ...dd4-3392-11ed-bd01-f661ea17fbce:2.0.0.json | 1 + ...dd4-3392-11ed-bd01-f661ea17fbce:2.0.1.json | 1 + ...dd4-3392-11ed-bd01-f661ea17fbce:2.0.2.json | 1 + ...8-5437-49ae-b2d6-2960883898e9:102.0.0.json | 1 + ...8-5437-49ae-b2d6-2960883898e9:102.0.1.json | 1 + ...8-5437-49ae-b2d6-2960883898e9:102.0.2.json | 1 + ...3-1129-4aa7-9084-30746b256a70:102.0.0.json | 1 + ...3-1129-4aa7-9084-30746b256a70:102.0.1.json | 1 + ...3-1129-4aa7-9084-30746b256a70:102.0.2.json | 1 + ...9-da51-4a87-9ce2-d3c9782fd759:100.0.0.json | 1 + ...9-da51-4a87-9ce2-d3c9782fd759:100.0.1.json | 1 + ...9-da51-4a87-9ce2-d3c9782fd759:100.0.2.json | 1 + ...a-0e8c-435b-8d53-2096e75fcac5:102.0.0.json | 1 + ...a-0e8c-435b-8d53-2096e75fcac5:102.0.1.json | 1 + ...a-0e8c-435b-8d53-2096e75fcac5:102.0.2.json | 1 + ...8-c3b7-4df6-b5d9-6237f8bc36a8:100.0.0.json | 1 + ...8-c3b7-4df6-b5d9-6237f8bc36a8:100.0.1.json | 1 + ...8-c3b7-4df6-b5d9-6237f8bc36a8:100.0.2.json | 1 + ...e61-e591-4191-8a3b-2861a2b887cd:1.0.0.json | 1 + ...e61-e591-4191-8a3b-2861a2b887cd:1.0.1.json | 1 + ...e61-e591-4191-8a3b-2861a2b887cd:1.0.2.json | 1 + ...5-2568-4561-ae81-f3e480e5e695:101.0.0.json | 1 + ...5-2568-4561-ae81-f3e480e5e695:101.0.1.json | 1 + ...5-2568-4561-ae81-f3e480e5e695:101.0.2.json | 1 + ...8-757d-4b1d-9af1-ef29e4a8680e:102.0.0.json | 1 + ...8-757d-4b1d-9af1-ef29e4a8680e:102.0.1.json | 1 + ...8-757d-4b1d-9af1-ef29e4a8680e:102.0.2.json | 1 + ...7-0c52-4c4c-b71e-88103304a79f:101.0.0.json | 1 + ...7-0c52-4c4c-b71e-88103304a79f:101.0.1.json | 1 + ...7-0c52-4c4c-b71e-88103304a79f:101.0.2.json | 1 + ...4-fd3b-421f-9b9d-9c9d9e57e9d7:101.0.0.json | 1 + ...4-fd3b-421f-9b9d-9c9d9e57e9d7:101.0.1.json | 1 + ...4-fd3b-421f-9b9d-9c9d9e57e9d7:101.0.2.json | 1 + ...f-6034-4bd3-8c1a-1e0996b27afa:102.0.0.json | 1 + ...f-6034-4bd3-8c1a-1e0996b27afa:102.0.1.json | 1 + ...f-6034-4bd3-8c1a-1e0996b27afa:102.0.2.json | 1 + ...3-8dae-4019-ae83-298c3015600f:102.0.0.json | 1 + ...3-8dae-4019-ae83-298c3015600f:102.0.1.json | 1 + ...3-8dae-4019-ae83-298c3015600f:102.0.2.json | 1 + ...1-d061-403d-9bf6-64934c51f638:102.0.0.json | 1 + ...1-d061-403d-9bf6-64934c51f638:102.0.1.json | 1 + ...1-d061-403d-9bf6-64934c51f638:102.0.2.json | 1 + ...7-5b09-4e37-8a54-5cae5dc932d7:101.0.0.json | 1 + ...7-5b09-4e37-8a54-5cae5dc932d7:101.0.1.json | 1 + ...7-5b09-4e37-8a54-5cae5dc932d7:101.0.2.json | 1 + ...7-0bd5-5817-cda0-3fcc33113a56:103.0.0.json | 1 + ...7-0bd5-5817-cda0-3fcc33113a56:103.0.1.json | 1 + ...7-0bd5-5817-cda0-3fcc33113a56:103.0.2.json | 1 + ...a-a953-4f3e-b3cb-6ddf7584de9e:100.0.0.json | 1 + ...a-a953-4f3e-b3cb-6ddf7584de9e:100.0.1.json | 1 + ...a-a953-4f3e-b3cb-6ddf7584de9e:100.0.2.json | 1 + ...d-b0d4-46e3-8609-acafcf99f68c:100.0.0.json | 1 + ...d-b0d4-46e3-8609-acafcf99f68c:100.0.1.json | 1 + ...d-b0d4-46e3-8609-acafcf99f68c:100.0.2.json | 1 + ...d-9b26-409f-972b-839a959e79e2:101.0.0.json | 1 + ...d-9b26-409f-972b-839a959e79e2:101.0.1.json | 1 + ...d-9b26-409f-972b-839a959e79e2:101.0.2.json | 1 + ...4-6587-4f65-9252-d866a3fdfd9c:100.0.0.json | 1 + ...4-6587-4f65-9252-d866a3fdfd9c:100.0.1.json | 1 + ...4-6587-4f65-9252-d866a3fdfd9c:100.0.2.json | 1 + ...e-0b5f-4c3d-8305-a268d404c306:100.0.0.json | 1 + ...e-0b5f-4c3d-8305-a268d404c306:100.0.1.json | 1 + ...e-0b5f-4c3d-8305-a268d404c306:100.0.2.json | 1 + ...689-8ed1-4cdb-83fb-9506db54c61f:2.0.0.json | 1 + ...689-8ed1-4cdb-83fb-9506db54c61f:2.0.1.json | 1 + ...689-8ed1-4cdb-83fb-9506db54c61f:2.0.2.json | 1 + ...1-6cde-4295-9ff7-6be1b8567e1b:101.0.0.json | 1 + ...1-6cde-4295-9ff7-6be1b8567e1b:101.0.1.json | 1 + ...1-6cde-4295-9ff7-6be1b8567e1b:101.0.2.json | 1 + ...6-52ce-42e1-abb3-09657cee2698:101.0.0.json | 1 + ...6-52ce-42e1-abb3-09657cee2698:101.0.1.json | 1 + ...6-52ce-42e1-abb3-09657cee2698:101.0.2.json | 1 + ...1-daf1-457e-b0e6-0bb4e55b8a4c:102.0.0.json | 1 + ...1-daf1-457e-b0e6-0bb4e55b8a4c:102.0.1.json | 1 + ...1-daf1-457e-b0e6-0bb4e55b8a4c:102.0.2.json | 1 + ...3-c811-4ec8-ab89-8f6530e0246c:102.0.0.json | 1 + ...3-c811-4ec8-ab89-8f6530e0246c:102.0.1.json | 1 + ...3-c811-4ec8-ab89-8f6530e0246c:102.0.2.json | 1 + ...691-5599-447a-bac9-b3f2df5f9a9d:1.0.0.json | 1 + ...691-5599-447a-bac9-b3f2df5f9a9d:1.0.1.json | 1 + ...691-5599-447a-bac9-b3f2df5f9a9d:1.0.2.json | 1 + ...0-0057-440a-91f5-870c6ad39093:101.0.0.json | 1 + ...0-0057-440a-91f5-870c6ad39093:101.0.1.json | 1 + ...0-0057-440a-91f5-870c6ad39093:101.0.2.json | 1 + ...0ae-2404-11ed-ae7d-f661ea17fbce:2.0.0.json | 1 + ...0ae-2404-11ed-ae7d-f661ea17fbce:2.0.1.json | 1 + ...0ae-2404-11ed-ae7d-f661ea17fbce:2.0.2.json | 1 + ...3-5f4b-4c9a-b9f5-53f0a1707ae2:101.0.0.json | 1 + ...3-5f4b-4c9a-b9f5-53f0a1707ae2:101.0.1.json | 1 + ...3-5f4b-4c9a-b9f5-53f0a1707ae2:101.0.2.json | 1 + ...3-5f4b-4c9a-b9f5-53f0a1707ae3:102.0.0.json | 1 + ...3-5f4b-4c9a-b9f5-53f0a1707ae3:102.0.1.json | 1 + ...3-5f4b-4c9a-b9f5-53f0a1707ae3:102.0.2.json | 1 + ...3-5f4b-4c9a-b9f5-53f0a1707ae4:102.0.0.json | 1 + ...3-5f4b-4c9a-b9f5-53f0a1707ae4:102.0.1.json | 1 + ...3-5f4b-4c9a-b9f5-53f0a1707ae4:102.0.2.json | 1 + ...3-5f4b-4c9a-b9f5-53f0a1707ae5:102.0.0.json | 1 + ...3-5f4b-4c9a-b9f5-53f0a1707ae5:102.0.1.json | 1 + ...3-5f4b-4c9a-b9f5-53f0a1707ae5:102.0.2.json | 1 + ...3-5f4b-4c9a-b9f5-53f0a1707ae6:102.0.0.json | 1 + ...3-5f4b-4c9a-b9f5-53f0a1707ae6:102.0.1.json | 1 + ...3-5f4b-4c9a-b9f5-53f0a1707ae6:102.0.2.json | 1 + ...3-5f4b-4c9a-b9f5-53f0a1707ae9:101.0.0.json | 1 + ...3-5f4b-4c9a-b9f5-53f0a1707ae9:101.0.1.json | 1 + ...3-5f4b-4c9a-b9f5-53f0a1707ae9:101.0.2.json | 1 + ...6-c20e-481a-90c5-ccca596537de:100.0.0.json | 1 + ...6-c20e-481a-90c5-ccca596537de:100.0.1.json | 1 + ...6-c20e-481a-90c5-ccca596537de:100.0.2.json | 1 + ...7-d226-4e12-b54c-1906b5aec4f6:100.0.0.json | 1 + ...7-d226-4e12-b54c-1906b5aec4f6:100.0.1.json | 1 + ...7-d226-4e12-b54c-1906b5aec4f6:100.0.2.json | 1 + ...3-44b5-481d-ba42-32dc215a2769:100.0.0.json | 1 + ...3-44b5-481d-ba42-32dc215a2769:100.0.1.json | 1 + ...3-44b5-481d-ba42-32dc215a2769:100.0.2.json | 1 + ...7-1a4f-45f3-a57b-287f2c7029c1:102.0.0.json | 1 + ...7-1a4f-45f3-a57b-287f2c7029c1:102.0.1.json | 1 + ...7-1a4f-45f3-a57b-287f2c7029c1:102.0.2.json | 1 + ...2-93a8-4b1a-8778-1780895626d4:100.0.0.json | 1 + ...2-93a8-4b1a-8778-1780895626d4:100.0.1.json | 1 + ...2-93a8-4b1a-8778-1780895626d4:100.0.2.json | 1 + ...3-9ed6-447c-ab2c-be648821c622:103.0.0.json | 1 + ...3-9ed6-447c-ab2c-be648821c622:103.0.1.json | 1 + ...3-9ed6-447c-ab2c-be648821c622:103.0.2.json | 1 + ...68e-7c93-48d1-93b2-2c39023308eb:2.0.0.json | 1 + ...68e-7c93-48d1-93b2-2c39023308eb:2.0.1.json | 1 + ...68e-7c93-48d1-93b2-2c39023308eb:2.0.2.json | 1 + ...d-0f65-48f1-8b25-af175e2594f5:102.0.0.json | 1 + ...d-0f65-48f1-8b25-af175e2594f5:102.0.1.json | 1 + ...d-0f65-48f1-8b25-af175e2594f5:102.0.2.json | 1 + ...1-eec2-4015-9631-1fee60406dcf:101.0.0.json | 1 + ...1-eec2-4015-9631-1fee60406dcf:101.0.1.json | 1 + ...1-eec2-4015-9631-1fee60406dcf:101.0.2.json | 1 + ...0-8de3-4445-9f87-908fb6d824f4:100.0.0.json | 1 + ...0-8de3-4445-9f87-908fb6d824f4:100.0.1.json | 1 + ...0-8de3-4445-9f87-908fb6d824f4:100.0.2.json | 1 + ...d-b30e-4d41-86a0-ebe70974ec00:101.0.0.json | 1 + ...d-b30e-4d41-86a0-ebe70974ec00:101.0.1.json | 1 + ...d-b30e-4d41-86a0-ebe70974ec00:101.0.2.json | 1 + ...1-297b-459b-b5ce-bc7460d8f82a:102.0.0.json | 1 + ...1-297b-459b-b5ce-bc7460d8f82a:102.0.1.json | 1 + ...1-297b-459b-b5ce-bc7460d8f82a:102.0.2.json | 1 + ...f-22c2-48c0-81a4-7c2d11cc6856:102.0.0.json | 1 + ...f-22c2-48c0-81a4-7c2d11cc6856:102.0.1.json | 1 + ...f-22c2-48c0-81a4-7c2d11cc6856:102.0.2.json | 1 + ...2-2162-4df0-a356-9aacbeb56a04:101.0.0.json | 1 + ...2-2162-4df0-a356-9aacbeb56a04:101.0.1.json | 1 + ...2-2162-4df0-a356-9aacbeb56a04:101.0.2.json | 1 + ...334-2499-11ed-9e1a-f661ea17fbce:2.0.0.json | 1 + ...334-2499-11ed-9e1a-f661ea17fbce:2.0.1.json | 1 + ...334-2499-11ed-9e1a-f661ea17fbce:2.0.2.json | 1 + ...3-0d4e-4667-8b44-4230c63f3c75:101.0.0.json | 1 + ...3-0d4e-4667-8b44-4230c63f3c75:101.0.1.json | 1 + ...3-0d4e-4667-8b44-4230c63f3c75:101.0.2.json | 1 + ...a-5cb4-4bc1-9d06-e4a75adbc494:102.0.0.json | 1 + ...a-5cb4-4bc1-9d06-e4a75adbc494:102.0.1.json | 1 + ...a-5cb4-4bc1-9d06-e4a75adbc494:102.0.2.json | 1 + ...057-d540-44f5-924d-c6a2ae92f045:1.0.0.json | 1 + ...057-d540-44f5-924d-c6a2ae92f045:1.0.1.json | 1 + ...057-d540-44f5-924d-c6a2ae92f045:1.0.2.json | 1 + ...7-dca7-4fb7-93eb-1ca03a1febbd:103.0.0.json | 1 + ...7-dca7-4fb7-93eb-1ca03a1febbd:103.0.1.json | 1 + ...7-dca7-4fb7-93eb-1ca03a1febbd:103.0.2.json | 1 + ...a-73ad-406d-bf3a-f24cc41d5c97:103.0.0.json | 1 + ...a-73ad-406d-bf3a-f24cc41d5c97:103.0.1.json | 1 + ...a-73ad-406d-bf3a-f24cc41d5c97:103.0.2.json | 1 + ...f-a70d-417f-a7d2-7a404638d47f:102.0.0.json | 1 + ...f-a70d-417f-a7d2-7a404638d47f:102.0.1.json | 1 + ...f-a70d-417f-a7d2-7a404638d47f:102.0.2.json | 1 + ...4-743e-4da8-8c03-3ebd753a6c90:100.0.0.json | 1 + ...4-743e-4da8-8c03-3ebd753a6c90:100.0.1.json | 1 + ...4-743e-4da8-8c03-3ebd753a6c90:100.0.2.json | 1 + ...b-9d2c-44b2-a061-98e5946971fa:102.0.0.json | 1 + ...b-9d2c-44b2-a061-98e5946971fa:102.0.1.json | 1 + ...b-9d2c-44b2-a061-98e5946971fa:102.0.2.json | 1 + ...3-088e-4f13-b29e-3986e0e756b8:102.0.0.json | 1 + ...3-088e-4f13-b29e-3986e0e756b8:102.0.1.json | 1 + ...3-088e-4f13-b29e-3986e0e756b8:102.0.2.json | 1 + ...2-1d82-44bd-b0bf-d9b7f91fb89e:100.0.0.json | 1 + ...2-1d82-44bd-b0bf-d9b7f91fb89e:100.0.1.json | 1 + ...2-1d82-44bd-b0bf-d9b7f91fb89e:100.0.2.json | 1 + ...b-9a11-4dd8-a3e9-f0de9c6eb5f2:101.0.0.json | 1 + ...b-9a11-4dd8-a3e9-f0de9c6eb5f2:101.0.1.json | 1 + ...b-9a11-4dd8-a3e9-f0de9c6eb5f2:101.0.2.json | 1 + ...5-8e77-4f8b-b3ce-10c0f6afbc73:101.0.0.json | 1 + ...5-8e77-4f8b-b3ce-10c0f6afbc73:101.0.1.json | 1 + ...5-8e77-4f8b-b3ce-10c0f6afbc73:101.0.2.json | 1 + ...b-b304-4bf9-970d-acdfaef2944c:100.0.0.json | 1 + ...b-b304-4bf9-970d-acdfaef2944c:100.0.1.json | 1 + ...b-b304-4bf9-970d-acdfaef2944c:100.0.2.json | 1 + ...1-ff4b-4cdc-a063-b4b8d02a67c7:100.0.0.json | 1 + ...1-ff4b-4cdc-a063-b4b8d02a67c7:100.0.1.json | 1 + ...1-ff4b-4cdc-a063-b4b8d02a67c7:100.0.2.json | 1 + ...0-d1df-49ef-8520-407857594827:102.0.0.json | 1 + ...0-d1df-49ef-8520-407857594827:102.0.1.json | 1 + ...0-d1df-49ef-8520-407857594827:102.0.2.json | 1 + ...a-b69c-4411-b110-8d7599634b30:101.0.0.json | 1 + ...a-b69c-4411-b110-8d7599634b30:101.0.1.json | 1 + ...a-b69c-4411-b110-8d7599634b30:101.0.2.json | 1 + ...d-6b53-424d-ac5e-cb8ca4251650:102.0.0.json | 1 + ...d-6b53-424d-ac5e-cb8ca4251650:102.0.1.json | 1 + ...d-6b53-424d-ac5e-cb8ca4251650:102.0.2.json | 1 + ...b-2502-43a0-bf7c-e60e662c811e:102.0.0.json | 1 + ...b-2502-43a0-bf7c-e60e662c811e:102.0.1.json | 1 + ...b-2502-43a0-bf7c-e60e662c811e:102.0.2.json | 1 + ...8-c560-4dbd-acca-1e1438bff36b:100.0.0.json | 1 + ...8-c560-4dbd-acca-1e1438bff36b:100.0.1.json | 1 + ...8-c560-4dbd-acca-1e1438bff36b:100.0.2.json | 1 + ...4-57a5-476f-858f-4e8fbb4f48d8:101.0.0.json | 1 + ...4-57a5-476f-858f-4e8fbb4f48d8:101.0.1.json | 1 + ...4-57a5-476f-858f-4e8fbb4f48d8:101.0.2.json | 1 + ...8-8da8-440b-aaaf-aedafdea2dff:102.0.0.json | 1 + ...8-8da8-440b-aaaf-aedafdea2dff:102.0.1.json | 1 + ...8-8da8-440b-aaaf-aedafdea2dff:102.0.2.json | 1 + ...e-d5ec-4b14-b4fd-e8ba8086f0e1:102.0.0.json | 1 + ...e-d5ec-4b14-b4fd-e8ba8086f0e1:102.0.1.json | 1 + ...e-d5ec-4b14-b4fd-e8ba8086f0e1:102.0.2.json | 1 + ...8-4399-4191-af1d-4feeac1f1f46:102.0.0.json | 1 + ...8-4399-4191-af1d-4feeac1f1f46:102.0.1.json | 1 + ...8-4399-4191-af1d-4feeac1f1f46:102.0.2.json | 1 + ...9-2486-49a8-8779-45fb5f9a93ee:101.0.0.json | 1 + ...9-2486-49a8-8779-45fb5f9a93ee:101.0.1.json | 1 + ...9-2486-49a8-8779-45fb5f9a93ee:101.0.2.json | 1 + ...3-2b93-47b3-a0a3-7723bcc46f6d:100.0.0.json | 1 + ...3-2b93-47b3-a0a3-7723bcc46f6d:100.0.1.json | 1 + ...3-2b93-47b3-a0a3-7723bcc46f6d:100.0.2.json | 1 + ...9-a541-44df-93a8-a8b0591b63c0:101.0.0.json | 1 + ...9-a541-44df-93a8-a8b0591b63c0:101.0.1.json | 1 + ...9-a541-44df-93a8-a8b0591b63c0:101.0.2.json | 1 + ...5-b5b2-4acc-bad9-1e18ee234f40:100.0.0.json | 1 + ...5-b5b2-4acc-bad9-1e18ee234f40:100.0.1.json | 1 + ...5-b5b2-4acc-bad9-1e18ee234f40:100.0.2.json | 1 + ...2-9a49-11ec-8d6b-acde48001122:102.0.0.json | 1 + ...2-9a49-11ec-8d6b-acde48001122:102.0.1.json | 1 + ...2-9a49-11ec-8d6b-acde48001122:102.0.2.json | 1 + ...7-2b3e-47d7-b282-f84acbbe14be:101.0.0.json | 1 + ...7-2b3e-47d7-b282-f84acbbe14be:101.0.1.json | 1 + ...7-2b3e-47d7-b282-f84acbbe14be:101.0.2.json | 1 + ...5-b1ce-4377-82d9-7c633f28bf9a:102.0.0.json | 1 + ...5-b1ce-4377-82d9-7c633f28bf9a:102.0.1.json | 1 + ...5-b1ce-4377-82d9-7c633f28bf9a:102.0.2.json | 1 + ...f-e2ab-491c-8fc6-64746da26cfe:100.0.0.json | 1 + ...f-e2ab-491c-8fc6-64746da26cfe:100.0.1.json | 1 + ...f-e2ab-491c-8fc6-64746da26cfe:100.0.2.json | 1 + ...0-cb74-42a0-af9e-29fc41f88f5f:102.0.0.json | 1 + ...0-cb74-42a0-af9e-29fc41f88f5f:102.0.1.json | 1 + ...0-cb74-42a0-af9e-29fc41f88f5f:102.0.2.json | 1 + ...d-65de-4ed2-8516-5e093d3ac99a:101.0.0.json | 1 + ...d-65de-4ed2-8516-5e093d3ac99a:101.0.1.json | 1 + ...d-65de-4ed2-8516-5e093d3ac99a:101.0.2.json | 1 + ...4-486e-462f-9487-0d4cf9e429c6:100.0.0.json | 1 + ...4-486e-462f-9487-0d4cf9e429c6:100.0.1.json | 1 + ...4-486e-462f-9487-0d4cf9e429c6:100.0.2.json | 1 + ...9-000c-4425-b94c-716ef67762f6:100.0.0.json | 1 + ...9-000c-4425-b94c-716ef67762f6:100.0.1.json | 1 + ...9-000c-4425-b94c-716ef67762f6:100.0.2.json | 1 + ...8-26b7-4e5e-924e-218144a3fa71:100.0.0.json | 1 + ...8-26b7-4e5e-924e-218144a3fa71:100.0.1.json | 1 + ...8-26b7-4e5e-924e-218144a3fa71:100.0.2.json | 1 + ...2-120a-4db2-bd3f-3e4b86b24bee:102.0.0.json | 1 + ...2-120a-4db2-bd3f-3e4b86b24bee:102.0.1.json | 1 + ...2-120a-4db2-bd3f-3e4b86b24bee:102.0.2.json | 1 + ...0-658f-4a60-832f-a00d1e6c6745:101.0.0.json | 1 + ...0-658f-4a60-832f-a00d1e6c6745:101.0.1.json | 1 + ...0-658f-4a60-832f-a00d1e6c6745:101.0.2.json | 1 + ...e-bf99-446c-ab1a-2dc0183394b8:100.0.0.json | 1 + ...e-bf99-446c-ab1a-2dc0183394b8:100.0.1.json | 1 + ...e-bf99-446c-ab1a-2dc0183394b8:100.0.2.json | 1 + ...9-665f-4aac-b9e8-68369bf2340c:100.0.0.json | 1 + ...9-665f-4aac-b9e8-68369bf2340c:100.0.1.json | 1 + ...9-665f-4aac-b9e8-68369bf2340c:100.0.2.json | 1 + ...6-ba45-4bab-a534-df53d0cfed6a:102.0.0.json | 1 + ...6-ba45-4bab-a534-df53d0cfed6a:102.0.1.json | 1 + ...6-ba45-4bab-a534-df53d0cfed6a:102.0.2.json | 1 + ...5-f986-4b5a-82ed-e36b129331f7:100.0.0.json | 1 + ...5-f986-4b5a-82ed-e36b129331f7:100.0.1.json | 1 + ...5-f986-4b5a-82ed-e36b129331f7:100.0.2.json | 1 + ...2-712f-4f01-a751-df3826969807:101.0.0.json | 1 + ...2-712f-4f01-a751-df3826969807:101.0.1.json | 1 + ...2-712f-4f01-a751-df3826969807:101.0.2.json | 1 + ...0-0fcb-4ed1-87e5-b06d58efc5e9:102.0.0.json | 1 + ...0-0fcb-4ed1-87e5-b06d58efc5e9:102.0.1.json | 1 + ...0-0fcb-4ed1-87e5-b06d58efc5e9:102.0.2.json | 1 + ...4-677f-4fb9-86d5-a9721274223b:102.0.0.json | 1 + ...4-677f-4fb9-86d5-a9721274223b:102.0.1.json | 1 + ...4-677f-4fb9-86d5-a9721274223b:102.0.2.json | 1 + ...e-a1b2-421f-9d47-22a75a6f2921:102.0.0.json | 1 + ...e-a1b2-421f-9d47-22a75a6f2921:102.0.1.json | 1 + ...e-a1b2-421f-9d47-22a75a6f2921:102.0.2.json | 1 + ...2-dac4-11ec-9582-f661ea17fbcd:100.0.0.json | 1 + ...2-dac4-11ec-9582-f661ea17fbcd:100.0.1.json | 1 + ...2-dac4-11ec-9582-f661ea17fbcd:100.0.2.json | 1 + ...e-1a76-422d-9179-7b389513e74d:101.0.0.json | 1 + ...e-1a76-422d-9179-7b389513e74d:101.0.1.json | 1 + ...e-1a76-422d-9179-7b389513e74d:101.0.2.json | 1 + ...2-2b75-4ffb-b7d6-38787298ba9d:101.0.0.json | 1 + ...2-2b75-4ffb-b7d6-38787298ba9d:101.0.1.json | 1 + ...2-2b75-4ffb-b7d6-38787298ba9d:101.0.2.json | 1 + ...0-3bdb-4141-b0e3-13e3cf627bfe:102.0.0.json | 1 + ...0-3bdb-4141-b0e3-13e3cf627bfe:102.0.1.json | 1 + ...0-3bdb-4141-b0e3-13e3cf627bfe:102.0.2.json | 1 + ...4-0b62-46e5-977c-31275da34419:102.0.0.json | 1 + ...4-0b62-46e5-977c-31275da34419:102.0.1.json | 1 + ...4-0b62-46e5-977c-31275da34419:102.0.2.json | 1 + ...6-2eb3-4edf-8346-427b6858d3bd:101.0.0.json | 1 + ...6-2eb3-4edf-8346-427b6858d3bd:101.0.1.json | 1 + ...6-2eb3-4edf-8346-427b6858d3bd:101.0.2.json | 1 + ...7-0d98-4738-b15d-8d7465f95ff5:100.0.0.json | 1 + ...7-0d98-4738-b15d-8d7465f95ff5:100.0.1.json | 1 + ...7-0d98-4738-b15d-8d7465f95ff5:100.0.2.json | 1 + ...7-7e0d-4359-8bf0-2c112ce2008a:101.0.0.json | 1 + ...7-7e0d-4359-8bf0-2c112ce2008a:101.0.1.json | 1 + ...7-7e0d-4359-8bf0-2c112ce2008a:101.0.2.json | 1 + ...a-2d44-47f2-a873-aabdc0d355e6:100.0.0.json | 1 + ...a-2d44-47f2-a873-aabdc0d355e6:100.0.1.json | 1 + ...a-2d44-47f2-a873-aabdc0d355e6:100.0.2.json | 1 + ...2f7-df06-4c00-a5aa-1f6fbc7bb72c:1.0.0.json | 1 + ...2f7-df06-4c00-a5aa-1f6fbc7bb72c:1.0.1.json | 1 + ...2f7-df06-4c00-a5aa-1f6fbc7bb72c:1.0.2.json | 1 + ...2-5e0e-424b-83a0-5aef95aa43bf:102.0.0.json | 1 + ...2-5e0e-424b-83a0-5aef95aa43bf:102.0.1.json | 1 + ...2-5e0e-424b-83a0-5aef95aa43bf:102.0.2.json | 1 + ...1-4742-49ce-9ddc-b8e84c35acae:100.0.0.json | 1 + ...1-4742-49ce-9ddc-b8e84c35acae:100.0.1.json | 1 + ...1-4742-49ce-9ddc-b8e84c35acae:100.0.2.json | 1 + ...f-82c6-4816-befa-44745030e917:101.0.0.json | 1 + ...f-82c6-4816-befa-44745030e917:101.0.1.json | 1 + ...f-82c6-4816-befa-44745030e917:101.0.2.json | 1 + ...2-583c-439f-b04d-1fdd7c1417cc:100.0.0.json | 1 + ...2-583c-439f-b04d-1fdd7c1417cc:100.0.1.json | 1 + ...2-583c-439f-b04d-1fdd7c1417cc:100.0.2.json | 1 + ...c-5e1c-4f33-bfc9-efa73bb53022:100.0.0.json | 1 + ...c-5e1c-4f33-bfc9-efa73bb53022:100.0.1.json | 1 + ...c-5e1c-4f33-bfc9-efa73bb53022:100.0.2.json | 1 + ...2-7ae2-475c-8b5d-55b449e4264f:101.0.0.json | 1 + ...2-7ae2-475c-8b5d-55b449e4264f:101.0.1.json | 1 + ...2-7ae2-475c-8b5d-55b449e4264f:101.0.2.json | 1 + ...2-1700-48a8-a750-b43b0a72ab69:101.0.0.json | 1 + ...2-1700-48a8-a750-b43b0a72ab69:101.0.1.json | 1 + ...2-1700-48a8-a750-b43b0a72ab69:101.0.2.json | 1 + ...2-b85c-41c6-9b28-be0e5cdfc9b1:101.0.0.json | 1 + ...2-b85c-41c6-9b28-be0e5cdfc9b1:101.0.1.json | 1 + ...2-b85c-41c6-9b28-be0e5cdfc9b1:101.0.2.json | 1 + ...5-8267-41fa-9232-20e5582596ac:101.0.0.json | 1 + ...5-8267-41fa-9232-20e5582596ac:101.0.1.json | 1 + ...5-8267-41fa-9232-20e5582596ac:101.0.2.json | 1 + ...d-dab0-47a3-b135-0925f0a333bc:103.0.0.json | 1 + ...d-dab0-47a3-b135-0925f0a333bc:103.0.1.json | 1 + ...d-dab0-47a3-b135-0925f0a333bc:103.0.2.json | 1 + ...3-32b8-4ae2-b0e6-6a45772e9331:102.0.0.json | 1 + ...3-32b8-4ae2-b0e6-6a45772e9331:102.0.1.json | 1 + ...3-32b8-4ae2-b0e6-6a45772e9331:102.0.2.json | 1 + ...f-2972-434f-b782-3a532b100d67:100.0.0.json | 1 + ...f-2972-434f-b782-3a532b100d67:100.0.1.json | 1 + ...f-2972-434f-b782-3a532b100d67:100.0.2.json | 1 + ...7-4a23-4232-b551-eca3ca1e3f20:101.0.0.json | 1 + ...7-4a23-4232-b551-eca3ca1e3f20:101.0.1.json | 1 + ...7-4a23-4232-b551-eca3ca1e3f20:101.0.2.json | 1 + ...7e0-92fd-4b7c-b11e-ee0266b8d9c9:1.0.0.json | 1 + ...7e0-92fd-4b7c-b11e-ee0266b8d9c9:1.0.1.json | 1 + ...7e0-92fd-4b7c-b11e-ee0266b8d9c9:1.0.2.json | 1 + ...e-4a48-47b1-adb7-5074310e9a61:102.0.0.json | 1 + ...e-4a48-47b1-adb7-5074310e9a61:102.0.1.json | 1 + ...e-4a48-47b1-adb7-5074310e9a61:102.0.2.json | 1 + ...0-8b61-4457-ab38-96943984e889:102.0.0.json | 1 + ...0-8b61-4457-ab38-96943984e889:102.0.1.json | 1 + ...0-8b61-4457-ab38-96943984e889:102.0.2.json | 1 + ...e-f671-494e-98df-f01daf9e5f17:100.0.0.json | 1 + ...e-f671-494e-98df-f01daf9e5f17:100.0.1.json | 1 + ...e-f671-494e-98df-f01daf9e5f17:100.0.2.json | 1 + ...b-08d4-492c-870a-6c04e3700034:100.0.0.json | 1 + ...b-08d4-492c-870a-6c04e3700034:100.0.1.json | 1 + ...b-08d4-492c-870a-6c04e3700034:100.0.2.json | 1 + ...d-4bcd-4e0a-b5f9-5562003dde81:102.0.0.json | 1 + ...d-4bcd-4e0a-b5f9-5562003dde81:102.0.1.json | 1 + ...d-4bcd-4e0a-b5f9-5562003dde81:102.0.2.json | 1 + ...f-ce26-4607-b405-ba1ed8e9e204:101.0.0.json | 1 + ...f-ce26-4607-b405-ba1ed8e9e204:101.0.1.json | 1 + ...f-ce26-4607-b405-ba1ed8e9e204:101.0.2.json | 1 + ...b-a2a7-48a3-817f-e41829dc61ee:102.0.0.json | 1 + ...b-a2a7-48a3-817f-e41829dc61ee:102.0.1.json | 1 + ...b-a2a7-48a3-817f-e41829dc61ee:102.0.2.json | 1 + ...f-5e1d-463c-a1b0-04edcdfe1a3d:100.0.0.json | 1 + ...f-5e1d-463c-a1b0-04edcdfe1a3d:100.0.1.json | 1 + ...f-5e1d-463c-a1b0-04edcdfe1a3d:100.0.2.json | 1 + ...8-9974-42da-bfb6-53a0a515a145:101.0.0.json | 1 + ...8-9974-42da-bfb6-53a0a515a145:101.0.1.json | 1 + ...8-9974-42da-bfb6-53a0a515a145:101.0.2.json | 1 + ...1-e180-48ed-aa08-96b36899d48f:100.0.0.json | 1 + ...1-e180-48ed-aa08-96b36899d48f:100.0.1.json | 1 + ...1-e180-48ed-aa08-96b36899d48f:100.0.2.json | 1 + ...4-0788-470f-8e74-eb4a14d47573:101.0.0.json | 1 + ...4-0788-470f-8e74-eb4a14d47573:101.0.1.json | 1 + ...4-0788-470f-8e74-eb4a14d47573:101.0.2.json | 1 + ...7-95e1-4368-bfab-9fd34cf867ec:102.0.0.json | 1 + ...7-95e1-4368-bfab-9fd34cf867ec:102.0.1.json | 1 + ...7-95e1-4368-bfab-9fd34cf867ec:102.0.2.json | 1 + ...c-f014-40ef-88b6-79a1d67cd499:100.0.0.json | 1 + ...c-f014-40ef-88b6-79a1d67cd499:100.0.1.json | 1 + ...c-f014-40ef-88b6-79a1d67cd499:100.0.2.json | 1 + ...2-4115-408a-b897-e14f684b3cb7:100.0.0.json | 1 + ...2-4115-408a-b897-e14f684b3cb7:100.0.1.json | 1 + ...2-4115-408a-b897-e14f684b3cb7:100.0.2.json | 1 + ...0-0133-451c-a783-533e736c12d7:101.0.0.json | 1 + ...0-0133-451c-a783-533e736c12d7:101.0.1.json | 1 + ...0-0133-451c-a783-533e736c12d7:101.0.2.json | 1 + ...b-f73c-41be-b60b-87f4df707fe3:100.0.0.json | 1 + ...b-f73c-41be-b60b-87f4df707fe3:100.0.1.json | 1 + ...b-f73c-41be-b60b-87f4df707fe3:100.0.2.json | 1 + ...0-22f3-4bf7-991d-b643513c722f:100.0.0.json | 1 + ...0-22f3-4bf7-991d-b643513c722f:100.0.1.json | 1 + ...0-22f3-4bf7-991d-b643513c722f:100.0.2.json | 1 + ...8-910e-43b4-8d44-d748e498ca86:101.0.0.json | 1 + ...8-910e-43b4-8d44-d748e498ca86:101.0.1.json | 1 + ...8-910e-43b4-8d44-d748e498ca86:101.0.2.json | 1 + ...c-64f2-4f48-b67e-b5a8ffe3aa14:102.0.0.json | 1 + ...c-64f2-4f48-b67e-b5a8ffe3aa14:102.0.1.json | 1 + ...c-64f2-4f48-b67e-b5a8ffe3aa14:102.0.2.json | 1 + ...2-d44f-47be-aaef-4cfb2f9cc799:100.0.0.json | 1 + ...2-d44f-47be-aaef-4cfb2f9cc799:100.0.1.json | 1 + ...2-d44f-47be-aaef-4cfb2f9cc799:100.0.2.json | 1 + ...9-e2a5-4804-847f-f2732edc5156:100.0.0.json | 1 + ...9-e2a5-4804-847f-f2732edc5156:100.0.1.json | 1 + ...9-e2a5-4804-847f-f2732edc5156:100.0.2.json | 1 + ...1-2e1d-4497-8491-e73a45d1a6d6:102.0.0.json | 1 + ...1-2e1d-4497-8491-e73a45d1a6d6:102.0.1.json | 1 + ...1-2e1d-4497-8491-e73a45d1a6d6:102.0.2.json | 1 + ...1-d111-4cf8-baec-c26a39bc31ef:101.0.0.json | 1 + ...1-d111-4cf8-baec-c26a39bc31ef:101.0.1.json | 1 + ...1-d111-4cf8-baec-c26a39bc31ef:101.0.2.json | 1 + ...6-7f57-4ee8-9313-3d0024caee10:101.0.0.json | 1 + ...6-7f57-4ee8-9313-3d0024caee10:101.0.1.json | 1 + ...6-7f57-4ee8-9313-3d0024caee10:101.0.2.json | 1 + ...3-13a2-44a2-946c-e9dc0aa0449c:102.0.0.json | 1 + ...3-13a2-44a2-946c-e9dc0aa0449c:102.0.1.json | 1 + ...3-13a2-44a2-946c-e9dc0aa0449c:102.0.2.json | 1 + ...3-56e0-47f9-b5bb-55a5ed89ba57:101.0.0.json | 1 + ...3-56e0-47f9-b5bb-55a5ed89ba57:101.0.1.json | 1 + ...3-56e0-47f9-b5bb-55a5ed89ba57:101.0.2.json | 1 + ...3-90eb-4fe7-a98c-cde7bbfc504a:102.0.0.json | 1 + ...3-90eb-4fe7-a98c-cde7bbfc504a:102.0.1.json | 1 + ...3-90eb-4fe7-a98c-cde7bbfc504a:102.0.2.json | 1 + ...7-a069-4a73-b1f2-43a3798153ad:102.0.0.json | 1 + ...7-a069-4a73-b1f2-43a3798153ad:102.0.1.json | 1 + ...7-a069-4a73-b1f2-43a3798153ad:102.0.2.json | 1 + ...5-ab2c-4d49-8890-e2943fa65c09:102.0.0.json | 1 + ...5-ab2c-4d49-8890-e2943fa65c09:102.0.1.json | 1 + ...5-ab2c-4d49-8890-e2943fa65c09:102.0.2.json | 1 + ...4-7814-44c2-92a9-f7d851ea246a:101.0.0.json | 1 + ...4-7814-44c2-92a9-f7d851ea246a:101.0.1.json | 1 + ...4-7814-44c2-92a9-f7d851ea246a:101.0.2.json | 1 + ...c-337a-4f38-b50d-5eeb78bdb531:200.0.0.json | 1 + ...c-337a-4f38-b50d-5eeb78bdb531:200.0.1.json | 1 + ...c-337a-4f38-b50d-5eeb78bdb531:200.0.2.json | 1 + ...0-32ff-4f9a-bfc2-dcb242bf99f9:101.0.0.json | 1 + ...0-32ff-4f9a-bfc2-dcb242bf99f9:101.0.1.json | 1 + ...0-32ff-4f9a-bfc2-dcb242bf99f9:101.0.2.json | 1 + ...3-ca2a-41f6-a8b0-ee98abe0f573:100.0.0.json | 1 + ...3-ca2a-41f6-a8b0-ee98abe0f573:100.0.1.json | 1 + ...3-ca2a-41f6-a8b0-ee98abe0f573:100.0.2.json | 1 + ...b-82b9-4408-a533-3c3df549e62d:100.0.0.json | 1 + ...b-82b9-4408-a533-3c3df549e62d:100.0.1.json | 1 + ...b-82b9-4408-a533-3c3df549e62d:100.0.2.json | 1 + ...8-d701-420c-ba43-f11a155b681a:100.0.0.json | 1 + ...8-d701-420c-ba43-f11a155b681a:100.0.1.json | 1 + ...8-d701-420c-ba43-f11a155b681a:100.0.2.json | 1 + ...f-fb9e-4874-a4bd-fd9e3f9becf1:102.0.0.json | 1 + ...f-fb9e-4874-a4bd-fd9e3f9becf1:102.0.1.json | 1 + ...f-fb9e-4874-a4bd-fd9e3f9becf1:102.0.2.json | 1 + ...c-d2c8-485c-a36f-534f914b7663:100.0.0.json | 1 + ...c-d2c8-485c-a36f-534f914b7663:100.0.1.json | 1 + ...c-d2c8-485c-a36f-534f914b7663:100.0.2.json | 1 + ...0-5649-4c52-87ea-9be59dbfbcf2:100.0.0.json | 1 + ...0-5649-4c52-87ea-9be59dbfbcf2:100.0.1.json | 1 + ...0-5649-4c52-87ea-9be59dbfbcf2:100.0.2.json | 1 + ...0-0164-475b-a75e-74b47800a9ff:102.0.0.json | 1 + ...0-0164-475b-a75e-74b47800a9ff:102.0.1.json | 1 + ...0-0164-475b-a75e-74b47800a9ff:102.0.2.json | 1 + ...6-faf2-4cd5-886e-2c9636cfcb87:102.0.0.json | 1 + ...6-faf2-4cd5-886e-2c9636cfcb87:102.0.1.json | 1 + ...6-faf2-4cd5-886e-2c9636cfcb87:102.0.2.json | 1 + ...4-3f4c-4bf3-ad48-0e61a60ea1fa:100.0.0.json | 1 + ...4-3f4c-4bf3-ad48-0e61a60ea1fa:100.0.1.json | 1 + ...4-3f4c-4bf3-ad48-0e61a60ea1fa:100.0.2.json | 1 + ...e-40e1-4e45-a097-0e5fbc876ac2:101.0.0.json | 1 + ...e-40e1-4e45-a097-0e5fbc876ac2:101.0.1.json | 1 + ...e-40e1-4e45-a097-0e5fbc876ac2:101.0.2.json | 1 + ...2-d165-11ec-a764-f661ea17fbce:102.0.0.json | 1 + ...2-d165-11ec-a764-f661ea17fbce:102.0.1.json | 1 + ...2-d165-11ec-a764-f661ea17fbce:102.0.2.json | 1 + ...a-abd7-4ef3-b5d3-95524de7cfe1:103.0.0.json | 1 + ...a-abd7-4ef3-b5d3-95524de7cfe1:103.0.1.json | 1 + ...a-abd7-4ef3-b5d3-95524de7cfe1:103.0.2.json | 1 + ...2-55c8-42f0-b0dd-afb0bb0b1f51:100.0.0.json | 1 + ...2-55c8-42f0-b0dd-afb0bb0b1f51:100.0.1.json | 1 + ...2-55c8-42f0-b0dd-afb0bb0b1f51:100.0.2.json | 1 + ...0-ba3a-4939-b87f-2901764ed036:100.0.0.json | 1 + ...0-ba3a-4939-b87f-2901764ed036:100.0.1.json | 1 + ...0-ba3a-4939-b87f-2901764ed036:100.0.2.json | 1 + ...a20-2df2-11ed-8378-f661ea17fbce:2.0.0.json | 1 + ...a20-2df2-11ed-8378-f661ea17fbce:2.0.1.json | 1 + ...a20-2df2-11ed-8378-f661ea17fbce:2.0.2.json | 1 + ...d-6f47-48e4-a87c-4977bd4633c3:102.0.0.json | 1 + ...d-6f47-48e4-a87c-4977bd4633c3:102.0.1.json | 1 + ...d-6f47-48e4-a87c-4977bd4633c3:102.0.2.json | 1 + ...5-da92-45c9-9f29-b4992ad621a0:102.0.0.json | 1 + ...5-da92-45c9-9f29-b4992ad621a0:102.0.1.json | 1 + ...5-da92-45c9-9f29-b4992ad621a0:102.0.2.json | 1 + ...4-9882-4c67-87b4-449a7ae8079c:101.0.0.json | 1 + ...4-9882-4c67-87b4-449a7ae8079c:101.0.1.json | 1 + ...4-9882-4c67-87b4-449a7ae8079c:101.0.2.json | 1 + ...0-0261-46e8-9932-a0336278cdbe:102.0.0.json | 1 + ...0-0261-46e8-9932-a0336278cdbe:102.0.1.json | 1 + ...0-0261-46e8-9932-a0336278cdbe:102.0.2.json | 1 + ...9-9b3f-4f57-8ff8-ac4cd2d5f530:100.0.0.json | 1 + ...9-9b3f-4f57-8ff8-ac4cd2d5f530:100.0.1.json | 1 + ...9-9b3f-4f57-8ff8-ac4cd2d5f530:100.0.2.json | 1 + ...f-e34b-4bb0-8931-57d0a043f2ef:100.0.0.json | 1 + ...f-e34b-4bb0-8931-57d0a043f2ef:100.0.1.json | 1 + ...f-e34b-4bb0-8931-57d0a043f2ef:100.0.2.json | 1 + ...e-9db0-48e3-9391-ae3bf241acd8:102.0.0.json | 1 + ...e-9db0-48e3-9391-ae3bf241acd8:102.0.1.json | 1 + ...e-9db0-48e3-9391-ae3bf241acd8:102.0.2.json | 1 + ...1-dc97-43c6-a538-f26a20c0a911:102.0.0.json | 1 + ...1-dc97-43c6-a538-f26a20c0a911:102.0.1.json | 1 + ...1-dc97-43c6-a538-f26a20c0a911:102.0.2.json | 1 + ...5-6cb0-466d-b74f-8d2c76f47f05:101.0.0.json | 1 + ...5-6cb0-466d-b74f-8d2c76f47f05:101.0.1.json | 1 + ...5-6cb0-466d-b74f-8d2c76f47f05:101.0.2.json | 1 + ...2-9cc9-445a-9ae7-fced307ec53c:101.0.0.json | 1 + ...2-9cc9-445a-9ae7-fced307ec53c:101.0.1.json | 1 + ...2-9cc9-445a-9ae7-fced307ec53c:101.0.2.json | 1 + ...4-c577-4fd6-8f9b-d1b8ec519ec0:101.0.0.json | 1 + ...4-c577-4fd6-8f9b-d1b8ec519ec0:101.0.1.json | 1 + ...4-c577-4fd6-8f9b-d1b8ec519ec0:101.0.2.json | 1 + ...1-2225-4763-b4ce-6f71e5bda5e6:102.0.0.json | 1 + ...1-2225-4763-b4ce-6f71e5bda5e6:102.0.1.json | 1 + ...1-2225-4763-b4ce-6f71e5bda5e6:102.0.2.json | 1 + ...3e7-b57d-4023-9952-2db91b1767c4:1.0.0.json | 1 + ...3e7-b57d-4023-9952-2db91b1767c4:1.0.1.json | 1 + ...3e7-b57d-4023-9952-2db91b1767c4:1.0.2.json | 1 + ...f-73e9-40d1-a9ed-077e3158a855:100.0.0.json | 1 + ...f-73e9-40d1-a9ed-077e3158a855:100.0.1.json | 1 + ...f-73e9-40d1-a9ed-077e3158a855:100.0.2.json | 1 + ...4-7d56-41b4-b999-bdf8c25648a0:102.0.0.json | 1 + ...4-7d56-41b4-b999-bdf8c25648a0:102.0.1.json | 1 + ...4-7d56-41b4-b999-bdf8c25648a0:102.0.2.json | 1 + ...6-d2ad-4cc4-bf7b-54787473669a:100.0.0.json | 1 + ...6-d2ad-4cc4-bf7b-54787473669a:100.0.1.json | 1 + ...6-d2ad-4cc4-bf7b-54787473669a:100.0.2.json | 1 + ...a-e5b1-451b-8534-ba62bca0b404:102.0.0.json | 1 + ...a-e5b1-451b-8534-ba62bca0b404:102.0.1.json | 1 + ...a-e5b1-451b-8534-ba62bca0b404:102.0.2.json | 1 + ...2-6db4-4941-80a5-8270db72eb61:102.0.0.json | 1 + ...2-6db4-4941-80a5-8270db72eb61:102.0.1.json | 1 + ...2-6db4-4941-80a5-8270db72eb61:102.0.2.json | 1 + ...3bf-9a11-463e-bd46-f648f2a0f4b1:1.0.0.json | 1 + ...3bf-9a11-463e-bd46-f648f2a0f4b1:1.0.1.json | 1 + ...3bf-9a11-463e-bd46-f648f2a0f4b1:1.0.2.json | 1 + ...0-43e8-49e2-85ea-3a58fe120b4f:100.0.0.json | 1 + ...0-43e8-49e2-85ea-3a58fe120b4f:100.0.1.json | 1 + ...0-43e8-49e2-85ea-3a58fe120b4f:100.0.2.json | 1 + ...3-4aca-4d1f-a7b1-a9161c0ad86f:102.0.0.json | 1 + ...3-4aca-4d1f-a7b1-a9161c0ad86f:102.0.1.json | 1 + ...3-4aca-4d1f-a7b1-a9161c0ad86f:102.0.2.json | 1 + ...f-7a16-4def-89ce-9fc7127d7820:100.0.0.json | 1 + ...f-7a16-4def-89ce-9fc7127d7820:100.0.1.json | 1 + ...f-7a16-4def-89ce-9fc7127d7820:100.0.2.json | 1 + ...6-1e0a-48ec-b96a-faf2309fae46:100.0.0.json | 1 + ...6-1e0a-48ec-b96a-faf2309fae46:100.0.1.json | 1 + ...6-1e0a-48ec-b96a-faf2309fae46:100.0.2.json | 1 + ...0-9d43-465e-b8bf-50230da6718b:100.0.0.json | 1 + ...0-9d43-465e-b8bf-50230da6718b:100.0.1.json | 1 + ...0-9d43-465e-b8bf-50230da6718b:100.0.2.json | 1 + ...a-2e72-462b-8658-3e5ea22db3a6:100.0.0.json | 1 + ...a-2e72-462b-8658-3e5ea22db3a6:100.0.1.json | 1 + ...a-2e72-462b-8658-3e5ea22db3a6:100.0.2.json | 1 + ...5-cf0c-4c06-b688-53fdc072fdfd:102.0.0.json | 1 + ...5-cf0c-4c06-b688-53fdc072fdfd:102.0.1.json | 1 + ...5-cf0c-4c06-b688-53fdc072fdfd:102.0.2.json | 1 + ...8-1bc1-4cff-85ba-e7b21c5beedc:101.0.0.json | 1 + ...8-1bc1-4cff-85ba-e7b21c5beedc:101.0.1.json | 1 + ...8-1bc1-4cff-85ba-e7b21c5beedc:101.0.2.json | 1 + ...e-3dd1-4856-9aad-ccfe4d4bfa17:103.0.0.json | 1 + ...e-3dd1-4856-9aad-ccfe4d4bfa17:103.0.1.json | 1 + ...e-3dd1-4856-9aad-ccfe4d4bfa17:103.0.2.json | 1 + ...8-a7c9-43e5-aee3-15a725a794e7:102.0.0.json | 1 + ...8-a7c9-43e5-aee3-15a725a794e7:102.0.1.json | 1 + ...8-a7c9-43e5-aee3-15a725a794e7:102.0.2.json | 1 + ...5ad-1c82-4074-a12a-125fe10ac8ba:1.0.0.json | 1 + ...5ad-1c82-4074-a12a-125fe10ac8ba:1.0.1.json | 1 + ...5ad-1c82-4074-a12a-125fe10ac8ba:1.0.2.json | 1 + ...5-5f1c-4b6d-9e63-5b6b145cd4aa:101.0.0.json | 1 + ...5-5f1c-4b6d-9e63-5b6b145cd4aa:101.0.1.json | 1 + ...5-5f1c-4b6d-9e63-5b6b145cd4aa:101.0.2.json | 1 + ...f-d5b0-43bd-8ddb-7a5d500b7da5:102.0.0.json | 1 + ...f-d5b0-43bd-8ddb-7a5d500b7da5:102.0.1.json | 1 + ...f-d5b0-43bd-8ddb-7a5d500b7da5:102.0.2.json | 1 + ...c-6e91-42ff-ac8b-e573268c5a87:102.0.0.json | 1 + ...c-6e91-42ff-ac8b-e573268c5a87:102.0.1.json | 1 + ...c-6e91-42ff-ac8b-e573268c5a87:102.0.2.json | 1 + ...a-203e-4a46-a3e3-40512cfe8fbb:101.0.0.json | 1 + ...a-203e-4a46-a3e3-40512cfe8fbb:101.0.1.json | 1 + ...a-203e-4a46-a3e3-40512cfe8fbb:101.0.2.json | 1 + ...2-b989-419d-b797-ac1e54ec2d61:100.0.0.json | 1 + ...2-b989-419d-b797-ac1e54ec2d61:100.0.1.json | 1 + ...2-b989-419d-b797-ac1e54ec2d61:100.0.2.json | 1 + ...f-fc95-4001-9297-01cb7412232f:100.0.0.json | 1 + ...f-fc95-4001-9297-01cb7412232f:100.0.1.json | 1 + ...f-fc95-4001-9297-01cb7412232f:100.0.2.json | 1 + ...a-6134-4edd-86e6-564a92a933f9:101.0.0.json | 1 + ...a-6134-4edd-86e6-564a92a933f9:101.0.1.json | 1 + ...a-6134-4edd-86e6-564a92a933f9:101.0.2.json | 1 + ...9-c19a-4a96-8ae3-41496ef3bcf9:100.0.0.json | 1 + ...9-c19a-4a96-8ae3-41496ef3bcf9:100.0.1.json | 1 + ...9-c19a-4a96-8ae3-41496ef3bcf9:100.0.2.json | 1 + ...3-aab9-4f66-a21a-3d79ecdd603d:100.0.0.json | 1 + ...3-aab9-4f66-a21a-3d79ecdd603d:100.0.1.json | 1 + ...3-aab9-4f66-a21a-3d79ecdd603d:100.0.2.json | 1 + ...a-93ed-43c1-bbb6-c0dd3eff2958:103.0.0.json | 1 + ...a-93ed-43c1-bbb6-c0dd3eff2958:103.0.1.json | 1 + ...a-93ed-43c1-bbb6-c0dd3eff2958:103.0.2.json | 1 + ...b-c8e2-47a5-97b9-170d076827c4:102.0.0.json | 1 + ...b-c8e2-47a5-97b9-170d076827c4:102.0.1.json | 1 + ...b-c8e2-47a5-97b9-170d076827c4:102.0.2.json | 1 + ...ee1-129c-4661-a7aa-57d0b9645fad:1.0.0.json | 1 + ...ee1-129c-4661-a7aa-57d0b9645fad:1.0.1.json | 1 + ...ee1-129c-4661-a7aa-57d0b9645fad:1.0.2.json | 1 + ...5-76dc-40e2-9f71-1773b96d24cf:103.0.0.json | 1 + ...5-76dc-40e2-9f71-1773b96d24cf:103.0.1.json | 1 + ...5-76dc-40e2-9f71-1773b96d24cf:103.0.2.json | 1 + ...8-03cd-4988-9e2c-d0a4863adb13:100.0.0.json | 1 + ...8-03cd-4988-9e2c-d0a4863adb13:100.0.1.json | 1 + ...8-03cd-4988-9e2c-d0a4863adb13:100.0.2.json | 1 + ...4-dac3-48e3-b47f-eb79db358f57:102.0.0.json | 1 + ...4-dac3-48e3-b47f-eb79db358f57:102.0.1.json | 1 + ...4-dac3-48e3-b47f-eb79db358f57:102.0.2.json | 1 + ...e-c999-400f-b640-50a081cc0fd1:102.0.0.json | 1 + ...e-c999-400f-b640-50a081cc0fd1:102.0.1.json | 1 + ...e-c999-400f-b640-50a081cc0fd1:102.0.2.json | 1 + ...524-643e-11ed-9e35-f661ea17fbcd:1.0.0.json | 1 + ...524-643e-11ed-9e35-f661ea17fbcd:1.0.1.json | 1 + ...524-643e-11ed-9e35-f661ea17fbcd:1.0.2.json | 1 + ...f-7089-44f5-9fda-de5b11322e77:101.0.0.json | 1 + ...f-7089-44f5-9fda-de5b11322e77:101.0.1.json | 1 + ...f-7089-44f5-9fda-de5b11322e77:101.0.2.json | 1 + ...0-49e9-4e92-a64d-53ade2e66af1:102.0.0.json | 1 + ...0-49e9-4e92-a64d-53ade2e66af1:102.0.1.json | 1 + ...0-49e9-4e92-a64d-53ade2e66af1:102.0.2.json | 1 + ...a-46bc-4a4d-bae5-5cdd14222795:100.0.0.json | 1 + ...a-46bc-4a4d-bae5-5cdd14222795:100.0.1.json | 1 + ...a-46bc-4a4d-bae5-5cdd14222795:100.0.2.json | 1 + ...3-72a8-46a9-a08e-3f5b04a4a97a:100.0.0.json | 1 + ...3-72a8-46a9-a08e-3f5b04a4a97a:100.0.1.json | 1 + ...3-72a8-46a9-a08e-3f5b04a4a97a:100.0.2.json | 1 + ...4-1baa-4479-b42e-48da84642330:101.0.0.json | 1 + ...4-1baa-4479-b42e-48da84642330:101.0.1.json | 1 + ...4-1baa-4479-b42e-48da84642330:101.0.2.json | 1 + ...9-caab-4b88-affa-044f4395a1e0:100.0.0.json | 1 + ...9-caab-4b88-affa-044f4395a1e0:100.0.1.json | 1 + ...9-caab-4b88-affa-044f4395a1e0:100.0.2.json | 1 + ...6-c92b-4943-bc68-04460a5ea5ba:200.0.0.json | 1 + ...6-c92b-4943-bc68-04460a5ea5ba:200.0.1.json | 1 + ...6-c92b-4943-bc68-04460a5ea5ba:200.0.2.json | 1 + ...a-72c6-4181-ac2b-0f83d17ad969:101.0.0.json | 1 + ...a-72c6-4181-ac2b-0f83d17ad969:101.0.1.json | 1 + ...a-72c6-4181-ac2b-0f83d17ad969:101.0.2.json | 1 + ...5-48d0-4f46-8a13-7d0aba05df82:100.0.0.json | 1 + ...5-48d0-4f46-8a13-7d0aba05df82:100.0.1.json | 1 + ...5-48d0-4f46-8a13-7d0aba05df82:100.0.2.json | 1 + ...9-0380-4b2b-8d71-8000377d6e49:102.0.0.json | 1 + ...9-0380-4b2b-8d71-8000377d6e49:102.0.1.json | 1 + ...9-0380-4b2b-8d71-8000377d6e49:102.0.2.json | 1 + ...1-0342-453d-95a9-a068b257b053:101.0.0.json | 1 + ...1-0342-453d-95a9-a068b257b053:101.0.1.json | 1 + ...1-0342-453d-95a9-a068b257b053:101.0.2.json | 1 + ...8-99b1-44f2-830c-3a38a43207ca:101.0.0.json | 1 + ...8-99b1-44f2-830c-3a38a43207ca:101.0.1.json | 1 + ...8-99b1-44f2-830c-3a38a43207ca:101.0.2.json | 1 + ...7-fdd7-49c2-9e5b-ec49d817bc8d:101.0.0.json | 1 + ...7-fdd7-49c2-9e5b-ec49d817bc8d:101.0.1.json | 1 + ...7-fdd7-49c2-9e5b-ec49d817bc8d:101.0.2.json | 1 + ...e-130e-4c07-961f-8a339f0b8362:100.0.0.json | 1 + ...e-130e-4c07-961f-8a339f0b8362:100.0.1.json | 1 + ...e-130e-4c07-961f-8a339f0b8362:100.0.2.json | 1 + ...4-c816-40d3-a810-48d6fbd8b2fd:100.0.0.json | 1 + ...4-c816-40d3-a810-48d6fbd8b2fd:100.0.1.json | 1 + ...4-c816-40d3-a810-48d6fbd8b2fd:100.0.2.json | 1 + ...e-c590-4e82-8e05-41e81bd822ad:102.0.0.json | 1 + ...e-c590-4e82-8e05-41e81bd822ad:102.0.1.json | 1 + ...e-c590-4e82-8e05-41e81bd822ad:102.0.2.json | 1 + ...0-3b79-403d-96e3-fdd2992c50ef:103.0.0.json | 1 + ...0-3b79-403d-96e3-fdd2992c50ef:103.0.1.json | 1 + ...0-3b79-403d-96e3-fdd2992c50ef:103.0.2.json | 1 + ...5-8076-45ad-9427-41e0e03dc9c2:102.0.0.json | 1 + ...5-8076-45ad-9427-41e0e03dc9c2:102.0.1.json | 1 + ...5-8076-45ad-9427-41e0e03dc9c2:102.0.2.json | 1 + ...8-e33c-4270-851e-c3d675c9afcd:102.0.0.json | 1 + ...8-e33c-4270-851e-c3d675c9afcd:102.0.1.json | 1 + ...8-e33c-4270-851e-c3d675c9afcd:102.0.2.json | 1 + ...9-4245-4715-b344-e11c56b0a47f:102.0.0.json | 1 + ...9-4245-4715-b344-e11c56b0a47f:102.0.1.json | 1 + ...9-4245-4715-b344-e11c56b0a47f:102.0.2.json | 1 + ...2-709a-42bd-82f2-3ed926cced19:101.0.0.json | 1 + ...2-709a-42bd-82f2-3ed926cced19:101.0.1.json | 1 + ...2-709a-42bd-82f2-3ed926cced19:101.0.2.json | 1 + ...b-41d5-4206-805c-f30561eae3ac:100.0.0.json | 1 + ...b-41d5-4206-805c-f30561eae3ac:100.0.1.json | 1 + ...b-41d5-4206-805c-f30561eae3ac:100.0.2.json | 1 + ...a-d5b8-46cc-87f9-4a7513e4281d:100.0.0.json | 1 + ...a-d5b8-46cc-87f9-4a7513e4281d:100.0.1.json | 1 + ...a-d5b8-46cc-87f9-4a7513e4281d:100.0.2.json | 1 + ...3-0a8e-4e68-86a8-977a163e21d3:100.0.0.json | 1 + ...3-0a8e-4e68-86a8-977a163e21d3:100.0.1.json | 1 + ...3-0a8e-4e68-86a8-977a163e21d3:100.0.2.json | 1 + ...a-b67a-4b4e-840c-fdc7782bc0c3:102.0.0.json | 1 + ...a-b67a-4b4e-840c-fdc7782bc0c3:102.0.1.json | 1 + ...a-b67a-4b4e-840c-fdc7782bc0c3:102.0.2.json | 1 + ...1-ee01-4307-a6ee-b21b186958f4:100.0.0.json | 1 + ...1-ee01-4307-a6ee-b21b186958f4:100.0.1.json | 1 + ...1-ee01-4307-a6ee-b21b186958f4:100.0.2.json | 1 + ...d-ed15-4011-84e2-d15147e059f1:102.0.0.json | 1 + ...d-ed15-4011-84e2-d15147e059f1:102.0.1.json | 1 + ...d-ed15-4011-84e2-d15147e059f1:102.0.2.json | 1 + ...c-ba6d-481f-82bb-9b633e7b4827:101.0.0.json | 1 + ...c-ba6d-481f-82bb-9b633e7b4827:101.0.1.json | 1 + ...c-ba6d-481f-82bb-9b633e7b4827:101.0.2.json | 1 + ...2-7776-44ad-ae0f-8746cc07773c:100.0.0.json | 1 + ...2-7776-44ad-ae0f-8746cc07773c:100.0.1.json | 1 + ...2-7776-44ad-ae0f-8746cc07773c:100.0.2.json | 1 + ...8-633d-4b3e-9387-42112cd5ac10:100.0.0.json | 1 + ...8-633d-4b3e-9387-42112cd5ac10:100.0.1.json | 1 + ...8-633d-4b3e-9387-42112cd5ac10:100.0.2.json | 1 + ...f-03dd-48ec-acbd-54a04de10c68:102.0.0.json | 1 + ...f-03dd-48ec-acbd-54a04de10c68:102.0.1.json | 1 + ...f-03dd-48ec-acbd-54a04de10c68:102.0.2.json | 1 + ...f-283f-4d0d-8442-e0dcaf49944b:100.0.0.json | 1 + ...f-283f-4d0d-8442-e0dcaf49944b:100.0.1.json | 1 + ...f-283f-4d0d-8442-e0dcaf49944b:100.0.2.json | 1 + ...d-a966-458e-a183-85cd331af255:101.0.0.json | 1 + ...d-a966-458e-a183-85cd331af255:101.0.1.json | 1 + ...d-a966-458e-a183-85cd331af255:101.0.2.json | 1 + ...a-9fe1-42a5-9a05-b0792cf86f5a:101.0.0.json | 1 + ...a-9fe1-42a5-9a05-b0792cf86f5a:101.0.1.json | 1 + ...a-9fe1-42a5-9a05-b0792cf86f5a:101.0.2.json | 1 + ...2-17c8-4959-874c-633acde7d426:101.0.0.json | 1 + ...2-17c8-4959-874c-633acde7d426:101.0.1.json | 1 + ...2-17c8-4959-874c-633acde7d426:101.0.2.json | 1 + ...f-bea1-46c2-9f56-998de2d3ed95:100.0.0.json | 1 + ...f-bea1-46c2-9f56-998de2d3ed95:100.0.1.json | 1 + ...f-bea1-46c2-9f56-998de2d3ed95:100.0.2.json | 1 + ...d-e54b-4fb5-b96c-cecff87e8787:100.0.0.json | 1 + ...d-e54b-4fb5-b96c-cecff87e8787:100.0.1.json | 1 + ...d-e54b-4fb5-b96c-cecff87e8787:100.0.2.json | 1 + ...f-45fc-432e-a850-4a58cf14a457:102.0.0.json | 1 + ...f-45fc-432e-a850-4a58cf14a457:102.0.1.json | 1 + ...f-45fc-432e-a850-4a58cf14a457:102.0.2.json | 1 + ...d-6b6f-493b-8314-7ed6ac2e413b:101.0.0.json | 1 + ...d-6b6f-493b-8314-7ed6ac2e413b:101.0.1.json | 1 + ...d-6b6f-493b-8314-7ed6ac2e413b:101.0.2.json | 1 + ...2-c1e9-4d3f-a907-aeab16712e1a:102.0.0.json | 1 + ...2-c1e9-4d3f-a907-aeab16712e1a:102.0.1.json | 1 + ...2-c1e9-4d3f-a907-aeab16712e1a:102.0.2.json | 1 + ...b-1deb-4e19-ac4a-5d5ac00f72eb:100.0.0.json | 1 + ...b-1deb-4e19-ac4a-5d5ac00f72eb:100.0.1.json | 1 + ...b-1deb-4e19-ac4a-5d5ac00f72eb:100.0.2.json | 1 + ...c-fe36-4d0d-b3fd-9e0bf4853a62:101.0.0.json | 1 + ...c-fe36-4d0d-b3fd-9e0bf4853a62:101.0.1.json | 1 + ...c-fe36-4d0d-b3fd-9e0bf4853a62:101.0.2.json | 1 + ...2-bc47-4043-8e94-2885b19b2636:103.0.0.json | 1 + ...2-bc47-4043-8e94-2885b19b2636:103.0.1.json | 1 + ...2-bc47-4043-8e94-2885b19b2636:103.0.2.json | 1 + ...3-9679-4ce3-be25-3ba8b795e5fa:100.0.0.json | 1 + ...3-9679-4ce3-be25-3ba8b795e5fa:100.0.1.json | 1 + ...3-9679-4ce3-be25-3ba8b795e5fa:100.0.2.json | 1 + ...2-4481-4d6e-9643-3ca499df7aaa:100.0.0.json | 1 + ...2-4481-4d6e-9643-3ca499df7aaa:100.0.1.json | 1 + ...2-4481-4d6e-9643-3ca499df7aaa:100.0.2.json | 1 + ...0-f9e6-4949-82b9-f1c5bcd37c39:102.0.0.json | 1 + ...0-f9e6-4949-82b9-f1c5bcd37c39:102.0.1.json | 1 + ...0-f9e6-4949-82b9-f1c5bcd37c39:102.0.2.json | 1 + ...0-d52d-11ec-8ce9-f661ea17fbce:100.0.0.json | 1 + ...0-d52d-11ec-8ce9-f661ea17fbce:100.0.1.json | 1 + ...0-d52d-11ec-8ce9-f661ea17fbce:100.0.2.json | 1 + ...a-a983-41d9-9c93-a1c05112ca5e:100.0.0.json | 1 + ...a-a983-41d9-9c93-a1c05112ca5e:100.0.1.json | 1 + ...a-a983-41d9-9c93-a1c05112ca5e:100.0.2.json | 1 + ...8-adf0-43f8-a0bb-4ee5b5d852c6:102.0.0.json | 1 + ...8-adf0-43f8-a0bb-4ee5b5d852c6:102.0.1.json | 1 + ...8-adf0-43f8-a0bb-4ee5b5d852c6:102.0.2.json | 1 + ...a-ccf2-4943-8b96-7ab11ca173a5:102.0.0.json | 1 + ...a-ccf2-4943-8b96-7ab11ca173a5:102.0.1.json | 1 + ...a-ccf2-4943-8b96-7ab11ca173a5:102.0.2.json | 1 + ...8-7fac-4d59-acea-181bd89b1f7f:102.0.0.json | 1 + ...8-7fac-4d59-acea-181bd89b1f7f:102.0.1.json | 1 + ...8-7fac-4d59-acea-181bd89b1f7f:102.0.2.json | 1 + ...c-604d-42fa-ac46-ed1cfbc38f78:101.0.0.json | 1 + ...c-604d-42fa-ac46-ed1cfbc38f78:101.0.1.json | 1 + ...c-604d-42fa-ac46-ed1cfbc38f78:101.0.2.json | 1 + ...c-e221-4bd4-aa3b-c7d59b3bc01d:101.0.0.json | 1 + ...c-e221-4bd4-aa3b-c7d59b3bc01d:101.0.1.json | 1 + ...c-e221-4bd4-aa3b-c7d59b3bc01d:101.0.2.json | 1 + ...7-e3e6-4fd9-8586-7754803f7fc8:101.0.0.json | 1 + ...7-e3e6-4fd9-8586-7754803f7fc8:101.0.1.json | 1 + ...7-e3e6-4fd9-8586-7754803f7fc8:101.0.2.json | 1 + ...8-a073-4e35-9733-22ec71f57f3a:102.0.0.json | 1 + ...8-a073-4e35-9733-22ec71f57f3a:102.0.1.json | 1 + ...8-a073-4e35-9733-22ec71f57f3a:102.0.2.json | 1 + ...6-1c7e-4db8-b53e-bfa33a1a0a8a:102.0.0.json | 1 + ...6-1c7e-4db8-b53e-bfa33a1a0a8a:102.0.1.json | 1 + ...6-1c7e-4db8-b53e-bfa33a1a0a8a:102.0.2.json | 1 + ...3-5ea7-4123-ba19-56b41e424ae3:102.0.0.json | 1 + ...3-5ea7-4123-ba19-56b41e424ae3:102.0.1.json | 1 + ...3-5ea7-4123-ba19-56b41e424ae3:102.0.2.json | 1 + ...7-7e31-4a72-a258-250abb8b3aa1:100.0.0.json | 1 + ...7-7e31-4a72-a258-250abb8b3aa1:100.0.1.json | 1 + ...7-7e31-4a72-a258-250abb8b3aa1:100.0.2.json | 1 + ...9-b002-470e-a9e1-00be38b14d32:100.0.0.json | 1 + ...9-b002-470e-a9e1-00be38b14d32:100.0.1.json | 1 + ...9-b002-470e-a9e1-00be38b14d32:100.0.2.json | 1 + ...6-07ec-48fc-8f3d-5e1742de76d3:100.0.0.json | 1 + ...6-07ec-48fc-8f3d-5e1742de76d3:100.0.1.json | 1 + ...6-07ec-48fc-8f3d-5e1742de76d3:100.0.2.json | 1 + ...5-3f13-4262-a686-5f357bbb9bc2:102.0.0.json | 1 + ...5-3f13-4262-a686-5f357bbb9bc2:102.0.1.json | 1 + ...5-3f13-4262-a686-5f357bbb9bc2:102.0.2.json | 1 + ...a-4615-4707-a1ca-dc53bf69dcd5:101.0.0.json | 1 + ...a-4615-4707-a1ca-dc53bf69dcd5:101.0.1.json | 1 + ...a-4615-4707-a1ca-dc53bf69dcd5:101.0.2.json | 1 + ...4-9b15-43a9-9359-68c23a7f2cf3:100.0.0.json | 1 + ...4-9b15-43a9-9359-68c23a7f2cf3:100.0.1.json | 1 + ...4-9b15-43a9-9359-68c23a7f2cf3:100.0.2.json | 1 + ...6-f2a4-466d-8eba-10f85e8abf71:102.0.0.json | 1 + ...6-f2a4-466d-8eba-10f85e8abf71:102.0.1.json | 1 + ...6-f2a4-466d-8eba-10f85e8abf71:102.0.2.json | 1 + ...c-549e-4bcf-8ee0-a7a72586c6a7:100.0.0.json | 1 + ...c-549e-4bcf-8ee0-a7a72586c6a7:100.0.1.json | 1 + ...c-549e-4bcf-8ee0-a7a72586c6a7:100.0.2.json | 1 + ...a-2346-4744-a6a4-81514817e888:101.0.0.json | 1 + ...a-2346-4744-a6a4-81514817e888:101.0.1.json | 1 + ...a-2346-4744-a6a4-81514817e888:101.0.2.json | 1 + ...9-71e9-40cd-813f-bf8e8c812cb1:100.0.0.json | 1 + ...9-71e9-40cd-813f-bf8e8c812cb1:100.0.1.json | 1 + ...9-71e9-40cd-813f-bf8e8c812cb1:100.0.2.json | 1 + ...1-8980-4b30-b5dd-f851b055c9e7:101.0.0.json | 1 + ...1-8980-4b30-b5dd-f851b055c9e7:101.0.1.json | 1 + ...1-8980-4b30-b5dd-f851b055c9e7:101.0.2.json | 1 + ...4-6eca-4349-bdd9-381573730c22:100.0.0.json | 1 + ...4-6eca-4349-bdd9-381573730c22:100.0.1.json | 1 + ...4-6eca-4349-bdd9-381573730c22:100.0.2.json | 1 + ...4-eda3-40c2-96ac-d23ef91776ca:101.0.0.json | 1 + ...4-eda3-40c2-96ac-d23ef91776ca:101.0.1.json | 1 + ...4-eda3-40c2-96ac-d23ef91776ca:101.0.2.json | 1 + ...6-6f3c-4724-bd7d-24e31c70f98f:101.0.0.json | 1 + ...6-6f3c-4724-bd7d-24e31c70f98f:101.0.1.json | 1 + ...6-6f3c-4724-bd7d-24e31c70f98f:101.0.2.json | 1 + ...3-4fbb-4c27-ab89-c3ad49d62315:101.0.0.json | 1 + ...3-4fbb-4c27-ab89-c3ad49d62315:101.0.1.json | 1 + ...3-4fbb-4c27-ab89-c3ad49d62315:101.0.2.json | 1 + ...4-b179-4f78-8877-c2bd64c26b88:101.0.0.json | 1 + ...4-b179-4f78-8877-c2bd64c26b88:101.0.1.json | 1 + ...4-b179-4f78-8877-c2bd64c26b88:101.0.2.json | 1 + ...4-d40b-49ac-aa9b-a786c74c58b8:100.0.0.json | 1 + ...4-d40b-49ac-aa9b-a786c74c58b8:100.0.1.json | 1 + ...4-d40b-49ac-aa9b-a786c74c58b8:100.0.2.json | 1 + ...6-524c-4e87-8d9e-a32599e4fb7c:100.0.0.json | 1 + ...6-524c-4e87-8d9e-a32599e4fb7c:100.0.1.json | 1 + ...6-524c-4e87-8d9e-a32599e4fb7c:100.0.2.json | 1 + ...8-3c33-43aa-b169-bb3d5198c41d:102.0.0.json | 1 + ...8-3c33-43aa-b169-bb3d5198c41d:102.0.1.json | 1 + ...8-3c33-43aa-b169-bb3d5198c41d:102.0.2.json | 1 + ...6-3c94-4fd0-bd33-3c7f95a3a0fc:102.0.0.json | 1 + ...6-3c94-4fd0-bd33-3c7f95a3a0fc:102.0.1.json | 1 + ...6-3c94-4fd0-bd33-3c7f95a3a0fc:102.0.2.json | 1 + ...598-4f10-11ed-bdc3-0242ac120002:1.0.0.json | 1 + ...598-4f10-11ed-bdc3-0242ac120002:1.0.1.json | 1 + ...598-4f10-11ed-bdc3-0242ac120002:1.0.2.json | 1 + ...c-d396-404f-b2ea-0379d3942d73:102.0.0.json | 1 + ...c-d396-404f-b2ea-0379d3942d73:102.0.1.json | 1 + ...c-d396-404f-b2ea-0379d3942d73:102.0.2.json | 1 + ...f-6d85-40a3-b502-c0d2ef101e92:102.0.0.json | 1 + ...f-6d85-40a3-b502-c0d2ef101e92:102.0.1.json | 1 + ...f-6d85-40a3-b502-c0d2ef101e92:102.0.2.json | 1 + ...f-a018-4801-b066-193d4ae6c8e5:100.0.0.json | 1 + ...f-a018-4801-b066-193d4ae6c8e5:100.0.1.json | 1 + ...f-a018-4801-b066-193d4ae6c8e5:100.0.2.json | 1 + ...f-9568-4909-b734-75d19b35cbf4:101.0.0.json | 1 + ...f-9568-4909-b734-75d19b35cbf4:101.0.1.json | 1 + ...f-9568-4909-b734-75d19b35cbf4:101.0.2.json | 1 + ...a-e182-483c-91d2-72058f76a44c:103.0.0.json | 1 + ...a-e182-483c-91d2-72058f76a44c:103.0.1.json | 1 + ...a-e182-483c-91d2-72058f76a44c:103.0.2.json | 1 + ...a-a58d-491d-9f14-9b66507121c0:102.0.0.json | 1 + ...a-a58d-491d-9f14-9b66507121c0:102.0.1.json | 1 + ...a-a58d-491d-9f14-9b66507121c0:102.0.2.json | 1 + ...c-297e-46d9-9205-07e66931df26:100.0.0.json | 1 + ...c-297e-46d9-9205-07e66931df26:100.0.1.json | 1 + ...c-297e-46d9-9205-07e66931df26:100.0.2.json | 1 + ...f-d8a8-4c83-acdc-5c8cd0592be7:100.0.0.json | 1 + ...f-d8a8-4c83-acdc-5c8cd0592be7:100.0.1.json | 1 + ...f-d8a8-4c83-acdc-5c8cd0592be7:100.0.2.json | 1 + ...d-5188-4b4a-8521-d1c73093a7e4:102.0.0.json | 1 + ...d-5188-4b4a-8521-d1c73093a7e4:102.0.1.json | 1 + ...d-5188-4b4a-8521-d1c73093a7e4:102.0.2.json | 1 + ...7-6bd5-4a49-bd49-a2f886476fb9:100.0.0.json | 1 + ...7-6bd5-4a49-bd49-a2f886476fb9:100.0.1.json | 1 + ...7-6bd5-4a49-bd49-a2f886476fb9:100.0.2.json | 1 + ...abf-bd0c-45f9-8b5f-d0b74015e029:1.0.0.json | 1 + ...abf-bd0c-45f9-8b5f-d0b74015e029:1.0.1.json | 1 + ...abf-bd0c-45f9-8b5f-d0b74015e029:1.0.2.json | 1 + ...f-6fce-4d75-8e79-e16ccc412588:102.0.0.json | 1 + ...f-6fce-4d75-8e79-e16ccc412588:102.0.1.json | 1 + ...f-6fce-4d75-8e79-e16ccc412588:102.0.2.json | 1 + ...d-6662-426b-9d0c-6d81e33c8a9d:101.0.0.json | 1 + ...d-6662-426b-9d0c-6d81e33c8a9d:101.0.1.json | 1 + ...d-6662-426b-9d0c-6d81e33c8a9d:101.0.2.json | 1 + ...3-71ee-4af1-bacd-215d23f17efa:100.0.0.json | 1 + ...3-71ee-4af1-bacd-215d23f17efa:100.0.1.json | 1 + ...3-71ee-4af1-bacd-215d23f17efa:100.0.2.json | 1 + ...6-0d69-4004-a0b4-03c20370c435:101.0.0.json | 1 + ...6-0d69-4004-a0b4-03c20370c435:101.0.1.json | 1 + ...6-0d69-4004-a0b4-03c20370c435:101.0.2.json | 1 + ...4-8f03-4b3e-8336-c5feab0be022:101.0.0.json | 1 + ...4-8f03-4b3e-8336-c5feab0be022:101.0.1.json | 1 + ...4-8f03-4b3e-8336-c5feab0be022:101.0.2.json | 1 + ...d-6130-4802-9ff8-829b89ae801f:102.0.0.json | 1 + ...d-6130-4802-9ff8-829b89ae801f:102.0.1.json | 1 + ...d-6130-4802-9ff8-829b89ae801f:102.0.2.json | 1 + ...a-c410-42dc-a2e3-761c71848acf:101.0.0.json | 1 + ...a-c410-42dc-a2e3-761c71848acf:101.0.1.json | 1 + ...a-c410-42dc-a2e3-761c71848acf:101.0.2.json | 1 + ...2-58fa-4397-93c3-4795249ccfa2:102.0.0.json | 1 + ...2-58fa-4397-93c3-4795249ccfa2:102.0.1.json | 1 + ...2-58fa-4397-93c3-4795249ccfa2:102.0.2.json | 1 + ...d-487f-4a90-b285-3ee54f2af2d3:102.0.0.json | 1 + ...d-487f-4a90-b285-3ee54f2af2d3:102.0.1.json | 1 + ...d-487f-4a90-b285-3ee54f2af2d3:102.0.2.json | 1 + ...c-5e95-4339-aef1-47fd79bcfbe3:102.0.0.json | 1 + ...c-5e95-4339-aef1-47fd79bcfbe3:102.0.1.json | 1 + ...c-5e95-4339-aef1-47fd79bcfbe3:102.0.2.json | 1 + ...4-274d-434a-96bb-fe15ddd3ae92:100.0.0.json | 1 + ...4-274d-434a-96bb-fe15ddd3ae92:100.0.1.json | 1 + ...4-274d-434a-96bb-fe15ddd3ae92:100.0.2.json | 1 + ...a-0ac6-44c4-8609-3f81bc820f02:101.0.0.json | 1 + ...a-0ac6-44c4-8609-3f81bc820f02:101.0.1.json | 1 + ...a-0ac6-44c4-8609-3f81bc820f02:101.0.2.json | 1 + ...e-61d6-4f6c-9561-eb4cca3bafe1:102.0.0.json | 1 + ...e-61d6-4f6c-9561-eb4cca3bafe1:102.0.1.json | 1 + ...e-61d6-4f6c-9561-eb4cca3bafe1:102.0.2.json | 1 + .../detection-rules-flat/manifest.yml | 18 ++ .../fleet/server/saved_objects/index.ts | 14 +- .../prebuilt_rules/api/urls.ts | 21 +- .../model/upgrade/three_way_diff.ts | 78 ++++++++ .../hooks/use_upgrade_security_packages.ts | 3 + .../api/poc/install_test_assets/route.ts | 186 ++++++++++++++++++ .../prebuilt_rules/api/register_routes.ts | 3 + .../logic/get_latest_prebuilt_rules.ts | 2 +- ...le_asset_composite_saved_objects_client.ts | 99 ++++++++++ ...rule_asset_composite_saved_objects_type.ts | 62 ++++++ .../rule_asset_flat_saved_objects_client.ts | 99 ++++++++++ .../rule_asset_flat_saved_objects_type.ts | 53 +++++ 2915 files changed, 3902 insertions(+), 14 deletions(-) create mode 100644 fleet-packages/detection-rules-composite/LICENSE.txt create mode 100644 fleet-packages/detection-rules-composite/changelog.yml create mode 100644 fleet-packages/detection-rules-composite/docs/README.md create mode 100644 fleet-packages/detection-rules-composite/img/sample-logo.svg create mode 100644 fleet-packages/detection-rules-composite/img/sample-screenshot.png create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/000047bb-b27a-47ec-8b62-ef1a5d2c9e19.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/00140285-b827-4aee-aa09-8113f58a08f3.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/0022d47d-39c7-4f69-a232-4fe9dc7a3acd.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/0136b315-b566-482f-866c-1d8e2477ba16.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/015cca13-8832-49ac-a01b-a396114809f6.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/027ff9ea-85e7-42e3-99d2-bbb7069e02eb.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/02a23ee7-c8f8-4701-b99d-e9038ce313cb.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/02a4576a-7480-4284-9327-548a806b5e48.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/02ea4563-ec10-4974-b7de-12e65aa4f9b3.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/03024bd9-d23f-4ec1-8674-3cf1a21e130b.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/035889c4-2686-4583-a7df-67f89c292f2c.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/0415f22a-2336-45fa-ba07-618a5942e22c.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/041d4d41-9589-43e2-ba13-5680af75ebc2.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/04c5a96f-19c5-44fd-9571-a0b033f9086f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/053a0387-f3b5-4ba5-8245-8002cca2bd08.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/0564fb9d-90b9-4234-a411-82a546dc1343.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/05b358de-aa6d-4f6c-89e6-78f74018b43b.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/05e5a668-7b51-4a67-93ab-e9af405c9ef3.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/0635c542-1b96-4335-9b47-126582d2c19a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/06dceabf-adca-48af-ac79-ffdf4c3b1e9a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/074464f9-f30d-4029-8c03-0ed237fffec7.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/07b1ef73-1fde-4a49-a34a-5dd40011b076.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/07b5f85a-240f-11ed-b3d9-f661ea17fbce.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/080bc66a-5d56-4d1f-8071-817671716db9.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/082e3f8c-6f80-485c-91eb-5b112cb79b28.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/083fa162-e790-4d85-9aeb-4fea04188adb.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/092b068f-84ac-485d-8a55-7dd9e006715f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/09443c92-46b3-45a4-8f25-383b028b258d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/09d028a5-dcde-409f-8ae0-557cef1b7082.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/0a97b20f-4144-49ea-be32-b540ecc445de.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/0b29cab4-dbbd-4a3f-9e8e-1287c7c11ae5.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/0b2f3da5-b5ec-47d1-908b-6ebb74814289.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/0c7ca5c2-728d-4ad9-b1c5-bbba83ecb1f4.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/0c9a14d9-d65d-486f-9b5b-91e4e6b22bd0.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/0ce6487d-8069-4888-9ddd-61b52490cebc.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/0d69150b-96f8-467c-a86d-a67a3378ce77.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/0d8ad79f-9025-45d8-80c1-4f0cd3c5e8e5.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/0e52157a-8e96-4a95-a6e3-5faae5081a74.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/0e5acaae-6a64-4bbc-adb8-27649c03f7e1.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/0e79980b-4250-4a50-a509-69294c14e84b.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/0f93cb9a-1931-48c2-8cd0-f173fd3e5283.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/0ff84c42-873d-41a2-a4ed-08d74d352d01.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/10a500bb-a28f-418e-ba29-ca4c8d1a9f2f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/11013227-0301-4a8c-b150-4db924484475.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/1160dcdb-0a0a-4a79-91d8-9b84616edebd.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/1178ae09-5aff-460a-9f2f-455cd0ac4d8e.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/119c8877-8613-416d-a98a-96b6664ee73a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/11dd9713-0ec6-4110-9707-32daae1ee68c.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/11ea6bec-ebde-4d71-a8e9-784948f8e3e9.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/12051077-0124-4394-9522-8f4f4db1d674.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/12a2f15d-597e-4334-88ff-38a02cb1330b.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/12cbf709-69e8-4055-94f9-24314385c27e.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/12f07955-1674-44f7-86b5-c35da0a6f41a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/1327384f-00f3-44d5-9a8c-2373ba071e92.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/138c5dd5-838b-446e-b1ac-c995c7f8108a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/141e9b3a-ff37-4756-989d-05d7cbf35b0e.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/143cb236-0956-4f42-a706-814bcaa0cf5a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/14de811c-d60f-11ec-9fd7-f661ea17fbce.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/14ed1aa9-ebfd-4cf9-a463-0ac59ec55204.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/15a8ba77-1c13-4274-88fe-6bd14133861e.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/15c0b7a7-9c34-4869-b25b-fa6518414899.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/15dacaa0-5b90-466b-acab-63435a59701a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/16280f1e-57e6-4242-aa21-bb4d16f13b2f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/16904215-2c95-4ac8-bf5c-12354e047192.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/169f3a93-efc7-4df2-94d6-0d9438c310d1.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/16a52c14-7883-47af-8745-9357803f0d4c.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/16fac1a1-21ee-4ca6-b720-458e3855d046.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/1781d055-5c66-4adf-9c59-fc0fa58336a5.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/1781d055-5c66-4adf-9c71-fc0fa58338c7.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/1781d055-5c66-4adf-9d60-fc0fa58337b6.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/1781d055-5c66-4adf-9d82-fc0fa58449c8.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/1781d055-5c66-4adf-9e93-fc0fa69550c9.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/17c7f6a5-5bc9-4e1f-92bf-13632d24384d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/17e68559-b274-4948-ad0b-f8415bb31126.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/184dfe52-2999-42d9-b9d1-d1ca54495a61.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/19de8096-e2b0-4bd8-80c9-34a820813fff.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/1a36cace-11a7-43a8-9a10-b497c5a02cd3.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/1a6075b0-7479-450e-8fe7-b8b8438ac570.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/1aa8fa52-44a7-4dae-b058-f3333b91c8d7.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/1aa9181a-492b-4c01-8b16-fa0735786b2b.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/1b21abcc-4d9f-4b08-a7f5-316f5f94b973.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/1ba5160d-f5a2-4624-b0ff-6a1dc55d2516.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/1c27fa22-7727-4dd3-81c0-de6da5555feb.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/1c6a8c7a-5cb6-4a82-ba27-d5a5b8a40a38.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/1c84dd64-7e6c-4bad-ac73-a5014ee37042.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/1c966416-60c1-436b-bfd0-e002fddbfd89.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/1cd01db9-be24-4bef-8e7c-e923f0ff78ab.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/1d276579-3380-4095-ad38-e596a01bc64f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/1d72d014-e2ab-4707-b056-9b96abe7b511.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/1dcc51f6-ba26-49e7-9ef4-2655abb2361e.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/1defdd62-cd8d-426e-a246-81a37751bb2b.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/1e0b832e-957e-43ae-b319-db82d228c908.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/1e9fc667-9ff1-4b33-9f40-fefca8537eb0.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/1faec04b-d902-4f89-8aff-92cd9043c16f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/1fe3b299-fbb5-4657-a937-1d746f2c711a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/2003cdc8-8d83-4aa5-b132-1f9a8eb48514.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/201200f1-a99b-43fb-88ed-f65a45c4972c.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/203ab79b-239b-4aa5-8e54-fc50623ee8e4.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/2045567e-b0af-444a-8c0b-0b6e2dae9e13.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/20457e4f-d1de-4b92-ae69-142e27a4342a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/208dbe77-01ed-4954-8d44-1e5751cb20de.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/220be143-5c67-4fdb-b6ce-dd6826d024fd.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/2215b8bd-1759-4ffa-8ab8-55c8e6b32e7f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/22599847-5d13-48cb-8872-5796fee8692b.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/227dc608-e558-43d9-b521-150772250bae.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/231876e7-4d1f-4d63-a47c-47dd1acdc1cb.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/2326d1b2-9acf-4dee-bd21-867ea7378b4d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/2339f03c-f53f-40fa-834b-40c5983fc41f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/25224a80-5a4a-4b8a-991e-6ab390465c4f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/2636aa6c-88b5-4337-9c31-8d0192a8ef45.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/265db8f5-fc73-4d0d-b434-6483b56372e2.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/26b01043-4f04-4d2f-882a-5a1d2e95751b.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/26edba02-6979-4bce-920a-70b080a7be81.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/26f68dba-ce29-497b-8e13-b4fde1db5a2d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/272a6484-2663-46db-a532-ef734bf9a796.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/2772264c-6fb9-4d9d-9014-b416eed21254.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/2783d84f-5091-4d7d-9319-9fceda8fa71b.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/27f7c15a-91f8-4c3d-8b9e-1f99cc030a51.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/2820c9c2-bcd7-4d6e-9eba-faf3891ba450.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/2856446a-34e6-435b-9fb5-f8f040bfa7ed.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/2863ffeb-bf77-44dd-b7a5-93ef94b72036.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/29052c19-ff3e-42fd-8363-7be14d7c5469.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/290aca65-e94d-403b-ba0f-62f320e63f51.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/2917d495-59bd-4250-b395-c29409b76086.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/291a0de9-937a-4189-94c0-3e847c8b13e4.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/2abda169-416b-4bb3-9a6b-f8d239fd78ba.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/2bf78aa2-9c56-48de-b139-f169bf99cf86.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/2c17e5d7-08b9-43b2-b58a-0270d65ac85b.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/2c3c29a4-f170-42f8-a3d8-2ceebc18eb6a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/2d8043ed-5bda-4caf-801c-c1feb7410504.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/2dd480be-1263-4d9c-8672-172928f6789a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/2de10e77-c144-4e69-afb7-344e7127abd0.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/2de87d72-ee0c-43e2-b975-5f0b029ac600.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/2e1e835d-01e5-48ca-b9fc-7a61f7f11902.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/2e29e96a-b67c-455a-afe4-de6183431d0d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/2e580225-2a58-48ef-938b-572933be06fe.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/2edc8076-291e-41e9-81e4-e3fcbc97ae5e.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/2f2f4939-0b34-40c2-a0a3-844eb7889f43.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/2f8a1226-5720-437d-9c20-e0029deb6194.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/2fba96c0-ade5-4bce-b92f-a5df2509da3f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/2ffa1f1e-b6db-47fa-994b-1512743847eb.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/30562697-9859-4ae0-a8c5-dab45d664170.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/3115bd2c-0baa-4df0-80ea-45e474b5ef93.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/31295df3-277b-4c56-a1fb-84e31b4222a9.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/31b4c719-f2b4-41f6-a9bd-fce93c2eaf62.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/3202e172-01b1-4738-a932-d024c514ba72.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/323cb487-279d-4218-bcbd-a568efe930c6.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/32923416-763a-4531-bb35-f33b9232ecdb.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/32c5cf9c-2ef8-4e87-819e-5ccb7cd18b14.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/32f4675e-6c49-4ace-80f9-97c9259dca2e.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/333de828-8190-4cf5-8d7c-7575846f6fe0.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/33f306e8-417c-411b-965c-c2812d6d3f4d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/34fde489-94b0-4500-a76f-b8a157cf9269.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/35330ba2-c859-4c98-8b7f-c19159ea0e58.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/3535c8bb-3bd5-40f4-ae32-b7cd589d5372.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/35df0dd8-092d-4a83-88c1-5151a804f31b.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/35f86980-1fb1-4dff-b311-3be941549c8d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/3688577a-d196-11ec-90b0-f661ea17fbce.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/36a8e048-d888-4f61-a8b9-0f9e2e40f317.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/378f9024-8a0c-46a5-aa08-ce147ac73a4e.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/37994bca-0611-4500-ab67-5588afe73b77.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/37b211e8-4e2f-440f-86d8-06cc8f158cfa.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/37f638ea-909d-4f94-9248-edd21e4a9906.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/3805c3dc-f82c-4f8d-891e-63c24d3102b0.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/3838e0e3-1850-4850-a411-2e8c5ba40ba8.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/38948d29-3d5d-42e3-8aec-be832aaaf8eb.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/38e5acdd-5f20-4d99-8fe4-f0a1a592077f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/39144f38-5284-4f8e-a2ae-e3fd628d90b0.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/397945f3-d39a-4e6f-8bcb-9656c2031438.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/3a59fc81-99d3-47ea-8cd6-d48d561fca20.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/3ad49c61-7adc-42c1-b788-732eda2f5abf.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/3ad77ed4-4dcf-4c51-8bfc-e3f7ce316b2f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/3b382770-efbb-44f4-beed-f5e0a051b895.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/3b47900d-e793-49e8-968f-c90dc3526aa1.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/3bc6deaa-fbd4-433a-ae21-3e892f95624f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/3c7e32e6-6104-46d9-a06e-da0f8b5795a0.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/3e002465-876f-4f04-b016-84ef48ce7e5d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/3e3d15c6-1509-479a-b125-21718372157e.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/3ecbdc9e-e4f2-43fa-8cca-63802125e582.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/3ed032b2-45d8-4406-bc79-7ad1eabb2c72.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/3efee4f0-182a-40a8-a835-102c68a4175d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/3f0e5410-a4bf-4e8c-bcfc-79d67a285c54.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/3f3f9fe2-d095-11ec-95dc-f661ea17fbce.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/403ef0d3-8259-40c9-a5b6-d48354712e49.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/416697ae-e468-4093-a93d-59661fa619ec.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/41824afb-d68c-4d0e-bfee-474dac1fa56e.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/41b638a1-8ab6-4f8e-86d9-466317ef2db5.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/42bf698b-4738-445b-8231-c834ddefd8a0.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/42eeee3d-947f-46d3-a14d-7036b962c266.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/4330272b-9724-4bc6-a3ca-f1532b81e5c2.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/43303fd4-4839-4e48-b2b2-803ab060758d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/440e2db4-bc7f-4c96-a068-65b78da59bde.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/445a342e-03fb-42d0-8656-0367eb2dead5.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/44fc462c-1159-4fa8-b1b7-9b6296ab4f96.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/453f659e-0429-40b1-bfdb-b6957286e04b.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/45ac4800-840f-414c-b221-53dd36a5aaf7.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/45d273fb-1dca-457d-9855-bcb302180c21.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/4630d948-40d4-4cef-ac69-4002e29bc3db.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/4682fd2c-cfae-47ed-a543-9bed37657aa6.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/46f804f5-b289-43d6-a881-9387cf594f75.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/47e22836-4a16-4b35-beee-98f6c4ee9bf2.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/47f76567-d58a-4fed-b32b-21f571e28910.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/483c4daf-b0c6-49e0-adf3-0bfa93231d6b.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/48b6edfc-079d-4907-b43c-baffa243270d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/48d7f54d-c29e-4430-93a9-9db6b5892270.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/48ec9452-e1fd-4513-a376-10a1a26d2c83.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/493834ca-f861-414c-8602-150d5505b777.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/495e5f2e-2480-11ed-bea8-f661ea17fbce.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/4a4e23cf-78a2-449c-bac3-701924c269d3.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/4b438734-3793-4fda-bd42-ceeada0be8f9.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/4bd1c1af-79d4-4d37-9efa-6e0240640242.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/4c59cff1-b78a-41b8-a9f1-4231984d1fb6.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/4d50a94f-2844-43fa-8395-6afbd5e1c5ef.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/4da13d6e-904f-4636-81d8-6ab14b4e6ae9.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/4de76544-f0e5-486a-8f84-eae0b6063cdc.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/4e85dc8a-3e41-40d8-bc28-91af7ac6cf60.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/4ed493fc-d637-4a36-80ff-ac84937e5461.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/4ed678a9-3a4f-41fb-9fea-f85a6e0a0dff.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/4edd3e1a-3aa0-499b-8147-4d2ea43b1613.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/4fe9d835-40e1-452d-8230-17c147cafad8.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/513f0ffd-b317-4b9c-9494-92ce861f22c7.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/514121ce-c7b6-474a-8237-68ff71672379.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/51859fa0-d86b-4214-bf48-ebb30ed91305.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/51ce96fb-9e52-4dad-b0ba-99b54440fc9a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/523116c0-d89d-4d7c-82c2-39e6845a78ef.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/52376a86-ee86-4967-97ae-1a05f55816f0.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/52aaab7b-b51c-441a-89ce-4387b3aea886.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/52afbdc5-db15-485e-bc24-f5707f820c4b.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/530178da-92ea-43ce-94c2-8877a826783d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/536997f7-ae73-447d-a12d-bff1e8f5f0a0.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/5370d4cd-2bb3-4d71-abf5-1e1d0ff5a2de.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/53a26770-9cbd-40c5-8b57-61d01a325e14.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/54902e45-3467-49a4-8abc-529f2c8cfb80.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/54c3d186-0461-4dc3-9b33-2dc5c7473936.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/55c2bf58-2a39-4c58-a384-c8b1978153c2.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/55d551c6-333b-4665-ab7e-5d14a59715ce.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/56557cde-d923-4b88-adee-c61b3f3b5dc3.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/565c2b44-7a21-4818-955f-8d4737967d2e.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/565d6ca5-75ba-4c82-9b13-add25353471c.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/5663b693-0dea-4f2e-8275-f1ae5ff2de8e.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/56f2e9b5-4803-4e44-a0a4-a52dc79d57fe.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/5700cb81-df44-46aa-a5d7-337798f53eb8.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/571afc56-5ed9-465d-a2a9-045f099f6e7e.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/573f6e7a-7acf-4bcd-ad42-c4969124d3c0.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/577ec21e-56fe-4065-91d8-45eb8224fe77.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/581add16-df76-42bb-af8e-c979bfb39a59.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/58aa72ca-d968-4f34-b9f7-bea51d75eb50.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/58ac2aa5-6718-427c-a845-5f3ac5af00ba.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/58bc134c-e8d2-4291-a552-b4b3e537c60b.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/58c6d58b-a0d3-412d-b3b8-0981a9400607.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/5930658c-2107-4afc-91af-e0e55b7f7184.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/594e0cbf-86cc-45aa-9ff7-ff27db27d3ed.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/59756272-1998-4b8c-be14-e287035c4d10.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/5a14d01d-7ac8-4545-914c-b687c2cf66b3.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/5ae4e6f8-d1bf-40fa-96ba-e29645e1e4dc.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/5aee924b-6ceb-4633-980e-1bde8cdb40c5.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/5b03c9fb-9945-4d2f-9568-fd690fee3fba.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/5bb4a95d-5a08-48eb-80db-4c3a63ec78a8.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/5beaebc1-cc13-4bfc-9949-776f9e0dc318.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/5c983105-4681-46c3-9890-0c66d05e776b.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/5cd55388-a19c-47c7-8ec4-f41656c2fded.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/5cd8e1f7-0050-4afc-b2df-904e40b2f5ae.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/5cf6397e-eb91-4f31-8951-9f0eaa755a31.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/5d0265bf-dea9-41a9-92ad-48a8dcd05080.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/5d1d6907-0747-4d5d-9b24-e4a18853dc0a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/5d9f8cfc-0d03-443e-a167-2b0597ce0965.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/5e161522-2545-11ed-ac47-f661ea17fbce.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/5e552599-ddec-4e14-bad1-28aa42404388.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/60884af6-f553-4a6c-af13-300047455491.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/60b6b72f-0fbc-47e7-9895-9ba7627a8b50.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/60f3adec-1df9-4104-9c75-b97d9f078b25.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/610949a1-312f-4e04-bb55-3a79b8c95267.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/61ac3638-40a3-44b2-855a-985636ca985e.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/61d29caf-6c15-4d1e-9ccb-7ad12ccc0bc7.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/622ecb68-fa81-4601-90b5-f8cd661e4520.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/62a70f6f-3c37-43df-a556-f64fa475fba2.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/63c05204-339a-11ed-a261-0242ac120002.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/63c056a0-339a-11ed-a261-0242ac120002.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/63c057cc-339a-11ed-a261-0242ac120002.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/63e65ec3-43b1-45b0-8f2d-45b34291dc44.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/647fc812-7996-4795-8869-9c4ea595fe88.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/6482255d-f468-45ea-a5b3-d3a7de1331ae.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/65f9bccd-510b-40df-8263-334f03174fed.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/661545b4-1a90-4f45-85ce-2ebd7c6a15d0.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/665e7a4f-c58e-4fc6-bc83-87a7572670ac.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/66883649-f908-4a5b-a1e0-54090a1d3a32.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/66da12b1-ac83-40eb-814c-07ed1d82b7b9.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/670b3b5a-35e5-42db-bd36-6c5b9b4b7313.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/6731fbf2-8f28-49ed-9ab9-9a918ceb5a45.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/675239ea-c1bc-4467-a6d3-b9e2cc7f676d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/676cff2b-450b-4cf1-8ed2-c0c58a4a2dd7.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/67f8443a-4ff3-4a70-916d-3cfa3ae9f02b.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/6839c821-011d-43bd-bd5b-acff00257226.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/684554fc-0777-47ce-8c9b-3d01f198d7f8.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/6885d2ae-e008-4762-b98a-e8e1cd3a81e9.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/68921d85-d0dc-48b3-865f-43291ca2c4f2.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/68994a6c-c7ba-4e82-b476-26a26877adf6.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/689b9d57-e4d5-4357-ad17-9c334609d79a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/68a7a5a5-a2fc-4a76-ba9f-26849de881b4.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/68d56fdc-7ffa-4419-8e95-81641bd6f845.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/6951f15e-533c-4a60-8014-a3c3ab851a1b.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/699e9fdb-b77c-4c01-995c-1c15019b9c43.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/69c251fb-a5d6-4035-b5ec-40438bd829ff.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/69c420e8-6c9e-4d28-86c0-8a2be2d1e78c.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/6a8ab9cc-4023-4d17-b5df-1a3e16882ce7.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/6aace640-e631-4870-ba8e-5fdda09325db.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/6b84d470-9036-4cc0-a27c-6d90bbfe81ab.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/6bed021a-0afb-461c-acbe-ffdb9574d3f3.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/6cd1779c-560f-4b68-a8f1-11009b27fe63.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/6d448b96-c922-4adb-b51c-b767f1ea5b76.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/6e40d56f-5c0e-4ac6-aece-bee96645b172.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/6e9130a5-9be6-48e5-943a-9628bfc74b18.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/6e9b351e-a531-4bdc-b73e-7034d6eed7ff.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/6ea41894-66c3-4df7-ad6b-2c5074eb3df8.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/6ea55c81-e2ba-42f2-a134-bccf857ba922.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/6f435062-b7fc-4af9-acea-5b1ead65c5a5.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/7024e2a0-315d-4334-bb1a-441c593e16ab.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/7024e2a0-315d-4334-bb1a-552d604f27bc.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/70d12c9c-0dbd-4a1a-bc44-1467502c9cf6.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/70fa1af4-27fd-4f26-bd03-50b6af6b9e24.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/7164081a-3930-11ed-a261-0242ac120002.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/717f82c2-7741-4f9b-85b8-d06aeb853f4f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/71bccb61-e19b-452f-b104-79a60e546a95.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/71c5cb27-eca5-4151-bb47-64bc3f883270.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/721999d0-7ab2-44bf-b328-6e63367b9b29.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/729aa18d-06a6-41c7-b175-b65b739b1181.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/7405ddf1-6c8e-41ce-818f-48bea6bcaed8.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/7453e19e-3dbf-4e4e-9ae0-33d6c6ed15e1.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/745b0119-0560-43ba-860a-7235dd8cee8d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/746edc4c-c54c-49c6-97a1-651223819448.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/75ee75d8-c180-481c-ba88-ee50129a6aef.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/76152ca1-71d0-4003-9e37-0983e12832da.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/764c8437-a581-4537-8060-1fdb0e92c92d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/764c9fcd-4c4c-41e6-a0c7-d6c46c2eff66.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/766d3f91-3f12-448c-b65f-20123e9e9e8c.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/76ddb638-abf7-42d5-be22-4a70b0bf7241.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/76fd43b7-3480-4dd9-8ad7-8bd36bfad92f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/770e0c4d-b998-41e5-a62e-c7901fd7f470.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/774f5e28-7b75-4a58-b94e-41bf060fdd86.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/77a3c3df-8ec4-4da4-b758-878f551dee69.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/785a404b-75aa-4ffd-8be5-3334a5a544dd.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/7882cebf-6cf1-4de3-9662-213aa13e8b80.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/78d3d8d9-b476-451d-a9e0-7a5addd70670.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/792dd7a6-7e00-4a0a-8a9a-a7c24720b5ec.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/79f97b31-480e-4e63-a7f4-ede42bf2c6de.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/7b3da11a-60a2-412e-8aa7-011e1eb9ed47.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/7b8bfc26-81d2-435e-965c-d722ee397ef1.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/7ba58110-ae13-439b-8192-357b0fcfa9d7.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/7bcbb3ac-e533-41ad-a612-d6c3bf666aba.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/7caa8e60-2df0-11ed-b814-f661ea17fbce.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/7ceb2216-47dd-4e64-9433-cddc99727623.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/7f370d54-c0eb-4270-ac5a-9a6020585dc6.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/809b70d3-e2c3-455e-af1b-2626a5a1a276.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/80c52164-c82a-402c-9964-852533d58be1.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/818e23e6-2094-4f0e-8c01-22d30f3506c6.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/81fe9dc6-a2d7-4192-a2d8-eed98afc766a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/81ff45f8-f8c2-4e28-992e-5a0e8d98e0fe.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/827f8d8f-4117-4ae4-b551-f56d54b9da6b.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/83a1931d-8136-46fc-b7b9-2db4f639e014.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/84da2554-e12a-11ec-b896-f661ea17fbcd.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/850d901a-2a3c-46c6-8b22-55398a01aad8.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/852c1f19-68e8-43a6-9dce-340771fe1be3.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/8623535c-1e17-44e1-aa97-7a0699c3037d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/863cdf31-7fd3-41cf-a185-681237ea277b.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/867616ec-41e5-4edc-ada2-ab13ab45de8a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/870aecc0-cea4-4110-af3f-e02e9b373655.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/871ea072-1b71-4def-b016-6278b505138d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/87594192-4539-4bc4-8543-23bc3d5bd2b4.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/88671231-6626-4e1b-abb7-6e361a171fbb.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/88817a33-60d3-411f-ba79-7c905d865b2a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/891cb88e-441a-4c3e-be2d-120d99fe7b0d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/897dc6b5-b39f-432a-8d75-d3730d50c782.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/89f9a4b0-9f8f-4ee0-8823-c4751a6d6696.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/89fa6cb7-6b53-4de2-b604-648488841ab8.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/8a1b0278-0f9a-487d-96bd-d4833298e87a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/8a1d4831-3ce6-4859-9891-28931fa6101d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/8a5c1e5f-ad63-481e-b53a-ef959230f7f1.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/8acb7614-1d92-4359-bfcf-478b6d9de150.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/8b2b3a62-a598-4293-bc14-3d5fa22bb98f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/8b4f0816-6a65-4630-86a6-c21c179c0d09.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/8b64d36a-1307-4b2e-a77b-a0027e4d27c8.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/8c1bdde8-4204-45c0-9e0c-c85ca3902488.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/8c81e506-6e82-4884-9b9a-75d3d252f967.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/8cb4f625-7743-4dfb-ae1b-ad92be9df7bd.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/8cb84371-d053-4f4f-bce0-c74990e28f28.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/8da41fc9-7735-4b24-9cc6-c78dfc9fc9c9.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/8ddab73b-3d15-4e5d-9413-47f05553c1d7.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/8f3e91c7-d791-4704-80a1-42c160d7aa27.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/8f919d4b-a5af-47ca-a594-6be59cd924a4.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/8fb75dda-c47a-4e34-8ecd-34facf7aad13.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/90169566-2260-4824-b8e4-8615c3b4ed52.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/9055ece6-2689-4224-a0e0-b04881e1f8ad.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/9092cd6c-650f-4fa3-8a8a-28256c7489c9.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/9180ffdf-f3d0-4db3-bf66-7a14bcff71b8.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/91d04cd4-47a9-4334-ab14-084abe274d49.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/91f02f01-969f-4167-8d77-07827ac4cee0.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/91f02f01-969f-4167-8f55-07827ac3acc9.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/91f02f01-969f-4167-8f66-07827ac3bdd9.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/92a6faf5-78ec-4e25-bea1-73bacc9b59d9.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/93075852-b0f5-4b8b-89c3-a226efae5726.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/931e25a5-0f5e-4ae0-ba0d-9e94eff7e3a4.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/9395fd2c-9947-4472-86ef-4aceb2f7e872.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/93b22c0a-06a0-4131-b830-b10d5e166ff4.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/93c1ce76-494c-4f01-8167-35edfb52f7b1.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/93e63c3e-4154-4fc6-9f86-b411e0987bbf.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/93f47b6f-5728-4004-ba00-625083b3dcb0.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/9510add4-3392-11ed-bd01-f661ea17fbce.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/954ee7c8-5437-49ae-b2d6-2960883898e9.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/959a7353-1129-4aa7-9084-30746b256a70.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/968ccab9-da51-4a87-9ce2-d3c9782fd759.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/96b9f4ea-0e8c-435b-8d53-2096e75fcac5.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/96e90768-c3b7-4df6-b5d9-6237f8bc36a8.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/97020e61-e591-4191-8a3b-2861a2b887cd.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/97314185-2568-4561-ae81-f3e480e5e695.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/97359fd8-757d-4b1d-9af1-ef29e4a8680e.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/979729e7-0c52-4c4c-b71e-88103304a79f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/97a8e584-fd3b-421f-9b9d-9c9d9e57e9d7.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/97aba1ef-6034-4bd3-8c1a-1e0996b27afa.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/97fc44d3-8dae-4019-ae83-298c3015600f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/9890ee61-d061-403d-9bf6-64934c51f638.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/98995807-5b09-4e37-8a54-5cae5dc932d7.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/98fd7407-0bd5-5817-cda0-3fcc33113a56.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/990838aa-a953-4f3e-b3cb-6ddf7584de9e.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/99239e7d-b0d4-46e3-8609-acafcf99f68c.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/9960432d-9b26-409f-972b-839a959e79e2.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/99dcf974-6587-4f65-9252-d866a3fdfd9c.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/9a1a2dae-0b5f-4c3d-8305-a268d404c306.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/9a3a3689-8ed1-4cdb-83fb-9506db54c61f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/9a5b4e31-6cde-4295-9ff7-6be1b8567e1b.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/9aa0e1f6-52ce-42e1-abb3-09657cee2698.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/9b6813a1-daf1-457e-b0e6-0bb4e55b8a4c.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/9c260313-c811-4ec8-ab89-8f6530e0246c.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/9c865691-5599-447a-bac9-b3f2df5f9a9d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/9ccf3ce0-0057-440a-91f5-870c6ad39093.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/9cf7a0ae-2404-11ed-ae7d-f661ea17fbce.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae2.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae3.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae4.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae5.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae6.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae9.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/9d19ece6-c20e-481a-90c5-ccca596537de.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/9d302377-d226-4e12-b54c-1906b5aec4f6.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/9f1c4ca3-44b5-481d-ba42-32dc215a2769.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/9f962927-1a4f-45f3-a57b-287f2c7029c1.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/9f9a2a82-93a8-4b1a-8778-1780895626d4.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/a00681e3-9ed6-447c-ab2c-be648821c622.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/a02cb68e-7c93-48d1-93b2-2c39023308eb.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/a10d3d9d-0f65-48f1-8b25-af175e2594f5.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/a13167f1-eec2-4015-9631-1fee60406dcf.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/a1329140-8de3-4445-9f87-908fb6d824f4.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/a16612dd-b30e-4d41-86a0-ebe70974ec00.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/a17bcc91-297b-459b-b5ce-bc7460d8f82a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/a1a0375f-22c2-48c0-81a4-7c2d11cc6856.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/a22a09c2-2162-4df0-a356-9aacbeb56a04.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/a2795334-2499-11ed-9e1a-f661ea17fbce.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/a3ea12f3-0d4e-4667-8b44-4230c63f3c75.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/a4c7473a-5cb4-4bc1-9d06-e4a75adbc494.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/a5f0d057-d540-44f5-924d-c6a2ae92f045.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/a60326d7-dca7-4fb7-93eb-1ca03a1febbd.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/a605c51a-73ad-406d-bf3a-f24cc41d5c97.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/a624863f-a70d-417f-a7d2-7a404638d47f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/a6bf4dd4-743e-4da8-8c03-3ebd753a6c90.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/a7ccae7b-9d2c-44b2-a061-98e5946971fa.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/a7e7bfa3-088e-4f13-b29e-3986e0e756b8.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/a87a4e42-1d82-44bd-b0bf-d9b7f91fb89e.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/a989fa1b-9a11-4dd8-a3e9-f0de9c6eb5f2.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/a99f82f5-8e77-4f8b-b3ce-10c0f6afbc73.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/a9b05c3b-b304-4bf9-970d-acdfaef2944c.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/a9cb3641-ff4b-4cdc-a063-b4b8d02a67c7.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/aa8007f0-d1df-49ef-8520-407857594827.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/aa895aea-b69c-4411-b110-8d7599634b30.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/aa9a274d-6b53-424d-ac5e-cb8ca4251650.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/ab75c24b-2502-43a0-bf7c-e60e662c811e.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/abae61a8-c560-4dbd-acca-1e1438bff36b.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/ac412404-57a5-476f-858f-4e8fbb4f48d8.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/ac5012b8-8da8-440b-aaaf-aedafdea2dff.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/ac96ceb8-4399-4191-af1d-4feeac1f1f46.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/acbc8bb9-2486-49a8-8779-45fb5f9a93ee.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/acd611f3-2b93-47b3-a0a3-7723bcc46f6d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/ace1e989-a541-44df-93a8-a8b0591b63c0.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/acf738b5-b5b2-4acc-bad9-1e18ee234f40.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/ad0d2742-9a49-11ec-8d6b-acde48001122.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/ad3f2807-2b3e-47d7-b282-f84acbbe14be.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/ad84d445-b1ce-4377-82d9-7c633f28bf9a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/ad88231f-e2ab-491c-8fc6-64746da26cfe.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/adb961e0-cb74-42a0-af9e-29fc41f88f5f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/afcce5ad-65de-4ed2-8516-5e093d3ac99a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/b0046934-486e-462f-9487-0d4cf9e429c6.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/b00bcd89-000c-4425-b94c-716ef67762f6.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/b240bfb8-26b7-4e5e-924e-218144a3fa71.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/b25a7df2-120a-4db2-bd3f-3e4b86b24bee.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/b2951150-658f-4a60-832f-a00d1e6c6745.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/b29ee2be-bf99-446c-ab1a-2dc0183394b8.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/b347b919-665f-4aac-b9e8-68369bf2340c.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/b41a13c6-ba45-4bab-a534-df53d0cfed6a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/b4449455-f986-4b5a-82ed-e36b129331f7.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/b45ab1d2-712f-4f01-a751-df3826969807.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/b4bb1440-0fcb-4ed1-87e5-b06d58efc5e9.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/b5877334-677f-4fb9-86d5-a9721274223b.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/b5ea4bfe-a1b2-421f-9d47-22a75a6f2921.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/b627cd12-dac4-11ec-9582-f661ea17fbcd.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/b64b183e-1a76-422d-9179-7b389513e74d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/b6dce542-2b75-4ffb-b7d6-38787298ba9d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/b719a170-3bdb-4141-b0e3-13e3cf627bfe.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/b8075894-0b62-46e5-977c-31275da34419.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/b83a7e96-2eb3-4edf-8346-427b6858d3bd.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/b86afe07-0d98-4738-b15d-8d7465f95ff5.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/b90cdde7-7e0d-4359-8bf0-2c112ce2008a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/b910f25a-2d44-47f2-a873-aabdc0d355e6.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/b946c2f7-df06-4c00-a5aa-1f6fbc7bb72c.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/b9554892-5e0e-424b-83a0-5aef95aa43bf.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/b9666521-4742-49ce-9ddc-b8e84c35acae.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/b9960fef-82c6-4816-befa-44745030e917.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/ba342eb2-583c-439f-b04d-1fdd7c1417cc.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/baa5d22c-5e1c-4f33-bfc9-efa73bb53022.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/bb4fe8d2-7ae2-475c-8b5d-55b449e4264f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/bb9b13b2-1700-48a8-a750-b43b0a72ab69.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/bba1b212-b85c-41c6-9b28-be0e5cdfc9b1.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/bbd1a775-8267-41fa-9232-20e5582596ac.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/bc0c6f0d-dab0-47a3-b135-0925f0a333bc.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/bc0f2d83-32b8-4ae2-b0e6-6a45772e9331.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/bc1eeacf-2972-434f-b782-3a532b100d67.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/bc48bba7-4a23-4232-b551-eca3ca1e3f20.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/bc8ca7e0-92fd-4b7c-b11e-ee0266b8d9c9.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/bca7d28e-4a48-47b1-adb7-5074310e9a61.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/bd2c86a0-8b61-4457-ab38-96943984e889.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/bd7eefee-f671-494e-98df-f01daf9e5f17.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/bdcf646b-08d4-492c-870a-6c04e3700034.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/be8afaed-4bcd-4e0a-b5f9-5562003dde81.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/bf1073bf-ce26-4607-b405-ba1ed8e9e204.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/bfeaf89b-a2a7-48a3-817f-e41829dc61ee.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c02c8b9f-5e1d-463c-a1b0-04edcdfe1a3d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c0429aa8-9974-42da-bfb6-53a0a515a145.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c0be5f31-e180-48ed-aa08-96b36899d48f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c1812764-0788-470f-8e74-eb4a14d47573.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c25e9c87-95e1-4368-bfab-9fd34cf867ec.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c28c4d8c-f014-40ef-88b6-79a1d67cd499.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c292fa52-4115-408a-b897-e14f684b3cb7.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c2d90150-0133-451c-a783-533e736c12d7.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c3167e1b-f73c-41be-b60b-87f4df707fe3.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c3b915e0-22f3-4bf7-991d-b643513c722f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c3f5e1d8-910e-43b4-8d44-d748e498ca86.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c4210e1c-64f2-4f48-b67e-b5a8ffe3aa14.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c4818812-d44f-47be-aaef-4cfb2f9cc799.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c57f8579-e2a5-4804-847f-f2732edc5156.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c58c3081-2e1d-4497-8491-e73a45d1a6d6.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c5c9f591-d111-4cf8-baec-c26a39bc31ef.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c5ce48a6-7f57-4ee8-9313-3d0024caee10.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c5dc3223-13a2-44a2-946c-e9dc0aa0449c.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c5f81243-56e0-47f9-b5bb-55a5ed89ba57.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c6453e73-90eb-4fe7-a98c-cde7bbfc504a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c749e367-a069-4a73-b1f2-43a3798153ad.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c74fd275-ab2c-4d49-8890-e2943fa65c09.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c7894234-7814-44c2-92a9-f7d851ea246a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c7908cac-337a-4f38-b50d-5eeb78bdb531.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c7db5533-ca2a-41f6-a8b0-ee98abe0f573.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c81cefcb-82b9-4408-a533-3c3df549e62d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c82b2bd8-d701-420c-ba43-f11a155b681a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c82c7d8f-fb9e-4874-a4bd-fd9e3f9becf1.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c85eb82c-d2c8-485c-a36f-534f914b7663.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c88d4bd0-5649-4c52-87ea-9be59dbfbcf2.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c8b150f0-0164-475b-a75e-74b47800a9ff.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c8cccb06-faf2-4cd5-886e-2c9636cfcb87.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/c9e38e64-3f4c-4bf3-ad48-0e61a60ea1fa.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/ca79768e-40e1-4e45-a097-0e5fbc876ac2.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/cac91072-d165-11ec-a764-f661ea17fbce.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/cad4500a-abd7-4ef3-b5d3-95524de7cfe1.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/cb71aa62-55c8-42f0-b0dd-afb0bb0b1f51.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/cc2fd2d0-ba3a-4939-b87f-2901764ed036.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/cc6a8a20-2df2-11ed-8378-f661ea17fbce.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/cc89312d-6f47-48e4-a87c-4977bd4633c3.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/cc92c835-da92-45c9-9f29-b4992ad621a0.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/ccc55af4-9882-4c67-87b4-449a7ae8079c.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/cd16fb10-0261-46e8-9932-a0336278cdbe.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/cd66a419-9b3f-4f57-8ff8-ac4cd2d5f530.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/cd66a5af-e34b-4bb0-8931-57d0a043f2ef.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/cd89602e-9db0-48e3-9391-ae3bf241acd8.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/cdbebdc1-dc97-43c6-a538-f26a20c0a911.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/ce64d965-6cb0-466d-b74f-8d2c76f47f05.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/cf53f532-9cc9-445a-9ae7-fced307ec53c.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/cf549724-c577-4fd6-8f9b-d1b8ec519ec0.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/cff92c41-2225-4763-b4ce-6f71e5bda5e6.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/d00f33e7-b57d-4023-9952-2db91b1767c4.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/d0e159cf-73e9-40d1-a9ed-077e3158a855.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/d117cbb4-7d56-41b4-b999-bdf8c25648a0.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/d22a85c6-d2ad-4cc4-bf7b-54787473669a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/d31f183a-e5b1-451b-8534-ba62bca0b404.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/d331bbe2-6db4-4941-80a5-8270db72eb61.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/d33ea3bf-9a11-463e-bd46-f648f2a0f4b1.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/d461fac0-43e8-49e2-85ea-3a58fe120b4f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/d48e1c13-4aca-4d1f-a7b1-a9161c0ad86f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/d49cc73f-7a16-4def-89ce-9fc7127d7820.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/d4af3a06-1e0a-48ec-b96a-faf2309fae46.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/d4b73fa0-9d43-465e-b8bf-50230da6718b.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/d563aaba-2e72-462b-8658-3e5ea22db3a6.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/d5d86bf5-cf0c-4c06-b688-53fdc072fdfd.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/d624f0ae-3dd1-4856-9aad-ccfe4d4bfa17.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/d62b64a8-a7c9-43e5-aee3-15a725a794e7.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/d68e95ad-1c82-4074-a12a-125fe10ac8ba.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/d68eb1b5-5f1c-4b6d-9e63-5b6b145cd4aa.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/d703a5af-d5b0-43bd-8ddb-7a5d500b7da5.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/d72e33fc-6e91-42ff-ac8b-e573268c5a87.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/d743ff2a-203e-4a46-a3e3-40512cfe8fbb.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/d75991f2-b989-419d-b797-ac1e54ec2d61.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/d76b02ef-fc95-4001-9297-01cb7412232f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/d79c4b2a-6134-4edd-86e6-564a92a933f9.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/d7d5c059-c19a-4a96-8ae3-41496ef3bcf9.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/d7e62693-aab9-4f66-a21a-3d79ecdd603d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/d8fc1cca-93ed-43c1-bbb6-c0dd3eff2958.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/d99a037b-c8e2-47a5-97b9-170d076827c4.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/da87eee1-129c-4661-a7aa-57d0b9645fad.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/dafa3235-76dc-40e2-9f71-1773b96d24cf.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/db8c33a8-03cd-4988-9e2c-d0a4863adb13.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/dc9c1f74-dac3-48e3-b47f-eb79db358f57.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/dca28dee-c999-400f-b640-50a081cc0fd1.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/dd7f1524-643e-11ed-9e35-f661ea17fbcd.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/ddab1f5f-7089-44f5-9fda-de5b11322e77.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/de9bd7e0-49e9-4e92-a64d-53ade2e66af1.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/debff20a-46bc-4a4d-bae5-5cdd14222795.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/df197323-72a8-46a9-a08e-3f5b04a4a97a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/df26fd74-1baa-4479-b42e-48da84642330.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/df6f62d9-caab-4b88-affa-044f4395a1e0.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/df7fda76-c92b-4943-bc68-04460a5ea5ba.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e02bd3ea-72c6-4181-ac2b-0f83d17ad969.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e052c845-48d0-4f46-8a13-7d0aba05df82.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e08ccd49-0380-4b2b-8d71-8000377d6e49.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e0f36de1-0342-453d-95a9-a068b257b053.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e12c0318-99b1-44f2-830c-3a38a43207ca.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e14c5fd7-fdd7-49c2-9e5b-ec49d817bc8d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e19e64ee-130e-4c07-961f-8a339f0b8362.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e26aed74-c816-40d3-a810-48d6fbd8b2fd.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e26f042e-c590-4e82-8e05-41e81bd822ad.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e2a67480-3b79-403d-96e3-fdd2992c50ef.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e2f9fdf5-8076-45ad-9427-41e0e03dc9c2.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e2fb5b18-e33c-4270-851e-c3d675c9afcd.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e3343ab9-4245-4715-b344-e11c56b0a47f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e3c27562-709a-42bd-82f2-3ed926cced19.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e3c5d5cb-41d5-4206-805c-f30561eae3ac.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e3cf38fa-d5b8-46cc-87f9-4a7513e4281d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e3e904b3-0a8e-4e68-86a8-977a163e21d3.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e48236ca-b67a-4b4e-840c-fdc7782bc0c3.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e4e31051-ee01-4307-a6ee-b21b186958f4.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e514d8cd-ed15-4011-84e2-d15147e059f1.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e555105c-ba6d-481f-82bb-9b633e7b4827.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e6c1a552-7776-44ad-ae0f-8746cc07773c.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e6c98d38-633d-4b3e-9387-42112cd5ac10.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e6e3ecff-03dd-48ec-acbd-54a04de10c68.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e6e8912f-283f-4d0d-8442-e0dcaf49944b.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e7075e8d-a966-458e-a183-85cd331af255.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e7125cea-9fe1-42a5-9a05-b0792cf86f5a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e7cd5982-17c8-4959-874c-633acde7d426.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e8571d5f-bea1-46c2-9f56-998de2d3ed95.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e86da94d-e54b-4fb5-b96c-cecff87e8787.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e90ee3af-45fc-432e-a850-4a58cf14a457.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e919611d-6b6f-493b-8314-7ed6ac2e413b.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e94262f2-c1e9-4d3f-a907-aeab16712e1a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e9abe69b-1deb-4e19-ac4a-5d5ac00f72eb.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/e9ff9c1c-fe36-4d0d-b3fd-9e0bf4853a62.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/ea248a02-bc47-4043-8e94-2885b19b2636.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/eaa77d63-9679-4ce3-be25-3ba8b795e5fa.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/eb079c62-4481-4d6e-9643-3ca499df7aaa.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/eb610e70-f9e6-4949-82b9-f1c5bcd37c39.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/eb6a3790-d52d-11ec-8ce9-f661ea17fbce.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/eb9eb8ba-a983-41d9-9c93-a1c05112ca5e.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/ebf1adea-ccf2-4943-8b96-7ab11ca173a5.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/ebfe1448-7fac-4d59-acea-181bd89b1f7f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/ec8efb0c-604d-42fa-ac46-ed1cfbc38f78.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/ecf2b32c-e221-4bd4-aa3b-c7d59b3bc01d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/ed9ecd27-e3e6-4fd9-8586-7754803f7fc8.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/eda499b8-a073-4e35-9733-22ec71f57f3a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/edb91186-1c7e-4db8-b53e-bfa33a1a0a8a.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/edf8ee23-5ea7-4123-ba19-56b41e424ae3.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/ee5300a7-7e31-4a72-a258-250abb8b3aa1.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/eea82229-b002-470e-a9e1-00be38b14d32.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/ef04a476-07ec-48fc-8f3d-5e1742de76d3.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/ef862985-3f13-4262-a686-5f357bbb9bc2.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/f036953a-4615-4707-a1ca-dc53bf69dcd5.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/f0493cb4-9b15-43a9-9359-68c23a7f2cf3.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/f06414a6-f2a4-466d-8eba-10f85e8abf71.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/f0b48bbc-549e-4bcf-8ee0-a7a72586c6a7.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/f0bc081a-2346-4744-a6a4-81514817e888.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/f0eb70e9-71e9-40cd-813f-bf8e8c812cb1.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/f24bcae1-8980-4b30-b5dd-f851b055c9e7.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/f28e2be4-6eca-4349-bdd9-381573730c22.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/f2c7b914-eda3-40c2-96ac-d23ef91776ca.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/f2f46686-6f3c-4724-bd7d-24e31c70f98f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/f30f3443-4fbb-4c27-ab89-c3ad49d62315.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/f3475224-b179-4f78-8877-c2bd64c26b88.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/f37f3054-d40b-49ac-aa9b-a786c74c58b8.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/f44fa4b6-524c-4e87-8d9e-a32599e4fb7c.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/f494c678-3c33-43aa-b169-bb3d5198c41d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/f545ff26-3c94-4fd0-bd33-3c7f95a3a0fc.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/f5fb4598-4f10-11ed-bdc3-0242ac120002.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/f63c8e3c-d396-404f-b2ea-0379d3942d73.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/f675872f-6d85-40a3-b502-c0d2ef101e92.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/f683dcdf-a018-4801-b066-193d4ae6c8e5.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/f766ffaf-9568-4909-b734-75d19b35cbf4.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/f772ec8a-e182-483c-91d2-72058f76a44c.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/f7c4dc5a-a58d-491d-9f14-9b66507121c0.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/f81ee52c-297e-46d9-9205-07e66931df26.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/f85ce03f-d8a8-4c83-acdc-5c8cd0592be7.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/f874315d-5188-4b4a-8521-d1c73093a7e4.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/f9590f47-6bd5-4a49-bd49-a2f886476fb9.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/f9790abf-bd0c-45f9-8b5f-d0b74015e029.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/f994964f-6fce-4d75-8e79-e16ccc412588.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/fa01341d-6662-426b-9d0c-6d81e33c8a9d.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/fb02b8d3-71ee-4af1-bacd-215d23f17efa.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/fbd44836-0d69-4004-a0b4-03c20370c435.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/fc7c0fa4-8f03-4b3e-8336-c5feab0be022.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/fd4a992d-6130-4802-9ff8-829b89ae801f.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/fd70c98a-c410-42dc-a2e3-761c71848acf.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/fd7a6052-58fa-4397-93c3-4795249ccfa2.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/fe794edd-487f-4a90-b285-3ee54f2af2d3.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/feeed87c-5e95-4339-aef1-47fd79bcfbe3.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/ff013cb4-274d-434a-96bb-fe15ddd3ae92.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/ff4dd44a-0ac6-44c4-8609-3f81bc820f02.json create mode 100644 fleet-packages/detection-rules-composite/kibana/security_rule/ff9b571e-61d6-4f6c-9561-eb4cca3bafe1.json create mode 100644 fleet-packages/detection-rules-composite/manifest.yml create mode 100644 fleet-packages/detection-rules-flat/LICENSE.txt create mode 100644 fleet-packages/detection-rules-flat/changelog.yml create mode 100644 fleet-packages/detection-rules-flat/docs/README.md create mode 100644 fleet-packages/detection-rules-flat/img/sample-logo.svg create mode 100644 fleet-packages/detection-rules-flat/img/sample-screenshot.png create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/000047bb-b27a-47ec-8b62-ef1a5d2c9e19:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/000047bb-b27a-47ec-8b62-ef1a5d2c9e19:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/000047bb-b27a-47ec-8b62-ef1a5d2c9e19:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/00140285-b827-4aee-aa09-8113f58a08f3:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/00140285-b827-4aee-aa09-8113f58a08f3:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/00140285-b827-4aee-aa09-8113f58a08f3:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0022d47d-39c7-4f69-a232-4fe9dc7a3acd:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0022d47d-39c7-4f69-a232-4fe9dc7a3acd:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0022d47d-39c7-4f69-a232-4fe9dc7a3acd:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0136b315-b566-482f-866c-1d8e2477ba16:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0136b315-b566-482f-866c-1d8e2477ba16:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0136b315-b566-482f-866c-1d8e2477ba16:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/015cca13-8832-49ac-a01b-a396114809f6:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/015cca13-8832-49ac-a01b-a396114809f6:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/015cca13-8832-49ac-a01b-a396114809f6:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/027ff9ea-85e7-42e3-99d2-bbb7069e02eb:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/027ff9ea-85e7-42e3-99d2-bbb7069e02eb:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/027ff9ea-85e7-42e3-99d2-bbb7069e02eb:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/02a23ee7-c8f8-4701-b99d-e9038ce313cb:1.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/02a23ee7-c8f8-4701-b99d-e9038ce313cb:1.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/02a23ee7-c8f8-4701-b99d-e9038ce313cb:1.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/02a4576a-7480-4284-9327-548a806b5e48:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/02a4576a-7480-4284-9327-548a806b5e48:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/02a4576a-7480-4284-9327-548a806b5e48:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/02ea4563-ec10-4974-b7de-12e65aa4f9b3:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/02ea4563-ec10-4974-b7de-12e65aa4f9b3:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/02ea4563-ec10-4974-b7de-12e65aa4f9b3:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/03024bd9-d23f-4ec1-8674-3cf1a21e130b:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/03024bd9-d23f-4ec1-8674-3cf1a21e130b:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/03024bd9-d23f-4ec1-8674-3cf1a21e130b:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/035889c4-2686-4583-a7df-67f89c292f2c:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/035889c4-2686-4583-a7df-67f89c292f2c:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/035889c4-2686-4583-a7df-67f89c292f2c:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0415f22a-2336-45fa-ba07-618a5942e22c:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0415f22a-2336-45fa-ba07-618a5942e22c:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0415f22a-2336-45fa-ba07-618a5942e22c:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/041d4d41-9589-43e2-ba13-5680af75ebc2:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/041d4d41-9589-43e2-ba13-5680af75ebc2:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/041d4d41-9589-43e2-ba13-5680af75ebc2:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/04c5a96f-19c5-44fd-9571-a0b033f9086f:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/04c5a96f-19c5-44fd-9571-a0b033f9086f:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/04c5a96f-19c5-44fd-9571-a0b033f9086f:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/053a0387-f3b5-4ba5-8245-8002cca2bd08:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/053a0387-f3b5-4ba5-8245-8002cca2bd08:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/053a0387-f3b5-4ba5-8245-8002cca2bd08:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0564fb9d-90b9-4234-a411-82a546dc1343:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0564fb9d-90b9-4234-a411-82a546dc1343:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0564fb9d-90b9-4234-a411-82a546dc1343:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/05b358de-aa6d-4f6c-89e6-78f74018b43b:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/05b358de-aa6d-4f6c-89e6-78f74018b43b:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/05b358de-aa6d-4f6c-89e6-78f74018b43b:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/05e5a668-7b51-4a67-93ab-e9af405c9ef3:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/05e5a668-7b51-4a67-93ab-e9af405c9ef3:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/05e5a668-7b51-4a67-93ab-e9af405c9ef3:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0635c542-1b96-4335-9b47-126582d2c19a:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0635c542-1b96-4335-9b47-126582d2c19a:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0635c542-1b96-4335-9b47-126582d2c19a:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/06dceabf-adca-48af-ac79-ffdf4c3b1e9a:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/06dceabf-adca-48af-ac79-ffdf4c3b1e9a:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/06dceabf-adca-48af-ac79-ffdf4c3b1e9a:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/074464f9-f30d-4029-8c03-0ed237fffec7:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/074464f9-f30d-4029-8c03-0ed237fffec7:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/074464f9-f30d-4029-8c03-0ed237fffec7:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/07b1ef73-1fde-4a49-a34a-5dd40011b076:1.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/07b1ef73-1fde-4a49-a34a-5dd40011b076:1.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/07b1ef73-1fde-4a49-a34a-5dd40011b076:1.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/07b5f85a-240f-11ed-b3d9-f661ea17fbce:2.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/07b5f85a-240f-11ed-b3d9-f661ea17fbce:2.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/07b5f85a-240f-11ed-b3d9-f661ea17fbce:2.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/080bc66a-5d56-4d1f-8071-817671716db9:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/080bc66a-5d56-4d1f-8071-817671716db9:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/080bc66a-5d56-4d1f-8071-817671716db9:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/082e3f8c-6f80-485c-91eb-5b112cb79b28:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/082e3f8c-6f80-485c-91eb-5b112cb79b28:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/082e3f8c-6f80-485c-91eb-5b112cb79b28:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/083fa162-e790-4d85-9aeb-4fea04188adb:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/083fa162-e790-4d85-9aeb-4fea04188adb:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/083fa162-e790-4d85-9aeb-4fea04188adb:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/092b068f-84ac-485d-8a55-7dd9e006715f:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/092b068f-84ac-485d-8a55-7dd9e006715f:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/092b068f-84ac-485d-8a55-7dd9e006715f:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/09443c92-46b3-45a4-8f25-383b028b258d:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/09443c92-46b3-45a4-8f25-383b028b258d:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/09443c92-46b3-45a4-8f25-383b028b258d:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/09d028a5-dcde-409f-8ae0-557cef1b7082:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/09d028a5-dcde-409f-8ae0-557cef1b7082:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/09d028a5-dcde-409f-8ae0-557cef1b7082:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0a97b20f-4144-49ea-be32-b540ecc445de:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0a97b20f-4144-49ea-be32-b540ecc445de:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0a97b20f-4144-49ea-be32-b540ecc445de:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0b29cab4-dbbd-4a3f-9e8e-1287c7c11ae5:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0b29cab4-dbbd-4a3f-9e8e-1287c7c11ae5:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0b29cab4-dbbd-4a3f-9e8e-1287c7c11ae5:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0b2f3da5-b5ec-47d1-908b-6ebb74814289:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0b2f3da5-b5ec-47d1-908b-6ebb74814289:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0b2f3da5-b5ec-47d1-908b-6ebb74814289:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0c7ca5c2-728d-4ad9-b1c5-bbba83ecb1f4:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0c7ca5c2-728d-4ad9-b1c5-bbba83ecb1f4:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0c7ca5c2-728d-4ad9-b1c5-bbba83ecb1f4:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0c9a14d9-d65d-486f-9b5b-91e4e6b22bd0:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0c9a14d9-d65d-486f-9b5b-91e4e6b22bd0:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0c9a14d9-d65d-486f-9b5b-91e4e6b22bd0:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0ce6487d-8069-4888-9ddd-61b52490cebc:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0ce6487d-8069-4888-9ddd-61b52490cebc:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0ce6487d-8069-4888-9ddd-61b52490cebc:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0d69150b-96f8-467c-a86d-a67a3378ce77:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0d69150b-96f8-467c-a86d-a67a3378ce77:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0d69150b-96f8-467c-a86d-a67a3378ce77:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0d8ad79f-9025-45d8-80c1-4f0cd3c5e8e5:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0d8ad79f-9025-45d8-80c1-4f0cd3c5e8e5:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0d8ad79f-9025-45d8-80c1-4f0cd3c5e8e5:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0e52157a-8e96-4a95-a6e3-5faae5081a74:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0e52157a-8e96-4a95-a6e3-5faae5081a74:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0e52157a-8e96-4a95-a6e3-5faae5081a74:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0e5acaae-6a64-4bbc-adb8-27649c03f7e1:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0e5acaae-6a64-4bbc-adb8-27649c03f7e1:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0e5acaae-6a64-4bbc-adb8-27649c03f7e1:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0e79980b-4250-4a50-a509-69294c14e84b:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0e79980b-4250-4a50-a509-69294c14e84b:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0e79980b-4250-4a50-a509-69294c14e84b:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0f93cb9a-1931-48c2-8cd0-f173fd3e5283:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0f93cb9a-1931-48c2-8cd0-f173fd3e5283:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0f93cb9a-1931-48c2-8cd0-f173fd3e5283:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0ff84c42-873d-41a2-a4ed-08d74d352d01:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0ff84c42-873d-41a2-a4ed-08d74d352d01:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/0ff84c42-873d-41a2-a4ed-08d74d352d01:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/10a500bb-a28f-418e-ba29-ca4c8d1a9f2f:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/10a500bb-a28f-418e-ba29-ca4c8d1a9f2f:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/10a500bb-a28f-418e-ba29-ca4c8d1a9f2f:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/11013227-0301-4a8c-b150-4db924484475:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/11013227-0301-4a8c-b150-4db924484475:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/11013227-0301-4a8c-b150-4db924484475:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1160dcdb-0a0a-4a79-91d8-9b84616edebd:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1160dcdb-0a0a-4a79-91d8-9b84616edebd:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1160dcdb-0a0a-4a79-91d8-9b84616edebd:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1178ae09-5aff-460a-9f2f-455cd0ac4d8e:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1178ae09-5aff-460a-9f2f-455cd0ac4d8e:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1178ae09-5aff-460a-9f2f-455cd0ac4d8e:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/119c8877-8613-416d-a98a-96b6664ee73a:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/119c8877-8613-416d-a98a-96b6664ee73a:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/119c8877-8613-416d-a98a-96b6664ee73a:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/11dd9713-0ec6-4110-9707-32daae1ee68c:1.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/11dd9713-0ec6-4110-9707-32daae1ee68c:1.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/11dd9713-0ec6-4110-9707-32daae1ee68c:1.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/11ea6bec-ebde-4d71-a8e9-784948f8e3e9:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/11ea6bec-ebde-4d71-a8e9-784948f8e3e9:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/11ea6bec-ebde-4d71-a8e9-784948f8e3e9:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/12051077-0124-4394-9522-8f4f4db1d674:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/12051077-0124-4394-9522-8f4f4db1d674:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/12051077-0124-4394-9522-8f4f4db1d674:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/12a2f15d-597e-4334-88ff-38a02cb1330b:200.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/12a2f15d-597e-4334-88ff-38a02cb1330b:200.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/12a2f15d-597e-4334-88ff-38a02cb1330b:200.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/12cbf709-69e8-4055-94f9-24314385c27e:200.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/12cbf709-69e8-4055-94f9-24314385c27e:200.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/12cbf709-69e8-4055-94f9-24314385c27e:200.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/12f07955-1674-44f7-86b5-c35da0a6f41a:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/12f07955-1674-44f7-86b5-c35da0a6f41a:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/12f07955-1674-44f7-86b5-c35da0a6f41a:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1327384f-00f3-44d5-9a8c-2373ba071e92:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1327384f-00f3-44d5-9a8c-2373ba071e92:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1327384f-00f3-44d5-9a8c-2373ba071e92:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/138c5dd5-838b-446e-b1ac-c995c7f8108a:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/138c5dd5-838b-446e-b1ac-c995c7f8108a:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/138c5dd5-838b-446e-b1ac-c995c7f8108a:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/141e9b3a-ff37-4756-989d-05d7cbf35b0e:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/141e9b3a-ff37-4756-989d-05d7cbf35b0e:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/141e9b3a-ff37-4756-989d-05d7cbf35b0e:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/143cb236-0956-4f42-a706-814bcaa0cf5a:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/143cb236-0956-4f42-a706-814bcaa0cf5a:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/143cb236-0956-4f42-a706-814bcaa0cf5a:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/14de811c-d60f-11ec-9fd7-f661ea17fbce:200.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/14de811c-d60f-11ec-9fd7-f661ea17fbce:200.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/14de811c-d60f-11ec-9fd7-f661ea17fbce:200.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/14ed1aa9-ebfd-4cf9-a463-0ac59ec55204:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/14ed1aa9-ebfd-4cf9-a463-0ac59ec55204:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/14ed1aa9-ebfd-4cf9-a463-0ac59ec55204:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/15a8ba77-1c13-4274-88fe-6bd14133861e:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/15a8ba77-1c13-4274-88fe-6bd14133861e:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/15a8ba77-1c13-4274-88fe-6bd14133861e:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/15c0b7a7-9c34-4869-b25b-fa6518414899:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/15c0b7a7-9c34-4869-b25b-fa6518414899:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/15c0b7a7-9c34-4869-b25b-fa6518414899:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/15dacaa0-5b90-466b-acab-63435a59701a:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/15dacaa0-5b90-466b-acab-63435a59701a:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/15dacaa0-5b90-466b-acab-63435a59701a:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/16280f1e-57e6-4242-aa21-bb4d16f13b2f:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/16280f1e-57e6-4242-aa21-bb4d16f13b2f:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/16280f1e-57e6-4242-aa21-bb4d16f13b2f:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/16904215-2c95-4ac8-bf5c-12354e047192:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/16904215-2c95-4ac8-bf5c-12354e047192:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/16904215-2c95-4ac8-bf5c-12354e047192:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/169f3a93-efc7-4df2-94d6-0d9438c310d1:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/169f3a93-efc7-4df2-94d6-0d9438c310d1:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/169f3a93-efc7-4df2-94d6-0d9438c310d1:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/16a52c14-7883-47af-8745-9357803f0d4c:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/16a52c14-7883-47af-8745-9357803f0d4c:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/16a52c14-7883-47af-8745-9357803f0d4c:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/16fac1a1-21ee-4ca6-b720-458e3855d046:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/16fac1a1-21ee-4ca6-b720-458e3855d046:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/16fac1a1-21ee-4ca6-b720-458e3855d046:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9c59-fc0fa58336a5:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9c59-fc0fa58336a5:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9c59-fc0fa58336a5:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9c71-fc0fa58338c7:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9c71-fc0fa58338c7:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9c71-fc0fa58338c7:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9d60-fc0fa58337b6:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9d60-fc0fa58337b6:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9d60-fc0fa58337b6:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9d82-fc0fa58449c8:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9d82-fc0fa58449c8:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9d82-fc0fa58449c8:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9e93-fc0fa69550c9:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9e93-fc0fa69550c9:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9e93-fc0fa69550c9:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/17c7f6a5-5bc9-4e1f-92bf-13632d24384d:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/17c7f6a5-5bc9-4e1f-92bf-13632d24384d:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/17c7f6a5-5bc9-4e1f-92bf-13632d24384d:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/17e68559-b274-4948-ad0b-f8415bb31126:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/17e68559-b274-4948-ad0b-f8415bb31126:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/17e68559-b274-4948-ad0b-f8415bb31126:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/184dfe52-2999-42d9-b9d1-d1ca54495a61:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/184dfe52-2999-42d9-b9d1-d1ca54495a61:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/184dfe52-2999-42d9-b9d1-d1ca54495a61:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/19de8096-e2b0-4bd8-80c9-34a820813fff:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/19de8096-e2b0-4bd8-80c9-34a820813fff:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/19de8096-e2b0-4bd8-80c9-34a820813fff:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1a36cace-11a7-43a8-9a10-b497c5a02cd3:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1a36cace-11a7-43a8-9a10-b497c5a02cd3:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1a36cace-11a7-43a8-9a10-b497c5a02cd3:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1a6075b0-7479-450e-8fe7-b8b8438ac570:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1a6075b0-7479-450e-8fe7-b8b8438ac570:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1a6075b0-7479-450e-8fe7-b8b8438ac570:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1aa8fa52-44a7-4dae-b058-f3333b91c8d7:103.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1aa8fa52-44a7-4dae-b058-f3333b91c8d7:103.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1aa8fa52-44a7-4dae-b058-f3333b91c8d7:103.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1aa9181a-492b-4c01-8b16-fa0735786b2b:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1aa9181a-492b-4c01-8b16-fa0735786b2b:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1aa9181a-492b-4c01-8b16-fa0735786b2b:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1b21abcc-4d9f-4b08-a7f5-316f5f94b973:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1b21abcc-4d9f-4b08-a7f5-316f5f94b973:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1b21abcc-4d9f-4b08-a7f5-316f5f94b973:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1ba5160d-f5a2-4624-b0ff-6a1dc55d2516:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1ba5160d-f5a2-4624-b0ff-6a1dc55d2516:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1ba5160d-f5a2-4624-b0ff-6a1dc55d2516:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1c27fa22-7727-4dd3-81c0-de6da5555feb:1.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1c27fa22-7727-4dd3-81c0-de6da5555feb:1.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1c27fa22-7727-4dd3-81c0-de6da5555feb:1.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1c6a8c7a-5cb6-4a82-ba27-d5a5b8a40a38:103.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1c6a8c7a-5cb6-4a82-ba27-d5a5b8a40a38:103.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1c6a8c7a-5cb6-4a82-ba27-d5a5b8a40a38:103.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1c84dd64-7e6c-4bad-ac73-a5014ee37042:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1c84dd64-7e6c-4bad-ac73-a5014ee37042:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1c84dd64-7e6c-4bad-ac73-a5014ee37042:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1c966416-60c1-436b-bfd0-e002fddbfd89:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1c966416-60c1-436b-bfd0-e002fddbfd89:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1c966416-60c1-436b-bfd0-e002fddbfd89:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1cd01db9-be24-4bef-8e7c-e923f0ff78ab:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1cd01db9-be24-4bef-8e7c-e923f0ff78ab:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1cd01db9-be24-4bef-8e7c-e923f0ff78ab:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1d276579-3380-4095-ad38-e596a01bc64f:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1d276579-3380-4095-ad38-e596a01bc64f:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1d276579-3380-4095-ad38-e596a01bc64f:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1d72d014-e2ab-4707-b056-9b96abe7b511:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1d72d014-e2ab-4707-b056-9b96abe7b511:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1d72d014-e2ab-4707-b056-9b96abe7b511:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1dcc51f6-ba26-49e7-9ef4-2655abb2361e:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1dcc51f6-ba26-49e7-9ef4-2655abb2361e:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1dcc51f6-ba26-49e7-9ef4-2655abb2361e:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1defdd62-cd8d-426e-a246-81a37751bb2b:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1defdd62-cd8d-426e-a246-81a37751bb2b:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1defdd62-cd8d-426e-a246-81a37751bb2b:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1e0b832e-957e-43ae-b319-db82d228c908:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1e0b832e-957e-43ae-b319-db82d228c908:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1e0b832e-957e-43ae-b319-db82d228c908:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1e9fc667-9ff1-4b33-9f40-fefca8537eb0:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1e9fc667-9ff1-4b33-9f40-fefca8537eb0:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1e9fc667-9ff1-4b33-9f40-fefca8537eb0:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1faec04b-d902-4f89-8aff-92cd9043c16f:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1faec04b-d902-4f89-8aff-92cd9043c16f:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1faec04b-d902-4f89-8aff-92cd9043c16f:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1fe3b299-fbb5-4657-a937-1d746f2c711a:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1fe3b299-fbb5-4657-a937-1d746f2c711a:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/1fe3b299-fbb5-4657-a937-1d746f2c711a:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2003cdc8-8d83-4aa5-b132-1f9a8eb48514:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2003cdc8-8d83-4aa5-b132-1f9a8eb48514:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2003cdc8-8d83-4aa5-b132-1f9a8eb48514:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/201200f1-a99b-43fb-88ed-f65a45c4972c:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/201200f1-a99b-43fb-88ed-f65a45c4972c:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/201200f1-a99b-43fb-88ed-f65a45c4972c:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/203ab79b-239b-4aa5-8e54-fc50623ee8e4:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/203ab79b-239b-4aa5-8e54-fc50623ee8e4:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/203ab79b-239b-4aa5-8e54-fc50623ee8e4:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2045567e-b0af-444a-8c0b-0b6e2dae9e13:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2045567e-b0af-444a-8c0b-0b6e2dae9e13:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2045567e-b0af-444a-8c0b-0b6e2dae9e13:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/20457e4f-d1de-4b92-ae69-142e27a4342a:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/20457e4f-d1de-4b92-ae69-142e27a4342a:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/20457e4f-d1de-4b92-ae69-142e27a4342a:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/208dbe77-01ed-4954-8d44-1e5751cb20de:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/208dbe77-01ed-4954-8d44-1e5751cb20de:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/208dbe77-01ed-4954-8d44-1e5751cb20de:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/220be143-5c67-4fdb-b6ce-dd6826d024fd:1.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/220be143-5c67-4fdb-b6ce-dd6826d024fd:1.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/220be143-5c67-4fdb-b6ce-dd6826d024fd:1.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2215b8bd-1759-4ffa-8ab8-55c8e6b32e7f:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2215b8bd-1759-4ffa-8ab8-55c8e6b32e7f:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2215b8bd-1759-4ffa-8ab8-55c8e6b32e7f:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/22599847-5d13-48cb-8872-5796fee8692b:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/22599847-5d13-48cb-8872-5796fee8692b:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/22599847-5d13-48cb-8872-5796fee8692b:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/227dc608-e558-43d9-b521-150772250bae:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/227dc608-e558-43d9-b521-150772250bae:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/227dc608-e558-43d9-b521-150772250bae:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/231876e7-4d1f-4d63-a47c-47dd1acdc1cb:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/231876e7-4d1f-4d63-a47c-47dd1acdc1cb:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/231876e7-4d1f-4d63-a47c-47dd1acdc1cb:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2326d1b2-9acf-4dee-bd21-867ea7378b4d:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2326d1b2-9acf-4dee-bd21-867ea7378b4d:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2326d1b2-9acf-4dee-bd21-867ea7378b4d:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2339f03c-f53f-40fa-834b-40c5983fc41f:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2339f03c-f53f-40fa-834b-40c5983fc41f:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2339f03c-f53f-40fa-834b-40c5983fc41f:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/25224a80-5a4a-4b8a-991e-6ab390465c4f:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/25224a80-5a4a-4b8a-991e-6ab390465c4f:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/25224a80-5a4a-4b8a-991e-6ab390465c4f:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2636aa6c-88b5-4337-9c31-8d0192a8ef45:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2636aa6c-88b5-4337-9c31-8d0192a8ef45:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2636aa6c-88b5-4337-9c31-8d0192a8ef45:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/265db8f5-fc73-4d0d-b434-6483b56372e2:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/265db8f5-fc73-4d0d-b434-6483b56372e2:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/265db8f5-fc73-4d0d-b434-6483b56372e2:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/26b01043-4f04-4d2f-882a-5a1d2e95751b:1.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/26b01043-4f04-4d2f-882a-5a1d2e95751b:1.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/26b01043-4f04-4d2f-882a-5a1d2e95751b:1.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/26edba02-6979-4bce-920a-70b080a7be81:103.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/26edba02-6979-4bce-920a-70b080a7be81:103.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/26edba02-6979-4bce-920a-70b080a7be81:103.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/26f68dba-ce29-497b-8e13-b4fde1db5a2d:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/26f68dba-ce29-497b-8e13-b4fde1db5a2d:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/26f68dba-ce29-497b-8e13-b4fde1db5a2d:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/272a6484-2663-46db-a532-ef734bf9a796:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/272a6484-2663-46db-a532-ef734bf9a796:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/272a6484-2663-46db-a532-ef734bf9a796:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2772264c-6fb9-4d9d-9014-b416eed21254:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2772264c-6fb9-4d9d-9014-b416eed21254:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2772264c-6fb9-4d9d-9014-b416eed21254:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2783d84f-5091-4d7d-9319-9fceda8fa71b:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2783d84f-5091-4d7d-9319-9fceda8fa71b:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2783d84f-5091-4d7d-9319-9fceda8fa71b:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/27f7c15a-91f8-4c3d-8b9e-1f99cc030a51:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/27f7c15a-91f8-4c3d-8b9e-1f99cc030a51:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/27f7c15a-91f8-4c3d-8b9e-1f99cc030a51:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2820c9c2-bcd7-4d6e-9eba-faf3891ba450:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2820c9c2-bcd7-4d6e-9eba-faf3891ba450:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2820c9c2-bcd7-4d6e-9eba-faf3891ba450:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2856446a-34e6-435b-9fb5-f8f040bfa7ed:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2856446a-34e6-435b-9fb5-f8f040bfa7ed:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2856446a-34e6-435b-9fb5-f8f040bfa7ed:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2863ffeb-bf77-44dd-b7a5-93ef94b72036:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2863ffeb-bf77-44dd-b7a5-93ef94b72036:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2863ffeb-bf77-44dd-b7a5-93ef94b72036:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/29052c19-ff3e-42fd-8363-7be14d7c5469:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/29052c19-ff3e-42fd-8363-7be14d7c5469:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/29052c19-ff3e-42fd-8363-7be14d7c5469:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/290aca65-e94d-403b-ba0f-62f320e63f51:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/290aca65-e94d-403b-ba0f-62f320e63f51:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/290aca65-e94d-403b-ba0f-62f320e63f51:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2917d495-59bd-4250-b395-c29409b76086:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2917d495-59bd-4250-b395-c29409b76086:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2917d495-59bd-4250-b395-c29409b76086:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/291a0de9-937a-4189-94c0-3e847c8b13e4:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/291a0de9-937a-4189-94c0-3e847c8b13e4:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/291a0de9-937a-4189-94c0-3e847c8b13e4:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2abda169-416b-4bb3-9a6b-f8d239fd78ba:200.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2abda169-416b-4bb3-9a6b-f8d239fd78ba:200.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2abda169-416b-4bb3-9a6b-f8d239fd78ba:200.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2bf78aa2-9c56-48de-b139-f169bf99cf86:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2bf78aa2-9c56-48de-b139-f169bf99cf86:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2bf78aa2-9c56-48de-b139-f169bf99cf86:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2c17e5d7-08b9-43b2-b58a-0270d65ac85b:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2c17e5d7-08b9-43b2-b58a-0270d65ac85b:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2c17e5d7-08b9-43b2-b58a-0270d65ac85b:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2c3c29a4-f170-42f8-a3d8-2ceebc18eb6a:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2c3c29a4-f170-42f8-a3d8-2ceebc18eb6a:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2c3c29a4-f170-42f8-a3d8-2ceebc18eb6a:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2d8043ed-5bda-4caf-801c-c1feb7410504:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2d8043ed-5bda-4caf-801c-c1feb7410504:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2d8043ed-5bda-4caf-801c-c1feb7410504:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2dd480be-1263-4d9c-8672-172928f6789a:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2dd480be-1263-4d9c-8672-172928f6789a:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2dd480be-1263-4d9c-8672-172928f6789a:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2de10e77-c144-4e69-afb7-344e7127abd0:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2de10e77-c144-4e69-afb7-344e7127abd0:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2de10e77-c144-4e69-afb7-344e7127abd0:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2de87d72-ee0c-43e2-b975-5f0b029ac600:1.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2de87d72-ee0c-43e2-b975-5f0b029ac600:1.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2de87d72-ee0c-43e2-b975-5f0b029ac600:1.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2e1e835d-01e5-48ca-b9fc-7a61f7f11902:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2e1e835d-01e5-48ca-b9fc-7a61f7f11902:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2e1e835d-01e5-48ca-b9fc-7a61f7f11902:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2e29e96a-b67c-455a-afe4-de6183431d0d:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2e29e96a-b67c-455a-afe4-de6183431d0d:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2e29e96a-b67c-455a-afe4-de6183431d0d:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2e580225-2a58-48ef-938b-572933be06fe:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2e580225-2a58-48ef-938b-572933be06fe:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2e580225-2a58-48ef-938b-572933be06fe:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2edc8076-291e-41e9-81e4-e3fcbc97ae5e:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2edc8076-291e-41e9-81e4-e3fcbc97ae5e:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2edc8076-291e-41e9-81e4-e3fcbc97ae5e:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2f2f4939-0b34-40c2-a0a3-844eb7889f43:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2f2f4939-0b34-40c2-a0a3-844eb7889f43:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2f2f4939-0b34-40c2-a0a3-844eb7889f43:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2f8a1226-5720-437d-9c20-e0029deb6194:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2f8a1226-5720-437d-9c20-e0029deb6194:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2f8a1226-5720-437d-9c20-e0029deb6194:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2fba96c0-ade5-4bce-b92f-a5df2509da3f:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2fba96c0-ade5-4bce-b92f-a5df2509da3f:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2fba96c0-ade5-4bce-b92f-a5df2509da3f:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2ffa1f1e-b6db-47fa-994b-1512743847eb:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2ffa1f1e-b6db-47fa-994b-1512743847eb:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/2ffa1f1e-b6db-47fa-994b-1512743847eb:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/30562697-9859-4ae0-a8c5-dab45d664170:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/30562697-9859-4ae0-a8c5-dab45d664170:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/30562697-9859-4ae0-a8c5-dab45d664170:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3115bd2c-0baa-4df0-80ea-45e474b5ef93:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3115bd2c-0baa-4df0-80ea-45e474b5ef93:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3115bd2c-0baa-4df0-80ea-45e474b5ef93:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/31295df3-277b-4c56-a1fb-84e31b4222a9:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/31295df3-277b-4c56-a1fb-84e31b4222a9:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/31295df3-277b-4c56-a1fb-84e31b4222a9:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/31b4c719-f2b4-41f6-a9bd-fce93c2eaf62:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/31b4c719-f2b4-41f6-a9bd-fce93c2eaf62:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/31b4c719-f2b4-41f6-a9bd-fce93c2eaf62:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3202e172-01b1-4738-a932-d024c514ba72:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3202e172-01b1-4738-a932-d024c514ba72:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3202e172-01b1-4738-a932-d024c514ba72:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/323cb487-279d-4218-bcbd-a568efe930c6:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/323cb487-279d-4218-bcbd-a568efe930c6:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/323cb487-279d-4218-bcbd-a568efe930c6:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/32923416-763a-4531-bb35-f33b9232ecdb:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/32923416-763a-4531-bb35-f33b9232ecdb:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/32923416-763a-4531-bb35-f33b9232ecdb:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/32c5cf9c-2ef8-4e87-819e-5ccb7cd18b14:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/32c5cf9c-2ef8-4e87-819e-5ccb7cd18b14:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/32c5cf9c-2ef8-4e87-819e-5ccb7cd18b14:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/32f4675e-6c49-4ace-80f9-97c9259dca2e:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/32f4675e-6c49-4ace-80f9-97c9259dca2e:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/32f4675e-6c49-4ace-80f9-97c9259dca2e:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/333de828-8190-4cf5-8d7c-7575846f6fe0:103.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/333de828-8190-4cf5-8d7c-7575846f6fe0:103.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/333de828-8190-4cf5-8d7c-7575846f6fe0:103.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/33f306e8-417c-411b-965c-c2812d6d3f4d:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/33f306e8-417c-411b-965c-c2812d6d3f4d:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/33f306e8-417c-411b-965c-c2812d6d3f4d:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/34fde489-94b0-4500-a76f-b8a157cf9269:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/34fde489-94b0-4500-a76f-b8a157cf9269:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/34fde489-94b0-4500-a76f-b8a157cf9269:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/35330ba2-c859-4c98-8b7f-c19159ea0e58:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/35330ba2-c859-4c98-8b7f-c19159ea0e58:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/35330ba2-c859-4c98-8b7f-c19159ea0e58:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3535c8bb-3bd5-40f4-ae32-b7cd589d5372:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3535c8bb-3bd5-40f4-ae32-b7cd589d5372:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3535c8bb-3bd5-40f4-ae32-b7cd589d5372:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/35df0dd8-092d-4a83-88c1-5151a804f31b:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/35df0dd8-092d-4a83-88c1-5151a804f31b:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/35df0dd8-092d-4a83-88c1-5151a804f31b:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/35f86980-1fb1-4dff-b311-3be941549c8d:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/35f86980-1fb1-4dff-b311-3be941549c8d:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/35f86980-1fb1-4dff-b311-3be941549c8d:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3688577a-d196-11ec-90b0-f661ea17fbce:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3688577a-d196-11ec-90b0-f661ea17fbce:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3688577a-d196-11ec-90b0-f661ea17fbce:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/36a8e048-d888-4f61-a8b9-0f9e2e40f317:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/36a8e048-d888-4f61-a8b9-0f9e2e40f317:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/36a8e048-d888-4f61-a8b9-0f9e2e40f317:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/378f9024-8a0c-46a5-aa08-ce147ac73a4e:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/378f9024-8a0c-46a5-aa08-ce147ac73a4e:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/378f9024-8a0c-46a5-aa08-ce147ac73a4e:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/37994bca-0611-4500-ab67-5588afe73b77:103.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/37994bca-0611-4500-ab67-5588afe73b77:103.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/37994bca-0611-4500-ab67-5588afe73b77:103.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/37b211e8-4e2f-440f-86d8-06cc8f158cfa:103.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/37b211e8-4e2f-440f-86d8-06cc8f158cfa:103.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/37b211e8-4e2f-440f-86d8-06cc8f158cfa:103.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/37f638ea-909d-4f94-9248-edd21e4a9906:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/37f638ea-909d-4f94-9248-edd21e4a9906:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/37f638ea-909d-4f94-9248-edd21e4a9906:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3805c3dc-f82c-4f8d-891e-63c24d3102b0:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3805c3dc-f82c-4f8d-891e-63c24d3102b0:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3805c3dc-f82c-4f8d-891e-63c24d3102b0:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3838e0e3-1850-4850-a411-2e8c5ba40ba8:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3838e0e3-1850-4850-a411-2e8c5ba40ba8:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3838e0e3-1850-4850-a411-2e8c5ba40ba8:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/38948d29-3d5d-42e3-8aec-be832aaaf8eb:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/38948d29-3d5d-42e3-8aec-be832aaaf8eb:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/38948d29-3d5d-42e3-8aec-be832aaaf8eb:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/38e5acdd-5f20-4d99-8fe4-f0a1a592077f:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/38e5acdd-5f20-4d99-8fe4-f0a1a592077f:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/38e5acdd-5f20-4d99-8fe4-f0a1a592077f:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/39144f38-5284-4f8e-a2ae-e3fd628d90b0:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/39144f38-5284-4f8e-a2ae-e3fd628d90b0:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/39144f38-5284-4f8e-a2ae-e3fd628d90b0:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/397945f3-d39a-4e6f-8bcb-9656c2031438:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/397945f3-d39a-4e6f-8bcb-9656c2031438:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/397945f3-d39a-4e6f-8bcb-9656c2031438:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3a59fc81-99d3-47ea-8cd6-d48d561fca20:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3a59fc81-99d3-47ea-8cd6-d48d561fca20:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3a59fc81-99d3-47ea-8cd6-d48d561fca20:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3ad49c61-7adc-42c1-b788-732eda2f5abf:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3ad49c61-7adc-42c1-b788-732eda2f5abf:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3ad49c61-7adc-42c1-b788-732eda2f5abf:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3ad77ed4-4dcf-4c51-8bfc-e3f7ce316b2f:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3ad77ed4-4dcf-4c51-8bfc-e3f7ce316b2f:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3ad77ed4-4dcf-4c51-8bfc-e3f7ce316b2f:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3b382770-efbb-44f4-beed-f5e0a051b895:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3b382770-efbb-44f4-beed-f5e0a051b895:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3b382770-efbb-44f4-beed-f5e0a051b895:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3b47900d-e793-49e8-968f-c90dc3526aa1:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3b47900d-e793-49e8-968f-c90dc3526aa1:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3b47900d-e793-49e8-968f-c90dc3526aa1:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3bc6deaa-fbd4-433a-ae21-3e892f95624f:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3bc6deaa-fbd4-433a-ae21-3e892f95624f:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3bc6deaa-fbd4-433a-ae21-3e892f95624f:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3c7e32e6-6104-46d9-a06e-da0f8b5795a0:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3c7e32e6-6104-46d9-a06e-da0f8b5795a0:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3c7e32e6-6104-46d9-a06e-da0f8b5795a0:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3e002465-876f-4f04-b016-84ef48ce7e5d:103.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3e002465-876f-4f04-b016-84ef48ce7e5d:103.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3e002465-876f-4f04-b016-84ef48ce7e5d:103.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3e3d15c6-1509-479a-b125-21718372157e:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3e3d15c6-1509-479a-b125-21718372157e:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3e3d15c6-1509-479a-b125-21718372157e:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3ecbdc9e-e4f2-43fa-8cca-63802125e582:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3ecbdc9e-e4f2-43fa-8cca-63802125e582:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3ecbdc9e-e4f2-43fa-8cca-63802125e582:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3ed032b2-45d8-4406-bc79-7ad1eabb2c72:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3ed032b2-45d8-4406-bc79-7ad1eabb2c72:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3ed032b2-45d8-4406-bc79-7ad1eabb2c72:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3efee4f0-182a-40a8-a835-102c68a4175d:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3efee4f0-182a-40a8-a835-102c68a4175d:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3efee4f0-182a-40a8-a835-102c68a4175d:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3f0e5410-a4bf-4e8c-bcfc-79d67a285c54:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3f0e5410-a4bf-4e8c-bcfc-79d67a285c54:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3f0e5410-a4bf-4e8c-bcfc-79d67a285c54:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3f3f9fe2-d095-11ec-95dc-f661ea17fbce:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3f3f9fe2-d095-11ec-95dc-f661ea17fbce:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/3f3f9fe2-d095-11ec-95dc-f661ea17fbce:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/403ef0d3-8259-40c9-a5b6-d48354712e49:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/403ef0d3-8259-40c9-a5b6-d48354712e49:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/403ef0d3-8259-40c9-a5b6-d48354712e49:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/416697ae-e468-4093-a93d-59661fa619ec:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/416697ae-e468-4093-a93d-59661fa619ec:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/416697ae-e468-4093-a93d-59661fa619ec:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/41824afb-d68c-4d0e-bfee-474dac1fa56e:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/41824afb-d68c-4d0e-bfee-474dac1fa56e:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/41824afb-d68c-4d0e-bfee-474dac1fa56e:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/41b638a1-8ab6-4f8e-86d9-466317ef2db5:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/41b638a1-8ab6-4f8e-86d9-466317ef2db5:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/41b638a1-8ab6-4f8e-86d9-466317ef2db5:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/42bf698b-4738-445b-8231-c834ddefd8a0:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/42bf698b-4738-445b-8231-c834ddefd8a0:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/42bf698b-4738-445b-8231-c834ddefd8a0:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/42eeee3d-947f-46d3-a14d-7036b962c266:2.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/42eeee3d-947f-46d3-a14d-7036b962c266:2.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/42eeee3d-947f-46d3-a14d-7036b962c266:2.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4330272b-9724-4bc6-a3ca-f1532b81e5c2:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4330272b-9724-4bc6-a3ca-f1532b81e5c2:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4330272b-9724-4bc6-a3ca-f1532b81e5c2:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/43303fd4-4839-4e48-b2b2-803ab060758d:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/43303fd4-4839-4e48-b2b2-803ab060758d:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/43303fd4-4839-4e48-b2b2-803ab060758d:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/440e2db4-bc7f-4c96-a068-65b78da59bde:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/440e2db4-bc7f-4c96-a068-65b78da59bde:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/440e2db4-bc7f-4c96-a068-65b78da59bde:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/445a342e-03fb-42d0-8656-0367eb2dead5:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/445a342e-03fb-42d0-8656-0367eb2dead5:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/445a342e-03fb-42d0-8656-0367eb2dead5:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/44fc462c-1159-4fa8-b1b7-9b6296ab4f96:2.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/44fc462c-1159-4fa8-b1b7-9b6296ab4f96:2.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/44fc462c-1159-4fa8-b1b7-9b6296ab4f96:2.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/453f659e-0429-40b1-bfdb-b6957286e04b:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/453f659e-0429-40b1-bfdb-b6957286e04b:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/453f659e-0429-40b1-bfdb-b6957286e04b:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/45ac4800-840f-414c-b221-53dd36a5aaf7:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/45ac4800-840f-414c-b221-53dd36a5aaf7:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/45ac4800-840f-414c-b221-53dd36a5aaf7:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/45d273fb-1dca-457d-9855-bcb302180c21:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/45d273fb-1dca-457d-9855-bcb302180c21:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/45d273fb-1dca-457d-9855-bcb302180c21:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4630d948-40d4-4cef-ac69-4002e29bc3db:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4630d948-40d4-4cef-ac69-4002e29bc3db:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4630d948-40d4-4cef-ac69-4002e29bc3db:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4682fd2c-cfae-47ed-a543-9bed37657aa6:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4682fd2c-cfae-47ed-a543-9bed37657aa6:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4682fd2c-cfae-47ed-a543-9bed37657aa6:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/46f804f5-b289-43d6-a881-9387cf594f75:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/46f804f5-b289-43d6-a881-9387cf594f75:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/46f804f5-b289-43d6-a881-9387cf594f75:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/47e22836-4a16-4b35-beee-98f6c4ee9bf2:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/47e22836-4a16-4b35-beee-98f6c4ee9bf2:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/47e22836-4a16-4b35-beee-98f6c4ee9bf2:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/47f76567-d58a-4fed-b32b-21f571e28910:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/47f76567-d58a-4fed-b32b-21f571e28910:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/47f76567-d58a-4fed-b32b-21f571e28910:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/483c4daf-b0c6-49e0-adf3-0bfa93231d6b:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/483c4daf-b0c6-49e0-adf3-0bfa93231d6b:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/483c4daf-b0c6-49e0-adf3-0bfa93231d6b:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/48b6edfc-079d-4907-b43c-baffa243270d:1.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/48b6edfc-079d-4907-b43c-baffa243270d:1.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/48b6edfc-079d-4907-b43c-baffa243270d:1.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/48d7f54d-c29e-4430-93a9-9db6b5892270:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/48d7f54d-c29e-4430-93a9-9db6b5892270:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/48d7f54d-c29e-4430-93a9-9db6b5892270:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/48ec9452-e1fd-4513-a376-10a1a26d2c83:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/48ec9452-e1fd-4513-a376-10a1a26d2c83:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/48ec9452-e1fd-4513-a376-10a1a26d2c83:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/493834ca-f861-414c-8602-150d5505b777:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/493834ca-f861-414c-8602-150d5505b777:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/493834ca-f861-414c-8602-150d5505b777:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/495e5f2e-2480-11ed-bea8-f661ea17fbce:2.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/495e5f2e-2480-11ed-bea8-f661ea17fbce:2.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/495e5f2e-2480-11ed-bea8-f661ea17fbce:2.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4a4e23cf-78a2-449c-bac3-701924c269d3:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4a4e23cf-78a2-449c-bac3-701924c269d3:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4a4e23cf-78a2-449c-bac3-701924c269d3:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4b438734-3793-4fda-bd42-ceeada0be8f9:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4b438734-3793-4fda-bd42-ceeada0be8f9:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4b438734-3793-4fda-bd42-ceeada0be8f9:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4bd1c1af-79d4-4d37-9efa-6e0240640242:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4bd1c1af-79d4-4d37-9efa-6e0240640242:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4bd1c1af-79d4-4d37-9efa-6e0240640242:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4c59cff1-b78a-41b8-a9f1-4231984d1fb6:2.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4c59cff1-b78a-41b8-a9f1-4231984d1fb6:2.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4c59cff1-b78a-41b8-a9f1-4231984d1fb6:2.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4d50a94f-2844-43fa-8395-6afbd5e1c5ef:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4d50a94f-2844-43fa-8395-6afbd5e1c5ef:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4d50a94f-2844-43fa-8395-6afbd5e1c5ef:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4da13d6e-904f-4636-81d8-6ab14b4e6ae9:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4da13d6e-904f-4636-81d8-6ab14b4e6ae9:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4da13d6e-904f-4636-81d8-6ab14b4e6ae9:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4de76544-f0e5-486a-8f84-eae0b6063cdc:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4de76544-f0e5-486a-8f84-eae0b6063cdc:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4de76544-f0e5-486a-8f84-eae0b6063cdc:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4e85dc8a-3e41-40d8-bc28-91af7ac6cf60:1.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4e85dc8a-3e41-40d8-bc28-91af7ac6cf60:1.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4e85dc8a-3e41-40d8-bc28-91af7ac6cf60:1.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4ed493fc-d637-4a36-80ff-ac84937e5461:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4ed493fc-d637-4a36-80ff-ac84937e5461:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4ed493fc-d637-4a36-80ff-ac84937e5461:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4ed678a9-3a4f-41fb-9fea-f85a6e0a0dff:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4ed678a9-3a4f-41fb-9fea-f85a6e0a0dff:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4ed678a9-3a4f-41fb-9fea-f85a6e0a0dff:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4edd3e1a-3aa0-499b-8147-4d2ea43b1613:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4edd3e1a-3aa0-499b-8147-4d2ea43b1613:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4edd3e1a-3aa0-499b-8147-4d2ea43b1613:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4fe9d835-40e1-452d-8230-17c147cafad8:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4fe9d835-40e1-452d-8230-17c147cafad8:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/4fe9d835-40e1-452d-8230-17c147cafad8:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/513f0ffd-b317-4b9c-9494-92ce861f22c7:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/513f0ffd-b317-4b9c-9494-92ce861f22c7:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/513f0ffd-b317-4b9c-9494-92ce861f22c7:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/514121ce-c7b6-474a-8237-68ff71672379:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/514121ce-c7b6-474a-8237-68ff71672379:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/514121ce-c7b6-474a-8237-68ff71672379:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/51859fa0-d86b-4214-bf48-ebb30ed91305:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/51859fa0-d86b-4214-bf48-ebb30ed91305:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/51859fa0-d86b-4214-bf48-ebb30ed91305:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/51ce96fb-9e52-4dad-b0ba-99b54440fc9a:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/51ce96fb-9e52-4dad-b0ba-99b54440fc9a:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/51ce96fb-9e52-4dad-b0ba-99b54440fc9a:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/523116c0-d89d-4d7c-82c2-39e6845a78ef:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/523116c0-d89d-4d7c-82c2-39e6845a78ef:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/523116c0-d89d-4d7c-82c2-39e6845a78ef:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/52376a86-ee86-4967-97ae-1a05f55816f0:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/52376a86-ee86-4967-97ae-1a05f55816f0:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/52376a86-ee86-4967-97ae-1a05f55816f0:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/52aaab7b-b51c-441a-89ce-4387b3aea886:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/52aaab7b-b51c-441a-89ce-4387b3aea886:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/52aaab7b-b51c-441a-89ce-4387b3aea886:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/52afbdc5-db15-485e-bc24-f5707f820c4b:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/52afbdc5-db15-485e-bc24-f5707f820c4b:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/52afbdc5-db15-485e-bc24-f5707f820c4b:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/530178da-92ea-43ce-94c2-8877a826783d:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/530178da-92ea-43ce-94c2-8877a826783d:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/530178da-92ea-43ce-94c2-8877a826783d:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/536997f7-ae73-447d-a12d-bff1e8f5f0a0:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/536997f7-ae73-447d-a12d-bff1e8f5f0a0:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/536997f7-ae73-447d-a12d-bff1e8f5f0a0:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5370d4cd-2bb3-4d71-abf5-1e1d0ff5a2de:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5370d4cd-2bb3-4d71-abf5-1e1d0ff5a2de:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5370d4cd-2bb3-4d71-abf5-1e1d0ff5a2de:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/53a26770-9cbd-40c5-8b57-61d01a325e14:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/53a26770-9cbd-40c5-8b57-61d01a325e14:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/53a26770-9cbd-40c5-8b57-61d01a325e14:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/54902e45-3467-49a4-8abc-529f2c8cfb80:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/54902e45-3467-49a4-8abc-529f2c8cfb80:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/54902e45-3467-49a4-8abc-529f2c8cfb80:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/54c3d186-0461-4dc3-9b33-2dc5c7473936:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/54c3d186-0461-4dc3-9b33-2dc5c7473936:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/54c3d186-0461-4dc3-9b33-2dc5c7473936:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/55c2bf58-2a39-4c58-a384-c8b1978153c2:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/55c2bf58-2a39-4c58-a384-c8b1978153c2:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/55c2bf58-2a39-4c58-a384-c8b1978153c2:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/55d551c6-333b-4665-ab7e-5d14a59715ce:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/55d551c6-333b-4665-ab7e-5d14a59715ce:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/55d551c6-333b-4665-ab7e-5d14a59715ce:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/56557cde-d923-4b88-adee-c61b3f3b5dc3:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/56557cde-d923-4b88-adee-c61b3f3b5dc3:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/56557cde-d923-4b88-adee-c61b3f3b5dc3:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/565c2b44-7a21-4818-955f-8d4737967d2e:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/565c2b44-7a21-4818-955f-8d4737967d2e:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/565c2b44-7a21-4818-955f-8d4737967d2e:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/565d6ca5-75ba-4c82-9b13-add25353471c:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/565d6ca5-75ba-4c82-9b13-add25353471c:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/565d6ca5-75ba-4c82-9b13-add25353471c:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5663b693-0dea-4f2e-8275-f1ae5ff2de8e:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5663b693-0dea-4f2e-8275-f1ae5ff2de8e:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5663b693-0dea-4f2e-8275-f1ae5ff2de8e:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/56f2e9b5-4803-4e44-a0a4-a52dc79d57fe:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/56f2e9b5-4803-4e44-a0a4-a52dc79d57fe:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/56f2e9b5-4803-4e44-a0a4-a52dc79d57fe:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5700cb81-df44-46aa-a5d7-337798f53eb8:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5700cb81-df44-46aa-a5d7-337798f53eb8:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5700cb81-df44-46aa-a5d7-337798f53eb8:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/571afc56-5ed9-465d-a2a9-045f099f6e7e:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/571afc56-5ed9-465d-a2a9-045f099f6e7e:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/571afc56-5ed9-465d-a2a9-045f099f6e7e:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/573f6e7a-7acf-4bcd-ad42-c4969124d3c0:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/573f6e7a-7acf-4bcd-ad42-c4969124d3c0:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/573f6e7a-7acf-4bcd-ad42-c4969124d3c0:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/577ec21e-56fe-4065-91d8-45eb8224fe77:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/577ec21e-56fe-4065-91d8-45eb8224fe77:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/577ec21e-56fe-4065-91d8-45eb8224fe77:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/581add16-df76-42bb-af8e-c979bfb39a59:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/581add16-df76-42bb-af8e-c979bfb39a59:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/581add16-df76-42bb-af8e-c979bfb39a59:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/58aa72ca-d968-4f34-b9f7-bea51d75eb50:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/58aa72ca-d968-4f34-b9f7-bea51d75eb50:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/58aa72ca-d968-4f34-b9f7-bea51d75eb50:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/58ac2aa5-6718-427c-a845-5f3ac5af00ba:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/58ac2aa5-6718-427c-a845-5f3ac5af00ba:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/58ac2aa5-6718-427c-a845-5f3ac5af00ba:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/58bc134c-e8d2-4291-a552-b4b3e537c60b:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/58bc134c-e8d2-4291-a552-b4b3e537c60b:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/58bc134c-e8d2-4291-a552-b4b3e537c60b:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/58c6d58b-a0d3-412d-b3b8-0981a9400607:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/58c6d58b-a0d3-412d-b3b8-0981a9400607:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/58c6d58b-a0d3-412d-b3b8-0981a9400607:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5930658c-2107-4afc-91af-e0e55b7f7184:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5930658c-2107-4afc-91af-e0e55b7f7184:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5930658c-2107-4afc-91af-e0e55b7f7184:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/594e0cbf-86cc-45aa-9ff7-ff27db27d3ed:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/594e0cbf-86cc-45aa-9ff7-ff27db27d3ed:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/594e0cbf-86cc-45aa-9ff7-ff27db27d3ed:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/59756272-1998-4b8c-be14-e287035c4d10:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/59756272-1998-4b8c-be14-e287035c4d10:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/59756272-1998-4b8c-be14-e287035c4d10:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5a14d01d-7ac8-4545-914c-b687c2cf66b3:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5a14d01d-7ac8-4545-914c-b687c2cf66b3:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5a14d01d-7ac8-4545-914c-b687c2cf66b3:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5ae4e6f8-d1bf-40fa-96ba-e29645e1e4dc:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5ae4e6f8-d1bf-40fa-96ba-e29645e1e4dc:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5ae4e6f8-d1bf-40fa-96ba-e29645e1e4dc:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5aee924b-6ceb-4633-980e-1bde8cdb40c5:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5aee924b-6ceb-4633-980e-1bde8cdb40c5:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5aee924b-6ceb-4633-980e-1bde8cdb40c5:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5b03c9fb-9945-4d2f-9568-fd690fee3fba:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5b03c9fb-9945-4d2f-9568-fd690fee3fba:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5b03c9fb-9945-4d2f-9568-fd690fee3fba:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5bb4a95d-5a08-48eb-80db-4c3a63ec78a8:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5bb4a95d-5a08-48eb-80db-4c3a63ec78a8:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5bb4a95d-5a08-48eb-80db-4c3a63ec78a8:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5beaebc1-cc13-4bfc-9949-776f9e0dc318:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5beaebc1-cc13-4bfc-9949-776f9e0dc318:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5beaebc1-cc13-4bfc-9949-776f9e0dc318:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5c983105-4681-46c3-9890-0c66d05e776b:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5c983105-4681-46c3-9890-0c66d05e776b:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5c983105-4681-46c3-9890-0c66d05e776b:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5cd55388-a19c-47c7-8ec4-f41656c2fded:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5cd55388-a19c-47c7-8ec4-f41656c2fded:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5cd55388-a19c-47c7-8ec4-f41656c2fded:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5cd8e1f7-0050-4afc-b2df-904e40b2f5ae:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5cd8e1f7-0050-4afc-b2df-904e40b2f5ae:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5cd8e1f7-0050-4afc-b2df-904e40b2f5ae:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5cf6397e-eb91-4f31-8951-9f0eaa755a31:1.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5cf6397e-eb91-4f31-8951-9f0eaa755a31:1.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5cf6397e-eb91-4f31-8951-9f0eaa755a31:1.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5d0265bf-dea9-41a9-92ad-48a8dcd05080:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5d0265bf-dea9-41a9-92ad-48a8dcd05080:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5d0265bf-dea9-41a9-92ad-48a8dcd05080:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5d1d6907-0747-4d5d-9b24-e4a18853dc0a:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5d1d6907-0747-4d5d-9b24-e4a18853dc0a:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5d1d6907-0747-4d5d-9b24-e4a18853dc0a:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5d9f8cfc-0d03-443e-a167-2b0597ce0965:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5d9f8cfc-0d03-443e-a167-2b0597ce0965:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5d9f8cfc-0d03-443e-a167-2b0597ce0965:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5e161522-2545-11ed-ac47-f661ea17fbce:2.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5e161522-2545-11ed-ac47-f661ea17fbce:2.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5e161522-2545-11ed-ac47-f661ea17fbce:2.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5e552599-ddec-4e14-bad1-28aa42404388:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5e552599-ddec-4e14-bad1-28aa42404388:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/5e552599-ddec-4e14-bad1-28aa42404388:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/60884af6-f553-4a6c-af13-300047455491:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/60884af6-f553-4a6c-af13-300047455491:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/60884af6-f553-4a6c-af13-300047455491:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/60b6b72f-0fbc-47e7-9895-9ba7627a8b50:103.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/60b6b72f-0fbc-47e7-9895-9ba7627a8b50:103.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/60b6b72f-0fbc-47e7-9895-9ba7627a8b50:103.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/60f3adec-1df9-4104-9c75-b97d9f078b25:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/60f3adec-1df9-4104-9c75-b97d9f078b25:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/60f3adec-1df9-4104-9c75-b97d9f078b25:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/610949a1-312f-4e04-bb55-3a79b8c95267:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/610949a1-312f-4e04-bb55-3a79b8c95267:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/610949a1-312f-4e04-bb55-3a79b8c95267:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/61ac3638-40a3-44b2-855a-985636ca985e:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/61ac3638-40a3-44b2-855a-985636ca985e:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/61ac3638-40a3-44b2-855a-985636ca985e:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/61d29caf-6c15-4d1e-9ccb-7ad12ccc0bc7:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/61d29caf-6c15-4d1e-9ccb-7ad12ccc0bc7:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/61d29caf-6c15-4d1e-9ccb-7ad12ccc0bc7:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/622ecb68-fa81-4601-90b5-f8cd661e4520:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/622ecb68-fa81-4601-90b5-f8cd661e4520:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/622ecb68-fa81-4601-90b5-f8cd661e4520:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/62a70f6f-3c37-43df-a556-f64fa475fba2:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/62a70f6f-3c37-43df-a556-f64fa475fba2:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/62a70f6f-3c37-43df-a556-f64fa475fba2:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/63c05204-339a-11ed-a261-0242ac120002:3.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/63c05204-339a-11ed-a261-0242ac120002:3.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/63c05204-339a-11ed-a261-0242ac120002:3.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/63c056a0-339a-11ed-a261-0242ac120002:2.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/63c056a0-339a-11ed-a261-0242ac120002:2.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/63c056a0-339a-11ed-a261-0242ac120002:2.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/63c057cc-339a-11ed-a261-0242ac120002:2.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/63c057cc-339a-11ed-a261-0242ac120002:2.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/63c057cc-339a-11ed-a261-0242ac120002:2.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/63e65ec3-43b1-45b0-8f2d-45b34291dc44:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/63e65ec3-43b1-45b0-8f2d-45b34291dc44:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/63e65ec3-43b1-45b0-8f2d-45b34291dc44:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/647fc812-7996-4795-8869-9c4ea595fe88:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/647fc812-7996-4795-8869-9c4ea595fe88:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/647fc812-7996-4795-8869-9c4ea595fe88:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6482255d-f468-45ea-a5b3-d3a7de1331ae:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6482255d-f468-45ea-a5b3-d3a7de1331ae:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6482255d-f468-45ea-a5b3-d3a7de1331ae:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/65f9bccd-510b-40df-8263-334f03174fed:200.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/65f9bccd-510b-40df-8263-334f03174fed:200.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/65f9bccd-510b-40df-8263-334f03174fed:200.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/661545b4-1a90-4f45-85ce-2ebd7c6a15d0:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/661545b4-1a90-4f45-85ce-2ebd7c6a15d0:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/661545b4-1a90-4f45-85ce-2ebd7c6a15d0:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/665e7a4f-c58e-4fc6-bc83-87a7572670ac:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/665e7a4f-c58e-4fc6-bc83-87a7572670ac:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/665e7a4f-c58e-4fc6-bc83-87a7572670ac:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/66883649-f908-4a5b-a1e0-54090a1d3a32:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/66883649-f908-4a5b-a1e0-54090a1d3a32:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/66883649-f908-4a5b-a1e0-54090a1d3a32:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/66da12b1-ac83-40eb-814c-07ed1d82b7b9:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/66da12b1-ac83-40eb-814c-07ed1d82b7b9:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/66da12b1-ac83-40eb-814c-07ed1d82b7b9:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/670b3b5a-35e5-42db-bd36-6c5b9b4b7313:1.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/670b3b5a-35e5-42db-bd36-6c5b9b4b7313:1.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/670b3b5a-35e5-42db-bd36-6c5b9b4b7313:1.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6731fbf2-8f28-49ed-9ab9-9a918ceb5a45:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6731fbf2-8f28-49ed-9ab9-9a918ceb5a45:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6731fbf2-8f28-49ed-9ab9-9a918ceb5a45:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/675239ea-c1bc-4467-a6d3-b9e2cc7f676d:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/675239ea-c1bc-4467-a6d3-b9e2cc7f676d:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/675239ea-c1bc-4467-a6d3-b9e2cc7f676d:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/676cff2b-450b-4cf1-8ed2-c0c58a4a2dd7:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/676cff2b-450b-4cf1-8ed2-c0c58a4a2dd7:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/676cff2b-450b-4cf1-8ed2-c0c58a4a2dd7:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/67f8443a-4ff3-4a70-916d-3cfa3ae9f02b:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/67f8443a-4ff3-4a70-916d-3cfa3ae9f02b:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/67f8443a-4ff3-4a70-916d-3cfa3ae9f02b:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6839c821-011d-43bd-bd5b-acff00257226:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6839c821-011d-43bd-bd5b-acff00257226:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6839c821-011d-43bd-bd5b-acff00257226:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/684554fc-0777-47ce-8c9b-3d01f198d7f8:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/684554fc-0777-47ce-8c9b-3d01f198d7f8:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/684554fc-0777-47ce-8c9b-3d01f198d7f8:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6885d2ae-e008-4762-b98a-e8e1cd3a81e9:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6885d2ae-e008-4762-b98a-e8e1cd3a81e9:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6885d2ae-e008-4762-b98a-e8e1cd3a81e9:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/68921d85-d0dc-48b3-865f-43291ca2c4f2:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/68921d85-d0dc-48b3-865f-43291ca2c4f2:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/68921d85-d0dc-48b3-865f-43291ca2c4f2:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/68994a6c-c7ba-4e82-b476-26a26877adf6:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/68994a6c-c7ba-4e82-b476-26a26877adf6:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/68994a6c-c7ba-4e82-b476-26a26877adf6:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/689b9d57-e4d5-4357-ad17-9c334609d79a:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/689b9d57-e4d5-4357-ad17-9c334609d79a:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/689b9d57-e4d5-4357-ad17-9c334609d79a:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/68a7a5a5-a2fc-4a76-ba9f-26849de881b4:103.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/68a7a5a5-a2fc-4a76-ba9f-26849de881b4:103.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/68a7a5a5-a2fc-4a76-ba9f-26849de881b4:103.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/68d56fdc-7ffa-4419-8e95-81641bd6f845:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/68d56fdc-7ffa-4419-8e95-81641bd6f845:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/68d56fdc-7ffa-4419-8e95-81641bd6f845:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6951f15e-533c-4a60-8014-a3c3ab851a1b:1.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6951f15e-533c-4a60-8014-a3c3ab851a1b:1.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6951f15e-533c-4a60-8014-a3c3ab851a1b:1.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/699e9fdb-b77c-4c01-995c-1c15019b9c43:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/699e9fdb-b77c-4c01-995c-1c15019b9c43:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/699e9fdb-b77c-4c01-995c-1c15019b9c43:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/69c251fb-a5d6-4035-b5ec-40438bd829ff:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/69c251fb-a5d6-4035-b5ec-40438bd829ff:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/69c251fb-a5d6-4035-b5ec-40438bd829ff:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/69c420e8-6c9e-4d28-86c0-8a2be2d1e78c:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/69c420e8-6c9e-4d28-86c0-8a2be2d1e78c:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/69c420e8-6c9e-4d28-86c0-8a2be2d1e78c:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6a8ab9cc-4023-4d17-b5df-1a3e16882ce7:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6a8ab9cc-4023-4d17-b5df-1a3e16882ce7:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6a8ab9cc-4023-4d17-b5df-1a3e16882ce7:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6aace640-e631-4870-ba8e-5fdda09325db:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6aace640-e631-4870-ba8e-5fdda09325db:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6aace640-e631-4870-ba8e-5fdda09325db:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6b84d470-9036-4cc0-a27c-6d90bbfe81ab:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6b84d470-9036-4cc0-a27c-6d90bbfe81ab:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6b84d470-9036-4cc0-a27c-6d90bbfe81ab:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6bed021a-0afb-461c-acbe-ffdb9574d3f3:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6bed021a-0afb-461c-acbe-ffdb9574d3f3:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6bed021a-0afb-461c-acbe-ffdb9574d3f3:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6cd1779c-560f-4b68-a8f1-11009b27fe63:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6cd1779c-560f-4b68-a8f1-11009b27fe63:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6cd1779c-560f-4b68-a8f1-11009b27fe63:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6d448b96-c922-4adb-b51c-b767f1ea5b76:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6d448b96-c922-4adb-b51c-b767f1ea5b76:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6d448b96-c922-4adb-b51c-b767f1ea5b76:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6e40d56f-5c0e-4ac6-aece-bee96645b172:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6e40d56f-5c0e-4ac6-aece-bee96645b172:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6e40d56f-5c0e-4ac6-aece-bee96645b172:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6e9130a5-9be6-48e5-943a-9628bfc74b18:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6e9130a5-9be6-48e5-943a-9628bfc74b18:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6e9130a5-9be6-48e5-943a-9628bfc74b18:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6e9b351e-a531-4bdc-b73e-7034d6eed7ff:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6e9b351e-a531-4bdc-b73e-7034d6eed7ff:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6e9b351e-a531-4bdc-b73e-7034d6eed7ff:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6ea41894-66c3-4df7-ad6b-2c5074eb3df8:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6ea41894-66c3-4df7-ad6b-2c5074eb3df8:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6ea41894-66c3-4df7-ad6b-2c5074eb3df8:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6ea55c81-e2ba-42f2-a134-bccf857ba922:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6ea55c81-e2ba-42f2-a134-bccf857ba922:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6ea55c81-e2ba-42f2-a134-bccf857ba922:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6f435062-b7fc-4af9-acea-5b1ead65c5a5:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6f435062-b7fc-4af9-acea-5b1ead65c5a5:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/6f435062-b7fc-4af9-acea-5b1ead65c5a5:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7024e2a0-315d-4334-bb1a-441c593e16ab:103.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7024e2a0-315d-4334-bb1a-441c593e16ab:103.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7024e2a0-315d-4334-bb1a-441c593e16ab:103.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7024e2a0-315d-4334-bb1a-552d604f27bc:103.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7024e2a0-315d-4334-bb1a-552d604f27bc:103.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7024e2a0-315d-4334-bb1a-552d604f27bc:103.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/70d12c9c-0dbd-4a1a-bc44-1467502c9cf6:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/70d12c9c-0dbd-4a1a-bc44-1467502c9cf6:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/70d12c9c-0dbd-4a1a-bc44-1467502c9cf6:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/70fa1af4-27fd-4f26-bd03-50b6af6b9e24:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/70fa1af4-27fd-4f26-bd03-50b6af6b9e24:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/70fa1af4-27fd-4f26-bd03-50b6af6b9e24:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7164081a-3930-11ed-a261-0242ac120002:1.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7164081a-3930-11ed-a261-0242ac120002:1.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7164081a-3930-11ed-a261-0242ac120002:1.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/717f82c2-7741-4f9b-85b8-d06aeb853f4f:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/717f82c2-7741-4f9b-85b8-d06aeb853f4f:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/717f82c2-7741-4f9b-85b8-d06aeb853f4f:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/71bccb61-e19b-452f-b104-79a60e546a95:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/71bccb61-e19b-452f-b104-79a60e546a95:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/71bccb61-e19b-452f-b104-79a60e546a95:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/71c5cb27-eca5-4151-bb47-64bc3f883270:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/71c5cb27-eca5-4151-bb47-64bc3f883270:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/71c5cb27-eca5-4151-bb47-64bc3f883270:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/721999d0-7ab2-44bf-b328-6e63367b9b29:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/721999d0-7ab2-44bf-b328-6e63367b9b29:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/721999d0-7ab2-44bf-b328-6e63367b9b29:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/729aa18d-06a6-41c7-b175-b65b739b1181:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/729aa18d-06a6-41c7-b175-b65b739b1181:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/729aa18d-06a6-41c7-b175-b65b739b1181:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7405ddf1-6c8e-41ce-818f-48bea6bcaed8:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7405ddf1-6c8e-41ce-818f-48bea6bcaed8:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7405ddf1-6c8e-41ce-818f-48bea6bcaed8:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7453e19e-3dbf-4e4e-9ae0-33d6c6ed15e1:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7453e19e-3dbf-4e4e-9ae0-33d6c6ed15e1:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7453e19e-3dbf-4e4e-9ae0-33d6c6ed15e1:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/745b0119-0560-43ba-860a-7235dd8cee8d:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/745b0119-0560-43ba-860a-7235dd8cee8d:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/745b0119-0560-43ba-860a-7235dd8cee8d:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/746edc4c-c54c-49c6-97a1-651223819448:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/746edc4c-c54c-49c6-97a1-651223819448:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/746edc4c-c54c-49c6-97a1-651223819448:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/75ee75d8-c180-481c-ba88-ee50129a6aef:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/75ee75d8-c180-481c-ba88-ee50129a6aef:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/75ee75d8-c180-481c-ba88-ee50129a6aef:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/76152ca1-71d0-4003-9e37-0983e12832da:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/76152ca1-71d0-4003-9e37-0983e12832da:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/76152ca1-71d0-4003-9e37-0983e12832da:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/764c8437-a581-4537-8060-1fdb0e92c92d:200.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/764c8437-a581-4537-8060-1fdb0e92c92d:200.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/764c8437-a581-4537-8060-1fdb0e92c92d:200.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/764c9fcd-4c4c-41e6-a0c7-d6c46c2eff66:1.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/764c9fcd-4c4c-41e6-a0c7-d6c46c2eff66:1.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/764c9fcd-4c4c-41e6-a0c7-d6c46c2eff66:1.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/766d3f91-3f12-448c-b65f-20123e9e9e8c:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/766d3f91-3f12-448c-b65f-20123e9e9e8c:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/766d3f91-3f12-448c-b65f-20123e9e9e8c:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/76ddb638-abf7-42d5-be22-4a70b0bf7241:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/76ddb638-abf7-42d5-be22-4a70b0bf7241:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/76ddb638-abf7-42d5-be22-4a70b0bf7241:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/76fd43b7-3480-4dd9-8ad7-8bd36bfad92f:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/76fd43b7-3480-4dd9-8ad7-8bd36bfad92f:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/76fd43b7-3480-4dd9-8ad7-8bd36bfad92f:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/770e0c4d-b998-41e5-a62e-c7901fd7f470:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/770e0c4d-b998-41e5-a62e-c7901fd7f470:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/770e0c4d-b998-41e5-a62e-c7901fd7f470:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/774f5e28-7b75-4a58-b94e-41bf060fdd86:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/774f5e28-7b75-4a58-b94e-41bf060fdd86:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/774f5e28-7b75-4a58-b94e-41bf060fdd86:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/77a3c3df-8ec4-4da4-b758-878f551dee69:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/77a3c3df-8ec4-4da4-b758-878f551dee69:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/77a3c3df-8ec4-4da4-b758-878f551dee69:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/785a404b-75aa-4ffd-8be5-3334a5a544dd:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/785a404b-75aa-4ffd-8be5-3334a5a544dd:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/785a404b-75aa-4ffd-8be5-3334a5a544dd:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7882cebf-6cf1-4de3-9662-213aa13e8b80:103.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7882cebf-6cf1-4de3-9662-213aa13e8b80:103.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7882cebf-6cf1-4de3-9662-213aa13e8b80:103.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/78d3d8d9-b476-451d-a9e0-7a5addd70670:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/78d3d8d9-b476-451d-a9e0-7a5addd70670:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/78d3d8d9-b476-451d-a9e0-7a5addd70670:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/792dd7a6-7e00-4a0a-8a9a-a7c24720b5ec:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/792dd7a6-7e00-4a0a-8a9a-a7c24720b5ec:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/792dd7a6-7e00-4a0a-8a9a-a7c24720b5ec:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/79f97b31-480e-4e63-a7f4-ede42bf2c6de:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/79f97b31-480e-4e63-a7f4-ede42bf2c6de:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/79f97b31-480e-4e63-a7f4-ede42bf2c6de:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7b3da11a-60a2-412e-8aa7-011e1eb9ed47:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7b3da11a-60a2-412e-8aa7-011e1eb9ed47:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7b3da11a-60a2-412e-8aa7-011e1eb9ed47:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7b8bfc26-81d2-435e-965c-d722ee397ef1:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7b8bfc26-81d2-435e-965c-d722ee397ef1:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7b8bfc26-81d2-435e-965c-d722ee397ef1:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7ba58110-ae13-439b-8192-357b0fcfa9d7:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7ba58110-ae13-439b-8192-357b0fcfa9d7:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7ba58110-ae13-439b-8192-357b0fcfa9d7:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7bcbb3ac-e533-41ad-a612-d6c3bf666aba:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7bcbb3ac-e533-41ad-a612-d6c3bf666aba:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7bcbb3ac-e533-41ad-a612-d6c3bf666aba:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7caa8e60-2df0-11ed-b814-f661ea17fbce:2.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7caa8e60-2df0-11ed-b814-f661ea17fbce:2.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7caa8e60-2df0-11ed-b814-f661ea17fbce:2.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7ceb2216-47dd-4e64-9433-cddc99727623:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7ceb2216-47dd-4e64-9433-cddc99727623:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7ceb2216-47dd-4e64-9433-cddc99727623:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7f370d54-c0eb-4270-ac5a-9a6020585dc6:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7f370d54-c0eb-4270-ac5a-9a6020585dc6:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/7f370d54-c0eb-4270-ac5a-9a6020585dc6:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/809b70d3-e2c3-455e-af1b-2626a5a1a276:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/809b70d3-e2c3-455e-af1b-2626a5a1a276:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/809b70d3-e2c3-455e-af1b-2626a5a1a276:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/80c52164-c82a-402c-9964-852533d58be1:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/80c52164-c82a-402c-9964-852533d58be1:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/80c52164-c82a-402c-9964-852533d58be1:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/818e23e6-2094-4f0e-8c01-22d30f3506c6:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/818e23e6-2094-4f0e-8c01-22d30f3506c6:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/818e23e6-2094-4f0e-8c01-22d30f3506c6:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/81fe9dc6-a2d7-4192-a2d8-eed98afc766a:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/81fe9dc6-a2d7-4192-a2d8-eed98afc766a:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/81fe9dc6-a2d7-4192-a2d8-eed98afc766a:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/81ff45f8-f8c2-4e28-992e-5a0e8d98e0fe:2.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/81ff45f8-f8c2-4e28-992e-5a0e8d98e0fe:2.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/81ff45f8-f8c2-4e28-992e-5a0e8d98e0fe:2.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/827f8d8f-4117-4ae4-b551-f56d54b9da6b:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/827f8d8f-4117-4ae4-b551-f56d54b9da6b:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/827f8d8f-4117-4ae4-b551-f56d54b9da6b:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/83a1931d-8136-46fc-b7b9-2db4f639e014:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/83a1931d-8136-46fc-b7b9-2db4f639e014:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/83a1931d-8136-46fc-b7b9-2db4f639e014:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/84da2554-e12a-11ec-b896-f661ea17fbcd:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/84da2554-e12a-11ec-b896-f661ea17fbcd:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/84da2554-e12a-11ec-b896-f661ea17fbcd:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/850d901a-2a3c-46c6-8b22-55398a01aad8:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/850d901a-2a3c-46c6-8b22-55398a01aad8:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/850d901a-2a3c-46c6-8b22-55398a01aad8:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/852c1f19-68e8-43a6-9dce-340771fe1be3:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/852c1f19-68e8-43a6-9dce-340771fe1be3:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/852c1f19-68e8-43a6-9dce-340771fe1be3:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8623535c-1e17-44e1-aa97-7a0699c3037d:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8623535c-1e17-44e1-aa97-7a0699c3037d:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8623535c-1e17-44e1-aa97-7a0699c3037d:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/863cdf31-7fd3-41cf-a185-681237ea277b:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/863cdf31-7fd3-41cf-a185-681237ea277b:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/863cdf31-7fd3-41cf-a185-681237ea277b:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/867616ec-41e5-4edc-ada2-ab13ab45de8a:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/867616ec-41e5-4edc-ada2-ab13ab45de8a:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/867616ec-41e5-4edc-ada2-ab13ab45de8a:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/870aecc0-cea4-4110-af3f-e02e9b373655:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/870aecc0-cea4-4110-af3f-e02e9b373655:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/870aecc0-cea4-4110-af3f-e02e9b373655:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/871ea072-1b71-4def-b016-6278b505138d:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/871ea072-1b71-4def-b016-6278b505138d:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/871ea072-1b71-4def-b016-6278b505138d:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/87594192-4539-4bc4-8543-23bc3d5bd2b4:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/87594192-4539-4bc4-8543-23bc3d5bd2b4:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/87594192-4539-4bc4-8543-23bc3d5bd2b4:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/88671231-6626-4e1b-abb7-6e361a171fbb:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/88671231-6626-4e1b-abb7-6e361a171fbb:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/88671231-6626-4e1b-abb7-6e361a171fbb:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/88817a33-60d3-411f-ba79-7c905d865b2a:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/88817a33-60d3-411f-ba79-7c905d865b2a:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/88817a33-60d3-411f-ba79-7c905d865b2a:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/891cb88e-441a-4c3e-be2d-120d99fe7b0d:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/891cb88e-441a-4c3e-be2d-120d99fe7b0d:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/891cb88e-441a-4c3e-be2d-120d99fe7b0d:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/897dc6b5-b39f-432a-8d75-d3730d50c782:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/897dc6b5-b39f-432a-8d75-d3730d50c782:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/897dc6b5-b39f-432a-8d75-d3730d50c782:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/89f9a4b0-9f8f-4ee0-8823-c4751a6d6696:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/89f9a4b0-9f8f-4ee0-8823-c4751a6d6696:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/89f9a4b0-9f8f-4ee0-8823-c4751a6d6696:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/89fa6cb7-6b53-4de2-b604-648488841ab8:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/89fa6cb7-6b53-4de2-b604-648488841ab8:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/89fa6cb7-6b53-4de2-b604-648488841ab8:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8a1b0278-0f9a-487d-96bd-d4833298e87a:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8a1b0278-0f9a-487d-96bd-d4833298e87a:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8a1b0278-0f9a-487d-96bd-d4833298e87a:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8a1d4831-3ce6-4859-9891-28931fa6101d:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8a1d4831-3ce6-4859-9891-28931fa6101d:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8a1d4831-3ce6-4859-9891-28931fa6101d:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8a5c1e5f-ad63-481e-b53a-ef959230f7f1:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8a5c1e5f-ad63-481e-b53a-ef959230f7f1:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8a5c1e5f-ad63-481e-b53a-ef959230f7f1:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8acb7614-1d92-4359-bfcf-478b6d9de150:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8acb7614-1d92-4359-bfcf-478b6d9de150:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8acb7614-1d92-4359-bfcf-478b6d9de150:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8b2b3a62-a598-4293-bc14-3d5fa22bb98f:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8b2b3a62-a598-4293-bc14-3d5fa22bb98f:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8b2b3a62-a598-4293-bc14-3d5fa22bb98f:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8b4f0816-6a65-4630-86a6-c21c179c0d09:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8b4f0816-6a65-4630-86a6-c21c179c0d09:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8b4f0816-6a65-4630-86a6-c21c179c0d09:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8b64d36a-1307-4b2e-a77b-a0027e4d27c8:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8b64d36a-1307-4b2e-a77b-a0027e4d27c8:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8b64d36a-1307-4b2e-a77b-a0027e4d27c8:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8c1bdde8-4204-45c0-9e0c-c85ca3902488:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8c1bdde8-4204-45c0-9e0c-c85ca3902488:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8c1bdde8-4204-45c0-9e0c-c85ca3902488:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8c81e506-6e82-4884-9b9a-75d3d252f967:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8c81e506-6e82-4884-9b9a-75d3d252f967:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8c81e506-6e82-4884-9b9a-75d3d252f967:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8cb4f625-7743-4dfb-ae1b-ad92be9df7bd:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8cb4f625-7743-4dfb-ae1b-ad92be9df7bd:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8cb4f625-7743-4dfb-ae1b-ad92be9df7bd:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8cb84371-d053-4f4f-bce0-c74990e28f28:1.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8cb84371-d053-4f4f-bce0-c74990e28f28:1.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8cb84371-d053-4f4f-bce0-c74990e28f28:1.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8da41fc9-7735-4b24-9cc6-c78dfc9fc9c9:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8da41fc9-7735-4b24-9cc6-c78dfc9fc9c9:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8da41fc9-7735-4b24-9cc6-c78dfc9fc9c9:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8ddab73b-3d15-4e5d-9413-47f05553c1d7:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8ddab73b-3d15-4e5d-9413-47f05553c1d7:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8ddab73b-3d15-4e5d-9413-47f05553c1d7:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8f3e91c7-d791-4704-80a1-42c160d7aa27:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8f3e91c7-d791-4704-80a1-42c160d7aa27:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8f3e91c7-d791-4704-80a1-42c160d7aa27:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8f919d4b-a5af-47ca-a594-6be59cd924a4:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8f919d4b-a5af-47ca-a594-6be59cd924a4:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8f919d4b-a5af-47ca-a594-6be59cd924a4:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8fb75dda-c47a-4e34-8ecd-34facf7aad13:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8fb75dda-c47a-4e34-8ecd-34facf7aad13:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/8fb75dda-c47a-4e34-8ecd-34facf7aad13:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/90169566-2260-4824-b8e4-8615c3b4ed52:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/90169566-2260-4824-b8e4-8615c3b4ed52:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/90169566-2260-4824-b8e4-8615c3b4ed52:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9055ece6-2689-4224-a0e0-b04881e1f8ad:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9055ece6-2689-4224-a0e0-b04881e1f8ad:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9055ece6-2689-4224-a0e0-b04881e1f8ad:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9092cd6c-650f-4fa3-8a8a-28256c7489c9:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9092cd6c-650f-4fa3-8a8a-28256c7489c9:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9092cd6c-650f-4fa3-8a8a-28256c7489c9:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9180ffdf-f3d0-4db3-bf66-7a14bcff71b8:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9180ffdf-f3d0-4db3-bf66-7a14bcff71b8:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9180ffdf-f3d0-4db3-bf66-7a14bcff71b8:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/91d04cd4-47a9-4334-ab14-084abe274d49:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/91d04cd4-47a9-4334-ab14-084abe274d49:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/91d04cd4-47a9-4334-ab14-084abe274d49:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8d77-07827ac4cee0:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8d77-07827ac4cee0:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8d77-07827ac4cee0:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8f55-07827ac3acc9:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8f55-07827ac3acc9:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8f55-07827ac3acc9:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8f66-07827ac3bdd9:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8f66-07827ac3bdd9:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8f66-07827ac3bdd9:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/92a6faf5-78ec-4e25-bea1-73bacc9b59d9:2.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/92a6faf5-78ec-4e25-bea1-73bacc9b59d9:2.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/92a6faf5-78ec-4e25-bea1-73bacc9b59d9:2.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/93075852-b0f5-4b8b-89c3-a226efae5726:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/93075852-b0f5-4b8b-89c3-a226efae5726:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/93075852-b0f5-4b8b-89c3-a226efae5726:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/931e25a5-0f5e-4ae0-ba0d-9e94eff7e3a4:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/931e25a5-0f5e-4ae0-ba0d-9e94eff7e3a4:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/931e25a5-0f5e-4ae0-ba0d-9e94eff7e3a4:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9395fd2c-9947-4472-86ef-4aceb2f7e872:103.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9395fd2c-9947-4472-86ef-4aceb2f7e872:103.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9395fd2c-9947-4472-86ef-4aceb2f7e872:103.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/93b22c0a-06a0-4131-b830-b10d5e166ff4:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/93b22c0a-06a0-4131-b830-b10d5e166ff4:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/93b22c0a-06a0-4131-b830-b10d5e166ff4:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/93c1ce76-494c-4f01-8167-35edfb52f7b1:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/93c1ce76-494c-4f01-8167-35edfb52f7b1:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/93c1ce76-494c-4f01-8167-35edfb52f7b1:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/93e63c3e-4154-4fc6-9f86-b411e0987bbf:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/93e63c3e-4154-4fc6-9f86-b411e0987bbf:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/93e63c3e-4154-4fc6-9f86-b411e0987bbf:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/93f47b6f-5728-4004-ba00-625083b3dcb0:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/93f47b6f-5728-4004-ba00-625083b3dcb0:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/93f47b6f-5728-4004-ba00-625083b3dcb0:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9510add4-3392-11ed-bd01-f661ea17fbce:2.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9510add4-3392-11ed-bd01-f661ea17fbce:2.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9510add4-3392-11ed-bd01-f661ea17fbce:2.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/954ee7c8-5437-49ae-b2d6-2960883898e9:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/954ee7c8-5437-49ae-b2d6-2960883898e9:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/954ee7c8-5437-49ae-b2d6-2960883898e9:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/959a7353-1129-4aa7-9084-30746b256a70:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/959a7353-1129-4aa7-9084-30746b256a70:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/959a7353-1129-4aa7-9084-30746b256a70:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/968ccab9-da51-4a87-9ce2-d3c9782fd759:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/968ccab9-da51-4a87-9ce2-d3c9782fd759:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/968ccab9-da51-4a87-9ce2-d3c9782fd759:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/96b9f4ea-0e8c-435b-8d53-2096e75fcac5:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/96b9f4ea-0e8c-435b-8d53-2096e75fcac5:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/96b9f4ea-0e8c-435b-8d53-2096e75fcac5:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/96e90768-c3b7-4df6-b5d9-6237f8bc36a8:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/96e90768-c3b7-4df6-b5d9-6237f8bc36a8:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/96e90768-c3b7-4df6-b5d9-6237f8bc36a8:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/97020e61-e591-4191-8a3b-2861a2b887cd:1.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/97020e61-e591-4191-8a3b-2861a2b887cd:1.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/97020e61-e591-4191-8a3b-2861a2b887cd:1.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/97314185-2568-4561-ae81-f3e480e5e695:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/97314185-2568-4561-ae81-f3e480e5e695:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/97314185-2568-4561-ae81-f3e480e5e695:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/97359fd8-757d-4b1d-9af1-ef29e4a8680e:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/97359fd8-757d-4b1d-9af1-ef29e4a8680e:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/97359fd8-757d-4b1d-9af1-ef29e4a8680e:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/979729e7-0c52-4c4c-b71e-88103304a79f:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/979729e7-0c52-4c4c-b71e-88103304a79f:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/979729e7-0c52-4c4c-b71e-88103304a79f:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/97a8e584-fd3b-421f-9b9d-9c9d9e57e9d7:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/97a8e584-fd3b-421f-9b9d-9c9d9e57e9d7:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/97a8e584-fd3b-421f-9b9d-9c9d9e57e9d7:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/97aba1ef-6034-4bd3-8c1a-1e0996b27afa:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/97aba1ef-6034-4bd3-8c1a-1e0996b27afa:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/97aba1ef-6034-4bd3-8c1a-1e0996b27afa:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/97fc44d3-8dae-4019-ae83-298c3015600f:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/97fc44d3-8dae-4019-ae83-298c3015600f:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/97fc44d3-8dae-4019-ae83-298c3015600f:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9890ee61-d061-403d-9bf6-64934c51f638:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9890ee61-d061-403d-9bf6-64934c51f638:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9890ee61-d061-403d-9bf6-64934c51f638:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/98995807-5b09-4e37-8a54-5cae5dc932d7:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/98995807-5b09-4e37-8a54-5cae5dc932d7:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/98995807-5b09-4e37-8a54-5cae5dc932d7:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/98fd7407-0bd5-5817-cda0-3fcc33113a56:103.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/98fd7407-0bd5-5817-cda0-3fcc33113a56:103.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/98fd7407-0bd5-5817-cda0-3fcc33113a56:103.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/990838aa-a953-4f3e-b3cb-6ddf7584de9e:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/990838aa-a953-4f3e-b3cb-6ddf7584de9e:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/990838aa-a953-4f3e-b3cb-6ddf7584de9e:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/99239e7d-b0d4-46e3-8609-acafcf99f68c:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/99239e7d-b0d4-46e3-8609-acafcf99f68c:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/99239e7d-b0d4-46e3-8609-acafcf99f68c:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9960432d-9b26-409f-972b-839a959e79e2:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9960432d-9b26-409f-972b-839a959e79e2:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9960432d-9b26-409f-972b-839a959e79e2:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/99dcf974-6587-4f65-9252-d866a3fdfd9c:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/99dcf974-6587-4f65-9252-d866a3fdfd9c:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/99dcf974-6587-4f65-9252-d866a3fdfd9c:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9a1a2dae-0b5f-4c3d-8305-a268d404c306:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9a1a2dae-0b5f-4c3d-8305-a268d404c306:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9a1a2dae-0b5f-4c3d-8305-a268d404c306:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9a3a3689-8ed1-4cdb-83fb-9506db54c61f:2.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9a3a3689-8ed1-4cdb-83fb-9506db54c61f:2.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9a3a3689-8ed1-4cdb-83fb-9506db54c61f:2.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9a5b4e31-6cde-4295-9ff7-6be1b8567e1b:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9a5b4e31-6cde-4295-9ff7-6be1b8567e1b:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9a5b4e31-6cde-4295-9ff7-6be1b8567e1b:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9aa0e1f6-52ce-42e1-abb3-09657cee2698:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9aa0e1f6-52ce-42e1-abb3-09657cee2698:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9aa0e1f6-52ce-42e1-abb3-09657cee2698:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9b6813a1-daf1-457e-b0e6-0bb4e55b8a4c:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9b6813a1-daf1-457e-b0e6-0bb4e55b8a4c:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9b6813a1-daf1-457e-b0e6-0bb4e55b8a4c:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9c260313-c811-4ec8-ab89-8f6530e0246c:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9c260313-c811-4ec8-ab89-8f6530e0246c:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9c260313-c811-4ec8-ab89-8f6530e0246c:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9c865691-5599-447a-bac9-b3f2df5f9a9d:1.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9c865691-5599-447a-bac9-b3f2df5f9a9d:1.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9c865691-5599-447a-bac9-b3f2df5f9a9d:1.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9ccf3ce0-0057-440a-91f5-870c6ad39093:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9ccf3ce0-0057-440a-91f5-870c6ad39093:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9ccf3ce0-0057-440a-91f5-870c6ad39093:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9cf7a0ae-2404-11ed-ae7d-f661ea17fbce:2.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9cf7a0ae-2404-11ed-ae7d-f661ea17fbce:2.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9cf7a0ae-2404-11ed-ae7d-f661ea17fbce:2.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae2:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae2:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae2:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae3:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae3:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae3:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae4:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae4:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae4:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae5:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae5:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae5:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae6:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae6:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae6:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae9:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae9:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae9:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9d19ece6-c20e-481a-90c5-ccca596537de:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9d19ece6-c20e-481a-90c5-ccca596537de:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9d19ece6-c20e-481a-90c5-ccca596537de:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9d302377-d226-4e12-b54c-1906b5aec4f6:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9d302377-d226-4e12-b54c-1906b5aec4f6:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9d302377-d226-4e12-b54c-1906b5aec4f6:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9f1c4ca3-44b5-481d-ba42-32dc215a2769:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9f1c4ca3-44b5-481d-ba42-32dc215a2769:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9f1c4ca3-44b5-481d-ba42-32dc215a2769:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9f962927-1a4f-45f3-a57b-287f2c7029c1:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9f962927-1a4f-45f3-a57b-287f2c7029c1:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9f962927-1a4f-45f3-a57b-287f2c7029c1:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9f9a2a82-93a8-4b1a-8778-1780895626d4:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9f9a2a82-93a8-4b1a-8778-1780895626d4:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/9f9a2a82-93a8-4b1a-8778-1780895626d4:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a00681e3-9ed6-447c-ab2c-be648821c622:103.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a00681e3-9ed6-447c-ab2c-be648821c622:103.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a00681e3-9ed6-447c-ab2c-be648821c622:103.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a02cb68e-7c93-48d1-93b2-2c39023308eb:2.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a02cb68e-7c93-48d1-93b2-2c39023308eb:2.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a02cb68e-7c93-48d1-93b2-2c39023308eb:2.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a10d3d9d-0f65-48f1-8b25-af175e2594f5:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a10d3d9d-0f65-48f1-8b25-af175e2594f5:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a10d3d9d-0f65-48f1-8b25-af175e2594f5:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a13167f1-eec2-4015-9631-1fee60406dcf:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a13167f1-eec2-4015-9631-1fee60406dcf:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a13167f1-eec2-4015-9631-1fee60406dcf:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a1329140-8de3-4445-9f87-908fb6d824f4:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a1329140-8de3-4445-9f87-908fb6d824f4:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a1329140-8de3-4445-9f87-908fb6d824f4:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a16612dd-b30e-4d41-86a0-ebe70974ec00:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a16612dd-b30e-4d41-86a0-ebe70974ec00:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a16612dd-b30e-4d41-86a0-ebe70974ec00:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a17bcc91-297b-459b-b5ce-bc7460d8f82a:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a17bcc91-297b-459b-b5ce-bc7460d8f82a:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a17bcc91-297b-459b-b5ce-bc7460d8f82a:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a1a0375f-22c2-48c0-81a4-7c2d11cc6856:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a1a0375f-22c2-48c0-81a4-7c2d11cc6856:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a1a0375f-22c2-48c0-81a4-7c2d11cc6856:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a22a09c2-2162-4df0-a356-9aacbeb56a04:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a22a09c2-2162-4df0-a356-9aacbeb56a04:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a22a09c2-2162-4df0-a356-9aacbeb56a04:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a2795334-2499-11ed-9e1a-f661ea17fbce:2.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a2795334-2499-11ed-9e1a-f661ea17fbce:2.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a2795334-2499-11ed-9e1a-f661ea17fbce:2.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a3ea12f3-0d4e-4667-8b44-4230c63f3c75:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a3ea12f3-0d4e-4667-8b44-4230c63f3c75:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a3ea12f3-0d4e-4667-8b44-4230c63f3c75:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a4c7473a-5cb4-4bc1-9d06-e4a75adbc494:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a4c7473a-5cb4-4bc1-9d06-e4a75adbc494:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a4c7473a-5cb4-4bc1-9d06-e4a75adbc494:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a5f0d057-d540-44f5-924d-c6a2ae92f045:1.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a5f0d057-d540-44f5-924d-c6a2ae92f045:1.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a5f0d057-d540-44f5-924d-c6a2ae92f045:1.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a60326d7-dca7-4fb7-93eb-1ca03a1febbd:103.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a60326d7-dca7-4fb7-93eb-1ca03a1febbd:103.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a60326d7-dca7-4fb7-93eb-1ca03a1febbd:103.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a605c51a-73ad-406d-bf3a-f24cc41d5c97:103.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a605c51a-73ad-406d-bf3a-f24cc41d5c97:103.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a605c51a-73ad-406d-bf3a-f24cc41d5c97:103.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a624863f-a70d-417f-a7d2-7a404638d47f:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a624863f-a70d-417f-a7d2-7a404638d47f:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a624863f-a70d-417f-a7d2-7a404638d47f:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a6bf4dd4-743e-4da8-8c03-3ebd753a6c90:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a6bf4dd4-743e-4da8-8c03-3ebd753a6c90:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a6bf4dd4-743e-4da8-8c03-3ebd753a6c90:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a7ccae7b-9d2c-44b2-a061-98e5946971fa:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a7ccae7b-9d2c-44b2-a061-98e5946971fa:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a7ccae7b-9d2c-44b2-a061-98e5946971fa:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a7e7bfa3-088e-4f13-b29e-3986e0e756b8:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a7e7bfa3-088e-4f13-b29e-3986e0e756b8:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a7e7bfa3-088e-4f13-b29e-3986e0e756b8:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a87a4e42-1d82-44bd-b0bf-d9b7f91fb89e:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a87a4e42-1d82-44bd-b0bf-d9b7f91fb89e:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a87a4e42-1d82-44bd-b0bf-d9b7f91fb89e:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a989fa1b-9a11-4dd8-a3e9-f0de9c6eb5f2:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a989fa1b-9a11-4dd8-a3e9-f0de9c6eb5f2:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a989fa1b-9a11-4dd8-a3e9-f0de9c6eb5f2:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a99f82f5-8e77-4f8b-b3ce-10c0f6afbc73:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a99f82f5-8e77-4f8b-b3ce-10c0f6afbc73:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a99f82f5-8e77-4f8b-b3ce-10c0f6afbc73:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a9b05c3b-b304-4bf9-970d-acdfaef2944c:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a9b05c3b-b304-4bf9-970d-acdfaef2944c:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a9b05c3b-b304-4bf9-970d-acdfaef2944c:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a9cb3641-ff4b-4cdc-a063-b4b8d02a67c7:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a9cb3641-ff4b-4cdc-a063-b4b8d02a67c7:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/a9cb3641-ff4b-4cdc-a063-b4b8d02a67c7:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/aa8007f0-d1df-49ef-8520-407857594827:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/aa8007f0-d1df-49ef-8520-407857594827:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/aa8007f0-d1df-49ef-8520-407857594827:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/aa895aea-b69c-4411-b110-8d7599634b30:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/aa895aea-b69c-4411-b110-8d7599634b30:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/aa895aea-b69c-4411-b110-8d7599634b30:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/aa9a274d-6b53-424d-ac5e-cb8ca4251650:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/aa9a274d-6b53-424d-ac5e-cb8ca4251650:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/aa9a274d-6b53-424d-ac5e-cb8ca4251650:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ab75c24b-2502-43a0-bf7c-e60e662c811e:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ab75c24b-2502-43a0-bf7c-e60e662c811e:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ab75c24b-2502-43a0-bf7c-e60e662c811e:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/abae61a8-c560-4dbd-acca-1e1438bff36b:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/abae61a8-c560-4dbd-acca-1e1438bff36b:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/abae61a8-c560-4dbd-acca-1e1438bff36b:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ac412404-57a5-476f-858f-4e8fbb4f48d8:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ac412404-57a5-476f-858f-4e8fbb4f48d8:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ac412404-57a5-476f-858f-4e8fbb4f48d8:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ac5012b8-8da8-440b-aaaf-aedafdea2dff:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ac5012b8-8da8-440b-aaaf-aedafdea2dff:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ac5012b8-8da8-440b-aaaf-aedafdea2dff:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ac96ceb8-4399-4191-af1d-4feeac1f1f46:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ac96ceb8-4399-4191-af1d-4feeac1f1f46:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ac96ceb8-4399-4191-af1d-4feeac1f1f46:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/acbc8bb9-2486-49a8-8779-45fb5f9a93ee:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/acbc8bb9-2486-49a8-8779-45fb5f9a93ee:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/acbc8bb9-2486-49a8-8779-45fb5f9a93ee:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/acd611f3-2b93-47b3-a0a3-7723bcc46f6d:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/acd611f3-2b93-47b3-a0a3-7723bcc46f6d:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/acd611f3-2b93-47b3-a0a3-7723bcc46f6d:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ace1e989-a541-44df-93a8-a8b0591b63c0:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ace1e989-a541-44df-93a8-a8b0591b63c0:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ace1e989-a541-44df-93a8-a8b0591b63c0:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/acf738b5-b5b2-4acc-bad9-1e18ee234f40:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/acf738b5-b5b2-4acc-bad9-1e18ee234f40:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/acf738b5-b5b2-4acc-bad9-1e18ee234f40:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ad0d2742-9a49-11ec-8d6b-acde48001122:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ad0d2742-9a49-11ec-8d6b-acde48001122:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ad0d2742-9a49-11ec-8d6b-acde48001122:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ad3f2807-2b3e-47d7-b282-f84acbbe14be:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ad3f2807-2b3e-47d7-b282-f84acbbe14be:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ad3f2807-2b3e-47d7-b282-f84acbbe14be:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ad84d445-b1ce-4377-82d9-7c633f28bf9a:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ad84d445-b1ce-4377-82d9-7c633f28bf9a:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ad84d445-b1ce-4377-82d9-7c633f28bf9a:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ad88231f-e2ab-491c-8fc6-64746da26cfe:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ad88231f-e2ab-491c-8fc6-64746da26cfe:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ad88231f-e2ab-491c-8fc6-64746da26cfe:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/adb961e0-cb74-42a0-af9e-29fc41f88f5f:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/adb961e0-cb74-42a0-af9e-29fc41f88f5f:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/adb961e0-cb74-42a0-af9e-29fc41f88f5f:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/afcce5ad-65de-4ed2-8516-5e093d3ac99a:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/afcce5ad-65de-4ed2-8516-5e093d3ac99a:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/afcce5ad-65de-4ed2-8516-5e093d3ac99a:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b0046934-486e-462f-9487-0d4cf9e429c6:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b0046934-486e-462f-9487-0d4cf9e429c6:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b0046934-486e-462f-9487-0d4cf9e429c6:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b00bcd89-000c-4425-b94c-716ef67762f6:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b00bcd89-000c-4425-b94c-716ef67762f6:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b00bcd89-000c-4425-b94c-716ef67762f6:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b240bfb8-26b7-4e5e-924e-218144a3fa71:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b240bfb8-26b7-4e5e-924e-218144a3fa71:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b240bfb8-26b7-4e5e-924e-218144a3fa71:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b25a7df2-120a-4db2-bd3f-3e4b86b24bee:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b25a7df2-120a-4db2-bd3f-3e4b86b24bee:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b25a7df2-120a-4db2-bd3f-3e4b86b24bee:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b2951150-658f-4a60-832f-a00d1e6c6745:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b2951150-658f-4a60-832f-a00d1e6c6745:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b2951150-658f-4a60-832f-a00d1e6c6745:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b29ee2be-bf99-446c-ab1a-2dc0183394b8:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b29ee2be-bf99-446c-ab1a-2dc0183394b8:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b29ee2be-bf99-446c-ab1a-2dc0183394b8:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b347b919-665f-4aac-b9e8-68369bf2340c:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b347b919-665f-4aac-b9e8-68369bf2340c:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b347b919-665f-4aac-b9e8-68369bf2340c:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b41a13c6-ba45-4bab-a534-df53d0cfed6a:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b41a13c6-ba45-4bab-a534-df53d0cfed6a:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b41a13c6-ba45-4bab-a534-df53d0cfed6a:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b4449455-f986-4b5a-82ed-e36b129331f7:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b4449455-f986-4b5a-82ed-e36b129331f7:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b4449455-f986-4b5a-82ed-e36b129331f7:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b45ab1d2-712f-4f01-a751-df3826969807:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b45ab1d2-712f-4f01-a751-df3826969807:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b45ab1d2-712f-4f01-a751-df3826969807:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b4bb1440-0fcb-4ed1-87e5-b06d58efc5e9:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b4bb1440-0fcb-4ed1-87e5-b06d58efc5e9:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b4bb1440-0fcb-4ed1-87e5-b06d58efc5e9:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b5877334-677f-4fb9-86d5-a9721274223b:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b5877334-677f-4fb9-86d5-a9721274223b:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b5877334-677f-4fb9-86d5-a9721274223b:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b5ea4bfe-a1b2-421f-9d47-22a75a6f2921:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b5ea4bfe-a1b2-421f-9d47-22a75a6f2921:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b5ea4bfe-a1b2-421f-9d47-22a75a6f2921:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b627cd12-dac4-11ec-9582-f661ea17fbcd:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b627cd12-dac4-11ec-9582-f661ea17fbcd:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b627cd12-dac4-11ec-9582-f661ea17fbcd:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b64b183e-1a76-422d-9179-7b389513e74d:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b64b183e-1a76-422d-9179-7b389513e74d:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b64b183e-1a76-422d-9179-7b389513e74d:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b6dce542-2b75-4ffb-b7d6-38787298ba9d:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b6dce542-2b75-4ffb-b7d6-38787298ba9d:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b6dce542-2b75-4ffb-b7d6-38787298ba9d:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b719a170-3bdb-4141-b0e3-13e3cf627bfe:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b719a170-3bdb-4141-b0e3-13e3cf627bfe:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b719a170-3bdb-4141-b0e3-13e3cf627bfe:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b8075894-0b62-46e5-977c-31275da34419:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b8075894-0b62-46e5-977c-31275da34419:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b8075894-0b62-46e5-977c-31275da34419:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b83a7e96-2eb3-4edf-8346-427b6858d3bd:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b83a7e96-2eb3-4edf-8346-427b6858d3bd:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b83a7e96-2eb3-4edf-8346-427b6858d3bd:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b86afe07-0d98-4738-b15d-8d7465f95ff5:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b86afe07-0d98-4738-b15d-8d7465f95ff5:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b86afe07-0d98-4738-b15d-8d7465f95ff5:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b90cdde7-7e0d-4359-8bf0-2c112ce2008a:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b90cdde7-7e0d-4359-8bf0-2c112ce2008a:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b90cdde7-7e0d-4359-8bf0-2c112ce2008a:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b910f25a-2d44-47f2-a873-aabdc0d355e6:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b910f25a-2d44-47f2-a873-aabdc0d355e6:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b910f25a-2d44-47f2-a873-aabdc0d355e6:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b946c2f7-df06-4c00-a5aa-1f6fbc7bb72c:1.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b946c2f7-df06-4c00-a5aa-1f6fbc7bb72c:1.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b946c2f7-df06-4c00-a5aa-1f6fbc7bb72c:1.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b9554892-5e0e-424b-83a0-5aef95aa43bf:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b9554892-5e0e-424b-83a0-5aef95aa43bf:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b9554892-5e0e-424b-83a0-5aef95aa43bf:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b9666521-4742-49ce-9ddc-b8e84c35acae:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b9666521-4742-49ce-9ddc-b8e84c35acae:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b9666521-4742-49ce-9ddc-b8e84c35acae:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b9960fef-82c6-4816-befa-44745030e917:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b9960fef-82c6-4816-befa-44745030e917:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/b9960fef-82c6-4816-befa-44745030e917:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ba342eb2-583c-439f-b04d-1fdd7c1417cc:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ba342eb2-583c-439f-b04d-1fdd7c1417cc:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ba342eb2-583c-439f-b04d-1fdd7c1417cc:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/baa5d22c-5e1c-4f33-bfc9-efa73bb53022:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/baa5d22c-5e1c-4f33-bfc9-efa73bb53022:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/baa5d22c-5e1c-4f33-bfc9-efa73bb53022:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bb4fe8d2-7ae2-475c-8b5d-55b449e4264f:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bb4fe8d2-7ae2-475c-8b5d-55b449e4264f:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bb4fe8d2-7ae2-475c-8b5d-55b449e4264f:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bb9b13b2-1700-48a8-a750-b43b0a72ab69:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bb9b13b2-1700-48a8-a750-b43b0a72ab69:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bb9b13b2-1700-48a8-a750-b43b0a72ab69:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bba1b212-b85c-41c6-9b28-be0e5cdfc9b1:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bba1b212-b85c-41c6-9b28-be0e5cdfc9b1:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bba1b212-b85c-41c6-9b28-be0e5cdfc9b1:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bbd1a775-8267-41fa-9232-20e5582596ac:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bbd1a775-8267-41fa-9232-20e5582596ac:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bbd1a775-8267-41fa-9232-20e5582596ac:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bc0c6f0d-dab0-47a3-b135-0925f0a333bc:103.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bc0c6f0d-dab0-47a3-b135-0925f0a333bc:103.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bc0c6f0d-dab0-47a3-b135-0925f0a333bc:103.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bc0f2d83-32b8-4ae2-b0e6-6a45772e9331:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bc0f2d83-32b8-4ae2-b0e6-6a45772e9331:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bc0f2d83-32b8-4ae2-b0e6-6a45772e9331:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bc1eeacf-2972-434f-b782-3a532b100d67:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bc1eeacf-2972-434f-b782-3a532b100d67:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bc1eeacf-2972-434f-b782-3a532b100d67:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bc48bba7-4a23-4232-b551-eca3ca1e3f20:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bc48bba7-4a23-4232-b551-eca3ca1e3f20:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bc48bba7-4a23-4232-b551-eca3ca1e3f20:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bc8ca7e0-92fd-4b7c-b11e-ee0266b8d9c9:1.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bc8ca7e0-92fd-4b7c-b11e-ee0266b8d9c9:1.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bc8ca7e0-92fd-4b7c-b11e-ee0266b8d9c9:1.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bca7d28e-4a48-47b1-adb7-5074310e9a61:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bca7d28e-4a48-47b1-adb7-5074310e9a61:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bca7d28e-4a48-47b1-adb7-5074310e9a61:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bd2c86a0-8b61-4457-ab38-96943984e889:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bd2c86a0-8b61-4457-ab38-96943984e889:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bd2c86a0-8b61-4457-ab38-96943984e889:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bd7eefee-f671-494e-98df-f01daf9e5f17:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bd7eefee-f671-494e-98df-f01daf9e5f17:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bd7eefee-f671-494e-98df-f01daf9e5f17:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bdcf646b-08d4-492c-870a-6c04e3700034:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bdcf646b-08d4-492c-870a-6c04e3700034:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bdcf646b-08d4-492c-870a-6c04e3700034:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/be8afaed-4bcd-4e0a-b5f9-5562003dde81:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/be8afaed-4bcd-4e0a-b5f9-5562003dde81:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/be8afaed-4bcd-4e0a-b5f9-5562003dde81:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bf1073bf-ce26-4607-b405-ba1ed8e9e204:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bf1073bf-ce26-4607-b405-ba1ed8e9e204:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bf1073bf-ce26-4607-b405-ba1ed8e9e204:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bfeaf89b-a2a7-48a3-817f-e41829dc61ee:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bfeaf89b-a2a7-48a3-817f-e41829dc61ee:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/bfeaf89b-a2a7-48a3-817f-e41829dc61ee:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c02c8b9f-5e1d-463c-a1b0-04edcdfe1a3d:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c02c8b9f-5e1d-463c-a1b0-04edcdfe1a3d:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c02c8b9f-5e1d-463c-a1b0-04edcdfe1a3d:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c0429aa8-9974-42da-bfb6-53a0a515a145:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c0429aa8-9974-42da-bfb6-53a0a515a145:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c0429aa8-9974-42da-bfb6-53a0a515a145:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c0be5f31-e180-48ed-aa08-96b36899d48f:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c0be5f31-e180-48ed-aa08-96b36899d48f:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c0be5f31-e180-48ed-aa08-96b36899d48f:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c1812764-0788-470f-8e74-eb4a14d47573:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c1812764-0788-470f-8e74-eb4a14d47573:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c1812764-0788-470f-8e74-eb4a14d47573:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c25e9c87-95e1-4368-bfab-9fd34cf867ec:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c25e9c87-95e1-4368-bfab-9fd34cf867ec:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c25e9c87-95e1-4368-bfab-9fd34cf867ec:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c28c4d8c-f014-40ef-88b6-79a1d67cd499:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c28c4d8c-f014-40ef-88b6-79a1d67cd499:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c28c4d8c-f014-40ef-88b6-79a1d67cd499:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c292fa52-4115-408a-b897-e14f684b3cb7:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c292fa52-4115-408a-b897-e14f684b3cb7:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c292fa52-4115-408a-b897-e14f684b3cb7:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c2d90150-0133-451c-a783-533e736c12d7:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c2d90150-0133-451c-a783-533e736c12d7:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c2d90150-0133-451c-a783-533e736c12d7:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c3167e1b-f73c-41be-b60b-87f4df707fe3:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c3167e1b-f73c-41be-b60b-87f4df707fe3:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c3167e1b-f73c-41be-b60b-87f4df707fe3:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c3b915e0-22f3-4bf7-991d-b643513c722f:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c3b915e0-22f3-4bf7-991d-b643513c722f:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c3b915e0-22f3-4bf7-991d-b643513c722f:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c3f5e1d8-910e-43b4-8d44-d748e498ca86:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c3f5e1d8-910e-43b4-8d44-d748e498ca86:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c3f5e1d8-910e-43b4-8d44-d748e498ca86:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c4210e1c-64f2-4f48-b67e-b5a8ffe3aa14:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c4210e1c-64f2-4f48-b67e-b5a8ffe3aa14:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c4210e1c-64f2-4f48-b67e-b5a8ffe3aa14:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c4818812-d44f-47be-aaef-4cfb2f9cc799:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c4818812-d44f-47be-aaef-4cfb2f9cc799:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c4818812-d44f-47be-aaef-4cfb2f9cc799:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c57f8579-e2a5-4804-847f-f2732edc5156:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c57f8579-e2a5-4804-847f-f2732edc5156:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c57f8579-e2a5-4804-847f-f2732edc5156:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c58c3081-2e1d-4497-8491-e73a45d1a6d6:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c58c3081-2e1d-4497-8491-e73a45d1a6d6:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c58c3081-2e1d-4497-8491-e73a45d1a6d6:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c5c9f591-d111-4cf8-baec-c26a39bc31ef:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c5c9f591-d111-4cf8-baec-c26a39bc31ef:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c5c9f591-d111-4cf8-baec-c26a39bc31ef:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c5ce48a6-7f57-4ee8-9313-3d0024caee10:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c5ce48a6-7f57-4ee8-9313-3d0024caee10:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c5ce48a6-7f57-4ee8-9313-3d0024caee10:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c5dc3223-13a2-44a2-946c-e9dc0aa0449c:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c5dc3223-13a2-44a2-946c-e9dc0aa0449c:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c5dc3223-13a2-44a2-946c-e9dc0aa0449c:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c5f81243-56e0-47f9-b5bb-55a5ed89ba57:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c5f81243-56e0-47f9-b5bb-55a5ed89ba57:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c5f81243-56e0-47f9-b5bb-55a5ed89ba57:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c6453e73-90eb-4fe7-a98c-cde7bbfc504a:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c6453e73-90eb-4fe7-a98c-cde7bbfc504a:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c6453e73-90eb-4fe7-a98c-cde7bbfc504a:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c749e367-a069-4a73-b1f2-43a3798153ad:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c749e367-a069-4a73-b1f2-43a3798153ad:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c749e367-a069-4a73-b1f2-43a3798153ad:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c74fd275-ab2c-4d49-8890-e2943fa65c09:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c74fd275-ab2c-4d49-8890-e2943fa65c09:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c74fd275-ab2c-4d49-8890-e2943fa65c09:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c7894234-7814-44c2-92a9-f7d851ea246a:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c7894234-7814-44c2-92a9-f7d851ea246a:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c7894234-7814-44c2-92a9-f7d851ea246a:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c7908cac-337a-4f38-b50d-5eeb78bdb531:200.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c7908cac-337a-4f38-b50d-5eeb78bdb531:200.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c7908cac-337a-4f38-b50d-5eeb78bdb531:200.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c7db5533-ca2a-41f6-a8b0-ee98abe0f573:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c7db5533-ca2a-41f6-a8b0-ee98abe0f573:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c7db5533-ca2a-41f6-a8b0-ee98abe0f573:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c81cefcb-82b9-4408-a533-3c3df549e62d:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c81cefcb-82b9-4408-a533-3c3df549e62d:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c81cefcb-82b9-4408-a533-3c3df549e62d:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c82b2bd8-d701-420c-ba43-f11a155b681a:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c82b2bd8-d701-420c-ba43-f11a155b681a:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c82b2bd8-d701-420c-ba43-f11a155b681a:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c82c7d8f-fb9e-4874-a4bd-fd9e3f9becf1:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c82c7d8f-fb9e-4874-a4bd-fd9e3f9becf1:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c82c7d8f-fb9e-4874-a4bd-fd9e3f9becf1:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c85eb82c-d2c8-485c-a36f-534f914b7663:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c85eb82c-d2c8-485c-a36f-534f914b7663:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c85eb82c-d2c8-485c-a36f-534f914b7663:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c88d4bd0-5649-4c52-87ea-9be59dbfbcf2:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c88d4bd0-5649-4c52-87ea-9be59dbfbcf2:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c88d4bd0-5649-4c52-87ea-9be59dbfbcf2:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c8b150f0-0164-475b-a75e-74b47800a9ff:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c8b150f0-0164-475b-a75e-74b47800a9ff:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c8b150f0-0164-475b-a75e-74b47800a9ff:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c8cccb06-faf2-4cd5-886e-2c9636cfcb87:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c8cccb06-faf2-4cd5-886e-2c9636cfcb87:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c8cccb06-faf2-4cd5-886e-2c9636cfcb87:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c9e38e64-3f4c-4bf3-ad48-0e61a60ea1fa:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c9e38e64-3f4c-4bf3-ad48-0e61a60ea1fa:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/c9e38e64-3f4c-4bf3-ad48-0e61a60ea1fa:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ca79768e-40e1-4e45-a097-0e5fbc876ac2:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ca79768e-40e1-4e45-a097-0e5fbc876ac2:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ca79768e-40e1-4e45-a097-0e5fbc876ac2:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cac91072-d165-11ec-a764-f661ea17fbce:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cac91072-d165-11ec-a764-f661ea17fbce:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cac91072-d165-11ec-a764-f661ea17fbce:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cad4500a-abd7-4ef3-b5d3-95524de7cfe1:103.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cad4500a-abd7-4ef3-b5d3-95524de7cfe1:103.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cad4500a-abd7-4ef3-b5d3-95524de7cfe1:103.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cb71aa62-55c8-42f0-b0dd-afb0bb0b1f51:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cb71aa62-55c8-42f0-b0dd-afb0bb0b1f51:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cb71aa62-55c8-42f0-b0dd-afb0bb0b1f51:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cc2fd2d0-ba3a-4939-b87f-2901764ed036:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cc2fd2d0-ba3a-4939-b87f-2901764ed036:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cc2fd2d0-ba3a-4939-b87f-2901764ed036:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cc6a8a20-2df2-11ed-8378-f661ea17fbce:2.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cc6a8a20-2df2-11ed-8378-f661ea17fbce:2.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cc6a8a20-2df2-11ed-8378-f661ea17fbce:2.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cc89312d-6f47-48e4-a87c-4977bd4633c3:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cc89312d-6f47-48e4-a87c-4977bd4633c3:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cc89312d-6f47-48e4-a87c-4977bd4633c3:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cc92c835-da92-45c9-9f29-b4992ad621a0:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cc92c835-da92-45c9-9f29-b4992ad621a0:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cc92c835-da92-45c9-9f29-b4992ad621a0:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ccc55af4-9882-4c67-87b4-449a7ae8079c:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ccc55af4-9882-4c67-87b4-449a7ae8079c:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ccc55af4-9882-4c67-87b4-449a7ae8079c:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cd16fb10-0261-46e8-9932-a0336278cdbe:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cd16fb10-0261-46e8-9932-a0336278cdbe:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cd16fb10-0261-46e8-9932-a0336278cdbe:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cd66a419-9b3f-4f57-8ff8-ac4cd2d5f530:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cd66a419-9b3f-4f57-8ff8-ac4cd2d5f530:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cd66a419-9b3f-4f57-8ff8-ac4cd2d5f530:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cd66a5af-e34b-4bb0-8931-57d0a043f2ef:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cd66a5af-e34b-4bb0-8931-57d0a043f2ef:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cd66a5af-e34b-4bb0-8931-57d0a043f2ef:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cd89602e-9db0-48e3-9391-ae3bf241acd8:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cd89602e-9db0-48e3-9391-ae3bf241acd8:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cd89602e-9db0-48e3-9391-ae3bf241acd8:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cdbebdc1-dc97-43c6-a538-f26a20c0a911:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cdbebdc1-dc97-43c6-a538-f26a20c0a911:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cdbebdc1-dc97-43c6-a538-f26a20c0a911:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ce64d965-6cb0-466d-b74f-8d2c76f47f05:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ce64d965-6cb0-466d-b74f-8d2c76f47f05:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ce64d965-6cb0-466d-b74f-8d2c76f47f05:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cf53f532-9cc9-445a-9ae7-fced307ec53c:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cf53f532-9cc9-445a-9ae7-fced307ec53c:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cf53f532-9cc9-445a-9ae7-fced307ec53c:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cf549724-c577-4fd6-8f9b-d1b8ec519ec0:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cf549724-c577-4fd6-8f9b-d1b8ec519ec0:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cf549724-c577-4fd6-8f9b-d1b8ec519ec0:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cff92c41-2225-4763-b4ce-6f71e5bda5e6:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cff92c41-2225-4763-b4ce-6f71e5bda5e6:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/cff92c41-2225-4763-b4ce-6f71e5bda5e6:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d00f33e7-b57d-4023-9952-2db91b1767c4:1.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d00f33e7-b57d-4023-9952-2db91b1767c4:1.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d00f33e7-b57d-4023-9952-2db91b1767c4:1.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d0e159cf-73e9-40d1-a9ed-077e3158a855:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d0e159cf-73e9-40d1-a9ed-077e3158a855:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d0e159cf-73e9-40d1-a9ed-077e3158a855:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d117cbb4-7d56-41b4-b999-bdf8c25648a0:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d117cbb4-7d56-41b4-b999-bdf8c25648a0:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d117cbb4-7d56-41b4-b999-bdf8c25648a0:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d22a85c6-d2ad-4cc4-bf7b-54787473669a:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d22a85c6-d2ad-4cc4-bf7b-54787473669a:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d22a85c6-d2ad-4cc4-bf7b-54787473669a:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d31f183a-e5b1-451b-8534-ba62bca0b404:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d31f183a-e5b1-451b-8534-ba62bca0b404:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d31f183a-e5b1-451b-8534-ba62bca0b404:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d331bbe2-6db4-4941-80a5-8270db72eb61:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d331bbe2-6db4-4941-80a5-8270db72eb61:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d331bbe2-6db4-4941-80a5-8270db72eb61:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d33ea3bf-9a11-463e-bd46-f648f2a0f4b1:1.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d33ea3bf-9a11-463e-bd46-f648f2a0f4b1:1.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d33ea3bf-9a11-463e-bd46-f648f2a0f4b1:1.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d461fac0-43e8-49e2-85ea-3a58fe120b4f:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d461fac0-43e8-49e2-85ea-3a58fe120b4f:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d461fac0-43e8-49e2-85ea-3a58fe120b4f:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d48e1c13-4aca-4d1f-a7b1-a9161c0ad86f:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d48e1c13-4aca-4d1f-a7b1-a9161c0ad86f:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d48e1c13-4aca-4d1f-a7b1-a9161c0ad86f:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d49cc73f-7a16-4def-89ce-9fc7127d7820:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d49cc73f-7a16-4def-89ce-9fc7127d7820:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d49cc73f-7a16-4def-89ce-9fc7127d7820:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d4af3a06-1e0a-48ec-b96a-faf2309fae46:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d4af3a06-1e0a-48ec-b96a-faf2309fae46:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d4af3a06-1e0a-48ec-b96a-faf2309fae46:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d4b73fa0-9d43-465e-b8bf-50230da6718b:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d4b73fa0-9d43-465e-b8bf-50230da6718b:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d4b73fa0-9d43-465e-b8bf-50230da6718b:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d563aaba-2e72-462b-8658-3e5ea22db3a6:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d563aaba-2e72-462b-8658-3e5ea22db3a6:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d563aaba-2e72-462b-8658-3e5ea22db3a6:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d5d86bf5-cf0c-4c06-b688-53fdc072fdfd:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d5d86bf5-cf0c-4c06-b688-53fdc072fdfd:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d5d86bf5-cf0c-4c06-b688-53fdc072fdfd:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d624f0ae-3dd1-4856-9aad-ccfe4d4bfa17:103.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d624f0ae-3dd1-4856-9aad-ccfe4d4bfa17:103.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d624f0ae-3dd1-4856-9aad-ccfe4d4bfa17:103.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d62b64a8-a7c9-43e5-aee3-15a725a794e7:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d62b64a8-a7c9-43e5-aee3-15a725a794e7:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d62b64a8-a7c9-43e5-aee3-15a725a794e7:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d68e95ad-1c82-4074-a12a-125fe10ac8ba:1.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d68e95ad-1c82-4074-a12a-125fe10ac8ba:1.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d68e95ad-1c82-4074-a12a-125fe10ac8ba:1.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d68eb1b5-5f1c-4b6d-9e63-5b6b145cd4aa:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d68eb1b5-5f1c-4b6d-9e63-5b6b145cd4aa:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d68eb1b5-5f1c-4b6d-9e63-5b6b145cd4aa:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d703a5af-d5b0-43bd-8ddb-7a5d500b7da5:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d703a5af-d5b0-43bd-8ddb-7a5d500b7da5:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d703a5af-d5b0-43bd-8ddb-7a5d500b7da5:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d72e33fc-6e91-42ff-ac8b-e573268c5a87:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d72e33fc-6e91-42ff-ac8b-e573268c5a87:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d72e33fc-6e91-42ff-ac8b-e573268c5a87:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d743ff2a-203e-4a46-a3e3-40512cfe8fbb:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d743ff2a-203e-4a46-a3e3-40512cfe8fbb:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d743ff2a-203e-4a46-a3e3-40512cfe8fbb:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d75991f2-b989-419d-b797-ac1e54ec2d61:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d75991f2-b989-419d-b797-ac1e54ec2d61:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d75991f2-b989-419d-b797-ac1e54ec2d61:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d76b02ef-fc95-4001-9297-01cb7412232f:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d76b02ef-fc95-4001-9297-01cb7412232f:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d76b02ef-fc95-4001-9297-01cb7412232f:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d79c4b2a-6134-4edd-86e6-564a92a933f9:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d79c4b2a-6134-4edd-86e6-564a92a933f9:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d79c4b2a-6134-4edd-86e6-564a92a933f9:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d7d5c059-c19a-4a96-8ae3-41496ef3bcf9:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d7d5c059-c19a-4a96-8ae3-41496ef3bcf9:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d7d5c059-c19a-4a96-8ae3-41496ef3bcf9:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d7e62693-aab9-4f66-a21a-3d79ecdd603d:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d7e62693-aab9-4f66-a21a-3d79ecdd603d:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d7e62693-aab9-4f66-a21a-3d79ecdd603d:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d8fc1cca-93ed-43c1-bbb6-c0dd3eff2958:103.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d8fc1cca-93ed-43c1-bbb6-c0dd3eff2958:103.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d8fc1cca-93ed-43c1-bbb6-c0dd3eff2958:103.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d99a037b-c8e2-47a5-97b9-170d076827c4:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d99a037b-c8e2-47a5-97b9-170d076827c4:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/d99a037b-c8e2-47a5-97b9-170d076827c4:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/da87eee1-129c-4661-a7aa-57d0b9645fad:1.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/da87eee1-129c-4661-a7aa-57d0b9645fad:1.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/da87eee1-129c-4661-a7aa-57d0b9645fad:1.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/dafa3235-76dc-40e2-9f71-1773b96d24cf:103.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/dafa3235-76dc-40e2-9f71-1773b96d24cf:103.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/dafa3235-76dc-40e2-9f71-1773b96d24cf:103.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/db8c33a8-03cd-4988-9e2c-d0a4863adb13:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/db8c33a8-03cd-4988-9e2c-d0a4863adb13:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/db8c33a8-03cd-4988-9e2c-d0a4863adb13:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/dc9c1f74-dac3-48e3-b47f-eb79db358f57:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/dc9c1f74-dac3-48e3-b47f-eb79db358f57:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/dc9c1f74-dac3-48e3-b47f-eb79db358f57:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/dca28dee-c999-400f-b640-50a081cc0fd1:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/dca28dee-c999-400f-b640-50a081cc0fd1:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/dca28dee-c999-400f-b640-50a081cc0fd1:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/dd7f1524-643e-11ed-9e35-f661ea17fbcd:1.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/dd7f1524-643e-11ed-9e35-f661ea17fbcd:1.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/dd7f1524-643e-11ed-9e35-f661ea17fbcd:1.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ddab1f5f-7089-44f5-9fda-de5b11322e77:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ddab1f5f-7089-44f5-9fda-de5b11322e77:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ddab1f5f-7089-44f5-9fda-de5b11322e77:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/de9bd7e0-49e9-4e92-a64d-53ade2e66af1:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/de9bd7e0-49e9-4e92-a64d-53ade2e66af1:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/de9bd7e0-49e9-4e92-a64d-53ade2e66af1:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/debff20a-46bc-4a4d-bae5-5cdd14222795:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/debff20a-46bc-4a4d-bae5-5cdd14222795:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/debff20a-46bc-4a4d-bae5-5cdd14222795:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/df197323-72a8-46a9-a08e-3f5b04a4a97a:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/df197323-72a8-46a9-a08e-3f5b04a4a97a:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/df197323-72a8-46a9-a08e-3f5b04a4a97a:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/df26fd74-1baa-4479-b42e-48da84642330:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/df26fd74-1baa-4479-b42e-48da84642330:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/df26fd74-1baa-4479-b42e-48da84642330:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/df6f62d9-caab-4b88-affa-044f4395a1e0:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/df6f62d9-caab-4b88-affa-044f4395a1e0:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/df6f62d9-caab-4b88-affa-044f4395a1e0:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/df7fda76-c92b-4943-bc68-04460a5ea5ba:200.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/df7fda76-c92b-4943-bc68-04460a5ea5ba:200.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/df7fda76-c92b-4943-bc68-04460a5ea5ba:200.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e02bd3ea-72c6-4181-ac2b-0f83d17ad969:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e02bd3ea-72c6-4181-ac2b-0f83d17ad969:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e02bd3ea-72c6-4181-ac2b-0f83d17ad969:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e052c845-48d0-4f46-8a13-7d0aba05df82:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e052c845-48d0-4f46-8a13-7d0aba05df82:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e052c845-48d0-4f46-8a13-7d0aba05df82:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e08ccd49-0380-4b2b-8d71-8000377d6e49:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e08ccd49-0380-4b2b-8d71-8000377d6e49:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e08ccd49-0380-4b2b-8d71-8000377d6e49:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e0f36de1-0342-453d-95a9-a068b257b053:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e0f36de1-0342-453d-95a9-a068b257b053:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e0f36de1-0342-453d-95a9-a068b257b053:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e12c0318-99b1-44f2-830c-3a38a43207ca:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e12c0318-99b1-44f2-830c-3a38a43207ca:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e12c0318-99b1-44f2-830c-3a38a43207ca:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e14c5fd7-fdd7-49c2-9e5b-ec49d817bc8d:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e14c5fd7-fdd7-49c2-9e5b-ec49d817bc8d:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e14c5fd7-fdd7-49c2-9e5b-ec49d817bc8d:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e19e64ee-130e-4c07-961f-8a339f0b8362:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e19e64ee-130e-4c07-961f-8a339f0b8362:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e19e64ee-130e-4c07-961f-8a339f0b8362:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e26aed74-c816-40d3-a810-48d6fbd8b2fd:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e26aed74-c816-40d3-a810-48d6fbd8b2fd:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e26aed74-c816-40d3-a810-48d6fbd8b2fd:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e26f042e-c590-4e82-8e05-41e81bd822ad:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e26f042e-c590-4e82-8e05-41e81bd822ad:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e26f042e-c590-4e82-8e05-41e81bd822ad:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e2a67480-3b79-403d-96e3-fdd2992c50ef:103.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e2a67480-3b79-403d-96e3-fdd2992c50ef:103.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e2a67480-3b79-403d-96e3-fdd2992c50ef:103.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e2f9fdf5-8076-45ad-9427-41e0e03dc9c2:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e2f9fdf5-8076-45ad-9427-41e0e03dc9c2:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e2f9fdf5-8076-45ad-9427-41e0e03dc9c2:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e2fb5b18-e33c-4270-851e-c3d675c9afcd:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e2fb5b18-e33c-4270-851e-c3d675c9afcd:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e2fb5b18-e33c-4270-851e-c3d675c9afcd:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e3343ab9-4245-4715-b344-e11c56b0a47f:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e3343ab9-4245-4715-b344-e11c56b0a47f:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e3343ab9-4245-4715-b344-e11c56b0a47f:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e3c27562-709a-42bd-82f2-3ed926cced19:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e3c27562-709a-42bd-82f2-3ed926cced19:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e3c27562-709a-42bd-82f2-3ed926cced19:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e3c5d5cb-41d5-4206-805c-f30561eae3ac:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e3c5d5cb-41d5-4206-805c-f30561eae3ac:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e3c5d5cb-41d5-4206-805c-f30561eae3ac:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e3cf38fa-d5b8-46cc-87f9-4a7513e4281d:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e3cf38fa-d5b8-46cc-87f9-4a7513e4281d:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e3cf38fa-d5b8-46cc-87f9-4a7513e4281d:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e3e904b3-0a8e-4e68-86a8-977a163e21d3:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e3e904b3-0a8e-4e68-86a8-977a163e21d3:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e3e904b3-0a8e-4e68-86a8-977a163e21d3:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e48236ca-b67a-4b4e-840c-fdc7782bc0c3:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e48236ca-b67a-4b4e-840c-fdc7782bc0c3:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e48236ca-b67a-4b4e-840c-fdc7782bc0c3:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e4e31051-ee01-4307-a6ee-b21b186958f4:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e4e31051-ee01-4307-a6ee-b21b186958f4:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e4e31051-ee01-4307-a6ee-b21b186958f4:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e514d8cd-ed15-4011-84e2-d15147e059f1:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e514d8cd-ed15-4011-84e2-d15147e059f1:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e514d8cd-ed15-4011-84e2-d15147e059f1:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e555105c-ba6d-481f-82bb-9b633e7b4827:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e555105c-ba6d-481f-82bb-9b633e7b4827:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e555105c-ba6d-481f-82bb-9b633e7b4827:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e6c1a552-7776-44ad-ae0f-8746cc07773c:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e6c1a552-7776-44ad-ae0f-8746cc07773c:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e6c1a552-7776-44ad-ae0f-8746cc07773c:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e6c98d38-633d-4b3e-9387-42112cd5ac10:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e6c98d38-633d-4b3e-9387-42112cd5ac10:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e6c98d38-633d-4b3e-9387-42112cd5ac10:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e6e3ecff-03dd-48ec-acbd-54a04de10c68:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e6e3ecff-03dd-48ec-acbd-54a04de10c68:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e6e3ecff-03dd-48ec-acbd-54a04de10c68:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e6e8912f-283f-4d0d-8442-e0dcaf49944b:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e6e8912f-283f-4d0d-8442-e0dcaf49944b:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e6e8912f-283f-4d0d-8442-e0dcaf49944b:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e7075e8d-a966-458e-a183-85cd331af255:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e7075e8d-a966-458e-a183-85cd331af255:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e7075e8d-a966-458e-a183-85cd331af255:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e7125cea-9fe1-42a5-9a05-b0792cf86f5a:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e7125cea-9fe1-42a5-9a05-b0792cf86f5a:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e7125cea-9fe1-42a5-9a05-b0792cf86f5a:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e7cd5982-17c8-4959-874c-633acde7d426:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e7cd5982-17c8-4959-874c-633acde7d426:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e7cd5982-17c8-4959-874c-633acde7d426:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e8571d5f-bea1-46c2-9f56-998de2d3ed95:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e8571d5f-bea1-46c2-9f56-998de2d3ed95:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e8571d5f-bea1-46c2-9f56-998de2d3ed95:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e86da94d-e54b-4fb5-b96c-cecff87e8787:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e86da94d-e54b-4fb5-b96c-cecff87e8787:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e86da94d-e54b-4fb5-b96c-cecff87e8787:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e90ee3af-45fc-432e-a850-4a58cf14a457:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e90ee3af-45fc-432e-a850-4a58cf14a457:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e90ee3af-45fc-432e-a850-4a58cf14a457:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e919611d-6b6f-493b-8314-7ed6ac2e413b:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e919611d-6b6f-493b-8314-7ed6ac2e413b:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e919611d-6b6f-493b-8314-7ed6ac2e413b:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e94262f2-c1e9-4d3f-a907-aeab16712e1a:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e94262f2-c1e9-4d3f-a907-aeab16712e1a:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e94262f2-c1e9-4d3f-a907-aeab16712e1a:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e9abe69b-1deb-4e19-ac4a-5d5ac00f72eb:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e9abe69b-1deb-4e19-ac4a-5d5ac00f72eb:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e9abe69b-1deb-4e19-ac4a-5d5ac00f72eb:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e9ff9c1c-fe36-4d0d-b3fd-9e0bf4853a62:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e9ff9c1c-fe36-4d0d-b3fd-9e0bf4853a62:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/e9ff9c1c-fe36-4d0d-b3fd-9e0bf4853a62:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ea248a02-bc47-4043-8e94-2885b19b2636:103.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ea248a02-bc47-4043-8e94-2885b19b2636:103.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ea248a02-bc47-4043-8e94-2885b19b2636:103.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/eaa77d63-9679-4ce3-be25-3ba8b795e5fa:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/eaa77d63-9679-4ce3-be25-3ba8b795e5fa:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/eaa77d63-9679-4ce3-be25-3ba8b795e5fa:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/eb079c62-4481-4d6e-9643-3ca499df7aaa:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/eb079c62-4481-4d6e-9643-3ca499df7aaa:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/eb079c62-4481-4d6e-9643-3ca499df7aaa:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/eb610e70-f9e6-4949-82b9-f1c5bcd37c39:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/eb610e70-f9e6-4949-82b9-f1c5bcd37c39:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/eb610e70-f9e6-4949-82b9-f1c5bcd37c39:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/eb6a3790-d52d-11ec-8ce9-f661ea17fbce:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/eb6a3790-d52d-11ec-8ce9-f661ea17fbce:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/eb6a3790-d52d-11ec-8ce9-f661ea17fbce:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/eb9eb8ba-a983-41d9-9c93-a1c05112ca5e:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/eb9eb8ba-a983-41d9-9c93-a1c05112ca5e:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/eb9eb8ba-a983-41d9-9c93-a1c05112ca5e:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ebf1adea-ccf2-4943-8b96-7ab11ca173a5:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ebf1adea-ccf2-4943-8b96-7ab11ca173a5:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ebf1adea-ccf2-4943-8b96-7ab11ca173a5:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ebfe1448-7fac-4d59-acea-181bd89b1f7f:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ebfe1448-7fac-4d59-acea-181bd89b1f7f:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ebfe1448-7fac-4d59-acea-181bd89b1f7f:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ec8efb0c-604d-42fa-ac46-ed1cfbc38f78:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ec8efb0c-604d-42fa-ac46-ed1cfbc38f78:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ec8efb0c-604d-42fa-ac46-ed1cfbc38f78:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ecf2b32c-e221-4bd4-aa3b-c7d59b3bc01d:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ecf2b32c-e221-4bd4-aa3b-c7d59b3bc01d:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ecf2b32c-e221-4bd4-aa3b-c7d59b3bc01d:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ed9ecd27-e3e6-4fd9-8586-7754803f7fc8:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ed9ecd27-e3e6-4fd9-8586-7754803f7fc8:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ed9ecd27-e3e6-4fd9-8586-7754803f7fc8:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/eda499b8-a073-4e35-9733-22ec71f57f3a:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/eda499b8-a073-4e35-9733-22ec71f57f3a:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/eda499b8-a073-4e35-9733-22ec71f57f3a:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/edb91186-1c7e-4db8-b53e-bfa33a1a0a8a:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/edb91186-1c7e-4db8-b53e-bfa33a1a0a8a:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/edb91186-1c7e-4db8-b53e-bfa33a1a0a8a:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/edf8ee23-5ea7-4123-ba19-56b41e424ae3:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/edf8ee23-5ea7-4123-ba19-56b41e424ae3:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/edf8ee23-5ea7-4123-ba19-56b41e424ae3:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ee5300a7-7e31-4a72-a258-250abb8b3aa1:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ee5300a7-7e31-4a72-a258-250abb8b3aa1:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ee5300a7-7e31-4a72-a258-250abb8b3aa1:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/eea82229-b002-470e-a9e1-00be38b14d32:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/eea82229-b002-470e-a9e1-00be38b14d32:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/eea82229-b002-470e-a9e1-00be38b14d32:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ef04a476-07ec-48fc-8f3d-5e1742de76d3:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ef04a476-07ec-48fc-8f3d-5e1742de76d3:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ef04a476-07ec-48fc-8f3d-5e1742de76d3:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ef862985-3f13-4262-a686-5f357bbb9bc2:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ef862985-3f13-4262-a686-5f357bbb9bc2:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ef862985-3f13-4262-a686-5f357bbb9bc2:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f036953a-4615-4707-a1ca-dc53bf69dcd5:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f036953a-4615-4707-a1ca-dc53bf69dcd5:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f036953a-4615-4707-a1ca-dc53bf69dcd5:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f0493cb4-9b15-43a9-9359-68c23a7f2cf3:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f0493cb4-9b15-43a9-9359-68c23a7f2cf3:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f0493cb4-9b15-43a9-9359-68c23a7f2cf3:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f06414a6-f2a4-466d-8eba-10f85e8abf71:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f06414a6-f2a4-466d-8eba-10f85e8abf71:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f06414a6-f2a4-466d-8eba-10f85e8abf71:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f0b48bbc-549e-4bcf-8ee0-a7a72586c6a7:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f0b48bbc-549e-4bcf-8ee0-a7a72586c6a7:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f0b48bbc-549e-4bcf-8ee0-a7a72586c6a7:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f0bc081a-2346-4744-a6a4-81514817e888:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f0bc081a-2346-4744-a6a4-81514817e888:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f0bc081a-2346-4744-a6a4-81514817e888:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f0eb70e9-71e9-40cd-813f-bf8e8c812cb1:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f0eb70e9-71e9-40cd-813f-bf8e8c812cb1:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f0eb70e9-71e9-40cd-813f-bf8e8c812cb1:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f24bcae1-8980-4b30-b5dd-f851b055c9e7:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f24bcae1-8980-4b30-b5dd-f851b055c9e7:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f24bcae1-8980-4b30-b5dd-f851b055c9e7:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f28e2be4-6eca-4349-bdd9-381573730c22:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f28e2be4-6eca-4349-bdd9-381573730c22:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f28e2be4-6eca-4349-bdd9-381573730c22:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f2c7b914-eda3-40c2-96ac-d23ef91776ca:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f2c7b914-eda3-40c2-96ac-d23ef91776ca:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f2c7b914-eda3-40c2-96ac-d23ef91776ca:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f2f46686-6f3c-4724-bd7d-24e31c70f98f:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f2f46686-6f3c-4724-bd7d-24e31c70f98f:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f2f46686-6f3c-4724-bd7d-24e31c70f98f:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f30f3443-4fbb-4c27-ab89-c3ad49d62315:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f30f3443-4fbb-4c27-ab89-c3ad49d62315:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f30f3443-4fbb-4c27-ab89-c3ad49d62315:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f3475224-b179-4f78-8877-c2bd64c26b88:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f3475224-b179-4f78-8877-c2bd64c26b88:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f3475224-b179-4f78-8877-c2bd64c26b88:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f37f3054-d40b-49ac-aa9b-a786c74c58b8:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f37f3054-d40b-49ac-aa9b-a786c74c58b8:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f37f3054-d40b-49ac-aa9b-a786c74c58b8:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f44fa4b6-524c-4e87-8d9e-a32599e4fb7c:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f44fa4b6-524c-4e87-8d9e-a32599e4fb7c:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f44fa4b6-524c-4e87-8d9e-a32599e4fb7c:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f494c678-3c33-43aa-b169-bb3d5198c41d:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f494c678-3c33-43aa-b169-bb3d5198c41d:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f494c678-3c33-43aa-b169-bb3d5198c41d:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f545ff26-3c94-4fd0-bd33-3c7f95a3a0fc:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f545ff26-3c94-4fd0-bd33-3c7f95a3a0fc:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f545ff26-3c94-4fd0-bd33-3c7f95a3a0fc:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f5fb4598-4f10-11ed-bdc3-0242ac120002:1.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f5fb4598-4f10-11ed-bdc3-0242ac120002:1.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f5fb4598-4f10-11ed-bdc3-0242ac120002:1.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f63c8e3c-d396-404f-b2ea-0379d3942d73:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f63c8e3c-d396-404f-b2ea-0379d3942d73:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f63c8e3c-d396-404f-b2ea-0379d3942d73:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f675872f-6d85-40a3-b502-c0d2ef101e92:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f675872f-6d85-40a3-b502-c0d2ef101e92:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f675872f-6d85-40a3-b502-c0d2ef101e92:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f683dcdf-a018-4801-b066-193d4ae6c8e5:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f683dcdf-a018-4801-b066-193d4ae6c8e5:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f683dcdf-a018-4801-b066-193d4ae6c8e5:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f766ffaf-9568-4909-b734-75d19b35cbf4:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f766ffaf-9568-4909-b734-75d19b35cbf4:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f766ffaf-9568-4909-b734-75d19b35cbf4:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f772ec8a-e182-483c-91d2-72058f76a44c:103.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f772ec8a-e182-483c-91d2-72058f76a44c:103.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f772ec8a-e182-483c-91d2-72058f76a44c:103.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f7c4dc5a-a58d-491d-9f14-9b66507121c0:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f7c4dc5a-a58d-491d-9f14-9b66507121c0:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f7c4dc5a-a58d-491d-9f14-9b66507121c0:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f81ee52c-297e-46d9-9205-07e66931df26:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f81ee52c-297e-46d9-9205-07e66931df26:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f81ee52c-297e-46d9-9205-07e66931df26:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f85ce03f-d8a8-4c83-acdc-5c8cd0592be7:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f85ce03f-d8a8-4c83-acdc-5c8cd0592be7:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f85ce03f-d8a8-4c83-acdc-5c8cd0592be7:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f874315d-5188-4b4a-8521-d1c73093a7e4:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f874315d-5188-4b4a-8521-d1c73093a7e4:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f874315d-5188-4b4a-8521-d1c73093a7e4:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f9590f47-6bd5-4a49-bd49-a2f886476fb9:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f9590f47-6bd5-4a49-bd49-a2f886476fb9:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f9590f47-6bd5-4a49-bd49-a2f886476fb9:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f9790abf-bd0c-45f9-8b5f-d0b74015e029:1.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f9790abf-bd0c-45f9-8b5f-d0b74015e029:1.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f9790abf-bd0c-45f9-8b5f-d0b74015e029:1.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f994964f-6fce-4d75-8e79-e16ccc412588:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f994964f-6fce-4d75-8e79-e16ccc412588:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/f994964f-6fce-4d75-8e79-e16ccc412588:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/fa01341d-6662-426b-9d0c-6d81e33c8a9d:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/fa01341d-6662-426b-9d0c-6d81e33c8a9d:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/fa01341d-6662-426b-9d0c-6d81e33c8a9d:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/fb02b8d3-71ee-4af1-bacd-215d23f17efa:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/fb02b8d3-71ee-4af1-bacd-215d23f17efa:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/fb02b8d3-71ee-4af1-bacd-215d23f17efa:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/fbd44836-0d69-4004-a0b4-03c20370c435:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/fbd44836-0d69-4004-a0b4-03c20370c435:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/fbd44836-0d69-4004-a0b4-03c20370c435:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/fc7c0fa4-8f03-4b3e-8336-c5feab0be022:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/fc7c0fa4-8f03-4b3e-8336-c5feab0be022:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/fc7c0fa4-8f03-4b3e-8336-c5feab0be022:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/fd4a992d-6130-4802-9ff8-829b89ae801f:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/fd4a992d-6130-4802-9ff8-829b89ae801f:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/fd4a992d-6130-4802-9ff8-829b89ae801f:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/fd70c98a-c410-42dc-a2e3-761c71848acf:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/fd70c98a-c410-42dc-a2e3-761c71848acf:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/fd70c98a-c410-42dc-a2e3-761c71848acf:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/fd7a6052-58fa-4397-93c3-4795249ccfa2:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/fd7a6052-58fa-4397-93c3-4795249ccfa2:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/fd7a6052-58fa-4397-93c3-4795249ccfa2:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/fe794edd-487f-4a90-b285-3ee54f2af2d3:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/fe794edd-487f-4a90-b285-3ee54f2af2d3:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/fe794edd-487f-4a90-b285-3ee54f2af2d3:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/feeed87c-5e95-4339-aef1-47fd79bcfbe3:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/feeed87c-5e95-4339-aef1-47fd79bcfbe3:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/feeed87c-5e95-4339-aef1-47fd79bcfbe3:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ff013cb4-274d-434a-96bb-fe15ddd3ae92:100.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ff013cb4-274d-434a-96bb-fe15ddd3ae92:100.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ff013cb4-274d-434a-96bb-fe15ddd3ae92:100.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ff4dd44a-0ac6-44c4-8609-3f81bc820f02:101.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ff4dd44a-0ac6-44c4-8609-3f81bc820f02:101.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ff4dd44a-0ac6-44c4-8609-3f81bc820f02:101.0.2.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ff9b571e-61d6-4f6c-9561-eb4cca3bafe1:102.0.0.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ff9b571e-61d6-4f6c-9561-eb4cca3bafe1:102.0.1.json create mode 100644 fleet-packages/detection-rules-flat/kibana/security_rule/ff9b571e-61d6-4f6c-9561-eb4cca3bafe1:102.0.2.json create mode 100644 fleet-packages/detection-rules-flat/manifest.yml create mode 100644 x-pack/plugins/security_solution/common/detection_engine/prebuilt_rules/model/upgrade/three_way_diff.ts create mode 100644 x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/api/poc/install_test_assets/route.ts create mode 100644 x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/poc/saved_objects/rule_asset_composite_saved_objects_client.ts create mode 100644 x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/poc/saved_objects/rule_asset_composite_saved_objects_type.ts create mode 100644 x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/poc/saved_objects/rule_asset_flat_saved_objects_client.ts create mode 100644 x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/poc/saved_objects/rule_asset_flat_saved_objects_type.ts diff --git a/fleet-packages/detection-rules-composite/LICENSE.txt b/fleet-packages/detection-rules-composite/LICENSE.txt new file mode 100644 index 0000000000000..809108b857ffd --- /dev/null +++ b/fleet-packages/detection-rules-composite/LICENSE.txt @@ -0,0 +1,93 @@ +Elastic License 2.0 + +URL: https://www.elastic.co/licensing/elastic-license + +## Acceptance + +By using the software, you agree to all of the terms and conditions below. + +## Copyright License + +The licensor grants you a non-exclusive, royalty-free, worldwide, +non-sublicensable, non-transferable license to use, copy, distribute, make +available, and prepare derivative works of the software, in each case subject to +the limitations and conditions below. + +## Limitations + +You may not provide the software to third parties as a hosted or managed +service, where the service provides users with access to any substantial set of +the features or functionality of the software. + +You may not move, change, disable, or circumvent the license key functionality +in the software, and you may not remove or obscure any functionality in the +software that is protected by the license key. + +You may not alter, remove, or obscure any licensing, copyright, or other notices +of the licensor in the software. Any use of the licensor’s trademarks is subject +to applicable law. + +## Patents + +The licensor grants you a license, under any patent claims the licensor can +license, or becomes able to license, to make, have made, use, sell, offer for +sale, import and have imported the software, in each case subject to the +limitations and conditions in this license. This license does not cover any +patent claims that you cause to be infringed by modifications or additions to +the software. If you or your company make any written claim that the software +infringes or contributes to infringement of any patent, your patent license for +the software granted under these terms ends immediately. If your company makes +such a claim, your patent license ends immediately for work on behalf of your +company. + +## Notices + +You must ensure that anyone who gets a copy of any part of the software from you +also gets a copy of these terms. + +If you modify the software, you must include in any modified copies of the +software prominent notices stating that you have modified the software. + +## No Other Rights + +These terms do not imply any licenses other than those expressly granted in +these terms. + +## Termination + +If you use the software in violation of these terms, such use is not licensed, +and your licenses will automatically terminate. If the licensor provides you +with a notice of your violation, and you cease all violation of this license no +later than 30 days after you receive that notice, your licenses will be +reinstated retroactively. However, if you violate these terms after such +reinstatement, any additional violation of these terms will cause your licenses +to terminate automatically and permanently. + +## No Liability + +*As far as the law allows, the software comes as is, without any warranty or +condition, and the licensor will not be liable to you for any damages arising +out of these terms or the use or nature of the software, under any kind of +legal claim.* + +## Definitions + +The **licensor** is the entity offering these terms, and the **software** is the +software the licensor makes available under these terms, including any portion +of it. + +**you** refers to the individual or entity agreeing to these terms. + +**your company** is any legal entity, sole proprietorship, or other kind of +organization that you work for, plus all organizations that have control over, +are under the control of, or are under common control with that +organization. **control** means ownership of substantially all the assets of an +entity, or the power to direct its management and policies by vote, contract, or +otherwise. Control can be direct or indirect. + +**your licenses** are all the licenses granted to you for the software under +these terms. + +**use** means anything you do with the software requiring one of your licenses. + +**trademark** means trademarks, service marks, and similar rights. diff --git a/fleet-packages/detection-rules-composite/changelog.yml b/fleet-packages/detection-rules-composite/changelog.yml new file mode 100644 index 0000000000000..bb0320a5243f7 --- /dev/null +++ b/fleet-packages/detection-rules-composite/changelog.yml @@ -0,0 +1,6 @@ +# newer versions go on top +- version: "0.0.1" + changes: + - description: Initial draft of the package + type: enhancement + link: https://github.com/elastic/integrations/pull/1 # FIXME Replace with the real PR link diff --git a/fleet-packages/detection-rules-composite/docs/README.md b/fleet-packages/detection-rules-composite/docs/README.md new file mode 100644 index 0000000000000..6c4735aec1564 --- /dev/null +++ b/fleet-packages/detection-rules-composite/docs/README.md @@ -0,0 +1,84 @@ + + + +# New Package + + + +## Data streams + + + + + + + + + + + +## Requirements + +You need Elasticsearch for storing and searching your data and Kibana for visualizing and managing it. +You can use our hosted Elasticsearch Service on Elastic Cloud, which is recommended, or self-manage the Elastic Stack on your own hardware. + + + +## Setup + + + +For step-by-step instructions on how to set up an integration, see the +[Getting started](https://www.elastic.co/guide/en/welcome-to-elastic/current/getting-started-observability.html) guide. + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/img/sample-logo.svg b/fleet-packages/detection-rules-composite/img/sample-logo.svg new file mode 100644 index 0000000000000..6268dd88f3b3d --- /dev/null +++ b/fleet-packages/detection-rules-composite/img/sample-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/img/sample-screenshot.png b/fleet-packages/detection-rules-composite/img/sample-screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..d7a56a3ecc078c38636698cefba33f86291dd178 GIT binary patch literal 18849 zcmeEu^S~#!E#4Tq;}?6chqwB{?k=6jc5D4>l%v(rleJ2Y%tW zDj9g7px}|*e;{M?LDwiK3@FNS(lDRTd-MJYIyUJCN948~OJk1M(DrJyI#iV;P4k~& zFZo35IfQt0RwlUN`48^6(1dv_wm(y1xhEdMld=Y?!%u=fPT_*{3( zwBwz3#qR}_)t>C*jp5@U)Ti~B)Y;qq*TRxZJ7ZRN_^A3TDAEM*@7Ve%(Ro7=1%1B< zVj6GBUTxXev>_^SFA zgKZ=g4aTS}9>Ofj7cSB0WO?gQ)x=+!hs_)b$6#>ScFZ>XAoIX)%Bc|BDC~JFBk0f0 z0NY}6gb)&!qx^FWC(!ji+Kl$V$2|ocA=vN0TM0Y`U?tX+T)c*C zA!IL(T2Vm%MCLa85^if@J@Kkprx8QN5!6eCR@4Oa5S?4-4|ou?90mFCM8D!;n(5xz zO}-*t!TntN>|a$s(kGQg1P-U?hqvGF2_fGvd&~yZ_l3Qf&j~XWa=;>N3#-~#zjzcc z*m18L`A-K2o!d@J>a8SRbm4P&-q1(H>|JgIymDbnJF&@008`=X!P?4DGgZb>voUl^ zNJKgPR4S={)3vuk_{n@=M8q;;aJL>q+VLdTnO=}`&x;1DKjJA3*f*idS{jP5?+;!W zn-^7021Z4zv`Aq`hmX1aid997RNh3fa-@PG(W7TzKa1W&5^y3|lPeETP7j9qXpo4)7%(W0_2 z^Nmq;t@rb1eP3?%kOkH`P%!zTC7ZHjSfNN3*Sb#=3#jB*KpNGNfnRZ{N(6DrW(;B2Bwom<%m?VQP%K+ zsFeF1-(DY}oP@)w^Kw~gPg03q?N;)Ec6^|nikA34T~RynX*z}H>R~qgT$`Zbhn8wzZs$j2fsGN&rOK-mIBBvzD@a8FgbLpL!h5N^u&0wG} zq!#md3MHITv?3@$37J?lc_5*LWJTTjel;IiU-Yq;(g9I^D&KN_NKVS0O~GvB~FzPM6}=4d%fG4Nw4pZshcyLqK@`b8?RhD38haIyr@+8+0r5TC1*C7^WleJ zZN3_ngTD#RQvNL*;qD2H@cBWJbCC#d!}=oKfod5SE9a?!?j%DVt1z@inN}Iy$r+96 zM@P?AC+(`cM;z6J94BYGJ;+P-N#yj$?`G26ydS&OVH?~JY(N4l()Fh+x+DoJ@r<+i zhm^ck@QP`=fLApr62@KyOef~}zuG;(VbDQmw|Wb+oSHSw=%w9R)=et0cY*~ytX)#M zEXlK^p;zM@vTnXn+C1vwP)~TJv|TvDE2($;;EzC5_5IL#H;u z)#CO8)TSzbt8)wHB8$I8KcIojx&GoE)3QNu{CQ+_xBmQ&`mL5-u=BX(hs^hMY^ zae!!*Q;Tr$@(0~GoBJAohGw*d{l8~!aXop87aaSUb2jm)Tk>#$1*cdo5Sl+?oD!l4Og~yX+soottl4 zp4OartUuAN(dD~yLJ}`A1*!D4-|L^hM;`_DM^1KYs-VF(}h(BjRO``b+xV~%O=-)?p z7ciJH7Fnl?V&=ay_AB{oQoa2iR;6$^tiE|-eRCFy|3F@%j#6gUxkZX@?K`F$u#;T< z4IZORpUthmB?U`;zrOkp?P(Rvd5TFRWrBJmVg;KEZvJ+;Q}FRY%QZ?c^&$oPXW+C5 zdN#c>v%U?QuE+hMQdzxS1Q(BT90;29qu#^A?a^)Ui;{TJ;%`nLgm2ew$J4NvREjCJ z$`C7&?tH$CrVG@M3J1-KJw_*9BKeL*JX{ zN+Vg_TXb9^jJO$ZGkXO6BBFDjt~w5`w2TB*z$&1W5Il3IiDs=ZMDt|9iRtKET*wF6 z0Z+|N87p-5Fh)^(*l>OVr5^aY5LW(@PuM>Qo@&)yj6XRkPm1>eTF#Y_c*aRF^ZY5A z9FAU7lKEHG@i{wJMPg;n6z2|69d-)q9@<7t()d-zPy&X zdXG7{Uw{k23)CzzQAXw#iqj<1u~W@K_Ljc#?ukh;fRKHeJ2l~Z+52b2n^bGiDF2oX zm25FLx|4AP8>rAi@koY03lrtS#X?zK591c?2iZ_jjc>0y>q9>fU<08o6zG%z9WK+S zDwZMW4~28wu#ye#V*@#5t^S@NiAA`3{SF$xINmc_WW^u-C9M=H>RQ1>WM=|R!660{ z6E6%DwX`eu<3pkmz7Z=FCRd$(vhDkc3yMnSr)5C*aho)DZ<12$`$TXj<8Z70)|rK7 zXFD8QzksfWZU`qL2K8X{C~TcF{KVW`3Y{IMb&)T9%1V`tv(HY1 z+LXkLyM|3mtLD{x-#hOw-U?sr-iLeHFA|=-sGZ4#hX)atL!a91(tWJc+og&5W}VfZ zpgE7`{5D`~?yGR++y7~xA&eU0N*ZezDjF$> zUeK&1aTFQRg*?v^Z2e7u<`lk$czR6}b6Cl-qA9%A`#A6q0*zyTu)X`3rhjR86NK3= zLdw{+-F}+b2gxd-qF7>Rla}dFkj|L#c|pg5Ni+MRA|BZH(@ME*o<1ijKcoXb%PVfJ ztp_uf=G%kvU((pHcw90Xut=}atA!giM-5By)f40nKp zv7Wdb{;^<}VRvruH~rYr~wEuYY2ov-5Q|p@u3Da9+z7PeIpBAwi?RxnxN3Kt+N9L(LUS%wxY` z>e&1VV;{CYw8DNRlvBH)>!I49SU4R!t3I4=y;mCevPZh!-}~G+F>6hcL_Rli4r zC4(WN)`j$>^S=~GMGR=^)A6wrqi(-x{xK37&Vx!OS6t=KQ2JVZo#GrSODtTe=TVh%*qfF%91nqsMNLNL^Gp|_ zz%I*HUkMQGqb!1eh{{bp|0GSCDbkG_D_d)8<(0r<6-%Qi7qDa7xZjcdZ$?Rth9L!f z$erCcs3<~mtupywbaT8NWZF#v?iZkvqSz3@p`RiXs7P!GUa~-U9hEG(NgI#3BzO-# z!9JWf(;r!*A=@g$f}>wi|6Q@9z8AmYf~x8G%sp>C5cfuJY;hs1o3Ozu^{pH0AFbs%yU)Xy5>Cf?qXiHn*-PAfKDRiy`U0sFSKFsgEZ6_ z9#ma!<#Izr^}_z*>PRSt564u6We*XmZUx^jv*dK; z4zyFZ*ZFSE!00<6!|+#33&R)@RA8V9YRjp$HS9?CGq*xDSDRbX#i;}mateEF{fqTI zt?X}Efkq_Ap*_ETgaikOBbQ|;47}hwX44K`(DUI@C)QiG&6UJ1UmRn*Q@6%e`+x(gpQp74O{;yli8YLCV}qD z4gIyZd_(8ED~WWaeXOb0^r=9=AiDT}by~+$KVF~M{ywbQl zng-h?a_E;yX?DCr4|_h7JMc7>xgWf7Ek-VmH^hCYunVp3{(d{---&%-GZ=rK#V5Jo zJvP8b!2AA5?9)G8gwzB6ze3TU<5*Pqms^Q-?C9-CN~4hb-`U0D@kAkTWn23``cao^ z8IWAp8h7`%ZA+eI?w$sJktq5m>e&0@mQn>2BdpKAxbj1$m$8Z;`!iFvl9($Lb9Ff? zT^6cTZ~HgIeR6R*;G(rzpgsJP41Fx9Df;G6{;k6T(i}&8hX(jHSC@~#X@70h#)g(( z*9vUC+a*b%oAdf1$}Z3NR;|c5nY4^Z51pfqk(tmJbB;Q#ka#tf5eae;-kq$I{xO3<(TI$0lSe-JQzJ*es;il=Kn_?&?E zfLbs{qErPqm)-*ZfwbA*D-shgb|1;X;cH*yA|q8gS=HiosF=-kbdk6--SR+`F^H_` z0*i`J==@XSe=HT;_``G}ulE=H@*3GU*?gVd@h*`eT^GKjI;C@8+h~;(u3bA#b&bN{ zYw>dJ$(;RfHDLlndS`CWOE=g0jOocCc&;w(dOzrLf4-DK*MD@P_;u&CbfMw=#Q-B` zDq8hGwKN-O7(hQA_bP3f5XrZH+@*FGw~ppmDgNWcf|Lf*Pc%e5dw1DcJ1BWm!z7z3 zr^toEU*P(>G#;_1X}Rz(5lbDtCui%hY^d3lm)kw0vyk zX~K4$AG#7cG`6s2%9g9zsaQ9o?;3yzW4Pt!;NlS zzI#G7tiq&@eV&}qDtY(e$1JwscAfle%Al{3>Nr%``n?`Jac^CdOXUbFgI3;m{RkA~ zokl+lxuw9=%W&MmzA+G%ZdFMMP&N2^6BWjG2Lt|xKx)lMCR@b0n+xgw<)&Dwi?}>- z+$_e|@M;uW@3z6)q&L7bYitZ%huzGqH_qHOr&G5o!?(8TJv_MN1ka|&c6_!Q>#PgHSFoPWiLg|k_{ zQd#Zy&BPkU(0OE5S35!B5qb6%T3Wd#J(zBl8dw6I#xIDDF-LBPi-jXv1E?!gE|1OIdTejK)+U3ooC^otSIRsWZf-`&K}6}s!407Y58zH zK(oYx*7sN1O|Z_1YIJS_H$E@DH(hB4QKNCGQT3PTvwYoe2&8WKi5`5tU-r4!>_V3XUT}N)>8V;+z-!@-IGCKiD>E9RC(K`NMx=;Qp zf$2g^t?)zpU0L!BZi(oE#)^Z_biT*Svh>r#%1=O+Wo37G`Q)4@k#Pe?^mgBIugC)8 zyEICH=`{A~^x#X&%tr-$j|(nXrIrGQYNY+C3M+LO;yUU4-|v>a5#P)XYp>_|C0f0n{_p0mvwWmghfd%!Cm}$qBDxOqA3htLs~ghSA1>6^dVgd~ zVHHBBy6;Pp=El;dkTE=ttp~BoOJ$L@EB3Z37T1kTNG3tm4PY5O-7hP5DA$-k=vV&6 z?RiAm;W~*o)R7!x9>u$&@|&D4xMmJ*y+^-6t!F0u8G~78t&Bs#W>w_NbW>W9M3tXWXRf zI86FWVx%iXXh6MJ>dg#?lNu{K@S#nzMIG4PXQd%!Bvc*H0c7F_Y=adptJr*cHevMQ z%?Xu~q8CFw>^L*S_83kVhq=)hf0%_Lq}SE*g(Da_A{kXVZfAd*YCwp~bG32wi&SNM z#QZ7}Ug5-=+s^uqAh_|}gzya<(&E?XAZ%0ybd9nraj?|z1YfPr*{N?Q{ji}YG`T#| z=uwJZHIMlsmevnenT#-)t$L*=2wh|1EYXW?_36TR?L!sUItJVxaC0$Gb|gq4{|4gA z(v0ODFj!T)jc5>65ys)* z7$aBHfbKdz@QJq1b`NT`344*g()$>5*Ey`TPB7WI;|_8o8t9-_4ikFub|I{66>ge> zHA+6onzFKY*eaiA!77SD*^&LyumAR6gSvxY6Q?;!AvI{rZ##!G$%ZfIgce4F`aF;e z?jVh%+B-vj69ei~bh_zA9w}S4B4rzRKQ1~u$gwVu_x5PlRKDXX2(_2Mm7fs%6{SS7Qh1gWT8xaxc=f8`mW38ukIZxwU;lmHABwFSg50*o zrj%f%j~IKR?N5Dxwrq|sTa?!pd{b3sFM&~{4~_^YH4$bI^Fq2W4-y`))^|7fS?i0) zJ&Z9wY!8%l7@gAr`2{fqA;L;ptQR*X2|xUtrT47KK%XN+dydN$*M?65LuXTRabgERR{n>;E;(&vS0_@COY!p<%5LsRqGpER%~YjkSK zwBo9-2|-ZFiU3TT&S+@}3gDT35t0IXTzX@yHA(v>Y8;-mZNySQ&fE7RJ1^tzJfvdApX& z*!+tE)Y{oR%jk8A)3EiI3i*(TOwP!;B3hAOj?KQ6^h-q~1V^166uYS~mH*2Hh*0}r z`R3u1#^LG9IW|^QT^|61H(T1Jz?n;(Z>52lU0BO>Q6*zgpP*gTFk2Uw)!3zt>3F~_ ztil4!R*-j}wjh%&(kSB%}X=u4RbFRp@^l+$SmM@nW9B;yGbf@nasjFMEE{m9Oe

}qal5$moSACwfNXLXG5|3R0AtBcN` z?%yS)&>O>sqxU64U~C3&Q^>z-Zt}WuX4Wh3dKj9EO zfSbV!c3e;EOeKHQmWEw#NM4;*tw-2o@x&kKT?rsmy-F|$jw-F>WgA7?C@{O1qPg*J zf92|RTBMh&ptHADFc{T+cB?+mOj>h2HKgwkxq6w&XBxPc?>=JKvU2K9aU93@vp-R% z{5T=P$9U}AYZ5QU{3%7}YZ+ACWXw#-U zWyxU(OP#Q9-2AeGmCwcp`zWghf2hvsOjWjDQbU?U`v0&a--f1`v0Bd8HLiLmo)PKz5!A1|XVO+89 zm3h2~6yI~cpWor!_yt-?Lt>z`c0a7cJAW)#d8N8nNIf0H<+v;s4{0guDD(?T7Z<~$ zd`$vpZ_QQgFaMT0_d5&+(jwGU?M1FqUu6wjA-9z?mRM}(CmSdK;2e$Na}F-8jbhgN z9)@AIQeghf{xCC^{9P%VdYW1PP#}2BJwWt z0Hd8%st1NK5%h+)UB^mVwh{e#8TIm$xxgGo6I5;e{~VUeeMGRpM_Z%=eH5$X1}?Z5 z`|*_Vp~K&ziz45-Ih9y>EOr(Buy0&n$dbQ4$5eSr=Ti z#~7^n8dmem;$0D4+6eV7&G2D~d@ z+R#u8+nw_N%7_U_1e53P?~&10^m|ZUXrZhVp04lQLsGos%0fRDhS=@>8TOAAxK;Cy z9GZw_1pfSxD5~xoR!INI?tU0wrKDd6^Tv{jL>`Xb49kBaNPlhMaIfh_nq_)zB7NcX z05XeQKz`@BDUx7*i!V~%dc8XQ#ngBw0A2tSr(npSCrNy5Z7>48v&Zz?0{%FRElh_h zN2|?#EhJL5HQMIu6m1=ypTR?tVymHK)xQvS9ir7FzMp?CjlND39PK`od#GytVhZWp zQ1@>MTE1*Ip>hnXSWa?XbMH#708@j12yPbm`JfcqIgmJepn$5YgkJn_%5I)mr`Q(k z-a0yFR3A`houhvf&|wNpIsV{2p%MqhR@`@R(l6`}iufEgI*UxWq~26?WTpZCV{JtG zYL?&#I98fyf_;2S0?_V{=Aa4t^x%vy$pF$_Lh7W2f*~5uPvGYh;vZhMv|u+Z?2t0~ zcYPXdxbg6OS*LUjR_=jLDt)ab6;?g1IuySLG@UE;jLpt-wjLX&RlY>fnd@f&?0NyT zht5vhP^};k6`U76$%&I)iWPNxG6KPjdh`S6>g9GN@;KObQsLG zKyjfrPR0PU1B0a0=)3@9eCDl?mB9rFdlTMtTAeZv2}F*|@JWleq2+H1bt>>x!^wTk z+I)cgsZwzCMwoRpW_*!3IySTQu!`HWugAXe(Ai(a9Rsu;*0#o6torxwNMxPzEAjt` z>70Vw;HCQ?AnP`RKQ;2R8h%;LI#tx^(MO*lMWJe4_?)Q571P`kTmN#(ez21V!<6+S z@Uap+y%#8&cGgdf+E@y$dUx3g#)=#5k31Vqv0p!%L`*=-PiQAiSg-d9lKRZQDuJ-| zA96zwwomG+4}X$vR*IU=NC!vL<`rUTbf_uRJC4FS;k&HtV<=<)p(qymH)=MDV^aqK z#%sid7K|~!H`J!7hRr~Z!emxgWq6#GpQs%c#BM+scvNGz|Gi4G`;8Z~dP8)+51iB8 zw)0fazNz5(iK$LJeC_4e^8&@wT(DZ~~>SStz3P(>V8CLNlZqgv=2K-|Lu~si@XFwMN>QE^k zVS2U_A?Q$?M`NkU}^!M8m%O&T=kW>dG}1s2I~hxp9Y=a=1XX-(fB5) zej3`e5Et~R^r%?CZK0)UZsF_+tSOGIBMdrtMf#oJjGF9U`*P8t>i*TWed$Z2WNUZ* z_1Qw4Yr+Q0@bD?hD0P-^v}?FpPBg~zz5~g@J#J76C695|P>1l;OS8%~hZh5&-9Ji# z50%&56ZK4FC9}{jHL0!=qo9Yd(GGHCEX2|-F(f}q6@NMT4P3rQd{Q!=bz-8N(Z^!N;;ZzAWRf@C?X>mG=_NgyQX_?Jv$m(9$W>P;+e}O|&w&DjbsJPdWp0A2$yLr*!BY73Z z5d*BCaTI)w=sTlofc>n}@v_tSXIK?8(g`G_06u>SD*fOZJ~visq3lBVS2+cf-r$UQ zZ(8A0g&5M$IV7w5nqL(m$VS0X?=yy-e6>S>Ca3wZNT)b{GF39_gJdONflqc-j$b~o z2l@@h{$KVfC)V?#We*)@xYC;L^<@cHo>8axRMbSzw|eYTl|8pkabsQJ(3`z{>5H}c z`psz_Y6t)hvzL^=}P#++XUl6v`-j)SuXd6BynjNZ!&c2hnyE&4*K$nXn31Zk)cm+lx;> zya{T?{MRtSu?^3Y9bS&O$*mW^vRUpv!J3Tz12?3&Y62b_oiZ$24O(75Z)JWb+Rj)ACbK`f<&tSwtT$|Sy z$41kRPiM-jnPY9PKrLyI`pHm6LusMsrO*HpmE){Kp1^u2t%6nW^;GB|!4k!Ik8oav zjM?DBKh9G@W0gEwiU-M}0B)}olvoM71RccgiZBCs)L?q_GX&JDhegx4k2&cNatr5w zU)1#2USb8&`etO5Vk z?0}K+*2*@a5yt*X{qg0@8jEz~jcylVj>-042p1PBnabI#xUiCRD!ouw3?u-wwsqwF z8(@m8-Lk7q@v154g6yvx_tRDa>}oqpVda)wfI9(;ZVGt1v^{<|X?vC_(i@IJC+2I_lusrT=$h zF1lPc*Neb`;Xgrdf`p$w)~MzQW0M3_FYRKu{2$VU82J^B=X1#^<&P$_`=S$Ey04WU zTxG;hrFNLhWC*p+sH3x=JVcBJ9*7>eO20)n671SxQhZQlHMRP8FyO}yai~OTsbms0 zQ3b$C1Cn!>jMHDq{VX1ab^~_Q!z+f75+_AuwiN0*wA_#M#0|rU{+NlB%>Y+TNT0Gj z`3^LKMSJjz2(?lwg~ixDl_5%rzzZ}o_6Fj9e)T7gpH4=BgT1zmwJpC@g(f%&0`}8B z%7Y&qlP3aFmI#nmT`|R3+Lwzp+PLXt|5g%vlY_$fvse7zjus0D0fA##r+i4G4K-2Y zC#H95NGoYfWP#ZF_v$^Li{PZpm}fc&)aL?5doPcb835Cr6`T+EzzcEvLtmXcbAb<^ zw!_Zgk6Az7YA@*vb)(G{_W-B|zrf76z^`X%jOgqIIaqi~5nUup3vugzzg&rA^w(zR z+qCzvIV~nGR=47pDOcNTzuBw#5a=<=DMvGa)g zPw$^pmq9Fg&b#BZrPSoml(149rZS!fioV*Dy$z440U3MXDJmI?RZqLy0}IKSxN)o( z8+8wIZs#q(|KTg6y;Z(=96>xfpUsr@SP}I^v zN^R;ZVrDaWmNrM5-<X@k6JyjvA3;jHhma|Y|7!Vk& zgf(UK_6~cC;!|b!YTjke=nBiUqQdb#I9TY}!s5P)H+^c;9cW(QO8O%n5J^8Xfktd*qrn)+?-gP`m%B&q zi^}7jKm`yMW8ITFOMN#!QIB6$SWx*75tnCMaNg*_J*WuwBh~AT>0($nS8%&zmFQDp z$dL65niDtTV%!Kg1`6epWoQGNG`$`doy;Zjaa`keyL0F6iJMae6FIgnhAfzU%m@V+ zm5rQihLwS~b6{-bVR1ZSzBI7(Yj+V6T-8V*7I`ptWArGdy~8pnV>fALpi~NQLZ7;^ zpaj35=md<~-(tNmF69UX3?ua}A7UIn)q5i1iPYEGlhYSbkfeX`5epkxtzk3Qbu| zlgA`7ts%IvF4HJ}-98akyRnjCo{u-`A4&b+r?s|o`4wdYAHs-yh91p$7C_|+EdYH5 z10`!*=n+W9g>V&dfU1H!J}ASZi&-?`2IlDOAHnu306rD`y>jT)4^@S(X4XhN2{g9i zj-ym98+RT|d0ejIFJCM5>S{mT-8uGmRRqkJ3sMO_AQDrv77Q zv$t>zaVpVF6eBguE%9M2u?E-Oleft8z5+~W`G}KXD(Yc;7m4{Op>Le(k`g1UK7(1# zt6g}$n=Tdn{T4pu>v!c;xRCd_WI$Ali13x=U_0T!Ga-U~9W88q-lU+RLn2`N8Ouho z^0@SvC>$DguHWx)?^*ms-{PVq%dn(U3vrLj9zITDqQZ`H>Wsp@Gf%}SG=m)Vh}F$ztQAbwVGdDgd!28j&yX9wLW&s! zNR~6`nYg;ULAq8zi<;gUchAV5ib67Y##l2 zy+%gaD(|~G4@||{A;TYDSoS>q2o{t23t-^!NDSDEm8j3ao7Ei>KYLEpb$jz}7ciAM zD}trDN+AVVT_lXW<++~>8>Cj8fzJo@R;>%nGq)6+w?(#mNc#1J4W+!hA}?g$0Xqo? zn67qJmss)e%k(xO*&K@z6+}nHA(lCkb6n-|{pSztys$8HiOWTVR)tCO*Q9~if%3n7`uxGzE+OCu zwcVV|tgQdq60952$>85-GHk$lwM(uI+CU1?i{sVnKd0+UNq#eSSKjUKfDDgLnBG1y z^v?f#MRFkph~TgkoKBvM`L_~we8__xpLcjh`GwV|87q`vazJq?SX=mXhdvK>VqUf~ z4sYoTIpt5S)KrE-?>&=cRoBumD7;b5pq!Y07)#I$`)<@U+mo*dE*P~773p*u^6waO z2#thJahX_ySlYMpjx%h<)i43ao~Is`^Ya zMNZkuChEA7+ZJe6$>-C*dzTYf3#1SY82yFG?S&Q)5rTbKS-XLjckTLEc7>^sFcntQ zBeNXCSg&q1N3Bi^4zlQ%mcEBQ%2ab$?(;t-$HYd2%cnX$uuwU#I_6D3($m zR(>gHzM9ODf;r8b0l5LuEIQVZiQ0-|3Y_xzJkZc*CD=bPJ+&J+>>se%D4uTq?Ny{l z0Z5~og*Wa1O&anlcRWu_%o)(x?IZ0CfUNk_R-ik>GyvdFmpu1wHZaKTDGhL zqxsji)n<+)VKbV0_BRq9E;Kb`f=&vn(BK0Ba-gL?ZN;^^b3YFg6R=!q#zM;tcX0dM zdy5PPx@6pJPXHzH7$dGjM|6@6777nXPWV;CIQdNf(*Znv)sMy&Xcq> zhCq+6h6&v8<0}vd2(sKqU3j>fr7&#Xy%qZHcMU3m{wld^Nstkz8GagB?Y=SI&H z&{&BSA-|(i35$9(l6LpFyLm$0M0fK`Dz!~ezL?yEInsXAFR!bHe;ZL>Gd(#Hv?<$%`^b)oi?x%(jkylCPb=juPlF znMo&o961=NZ_$gd{xp1ZY2dNDOS!=XVj!M^A z+$z`EK4v=m{Bs{&I4W)({`&<5*^BV#z{IBAI_d+9Qx;~ zby?2zEjzUUeZWBDo5cz>%;z||z)<+6UtC)y60yD5J5`oo_zSM;l21@CY<0_|)NME5 zs)kHCMBa5YzB#N=W2aR?y9((~WuYwwf+HAc2mvU>NYlxOTvGf^Ye3za?*f-qUs^`a zT3>RPh9*Jf%3*bf|kqtnD_Buxv!<9N>BbuD#uYv-q^ z%RDnd7a3O4M9Y~TNISS@9K}JDkdg@>x8E6@n8jF=6qiDV+}{!V)(o?ykcr0sxBGEx zo!X;pc=r{H^vw6ztV5VZXBa4~(ujB$rZQ|AaGN@J7#q%2nU9gJ)g6dcj}zYB1& z@iFE0vMQVxa|v7tDHS$gwX$Ihc#M^DXRC>J@Zk?dC(3uB_s~*W&m-01DFMQGWjj5x z5po1@1gPl!v1Yra@qPG{D;$bYLM3qOwpl~7f~l)#n< zP+6`!NYe3EE~4RFR#_e=7YctPRBt6$He@`%e5m}f$M%yzC2S0<1}hRPjO>HJY~ z*dx(nbMbjv*;o&k{qzBdF|lS;UNVKziV=gbLq}UOCwr8GT5E9oRYQ}+>DhbQ1R=lj zgcNJN8|D)$Mx3#c+t@lhqcDUnHGVt0&EyQ{b5)=52B(VTzw=pQ^ba3`JB@BU^lS`_ zJEiLzgU#Acd_!}FMxCWC**FP^i#P}bYzNs78)#uSejEtYLbG>JJ7Igtho2oKQ;XW~ z4eMGO+t!_;G^V6c&R`5Tg+Pz2ToN(aybq4Q0ssie_{`t*DO%V7FaZ`{MBobFc9|pV z70o5ayHGJo9$$&Pgbs)pWNzduAcbh?~U?_P)(ve0S*3H%eNF&a5XR=!J#4c z;t992n7ZJr{*%`^dU1d-ALE8!3i#v;3r4r%j+JFCe=%3Vj=8{aXe zs)jrcUBZ=;LudcTUXj2ub>K5!{HHFHJ}Trx(PYugbQ8yK7&sqX;(;|UWjk3tGs3zuceeX)i4i_jA8Qz2Bc%DxN8 zXw!$+9jBtEHd1y90bYG4f8DcJM)Ab!M39tH5zz94*MAvnhA377@buNupSOUU3j8~> zd6&hk^ENRCp9T?_QUHk<=(&9Q^MJ^pi;nKOYNR@?L=RCSmKMJ5UQJQ`X!i~(gD*P! zs`RobzJG3Ra_Pg+WZUXUmMU$ilpwfcEti6)mw(~MZ0q!^sza>#jv!-+7B6F3QuMWg zVO!rXwD+lF1BBTito?ml-CV3vxuek~TKuOX^N6sol$v*{_%nAuD7i81eXm^Lz(Z~I z2Xj_Dts#G0&C;PV_Wkq*1QvB7+Post4={v;gk7b9u%#DC_bh(iJm$rqog^{JEx6NE zrs5^2SEL$|98#2WV#iG@L6cq|)SuTMSfGocPl65wUd^|5Lbpnb(;t>-Qu2jvANLgv zdte0vED-3C@^BdyHWLL(7{G$WA02z@JG!T-U^Q7HZ(7Bs&vchkh(p&}KvnS{MG^i6 z4r){gJp9p7WyWOEiKA2Cm6EXIn&&gk|Fc6^78OpPrX4ExCFE=SD$xcH;C2eB^{XTI zaxz_Cef*Yj==w_i_BTGXP;8C&f? z*QEM>={jFM8)lWAR870pG4XEWsl%%K|82S5b=9hVz7p_6i-d(Iyvq76&a#PV zR;VbQV|n?mg}&(ehClg%tK%IjgtnTR-u)lxH06XxXqH0soAZbB_Rm)XX=6Nge1uoG7 z9vQM_S~2h53n|W`y{{R9+=08rv~MohI_v4-BU^7fZ0-A}#b5{AOSTJm+(J;9yw%pD zX6u62GJ&@HKX5zQwq~j8T!Hrv-Mk^QSB5cu09L03{ToDO7jikM0WAcsjW>D}^jqCF zT0DEZ@K^KO_MD*%M!+V)lGVU6?LpX)eQVXEmq}R`NIJv;kBitJ!nW?0OxTVlu2ADf zE{A!*0g3%nwVcBD+AgT5bGx@WOnQk{zRpiZ4HhP`3BF%N|HdqPbbiV5)7x)kzC3ID zZ;27>0^mrMgWc7evsbQY`l`l})wr+e;=8U_!2&B77;1qL!N8y)eTJ2lf#CvhR~!Qa mc;sM|90DP5A*JW%f2r=u1xt!e4gwD_V(@hJb6Mw<&;$SznOm^{ literal 0 HcmV?d00001 diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/000047bb-b27a-47ec-8b62-ef1a5d2c9e19.json b/fleet-packages/detection-rules-composite/kibana/security_rule/000047bb-b27a-47ec-8b62-ef1a5d2c9e19.json new file mode 100644 index 0000000000000..096f2b8097c5d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/000047bb-b27a-47ec-8b62-ef1a5d2c9e19.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"000047bb-b27a-47ec-8b62-ef1a5d2c9e19","versions":[{"name":"Attempt to Modify an Okta Policy Rule v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to modify a rule within an Okta policy. An adversary may attempt to modify an Okta policy rule in order to weaken an organization's security controls.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Okta MFA rules are regularly modified in your organization."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/Security_Policies.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.rule.update\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Modify an Okta Policy Rule v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to modify a rule within an Okta policy. An adversary may attempt to modify an Okta policy rule in order to weaken an organization's security controls.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Okta MFA rules are regularly modified in your organization."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/Security_Policies.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.rule.update\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Modify an Okta Policy Rule v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to modify a rule within an Okta policy. An adversary may attempt to modify an Okta policy rule in order to weaken an organization's security controls.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Okta MFA rules are regularly modified in your organization."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/Security_Policies.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.rule.update\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"000047bb-b27a-47ec-8b62-ef1a5d2c9e19","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/00140285-b827-4aee-aa09-8113f58a08f3.json b/fleet-packages/detection-rules-composite/kibana/security_rule/00140285-b827-4aee-aa09-8113f58a08f3.json new file mode 100644 index 0000000000000..ce245d9686c9e --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/00140285-b827-4aee-aa09-8113f58a08f3.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"00140285-b827-4aee-aa09-8113f58a08f3","versions":[{"name":"Potential Credential Access via Windows Utilities v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of known Windows utilities often abused to dump LSASS memory or the Active Directory database (NTDS.dit) in preparation for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Credential Access via Windows Utilities\n\nLocal Security Authority Server Service (LSASS) is a process in Microsoft Windows operating systems that is responsible\nfor enforcing security policy on the system. It verifies users logging on to a Windows computer or server, handles\npassword changes, and creates access tokens.\n\nThe `Ntds.dit` file is a database that stores Active Directory data, including information about user objects, groups, and\ngroup membership.\n\nThis rule looks for the execution of utilities that can extract credential data from the LSASS memory and Active\nDirectory `Ntds.dit` file.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the command line to identify what information was targeted.\n- Identify the target computer and its role in the IT environment.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently malicious\nmust be monitored by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the host is a domain controller (DC):\n - Activate your incident response plan for total Active Directory compromise.\n - Review the privileges assigned to users that can access the DCs, to ensure that the least privilege principle is\n being followed and to reduce the attack surface.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://lolbas-project.github.io/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"},{"id":"T1003.003","name":"NTDS","reference":"https://attack.mitre.org/techniques/T1003/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n/* update here with any new lolbas with dump capability */\n(process.pe.original_file_name == \"procdump\" and process.args : \"-ma\") or\n(process.name : \"ProcessDump.exe\" and not process.parent.executable regex~ \"\"\"C:\\\\Program Files( \\(x86\\))?\\\\Cisco Systems\\\\.*\"\"\") or\n(process.pe.original_file_name == \"WriteMiniDump.exe\" and not process.parent.executable regex~ \"\"\"C:\\\\Program Files( \\(x86\\))?\\\\Steam\\\\.*\"\"\") or\n(process.pe.original_file_name == \"RUNDLL32.EXE\" and (process.args : \"MiniDump*\" or process.command_line : \"*comsvcs.dll*#24*\")) or\n(process.pe.original_file_name == \"RdrLeakDiag.exe\" and process.args : \"/fullmemdmp\") or\n(process.pe.original_file_name == \"SqlDumper.exe\" and process.args : \"0x01100*\") or\n(process.pe.original_file_name == \"TTTracer.exe\" and process.args : \"-dumpFull\" and process.args : \"-attach\") or\n(process.pe.original_file_name == \"ntdsutil.exe\" and process.args : \"create*full*\") or\n(process.pe.original_file_name == \"diskshadow.exe\" and process.args : \"/s\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Credential Access via Windows Utilities v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of known Windows utilities often abused to dump LSASS memory or the Active Directory database (NTDS.dit) in preparation for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Credential Access via Windows Utilities\n\nLocal Security Authority Server Service (LSASS) is a process in Microsoft Windows operating systems that is responsible\nfor enforcing security policy on the system. It verifies users logging on to a Windows computer or server, handles\npassword changes, and creates access tokens.\n\nThe `Ntds.dit` file is a database that stores Active Directory data, including information about user objects, groups, and\ngroup membership.\n\nThis rule looks for the execution of utilities that can extract credential data from the LSASS memory and Active\nDirectory `Ntds.dit` file.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the command line to identify what information was targeted.\n- Identify the target computer and its role in the IT environment.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently malicious\nmust be monitored by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the host is a domain controller (DC):\n - Activate your incident response plan for total Active Directory compromise.\n - Review the privileges assigned to users that can access the DCs, to ensure that the least privilege principle is\n being followed and to reduce the attack surface.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://lolbas-project.github.io/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"},{"id":"T1003.003","name":"NTDS","reference":"https://attack.mitre.org/techniques/T1003/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n/* update here with any new lolbas with dump capability */\n(process.pe.original_file_name == \"procdump\" and process.args : \"-ma\") or\n(process.name : \"ProcessDump.exe\" and not process.parent.executable regex~ \"\"\"C:\\\\Program Files( \\(x86\\))?\\\\Cisco Systems\\\\.*\"\"\") or\n(process.pe.original_file_name == \"WriteMiniDump.exe\" and not process.parent.executable regex~ \"\"\"C:\\\\Program Files( \\(x86\\))?\\\\Steam\\\\.*\"\"\") or\n(process.pe.original_file_name == \"RUNDLL32.EXE\" and (process.args : \"MiniDump*\" or process.command_line : \"*comsvcs.dll*#24*\")) or\n(process.pe.original_file_name == \"RdrLeakDiag.exe\" and process.args : \"/fullmemdmp\") or\n(process.pe.original_file_name == \"SqlDumper.exe\" and process.args : \"0x01100*\") or\n(process.pe.original_file_name == \"TTTracer.exe\" and process.args : \"-dumpFull\" and process.args : \"-attach\") or\n(process.pe.original_file_name == \"ntdsutil.exe\" and process.args : \"create*full*\") or\n(process.pe.original_file_name == \"diskshadow.exe\" and process.args : \"/s\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Credential Access via Windows Utilities v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of known Windows utilities often abused to dump LSASS memory or the Active Directory database (NTDS.dit) in preparation for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Credential Access via Windows Utilities\n\nLocal Security Authority Server Service (LSASS) is a process in Microsoft Windows operating systems that is responsible\nfor enforcing security policy on the system. It verifies users logging on to a Windows computer or server, handles\npassword changes, and creates access tokens.\n\nThe `Ntds.dit` file is a database that stores Active Directory data, including information about user objects, groups, and\ngroup membership.\n\nThis rule looks for the execution of utilities that can extract credential data from the LSASS memory and Active\nDirectory `Ntds.dit` file.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the command line to identify what information was targeted.\n- Identify the target computer and its role in the IT environment.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently malicious\nmust be monitored by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the host is a domain controller (DC):\n - Activate your incident response plan for total Active Directory compromise.\n - Review the privileges assigned to users that can access the DCs, to ensure that the least privilege principle is\n being followed and to reduce the attack surface.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://lolbas-project.github.io/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"},{"id":"T1003.003","name":"NTDS","reference":"https://attack.mitre.org/techniques/T1003/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n/* update here with any new lolbas with dump capability */\n(process.pe.original_file_name == \"procdump\" and process.args : \"-ma\") or\n(process.name : \"ProcessDump.exe\" and not process.parent.executable regex~ \"\"\"C:\\\\Program Files( \\(x86\\))?\\\\Cisco Systems\\\\.*\"\"\") or\n(process.pe.original_file_name == \"WriteMiniDump.exe\" and not process.parent.executable regex~ \"\"\"C:\\\\Program Files( \\(x86\\))?\\\\Steam\\\\.*\"\"\") or\n(process.pe.original_file_name == \"RUNDLL32.EXE\" and (process.args : \"MiniDump*\" or process.command_line : \"*comsvcs.dll*#24*\")) or\n(process.pe.original_file_name == \"RdrLeakDiag.exe\" and process.args : \"/fullmemdmp\") or\n(process.pe.original_file_name == \"SqlDumper.exe\" and process.args : \"0x01100*\") or\n(process.pe.original_file_name == \"TTTracer.exe\" and process.args : \"-dumpFull\" and process.args : \"-attach\") or\n(process.pe.original_file_name == \"ntdsutil.exe\" and process.args : \"create*full*\") or\n(process.pe.original_file_name == \"diskshadow.exe\" and process.args : \"/s\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"00140285-b827-4aee-aa09-8113f58a08f3","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/0022d47d-39c7-4f69-a232-4fe9dc7a3acd.json b/fleet-packages/detection-rules-composite/kibana/security_rule/0022d47d-39c7-4f69-a232-4fe9dc7a3acd.json new file mode 100644 index 0000000000000..b5810673c94f1 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/0022d47d-39c7-4f69-a232-4fe9dc7a3acd.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"0022d47d-39c7-4f69-a232-4fe9dc7a3acd","versions":[{"name":"System Shells via Services v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Windows services typically run as SYSTEM and can be used as a privilege escalation opportunity. Malware or penetration testers may run a shell as a service to gain SYSTEM permissions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating System Shells via Services\n\nAttackers may configure existing services or create new ones to execute system shells to elevate their privileges from\nadministrator to SYSTEM. They can also configure services to execute these shells with persistence payloads.\n\nThis rule looks for system shells being spawned by `services.exe`, which is compatible with the above behavior.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify how the service was created or modified. Look for registry changes events or Windows events related to\nservice activities (for example, 4697 and/or 7045).\n - Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Check for commands executed under the spawned shell.\n\n### False positive analysis\n\n- This activity should not happen legitimately. The security team should address any potential benign true positive\n(B-TP), as this configuration can put the user and the domain at risk.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Delete the service or restore it to the original configuration.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"services.exe\" and\n process.name : (\"cmd.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and\n\n /* Third party FP's */\n not process.args : \"NVDisplay.ContainerLocalSystem\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"System Shells via Services v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Windows services typically run as SYSTEM and can be used as a privilege escalation opportunity. Malware or penetration testers may run a shell as a service to gain SYSTEM permissions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating System Shells via Services\n\nAttackers may configure existing services or create new ones to execute system shells to elevate their privileges from\nadministrator to SYSTEM. They can also configure services to execute these shells with persistence payloads.\n\nThis rule looks for system shells being spawned by `services.exe`, which is compatible with the above behavior.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify how the service was created or modified. Look for registry changes events or Windows events related to\nservice activities (for example, 4697 and/or 7045).\n - Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Check for commands executed under the spawned shell.\n\n### False positive analysis\n\n- This activity should not happen legitimately. The security team should address any potential benign true positive\n(B-TP), as this configuration can put the user and the domain at risk.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Delete the service or restore it to the original configuration.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"services.exe\" and\n process.name : (\"cmd.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and\n\n /* Third party FP's */\n not process.args : \"NVDisplay.ContainerLocalSystem\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"System Shells via Services v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Windows services typically run as SYSTEM and can be used as a privilege escalation opportunity. Malware or penetration testers may run a shell as a service to gain SYSTEM permissions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating System Shells via Services\n\nAttackers may configure existing services or create new ones to execute system shells to elevate their privileges from\nadministrator to SYSTEM. They can also configure services to execute these shells with persistence payloads.\n\nThis rule looks for system shells being spawned by `services.exe`, which is compatible with the above behavior.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify how the service was created or modified. Look for registry changes events or Windows events related to\nservice activities (for example, 4697 and/or 7045).\n - Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Check for commands executed under the spawned shell.\n\n### False positive analysis\n\n- This activity should not happen legitimately. The security team should address any potential benign true positive\n(B-TP), as this configuration can put the user and the domain at risk.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Delete the service or restore it to the original configuration.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"services.exe\" and\n process.name : (\"cmd.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and\n\n /* Third party FP's */\n not process.args : \"NVDisplay.ContainerLocalSystem\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"0022d47d-39c7-4f69-a232-4fe9dc7a3acd","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/0136b315-b566-482f-866c-1d8e2477ba16.json b/fleet-packages/detection-rules-composite/kibana/security_rule/0136b315-b566-482f-866c-1d8e2477ba16.json new file mode 100644 index 0000000000000..a2e1306688b44 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/0136b315-b566-482f-866c-1d8e2477ba16.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"0136b315-b566-482f-866c-1d8e2477ba16","versions":[{"name":"Microsoft 365 User Restricted from Sending Email v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user has been restricted from sending email due to exceeding sending limits of the service policies per the Security Compliance Center.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["A user sending emails using personal distribution folders may trigger the event."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/cloud-app-security/anomaly-detection-policy","https://docs.microsoft.com/en-us/cloud-app-security/policy-template-reference"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:SecurityComplianceCenter and event.category:web and event.action:\"User restricted from sending email\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 User Restricted from Sending Email v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user has been restricted from sending email due to exceeding sending limits of the service policies per the Security Compliance Center.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["A user sending emails using personal distribution folders may trigger the event."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/cloud-app-security/anomaly-detection-policy","https://docs.microsoft.com/en-us/cloud-app-security/policy-template-reference"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:SecurityComplianceCenter and event.category:web and event.action:\"User restricted from sending email\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 User Restricted from Sending Email v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user has been restricted from sending email due to exceeding sending limits of the service policies per the Security Compliance Center.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["A user sending emails using personal distribution folders may trigger the event."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/cloud-app-security/anomaly-detection-policy","https://docs.microsoft.com/en-us/cloud-app-security/policy-template-reference"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:SecurityComplianceCenter and event.category:web and event.action:\"User restricted from sending email\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"0136b315-b566-482f-866c-1d8e2477ba16","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/015cca13-8832-49ac-a01b-a396114809f6.json b/fleet-packages/detection-rules-composite/kibana/security_rule/015cca13-8832-49ac-a01b-a396114809f6.json new file mode 100644 index 0000000000000..d131a6d49374c --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/015cca13-8832-49ac-a01b-a396114809f6.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"015cca13-8832-49ac-a01b-a396114809f6","versions":[{"name":"AWS Redshift Cluster Creation v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an Amazon Redshift cluster. Unexpected creation of this cluster by a non-administrative user may indicate a permission or role issue with current users. If unexpected, the resource may not properly be configured and could introduce security vulnerabilities.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Valid clusters may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Cluster creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/redshift/latest/APIReference/API_CreateCluster.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:redshift.amazonaws.com and event.action:CreateCluster and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Redshift Cluster Creation v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an Amazon Redshift cluster. Unexpected creation of this cluster by a non-administrative user may indicate a permission or role issue with current users. If unexpected, the resource may not properly be configured and could introduce security vulnerabilities.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Valid clusters may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Cluster creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/redshift/latest/APIReference/API_CreateCluster.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:redshift.amazonaws.com and event.action:CreateCluster and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Redshift Cluster Creation v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an Amazon Redshift cluster. Unexpected creation of this cluster by a non-administrative user may indicate a permission or role issue with current users. If unexpected, the resource may not properly be configured and could introduce security vulnerabilities.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Valid clusters may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Cluster creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/redshift/latest/APIReference/API_CreateCluster.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:redshift.amazonaws.com and event.action:CreateCluster and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"015cca13-8832-49ac-a01b-a396114809f6","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/027ff9ea-85e7-42e3-99d2-bbb7069e02eb.json b/fleet-packages/detection-rules-composite/kibana/security_rule/027ff9ea-85e7-42e3-99d2-bbb7069e02eb.json new file mode 100644 index 0000000000000..84c3ae304cec7 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/027ff9ea-85e7-42e3-99d2-bbb7069e02eb.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"027ff9ea-85e7-42e3-99d2-bbb7069e02eb","versions":[{"name":"Potential Cookies Theft via Browser Debugging v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a Chromium based browser with the debugging process argument, which may indicate an attempt to steal authentication cookies. An adversary may steal web application or service session cookies and use them to gain access web applications or Internet services as an authenticated user without needing credentials.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Developers performing browsers plugin or extension debugging."],"from":"now-9m","max_signals":33,"references":["https://github.com/defaultnamehere/cookie_crimes","https://embracethered.com/blog/posts/2020/cookie-crimes-on-mirosoft-edge/","https://github.com/rapid7/metasploit-framework/blob/master/documentation/modules/post/multi/gather/chrome_cookies.md","https://posts.specterops.io/hands-in-the-cookie-jar-dumping-cookies-with-chromiums-remote-debugger-port-34c4f468844e"],"tags":["Elastic","Host","Linux","Windows","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1539","name":"Steal Web Session Cookie","reference":"https://attack.mitre.org/techniques/T1539/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\", \"info\") and\n process.name in (\n \"Microsoft Edge\",\n \"chrome.exe\",\n \"Google Chrome\",\n \"google-chrome-stable\",\n \"google-chrome-beta\",\n \"google-chrome\",\n \"msedge.exe\") and\n process.args : (\"--remote-debugging-port=*\",\n \"--remote-debugging-targets=*\",\n \"--remote-debugging-pipe=*\") and\n process.args : \"--user-data-dir=*\" and not process.args:\"--remote-debugging-port=0\"\n","type":"eql","index":["auditbeat-*","winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Cookies Theft via Browser Debugging v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a Chromium based browser with the debugging process argument, which may indicate an attempt to steal authentication cookies. An adversary may steal web application or service session cookies and use them to gain access web applications or Internet services as an authenticated user without needing credentials.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Developers performing browsers plugin or extension debugging."],"from":"now-9m","max_signals":33,"references":["https://github.com/defaultnamehere/cookie_crimes","https://embracethered.com/blog/posts/2020/cookie-crimes-on-mirosoft-edge/","https://github.com/rapid7/metasploit-framework/blob/master/documentation/modules/post/multi/gather/chrome_cookies.md","https://posts.specterops.io/hands-in-the-cookie-jar-dumping-cookies-with-chromiums-remote-debugger-port-34c4f468844e"],"tags":["Elastic","Host","Linux","Windows","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1539","name":"Steal Web Session Cookie","reference":"https://attack.mitre.org/techniques/T1539/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\", \"info\") and\n process.name in (\n \"Microsoft Edge\",\n \"chrome.exe\",\n \"Google Chrome\",\n \"google-chrome-stable\",\n \"google-chrome-beta\",\n \"google-chrome\",\n \"msedge.exe\") and\n process.args : (\"--remote-debugging-port=*\",\n \"--remote-debugging-targets=*\",\n \"--remote-debugging-pipe=*\") and\n process.args : \"--user-data-dir=*\" and not process.args:\"--remote-debugging-port=0\"\n","type":"eql","index":["auditbeat-*","winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Cookies Theft via Browser Debugging v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a Chromium based browser with the debugging process argument, which may indicate an attempt to steal authentication cookies. An adversary may steal web application or service session cookies and use them to gain access web applications or Internet services as an authenticated user without needing credentials.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Developers performing browsers plugin or extension debugging."],"from":"now-9m","max_signals":33,"references":["https://github.com/defaultnamehere/cookie_crimes","https://embracethered.com/blog/posts/2020/cookie-crimes-on-mirosoft-edge/","https://github.com/rapid7/metasploit-framework/blob/master/documentation/modules/post/multi/gather/chrome_cookies.md","https://posts.specterops.io/hands-in-the-cookie-jar-dumping-cookies-with-chromiums-remote-debugger-port-34c4f468844e"],"tags":["Elastic","Host","Linux","Windows","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1539","name":"Steal Web Session Cookie","reference":"https://attack.mitre.org/techniques/T1539/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\", \"info\") and\n process.name in (\n \"Microsoft Edge\",\n \"chrome.exe\",\n \"Google Chrome\",\n \"google-chrome-stable\",\n \"google-chrome-beta\",\n \"google-chrome\",\n \"msedge.exe\") and\n process.args : (\"--remote-debugging-port=*\",\n \"--remote-debugging-targets=*\",\n \"--remote-debugging-pipe=*\") and\n process.args : \"--user-data-dir=*\" and not process.args:\"--remote-debugging-port=0\"\n","type":"eql","index":["auditbeat-*","winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"027ff9ea-85e7-42e3-99d2-bbb7069e02eb","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/02a23ee7-c8f8-4701-b99d-e9038ce313cb.json b/fleet-packages/detection-rules-composite/kibana/security_rule/02a23ee7-c8f8-4701-b99d-e9038ce313cb.json new file mode 100644 index 0000000000000..20a5d61bd1fca --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/02a23ee7-c8f8-4701-b99d-e9038ce313cb.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"02a23ee7-c8f8-4701-b99d-e9038ce313cb","versions":[{"name":"Process Created with an Elevated Token v1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a process running as SYSTEM and impersonating a Windows core binary privileges. Adversaries may create a new process with a different token to escalate privileges and bypass access controls.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://lengjibo.github.io/token/","https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-createprocesswithtokenw"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/","subtechnique":[{"id":"T1134.002","name":"Create Process with Token","reference":"https://attack.mitre.org/techniques/T1134/002/"}]}]}],"language":"eql","query":"/* This rule is only compatible with Elastic Endpoint 8.4+ */\n\nprocess where event.action == \"start\" and\n\n /* CreateProcessWithToken and effective parent is a privileged MS native binary used as a target for token theft */\n user.id : \"S-1-5-18\" and\n\n /* Token Theft target process usually running as service are located in one of the following paths */\n process.Ext.effective_parent.executable :\n (\"?:\\\\Windows\\\\*.exe\",\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\ProgramData\\\\*\") and\n\n not (process.Ext.effective_parent.executable : \"?:\\\\Windows\\\\System32\\\\Utilman.exe\" and\n process.parent.executable : \"?:\\\\Windows\\\\System32\\\\Utilman.exe\" and process.parent.args : \"/debug\") and\n\n not process.executable : (\"?:\\\\Windows\\\\System32\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerFaultSecure.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\WerFaultSecure.exe\",\n \"?:\\\\windows\\\\system32\\\\WerMgr.exe\",\n \"?:\\\\Windows\\\\SoftwareDistribution\\\\Download\\\\Install\\\\securityhealthsetup.exe\") and\n\n not process.parent.executable : (\"?:\\\\Windows\\\\System32\\\\AtBroker.exe\", \"?:\\\\Windows\\\\system32\\\\svchost.exe\", \"?:\\\\Program Files (x86)\\\\*.exe\", \"?:\\\\Program Files\\\\*.exe\", \"?:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"C:\\\\Windows\\\\System32\\\\DriverStore\\\\*\") and\n\n\n not (process.code_signature.trusted == true and\n process.code_signature.subject_name in (\"philandro Software GmbH\", \"Freedom Scientific Inc.\", \"TeamViewer Germany GmbH\", \"Projector.is, Inc.\", \"TeamViewer GmbH\", \"Cisco WebEx LLC\", \"Dell Inc\"))\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":false,"name":"process.Ext.effective_parent.executable","type":"unknown"},{"ecs":true,"name":"process.code_signature.subject_name","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"Process Created with an Elevated Token v1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a process running as SYSTEM and impersonating a Windows core binary privileges. Adversaries may create a new process with a different token to escalate privileges and bypass access controls.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://lengjibo.github.io/token/","https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-createprocesswithtokenw"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/","subtechnique":[{"id":"T1134.002","name":"Create Process with Token","reference":"https://attack.mitre.org/techniques/T1134/002/"}]}]}],"language":"eql","query":"/* This rule is only compatible with Elastic Endpoint 8.4+ */\n\nprocess where event.action == \"start\" and\n\n /* CreateProcessWithToken and effective parent is a privileged MS native binary used as a target for token theft */\n user.id : \"S-1-5-18\" and\n\n /* Token Theft target process usually running as service are located in one of the following paths */\n process.Ext.effective_parent.executable :\n (\"?:\\\\Windows\\\\*.exe\",\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\ProgramData\\\\*\") and\n\n not (process.Ext.effective_parent.executable : \"?:\\\\Windows\\\\System32\\\\Utilman.exe\" and\n process.parent.executable : \"?:\\\\Windows\\\\System32\\\\Utilman.exe\" and process.parent.args : \"/debug\") and\n\n not process.executable : (\"?:\\\\Windows\\\\System32\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerFaultSecure.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\WerFaultSecure.exe\",\n \"?:\\\\windows\\\\system32\\\\WerMgr.exe\",\n \"?:\\\\Windows\\\\SoftwareDistribution\\\\Download\\\\Install\\\\securityhealthsetup.exe\") and\n\n not process.parent.executable : (\"?:\\\\Windows\\\\System32\\\\AtBroker.exe\", \"?:\\\\Windows\\\\system32\\\\svchost.exe\", \"?:\\\\Program Files (x86)\\\\*.exe\", \"?:\\\\Program Files\\\\*.exe\", \"?:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"C:\\\\Windows\\\\System32\\\\DriverStore\\\\*\") and\n\n\n not (process.code_signature.trusted == true and\n process.code_signature.subject_name in (\"philandro Software GmbH\", \"Freedom Scientific Inc.\", \"TeamViewer Germany GmbH\", \"Projector.is, Inc.\", \"TeamViewer GmbH\", \"Cisco WebEx LLC\", \"Dell Inc\"))\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":false,"name":"process.Ext.effective_parent.executable","type":"unknown"},{"ecs":true,"name":"process.code_signature.subject_name","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"Process Created with an Elevated Token v1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a process running as SYSTEM and impersonating a Windows core binary privileges. Adversaries may create a new process with a different token to escalate privileges and bypass access controls.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://lengjibo.github.io/token/","https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-createprocesswithtokenw"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/","subtechnique":[{"id":"T1134.002","name":"Create Process with Token","reference":"https://attack.mitre.org/techniques/T1134/002/"}]}]}],"language":"eql","query":"/* This rule is only compatible with Elastic Endpoint 8.4+ */\n\nprocess where event.action == \"start\" and\n\n /* CreateProcessWithToken and effective parent is a privileged MS native binary used as a target for token theft */\n user.id : \"S-1-5-18\" and\n\n /* Token Theft target process usually running as service are located in one of the following paths */\n process.Ext.effective_parent.executable :\n (\"?:\\\\Windows\\\\*.exe\",\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\ProgramData\\\\*\") and\n\n not (process.Ext.effective_parent.executable : \"?:\\\\Windows\\\\System32\\\\Utilman.exe\" and\n process.parent.executable : \"?:\\\\Windows\\\\System32\\\\Utilman.exe\" and process.parent.args : \"/debug\") and\n\n not process.executable : (\"?:\\\\Windows\\\\System32\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerFaultSecure.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\WerFaultSecure.exe\",\n \"?:\\\\windows\\\\system32\\\\WerMgr.exe\",\n \"?:\\\\Windows\\\\SoftwareDistribution\\\\Download\\\\Install\\\\securityhealthsetup.exe\") and\n\n not process.parent.executable : (\"?:\\\\Windows\\\\System32\\\\AtBroker.exe\", \"?:\\\\Windows\\\\system32\\\\svchost.exe\", \"?:\\\\Program Files (x86)\\\\*.exe\", \"?:\\\\Program Files\\\\*.exe\", \"?:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"C:\\\\Windows\\\\System32\\\\DriverStore\\\\*\") and\n\n\n not (process.code_signature.trusted == true and\n process.code_signature.subject_name in (\"philandro Software GmbH\", \"Freedom Scientific Inc.\", \"TeamViewer Germany GmbH\", \"Projector.is, Inc.\", \"TeamViewer GmbH\", \"Cisco WebEx LLC\", \"Dell Inc\"))\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":false,"name":"process.Ext.effective_parent.executable","type":"unknown"},{"ecs":true,"name":"process.code_signature.subject_name","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]}]},"id":"02a23ee7-c8f8-4701-b99d-e9038ce313cb","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/02a4576a-7480-4284-9327-548a806b5e48.json b/fleet-packages/detection-rules-composite/kibana/security_rule/02a4576a-7480-4284-9327-548a806b5e48.json new file mode 100644 index 0000000000000..39f863d822fee --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/02a4576a-7480-4284-9327-548a806b5e48.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"02a4576a-7480-4284-9327-548a806b5e48","versions":[{"name":"Potential Credential Access via DuplicateHandle in LSASS v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious access to an LSASS handle via DuplicateHandle from an unknown call trace module. This may indicate an attempt to bypass the NtOpenProcess API to evade detection and dump LSASS memory for credential access.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/CCob/MirrorDump"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"process where event.code == \"10\" and\n\n /* LSASS requesting DuplicateHandle access right to another process */\n process.name : \"lsass.exe\" and winlog.event_data.GrantedAccess == \"0x40\" and\n\n /* call is coming from an unknown executable region */\n winlog.event_data.CallTrace : \"*UNKNOWN*\"\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallTrace","type":"unknown"},{"ecs":false,"name":"winlog.event_data.GrantedAccess","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Credential Access via DuplicateHandle in LSASS v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious access to an LSASS handle via DuplicateHandle from an unknown call trace module. This may indicate an attempt to bypass the NtOpenProcess API to evade detection and dump LSASS memory for credential access.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/CCob/MirrorDump"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"process where event.code == \"10\" and\n\n /* LSASS requesting DuplicateHandle access right to another process */\n process.name : \"lsass.exe\" and winlog.event_data.GrantedAccess == \"0x40\" and\n\n /* call is coming from an unknown executable region */\n winlog.event_data.CallTrace : \"*UNKNOWN*\"\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallTrace","type":"unknown"},{"ecs":false,"name":"winlog.event_data.GrantedAccess","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Credential Access via DuplicateHandle in LSASS v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious access to an LSASS handle via DuplicateHandle from an unknown call trace module. This may indicate an attempt to bypass the NtOpenProcess API to evade detection and dump LSASS memory for credential access.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/CCob/MirrorDump"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"process where event.code == \"10\" and\n\n /* LSASS requesting DuplicateHandle access right to another process */\n process.name : \"lsass.exe\" and winlog.event_data.GrantedAccess == \"0x40\" and\n\n /* call is coming from an unknown executable region */\n winlog.event_data.CallTrace : \"*UNKNOWN*\"\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallTrace","type":"unknown"},{"ecs":false,"name":"winlog.event_data.GrantedAccess","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"02a4576a-7480-4284-9327-548a806b5e48","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/02ea4563-ec10-4974-b7de-12e65aa4f9b3.json b/fleet-packages/detection-rules-composite/kibana/security_rule/02ea4563-ec10-4974-b7de-12e65aa4f9b3.json new file mode 100644 index 0000000000000..58806f7757ad7 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/02ea4563-ec10-4974-b7de-12e65aa4f9b3.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"02ea4563-ec10-4974-b7de-12e65aa4f9b3","versions":[{"name":"Dumping Account Hashes via Built-In Commands v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of macOS built-in commands used to dump user account hashes. Adversaries may attempt to dump credentials to obtain account login information in the form of a hash. These hashes can be cracked or leveraged for lateral movement.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://apple.stackexchange.com/questions/186893/os-x-10-9-where-are-password-hashes-stored","https://www.unix.com/man-page/osx/8/mkpassdb/"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and\n process.name:(defaults or mkpassdb) and process.args:(ShadowHashData or \"-dump\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Dumping Account Hashes via Built-In Commands v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of macOS built-in commands used to dump user account hashes. Adversaries may attempt to dump credentials to obtain account login information in the form of a hash. These hashes can be cracked or leveraged for lateral movement.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://apple.stackexchange.com/questions/186893/os-x-10-9-where-are-password-hashes-stored","https://www.unix.com/man-page/osx/8/mkpassdb/"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and\n process.name:(defaults or mkpassdb) and process.args:(ShadowHashData or \"-dump\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Dumping Account Hashes via Built-In Commands v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of macOS built-in commands used to dump user account hashes. Adversaries may attempt to dump credentials to obtain account login information in the form of a hash. These hashes can be cracked or leveraged for lateral movement.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://apple.stackexchange.com/questions/186893/os-x-10-9-where-are-password-hashes-stored","https://www.unix.com/man-page/osx/8/mkpassdb/"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and\n process.name:(defaults or mkpassdb) and process.args:(ShadowHashData or \"-dump\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"02ea4563-ec10-4974-b7de-12e65aa4f9b3","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/03024bd9-d23f-4ec1-8674-3cf1a21e130b.json b/fleet-packages/detection-rules-composite/kibana/security_rule/03024bd9-d23f-4ec1-8674-3cf1a21e130b.json new file mode 100644 index 0000000000000..de51e8d05ff36 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/03024bd9-d23f-4ec1-8674-3cf1a21e130b.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"03024bd9-d23f-4ec1-8674-3cf1a21e130b","versions":[{"name":"Microsoft 365 Exchange Safe Attachment Rule Disabled v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a safe attachment rule is disabled in Microsoft 365. Safe attachment rules can extend malware protections to include routing all messages and attachments without a known malware signature to a special hypervisor environment. An adversary or insider threat may disable a safe attachment rule to exfiltrate data or evade defenses.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A safe attachment rule may be disabled by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/disable-safeattachmentrule?view=exchange-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Disable-SafeAttachmentRule\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Exchange Safe Attachment Rule Disabled v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a safe attachment rule is disabled in Microsoft 365. Safe attachment rules can extend malware protections to include routing all messages and attachments without a known malware signature to a special hypervisor environment. An adversary or insider threat may disable a safe attachment rule to exfiltrate data or evade defenses.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A safe attachment rule may be disabled by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/disable-safeattachmentrule?view=exchange-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Disable-SafeAttachmentRule\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Exchange Safe Attachment Rule Disabled v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a safe attachment rule is disabled in Microsoft 365. Safe attachment rules can extend malware protections to include routing all messages and attachments without a known malware signature to a special hypervisor environment. An adversary or insider threat may disable a safe attachment rule to exfiltrate data or evade defenses.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A safe attachment rule may be disabled by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/disable-safeattachmentrule?view=exchange-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Disable-SafeAttachmentRule\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"03024bd9-d23f-4ec1-8674-3cf1a21e130b","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/035889c4-2686-4583-a7df-67f89c292f2c.json b/fleet-packages/detection-rules-composite/kibana/security_rule/035889c4-2686-4583-a7df-67f89c292f2c.json new file mode 100644 index 0000000000000..62b5325351798 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/035889c4-2686-4583-a7df-67f89c292f2c.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"035889c4-2686-4583-a7df-67f89c292f2c","versions":[{"name":"High Number of Process and/or Service Terminations v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule identifies a high number (10) of process terminations (stop, delete, or suspend) from the same host within a short time period.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating High Number of Process and/or Service Terminations\n\nAttackers can stop services and kill processes for a variety of purposes. For example, they can stop services associated\nwith business applications and databases to release the lock on files used by these applications so they may be encrypted,\nor stop security and backup solutions, etc.\n\nThis rule identifies a high number (10) of service and/or process terminations (stop, delete, or suspend) from the same\nhost within a short time period.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check if any files on the host machine have been encrypted.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further destructive behavior, which is commonly associated with this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system or restore it to the operational state.\n- If any other destructive action was identified on the host, it is recommended to prioritize the investigation and look\nfor ransomware preparation and execution activities.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/security-labs/luna-ransomware-attack-pattern"],"tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"query":"event.category:process and event.type:start and process.name:(net.exe or sc.exe or taskkill.exe) and\n process.args:(stop or pause or delete or \"/PID\" or \"/IM\" or \"/T\" or \"/F\" or \"/t\" or \"/f\" or \"/im\" or \"/pid\")\n","threshold":{"field":["host.id"],"value":10},"type":"threshold","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"High Number of Process and/or Service Terminations v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule identifies a high number (10) of process terminations (stop, delete, or suspend) from the same host within a short time period.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating High Number of Process and/or Service Terminations\n\nAttackers can stop services and kill processes for a variety of purposes. For example, they can stop services associated\nwith business applications and databases to release the lock on files used by these applications so they may be encrypted,\nor stop security and backup solutions, etc.\n\nThis rule identifies a high number (10) of service and/or process terminations (stop, delete, or suspend) from the same\nhost within a short time period.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check if any files on the host machine have been encrypted.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further destructive behavior, which is commonly associated with this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system or restore it to the operational state.\n- If any other destructive action was identified on the host, it is recommended to prioritize the investigation and look\nfor ransomware preparation and execution activities.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/security-labs/luna-ransomware-attack-pattern"],"tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"query":"event.category:process and event.type:start and process.name:(net.exe or sc.exe or taskkill.exe) and\n process.args:(stop or pause or delete or \"/PID\" or \"/IM\" or \"/T\" or \"/F\" or \"/t\" or \"/f\" or \"/im\" or \"/pid\")\n","threshold":{"field":["host.id"],"value":10},"type":"threshold","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"High Number of Process and/or Service Terminations v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule identifies a high number (10) of process terminations (stop, delete, or suspend) from the same host within a short time period.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating High Number of Process and/or Service Terminations\n\nAttackers can stop services and kill processes for a variety of purposes. For example, they can stop services associated\nwith business applications and databases to release the lock on files used by these applications so they may be encrypted,\nor stop security and backup solutions, etc.\n\nThis rule identifies a high number (10) of service and/or process terminations (stop, delete, or suspend) from the same\nhost within a short time period.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check if any files on the host machine have been encrypted.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further destructive behavior, which is commonly associated with this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system or restore it to the operational state.\n- If any other destructive action was identified on the host, it is recommended to prioritize the investigation and look\nfor ransomware preparation and execution activities.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/security-labs/luna-ransomware-attack-pattern"],"tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"query":"event.category:process and event.type:start and process.name:(net.exe or sc.exe or taskkill.exe) and\n process.args:(stop or pause or delete or \"/PID\" or \"/IM\" or \"/T\" or \"/F\" or \"/t\" or \"/f\" or \"/im\" or \"/pid\")\n","threshold":{"field":["host.id"],"value":10},"type":"threshold","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"035889c4-2686-4583-a7df-67f89c292f2c","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/0415f22a-2336-45fa-ba07-618a5942e22c.json b/fleet-packages/detection-rules-composite/kibana/security_rule/0415f22a-2336-45fa-ba07-618a5942e22c.json new file mode 100644 index 0000000000000..de33ebc20454d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/0415f22a-2336-45fa-ba07-618a5942e22c.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"0415f22a-2336-45fa-ba07-618a5942e22c","versions":[{"name":"Modification of OpenSSH Binaries v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may modify SSH related binaries for persistence or credential access by patching sensitive functions to enable unauthorized access or by logging SSH credentials for exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted OpenSSH executable updates. It's recommended to verify the integrity of OpenSSH binary changes."],"from":"now-9m","references":["https://blog.angelalonso.es/2016/09/anatomy-of-real-linux-intrusion-part-ii.html"],"tags":["Elastic","Host","Linux","Threat Detection","Credential Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and event.type:change and\n process.name:* and\n (file.path:(/usr/sbin/sshd or /usr/bin/ssh or /usr/bin/sftp or /usr/bin/scp) or file.name:libkeyutils.so) and\n not process.name:(\"dpkg\" or \"yum\" or \"dnf\" or \"dnf-automatic\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Modification of OpenSSH Binaries v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may modify SSH related binaries for persistence or credential access by patching sensitive functions to enable unauthorized access or by logging SSH credentials for exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted OpenSSH executable updates. It's recommended to verify the integrity of OpenSSH binary changes."],"from":"now-9m","references":["https://blog.angelalonso.es/2016/09/anatomy-of-real-linux-intrusion-part-ii.html"],"tags":["Elastic","Host","Linux","Threat Detection","Credential Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and event.type:change and\n process.name:* and\n (file.path:(/usr/sbin/sshd or /usr/bin/ssh or /usr/bin/sftp or /usr/bin/scp) or file.name:libkeyutils.so) and\n not process.name:(\"dpkg\" or \"yum\" or \"dnf\" or \"dnf-automatic\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Modification of OpenSSH Binaries v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may modify SSH related binaries for persistence or credential access by patching sensitive functions to enable unauthorized access or by logging SSH credentials for exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted OpenSSH executable updates. It's recommended to verify the integrity of OpenSSH binary changes."],"from":"now-9m","references":["https://blog.angelalonso.es/2016/09/anatomy-of-real-linux-intrusion-part-ii.html"],"tags":["Elastic","Host","Linux","Threat Detection","Credential Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and event.type:change and\n process.name:* and\n (file.path:(/usr/sbin/sshd or /usr/bin/ssh or /usr/bin/sftp or /usr/bin/scp) or file.name:libkeyutils.so) and\n not process.name:(\"dpkg\" or \"yum\" or \"dnf\" or \"dnf-automatic\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"0415f22a-2336-45fa-ba07-618a5942e22c","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/041d4d41-9589-43e2-ba13-5680af75ebc2.json b/fleet-packages/detection-rules-composite/kibana/security_rule/041d4d41-9589-43e2-ba13-5680af75ebc2.json new file mode 100644 index 0000000000000..1ca79626a6463 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/041d4d41-9589-43e2-ba13-5680af75ebc2.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"041d4d41-9589-43e2-ba13-5680af75ebc2","versions":[{"name":"Potential DNS Tunneling via Iodine v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Iodine is a tool for tunneling Internet protocol version 4 (IPV4) traffic over the DNS protocol to circumvent firewalls, network security groups, and network access lists while evading detection.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Normal use of Iodine is uncommon apart from security testing and research. Use by non-security engineers is very uncommon."],"from":"now-9m","references":["https://code.kryo.se/iodine/"],"tags":["Elastic","Host","Linux","Threat Detection","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1572","name":"Protocol Tunneling","reference":"https://attack.mitre.org/techniques/T1572/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:(iodine or iodined)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Potential DNS Tunneling via Iodine v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Iodine is a tool for tunneling Internet protocol version 4 (IPV4) traffic over the DNS protocol to circumvent firewalls, network security groups, and network access lists while evading detection.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Normal use of Iodine is uncommon apart from security testing and research. Use by non-security engineers is very uncommon."],"from":"now-9m","references":["https://code.kryo.se/iodine/"],"tags":["Elastic","Host","Linux","Threat Detection","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1572","name":"Protocol Tunneling","reference":"https://attack.mitre.org/techniques/T1572/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:(iodine or iodined)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Potential DNS Tunneling via Iodine v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Iodine is a tool for tunneling Internet protocol version 4 (IPV4) traffic over the DNS protocol to circumvent firewalls, network security groups, and network access lists while evading detection.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Normal use of Iodine is uncommon apart from security testing and research. Use by non-security engineers is very uncommon."],"from":"now-9m","references":["https://code.kryo.se/iodine/"],"tags":["Elastic","Host","Linux","Threat Detection","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1572","name":"Protocol Tunneling","reference":"https://attack.mitre.org/techniques/T1572/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:(iodine or iodined)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"041d4d41-9589-43e2-ba13-5680af75ebc2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/04c5a96f-19c5-44fd-9571-a0b033f9086f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/04c5a96f-19c5-44fd-9571-a0b033f9086f.json new file mode 100644 index 0000000000000..073bbba31b008 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/04c5a96f-19c5-44fd-9571-a0b033f9086f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"04c5a96f-19c5-44fd-9571-a0b033f9086f","versions":[{"name":"Azure AD Global Administrator Role Assigned v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"In Azure Active Directory (Azure AD), permissions to manage resources are assigned using roles. The Global Administrator is a role that enables users to have access to all administrative features in Azure AD and services that use Azure AD identities like the Microsoft 365 Defender portal, the Microsoft 365 compliance center, Exchange, SharePoint Online, and Skype for Business Online. Attackers can add users as Global Administrators to maintain access and manage all subscriptions and their settings and resources.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/roles/permissions-reference#global-administrator"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.003","name":"Additional Cloud Roles","reference":"https://attack.mitre.org/techniques/T1098/003/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.properties.category:RoleManagement and\nazure.auditlogs.operation_name:\"Add member to role\" and\nazure.auditlogs.properties.target_resources.0.modified_properties.1.new_value:\"\\\"Global Administrator\\\"\"\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.properties.category","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.properties.target_resources.0.modified_properties.1.new_value","type":"unknown"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure AD Global Administrator Role Assigned v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"In Azure Active Directory (Azure AD), permissions to manage resources are assigned using roles. The Global Administrator is a role that enables users to have access to all administrative features in Azure AD and services that use Azure AD identities like the Microsoft 365 Defender portal, the Microsoft 365 compliance center, Exchange, SharePoint Online, and Skype for Business Online. Attackers can add users as Global Administrators to maintain access and manage all subscriptions and their settings and resources.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/roles/permissions-reference#global-administrator"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.003","name":"Additional Cloud Roles","reference":"https://attack.mitre.org/techniques/T1098/003/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.properties.category:RoleManagement and\nazure.auditlogs.operation_name:\"Add member to role\" and\nazure.auditlogs.properties.target_resources.0.modified_properties.1.new_value:\"\\\"Global Administrator\\\"\"\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.properties.category","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.properties.target_resources.0.modified_properties.1.new_value","type":"unknown"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure AD Global Administrator Role Assigned v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"In Azure Active Directory (Azure AD), permissions to manage resources are assigned using roles. The Global Administrator is a role that enables users to have access to all administrative features in Azure AD and services that use Azure AD identities like the Microsoft 365 Defender portal, the Microsoft 365 compliance center, Exchange, SharePoint Online, and Skype for Business Online. Attackers can add users as Global Administrators to maintain access and manage all subscriptions and their settings and resources.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/roles/permissions-reference#global-administrator"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.003","name":"Additional Cloud Roles","reference":"https://attack.mitre.org/techniques/T1098/003/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.properties.category:RoleManagement and\nazure.auditlogs.operation_name:\"Add member to role\" and\nazure.auditlogs.properties.target_resources.0.modified_properties.1.new_value:\"\\\"Global Administrator\\\"\"\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.properties.category","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.properties.target_resources.0.modified_properties.1.new_value","type":"unknown"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"04c5a96f-19c5-44fd-9571-a0b033f9086f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/053a0387-f3b5-4ba5-8245-8002cca2bd08.json b/fleet-packages/detection-rules-composite/kibana/security_rule/053a0387-f3b5-4ba5-8245-8002cca2bd08.json new file mode 100644 index 0000000000000..8951a19af0207 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/053a0387-f3b5-4ba5-8245-8002cca2bd08.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"053a0387-f3b5-4ba5-8245-8002cca2bd08","versions":[{"name":"Potential DLL Side-Loading via Microsoft Antimalware Service Executable v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a Windows trusted program that is known to be vulnerable to DLL Search Order Hijacking starting after being renamed or from a non-standard path. This is uncommon behavior and may indicate an attempt to evade defenses via side-loading a malicious DLL within the memory space of one of those processes.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Dennis Perto"],"false_positives":["Microsoft Antimalware Service Executable installed on non default installation path."],"from":"now-9m","references":["https://news.sophos.com/en-us/2021/07/04/independence-day-revil-uses-supply-chain-exploit-to-attack-hundreds-of-businesses/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.002","name":"DLL Side-Loading","reference":"https://attack.mitre.org/techniques/T1574/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.pe.original_file_name == \"MsMpEng.exe\" and not process.name : \"MsMpEng.exe\") or\n (process.name : \"MsMpEng.exe\" and not\n process.executable : (\"?:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\*.exe\",\n \"?:\\\\Program Files\\\\Windows Defender\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\Windows Defender\\\\*.exe\",\n \"?:\\\\Program Files\\\\Microsoft Security Client\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\Microsoft Security Client\\\\*.exe\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential DLL Side-Loading via Microsoft Antimalware Service Executable v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a Windows trusted program that is known to be vulnerable to DLL Search Order Hijacking starting after being renamed or from a non-standard path. This is uncommon behavior and may indicate an attempt to evade defenses via side-loading a malicious DLL within the memory space of one of those processes.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Dennis Perto"],"false_positives":["Microsoft Antimalware Service Executable installed on non default installation path."],"from":"now-9m","references":["https://news.sophos.com/en-us/2021/07/04/independence-day-revil-uses-supply-chain-exploit-to-attack-hundreds-of-businesses/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.002","name":"DLL Side-Loading","reference":"https://attack.mitre.org/techniques/T1574/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.pe.original_file_name == \"MsMpEng.exe\" and not process.name : \"MsMpEng.exe\") or\n (process.name : \"MsMpEng.exe\" and not\n process.executable : (\"?:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\*.exe\",\n \"?:\\\\Program Files\\\\Windows Defender\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\Windows Defender\\\\*.exe\",\n \"?:\\\\Program Files\\\\Microsoft Security Client\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\Microsoft Security Client\\\\*.exe\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential DLL Side-Loading via Microsoft Antimalware Service Executable v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a Windows trusted program that is known to be vulnerable to DLL Search Order Hijacking starting after being renamed or from a non-standard path. This is uncommon behavior and may indicate an attempt to evade defenses via side-loading a malicious DLL within the memory space of one of those processes.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Dennis Perto"],"false_positives":["Microsoft Antimalware Service Executable installed on non default installation path."],"from":"now-9m","references":["https://news.sophos.com/en-us/2021/07/04/independence-day-revil-uses-supply-chain-exploit-to-attack-hundreds-of-businesses/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.002","name":"DLL Side-Loading","reference":"https://attack.mitre.org/techniques/T1574/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.pe.original_file_name == \"MsMpEng.exe\" and not process.name : \"MsMpEng.exe\") or\n (process.name : \"MsMpEng.exe\" and not\n process.executable : (\"?:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\*.exe\",\n \"?:\\\\Program Files\\\\Windows Defender\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\Windows Defender\\\\*.exe\",\n \"?:\\\\Program Files\\\\Microsoft Security Client\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\Microsoft Security Client\\\\*.exe\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"053a0387-f3b5-4ba5-8245-8002cca2bd08","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/0564fb9d-90b9-4234-a411-82a546dc1343.json b/fleet-packages/detection-rules-composite/kibana/security_rule/0564fb9d-90b9-4234-a411-82a546dc1343.json new file mode 100644 index 0000000000000..d8016bc95aab7 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/0564fb9d-90b9-4234-a411-82a546dc1343.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"0564fb9d-90b9-4234-a411-82a546dc1343","versions":[{"name":"Microsoft IIS Service Account Password Dumped v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the Internet Information Services (IIS) command-line tool, AppCmd, being used to list passwords. An attacker with IIS web server access via a web shell can decrypt and dump the IIS AppPool service account password using AppCmd.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"references":["https://blog.netspi.com/decrypting-iis-passwords-to-break-out-of-the-dmz-part-1/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"appcmd.exe\" or process.pe.original_file_name == \"appcmd.exe\") and\n process.args : \"/list\" and process.args : \"/text*password\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Microsoft IIS Service Account Password Dumped v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the Internet Information Services (IIS) command-line tool, AppCmd, being used to list passwords. An attacker with IIS web server access via a web shell can decrypt and dump the IIS AppPool service account password using AppCmd.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"references":["https://blog.netspi.com/decrypting-iis-passwords-to-break-out-of-the-dmz-part-1/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"appcmd.exe\" or process.pe.original_file_name == \"appcmd.exe\") and\n process.args : \"/list\" and process.args : \"/text*password\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Microsoft IIS Service Account Password Dumped v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the Internet Information Services (IIS) command-line tool, AppCmd, being used to list passwords. An attacker with IIS web server access via a web shell can decrypt and dump the IIS AppPool service account password using AppCmd.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"references":["https://blog.netspi.com/decrypting-iis-passwords-to-break-out-of-the-dmz-part-1/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"appcmd.exe\" or process.pe.original_file_name == \"appcmd.exe\") and\n process.args : \"/list\" and process.args : \"/text*password\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"0564fb9d-90b9-4234-a411-82a546dc1343","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/05b358de-aa6d-4f6c-89e6-78f74018b43b.json b/fleet-packages/detection-rules-composite/kibana/security_rule/05b358de-aa6d-4f6c-89e6-78f74018b43b.json new file mode 100644 index 0000000000000..736f7d9b6ddc2 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/05b358de-aa6d-4f6c-89e6-78f74018b43b.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"05b358de-aa6d-4f6c-89e6-78f74018b43b","versions":[{"name":"Conhost Spawned By Suspicious Parent Process v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when the Console Window Host (conhost.exe) process is spawned by a suspicious parent process, which could be indicative of code injection.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Conhost Spawned By Suspicious Parent Process\n\nThe Windows Console Host, or `conhost.exe`, is both the server application for all of the Windows Console APIs as well as\nthe classic Windows user interface for working with command-line applications.\n\nAttackers often rely on custom shell implementations to avoid using built-in command interpreters like `cmd.exe` and\n`PowerShell.exe` and bypass application allowlisting and security features. Attackers commonly inject these implementations into\nlegitimate system processes.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Retrieve the parent process executable and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- Suspicious Process from Conhost - 28896382-7d4f-4d50-9b72-67091901fd26\n- Suspicious PowerShell Engine ImageLoad - 852c1f19-68e8-43a6-9dce-340771fe1be3\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2017/08/monitoring-windows-console-activity-part-one.html"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"conhost.exe\" and\n process.parent.name : (\"lsass.exe\", \"services.exe\", \"smss.exe\", \"winlogon.exe\", \"explorer.exe\", \"dllhost.exe\", \"rundll32.exe\",\n \"regsvr32.exe\", \"userinit.exe\", \"wininit.exe\", \"spoolsv.exe\", \"ctfmon.exe\") and\n not (process.parent.name : \"rundll32.exe\" and\n process.parent.args : (\"?:\\\\Windows\\\\Installer\\\\MSI*.tmp,zzzzInvokeManagedCustomActionOutOfProc\",\n \"?:\\\\WINDOWS\\\\system32\\\\PcaSvc.dll,PcaPatchSdbTask\",\n \"?:\\\\WINDOWS\\\\system32\\\\davclnt.dll,DavSetCookie\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Conhost Spawned By Suspicious Parent Process v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when the Console Window Host (conhost.exe) process is spawned by a suspicious parent process, which could be indicative of code injection.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Conhost Spawned By Suspicious Parent Process\n\nThe Windows Console Host, or `conhost.exe`, is both the server application for all of the Windows Console APIs as well as\nthe classic Windows user interface for working with command-line applications.\n\nAttackers often rely on custom shell implementations to avoid using built-in command interpreters like `cmd.exe` and\n`PowerShell.exe` and bypass application allowlisting and security features. Attackers commonly inject these implementations into\nlegitimate system processes.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Retrieve the parent process executable and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- Suspicious Process from Conhost - 28896382-7d4f-4d50-9b72-67091901fd26\n- Suspicious PowerShell Engine ImageLoad - 852c1f19-68e8-43a6-9dce-340771fe1be3\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2017/08/monitoring-windows-console-activity-part-one.html"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"conhost.exe\" and\n process.parent.name : (\"lsass.exe\", \"services.exe\", \"smss.exe\", \"winlogon.exe\", \"explorer.exe\", \"dllhost.exe\", \"rundll32.exe\",\n \"regsvr32.exe\", \"userinit.exe\", \"wininit.exe\", \"spoolsv.exe\", \"ctfmon.exe\") and\n not (process.parent.name : \"rundll32.exe\" and\n process.parent.args : (\"?:\\\\Windows\\\\Installer\\\\MSI*.tmp,zzzzInvokeManagedCustomActionOutOfProc\",\n \"?:\\\\WINDOWS\\\\system32\\\\PcaSvc.dll,PcaPatchSdbTask\",\n \"?:\\\\WINDOWS\\\\system32\\\\davclnt.dll,DavSetCookie\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Conhost Spawned By Suspicious Parent Process v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when the Console Window Host (conhost.exe) process is spawned by a suspicious parent process, which could be indicative of code injection.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Conhost Spawned By Suspicious Parent Process\n\nThe Windows Console Host, or `conhost.exe`, is both the server application for all of the Windows Console APIs as well as\nthe classic Windows user interface for working with command-line applications.\n\nAttackers often rely on custom shell implementations to avoid using built-in command interpreters like `cmd.exe` and\n`PowerShell.exe` and bypass application allowlisting and security features. Attackers commonly inject these implementations into\nlegitimate system processes.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Retrieve the parent process executable and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- Suspicious Process from Conhost - 28896382-7d4f-4d50-9b72-67091901fd26\n- Suspicious PowerShell Engine ImageLoad - 852c1f19-68e8-43a6-9dce-340771fe1be3\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2017/08/monitoring-windows-console-activity-part-one.html"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"conhost.exe\" and\n process.parent.name : (\"lsass.exe\", \"services.exe\", \"smss.exe\", \"winlogon.exe\", \"explorer.exe\", \"dllhost.exe\", \"rundll32.exe\",\n \"regsvr32.exe\", \"userinit.exe\", \"wininit.exe\", \"spoolsv.exe\", \"ctfmon.exe\") and\n not (process.parent.name : \"rundll32.exe\" and\n process.parent.args : (\"?:\\\\Windows\\\\Installer\\\\MSI*.tmp,zzzzInvokeManagedCustomActionOutOfProc\",\n \"?:\\\\WINDOWS\\\\system32\\\\PcaSvc.dll,PcaPatchSdbTask\",\n \"?:\\\\WINDOWS\\\\system32\\\\davclnt.dll,DavSetCookie\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"05b358de-aa6d-4f6c-89e6-78f74018b43b","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/05e5a668-7b51-4a67-93ab-e9af405c9ef3.json b/fleet-packages/detection-rules-composite/kibana/security_rule/05e5a668-7b51-4a67-93ab-e9af405c9ef3.json new file mode 100644 index 0000000000000..7bbde4ba2aefb --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/05e5a668-7b51-4a67-93ab-e9af405c9ef3.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"05e5a668-7b51-4a67-93ab-e9af405c9ef3","versions":[{"name":"Interactive Terminal Spawned via Perl v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a terminal (tty) is spawned via Perl. Attackers may upgrade a simple reverse shell to a fully interactive tty after obtaining initial access to a host.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:perl and\n process.args:(\"exec \\\"/bin/sh\\\";\" or \"exec \\\"/bin/dash\\\";\" or \"exec \\\"/bin/bash\\\";\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Interactive Terminal Spawned via Perl v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a terminal (tty) is spawned via Perl. Attackers may upgrade a simple reverse shell to a fully interactive tty after obtaining initial access to a host.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:perl and\n process.args:(\"exec \\\"/bin/sh\\\";\" or \"exec \\\"/bin/dash\\\";\" or \"exec \\\"/bin/bash\\\";\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Interactive Terminal Spawned via Perl v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a terminal (tty) is spawned via Perl. Attackers may upgrade a simple reverse shell to a fully interactive tty after obtaining initial access to a host.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:perl and\n process.args:(\"exec \\\"/bin/sh\\\";\" or \"exec \\\"/bin/dash\\\";\" or \"exec \\\"/bin/bash\\\";\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"05e5a668-7b51-4a67-93ab-e9af405c9ef3","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/0635c542-1b96-4335-9b47-126582d2c19a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/0635c542-1b96-4335-9b47-126582d2c19a.json new file mode 100644 index 0000000000000..dd227bb5649b0 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/0635c542-1b96-4335-9b47-126582d2c19a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"0635c542-1b96-4335-9b47-126582d2c19a","versions":[{"name":"Remote System Discovery Commands v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Discovery of remote system information using built-in commands, which may be used to move laterally.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote System Discovery Commands\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `arp` or `nbstat` utilities to enumerate remote systems in the environment,\nwhich is useful for attackers to identify lateral movement targets.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1016","name":"System Network Configuration Discovery","reference":"https://attack.mitre.org/techniques/T1016/"},{"id":"T1018","name":"Remote System Discovery","reference":"https://attack.mitre.org/techniques/T1018/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n ((process.name : \"nbtstat.exe\" and process.args : (\"-n\", \"-s\")) or\n (process.name : \"arp.exe\" and process.args : \"-a\"))\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Remote System Discovery Commands v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Discovery of remote system information using built-in commands, which may be used to move laterally.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote System Discovery Commands\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `arp` or `nbstat` utilities to enumerate remote systems in the environment,\nwhich is useful for attackers to identify lateral movement targets.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1016","name":"System Network Configuration Discovery","reference":"https://attack.mitre.org/techniques/T1016/"},{"id":"T1018","name":"Remote System Discovery","reference":"https://attack.mitre.org/techniques/T1018/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n ((process.name : \"nbtstat.exe\" and process.args : (\"-n\", \"-s\")) or\n (process.name : \"arp.exe\" and process.args : \"-a\"))\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Remote System Discovery Commands v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Discovery of remote system information using built-in commands, which may be used to move laterally.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote System Discovery Commands\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `arp` or `nbstat` utilities to enumerate remote systems in the environment,\nwhich is useful for attackers to identify lateral movement targets.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1016","name":"System Network Configuration Discovery","reference":"https://attack.mitre.org/techniques/T1016/"},{"id":"T1018","name":"Remote System Discovery","reference":"https://attack.mitre.org/techniques/T1018/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n ((process.name : \"nbtstat.exe\" and process.args : (\"-n\", \"-s\")) or\n (process.name : \"arp.exe\" and process.args : \"-a\"))\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"0635c542-1b96-4335-9b47-126582d2c19a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/06dceabf-adca-48af-ac79-ffdf4c3b1e9a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/06dceabf-adca-48af-ac79-ffdf4c3b1e9a.json new file mode 100644 index 0000000000000..011407812a797 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/06dceabf-adca-48af-ac79-ffdf4c3b1e9a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"06dceabf-adca-48af-ac79-ffdf4c3b1e9a","versions":[{"name":"Potential Evasion via Filter Manager v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The Filter Manager Control Program (fltMC.exe) binary may be abused by adversaries to unload a filter driver and evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"fltMC.exe\" and process.args : \"unload\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Evasion via Filter Manager v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The Filter Manager Control Program (fltMC.exe) binary may be abused by adversaries to unload a filter driver and evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"fltMC.exe\" and process.args : \"unload\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Evasion via Filter Manager v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The Filter Manager Control Program (fltMC.exe) binary may be abused by adversaries to unload a filter driver and evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"fltMC.exe\" and process.args : \"unload\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"06dceabf-adca-48af-ac79-ffdf4c3b1e9a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/074464f9-f30d-4029-8c03-0ed237fffec7.json b/fleet-packages/detection-rules-composite/kibana/security_rule/074464f9-f30d-4029-8c03-0ed237fffec7.json new file mode 100644 index 0000000000000..18e5b3d638e1b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/074464f9-f30d-4029-8c03-0ed237fffec7.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"074464f9-f30d-4029-8c03-0ed237fffec7","versions":[{"name":"Remote Desktop Enabled in Windows Firewall by Netsh v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the network shell utility (netsh.exe) to enable inbound Remote Desktop Protocol (RDP) connections in the Windows Firewall.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote Desktop Enabled in Windows Firewall by Netsh\n\nMicrosoft Remote Desktop Protocol (RDP) is a proprietary Microsoft protocol that enables remote connections to other\ncomputers, typically over TCP port 3389.\n\nAttackers can use RDP to conduct their actions interactively. Ransomware operators frequently use RDP to access\nvictim servers, often using privileged accounts.\n\nThis rule detects the creation of a Windows Firewall inbound rule that would allow inbound RDP traffic using the\n`netsh.exe` utility.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the user to check if they are aware of the operation.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check whether it makes sense to enable RDP to this host, given its role in the environment.\n- Check if the host is directly exposed to the internet.\n- Check whether privileged accounts accessed the host shortly after the modification.\n- Review network events within a short timespan of this alert for incoming RDP connection attempts.\n\n### False positive analysis\n\n- The `netsh.exe` utility can be used legitimately. Check whether the user should be performing this kind of activity, whether the user is aware\nof it, whether RDP should be open, and whether the action exposes the environment to unnecessary risks.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If RDP is needed, make sure to secure it:\n - Allowlist RDP traffic to specific trusted hosts.\n - Restrict RDP logins to authorized non-administrator accounts, where possible.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.004","name":"Disable or Modify System Firewall","reference":"https://attack.mitre.org/techniques/T1562/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"netsh.exe\" or process.pe.original_file_name == \"netsh.exe\") and\n process.args : (\"localport=3389\", \"RemoteDesktop\", \"group=\\\"remote desktop\\\"\") and\n process.args : (\"action=allow\", \"enable=Yes\", \"enable\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Remote Desktop Enabled in Windows Firewall by Netsh v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the network shell utility (netsh.exe) to enable inbound Remote Desktop Protocol (RDP) connections in the Windows Firewall.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote Desktop Enabled in Windows Firewall by Netsh\n\nMicrosoft Remote Desktop Protocol (RDP) is a proprietary Microsoft protocol that enables remote connections to other\ncomputers, typically over TCP port 3389.\n\nAttackers can use RDP to conduct their actions interactively. Ransomware operators frequently use RDP to access\nvictim servers, often using privileged accounts.\n\nThis rule detects the creation of a Windows Firewall inbound rule that would allow inbound RDP traffic using the\n`netsh.exe` utility.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the user to check if they are aware of the operation.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check whether it makes sense to enable RDP to this host, given its role in the environment.\n- Check if the host is directly exposed to the internet.\n- Check whether privileged accounts accessed the host shortly after the modification.\n- Review network events within a short timespan of this alert for incoming RDP connection attempts.\n\n### False positive analysis\n\n- The `netsh.exe` utility can be used legitimately. Check whether the user should be performing this kind of activity, whether the user is aware\nof it, whether RDP should be open, and whether the action exposes the environment to unnecessary risks.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If RDP is needed, make sure to secure it:\n - Allowlist RDP traffic to specific trusted hosts.\n - Restrict RDP logins to authorized non-administrator accounts, where possible.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.004","name":"Disable or Modify System Firewall","reference":"https://attack.mitre.org/techniques/T1562/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"netsh.exe\" or process.pe.original_file_name == \"netsh.exe\") and\n process.args : (\"localport=3389\", \"RemoteDesktop\", \"group=\\\"remote desktop\\\"\") and\n process.args : (\"action=allow\", \"enable=Yes\", \"enable\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Remote Desktop Enabled in Windows Firewall by Netsh v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the network shell utility (netsh.exe) to enable inbound Remote Desktop Protocol (RDP) connections in the Windows Firewall.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote Desktop Enabled in Windows Firewall by Netsh\n\nMicrosoft Remote Desktop Protocol (RDP) is a proprietary Microsoft protocol that enables remote connections to other\ncomputers, typically over TCP port 3389.\n\nAttackers can use RDP to conduct their actions interactively. Ransomware operators frequently use RDP to access\nvictim servers, often using privileged accounts.\n\nThis rule detects the creation of a Windows Firewall inbound rule that would allow inbound RDP traffic using the\n`netsh.exe` utility.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the user to check if they are aware of the operation.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check whether it makes sense to enable RDP to this host, given its role in the environment.\n- Check if the host is directly exposed to the internet.\n- Check whether privileged accounts accessed the host shortly after the modification.\n- Review network events within a short timespan of this alert for incoming RDP connection attempts.\n\n### False positive analysis\n\n- The `netsh.exe` utility can be used legitimately. Check whether the user should be performing this kind of activity, whether the user is aware\nof it, whether RDP should be open, and whether the action exposes the environment to unnecessary risks.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If RDP is needed, make sure to secure it:\n - Allowlist RDP traffic to specific trusted hosts.\n - Restrict RDP logins to authorized non-administrator accounts, where possible.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.004","name":"Disable or Modify System Firewall","reference":"https://attack.mitre.org/techniques/T1562/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"netsh.exe\" or process.pe.original_file_name == \"netsh.exe\") and\n process.args : (\"localport=3389\", \"RemoteDesktop\", \"group=\\\"remote desktop\\\"\") and\n process.args : (\"action=allow\", \"enable=Yes\", \"enable\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"074464f9-f30d-4029-8c03-0ed237fffec7","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/07b1ef73-1fde-4a49-a34a-5dd40011b076.json b/fleet-packages/detection-rules-composite/kibana/security_rule/07b1ef73-1fde-4a49-a34a-5dd40011b076.json new file mode 100644 index 0000000000000..ba749190e0da4 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/07b1ef73-1fde-4a49-a34a-5dd40011b076.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"07b1ef73-1fde-4a49-a34a-5dd40011b076","versions":[{"name":"Local Account TokenFilter Policy Disabled v1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies registry modification to the LocalAccountTokenFilterPolicy policy. If this value exists (which doesn't by default) and is set to 1, then remote connections from all local members of Administrators are granted full high-integrity tokens during negotiation.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.stigviewer.com/stig/windows_server_2008_r2_member_server/2014-04-02/finding/V-36439","https://posts.specterops.io/pass-the-hash-is-dead-long-live-localaccounttokenfilterpolicy-506c25a7c167","https://www.welivesecurity.com/wp-content/uploads/2018/01/ESET_Turla_Mosquito.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Privilege Escalation","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1112","name":"Modify Registry","reference":"https://attack.mitre.org/techniques/T1112/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.003","name":"Local Accounts","reference":"https://attack.mitre.org/techniques/T1078/003/"}]}]}],"language":"eql","query":"registry where registry.path : (\n \"HKLM\\\\*\\\\LocalAccountTokenFilterPolicy\",\n \"\\\\REGISTRY\\\\MACHINE\\\\*\\\\LocalAccountTokenFilterPolicy\") and\n registry.data.strings : (\"1\", \"0x00000001\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},{"name":"Local Account TokenFilter Policy Disabled v1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies registry modification to the LocalAccountTokenFilterPolicy policy. If this value exists (which doesn't by default) and is set to 1, then remote connections from all local members of Administrators are granted full high-integrity tokens during negotiation.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.stigviewer.com/stig/windows_server_2008_r2_member_server/2014-04-02/finding/V-36439","https://posts.specterops.io/pass-the-hash-is-dead-long-live-localaccounttokenfilterpolicy-506c25a7c167","https://www.welivesecurity.com/wp-content/uploads/2018/01/ESET_Turla_Mosquito.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Privilege Escalation","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1112","name":"Modify Registry","reference":"https://attack.mitre.org/techniques/T1112/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.003","name":"Local Accounts","reference":"https://attack.mitre.org/techniques/T1078/003/"}]}]}],"language":"eql","query":"registry where registry.path : (\n \"HKLM\\\\*\\\\LocalAccountTokenFilterPolicy\",\n \"\\\\REGISTRY\\\\MACHINE\\\\*\\\\LocalAccountTokenFilterPolicy\") and\n registry.data.strings : (\"1\", \"0x00000001\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},{"name":"Local Account TokenFilter Policy Disabled v1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies registry modification to the LocalAccountTokenFilterPolicy policy. If this value exists (which doesn't by default) and is set to 1, then remote connections from all local members of Administrators are granted full high-integrity tokens during negotiation.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.stigviewer.com/stig/windows_server_2008_r2_member_server/2014-04-02/finding/V-36439","https://posts.specterops.io/pass-the-hash-is-dead-long-live-localaccounttokenfilterpolicy-506c25a7c167","https://www.welivesecurity.com/wp-content/uploads/2018/01/ESET_Turla_Mosquito.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Privilege Escalation","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1112","name":"Modify Registry","reference":"https://attack.mitre.org/techniques/T1112/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.003","name":"Local Accounts","reference":"https://attack.mitre.org/techniques/T1078/003/"}]}]}],"language":"eql","query":"registry where registry.path : (\n \"HKLM\\\\*\\\\LocalAccountTokenFilterPolicy\",\n \"\\\\REGISTRY\\\\MACHINE\\\\*\\\\LocalAccountTokenFilterPolicy\") and\n registry.data.strings : (\"1\", \"0x00000001\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]}]},"id":"07b1ef73-1fde-4a49-a34a-5dd40011b076","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/07b5f85a-240f-11ed-b3d9-f661ea17fbce.json b/fleet-packages/detection-rules-composite/kibana/security_rule/07b5f85a-240f-11ed-b3d9-f661ea17fbce.json new file mode 100644 index 0000000000000..3592c35cf1d7c --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/07b5f85a-240f-11ed-b3d9-f661ea17fbce.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"07b5f85a-240f-11ed-b3d9-f661ea17fbce","versions":[{"name":"Google Drive Ownership Transferred via Google Workspace v2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Drive and Docs is a Google Workspace service that allows users to leverage Google Drive and Google Docs. Access to files is based on inherited permissions from the child organizational unit the user belongs to which is scoped by administrators. Typically if a user is removed, their files can be transferred to another user by the administrator. This service can also be abused by adversaries to transfer files to an adversary account for potential exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrators may transfer file ownership during employee leave or absence to ensure continued operations by a new or existing employee."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/1247799?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Collection"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1074","name":"Data Staged","reference":"https://attack.mitre.org/techniques/T1074/","subtechnique":[{"id":"T1074.002","name":"Remote Data Staging","reference":"https://attack.mitre.org/techniques/T1074/002/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:\"CREATE_DATA_TRANSFER_REQUEST\"\n and event.category:\"iam\" and google_workspace.admin.application.name:Drive*\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.application.name","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Google Drive Ownership Transferred via Google Workspace v2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Drive and Docs is a Google Workspace service that allows users to leverage Google Drive and Google Docs. Access to files is based on inherited permissions from the child organizational unit the user belongs to which is scoped by administrators. Typically if a user is removed, their files can be transferred to another user by the administrator. This service can also be abused by adversaries to transfer files to an adversary account for potential exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrators may transfer file ownership during employee leave or absence to ensure continued operations by a new or existing employee."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/1247799?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Collection"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1074","name":"Data Staged","reference":"https://attack.mitre.org/techniques/T1074/","subtechnique":[{"id":"T1074.002","name":"Remote Data Staging","reference":"https://attack.mitre.org/techniques/T1074/002/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:\"CREATE_DATA_TRANSFER_REQUEST\"\n and event.category:\"iam\" and google_workspace.admin.application.name:Drive*\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.application.name","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Google Drive Ownership Transferred via Google Workspace v2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Drive and Docs is a Google Workspace service that allows users to leverage Google Drive and Google Docs. Access to files is based on inherited permissions from the child organizational unit the user belongs to which is scoped by administrators. Typically if a user is removed, their files can be transferred to another user by the administrator. This service can also be abused by adversaries to transfer files to an adversary account for potential exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrators may transfer file ownership during employee leave or absence to ensure continued operations by a new or existing employee."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/1247799?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Collection"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1074","name":"Data Staged","reference":"https://attack.mitre.org/techniques/T1074/","subtechnique":[{"id":"T1074.002","name":"Remote Data Staging","reference":"https://attack.mitre.org/techniques/T1074/002/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:\"CREATE_DATA_TRANSFER_REQUEST\"\n and event.category:\"iam\" and google_workspace.admin.application.name:Drive*\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.application.name","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"07b5f85a-240f-11ed-b3d9-f661ea17fbce","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/080bc66a-5d56-4d1f-8071-817671716db9.json b/fleet-packages/detection-rules-composite/kibana/security_rule/080bc66a-5d56-4d1f-8071-817671716db9.json new file mode 100644 index 0000000000000..2a8627d6c68d2 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/080bc66a-5d56-4d1f-8071-817671716db9.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"080bc66a-5d56-4d1f-8071-817671716db9","versions":[{"name":"Suspicious Browser Child Process v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a suspicious browser child process. Adversaries may gain access to a system through a user visiting a website over the normal course of browsing. With this technique, the user's web browser is typically targeted for exploitation.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://objective-see.com/blog/blog_0x43.html","https://fr.slideshare.net/codeblue_jp/cb19-recent-apt-attack-on-crypto-exchange-employees-by-heungsoo-kang"],"tags":["Elastic","Host","macOS","Threat Detection","Initial Access","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1203","name":"Exploitation for Client Execution","reference":"https://attack.mitre.org/techniques/T1203/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1189","name":"Drive-by Compromise","reference":"https://attack.mitre.org/techniques/T1189/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.parent.name : (\"Google Chrome\", \"Google Chrome Helper*\", \"firefox\", \"Opera\", \"Safari\", \"com.apple.WebKit.WebContent\", \"Microsoft Edge\") and\n process.name : (\"sh\", \"bash\", \"dash\", \"ksh\", \"tcsh\", \"zsh\", \"curl\", \"wget\", \"python*\", \"perl*\", \"php*\", \"osascript\", \"pwsh\") and\n process.command_line != null and\n not process.command_line : \"*/Library/Application Support/Microsoft/MAU*/Microsoft AutoUpdate.app/Contents/MacOS/msupdate*\" and\n not process.args :\n (\n \"hw.model\",\n \"IOPlatformExpertDevice\",\n \"/Volumes/Google Chrome/Google Chrome.app/Contents/Frameworks/*/Resources/install.sh\",\n \"--defaults-torrc\",\n \"*Chrome.app\",\n \"Framework.framework/Versions/*/Resources/keystone_promote_preflight.sh\",\n \"/Users/*/Library/Application Support/Google/Chrome/recovery/*/ChromeRecovery\",\n \"$DISPLAY\",\n \"*GIO_LAUNCHED_DESKTOP_FILE_PID=$$*\",\n \"/opt/homebrew/*\",\n \"/usr/local/*brew*\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},{"name":"Suspicious Browser Child Process v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a suspicious browser child process. Adversaries may gain access to a system through a user visiting a website over the normal course of browsing. With this technique, the user's web browser is typically targeted for exploitation.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://objective-see.com/blog/blog_0x43.html","https://fr.slideshare.net/codeblue_jp/cb19-recent-apt-attack-on-crypto-exchange-employees-by-heungsoo-kang"],"tags":["Elastic","Host","macOS","Threat Detection","Initial Access","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1203","name":"Exploitation for Client Execution","reference":"https://attack.mitre.org/techniques/T1203/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1189","name":"Drive-by Compromise","reference":"https://attack.mitre.org/techniques/T1189/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.parent.name : (\"Google Chrome\", \"Google Chrome Helper*\", \"firefox\", \"Opera\", \"Safari\", \"com.apple.WebKit.WebContent\", \"Microsoft Edge\") and\n process.name : (\"sh\", \"bash\", \"dash\", \"ksh\", \"tcsh\", \"zsh\", \"curl\", \"wget\", \"python*\", \"perl*\", \"php*\", \"osascript\", \"pwsh\") and\n process.command_line != null and\n not process.command_line : \"*/Library/Application Support/Microsoft/MAU*/Microsoft AutoUpdate.app/Contents/MacOS/msupdate*\" and\n not process.args :\n (\n \"hw.model\",\n \"IOPlatformExpertDevice\",\n \"/Volumes/Google Chrome/Google Chrome.app/Contents/Frameworks/*/Resources/install.sh\",\n \"--defaults-torrc\",\n \"*Chrome.app\",\n \"Framework.framework/Versions/*/Resources/keystone_promote_preflight.sh\",\n \"/Users/*/Library/Application Support/Google/Chrome/recovery/*/ChromeRecovery\",\n \"$DISPLAY\",\n \"*GIO_LAUNCHED_DESKTOP_FILE_PID=$$*\",\n \"/opt/homebrew/*\",\n \"/usr/local/*brew*\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},{"name":"Suspicious Browser Child Process v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a suspicious browser child process. Adversaries may gain access to a system through a user visiting a website over the normal course of browsing. With this technique, the user's web browser is typically targeted for exploitation.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://objective-see.com/blog/blog_0x43.html","https://fr.slideshare.net/codeblue_jp/cb19-recent-apt-attack-on-crypto-exchange-employees-by-heungsoo-kang"],"tags":["Elastic","Host","macOS","Threat Detection","Initial Access","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1203","name":"Exploitation for Client Execution","reference":"https://attack.mitre.org/techniques/T1203/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1189","name":"Drive-by Compromise","reference":"https://attack.mitre.org/techniques/T1189/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.parent.name : (\"Google Chrome\", \"Google Chrome Helper*\", \"firefox\", \"Opera\", \"Safari\", \"com.apple.WebKit.WebContent\", \"Microsoft Edge\") and\n process.name : (\"sh\", \"bash\", \"dash\", \"ksh\", \"tcsh\", \"zsh\", \"curl\", \"wget\", \"python*\", \"perl*\", \"php*\", \"osascript\", \"pwsh\") and\n process.command_line != null and\n not process.command_line : \"*/Library/Application Support/Microsoft/MAU*/Microsoft AutoUpdate.app/Contents/MacOS/msupdate*\" and\n not process.args :\n (\n \"hw.model\",\n \"IOPlatformExpertDevice\",\n \"/Volumes/Google Chrome/Google Chrome.app/Contents/Frameworks/*/Resources/install.sh\",\n \"--defaults-torrc\",\n \"*Chrome.app\",\n \"Framework.framework/Versions/*/Resources/keystone_promote_preflight.sh\",\n \"/Users/*/Library/Application Support/Google/Chrome/recovery/*/ChromeRecovery\",\n \"$DISPLAY\",\n \"*GIO_LAUNCHED_DESKTOP_FILE_PID=$$*\",\n \"/opt/homebrew/*\",\n \"/usr/local/*brew*\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]}]},"id":"080bc66a-5d56-4d1f-8071-817671716db9","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/082e3f8c-6f80-485c-91eb-5b112cb79b28.json b/fleet-packages/detection-rules-composite/kibana/security_rule/082e3f8c-6f80-485c-91eb-5b112cb79b28.json new file mode 100644 index 0000000000000..2767521a9589d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/082e3f8c-6f80-485c-91eb-5b112cb79b28.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"082e3f8c-6f80-485c-91eb-5b112cb79b28","versions":[{"name":"Launch Agent Creation or Modification and Immediate Loading v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary can establish persistence by installing a new launch agent that executes at login by using launchd or launchctl to load a plist into the appropriate directories.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Trusted applications persisting via LaunchAgent"],"from":"now-9m","references":["https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.001","name":"Launch Agent","reference":"https://attack.mitre.org/techniques/T1543/001/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n [file where event.type != \"deletion\" and\n file.path : (\"/System/Library/LaunchAgents/*\", \"/Library/LaunchAgents/*\", \"/Users/*/Library/LaunchAgents/*\")\n ]\n [process where event.type in (\"start\", \"process_started\") and process.name == \"launchctl\" and process.args == \"load\"]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Launch Agent Creation or Modification and Immediate Loading v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary can establish persistence by installing a new launch agent that executes at login by using launchd or launchctl to load a plist into the appropriate directories.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Trusted applications persisting via LaunchAgent"],"from":"now-9m","references":["https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.001","name":"Launch Agent","reference":"https://attack.mitre.org/techniques/T1543/001/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n [file where event.type != \"deletion\" and\n file.path : (\"/System/Library/LaunchAgents/*\", \"/Library/LaunchAgents/*\", \"/Users/*/Library/LaunchAgents/*\")\n ]\n [process where event.type in (\"start\", \"process_started\") and process.name == \"launchctl\" and process.args == \"load\"]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Launch Agent Creation or Modification and Immediate Loading v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary can establish persistence by installing a new launch agent that executes at login by using launchd or launchctl to load a plist into the appropriate directories.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Trusted applications persisting via LaunchAgent"],"from":"now-9m","references":["https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.001","name":"Launch Agent","reference":"https://attack.mitre.org/techniques/T1543/001/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n [file where event.type != \"deletion\" and\n file.path : (\"/System/Library/LaunchAgents/*\", \"/Library/LaunchAgents/*\", \"/Users/*/Library/LaunchAgents/*\")\n ]\n [process where event.type in (\"start\", \"process_started\") and process.name == \"launchctl\" and process.args == \"load\"]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"082e3f8c-6f80-485c-91eb-5b112cb79b28","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/083fa162-e790-4d85-9aeb-4fea04188adb.json b/fleet-packages/detection-rules-composite/kibana/security_rule/083fa162-e790-4d85-9aeb-4fea04188adb.json new file mode 100644 index 0000000000000..f9c281af0d85e --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/083fa162-e790-4d85-9aeb-4fea04188adb.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"083fa162-e790-4d85-9aeb-4fea04188adb","versions":[{"name":"Suspicious Hidden Child Process of Launchd v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a launchd child process with a hidden file. An adversary can establish persistence by installing a new logon item, launch agent, or daemon that executes upon login.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://objective-see.com/blog/blog_0x61.html","https://www.intezer.com/blog/research/operation-electrorat-attacker-creates-fake-companies-to-drain-your-crypto-wallets/","https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.001","name":"Launch Agent","reference":"https://attack.mitre.org/techniques/T1543/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.001","name":"Hidden Files and Directories","reference":"https://attack.mitre.org/techniques/T1564/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:.* and process.parent.executable:/sbin/launchd\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},{"name":"Suspicious Hidden Child Process of Launchd v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a launchd child process with a hidden file. An adversary can establish persistence by installing a new logon item, launch agent, or daemon that executes upon login.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://objective-see.com/blog/blog_0x61.html","https://www.intezer.com/blog/research/operation-electrorat-attacker-creates-fake-companies-to-drain-your-crypto-wallets/","https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.001","name":"Launch Agent","reference":"https://attack.mitre.org/techniques/T1543/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.001","name":"Hidden Files and Directories","reference":"https://attack.mitre.org/techniques/T1564/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:.* and process.parent.executable:/sbin/launchd\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},{"name":"Suspicious Hidden Child Process of Launchd v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a launchd child process with a hidden file. An adversary can establish persistence by installing a new logon item, launch agent, or daemon that executes upon login.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://objective-see.com/blog/blog_0x61.html","https://www.intezer.com/blog/research/operation-electrorat-attacker-creates-fake-companies-to-drain-your-crypto-wallets/","https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.001","name":"Launch Agent","reference":"https://attack.mitre.org/techniques/T1543/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.001","name":"Hidden Files and Directories","reference":"https://attack.mitre.org/techniques/T1564/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:.* and process.parent.executable:/sbin/launchd\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]}]},"id":"083fa162-e790-4d85-9aeb-4fea04188adb","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/092b068f-84ac-485d-8a55-7dd9e006715f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/092b068f-84ac-485d-8a55-7dd9e006715f.json new file mode 100644 index 0000000000000..2e08074c17bde --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/092b068f-84ac-485d-8a55-7dd9e006715f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"092b068f-84ac-485d-8a55-7dd9e006715f","versions":[{"name":"Creation of Hidden Launch Agent or Daemon v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a hidden launch agent or daemon. An adversary may establish persistence by installing a new launch agent or daemon which executes at login.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.001","name":"Launch Agent","reference":"https://attack.mitre.org/techniques/T1543/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.001","name":"Hidden Files and Directories","reference":"https://attack.mitre.org/techniques/T1564/001/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path :\n (\n \"/System/Library/LaunchAgents/.*.plist\",\n \"/Library/LaunchAgents/.*.plist\",\n \"/Users/*/Library/LaunchAgents/.*.plist\",\n \"/System/Library/LaunchDaemons/.*.plist\",\n \"/Library/LaunchDaemons/.*.plist\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Creation of Hidden Launch Agent or Daemon v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a hidden launch agent or daemon. An adversary may establish persistence by installing a new launch agent or daemon which executes at login.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.001","name":"Launch Agent","reference":"https://attack.mitre.org/techniques/T1543/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.001","name":"Hidden Files and Directories","reference":"https://attack.mitre.org/techniques/T1564/001/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path :\n (\n \"/System/Library/LaunchAgents/.*.plist\",\n \"/Library/LaunchAgents/.*.plist\",\n \"/Users/*/Library/LaunchAgents/.*.plist\",\n \"/System/Library/LaunchDaemons/.*.plist\",\n \"/Library/LaunchDaemons/.*.plist\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Creation of Hidden Launch Agent or Daemon v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a hidden launch agent or daemon. An adversary may establish persistence by installing a new launch agent or daemon which executes at login.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.001","name":"Launch Agent","reference":"https://attack.mitre.org/techniques/T1543/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.001","name":"Hidden Files and Directories","reference":"https://attack.mitre.org/techniques/T1564/001/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path :\n (\n \"/System/Library/LaunchAgents/.*.plist\",\n \"/Library/LaunchAgents/.*.plist\",\n \"/Users/*/Library/LaunchAgents/.*.plist\",\n \"/System/Library/LaunchDaemons/.*.plist\",\n \"/Library/LaunchDaemons/.*.plist\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"092b068f-84ac-485d-8a55-7dd9e006715f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/09443c92-46b3-45a4-8f25-383b028b258d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/09443c92-46b3-45a4-8f25-383b028b258d.json new file mode 100644 index 0000000000000..298b9c67faf0f --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/09443c92-46b3-45a4-8f25-383b028b258d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"09443c92-46b3-45a4-8f25-383b028b258d","versions":[{"name":"Process Termination followed by Deletion v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a process termination event quickly followed by the deletion of its executable file. Malware tools and other non-native files dropped or created on a system by an adversary may leave traces to indicate to what occurred. Removal of these files can occur during an intrusion, or as part of a post-intrusion process to minimize the adversary's footprint.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.004","name":"File Deletion","reference":"https://attack.mitre.org/techniques/T1070/004/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=5s\n [process where event.type == \"end\" and\n process.code_signature.trusted != true and\n not process.executable : (\"C:\\\\Windows\\\\SoftwareDistribution\\\\*.exe\", \"C:\\\\Windows\\\\WinSxS\\\\*.exe\")\n ] by process.executable\n [file where event.type == \"deletion\" and file.extension : (\"exe\", \"scr\", \"com\") and\n not process.executable :\n (\"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Windows\\\\System32\\\\drvinst.exe\") and\n not file.path : (\"?:\\\\Program Files\\\\*.exe\", \"?:\\\\Program Files (x86)\\\\*.exe\")\n ] by file.path\n","type":"eql","index":["logs-endpoint.events.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.executable","type":"keyword"}]},{"name":"Process Termination followed by Deletion v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a process termination event quickly followed by the deletion of its executable file. Malware tools and other non-native files dropped or created on a system by an adversary may leave traces to indicate to what occurred. Removal of these files can occur during an intrusion, or as part of a post-intrusion process to minimize the adversary's footprint.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.004","name":"File Deletion","reference":"https://attack.mitre.org/techniques/T1070/004/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=5s\n [process where event.type == \"end\" and\n process.code_signature.trusted != true and\n not process.executable : (\"C:\\\\Windows\\\\SoftwareDistribution\\\\*.exe\", \"C:\\\\Windows\\\\WinSxS\\\\*.exe\")\n ] by process.executable\n [file where event.type == \"deletion\" and file.extension : (\"exe\", \"scr\", \"com\") and\n not process.executable :\n (\"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Windows\\\\System32\\\\drvinst.exe\") and\n not file.path : (\"?:\\\\Program Files\\\\*.exe\", \"?:\\\\Program Files (x86)\\\\*.exe\")\n ] by file.path\n","type":"eql","index":["logs-endpoint.events.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.executable","type":"keyword"}]},{"name":"Process Termination followed by Deletion v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a process termination event quickly followed by the deletion of its executable file. Malware tools and other non-native files dropped or created on a system by an adversary may leave traces to indicate to what occurred. Removal of these files can occur during an intrusion, or as part of a post-intrusion process to minimize the adversary's footprint.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.004","name":"File Deletion","reference":"https://attack.mitre.org/techniques/T1070/004/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=5s\n [process where event.type == \"end\" and\n process.code_signature.trusted != true and\n not process.executable : (\"C:\\\\Windows\\\\SoftwareDistribution\\\\*.exe\", \"C:\\\\Windows\\\\WinSxS\\\\*.exe\")\n ] by process.executable\n [file where event.type == \"deletion\" and file.extension : (\"exe\", \"scr\", \"com\") and\n not process.executable :\n (\"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Windows\\\\System32\\\\drvinst.exe\") and\n not file.path : (\"?:\\\\Program Files\\\\*.exe\", \"?:\\\\Program Files (x86)\\\\*.exe\")\n ] by file.path\n","type":"eql","index":["logs-endpoint.events.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.executable","type":"keyword"}]}]},"id":"09443c92-46b3-45a4-8f25-383b028b258d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/09d028a5-dcde-409f-8ae0-557cef1b7082.json b/fleet-packages/detection-rules-composite/kibana/security_rule/09d028a5-dcde-409f-8ae0-557cef1b7082.json new file mode 100644 index 0000000000000..8664131fcaf43 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/09d028a5-dcde-409f-8ae0-557cef1b7082.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"09d028a5-dcde-409f-8ae0-557cef1b7082","versions":[{"name":"Azure Frontdoor Web Application Firewall (WAF) Policy Deleted v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a Frontdoor Web Application Firewall (WAF) Policy in Azure. An adversary may delete a Frontdoor Web Application Firewall (WAF) Policy in an attempt to evade defenses and/or to eliminate barriers to their objective.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Azure Front Web Application Firewall (WAF) Policy deletions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Azure Front Web Application Firewall (WAF) Policy deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#networking"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.NETWORK/FRONTDOORWEBAPPLICATIONFIREWALLPOLICIES/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Frontdoor Web Application Firewall (WAF) Policy Deleted v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a Frontdoor Web Application Firewall (WAF) Policy in Azure. An adversary may delete a Frontdoor Web Application Firewall (WAF) Policy in an attempt to evade defenses and/or to eliminate barriers to their objective.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Azure Front Web Application Firewall (WAF) Policy deletions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Azure Front Web Application Firewall (WAF) Policy deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#networking"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.NETWORK/FRONTDOORWEBAPPLICATIONFIREWALLPOLICIES/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Frontdoor Web Application Firewall (WAF) Policy Deleted v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a Frontdoor Web Application Firewall (WAF) Policy in Azure. An adversary may delete a Frontdoor Web Application Firewall (WAF) Policy in an attempt to evade defenses and/or to eliminate barriers to their objective.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Azure Front Web Application Firewall (WAF) Policy deletions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Azure Front Web Application Firewall (WAF) Policy deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#networking"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.NETWORK/FRONTDOORWEBAPPLICATIONFIREWALLPOLICIES/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"09d028a5-dcde-409f-8ae0-557cef1b7082","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/0a97b20f-4144-49ea-be32-b540ecc445de.json b/fleet-packages/detection-rules-composite/kibana/security_rule/0a97b20f-4144-49ea-be32-b540ecc445de.json new file mode 100644 index 0000000000000..9bf387bc54f14 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/0a97b20f-4144-49ea-be32-b540ecc445de.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"0a97b20f-4144-49ea-be32-b540ecc445de","versions":[{"name":"Malware - Detected - Elastic Endgame v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected Malware. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":99,"severity":"critical","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame"],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:file_classification_event or endgame.event_subtype_full:file_classification_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Malware - Detected - Elastic Endgame v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected Malware. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":99,"severity":"critical","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame"],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:file_classification_event or endgame.event_subtype_full:file_classification_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Malware - Detected - Elastic Endgame v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected Malware. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":99,"severity":"critical","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame"],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:file_classification_event or endgame.event_subtype_full:file_classification_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]}]},"id":"0a97b20f-4144-49ea-be32-b540ecc445de","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/0b29cab4-dbbd-4a3f-9e8e-1287c7c11ae5.json b/fleet-packages/detection-rules-composite/kibana/security_rule/0b29cab4-dbbd-4a3f-9e8e-1287c7c11ae5.json new file mode 100644 index 0000000000000..85c903eeb1259 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/0b29cab4-dbbd-4a3f-9e8e-1287c7c11ae5.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"0b29cab4-dbbd-4a3f-9e8e-1287c7c11ae5","versions":[{"name":"Anomalous Windows Process Creation v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual parent-child process relationships that can indicate malware execution or persistence mechanisms. Malicious scripts often call on other applications and processes as part of their exploit payload. For example, when a malicious Office document runs scripts as part of an exploit payload, Excel or Word may start a script interpreter process, which, in turn, runs a script that downloads and executes malware. Another common scenario is Outlook running an unusual process when malware is downloaded in an email. Monitoring and identifying anomalous process relationships is a method of detecting new and emerging malware that is not yet recognized by anti-virus scanners.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Users running scripts in the course of technical support operations of software upgrades could trigger this alert. A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_process_creation"],"type":"machine_learning"},{"name":"Anomalous Windows Process Creation v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual parent-child process relationships that can indicate malware execution or persistence mechanisms. Malicious scripts often call on other applications and processes as part of their exploit payload. For example, when a malicious Office document runs scripts as part of an exploit payload, Excel or Word may start a script interpreter process, which, in turn, runs a script that downloads and executes malware. Another common scenario is Outlook running an unusual process when malware is downloaded in an email. Monitoring and identifying anomalous process relationships is a method of detecting new and emerging malware that is not yet recognized by anti-virus scanners.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Users running scripts in the course of technical support operations of software upgrades could trigger this alert. A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_process_creation"],"type":"machine_learning"},{"name":"Anomalous Windows Process Creation v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual parent-child process relationships that can indicate malware execution or persistence mechanisms. Malicious scripts often call on other applications and processes as part of their exploit payload. For example, when a malicious Office document runs scripts as part of an exploit payload, Excel or Word may start a script interpreter process, which, in turn, runs a script that downloads and executes malware. Another common scenario is Outlook running an unusual process when malware is downloaded in an email. Monitoring and identifying anomalous process relationships is a method of detecting new and emerging malware that is not yet recognized by anti-virus scanners.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Users running scripts in the course of technical support operations of software upgrades could trigger this alert. A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_process_creation"],"type":"machine_learning"}]},"id":"0b29cab4-dbbd-4a3f-9e8e-1287c7c11ae5","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/0b2f3da5-b5ec-47d1-908b-6ebb74814289.json b/fleet-packages/detection-rules-composite/kibana/security_rule/0b2f3da5-b5ec-47d1-908b-6ebb74814289.json new file mode 100644 index 0000000000000..1ba56879a44e9 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/0b2f3da5-b5ec-47d1-908b-6ebb74814289.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"0b2f3da5-b5ec-47d1-908b-6ebb74814289","versions":[{"name":"User account exposed to Kerberoasting v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a user account has the servicePrincipalName attribute modified. Attackers can abuse write privileges over a user to configure Service Principle Names (SPNs) so that they can perform Kerberoasting. Administrators can also configure this for legitimate purposes, exposing the account to Kerberoasting.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating User account exposed to Kerberoasting\n\nService Principal Names (SPNs) are names by which Kerberos clients uniquely identify service instances for Kerberos target\ncomputers.\n\nBy default, only computer accounts have SPNs, which creates no significant risk, since machine accounts have a default\ndomain policy that rotates their passwords every 30 days, and the password is composed of 120 random characters, making\nthem invulnerable to Kerberoasting.\n\nA user account with an SPN assigned is considered a service account, and is accessible to the entire domain. If any\nuser in the directory requests a ticket-granting service (TGS), the domain controller will encrypt it with the secret\nkey of the account executing the service. An attacker can potentially perform a Kerberoasting attack with this\ninformation, as the human-defined password is likely to be less complex.\n\nFor scenarios where SPNs cannot be avoided on user accounts, Microsoft provides the Group Managed Service Accounts (gMSA)\nfeature, which ensures that account passwords are robust and changed regularly and automatically. More information can\nbe found [here](https://docs.microsoft.com/en-us/windows-server/security/group-managed-service-accounts/group-managed-service-accounts-overview).\n\nAttackers can also perform \"Targeted Kerberoasting\", which consists of adding fake SPNs to user accounts that they have\nwrite privileges to, making them potentially vulnerable to Kerberoasting.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate if the target account is a member of privileged groups (Domain Admins, Enterprise Admins, etc.).\n- Investigate if tickets have been requested for the target account.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- The use of user accounts as service accounts is a bad security practice and should not be allowed in the domain. The\nsecurity team should map and monitor any potential benign true positive (B-TP), especially if the account is privileged.\nDomain Administrators that define this kind of setting can put the domain at risk as user accounts don't have the same\nsecurity standards as computer accounts (which have long, complex, random passwords that change frequently), exposing\nthem to credential cracking attacks (Kerberoasting, brute force, etc.).\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services. Prioritize privileged accounts.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.thehacker.recipes/ad/movement/access-controls/targeted-kerberoasting","https://www.qomplx.com/qomplx-knowledge-kerberoasting-attacks-explained/","https://www.thehacker.recipes/ad/movement/kerberos/kerberoast","https://attack.stealthbits.com/cracking-kerberos-tgs-tickets-using-kerberoasting","https://adsecurity.org/?p=280","https://github.com/OTRF/Set-AuditRule"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/","subtechnique":[{"id":"T1558.003","name":"Kerberoasting","reference":"https://attack.mitre.org/techniques/T1558/003/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"Directory Service Changes\" and event.code:5136 and winlog.event_data.ObjectClass:\"user\"\nand winlog.event_data.AttributeLDAPDisplayName:\"servicePrincipalName\"\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ObjectClass","type":"unknown"}],"setup":"The 'Audit Directory Service Changes' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```\n\nThe above policy does not cover User objects, so set up an AuditRule using https://github.com/OTRF/Set-AuditRule.\nAs this specifies the servicePrincipalName Attribute GUID, it is expected to be low noise.\n\n```\nSet-AuditRule -AdObjectPath 'AD:\\CN=Users,DC=Domain,DC=com' -WellKnownSidType WorldSid -Rights WriteProperty -InheritanceFlags Children -AttributeGUID f3a64788-5306-11d1-a9c5-0000f80367c1 -AuditFlags Success\n```"},{"name":"User account exposed to Kerberoasting v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a user account has the servicePrincipalName attribute modified. Attackers can abuse write privileges over a user to configure Service Principle Names (SPNs) so that they can perform Kerberoasting. Administrators can also configure this for legitimate purposes, exposing the account to Kerberoasting.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating User account exposed to Kerberoasting\n\nService Principal Names (SPNs) are names by which Kerberos clients uniquely identify service instances for Kerberos target\ncomputers.\n\nBy default, only computer accounts have SPNs, which creates no significant risk, since machine accounts have a default\ndomain policy that rotates their passwords every 30 days, and the password is composed of 120 random characters, making\nthem invulnerable to Kerberoasting.\n\nA user account with an SPN assigned is considered a service account, and is accessible to the entire domain. If any\nuser in the directory requests a ticket-granting service (TGS), the domain controller will encrypt it with the secret\nkey of the account executing the service. An attacker can potentially perform a Kerberoasting attack with this\ninformation, as the human-defined password is likely to be less complex.\n\nFor scenarios where SPNs cannot be avoided on user accounts, Microsoft provides the Group Managed Service Accounts (gMSA)\nfeature, which ensures that account passwords are robust and changed regularly and automatically. More information can\nbe found [here](https://docs.microsoft.com/en-us/windows-server/security/group-managed-service-accounts/group-managed-service-accounts-overview).\n\nAttackers can also perform \"Targeted Kerberoasting\", which consists of adding fake SPNs to user accounts that they have\nwrite privileges to, making them potentially vulnerable to Kerberoasting.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate if the target account is a member of privileged groups (Domain Admins, Enterprise Admins, etc.).\n- Investigate if tickets have been requested for the target account.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- The use of user accounts as service accounts is a bad security practice and should not be allowed in the domain. The\nsecurity team should map and monitor any potential benign true positive (B-TP), especially if the account is privileged.\nDomain Administrators that define this kind of setting can put the domain at risk as user accounts don't have the same\nsecurity standards as computer accounts (which have long, complex, random passwords that change frequently), exposing\nthem to credential cracking attacks (Kerberoasting, brute force, etc.).\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services. Prioritize privileged accounts.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.thehacker.recipes/ad/movement/access-controls/targeted-kerberoasting","https://www.qomplx.com/qomplx-knowledge-kerberoasting-attacks-explained/","https://www.thehacker.recipes/ad/movement/kerberos/kerberoast","https://attack.stealthbits.com/cracking-kerberos-tgs-tickets-using-kerberoasting","https://adsecurity.org/?p=280","https://github.com/OTRF/Set-AuditRule"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/","subtechnique":[{"id":"T1558.003","name":"Kerberoasting","reference":"https://attack.mitre.org/techniques/T1558/003/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"Directory Service Changes\" and event.code:5136 and winlog.event_data.ObjectClass:\"user\"\nand winlog.event_data.AttributeLDAPDisplayName:\"servicePrincipalName\"\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ObjectClass","type":"unknown"}],"setup":"The 'Audit Directory Service Changes' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```\n\nThe above policy does not cover User objects, so set up an AuditRule using https://github.com/OTRF/Set-AuditRule.\nAs this specifies the servicePrincipalName Attribute GUID, it is expected to be low noise.\n\n```\nSet-AuditRule -AdObjectPath 'AD:\\CN=Users,DC=Domain,DC=com' -WellKnownSidType WorldSid -Rights WriteProperty -InheritanceFlags Children -AttributeGUID f3a64788-5306-11d1-a9c5-0000f80367c1 -AuditFlags Success\n```"},{"name":"User account exposed to Kerberoasting v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a user account has the servicePrincipalName attribute modified. Attackers can abuse write privileges over a user to configure Service Principle Names (SPNs) so that they can perform Kerberoasting. Administrators can also configure this for legitimate purposes, exposing the account to Kerberoasting.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating User account exposed to Kerberoasting\n\nService Principal Names (SPNs) are names by which Kerberos clients uniquely identify service instances for Kerberos target\ncomputers.\n\nBy default, only computer accounts have SPNs, which creates no significant risk, since machine accounts have a default\ndomain policy that rotates their passwords every 30 days, and the password is composed of 120 random characters, making\nthem invulnerable to Kerberoasting.\n\nA user account with an SPN assigned is considered a service account, and is accessible to the entire domain. If any\nuser in the directory requests a ticket-granting service (TGS), the domain controller will encrypt it with the secret\nkey of the account executing the service. An attacker can potentially perform a Kerberoasting attack with this\ninformation, as the human-defined password is likely to be less complex.\n\nFor scenarios where SPNs cannot be avoided on user accounts, Microsoft provides the Group Managed Service Accounts (gMSA)\nfeature, which ensures that account passwords are robust and changed regularly and automatically. More information can\nbe found [here](https://docs.microsoft.com/en-us/windows-server/security/group-managed-service-accounts/group-managed-service-accounts-overview).\n\nAttackers can also perform \"Targeted Kerberoasting\", which consists of adding fake SPNs to user accounts that they have\nwrite privileges to, making them potentially vulnerable to Kerberoasting.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate if the target account is a member of privileged groups (Domain Admins, Enterprise Admins, etc.).\n- Investigate if tickets have been requested for the target account.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- The use of user accounts as service accounts is a bad security practice and should not be allowed in the domain. The\nsecurity team should map and monitor any potential benign true positive (B-TP), especially if the account is privileged.\nDomain Administrators that define this kind of setting can put the domain at risk as user accounts don't have the same\nsecurity standards as computer accounts (which have long, complex, random passwords that change frequently), exposing\nthem to credential cracking attacks (Kerberoasting, brute force, etc.).\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services. Prioritize privileged accounts.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.thehacker.recipes/ad/movement/access-controls/targeted-kerberoasting","https://www.qomplx.com/qomplx-knowledge-kerberoasting-attacks-explained/","https://www.thehacker.recipes/ad/movement/kerberos/kerberoast","https://attack.stealthbits.com/cracking-kerberos-tgs-tickets-using-kerberoasting","https://adsecurity.org/?p=280","https://github.com/OTRF/Set-AuditRule"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/","subtechnique":[{"id":"T1558.003","name":"Kerberoasting","reference":"https://attack.mitre.org/techniques/T1558/003/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"Directory Service Changes\" and event.code:5136 and winlog.event_data.ObjectClass:\"user\"\nand winlog.event_data.AttributeLDAPDisplayName:\"servicePrincipalName\"\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ObjectClass","type":"unknown"}],"setup":"The 'Audit Directory Service Changes' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```\n\nThe above policy does not cover User objects, so set up an AuditRule using https://github.com/OTRF/Set-AuditRule.\nAs this specifies the servicePrincipalName Attribute GUID, it is expected to be low noise.\n\n```\nSet-AuditRule -AdObjectPath 'AD:\\CN=Users,DC=Domain,DC=com' -WellKnownSidType WorldSid -Rights WriteProperty -InheritanceFlags Children -AttributeGUID f3a64788-5306-11d1-a9c5-0000f80367c1 -AuditFlags Success\n```"}]},"id":"0b2f3da5-b5ec-47d1-908b-6ebb74814289","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/0c7ca5c2-728d-4ad9-b1c5-bbba83ecb1f4.json b/fleet-packages/detection-rules-composite/kibana/security_rule/0c7ca5c2-728d-4ad9-b1c5-bbba83ecb1f4.json new file mode 100644 index 0000000000000..b1a1c0d5d0b73 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/0c7ca5c2-728d-4ad9-b1c5-bbba83ecb1f4.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"0c7ca5c2-728d-4ad9-b1c5-bbba83ecb1f4","versions":[{"name":"Peripheral Device Discovery v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the Windows file system utility (fsutil.exe) to gather information about attached peripheral devices and components connected to a computer system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Peripheral Device Discovery\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `fsutil` utility with the `fsinfo` subcommand to enumerate drives attached to\nthe computer, which can be used to identify secondary drives used for backups, mapped network drives, and removable\nmedia. These devices can contain valuable information for attackers.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Determine whether this activity was followed by suspicious file access/copy operations or uploads to file storage\nservices.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1120","name":"Peripheral Device Discovery","reference":"https://attack.mitre.org/techniques/T1120/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"fsutil.exe\" or process.pe.original_file_name == \"fsutil.exe\") and\n process.args : \"fsinfo\" and process.args : \"drives\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Peripheral Device Discovery v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the Windows file system utility (fsutil.exe) to gather information about attached peripheral devices and components connected to a computer system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Peripheral Device Discovery\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `fsutil` utility with the `fsinfo` subcommand to enumerate drives attached to\nthe computer, which can be used to identify secondary drives used for backups, mapped network drives, and removable\nmedia. These devices can contain valuable information for attackers.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Determine whether this activity was followed by suspicious file access/copy operations or uploads to file storage\nservices.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1120","name":"Peripheral Device Discovery","reference":"https://attack.mitre.org/techniques/T1120/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"fsutil.exe\" or process.pe.original_file_name == \"fsutil.exe\") and\n process.args : \"fsinfo\" and process.args : \"drives\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Peripheral Device Discovery v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the Windows file system utility (fsutil.exe) to gather information about attached peripheral devices and components connected to a computer system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Peripheral Device Discovery\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `fsutil` utility with the `fsinfo` subcommand to enumerate drives attached to\nthe computer, which can be used to identify secondary drives used for backups, mapped network drives, and removable\nmedia. These devices can contain valuable information for attackers.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Determine whether this activity was followed by suspicious file access/copy operations or uploads to file storage\nservices.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1120","name":"Peripheral Device Discovery","reference":"https://attack.mitre.org/techniques/T1120/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"fsutil.exe\" or process.pe.original_file_name == \"fsutil.exe\") and\n process.args : \"fsinfo\" and process.args : \"drives\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"0c7ca5c2-728d-4ad9-b1c5-bbba83ecb1f4","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/0c9a14d9-d65d-486f-9b5b-91e4e6b22bd0.json b/fleet-packages/detection-rules-composite/kibana/security_rule/0c9a14d9-d65d-486f-9b5b-91e4e6b22bd0.json new file mode 100644 index 0000000000000..df50ce334db40 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/0c9a14d9-d65d-486f-9b5b-91e4e6b22bd0.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"0c9a14d9-d65d-486f-9b5b-91e4e6b22bd0","versions":[{"name":"Threat Intel Indicator Match v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule is triggered when indicators from the Threat Intel integrations have a match against local file or network observations.","risk_score":99,"severity":"critical","license":"Elastic License v2","note":"## Triage and Analysis\n\n### Investigating Threat Intel Indicator Matches\n\nThreat Intel indicator match rules allow matching from a local observation such as an endpoint event that records a file\nhash with an entry of a file hash stored within the Threat Intel integrations. Matches can also occur on\nan IP address, registry path, URL, or imphash.\n\nThe matches will be based on the incoming last 30 days feed data so it's important to validate the data and review the results by\ninvestigating the associated activity to determine if it requires further investigation.\n\nIf an indicator matches a local observation, the following enriched fields will be generated to identify the indicator, field, and type matched.\n\n- `threat.indicator.matched.atomic` - this identifies the atomic indicator that matched the local observation\n- `threat.indicator.matched.field` - this identifies the indicator field that matched the local observation\n- `threat.indicator.matched.type` - this identifies the indicator type that matched the local observation\n\n#### Possible investigation steps:\n- Investigation should be validated and reviewed based on the data (file hash, registry path, URL, imphash) that was matched\nand by viewing the source of that activity.\n- Consider the history of the indicator that was matched. Has it happened before? Is it happening on multiple machines?\nThese kinds of questions can help understand if the activity is related to legitimate behavior.\n- Consider the user and their role within the company: is this something related to their job or work function?\n\n### False Positive Analysis\n- For any matches found, it's important to consider the initial release date of that indicator. Threat intelligence can\nbe a great tool for augmenting existing security processes, while at the same time it should be understood that threat\nintelligence can represent a specific set of activity observed at a point in time. For example, an IP address\nmay have hosted malware observed in a Dridex campaign months ago, but it's possible that IP has been remediated and\nno longer represents any threat.\n- Adversaries often use legitimate tools as network administrators such as `PsExec` or `AdFind`; these tools often find their\nway into indicator lists creating the potential for false positives.\n- It's possible after large and publicly written campaigns, curious employees might end up going directly to attacker infrastructure and triggering these rules.\n\n### Response and Remediation\n- If suspicious or malicious behavior is observed, take immediate action to isolate activity to prevent further\npost-compromise behavior.\n- One example of a response if a machine matched a command and control IP address would be to add an entry to a network\ndevice such as a firewall or proxy appliance to prevent any outbound activity from leaving that machine.\n- Another example of a response with a malicious file hash match would involve validating if the file was properly quarantined,\nreviewing current running processes for any abnormal activity, and investigating for any other follow-up actions such as persistence or lateral movement.\n","timeline_id":"495ad7a7-316e-4544-8a0f-9c098daee76e","timeline_title":"Generic Threat Match Timeline","author":["Elastic"],"from":"now-65m","interval":"1h","references":["https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-threatintel.html"],"tags":["Elastic","Windows","Elastic Endgame","Network","Continuous Monitoring","SecOps","Monitoring","Investigation Guide"],"query":"file.hash.*:* or file.pe.imphash:* or source.ip:* or destination.ip:* or url.full:* or registry.path:*\n","threat_index":["logs-ti_*"],"threat_mapping":[{"entries":[{"field":"file.hash.md5","type":"mapping","value":"threat.indicator.file.hash.md5"}]},{"entries":[{"field":"file.hash.sha1","type":"mapping","value":"threat.indicator.file.hash.sha1"}]},{"entries":[{"field":"file.hash.sha256","type":"mapping","value":"threat.indicator.file.hash.sha256"}]},{"entries":[{"field":"file.pe.imphash","type":"mapping","value":"threat.indicator.file.pe.imphash"}]},{"entries":[{"field":"source.ip","type":"mapping","value":"threat.indicator.ip"}]},{"entries":[{"field":"destination.ip","type":"mapping","value":"threat.indicator.ip"}]},{"entries":[{"field":"url.full","type":"mapping","value":"threat.indicator.url.full"}]},{"entries":[{"field":"registry.path","type":"mapping","value":"threat.indicator.registry.path"}]}],"threat_query":"@timestamp >= \"now-30d/d\" and event.dataset:ti_* and (threat.indicator.file.hash.*:* or threat.indicator.file.pe.imphash:* or threat.indicator.ip:* or threat.indicator.registry.path:* or threat.indicator.url.full:*)","type":"threat_match","index":["auditbeat-*","endgame-*","filebeat-*","logs-*","packetbeat-*","winlogbeat-*"],"threat_filters":[{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.dataset","negate":false,"params":{"query":"ti_*"},"type":"phrase"},"query":{"match_phrase":{"event.dataset":"ti_*"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.category","negate":false,"params":{"query":"threat"},"type":"phrase"},"query":{"match_phrase":{"event.category":"threat"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.kind","negate":false,"params":{"query":"enrichment"},"type":"phrase"},"query":{"match_phrase":{"event.kind":"enrichment"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.type","negate":false,"params":{"query":"indicator"},"type":"phrase"},"query":{"match_phrase":{"event.type":"indicator"}}}],"threat_indicator_path":"threat.indicator","threat_language":"kuery","language":"kuery","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":false,"name":"file.hash.*","type":"unknown"},{"ecs":true,"name":"file.pe.imphash","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"url.full","type":"wildcard"}]},{"name":"Threat Intel Indicator Match v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule is triggered when indicators from the Threat Intel integrations have a match against local file or network observations.","risk_score":99,"severity":"critical","license":"Elastic License v2","note":"## Triage and Analysis\n\n### Investigating Threat Intel Indicator Matches\n\nThreat Intel indicator match rules allow matching from a local observation such as an endpoint event that records a file\nhash with an entry of a file hash stored within the Threat Intel integrations. Matches can also occur on\nan IP address, registry path, URL, or imphash.\n\nThe matches will be based on the incoming last 30 days feed data so it's important to validate the data and review the results by\ninvestigating the associated activity to determine if it requires further investigation.\n\nIf an indicator matches a local observation, the following enriched fields will be generated to identify the indicator, field, and type matched.\n\n- `threat.indicator.matched.atomic` - this identifies the atomic indicator that matched the local observation\n- `threat.indicator.matched.field` - this identifies the indicator field that matched the local observation\n- `threat.indicator.matched.type` - this identifies the indicator type that matched the local observation\n\n#### Possible investigation steps:\n- Investigation should be validated and reviewed based on the data (file hash, registry path, URL, imphash) that was matched\nand by viewing the source of that activity.\n- Consider the history of the indicator that was matched. Has it happened before? Is it happening on multiple machines?\nThese kinds of questions can help understand if the activity is related to legitimate behavior.\n- Consider the user and their role within the company: is this something related to their job or work function?\n\n### False Positive Analysis\n- For any matches found, it's important to consider the initial release date of that indicator. Threat intelligence can\nbe a great tool for augmenting existing security processes, while at the same time it should be understood that threat\nintelligence can represent a specific set of activity observed at a point in time. For example, an IP address\nmay have hosted malware observed in a Dridex campaign months ago, but it's possible that IP has been remediated and\nno longer represents any threat.\n- Adversaries often use legitimate tools as network administrators such as `PsExec` or `AdFind`; these tools often find their\nway into indicator lists creating the potential for false positives.\n- It's possible after large and publicly written campaigns, curious employees might end up going directly to attacker infrastructure and triggering these rules.\n\n### Response and Remediation\n- If suspicious or malicious behavior is observed, take immediate action to isolate activity to prevent further\npost-compromise behavior.\n- One example of a response if a machine matched a command and control IP address would be to add an entry to a network\ndevice such as a firewall or proxy appliance to prevent any outbound activity from leaving that machine.\n- Another example of a response with a malicious file hash match would involve validating if the file was properly quarantined,\nreviewing current running processes for any abnormal activity, and investigating for any other follow-up actions such as persistence or lateral movement.\n","timeline_id":"495ad7a7-316e-4544-8a0f-9c098daee76e","timeline_title":"Generic Threat Match Timeline","author":["Elastic"],"from":"now-65m","interval":"1h","references":["https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-threatintel.html"],"tags":["Elastic","Windows","Elastic Endgame","Network","Continuous Monitoring","SecOps","Monitoring","Investigation Guide"],"query":"file.hash.*:* or file.pe.imphash:* or source.ip:* or destination.ip:* or url.full:* or registry.path:*\n","threat_index":["logs-ti_*"],"threat_mapping":[{"entries":[{"field":"file.hash.md5","type":"mapping","value":"threat.indicator.file.hash.md5"}]},{"entries":[{"field":"file.hash.sha1","type":"mapping","value":"threat.indicator.file.hash.sha1"}]},{"entries":[{"field":"file.hash.sha256","type":"mapping","value":"threat.indicator.file.hash.sha256"}]},{"entries":[{"field":"file.pe.imphash","type":"mapping","value":"threat.indicator.file.pe.imphash"}]},{"entries":[{"field":"source.ip","type":"mapping","value":"threat.indicator.ip"}]},{"entries":[{"field":"destination.ip","type":"mapping","value":"threat.indicator.ip"}]},{"entries":[{"field":"url.full","type":"mapping","value":"threat.indicator.url.full"}]},{"entries":[{"field":"registry.path","type":"mapping","value":"threat.indicator.registry.path"}]}],"threat_query":"@timestamp >= \"now-30d/d\" and event.dataset:ti_* and (threat.indicator.file.hash.*:* or threat.indicator.file.pe.imphash:* or threat.indicator.ip:* or threat.indicator.registry.path:* or threat.indicator.url.full:*)","type":"threat_match","index":["auditbeat-*","endgame-*","filebeat-*","logs-*","packetbeat-*","winlogbeat-*"],"threat_filters":[{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.dataset","negate":false,"params":{"query":"ti_*"},"type":"phrase"},"query":{"match_phrase":{"event.dataset":"ti_*"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.category","negate":false,"params":{"query":"threat"},"type":"phrase"},"query":{"match_phrase":{"event.category":"threat"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.kind","negate":false,"params":{"query":"enrichment"},"type":"phrase"},"query":{"match_phrase":{"event.kind":"enrichment"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.type","negate":false,"params":{"query":"indicator"},"type":"phrase"},"query":{"match_phrase":{"event.type":"indicator"}}}],"threat_indicator_path":"threat.indicator","threat_language":"kuery","language":"kuery","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":false,"name":"file.hash.*","type":"unknown"},{"ecs":true,"name":"file.pe.imphash","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"url.full","type":"wildcard"}]},{"name":"Threat Intel Indicator Match v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule is triggered when indicators from the Threat Intel integrations have a match against local file or network observations.","risk_score":99,"severity":"critical","license":"Elastic License v2","note":"## Triage and Analysis\n\n### Investigating Threat Intel Indicator Matches\n\nThreat Intel indicator match rules allow matching from a local observation such as an endpoint event that records a file\nhash with an entry of a file hash stored within the Threat Intel integrations. Matches can also occur on\nan IP address, registry path, URL, or imphash.\n\nThe matches will be based on the incoming last 30 days feed data so it's important to validate the data and review the results by\ninvestigating the associated activity to determine if it requires further investigation.\n\nIf an indicator matches a local observation, the following enriched fields will be generated to identify the indicator, field, and type matched.\n\n- `threat.indicator.matched.atomic` - this identifies the atomic indicator that matched the local observation\n- `threat.indicator.matched.field` - this identifies the indicator field that matched the local observation\n- `threat.indicator.matched.type` - this identifies the indicator type that matched the local observation\n\n#### Possible investigation steps:\n- Investigation should be validated and reviewed based on the data (file hash, registry path, URL, imphash) that was matched\nand by viewing the source of that activity.\n- Consider the history of the indicator that was matched. Has it happened before? Is it happening on multiple machines?\nThese kinds of questions can help understand if the activity is related to legitimate behavior.\n- Consider the user and their role within the company: is this something related to their job or work function?\n\n### False Positive Analysis\n- For any matches found, it's important to consider the initial release date of that indicator. Threat intelligence can\nbe a great tool for augmenting existing security processes, while at the same time it should be understood that threat\nintelligence can represent a specific set of activity observed at a point in time. For example, an IP address\nmay have hosted malware observed in a Dridex campaign months ago, but it's possible that IP has been remediated and\nno longer represents any threat.\n- Adversaries often use legitimate tools as network administrators such as `PsExec` or `AdFind`; these tools often find their\nway into indicator lists creating the potential for false positives.\n- It's possible after large and publicly written campaigns, curious employees might end up going directly to attacker infrastructure and triggering these rules.\n\n### Response and Remediation\n- If suspicious or malicious behavior is observed, take immediate action to isolate activity to prevent further\npost-compromise behavior.\n- One example of a response if a machine matched a command and control IP address would be to add an entry to a network\ndevice such as a firewall or proxy appliance to prevent any outbound activity from leaving that machine.\n- Another example of a response with a malicious file hash match would involve validating if the file was properly quarantined,\nreviewing current running processes for any abnormal activity, and investigating for any other follow-up actions such as persistence or lateral movement.\n","timeline_id":"495ad7a7-316e-4544-8a0f-9c098daee76e","timeline_title":"Generic Threat Match Timeline","author":["Elastic"],"from":"now-65m","interval":"1h","references":["https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-threatintel.html"],"tags":["Elastic","Windows","Elastic Endgame","Network","Continuous Monitoring","SecOps","Monitoring","Investigation Guide"],"query":"file.hash.*:* or file.pe.imphash:* or source.ip:* or destination.ip:* or url.full:* or registry.path:*\n","threat_index":["logs-ti_*"],"threat_mapping":[{"entries":[{"field":"file.hash.md5","type":"mapping","value":"threat.indicator.file.hash.md5"}]},{"entries":[{"field":"file.hash.sha1","type":"mapping","value":"threat.indicator.file.hash.sha1"}]},{"entries":[{"field":"file.hash.sha256","type":"mapping","value":"threat.indicator.file.hash.sha256"}]},{"entries":[{"field":"file.pe.imphash","type":"mapping","value":"threat.indicator.file.pe.imphash"}]},{"entries":[{"field":"source.ip","type":"mapping","value":"threat.indicator.ip"}]},{"entries":[{"field":"destination.ip","type":"mapping","value":"threat.indicator.ip"}]},{"entries":[{"field":"url.full","type":"mapping","value":"threat.indicator.url.full"}]},{"entries":[{"field":"registry.path","type":"mapping","value":"threat.indicator.registry.path"}]}],"threat_query":"@timestamp >= \"now-30d/d\" and event.dataset:ti_* and (threat.indicator.file.hash.*:* or threat.indicator.file.pe.imphash:* or threat.indicator.ip:* or threat.indicator.registry.path:* or threat.indicator.url.full:*)","type":"threat_match","index":["auditbeat-*","endgame-*","filebeat-*","logs-*","packetbeat-*","winlogbeat-*"],"threat_filters":[{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.dataset","negate":false,"params":{"query":"ti_*"},"type":"phrase"},"query":{"match_phrase":{"event.dataset":"ti_*"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.category","negate":false,"params":{"query":"threat"},"type":"phrase"},"query":{"match_phrase":{"event.category":"threat"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.kind","negate":false,"params":{"query":"enrichment"},"type":"phrase"},"query":{"match_phrase":{"event.kind":"enrichment"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.type","negate":false,"params":{"query":"indicator"},"type":"phrase"},"query":{"match_phrase":{"event.type":"indicator"}}}],"threat_indicator_path":"threat.indicator","threat_language":"kuery","language":"kuery","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":false,"name":"file.hash.*","type":"unknown"},{"ecs":true,"name":"file.pe.imphash","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"url.full","type":"wildcard"}]}]},"id":"0c9a14d9-d65d-486f-9b5b-91e4e6b22bd0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/0ce6487d-8069-4888-9ddd-61b52490cebc.json b/fleet-packages/detection-rules-composite/kibana/security_rule/0ce6487d-8069-4888-9ddd-61b52490cebc.json new file mode 100644 index 0000000000000..98a415afcd98f --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/0ce6487d-8069-4888-9ddd-61b52490cebc.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"0ce6487d-8069-4888-9ddd-61b52490cebc","versions":[{"name":"O365 Exchange Suspicious Mailbox Right Delegation v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the assignment of rights to access content from another mailbox. An adversary may use the compromised account to send messages to other accounts in the network of the target organization while creating inbox rules, so messages can evade spam/phishing detection mechanisms.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Assignment of rights to a service account."],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.002","name":"Additional Email Delegate Permissions","reference":"https://attack.mitre.org/techniques/T1098/002/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.action:Add-MailboxPermission and\no365.audit.Parameters.AccessRights:(FullAccess or SendAs or SendOnBehalf) and event.outcome:success and\nnot user.id : \"NT AUTHORITY\\SYSTEM (Microsoft.Exchange.Servicehost)\"\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Parameters.AccessRights","type":"unknown"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"O365 Exchange Suspicious Mailbox Right Delegation v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the assignment of rights to access content from another mailbox. An adversary may use the compromised account to send messages to other accounts in the network of the target organization while creating inbox rules, so messages can evade spam/phishing detection mechanisms.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Assignment of rights to a service account."],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.002","name":"Additional Email Delegate Permissions","reference":"https://attack.mitre.org/techniques/T1098/002/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.action:Add-MailboxPermission and\no365.audit.Parameters.AccessRights:(FullAccess or SendAs or SendOnBehalf) and event.outcome:success and\nnot user.id : \"NT AUTHORITY\\SYSTEM (Microsoft.Exchange.Servicehost)\"\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Parameters.AccessRights","type":"unknown"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"O365 Exchange Suspicious Mailbox Right Delegation v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the assignment of rights to access content from another mailbox. An adversary may use the compromised account to send messages to other accounts in the network of the target organization while creating inbox rules, so messages can evade spam/phishing detection mechanisms.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Assignment of rights to a service account."],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.002","name":"Additional Email Delegate Permissions","reference":"https://attack.mitre.org/techniques/T1098/002/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.action:Add-MailboxPermission and\no365.audit.Parameters.AccessRights:(FullAccess or SendAs or SendOnBehalf) and event.outcome:success and\nnot user.id : \"NT AUTHORITY\\SYSTEM (Microsoft.Exchange.Servicehost)\"\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Parameters.AccessRights","type":"unknown"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"0ce6487d-8069-4888-9ddd-61b52490cebc","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/0d69150b-96f8-467c-a86d-a67a3378ce77.json b/fleet-packages/detection-rules-composite/kibana/security_rule/0d69150b-96f8-467c-a86d-a67a3378ce77.json new file mode 100644 index 0000000000000..d5f934a690d75 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/0d69150b-96f8-467c-a86d-a67a3378ce77.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"0d69150b-96f8-467c-a86d-a67a3378ce77","versions":[{"name":"Nping Process Activity v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Nping ran on a Linux host. Nping is part of the Nmap tool suite and has the ability to construct raw packets for a wide variety of security testing applications, including denial of service testing.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some normal use of this command may originate from security engineers and network or server administrators, but this is usually not routine or unannounced. Use of `Nping` by non-engineers or ordinary users is uncommon."],"from":"now-9m","references":["https://en.wikipedia.org/wiki/Nmap"],"tags":["Elastic","Host","Linux","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1046","name":"Network Service Discovery","reference":"https://attack.mitre.org/techniques/T1046/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:nping\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Nping Process Activity v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Nping ran on a Linux host. Nping is part of the Nmap tool suite and has the ability to construct raw packets for a wide variety of security testing applications, including denial of service testing.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some normal use of this command may originate from security engineers and network or server administrators, but this is usually not routine or unannounced. Use of `Nping` by non-engineers or ordinary users is uncommon."],"from":"now-9m","references":["https://en.wikipedia.org/wiki/Nmap"],"tags":["Elastic","Host","Linux","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1046","name":"Network Service Discovery","reference":"https://attack.mitre.org/techniques/T1046/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:nping\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Nping Process Activity v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Nping ran on a Linux host. Nping is part of the Nmap tool suite and has the ability to construct raw packets for a wide variety of security testing applications, including denial of service testing.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some normal use of this command may originate from security engineers and network or server administrators, but this is usually not routine or unannounced. Use of `Nping` by non-engineers or ordinary users is uncommon."],"from":"now-9m","references":["https://en.wikipedia.org/wiki/Nmap"],"tags":["Elastic","Host","Linux","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1046","name":"Network Service Discovery","reference":"https://attack.mitre.org/techniques/T1046/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:nping\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"0d69150b-96f8-467c-a86d-a67a3378ce77","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/0d8ad79f-9025-45d8-80c1-4f0cd3c5e8e5.json b/fleet-packages/detection-rules-composite/kibana/security_rule/0d8ad79f-9025-45d8-80c1-4f0cd3c5e8e5.json new file mode 100644 index 0000000000000..7ea5c9bd857fa --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/0d8ad79f-9025-45d8-80c1-4f0cd3c5e8e5.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"0d8ad79f-9025-45d8-80c1-4f0cd3c5e8e5","versions":[{"name":"Execution of File Written or Modified by Microsoft Office v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an executable created by a Microsoft Office application and subsequently executed. These processes are often launched via scripts inside documents or during exploitation of Microsoft Office applications.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Execution of File Written or Modified by Microsoft Office\n\nMicrosoft Office is a suite of applications designed to help with productivity and completing common tasks on a computer.\nYou can create and edit documents containing text and images, work with data in spreadsheets and databases, and create\npresentations and posters. As it is some of the most-used software across companies, MS Office is frequently\ntargeted for initial access. It also has a wide variety of capabilities that attackers can take advantage of.\n\nThis rule searches for executable files written by MS Office applications executed in sequence. This is most likely the result\nof the execution of malicious documents or exploitation for initial access or privilege escalation. This rule can also detect\nsuspicious processes masquerading as the MS Office applications.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve MS Office documents received and opened by the user that could cause this behavior. Common locations include,\nbut are not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-120m","interval":"60m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"},{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]}],"language":"eql","query":"sequence with maxspan=2h\n [file where event.type != \"deletion\" and file.extension : \"exe\" and\n (process.name : \"WINWORD.EXE\" or\n process.name : \"EXCEL.EXE\" or\n process.name : \"OUTLOOK.EXE\" or\n process.name : \"POWERPNT.EXE\" or\n process.name : \"eqnedt32.exe\" or\n process.name : \"fltldr.exe\" or\n process.name : \"MSPUB.EXE\" or\n process.name : \"MSACCESS.EXE\")\n ] by host.id, file.path\n [process where event.type == \"start\"] by host.id, process.executable\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Execution of File Written or Modified by Microsoft Office v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an executable created by a Microsoft Office application and subsequently executed. These processes are often launched via scripts inside documents or during exploitation of Microsoft Office applications.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Execution of File Written or Modified by Microsoft Office\n\nMicrosoft Office is a suite of applications designed to help with productivity and completing common tasks on a computer.\nYou can create and edit documents containing text and images, work with data in spreadsheets and databases, and create\npresentations and posters. As it is some of the most-used software across companies, MS Office is frequently\ntargeted for initial access. It also has a wide variety of capabilities that attackers can take advantage of.\n\nThis rule searches for executable files written by MS Office applications executed in sequence. This is most likely the result\nof the execution of malicious documents or exploitation for initial access or privilege escalation. This rule can also detect\nsuspicious processes masquerading as the MS Office applications.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve MS Office documents received and opened by the user that could cause this behavior. Common locations include,\nbut are not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-120m","interval":"60m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"},{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]}],"language":"eql","query":"sequence with maxspan=2h\n [file where event.type != \"deletion\" and file.extension : \"exe\" and\n (process.name : \"WINWORD.EXE\" or\n process.name : \"EXCEL.EXE\" or\n process.name : \"OUTLOOK.EXE\" or\n process.name : \"POWERPNT.EXE\" or\n process.name : \"eqnedt32.exe\" or\n process.name : \"fltldr.exe\" or\n process.name : \"MSPUB.EXE\" or\n process.name : \"MSACCESS.EXE\")\n ] by host.id, file.path\n [process where event.type == \"start\"] by host.id, process.executable\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Execution of File Written or Modified by Microsoft Office v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an executable created by a Microsoft Office application and subsequently executed. These processes are often launched via scripts inside documents or during exploitation of Microsoft Office applications.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Execution of File Written or Modified by Microsoft Office\n\nMicrosoft Office is a suite of applications designed to help with productivity and completing common tasks on a computer.\nYou can create and edit documents containing text and images, work with data in spreadsheets and databases, and create\npresentations and posters. As it is some of the most-used software across companies, MS Office is frequently\ntargeted for initial access. It also has a wide variety of capabilities that attackers can take advantage of.\n\nThis rule searches for executable files written by MS Office applications executed in sequence. This is most likely the result\nof the execution of malicious documents or exploitation for initial access or privilege escalation. This rule can also detect\nsuspicious processes masquerading as the MS Office applications.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve MS Office documents received and opened by the user that could cause this behavior. Common locations include,\nbut are not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-120m","interval":"60m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"},{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]}],"language":"eql","query":"sequence with maxspan=2h\n [file where event.type != \"deletion\" and file.extension : \"exe\" and\n (process.name : \"WINWORD.EXE\" or\n process.name : \"EXCEL.EXE\" or\n process.name : \"OUTLOOK.EXE\" or\n process.name : \"POWERPNT.EXE\" or\n process.name : \"eqnedt32.exe\" or\n process.name : \"fltldr.exe\" or\n process.name : \"MSPUB.EXE\" or\n process.name : \"MSACCESS.EXE\")\n ] by host.id, file.path\n [process where event.type == \"start\"] by host.id, process.executable\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"0d8ad79f-9025-45d8-80c1-4f0cd3c5e8e5","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/0e52157a-8e96-4a95-a6e3-5faae5081a74.json b/fleet-packages/detection-rules-composite/kibana/security_rule/0e52157a-8e96-4a95-a6e3-5faae5081a74.json new file mode 100644 index 0000000000000..1081a2ecb7b80 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/0e52157a-8e96-4a95-a6e3-5faae5081a74.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"0e52157a-8e96-4a95-a6e3-5faae5081a74","versions":[{"name":"SharePoint Malware File Upload v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the occurence of files uploaded to SharePoint being detected as Malware by the file scanning engine. Attackers can use File Sharing and Organization Repositories to spread laterally within the company and amplify their access. Users can inadvertently share these files without knowing their maliciousness, giving adversaries opportunities to gain initial access to other endpoints in the environment.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Benign files can trigger signatures in the built-in virus protection"],"from":"now-30m","references":["https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/virus-detection-in-spo?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1080","name":"Taint Shared Content","reference":"https://attack.mitre.org/techniques/T1080/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:SharePoint and event.code:SharePointFileOperation and event.action:FileMalwareDetected\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"SharePoint Malware File Upload v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the occurence of files uploaded to SharePoint being detected as Malware by the file scanning engine. Attackers can use File Sharing and Organization Repositories to spread laterally within the company and amplify their access. Users can inadvertently share these files without knowing their maliciousness, giving adversaries opportunities to gain initial access to other endpoints in the environment.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Benign files can trigger signatures in the built-in virus protection"],"from":"now-30m","references":["https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/virus-detection-in-spo?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1080","name":"Taint Shared Content","reference":"https://attack.mitre.org/techniques/T1080/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:SharePoint and event.code:SharePointFileOperation and event.action:FileMalwareDetected\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"SharePoint Malware File Upload v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the occurence of files uploaded to SharePoint being detected as Malware by the file scanning engine. Attackers can use File Sharing and Organization Repositories to spread laterally within the company and amplify their access. Users can inadvertently share these files without knowing their maliciousness, giving adversaries opportunities to gain initial access to other endpoints in the environment.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Benign files can trigger signatures in the built-in virus protection"],"from":"now-30m","references":["https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/virus-detection-in-spo?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1080","name":"Taint Shared Content","reference":"https://attack.mitre.org/techniques/T1080/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:SharePoint and event.code:SharePointFileOperation and event.action:FileMalwareDetected\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"0e52157a-8e96-4a95-a6e3-5faae5081a74","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/0e5acaae-6a64-4bbc-adb8-27649c03f7e1.json b/fleet-packages/detection-rules-composite/kibana/security_rule/0e5acaae-6a64-4bbc-adb8-27649c03f7e1.json new file mode 100644 index 0000000000000..ccd56fb9aaa0a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/0e5acaae-6a64-4bbc-adb8-27649c03f7e1.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"0e5acaae-6a64-4bbc-adb8-27649c03f7e1","versions":[{"name":"GCP Service Account Key Creation v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new key is created for a service account in Google Cloud Platform (GCP). A service account is a special type of account used by an application or a virtual machine (VM) instance, not a person. Applications use service accounts to make authorized API calls, authorized as either the service account itself, or as G Suite or Cloud Identity users through domain-wide delegation. If private keys are not tracked and managed properly, they can present a security risk. An adversary may create a new key for a service account in order to attempt to abuse the permissions assigned to that account and evade detection.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Service account keys may be created by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/iam/docs/service-accounts","https://cloud.google.com/iam/docs/creating-managing-service-account-keys"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.CreateServiceAccountKey and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Service Account Key Creation v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new key is created for a service account in Google Cloud Platform (GCP). A service account is a special type of account used by an application or a virtual machine (VM) instance, not a person. Applications use service accounts to make authorized API calls, authorized as either the service account itself, or as G Suite or Cloud Identity users through domain-wide delegation. If private keys are not tracked and managed properly, they can present a security risk. An adversary may create a new key for a service account in order to attempt to abuse the permissions assigned to that account and evade detection.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Service account keys may be created by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/iam/docs/service-accounts","https://cloud.google.com/iam/docs/creating-managing-service-account-keys"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.CreateServiceAccountKey and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Service Account Key Creation v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new key is created for a service account in Google Cloud Platform (GCP). A service account is a special type of account used by an application or a virtual machine (VM) instance, not a person. Applications use service accounts to make authorized API calls, authorized as either the service account itself, or as G Suite or Cloud Identity users through domain-wide delegation. If private keys are not tracked and managed properly, they can present a security risk. An adversary may create a new key for a service account in order to attempt to abuse the permissions assigned to that account and evade detection.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Service account keys may be created by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/iam/docs/service-accounts","https://cloud.google.com/iam/docs/creating-managing-service-account-keys"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.CreateServiceAccountKey and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"0e5acaae-6a64-4bbc-adb8-27649c03f7e1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/0e79980b-4250-4a50-a509-69294c14e84b.json b/fleet-packages/detection-rules-composite/kibana/security_rule/0e79980b-4250-4a50-a509-69294c14e84b.json new file mode 100644 index 0000000000000..843a63c60208b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/0e79980b-4250-4a50-a509-69294c14e84b.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"0e79980b-4250-4a50-a509-69294c14e84b","versions":[{"name":"MsBuild Making Network Connections v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies MsBuild.exe making outbound network connections. This may indicate adversarial activity as MsBuild is often leveraged by adversaries to execute code and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/","subtechnique":[{"id":"T1127.001","name":"MSBuild","reference":"https://attack.mitre.org/techniques/T1127/001/"}]}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"MSBuild.exe\" and event.type == \"start\"]\n [network where process.name : \"MSBuild.exe\" and\n not cidrmatch(destination.ip, \"127.0.0.1\", \"::1\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"MsBuild Making Network Connections v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies MsBuild.exe making outbound network connections. This may indicate adversarial activity as MsBuild is often leveraged by adversaries to execute code and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/","subtechnique":[{"id":"T1127.001","name":"MSBuild","reference":"https://attack.mitre.org/techniques/T1127/001/"}]}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"MSBuild.exe\" and event.type == \"start\"]\n [network where process.name : \"MSBuild.exe\" and\n not cidrmatch(destination.ip, \"127.0.0.1\", \"::1\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"MsBuild Making Network Connections v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies MsBuild.exe making outbound network connections. This may indicate adversarial activity as MsBuild is often leveraged by adversaries to execute code and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/","subtechnique":[{"id":"T1127.001","name":"MSBuild","reference":"https://attack.mitre.org/techniques/T1127/001/"}]}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"MSBuild.exe\" and event.type == \"start\"]\n [network where process.name : \"MSBuild.exe\" and\n not cidrmatch(destination.ip, \"127.0.0.1\", \"::1\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"0e79980b-4250-4a50-a509-69294c14e84b","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/0f93cb9a-1931-48c2-8cd0-f173fd3e5283.json b/fleet-packages/detection-rules-composite/kibana/security_rule/0f93cb9a-1931-48c2-8cd0-f173fd3e5283.json new file mode 100644 index 0000000000000..5d72231c22fb9 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/0f93cb9a-1931-48c2-8cd0-f173fd3e5283.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"0f93cb9a-1931-48c2-8cd0-f173fd3e5283","versions":[{"name":"Potential LSASS Memory Dump via PssCaptureSnapShot v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious access to an LSASS handle via PssCaptureSnapShot where two successive process accesses are performed by the same process and target two different instances of LSASS. This may indicate an attempt to evade detection and dump LSASS memory for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.matteomalvica.com/blog/2019/12/02/win-defender-atp-cred-bypass/","https://twitter.com/sbousseaden/status/1280619931516747777?lang=en"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"query":"event.category:process and event.code:10 and\n winlog.event_data.TargetImage:(\"C:\\\\Windows\\\\system32\\\\lsass.exe\" or\n \"c:\\\\Windows\\\\system32\\\\lsass.exe\" or\n \"c:\\\\Windows\\\\System32\\\\lsass.exe\")\n","threshold":{"field":["process.entity_id"],"value":2,"cardinality":[{"field":"winlog.event_data.TargetProcessId","value":2}]},"type":"threshold","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetImage","type":"unknown"}],"setup":"This is meant to run only on datasources using Elastic Agent 7.14+ since versions prior to that will be missing the threshold\nrule cardinality feature."},{"name":"Potential LSASS Memory Dump via PssCaptureSnapShot v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious access to an LSASS handle via PssCaptureSnapShot where two successive process accesses are performed by the same process and target two different instances of LSASS. This may indicate an attempt to evade detection and dump LSASS memory for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.matteomalvica.com/blog/2019/12/02/win-defender-atp-cred-bypass/","https://twitter.com/sbousseaden/status/1280619931516747777?lang=en"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"query":"event.category:process and event.code:10 and\n winlog.event_data.TargetImage:(\"C:\\\\Windows\\\\system32\\\\lsass.exe\" or\n \"c:\\\\Windows\\\\system32\\\\lsass.exe\" or\n \"c:\\\\Windows\\\\System32\\\\lsass.exe\")\n","threshold":{"field":["process.entity_id"],"value":2,"cardinality":[{"field":"winlog.event_data.TargetProcessId","value":2}]},"type":"threshold","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetImage","type":"unknown"}],"setup":"This is meant to run only on datasources using Elastic Agent 7.14+ since versions prior to that will be missing the threshold\nrule cardinality feature."},{"name":"Potential LSASS Memory Dump via PssCaptureSnapShot v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious access to an LSASS handle via PssCaptureSnapShot where two successive process accesses are performed by the same process and target two different instances of LSASS. This may indicate an attempt to evade detection and dump LSASS memory for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.matteomalvica.com/blog/2019/12/02/win-defender-atp-cred-bypass/","https://twitter.com/sbousseaden/status/1280619931516747777?lang=en"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"query":"event.category:process and event.code:10 and\n winlog.event_data.TargetImage:(\"C:\\\\Windows\\\\system32\\\\lsass.exe\" or\n \"c:\\\\Windows\\\\system32\\\\lsass.exe\" or\n \"c:\\\\Windows\\\\System32\\\\lsass.exe\")\n","threshold":{"field":["process.entity_id"],"value":2,"cardinality":[{"field":"winlog.event_data.TargetProcessId","value":2}]},"type":"threshold","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetImage","type":"unknown"}],"setup":"This is meant to run only on datasources using Elastic Agent 7.14+ since versions prior to that will be missing the threshold\nrule cardinality feature."}]},"id":"0f93cb9a-1931-48c2-8cd0-f173fd3e5283","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/0ff84c42-873d-41a2-a4ed-08d74d352d01.json b/fleet-packages/detection-rules-composite/kibana/security_rule/0ff84c42-873d-41a2-a4ed-08d74d352d01.json new file mode 100644 index 0000000000000..7aa83cd481c2d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/0ff84c42-873d-41a2-a4ed-08d74d352d01.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"0ff84c42-873d-41a2-a4ed-08d74d352d01","versions":[{"name":"Privilege Escalation via Root Crontab File Modification v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to the root crontab file. Adversaries may overwrite this file to gain code execution with root privileges by exploiting privileged file write or move related vulnerabilities.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://phoenhex.re/2017-06-09/pwn2own-diskarbitrationd-privesc","https://www.exploit-db.com/exploits/42146"],"tags":["Elastic","Host","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.003","name":"Cron","reference":"https://attack.mitre.org/techniques/T1053/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and not event.type:deletion and\n file.path:/private/var/at/tabs/root and not process.executable:/usr/bin/crontab\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},{"name":"Privilege Escalation via Root Crontab File Modification v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to the root crontab file. Adversaries may overwrite this file to gain code execution with root privileges by exploiting privileged file write or move related vulnerabilities.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://phoenhex.re/2017-06-09/pwn2own-diskarbitrationd-privesc","https://www.exploit-db.com/exploits/42146"],"tags":["Elastic","Host","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.003","name":"Cron","reference":"https://attack.mitre.org/techniques/T1053/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and not event.type:deletion and\n file.path:/private/var/at/tabs/root and not process.executable:/usr/bin/crontab\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},{"name":"Privilege Escalation via Root Crontab File Modification v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to the root crontab file. Adversaries may overwrite this file to gain code execution with root privileges by exploiting privileged file write or move related vulnerabilities.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://phoenhex.re/2017-06-09/pwn2own-diskarbitrationd-privesc","https://www.exploit-db.com/exploits/42146"],"tags":["Elastic","Host","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.003","name":"Cron","reference":"https://attack.mitre.org/techniques/T1053/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and not event.type:deletion and\n file.path:/private/var/at/tabs/root and not process.executable:/usr/bin/crontab\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]}]},"id":"0ff84c42-873d-41a2-a4ed-08d74d352d01","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/10a500bb-a28f-418e-ba29-ca4c8d1a9f2f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/10a500bb-a28f-418e-ba29-ca4c8d1a9f2f.json new file mode 100644 index 0000000000000..800bf6b4f9474 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/10a500bb-a28f-418e-ba29-ca4c8d1a9f2f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"10a500bb-a28f-418e-ba29-ca4c8d1a9f2f","versions":[{"name":"WebProxy Settings Modification v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the built-in networksetup command to configure webproxy settings. This may indicate an attempt to hijack web browser traffic for credential access via traffic sniffing or redirection.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate WebProxy Settings Modification"],"from":"now-9m","references":["https://unit42.paloaltonetworks.com/mac-malware-steals-cryptocurrency-exchanges-cookies/","https://objectivebythesea.com/v2/talks/OBTS_v2_Zohar.pdf"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1539","name":"Steal Web Session Cookie","reference":"https://attack.mitre.org/techniques/T1539/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category : process and event.type : start and\n process.name : networksetup and process.args : ((\"-setwebproxy\" or \"-setsecurewebproxy\" or \"-setautoproxyurl\") and not (Bluetooth or off)) and\n not process.parent.executable : (\"/Library/PrivilegedHelperTools/com.80pct.FreedomHelper\" or\n \"/Applications/Fiddler Everywhere.app/Contents/Resources/app/out/WebServer/Fiddler.WebUi\" or\n \"/usr/libexec/xpcproxy\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},{"name":"WebProxy Settings Modification v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the built-in networksetup command to configure webproxy settings. This may indicate an attempt to hijack web browser traffic for credential access via traffic sniffing or redirection.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate WebProxy Settings Modification"],"from":"now-9m","references":["https://unit42.paloaltonetworks.com/mac-malware-steals-cryptocurrency-exchanges-cookies/","https://objectivebythesea.com/v2/talks/OBTS_v2_Zohar.pdf"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1539","name":"Steal Web Session Cookie","reference":"https://attack.mitre.org/techniques/T1539/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category : process and event.type : start and\n process.name : networksetup and process.args : ((\"-setwebproxy\" or \"-setsecurewebproxy\" or \"-setautoproxyurl\") and not (Bluetooth or off)) and\n not process.parent.executable : (\"/Library/PrivilegedHelperTools/com.80pct.FreedomHelper\" or\n \"/Applications/Fiddler Everywhere.app/Contents/Resources/app/out/WebServer/Fiddler.WebUi\" or\n \"/usr/libexec/xpcproxy\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},{"name":"WebProxy Settings Modification v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the built-in networksetup command to configure webproxy settings. This may indicate an attempt to hijack web browser traffic for credential access via traffic sniffing or redirection.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate WebProxy Settings Modification"],"from":"now-9m","references":["https://unit42.paloaltonetworks.com/mac-malware-steals-cryptocurrency-exchanges-cookies/","https://objectivebythesea.com/v2/talks/OBTS_v2_Zohar.pdf"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1539","name":"Steal Web Session Cookie","reference":"https://attack.mitre.org/techniques/T1539/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category : process and event.type : start and\n process.name : networksetup and process.args : ((\"-setwebproxy\" or \"-setsecurewebproxy\" or \"-setautoproxyurl\") and not (Bluetooth or off)) and\n not process.parent.executable : (\"/Library/PrivilegedHelperTools/com.80pct.FreedomHelper\" or\n \"/Applications/Fiddler Everywhere.app/Contents/Resources/app/out/WebServer/Fiddler.WebUi\" or\n \"/usr/libexec/xpcproxy\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]}]},"id":"10a500bb-a28f-418e-ba29-ca4c8d1a9f2f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/11013227-0301-4a8c-b150-4db924484475.json b/fleet-packages/detection-rules-composite/kibana/security_rule/11013227-0301-4a8c-b150-4db924484475.json new file mode 100644 index 0000000000000..52b959c089661 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/11013227-0301-4a8c-b150-4db924484475.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"11013227-0301-4a8c-b150-4db924484475","versions":[{"name":"Abnormally Large DNS Response v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Specially crafted DNS requests can manipulate a known overflow vulnerability in some Windows DNS servers, resulting in Remote Code Execution (RCE) or a Denial of Service (DoS) from crashing the service.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Abnormally Large DNS Response\n\nDetection alerts from this rule indicate possible anomalous activity around large byte DNS responses from a Windows DNS\nserver. This detection rule was created based on activity represented in exploitation of vulnerability (CVE-2020-1350)\nalso known as [SigRed](https://www.elastic.co/blog/detection-rules-for-sigred-vulnerability) during July 2020.\n\n#### Possible investigation steps\n\n- This specific rule is sourced from network log activity such as DNS or network level data. It's important to validate\nthe source of the incoming traffic and determine if this activity has been observed previously within an environment.\n- Activity can be further investigated and validated by reviewing any associated Intrusion Detection Signatures (IDS) alerts.\n- Further examination can include a review of the `dns.question_type` network fieldset with a protocol analyzer, such as\nZeek, Packetbeat, or Suricata, for `SIG` or `RRSIG` data.\n- Validate the patch level and OS of the targeted DNS server to validate the observed activity was not large-scale\ninternet vulnerability scanning.\n- Validate that the source of the network activity was not from an authorized vulnerability scan or compromise assessment.\n\n#### False positive analysis\n\n- Based on this rule, which looks for a threshold of 60k bytes, it is possible for activity to be generated under 65k bytes\nand related to legitimate behavior. In packet capture files received by the [SANS Internet Storm Center](https://isc.sans.edu/forums/diary/PATCH+NOW+SIGRed+CVE20201350+Microsoft+DNS+Server+Vulnerability/26356/), byte responses\nwere all observed as greater than 65k bytes.\n- This activity can be triggered by compliance/vulnerability scanning or compromise assessment; it's important to\ndetermine the source of the activity and potentially allowlist the source host.\n\n### Related rules\n\n- Unusual Child Process of dns.exe - 8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45\n- Unusual File Modification by dns.exe - c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Ensure that you have deployed the latest Microsoft [Security Update](https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-1350)\n(Monthly Rollup or Security Only) and restarted the patched machines. If unable to patch immediately, Microsoft [released](https://support.microsoft.com/en-us/help/4569509/windows-dns-server-remote-code-execution-vulnerability)\na registry-based workaround that doesn’t require a restart. This can be used as a temporary solution before the patch is applied.\n- Maintain backups of your critical systems to aid in quick recovery.\n- Perform routine vulnerability scans of your systems, monitor [CISA advisories](https://us-cert.cisa.gov/ncas/current-activity) and patch identified vulnerabilities.\n- If you observe a true positive, implement a remediation plan and monitor host-based artifacts for additional post-exploitation behavior.\n","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Environments that leverage DNS responses over 60k bytes will result in false positives - if this traffic is predictable and expected, it should be filtered out. Additionally, this detection rule could be triggered by an authorized vulnerability scan or compromise assessment."],"references":["https://research.checkpoint.com/2020/resolving-your-way-into-domain-admin-exploiting-a-17-year-old-bug-in-windows-dns-servers/","https://msrc-blog.microsoft.com/2020/07/14/july-2020-security-update-cve-2020-1350-vulnerability-in-windows-domain-name-system-dns-server/","https://github.com/maxpl0it/CVE-2020-1350-DoS","https://www.elastic.co/security-labs/detection-rules-for-sigred-vulnerability"],"tags":["Elastic","Network","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1210","name":"Exploitation of Remote Services","reference":"https://attack.mitre.org/techniques/T1210/"}]}],"type":"query","index":["packetbeat-*","filebeat-*"],"language":"kuery","query":"event.category:(network or network_traffic) and destination.port:53 and\n (event.dataset:zeek.dns or type:dns or event.type:connection) and network.bytes > 60000\n","required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"network.bytes","type":"long"},{"ecs":false,"name":"type","type":"keyword"}]},{"name":"Abnormally Large DNS Response v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Specially crafted DNS requests can manipulate a known overflow vulnerability in some Windows DNS servers, resulting in Remote Code Execution (RCE) or a Denial of Service (DoS) from crashing the service.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Abnormally Large DNS Response\n\nDetection alerts from this rule indicate possible anomalous activity around large byte DNS responses from a Windows DNS\nserver. This detection rule was created based on activity represented in exploitation of vulnerability (CVE-2020-1350)\nalso known as [SigRed](https://www.elastic.co/blog/detection-rules-for-sigred-vulnerability) during July 2020.\n\n#### Possible investigation steps\n\n- This specific rule is sourced from network log activity such as DNS or network level data. It's important to validate\nthe source of the incoming traffic and determine if this activity has been observed previously within an environment.\n- Activity can be further investigated and validated by reviewing any associated Intrusion Detection Signatures (IDS) alerts.\n- Further examination can include a review of the `dns.question_type` network fieldset with a protocol analyzer, such as\nZeek, Packetbeat, or Suricata, for `SIG` or `RRSIG` data.\n- Validate the patch level and OS of the targeted DNS server to validate the observed activity was not large-scale\ninternet vulnerability scanning.\n- Validate that the source of the network activity was not from an authorized vulnerability scan or compromise assessment.\n\n#### False positive analysis\n\n- Based on this rule, which looks for a threshold of 60k bytes, it is possible for activity to be generated under 65k bytes\nand related to legitimate behavior. In packet capture files received by the [SANS Internet Storm Center](https://isc.sans.edu/forums/diary/PATCH+NOW+SIGRed+CVE20201350+Microsoft+DNS+Server+Vulnerability/26356/), byte responses\nwere all observed as greater than 65k bytes.\n- This activity can be triggered by compliance/vulnerability scanning or compromise assessment; it's important to\ndetermine the source of the activity and potentially allowlist the source host.\n\n### Related rules\n\n- Unusual Child Process of dns.exe - 8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45\n- Unusual File Modification by dns.exe - c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Ensure that you have deployed the latest Microsoft [Security Update](https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-1350)\n(Monthly Rollup or Security Only) and restarted the patched machines. If unable to patch immediately, Microsoft [released](https://support.microsoft.com/en-us/help/4569509/windows-dns-server-remote-code-execution-vulnerability)\na registry-based workaround that doesn’t require a restart. This can be used as a temporary solution before the patch is applied.\n- Maintain backups of your critical systems to aid in quick recovery.\n- Perform routine vulnerability scans of your systems, monitor [CISA advisories](https://us-cert.cisa.gov/ncas/current-activity) and patch identified vulnerabilities.\n- If you observe a true positive, implement a remediation plan and monitor host-based artifacts for additional post-exploitation behavior.\n","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Environments that leverage DNS responses over 60k bytes will result in false positives - if this traffic is predictable and expected, it should be filtered out. Additionally, this detection rule could be triggered by an authorized vulnerability scan or compromise assessment."],"references":["https://research.checkpoint.com/2020/resolving-your-way-into-domain-admin-exploiting-a-17-year-old-bug-in-windows-dns-servers/","https://msrc-blog.microsoft.com/2020/07/14/july-2020-security-update-cve-2020-1350-vulnerability-in-windows-domain-name-system-dns-server/","https://github.com/maxpl0it/CVE-2020-1350-DoS","https://www.elastic.co/security-labs/detection-rules-for-sigred-vulnerability"],"tags":["Elastic","Network","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1210","name":"Exploitation of Remote Services","reference":"https://attack.mitre.org/techniques/T1210/"}]}],"type":"query","index":["packetbeat-*","filebeat-*"],"language":"kuery","query":"event.category:(network or network_traffic) and destination.port:53 and\n (event.dataset:zeek.dns or type:dns or event.type:connection) and network.bytes > 60000\n","required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"network.bytes","type":"long"},{"ecs":false,"name":"type","type":"keyword"}]},{"name":"Abnormally Large DNS Response v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Specially crafted DNS requests can manipulate a known overflow vulnerability in some Windows DNS servers, resulting in Remote Code Execution (RCE) or a Denial of Service (DoS) from crashing the service.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Abnormally Large DNS Response\n\nDetection alerts from this rule indicate possible anomalous activity around large byte DNS responses from a Windows DNS\nserver. This detection rule was created based on activity represented in exploitation of vulnerability (CVE-2020-1350)\nalso known as [SigRed](https://www.elastic.co/blog/detection-rules-for-sigred-vulnerability) during July 2020.\n\n#### Possible investigation steps\n\n- This specific rule is sourced from network log activity such as DNS or network level data. It's important to validate\nthe source of the incoming traffic and determine if this activity has been observed previously within an environment.\n- Activity can be further investigated and validated by reviewing any associated Intrusion Detection Signatures (IDS) alerts.\n- Further examination can include a review of the `dns.question_type` network fieldset with a protocol analyzer, such as\nZeek, Packetbeat, or Suricata, for `SIG` or `RRSIG` data.\n- Validate the patch level and OS of the targeted DNS server to validate the observed activity was not large-scale\ninternet vulnerability scanning.\n- Validate that the source of the network activity was not from an authorized vulnerability scan or compromise assessment.\n\n#### False positive analysis\n\n- Based on this rule, which looks for a threshold of 60k bytes, it is possible for activity to be generated under 65k bytes\nand related to legitimate behavior. In packet capture files received by the [SANS Internet Storm Center](https://isc.sans.edu/forums/diary/PATCH+NOW+SIGRed+CVE20201350+Microsoft+DNS+Server+Vulnerability/26356/), byte responses\nwere all observed as greater than 65k bytes.\n- This activity can be triggered by compliance/vulnerability scanning or compromise assessment; it's important to\ndetermine the source of the activity and potentially allowlist the source host.\n\n### Related rules\n\n- Unusual Child Process of dns.exe - 8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45\n- Unusual File Modification by dns.exe - c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Ensure that you have deployed the latest Microsoft [Security Update](https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-1350)\n(Monthly Rollup or Security Only) and restarted the patched machines. If unable to patch immediately, Microsoft [released](https://support.microsoft.com/en-us/help/4569509/windows-dns-server-remote-code-execution-vulnerability)\na registry-based workaround that doesn’t require a restart. This can be used as a temporary solution before the patch is applied.\n- Maintain backups of your critical systems to aid in quick recovery.\n- Perform routine vulnerability scans of your systems, monitor [CISA advisories](https://us-cert.cisa.gov/ncas/current-activity) and patch identified vulnerabilities.\n- If you observe a true positive, implement a remediation plan and monitor host-based artifacts for additional post-exploitation behavior.\n","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Environments that leverage DNS responses over 60k bytes will result in false positives - if this traffic is predictable and expected, it should be filtered out. Additionally, this detection rule could be triggered by an authorized vulnerability scan or compromise assessment."],"references":["https://research.checkpoint.com/2020/resolving-your-way-into-domain-admin-exploiting-a-17-year-old-bug-in-windows-dns-servers/","https://msrc-blog.microsoft.com/2020/07/14/july-2020-security-update-cve-2020-1350-vulnerability-in-windows-domain-name-system-dns-server/","https://github.com/maxpl0it/CVE-2020-1350-DoS","https://www.elastic.co/security-labs/detection-rules-for-sigred-vulnerability"],"tags":["Elastic","Network","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1210","name":"Exploitation of Remote Services","reference":"https://attack.mitre.org/techniques/T1210/"}]}],"type":"query","index":["packetbeat-*","filebeat-*"],"language":"kuery","query":"event.category:(network or network_traffic) and destination.port:53 and\n (event.dataset:zeek.dns or type:dns or event.type:connection) and network.bytes > 60000\n","required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"network.bytes","type":"long"},{"ecs":false,"name":"type","type":"keyword"}]}]},"id":"11013227-0301-4a8c-b150-4db924484475","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/1160dcdb-0a0a-4a79-91d8-9b84616edebd.json b/fleet-packages/detection-rules-composite/kibana/security_rule/1160dcdb-0a0a-4a79-91d8-9b84616edebd.json new file mode 100644 index 0000000000000..4e5fd5eac9631 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/1160dcdb-0a0a-4a79-91d8-9b84616edebd.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"1160dcdb-0a0a-4a79-91d8-9b84616edebd","versions":[{"name":"Potential DLL SideLoading via Trusted Microsoft Programs v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an instance of a Windows trusted program that is known to be vulnerable to DLL Search Order Hijacking starting after being renamed or from a non-standard path. This is uncommon behavior and may indicate an attempt to evade defenses via side loading a malicious DLL within the memory space of one of those processes.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name in (\"WinWord.exe\", \"EXPLORER.EXE\", \"w3wp.exe\", \"DISM.EXE\") and\n not (process.name : (\"winword.exe\", \"explorer.exe\", \"w3wp.exe\", \"Dism.exe\") or\n process.executable : (\"?:\\\\Windows\\\\explorer.exe\",\n \"?:\\\\Program Files\\\\Microsoft Office\\\\root\\\\Office*\\\\WINWORD.EXE\",\n \"?:\\\\Program Files?(x86)\\\\Microsoft Office\\\\root\\\\Office*\\\\WINWORD.EXE\",\n \"?:\\\\Windows\\\\System32\\\\Dism.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\Dism.exe\",\n \"?:\\\\Windows\\\\System32\\\\inetsrv\\\\w3wp.exe\")\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential DLL SideLoading via Trusted Microsoft Programs v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an instance of a Windows trusted program that is known to be vulnerable to DLL Search Order Hijacking starting after being renamed or from a non-standard path. This is uncommon behavior and may indicate an attempt to evade defenses via side loading a malicious DLL within the memory space of one of those processes.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name in (\"WinWord.exe\", \"EXPLORER.EXE\", \"w3wp.exe\", \"DISM.EXE\") and\n not (process.name : (\"winword.exe\", \"explorer.exe\", \"w3wp.exe\", \"Dism.exe\") or\n process.executable : (\"?:\\\\Windows\\\\explorer.exe\",\n \"?:\\\\Program Files\\\\Microsoft Office\\\\root\\\\Office*\\\\WINWORD.EXE\",\n \"?:\\\\Program Files?(x86)\\\\Microsoft Office\\\\root\\\\Office*\\\\WINWORD.EXE\",\n \"?:\\\\Windows\\\\System32\\\\Dism.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\Dism.exe\",\n \"?:\\\\Windows\\\\System32\\\\inetsrv\\\\w3wp.exe\")\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential DLL SideLoading via Trusted Microsoft Programs v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an instance of a Windows trusted program that is known to be vulnerable to DLL Search Order Hijacking starting after being renamed or from a non-standard path. This is uncommon behavior and may indicate an attempt to evade defenses via side loading a malicious DLL within the memory space of one of those processes.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name in (\"WinWord.exe\", \"EXPLORER.EXE\", \"w3wp.exe\", \"DISM.EXE\") and\n not (process.name : (\"winword.exe\", \"explorer.exe\", \"w3wp.exe\", \"Dism.exe\") or\n process.executable : (\"?:\\\\Windows\\\\explorer.exe\",\n \"?:\\\\Program Files\\\\Microsoft Office\\\\root\\\\Office*\\\\WINWORD.EXE\",\n \"?:\\\\Program Files?(x86)\\\\Microsoft Office\\\\root\\\\Office*\\\\WINWORD.EXE\",\n \"?:\\\\Windows\\\\System32\\\\Dism.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\Dism.exe\",\n \"?:\\\\Windows\\\\System32\\\\inetsrv\\\\w3wp.exe\")\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"1160dcdb-0a0a-4a79-91d8-9b84616edebd","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/1178ae09-5aff-460a-9f2f-455cd0ac4d8e.json b/fleet-packages/detection-rules-composite/kibana/security_rule/1178ae09-5aff-460a-9f2f-455cd0ac4d8e.json new file mode 100644 index 0000000000000..8e402faac58cf --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/1178ae09-5aff-460a-9f2f-455cd0ac4d8e.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"1178ae09-5aff-460a-9f2f-455cd0ac4d8e","versions":[{"name":"UAC Bypass via Windows Firewall Snap-In Hijack v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to bypass User Account Control (UAC) by hijacking the Microsoft Management Console (MMC) Windows Firewall snap-in. Attackers bypass UAC to stealthily execute code with elevated permissions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating UAC Bypass via Windows Firewall Snap-In Hijack\n\nWindows User Account Control (UAC) allows a program to elevate its privileges (tracked as low to high integrity levels)\nto perform a task under administrator-level permissions, possibly by prompting the user for confirmation.\nUAC can deny an operation under high-integrity enforcement, or allow the user to perform the action if they are in the\nlocal administrators group and enter an administrator password when prompted.\n\nFor more information about the UAC and how it works, check the [official Microsoft docs page](https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/how-user-account-control-works).\n\nThis rule identifies attempts to bypass User Account Control (UAC) by hijacking the Microsoft Management Console (MMC)\nWindows Firewall snap-in. Attackers bypass UAC to stealthily execute code with elevated permissions.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze any suspicious spawned processes using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/AzAgarampur/byeintegrity-uac"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name == \"mmc.exe\" and\n /* process.Ext.token.integrity_level_name == \"high\" can be added in future for tuning */\n /* args of the Windows Firewall SnapIn */\n process.parent.args == \"WF.msc\" and process.name != \"WerFault.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"UAC Bypass via Windows Firewall Snap-In Hijack v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to bypass User Account Control (UAC) by hijacking the Microsoft Management Console (MMC) Windows Firewall snap-in. Attackers bypass UAC to stealthily execute code with elevated permissions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating UAC Bypass via Windows Firewall Snap-In Hijack\n\nWindows User Account Control (UAC) allows a program to elevate its privileges (tracked as low to high integrity levels)\nto perform a task under administrator-level permissions, possibly by prompting the user for confirmation.\nUAC can deny an operation under high-integrity enforcement, or allow the user to perform the action if they are in the\nlocal administrators group and enter an administrator password when prompted.\n\nFor more information about the UAC and how it works, check the [official Microsoft docs page](https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/how-user-account-control-works).\n\nThis rule identifies attempts to bypass User Account Control (UAC) by hijacking the Microsoft Management Console (MMC)\nWindows Firewall snap-in. Attackers bypass UAC to stealthily execute code with elevated permissions.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze any suspicious spawned processes using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/AzAgarampur/byeintegrity-uac"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name == \"mmc.exe\" and\n /* process.Ext.token.integrity_level_name == \"high\" can be added in future for tuning */\n /* args of the Windows Firewall SnapIn */\n process.parent.args == \"WF.msc\" and process.name != \"WerFault.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"UAC Bypass via Windows Firewall Snap-In Hijack v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to bypass User Account Control (UAC) by hijacking the Microsoft Management Console (MMC) Windows Firewall snap-in. Attackers bypass UAC to stealthily execute code with elevated permissions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating UAC Bypass via Windows Firewall Snap-In Hijack\n\nWindows User Account Control (UAC) allows a program to elevate its privileges (tracked as low to high integrity levels)\nto perform a task under administrator-level permissions, possibly by prompting the user for confirmation.\nUAC can deny an operation under high-integrity enforcement, or allow the user to perform the action if they are in the\nlocal administrators group and enter an administrator password when prompted.\n\nFor more information about the UAC and how it works, check the [official Microsoft docs page](https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/how-user-account-control-works).\n\nThis rule identifies attempts to bypass User Account Control (UAC) by hijacking the Microsoft Management Console (MMC)\nWindows Firewall snap-in. Attackers bypass UAC to stealthily execute code with elevated permissions.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze any suspicious spawned processes using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/AzAgarampur/byeintegrity-uac"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name == \"mmc.exe\" and\n /* process.Ext.token.integrity_level_name == \"high\" can be added in future for tuning */\n /* args of the Windows Firewall SnapIn */\n process.parent.args == \"WF.msc\" and process.name != \"WerFault.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"1178ae09-5aff-460a-9f2f-455cd0ac4d8e","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/119c8877-8613-416d-a98a-96b6664ee73a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/119c8877-8613-416d-a98a-96b6664ee73a.json new file mode 100644 index 0000000000000..3859aaca2c511 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/119c8877-8613-416d-a98a-96b6664ee73a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"119c8877-8613-416d-a98a-96b6664ee73a","versions":[{"name":"AWS RDS Snapshot Export v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the export of an Amazon Relational Database Service (RDS) Aurora database snapshot.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Exporting snapshots may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Snapshot exports from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_StartExportTask.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility","Exfiltration"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:StartExportTask and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS RDS Snapshot Export v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the export of an Amazon Relational Database Service (RDS) Aurora database snapshot.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Exporting snapshots may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Snapshot exports from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_StartExportTask.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility","Exfiltration"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:StartExportTask and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS RDS Snapshot Export v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the export of an Amazon Relational Database Service (RDS) Aurora database snapshot.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Exporting snapshots may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Snapshot exports from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_StartExportTask.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility","Exfiltration"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:StartExportTask and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"119c8877-8613-416d-a98a-96b6664ee73a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/11dd9713-0ec6-4110-9707-32daae1ee68c.json b/fleet-packages/detection-rules-composite/kibana/security_rule/11dd9713-0ec6-4110-9707-32daae1ee68c.json new file mode 100644 index 0000000000000..d207094e506e6 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/11dd9713-0ec6-4110-9707-32daae1ee68c.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"11dd9713-0ec6-4110-9707-32daae1ee68c","versions":[{"name":"PowerShell Script with Token Impersonation Capabilities v1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects scripts that contain PowerShell functions, structures, or Windows API functions related to token impersonation/theft. Attackers may duplicate then impersonate another user's token to escalate privileges and bypass access controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/decoder-it/psgetsystem","https://github.com/PowerShellMafia/PowerSploit/blob/master/Privesc/Get-System.ps1","https://github.com/EmpireProject/Empire/blob/master/data/module_source/privesc/Invoke-MS16032.ps1","https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/","subtechnique":[{"id":"T1134.001","name":"Token Impersonation/Theft","reference":"https://attack.mitre.org/techniques/T1134/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]},{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text:(\n \"Invoke-TokenManipulation\" or\n \"ImpersonateNamedPipeClient\" or\n \"NtImpersonateThread\" or\n (\n \"STARTUPINFOEX\" and\n \"UpdateProcThreadAttribute\"\n ) or\n (\n \"AdjustTokenPrivileges\" and\n \"SeDebugPrivilege\"\n ) or\n (\n (\"DuplicateToken\" or\n \"DuplicateTokenEx\") and\n (\"SetThreadToken\" or\n \"ImpersonateLoggedOnUser\" or \n\t \"CreateProcessWithTokenW\" or \n\t \"CreatePRocessAsUserW\" or \n\t \"CreateProcessAsUserA\")\n ) \n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},{"name":"PowerShell Script with Token Impersonation Capabilities v1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects scripts that contain PowerShell functions, structures, or Windows API functions related to token impersonation/theft. Attackers may duplicate then impersonate another user's token to escalate privileges and bypass access controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/decoder-it/psgetsystem","https://github.com/PowerShellMafia/PowerSploit/blob/master/Privesc/Get-System.ps1","https://github.com/EmpireProject/Empire/blob/master/data/module_source/privesc/Invoke-MS16032.ps1","https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/","subtechnique":[{"id":"T1134.001","name":"Token Impersonation/Theft","reference":"https://attack.mitre.org/techniques/T1134/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]},{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text:(\n \"Invoke-TokenManipulation\" or\n \"ImpersonateNamedPipeClient\" or\n \"NtImpersonateThread\" or\n (\n \"STARTUPINFOEX\" and\n \"UpdateProcThreadAttribute\"\n ) or\n (\n \"AdjustTokenPrivileges\" and\n \"SeDebugPrivilege\"\n ) or\n (\n (\"DuplicateToken\" or\n \"DuplicateTokenEx\") and\n (\"SetThreadToken\" or\n \"ImpersonateLoggedOnUser\" or \n\t \"CreateProcessWithTokenW\" or \n\t \"CreatePRocessAsUserW\" or \n\t \"CreateProcessAsUserA\")\n ) \n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},{"name":"PowerShell Script with Token Impersonation Capabilities v1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects scripts that contain PowerShell functions, structures, or Windows API functions related to token impersonation/theft. Attackers may duplicate then impersonate another user's token to escalate privileges and bypass access controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/decoder-it/psgetsystem","https://github.com/PowerShellMafia/PowerSploit/blob/master/Privesc/Get-System.ps1","https://github.com/EmpireProject/Empire/blob/master/data/module_source/privesc/Invoke-MS16032.ps1","https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/","subtechnique":[{"id":"T1134.001","name":"Token Impersonation/Theft","reference":"https://attack.mitre.org/techniques/T1134/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]},{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text:(\n \"Invoke-TokenManipulation\" or\n \"ImpersonateNamedPipeClient\" or\n \"NtImpersonateThread\" or\n (\n \"STARTUPINFOEX\" and\n \"UpdateProcThreadAttribute\"\n ) or\n (\n \"AdjustTokenPrivileges\" and\n \"SeDebugPrivilege\"\n ) or\n (\n (\"DuplicateToken\" or\n \"DuplicateTokenEx\") and\n (\"SetThreadToken\" or\n \"ImpersonateLoggedOnUser\" or \n\t \"CreateProcessWithTokenW\" or \n\t \"CreatePRocessAsUserW\" or \n\t \"CreateProcessAsUserA\")\n ) \n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"}]},"id":"11dd9713-0ec6-4110-9707-32daae1ee68c","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/11ea6bec-ebde-4d71-a8e9-784948f8e3e9.json b/fleet-packages/detection-rules-composite/kibana/security_rule/11ea6bec-ebde-4d71-a8e9-784948f8e3e9.json new file mode 100644 index 0000000000000..6b8fdfa7d7c28 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/11ea6bec-ebde-4d71-a8e9-784948f8e3e9.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"11ea6bec-ebde-4d71-a8e9-784948f8e3e9","versions":[{"name":"Third-party Backup Files Deleted via Unexpected Process v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of backup files, saved using third-party software, by a process outside of the backup suite. Adversaries may delete Backup files to ensure that recovery from a ransomware attack is less likely.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Third-party Backup Files Deleted via Unexpected Process\n\nBackups are a significant obstacle for any ransomware operation. They allow the victim to resume business by performing\ndata recovery, making them a valuable target.\n\nAttackers can delete backups from the host and gain access to backup servers to remove centralized backups for the\nenvironment, ensuring that victims have no alternatives to paying the ransom.\n\nThis rule identifies file deletions performed by a process that does not belong to the backup suite and aims to delete\nVeritas or Veeam backups.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check if any files on the host machine have been encrypted.\n\n### False positive analysis\n\n- This rule can be triggered by the manual removal of backup files and by removal using other third-party tools that are\nnot from the backup suite. Exceptions can be added for specific accounts and executables, preferably tied together.\n\n### Related rules\n\n- Deleting Backup Catalogs with Wbadmin - 581add16-df76-42bb-af8e-c979bfb39a59\n- Volume Shadow Copy Deleted or Resized via VssAdmin - b5ea4bfe-a1b2-421f-9d47-22a75a6f2921\n- Volume Shadow Copy Deletion via PowerShell - d99a037b-c8e2-47a5-97b9-170d076827c4\n- Volume Shadow Copy Deletion via WMIC - dc9c1f74-dac3-48e3-b47f-eb79db358f57\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- Perform data recovery locally or restore the backups from replicated copies (Cloud, other servers, etc.).\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain utilities that delete files for disk cleanup or Administrators manually removing backup files."],"from":"now-9m","references":["https://www.advintel.io/post/backup-removal-solutions-from-conti-ransomware-with-love"],"tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"file where event.type == \"deletion\" and\n (\n /* Veeam Related Backup Files */\n (file.extension : (\"VBK\", \"VIB\", \"VBM\") and\n not process.executable : (\"?:\\\\Windows\\\\Veeam\\\\Backup\\\\*\",\n \"?:\\\\Program Files\\\\Veeam\\\\Backup and Replication\\\\*\",\n \"?:\\\\Program Files (x86)\\\\Veeam\\\\Backup and Replication\\\\*\")) or\n\n /* Veritas Backup Exec Related Backup File */\n (file.extension : \"BKF\" and\n not process.executable : (\"?:\\\\Program Files\\\\Veritas\\\\Backup Exec\\\\*\",\n \"?:\\\\Program Files (x86)\\\\Veritas\\\\Backup Exec\\\\*\"))\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Third-party Backup Files Deleted via Unexpected Process v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of backup files, saved using third-party software, by a process outside of the backup suite. Adversaries may delete Backup files to ensure that recovery from a ransomware attack is less likely.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Third-party Backup Files Deleted via Unexpected Process\n\nBackups are a significant obstacle for any ransomware operation. They allow the victim to resume business by performing\ndata recovery, making them a valuable target.\n\nAttackers can delete backups from the host and gain access to backup servers to remove centralized backups for the\nenvironment, ensuring that victims have no alternatives to paying the ransom.\n\nThis rule identifies file deletions performed by a process that does not belong to the backup suite and aims to delete\nVeritas or Veeam backups.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check if any files on the host machine have been encrypted.\n\n### False positive analysis\n\n- This rule can be triggered by the manual removal of backup files and by removal using other third-party tools that are\nnot from the backup suite. Exceptions can be added for specific accounts and executables, preferably tied together.\n\n### Related rules\n\n- Deleting Backup Catalogs with Wbadmin - 581add16-df76-42bb-af8e-c979bfb39a59\n- Volume Shadow Copy Deleted or Resized via VssAdmin - b5ea4bfe-a1b2-421f-9d47-22a75a6f2921\n- Volume Shadow Copy Deletion via PowerShell - d99a037b-c8e2-47a5-97b9-170d076827c4\n- Volume Shadow Copy Deletion via WMIC - dc9c1f74-dac3-48e3-b47f-eb79db358f57\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- Perform data recovery locally or restore the backups from replicated copies (Cloud, other servers, etc.).\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain utilities that delete files for disk cleanup or Administrators manually removing backup files."],"from":"now-9m","references":["https://www.advintel.io/post/backup-removal-solutions-from-conti-ransomware-with-love"],"tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"file where event.type == \"deletion\" and\n (\n /* Veeam Related Backup Files */\n (file.extension : (\"VBK\", \"VIB\", \"VBM\") and\n not process.executable : (\"?:\\\\Windows\\\\Veeam\\\\Backup\\\\*\",\n \"?:\\\\Program Files\\\\Veeam\\\\Backup and Replication\\\\*\",\n \"?:\\\\Program Files (x86)\\\\Veeam\\\\Backup and Replication\\\\*\")) or\n\n /* Veritas Backup Exec Related Backup File */\n (file.extension : \"BKF\" and\n not process.executable : (\"?:\\\\Program Files\\\\Veritas\\\\Backup Exec\\\\*\",\n \"?:\\\\Program Files (x86)\\\\Veritas\\\\Backup Exec\\\\*\"))\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Third-party Backup Files Deleted via Unexpected Process v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of backup files, saved using third-party software, by a process outside of the backup suite. Adversaries may delete Backup files to ensure that recovery from a ransomware attack is less likely.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Third-party Backup Files Deleted via Unexpected Process\n\nBackups are a significant obstacle for any ransomware operation. They allow the victim to resume business by performing\ndata recovery, making them a valuable target.\n\nAttackers can delete backups from the host and gain access to backup servers to remove centralized backups for the\nenvironment, ensuring that victims have no alternatives to paying the ransom.\n\nThis rule identifies file deletions performed by a process that does not belong to the backup suite and aims to delete\nVeritas or Veeam backups.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check if any files on the host machine have been encrypted.\n\n### False positive analysis\n\n- This rule can be triggered by the manual removal of backup files and by removal using other third-party tools that are\nnot from the backup suite. Exceptions can be added for specific accounts and executables, preferably tied together.\n\n### Related rules\n\n- Deleting Backup Catalogs with Wbadmin - 581add16-df76-42bb-af8e-c979bfb39a59\n- Volume Shadow Copy Deleted or Resized via VssAdmin - b5ea4bfe-a1b2-421f-9d47-22a75a6f2921\n- Volume Shadow Copy Deletion via PowerShell - d99a037b-c8e2-47a5-97b9-170d076827c4\n- Volume Shadow Copy Deletion via WMIC - dc9c1f74-dac3-48e3-b47f-eb79db358f57\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- Perform data recovery locally or restore the backups from replicated copies (Cloud, other servers, etc.).\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain utilities that delete files for disk cleanup or Administrators manually removing backup files."],"from":"now-9m","references":["https://www.advintel.io/post/backup-removal-solutions-from-conti-ransomware-with-love"],"tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"file where event.type == \"deletion\" and\n (\n /* Veeam Related Backup Files */\n (file.extension : (\"VBK\", \"VIB\", \"VBM\") and\n not process.executable : (\"?:\\\\Windows\\\\Veeam\\\\Backup\\\\*\",\n \"?:\\\\Program Files\\\\Veeam\\\\Backup and Replication\\\\*\",\n \"?:\\\\Program Files (x86)\\\\Veeam\\\\Backup and Replication\\\\*\")) or\n\n /* Veritas Backup Exec Related Backup File */\n (file.extension : \"BKF\" and\n not process.executable : (\"?:\\\\Program Files\\\\Veritas\\\\Backup Exec\\\\*\",\n \"?:\\\\Program Files (x86)\\\\Veritas\\\\Backup Exec\\\\*\"))\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"11ea6bec-ebde-4d71-a8e9-784948f8e3e9","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/12051077-0124-4394-9522-8f4f4db1d674.json b/fleet-packages/detection-rules-composite/kibana/security_rule/12051077-0124-4394-9522-8f4f4db1d674.json new file mode 100644 index 0000000000000..a416de0d3767e --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/12051077-0124-4394-9522-8f4f4db1d674.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"12051077-0124-4394-9522-8f4f4db1d674","versions":[{"name":"AWS Route 53 Domain Transfer Lock Disabled v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a transfer lock was removed from a Route 53 domain. It is recommended to refrain from performing this action unless intending to transfer the domain to a different registrar.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["A domain transfer lock may be disabled by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Activity from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/Route53/latest/APIReference/API_Operations_Amazon_Route_53.html","https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_DisableDomainTransferLock.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:route53.amazonaws.com and event.action:DisableDomainTransferLock and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Route 53 Domain Transfer Lock Disabled v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a transfer lock was removed from a Route 53 domain. It is recommended to refrain from performing this action unless intending to transfer the domain to a different registrar.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["A domain transfer lock may be disabled by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Activity from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/Route53/latest/APIReference/API_Operations_Amazon_Route_53.html","https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_DisableDomainTransferLock.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:route53.amazonaws.com and event.action:DisableDomainTransferLock and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Route 53 Domain Transfer Lock Disabled v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a transfer lock was removed from a Route 53 domain. It is recommended to refrain from performing this action unless intending to transfer the domain to a different registrar.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["A domain transfer lock may be disabled by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Activity from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/Route53/latest/APIReference/API_Operations_Amazon_Route_53.html","https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_DisableDomainTransferLock.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:route53.amazonaws.com and event.action:DisableDomainTransferLock and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"12051077-0124-4394-9522-8f4f4db1d674","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/12a2f15d-597e-4334-88ff-38a02cb1330b.json b/fleet-packages/detection-rules-composite/kibana/security_rule/12a2f15d-597e-4334-88ff-38a02cb1330b.json new file mode 100644 index 0000000000000..8e58f7624bd37 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/12a2f15d-597e-4334-88ff-38a02cb1330b.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"12a2f15d-597e-4334-88ff-38a02cb1330b","versions":[{"name":"Kubernetes Suspicious Self-Subject Review v200.0.0","rule_version":"200.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects when a service account or node attempts to enumerate their own permissions via the selfsubjectaccessreview or selfsubjectrulesreview APIs. This is highly unusual behavior for non-human identities like service accounts and nodes. An adversary may have gained access to credentials/tokens and this could be an attempt to determine what privileges they have to facilitate further movement or execution within the cluster.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator may submit this request as an \"impersonatedUser\" to determine what privileges a particular service account has been granted. However, an adversary may utilize the same technique as a means to determine the privileges of another token other than that of the compromised account."],"references":["https://www.paloaltonetworks.com/apps/pan/public/downloadResource?pagePath=/content/pan/en_US/resources/whitepapers/kubernetes-privilege-escalation-excessive-permissions-in-popular-platforms","https://kubernetes.io/docs/reference/access-authn-authz/authorization/#checking-api-access","https://techcommunity.microsoft.com/t5/microsoft-defender-for-cloud/detecting-identity-attacks-in-kubernetes/ba-p/3232340"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1613","name":"Container and Resource Discovery","reference":"https://attack.mitre.org/techniques/T1613/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\"\n and kubernetes.audit.verb:\"create\"\n and kubernetes.audit.objectRef.resource:(\"selfsubjectaccessreviews\" or \"selfsubjectrulesreviews\")\n and (kubernetes.audit.user.username:(system\\:serviceaccount\\:* or system\\:node\\:*) \n or kubernetes.audit.impersonatedUser.username:(system\\:serviceaccount\\:* or system\\:node\\:*))\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.impersonatedUser.username","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.user.username","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},{"name":"Kubernetes Suspicious Self-Subject Review v200.0.1","rule_version":"200.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects when a service account or node attempts to enumerate their own permissions via the selfsubjectaccessreview or selfsubjectrulesreview APIs. This is highly unusual behavior for non-human identities like service accounts and nodes. An adversary may have gained access to credentials/tokens and this could be an attempt to determine what privileges they have to facilitate further movement or execution within the cluster.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator may submit this request as an \"impersonatedUser\" to determine what privileges a particular service account has been granted. However, an adversary may utilize the same technique as a means to determine the privileges of another token other than that of the compromised account."],"references":["https://www.paloaltonetworks.com/apps/pan/public/downloadResource?pagePath=/content/pan/en_US/resources/whitepapers/kubernetes-privilege-escalation-excessive-permissions-in-popular-platforms","https://kubernetes.io/docs/reference/access-authn-authz/authorization/#checking-api-access","https://techcommunity.microsoft.com/t5/microsoft-defender-for-cloud/detecting-identity-attacks-in-kubernetes/ba-p/3232340"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1613","name":"Container and Resource Discovery","reference":"https://attack.mitre.org/techniques/T1613/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\"\n and kubernetes.audit.verb:\"create\"\n and kubernetes.audit.objectRef.resource:(\"selfsubjectaccessreviews\" or \"selfsubjectrulesreviews\")\n and (kubernetes.audit.user.username:(system\\:serviceaccount\\:* or system\\:node\\:*) \n or kubernetes.audit.impersonatedUser.username:(system\\:serviceaccount\\:* or system\\:node\\:*))\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.impersonatedUser.username","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.user.username","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},{"name":"Kubernetes Suspicious Self-Subject Review v200.0.2","rule_version":"200.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects when a service account or node attempts to enumerate their own permissions via the selfsubjectaccessreview or selfsubjectrulesreview APIs. This is highly unusual behavior for non-human identities like service accounts and nodes. An adversary may have gained access to credentials/tokens and this could be an attempt to determine what privileges they have to facilitate further movement or execution within the cluster.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator may submit this request as an \"impersonatedUser\" to determine what privileges a particular service account has been granted. However, an adversary may utilize the same technique as a means to determine the privileges of another token other than that of the compromised account."],"references":["https://www.paloaltonetworks.com/apps/pan/public/downloadResource?pagePath=/content/pan/en_US/resources/whitepapers/kubernetes-privilege-escalation-excessive-permissions-in-popular-platforms","https://kubernetes.io/docs/reference/access-authn-authz/authorization/#checking-api-access","https://techcommunity.microsoft.com/t5/microsoft-defender-for-cloud/detecting-identity-attacks-in-kubernetes/ba-p/3232340"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1613","name":"Container and Resource Discovery","reference":"https://attack.mitre.org/techniques/T1613/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\"\n and kubernetes.audit.verb:\"create\"\n and kubernetes.audit.objectRef.resource:(\"selfsubjectaccessreviews\" or \"selfsubjectrulesreviews\")\n and (kubernetes.audit.user.username:(system\\:serviceaccount\\:* or system\\:node\\:*) \n or kubernetes.audit.impersonatedUser.username:(system\\:serviceaccount\\:* or system\\:node\\:*))\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.impersonatedUser.username","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.user.username","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."}]},"id":"12a2f15d-597e-4334-88ff-38a02cb1330b","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/12cbf709-69e8-4055-94f9-24314385c27e.json b/fleet-packages/detection-rules-composite/kibana/security_rule/12cbf709-69e8-4055-94f9-24314385c27e.json new file mode 100644 index 0000000000000..e2a0d597bc04f --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/12cbf709-69e8-4055-94f9-24314385c27e.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"12cbf709-69e8-4055-94f9-24314385c27e","versions":[{"name":"Kubernetes Pod Created With HostNetwork v200.0.0","rule_version":"200.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rules detects an attempt to create or modify a pod attached to the host network. HostNetwork allows a pod to use the node network namespace. Doing so gives the pod access to any service running on localhost of the host. An attacker could use this access to snoop on network activity of other pods on the same node or bypass restrictive network policies applied to its given namespace.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator or developer may want to use a pod that runs as root and shares the hosts IPC, Network, and PID namespaces for debugging purposes. If something is going wrong in the cluster and there is no easy way to SSH onto the host nodes directly, a privileged pod of this nature can be useful for viewing things like iptable rules and network namespaces from the host's perspective. Add exceptions for trusted container images using the query field \"kubernetes.audit.requestObject.spec.container.image\""],"references":["https://research.nccgroup.com/2021/11/10/detection-engineering-for-kubernetes-clusters/#part3-kubernetes-detections","https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces","https://bishopfox.com/blog/kubernetes-pod-privilege-escalation"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.objectRef.resource:\"pods\" \n and kubernetes.audit.verb:(\"create\" or \"update\" or \"patch\") \n and kubernetes.audit.requestObject.spec.hostNetwork:true\n and not kubernetes.audit.requestObject.spec.containers.image: (\"docker.elastic.co/beats/elastic-agent:8.4.0\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.hostNetwork","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},{"name":"Kubernetes Pod Created With HostNetwork v200.0.1","rule_version":"200.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rules detects an attempt to create or modify a pod attached to the host network. HostNetwork allows a pod to use the node network namespace. Doing so gives the pod access to any service running on localhost of the host. An attacker could use this access to snoop on network activity of other pods on the same node or bypass restrictive network policies applied to its given namespace.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator or developer may want to use a pod that runs as root and shares the hosts IPC, Network, and PID namespaces for debugging purposes. If something is going wrong in the cluster and there is no easy way to SSH onto the host nodes directly, a privileged pod of this nature can be useful for viewing things like iptable rules and network namespaces from the host's perspective. Add exceptions for trusted container images using the query field \"kubernetes.audit.requestObject.spec.container.image\""],"references":["https://research.nccgroup.com/2021/11/10/detection-engineering-for-kubernetes-clusters/#part3-kubernetes-detections","https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces","https://bishopfox.com/blog/kubernetes-pod-privilege-escalation"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.objectRef.resource:\"pods\" \n and kubernetes.audit.verb:(\"create\" or \"update\" or \"patch\") \n and kubernetes.audit.requestObject.spec.hostNetwork:true\n and not kubernetes.audit.requestObject.spec.containers.image: (\"docker.elastic.co/beats/elastic-agent:8.4.0\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.hostNetwork","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},{"name":"Kubernetes Pod Created With HostNetwork v200.0.2","rule_version":"200.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rules detects an attempt to create or modify a pod attached to the host network. HostNetwork allows a pod to use the node network namespace. Doing so gives the pod access to any service running on localhost of the host. An attacker could use this access to snoop on network activity of other pods on the same node or bypass restrictive network policies applied to its given namespace.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator or developer may want to use a pod that runs as root and shares the hosts IPC, Network, and PID namespaces for debugging purposes. If something is going wrong in the cluster and there is no easy way to SSH onto the host nodes directly, a privileged pod of this nature can be useful for viewing things like iptable rules and network namespaces from the host's perspective. Add exceptions for trusted container images using the query field \"kubernetes.audit.requestObject.spec.container.image\""],"references":["https://research.nccgroup.com/2021/11/10/detection-engineering-for-kubernetes-clusters/#part3-kubernetes-detections","https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces","https://bishopfox.com/blog/kubernetes-pod-privilege-escalation"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.objectRef.resource:\"pods\" \n and kubernetes.audit.verb:(\"create\" or \"update\" or \"patch\") \n and kubernetes.audit.requestObject.spec.hostNetwork:true\n and not kubernetes.audit.requestObject.spec.containers.image: (\"docker.elastic.co/beats/elastic-agent:8.4.0\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.hostNetwork","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."}]},"id":"12cbf709-69e8-4055-94f9-24314385c27e","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/12f07955-1674-44f7-86b5-c35da0a6f41a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/12f07955-1674-44f7-86b5-c35da0a6f41a.json new file mode 100644 index 0000000000000..ab1ed33e80110 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/12f07955-1674-44f7-86b5-c35da0a6f41a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"12f07955-1674-44f7-86b5-c35da0a6f41a","versions":[{"name":"Suspicious Cmd Execution via WMI v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious command execution (cmd) via Windows Management Instrumentation (WMI) on a remote host. This could be indicative of adversary lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1047","name":"Windows Management Instrumentation","reference":"https://attack.mitre.org/techniques/T1047/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"WmiPrvSE.exe\" and process.name : \"cmd.exe\" and\n process.args : \"\\\\\\\\127.0.0.1\\\\*\" and process.args : (\"2>&1\", \"1>\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious Cmd Execution via WMI v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious command execution (cmd) via Windows Management Instrumentation (WMI) on a remote host. This could be indicative of adversary lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1047","name":"Windows Management Instrumentation","reference":"https://attack.mitre.org/techniques/T1047/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"WmiPrvSE.exe\" and process.name : \"cmd.exe\" and\n process.args : \"\\\\\\\\127.0.0.1\\\\*\" and process.args : (\"2>&1\", \"1>\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious Cmd Execution via WMI v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious command execution (cmd) via Windows Management Instrumentation (WMI) on a remote host. This could be indicative of adversary lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1047","name":"Windows Management Instrumentation","reference":"https://attack.mitre.org/techniques/T1047/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"WmiPrvSE.exe\" and process.name : \"cmd.exe\" and\n process.args : \"\\\\\\\\127.0.0.1\\\\*\" and process.args : (\"2>&1\", \"1>\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"12f07955-1674-44f7-86b5-c35da0a6f41a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/1327384f-00f3-44d5-9a8c-2373ba071e92.json b/fleet-packages/detection-rules-composite/kibana/security_rule/1327384f-00f3-44d5-9a8c-2373ba071e92.json new file mode 100644 index 0000000000000..378f840cb56f7 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/1327384f-00f3-44d5-9a8c-2373ba071e92.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"1327384f-00f3-44d5-9a8c-2373ba071e92","versions":[{"name":"Persistence via Scheduled Job Creation v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A job can be used to schedule programs or scripts to be executed at a specified date and time. Adversaries may abuse task scheduling functionality to facilitate initial or recurring execution of malicious code.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate scheduled jobs may be created during installation of new software."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path : \"?:\\\\Windows\\\\Tasks\\\\*\" and file.extension : \"job\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Persistence via Scheduled Job Creation v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A job can be used to schedule programs or scripts to be executed at a specified date and time. Adversaries may abuse task scheduling functionality to facilitate initial or recurring execution of malicious code.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate scheduled jobs may be created during installation of new software."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path : \"?:\\\\Windows\\\\Tasks\\\\*\" and file.extension : \"job\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Persistence via Scheduled Job Creation v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A job can be used to schedule programs or scripts to be executed at a specified date and time. Adversaries may abuse task scheduling functionality to facilitate initial or recurring execution of malicious code.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate scheduled jobs may be created during installation of new software."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path : \"?:\\\\Windows\\\\Tasks\\\\*\" and file.extension : \"job\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"1327384f-00f3-44d5-9a8c-2373ba071e92","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/138c5dd5-838b-446e-b1ac-c995c7f8108a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/138c5dd5-838b-446e-b1ac-c995c7f8108a.json new file mode 100644 index 0000000000000..25f0a3747b461 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/138c5dd5-838b-446e-b1ac-c995c7f8108a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"138c5dd5-838b-446e-b1ac-c995c7f8108a","versions":[{"name":"Rare User Logon v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job found an unusual user name in the authentication logs. An unusual user name is one way of detecting credentialed access by means of a new or dormant user account. An inactive user account (because the user has left the organization) that becomes active may be due to credentialed access using a compromised account password. Threat actors will sometimes also create new users as a means of persisting in a compromised web application.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["User accounts that are rarely active, such as a site reliability engineer (SRE) or developer logging into a production server for troubleshooting, may trigger this alert. Under some conditions, a newly created user account may briefly trigger this alert while the model is learning."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_rare_user","type":"machine_learning"},{"name":"Rare User Logon v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job found an unusual user name in the authentication logs. An unusual user name is one way of detecting credentialed access by means of a new or dormant user account. An inactive user account (because the user has left the organization) that becomes active may be due to credentialed access using a compromised account password. Threat actors will sometimes also create new users as a means of persisting in a compromised web application.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["User accounts that are rarely active, such as a site reliability engineer (SRE) or developer logging into a production server for troubleshooting, may trigger this alert. Under some conditions, a newly created user account may briefly trigger this alert while the model is learning."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_rare_user","type":"machine_learning"},{"name":"Rare User Logon v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job found an unusual user name in the authentication logs. An unusual user name is one way of detecting credentialed access by means of a new or dormant user account. An inactive user account (because the user has left the organization) that becomes active may be due to credentialed access using a compromised account password. Threat actors will sometimes also create new users as a means of persisting in a compromised web application.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["User accounts that are rarely active, such as a site reliability engineer (SRE) or developer logging into a production server for troubleshooting, may trigger this alert. Under some conditions, a newly created user account may briefly trigger this alert while the model is learning."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_rare_user","type":"machine_learning"}]},"id":"138c5dd5-838b-446e-b1ac-c995c7f8108a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/141e9b3a-ff37-4756-989d-05d7cbf35b0e.json b/fleet-packages/detection-rules-composite/kibana/security_rule/141e9b3a-ff37-4756-989d-05d7cbf35b0e.json new file mode 100644 index 0000000000000..8303de9667902 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/141e9b3a-ff37-4756-989d-05d7cbf35b0e.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"141e9b3a-ff37-4756-989d-05d7cbf35b0e","versions":[{"name":"Azure External Guest User Invitation v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an invitation to an external user in Azure Active Directory (AD). Azure AD is extended to include collaboration, allowing you to invite people from outside your organization to be guest users in your cloud account. Unless there is a business need to provision guest access, it is best practice avoid creating guest users. Guest users could potentially be overlooked indefinitely leading to a potential vulnerability.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Guest user invitations may be sent out by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Guest user invitations from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/governance/policy/samples/cis-azure-1-1-0"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Invite external user\" and azure.auditlogs.properties.target_resources.*.display_name:guest and event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.properties.target_resources.*.display_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure External Guest User Invitation v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an invitation to an external user in Azure Active Directory (AD). Azure AD is extended to include collaboration, allowing you to invite people from outside your organization to be guest users in your cloud account. Unless there is a business need to provision guest access, it is best practice avoid creating guest users. Guest users could potentially be overlooked indefinitely leading to a potential vulnerability.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Guest user invitations may be sent out by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Guest user invitations from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/governance/policy/samples/cis-azure-1-1-0"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Invite external user\" and azure.auditlogs.properties.target_resources.*.display_name:guest and event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.properties.target_resources.*.display_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure External Guest User Invitation v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an invitation to an external user in Azure Active Directory (AD). Azure AD is extended to include collaboration, allowing you to invite people from outside your organization to be guest users in your cloud account. Unless there is a business need to provision guest access, it is best practice avoid creating guest users. Guest users could potentially be overlooked indefinitely leading to a potential vulnerability.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Guest user invitations may be sent out by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Guest user invitations from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/governance/policy/samples/cis-azure-1-1-0"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Invite external user\" and azure.auditlogs.properties.target_resources.*.display_name:guest and event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.properties.target_resources.*.display_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"141e9b3a-ff37-4756-989d-05d7cbf35b0e","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/143cb236-0956-4f42-a706-814bcaa0cf5a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/143cb236-0956-4f42-a706-814bcaa0cf5a.json new file mode 100644 index 0000000000000..2cf05f6c294cd --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/143cb236-0956-4f42-a706-814bcaa0cf5a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"143cb236-0956-4f42-a706-814bcaa0cf5a","versions":[{"name":"RPC (Remote Procedure Call) from the Internet v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of RPC traffic from the Internet. RPC is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Initial Access","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and (destination.port:135 or event.dataset:zeek.dce_rpc) and\n not source.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n ) and\n destination.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},{"name":"RPC (Remote Procedure Call) from the Internet v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of RPC traffic from the Internet. RPC is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Initial Access","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and (destination.port:135 or event.dataset:zeek.dce_rpc) and\n not source.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n ) and\n destination.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},{"name":"RPC (Remote Procedure Call) from the Internet v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of RPC traffic from the Internet. RPC is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Initial Access","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and (destination.port:135 or event.dataset:zeek.dce_rpc) and\n not source.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n ) and\n destination.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]}]},"id":"143cb236-0956-4f42-a706-814bcaa0cf5a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/14de811c-d60f-11ec-9fd7-f661ea17fbce.json b/fleet-packages/detection-rules-composite/kibana/security_rule/14de811c-d60f-11ec-9fd7-f661ea17fbce.json new file mode 100644 index 0000000000000..b6f0ff291085d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/14de811c-d60f-11ec-9fd7-f661ea17fbce.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"14de811c-d60f-11ec-9fd7-f661ea17fbce","versions":[{"name":"Kubernetes User Exec into Pod v200.0.0","rule_version":"200.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects a user attempt to establish a shell session into a pod using the 'exec' command. Using the 'exec' command in a pod allows a user to establish a temporary shell session and execute any process/commands in the pod. An adversary may call bash to gain a persistent interactive shell which will allow access to any data the pod has permissions to, including secrets.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator may need to exec into a pod for a legitimate reason like debugging purposes. Containers built from Linux and Windows OS images, tend to include debugging utilities. In this case, an admin may choose to run commands inside a specific container with kubectl exec ${POD_NAME} -c ${CONTAINER_NAME} -- ${CMD} ${ARG1} ${ARG2} ... ${ARGN}. For example, the following command can be used to look at logs from a running Cassandra pod: kubectl exec cassandra --cat /var/log/cassandra/system.log . Additionally, the -i and -t arguments might be used to run a shell connected to the terminal: kubectl exec -i -t cassandra -- sh"],"references":["https://kubernetes.io/docs/tasks/debug/debug-application/debug-running-pod/","https://kubernetes.io/docs/tasks/debug/debug-application/get-shell-running-container/"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1609","name":"Container Administration Command","reference":"https://attack.mitre.org/techniques/T1609/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.verb:\"create\" \n and kubernetes.audit.objectRef.resource:\"pods\"\n and kubernetes.audit.objectRef.subresource:\"exec\"\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.subresource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},{"name":"Kubernetes User Exec into Pod v200.0.1","rule_version":"200.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects a user attempt to establish a shell session into a pod using the 'exec' command. Using the 'exec' command in a pod allows a user to establish a temporary shell session and execute any process/commands in the pod. An adversary may call bash to gain a persistent interactive shell which will allow access to any data the pod has permissions to, including secrets.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator may need to exec into a pod for a legitimate reason like debugging purposes. Containers built from Linux and Windows OS images, tend to include debugging utilities. In this case, an admin may choose to run commands inside a specific container with kubectl exec ${POD_NAME} -c ${CONTAINER_NAME} -- ${CMD} ${ARG1} ${ARG2} ... ${ARGN}. For example, the following command can be used to look at logs from a running Cassandra pod: kubectl exec cassandra --cat /var/log/cassandra/system.log . Additionally, the -i and -t arguments might be used to run a shell connected to the terminal: kubectl exec -i -t cassandra -- sh"],"references":["https://kubernetes.io/docs/tasks/debug/debug-application/debug-running-pod/","https://kubernetes.io/docs/tasks/debug/debug-application/get-shell-running-container/"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1609","name":"Container Administration Command","reference":"https://attack.mitre.org/techniques/T1609/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.verb:\"create\" \n and kubernetes.audit.objectRef.resource:\"pods\"\n and kubernetes.audit.objectRef.subresource:\"exec\"\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.subresource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},{"name":"Kubernetes User Exec into Pod v200.0.2","rule_version":"200.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects a user attempt to establish a shell session into a pod using the 'exec' command. Using the 'exec' command in a pod allows a user to establish a temporary shell session and execute any process/commands in the pod. An adversary may call bash to gain a persistent interactive shell which will allow access to any data the pod has permissions to, including secrets.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator may need to exec into a pod for a legitimate reason like debugging purposes. Containers built from Linux and Windows OS images, tend to include debugging utilities. In this case, an admin may choose to run commands inside a specific container with kubectl exec ${POD_NAME} -c ${CONTAINER_NAME} -- ${CMD} ${ARG1} ${ARG2} ... ${ARGN}. For example, the following command can be used to look at logs from a running Cassandra pod: kubectl exec cassandra --cat /var/log/cassandra/system.log . Additionally, the -i and -t arguments might be used to run a shell connected to the terminal: kubectl exec -i -t cassandra -- sh"],"references":["https://kubernetes.io/docs/tasks/debug/debug-application/debug-running-pod/","https://kubernetes.io/docs/tasks/debug/debug-application/get-shell-running-container/"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1609","name":"Container Administration Command","reference":"https://attack.mitre.org/techniques/T1609/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.verb:\"create\" \n and kubernetes.audit.objectRef.resource:\"pods\"\n and kubernetes.audit.objectRef.subresource:\"exec\"\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.subresource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."}]},"id":"14de811c-d60f-11ec-9fd7-f661ea17fbce","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/14ed1aa9-ebfd-4cf9-a463-0ac59ec55204.json b/fleet-packages/detection-rules-composite/kibana/security_rule/14ed1aa9-ebfd-4cf9-a463-0ac59ec55204.json new file mode 100644 index 0000000000000..457abc07349f9 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/14ed1aa9-ebfd-4cf9-a463-0ac59ec55204.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"14ed1aa9-ebfd-4cf9-a463-0ac59ec55204","versions":[{"name":"Potential Persistence via Time Provider Modification v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modification of the Time Provider. Adversaries may establish persistence by registering and enabling a malicious DLL as a time provider. Windows uses the time provider architecture to obtain accurate time stamps from other network devices or clients in the network. Time providers are implemented in the form of a DLL file which resides in the System32 folder. The service W32Time initiates during the startup of Windows and loads w32time.dll.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://pentestlab.blog/2019/10/22/persistence-time-providers/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.003","name":"Time Providers","reference":"https://attack.mitre.org/techniques/T1547/003/"}]}]}],"language":"eql","query":"registry where event.type:\"change\" and\n registry.path:\"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\W32Time\\\\TimeProviders\\\\*\" and\n registry.data.strings:\"*.dll\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},{"name":"Potential Persistence via Time Provider Modification v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modification of the Time Provider. Adversaries may establish persistence by registering and enabling a malicious DLL as a time provider. Windows uses the time provider architecture to obtain accurate time stamps from other network devices or clients in the network. Time providers are implemented in the form of a DLL file which resides in the System32 folder. The service W32Time initiates during the startup of Windows and loads w32time.dll.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://pentestlab.blog/2019/10/22/persistence-time-providers/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.003","name":"Time Providers","reference":"https://attack.mitre.org/techniques/T1547/003/"}]}]}],"language":"eql","query":"registry where event.type:\"change\" and\n registry.path:\"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\W32Time\\\\TimeProviders\\\\*\" and\n registry.data.strings:\"*.dll\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},{"name":"Potential Persistence via Time Provider Modification v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modification of the Time Provider. Adversaries may establish persistence by registering and enabling a malicious DLL as a time provider. Windows uses the time provider architecture to obtain accurate time stamps from other network devices or clients in the network. Time providers are implemented in the form of a DLL file which resides in the System32 folder. The service W32Time initiates during the startup of Windows and loads w32time.dll.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://pentestlab.blog/2019/10/22/persistence-time-providers/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.003","name":"Time Providers","reference":"https://attack.mitre.org/techniques/T1547/003/"}]}]}],"language":"eql","query":"registry where event.type:\"change\" and\n registry.path:\"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\W32Time\\\\TimeProviders\\\\*\" and\n registry.data.strings:\"*.dll\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]}]},"id":"14ed1aa9-ebfd-4cf9-a463-0ac59ec55204","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/15a8ba77-1c13-4274-88fe-6bd14133861e.json b/fleet-packages/detection-rules-composite/kibana/security_rule/15a8ba77-1c13-4274-88fe-6bd14133861e.json new file mode 100644 index 0000000000000..6ae29f96f7630 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/15a8ba77-1c13-4274-88fe-6bd14133861e.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"15a8ba77-1c13-4274-88fe-6bd14133861e","versions":[{"name":"Scheduled Task Execution at Scale via GPO v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the modification of Group Policy Object attributes to execute a scheduled task in the objects controlled by the GPO.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Scheduled Task Execution at Scale via GPO\n\nGroup Policy Objects (GPOs) can be used by attackers to execute scheduled tasks at scale to compromise objects controlled\nby a given GPO. This is done by changing the contents of the `\\Machine\\Preferences\\ScheduledTasks\\ScheduledTasks.xml`\nfile.\n\n#### Possible investigation steps\n\n- This attack abuses a legitimate mechanism of Active Directory, so it is important to determine whether the activity\nis legitimate and the administrator is authorized to perform this operation.\n- Retrieve the contents of the `ScheduledTasks.xml` file, and check the `` and `` XML tags for any\npotentially malicious commands or binaries.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Scope which objects may be compromised by retrieving information about which objects are controlled by the GPO.\n\n### False positive analysis\n\n- Verify if the execution is allowed and done under change management, and if the execution is legitimate.\n\n### Related rules\n\n- Group Policy Abuse for Privilege Addition - b9554892-5e0e-424b-83a0-5aef95aa43bf\n- Startup/Logon Script added to Group Policy Object - 16fac1a1-21ee-4ca6-b720-458e3855d046\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- The investigation and containment must be performed in every computer controlled by the GPO, where necessary.\n- Remove the script from the GPO.\n- Check if other GPOs have suspicious scheduled tasks attached.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0025_windows_audit_directory_service_changes.md","https://github.com/atc-project/atc-data/blob/f2bbb51ecf68e2c9f488e3c70dcdd3df51d2a46b/docs/Logging_Policies/LP_0029_windows_audit_detailed_file_share.md","https://labs.f-secure.com/tools/sharpgpoabuse","https://twitter.com/menasec1/status/1106899890377052160","https://github.com/SigmaHQ/sigma/blob/master/rules/windows/builtin/security/win_gpo_scheduledtasks.yml"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]},{"id":"T1484","name":"Domain Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/","subtechnique":[{"id":"T1484.001","name":"Group Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"(event.code: \"5136\" and winlog.event_data.AttributeLDAPDisplayName:(\"gPCMachineExtensionNames\" or \"gPCUserExtensionNames\") and\n winlog.event_data.AttributeValue:(*CAB54552-DEEA-4691-817E-ED4A4D1AFC72* and *AADCED64-746C-4633-A97C-D61349046527*))\nor\n(event.code: \"5145\" and winlog.event_data.ShareName: \"\\\\\\\\*\\\\SYSVOL\" and winlog.event_data.RelativeTargetName: *ScheduledTasks.xml and\n (message: WriteData or winlog.event_data.AccessList: *%%4417*))\n","required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"message","type":"match_only_text"},{"ecs":false,"name":"winlog.event_data.AccessList","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeValue","type":"unknown"},{"ecs":false,"name":"winlog.event_data.RelativeTargetName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ShareName","type":"unknown"}],"setup":"The 'Audit Detailed File Share' audit policy must be configured (Success Failure).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nObject Access >\nAudit Detailed File Share (Success,Failure)\n```\n\nThe 'Audit Directory Service Changes' audit policy must be configured (Success Failure).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```"},{"name":"Scheduled Task Execution at Scale via GPO v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the modification of Group Policy Object attributes to execute a scheduled task in the objects controlled by the GPO.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Scheduled Task Execution at Scale via GPO\n\nGroup Policy Objects (GPOs) can be used by attackers to execute scheduled tasks at scale to compromise objects controlled\nby a given GPO. This is done by changing the contents of the `\\Machine\\Preferences\\ScheduledTasks\\ScheduledTasks.xml`\nfile.\n\n#### Possible investigation steps\n\n- This attack abuses a legitimate mechanism of Active Directory, so it is important to determine whether the activity\nis legitimate and the administrator is authorized to perform this operation.\n- Retrieve the contents of the `ScheduledTasks.xml` file, and check the `` and `` XML tags for any\npotentially malicious commands or binaries.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Scope which objects may be compromised by retrieving information about which objects are controlled by the GPO.\n\n### False positive analysis\n\n- Verify if the execution is allowed and done under change management, and if the execution is legitimate.\n\n### Related rules\n\n- Group Policy Abuse for Privilege Addition - b9554892-5e0e-424b-83a0-5aef95aa43bf\n- Startup/Logon Script added to Group Policy Object - 16fac1a1-21ee-4ca6-b720-458e3855d046\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- The investigation and containment must be performed in every computer controlled by the GPO, where necessary.\n- Remove the script from the GPO.\n- Check if other GPOs have suspicious scheduled tasks attached.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0025_windows_audit_directory_service_changes.md","https://github.com/atc-project/atc-data/blob/f2bbb51ecf68e2c9f488e3c70dcdd3df51d2a46b/docs/Logging_Policies/LP_0029_windows_audit_detailed_file_share.md","https://labs.f-secure.com/tools/sharpgpoabuse","https://twitter.com/menasec1/status/1106899890377052160","https://github.com/SigmaHQ/sigma/blob/master/rules/windows/builtin/security/win_gpo_scheduledtasks.yml"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]},{"id":"T1484","name":"Domain Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/","subtechnique":[{"id":"T1484.001","name":"Group Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"(event.code: \"5136\" and winlog.event_data.AttributeLDAPDisplayName:(\"gPCMachineExtensionNames\" or \"gPCUserExtensionNames\") and\n winlog.event_data.AttributeValue:(*CAB54552-DEEA-4691-817E-ED4A4D1AFC72* and *AADCED64-746C-4633-A97C-D61349046527*))\nor\n(event.code: \"5145\" and winlog.event_data.ShareName: \"\\\\\\\\*\\\\SYSVOL\" and winlog.event_data.RelativeTargetName: *ScheduledTasks.xml and\n (message: WriteData or winlog.event_data.AccessList: *%%4417*))\n","required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"message","type":"match_only_text"},{"ecs":false,"name":"winlog.event_data.AccessList","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeValue","type":"unknown"},{"ecs":false,"name":"winlog.event_data.RelativeTargetName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ShareName","type":"unknown"}],"setup":"The 'Audit Detailed File Share' audit policy must be configured (Success Failure).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nObject Access >\nAudit Detailed File Share (Success,Failure)\n```\n\nThe 'Audit Directory Service Changes' audit policy must be configured (Success Failure).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```"},{"name":"Scheduled Task Execution at Scale via GPO v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the modification of Group Policy Object attributes to execute a scheduled task in the objects controlled by the GPO.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Scheduled Task Execution at Scale via GPO\n\nGroup Policy Objects (GPOs) can be used by attackers to execute scheduled tasks at scale to compromise objects controlled\nby a given GPO. This is done by changing the contents of the `\\Machine\\Preferences\\ScheduledTasks\\ScheduledTasks.xml`\nfile.\n\n#### Possible investigation steps\n\n- This attack abuses a legitimate mechanism of Active Directory, so it is important to determine whether the activity\nis legitimate and the administrator is authorized to perform this operation.\n- Retrieve the contents of the `ScheduledTasks.xml` file, and check the `` and `` XML tags for any\npotentially malicious commands or binaries.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Scope which objects may be compromised by retrieving information about which objects are controlled by the GPO.\n\n### False positive analysis\n\n- Verify if the execution is allowed and done under change management, and if the execution is legitimate.\n\n### Related rules\n\n- Group Policy Abuse for Privilege Addition - b9554892-5e0e-424b-83a0-5aef95aa43bf\n- Startup/Logon Script added to Group Policy Object - 16fac1a1-21ee-4ca6-b720-458e3855d046\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- The investigation and containment must be performed in every computer controlled by the GPO, where necessary.\n- Remove the script from the GPO.\n- Check if other GPOs have suspicious scheduled tasks attached.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0025_windows_audit_directory_service_changes.md","https://github.com/atc-project/atc-data/blob/f2bbb51ecf68e2c9f488e3c70dcdd3df51d2a46b/docs/Logging_Policies/LP_0029_windows_audit_detailed_file_share.md","https://labs.f-secure.com/tools/sharpgpoabuse","https://twitter.com/menasec1/status/1106899890377052160","https://github.com/SigmaHQ/sigma/blob/master/rules/windows/builtin/security/win_gpo_scheduledtasks.yml"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]},{"id":"T1484","name":"Domain Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/","subtechnique":[{"id":"T1484.001","name":"Group Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"(event.code: \"5136\" and winlog.event_data.AttributeLDAPDisplayName:(\"gPCMachineExtensionNames\" or \"gPCUserExtensionNames\") and\n winlog.event_data.AttributeValue:(*CAB54552-DEEA-4691-817E-ED4A4D1AFC72* and *AADCED64-746C-4633-A97C-D61349046527*))\nor\n(event.code: \"5145\" and winlog.event_data.ShareName: \"\\\\\\\\*\\\\SYSVOL\" and winlog.event_data.RelativeTargetName: *ScheduledTasks.xml and\n (message: WriteData or winlog.event_data.AccessList: *%%4417*))\n","required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"message","type":"match_only_text"},{"ecs":false,"name":"winlog.event_data.AccessList","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeValue","type":"unknown"},{"ecs":false,"name":"winlog.event_data.RelativeTargetName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ShareName","type":"unknown"}],"setup":"The 'Audit Detailed File Share' audit policy must be configured (Success Failure).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nObject Access >\nAudit Detailed File Share (Success,Failure)\n```\n\nThe 'Audit Directory Service Changes' audit policy must be configured (Success Failure).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```"}]},"id":"15a8ba77-1c13-4274-88fe-6bd14133861e","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/15c0b7a7-9c34-4869-b25b-fa6518414899.json b/fleet-packages/detection-rules-composite/kibana/security_rule/15c0b7a7-9c34-4869-b25b-fa6518414899.json new file mode 100644 index 0000000000000..83f73c5bba37e --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/15c0b7a7-9c34-4869-b25b-fa6518414899.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"15c0b7a7-9c34-4869-b25b-fa6518414899","versions":[{"name":"Remote File Download via Desktopimgdownldr Utility v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the desktopimgdownldr utility being used to download a remote file. An adversary may use desktopimgdownldr to download arbitrary files as an alternative to certutil.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote File Download via Desktopimgdownldr Utility\n\nAttackers commonly transfer tooling or malware from external systems into a compromised environment using the command\nand control channel. However, they can also abuse signed utilities to drop these files.\n\nThe `Desktopimgdownldr.exe` utility is used to to configure lockscreen/desktop image, and can be abused with the\n`lockscreenurl` argument to download remote files and tools, this rule looks for this behavior.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Check the reputation of the domain or IP address used to host the downloaded file or if the user downloaded the file\nfrom an internal system.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unusual but can be done by administrators. Benign true positives (B-TPs) can be added as exceptions\nif necessary.\n- Analysts can dismiss the alert if the downloaded file is a legitimate image.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://labs.sentinelone.com/living-off-windows-land-a-new-native-file-downldr/"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"desktopimgdownldr.exe\" or process.pe.original_file_name == \"desktopimgdownldr.exe\") and\n process.args : \"/lockscreenurl:http*\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Remote File Download via Desktopimgdownldr Utility v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the desktopimgdownldr utility being used to download a remote file. An adversary may use desktopimgdownldr to download arbitrary files as an alternative to certutil.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote File Download via Desktopimgdownldr Utility\n\nAttackers commonly transfer tooling or malware from external systems into a compromised environment using the command\nand control channel. However, they can also abuse signed utilities to drop these files.\n\nThe `Desktopimgdownldr.exe` utility is used to to configure lockscreen/desktop image, and can be abused with the\n`lockscreenurl` argument to download remote files and tools, this rule looks for this behavior.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Check the reputation of the domain or IP address used to host the downloaded file or if the user downloaded the file\nfrom an internal system.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unusual but can be done by administrators. Benign true positives (B-TPs) can be added as exceptions\nif necessary.\n- Analysts can dismiss the alert if the downloaded file is a legitimate image.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://labs.sentinelone.com/living-off-windows-land-a-new-native-file-downldr/"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"desktopimgdownldr.exe\" or process.pe.original_file_name == \"desktopimgdownldr.exe\") and\n process.args : \"/lockscreenurl:http*\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Remote File Download via Desktopimgdownldr Utility v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the desktopimgdownldr utility being used to download a remote file. An adversary may use desktopimgdownldr to download arbitrary files as an alternative to certutil.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote File Download via Desktopimgdownldr Utility\n\nAttackers commonly transfer tooling or malware from external systems into a compromised environment using the command\nand control channel. However, they can also abuse signed utilities to drop these files.\n\nThe `Desktopimgdownldr.exe` utility is used to to configure lockscreen/desktop image, and can be abused with the\n`lockscreenurl` argument to download remote files and tools, this rule looks for this behavior.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Check the reputation of the domain or IP address used to host the downloaded file or if the user downloaded the file\nfrom an internal system.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unusual but can be done by administrators. Benign true positives (B-TPs) can be added as exceptions\nif necessary.\n- Analysts can dismiss the alert if the downloaded file is a legitimate image.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://labs.sentinelone.com/living-off-windows-land-a-new-native-file-downldr/"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"desktopimgdownldr.exe\" or process.pe.original_file_name == \"desktopimgdownldr.exe\") and\n process.args : \"/lockscreenurl:http*\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"15c0b7a7-9c34-4869-b25b-fa6518414899","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/15dacaa0-5b90-466b-acab-63435a59701a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/15dacaa0-5b90-466b-acab-63435a59701a.json new file mode 100644 index 0000000000000..5b0eab421475b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/15dacaa0-5b90-466b-acab-63435a59701a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"15dacaa0-5b90-466b-acab-63435a59701a","versions":[{"name":"Virtual Private Network Connection Attempt v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of macOS built-in commands to connect to an existing Virtual Private Network (VPN). Adversaries may use VPN connections to laterally move and control remote systems on a network.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/rapid7/metasploit-framework/blob/master/modules/post/osx/manage/vpn.rb","https://www.unix.com/man-page/osx/8/networksetup/","https://superuser.com/questions/358513/start-configured-vpn-from-command-line-osx"],"tags":["Elastic","Host","macOS","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n (\n (process.name : \"networksetup\" and process.args : \"-connectpppoeservice\") or\n (process.name : \"scutil\" and process.args : \"--nc\" and process.args : \"start\") or\n (process.name : \"osascript\" and process.command_line : \"osascript*set VPN to service*\")\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Virtual Private Network Connection Attempt v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of macOS built-in commands to connect to an existing Virtual Private Network (VPN). Adversaries may use VPN connections to laterally move and control remote systems on a network.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/rapid7/metasploit-framework/blob/master/modules/post/osx/manage/vpn.rb","https://www.unix.com/man-page/osx/8/networksetup/","https://superuser.com/questions/358513/start-configured-vpn-from-command-line-osx"],"tags":["Elastic","Host","macOS","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n (\n (process.name : \"networksetup\" and process.args : \"-connectpppoeservice\") or\n (process.name : \"scutil\" and process.args : \"--nc\" and process.args : \"start\") or\n (process.name : \"osascript\" and process.command_line : \"osascript*set VPN to service*\")\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Virtual Private Network Connection Attempt v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of macOS built-in commands to connect to an existing Virtual Private Network (VPN). Adversaries may use VPN connections to laterally move and control remote systems on a network.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/rapid7/metasploit-framework/blob/master/modules/post/osx/manage/vpn.rb","https://www.unix.com/man-page/osx/8/networksetup/","https://superuser.com/questions/358513/start-configured-vpn-from-command-line-osx"],"tags":["Elastic","Host","macOS","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n (\n (process.name : \"networksetup\" and process.args : \"-connectpppoeservice\") or\n (process.name : \"scutil\" and process.args : \"--nc\" and process.args : \"start\") or\n (process.name : \"osascript\" and process.command_line : \"osascript*set VPN to service*\")\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"15dacaa0-5b90-466b-acab-63435a59701a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/16280f1e-57e6-4242-aa21-bb4d16f13b2f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/16280f1e-57e6-4242-aa21-bb4d16f13b2f.json new file mode 100644 index 0000000000000..b27aaa710f18e --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/16280f1e-57e6-4242-aa21-bb4d16f13b2f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"16280f1e-57e6-4242-aa21-bb4d16f13b2f","versions":[{"name":"Azure Automation Runbook Created or Modified v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Azure Automation runbook is created or modified. An adversary may create or modify an Azure Automation runbook to execute malicious code and maintain persistence in their target's environment.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://powerzure.readthedocs.io/en/latest/Functions/operational.html#create-backdoor","https://github.com/hausec/PowerZure","https://posts.specterops.io/attacking-azure-azure-ad-and-introducing-powerzure-ca70b330511a","https://azure.microsoft.com/en-in/blog/azure-automation-runbook-management/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and\n azure.activitylogs.operation_name:\n (\n \"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/RUNBOOKS/DRAFT/WRITE\" or\n \"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/RUNBOOKS/WRITE\" or\n \"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/RUNBOOKS/PUBLISH/ACTION\"\n ) and\n event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Automation Runbook Created or Modified v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Azure Automation runbook is created or modified. An adversary may create or modify an Azure Automation runbook to execute malicious code and maintain persistence in their target's environment.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://powerzure.readthedocs.io/en/latest/Functions/operational.html#create-backdoor","https://github.com/hausec/PowerZure","https://posts.specterops.io/attacking-azure-azure-ad-and-introducing-powerzure-ca70b330511a","https://azure.microsoft.com/en-in/blog/azure-automation-runbook-management/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and\n azure.activitylogs.operation_name:\n (\n \"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/RUNBOOKS/DRAFT/WRITE\" or\n \"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/RUNBOOKS/WRITE\" or\n \"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/RUNBOOKS/PUBLISH/ACTION\"\n ) and\n event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Automation Runbook Created or Modified v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Azure Automation runbook is created or modified. An adversary may create or modify an Azure Automation runbook to execute malicious code and maintain persistence in their target's environment.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://powerzure.readthedocs.io/en/latest/Functions/operational.html#create-backdoor","https://github.com/hausec/PowerZure","https://posts.specterops.io/attacking-azure-azure-ad-and-introducing-powerzure-ca70b330511a","https://azure.microsoft.com/en-in/blog/azure-automation-runbook-management/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and\n azure.activitylogs.operation_name:\n (\n \"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/RUNBOOKS/DRAFT/WRITE\" or\n \"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/RUNBOOKS/WRITE\" or\n \"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/RUNBOOKS/PUBLISH/ACTION\"\n ) and\n event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"16280f1e-57e6-4242-aa21-bb4d16f13b2f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/16904215-2c95-4ac8-bf5c-12354e047192.json b/fleet-packages/detection-rules-composite/kibana/security_rule/16904215-2c95-4ac8-bf5c-12354e047192.json new file mode 100644 index 0000000000000..a585d3377db53 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/16904215-2c95-4ac8-bf5c-12354e047192.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"16904215-2c95-4ac8-bf5c-12354e047192","versions":[{"name":"Potential Kerberos Attack via Bifrost v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of Bifrost, a known macOS Kerberos pentesting tool, which can be used to dump cached Kerberos tickets or attempt unauthorized authentication techniques such as pass-the-ticket/hash and kerberoasting.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/its-a-feature/bifrost"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.003","name":"Pass the Ticket","reference":"https://attack.mitre.org/techniques/T1550/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/","subtechnique":[{"id":"T1558.003","name":"Kerberoasting","reference":"https://attack.mitre.org/techniques/T1558/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and\n process.args:(\"-action\" and (\"-kerberoast\" or askhash or asktgs or asktgt or s4u or (\"-ticket\" and ptt) or (dump and (tickets or keytab))))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},{"name":"Potential Kerberos Attack via Bifrost v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of Bifrost, a known macOS Kerberos pentesting tool, which can be used to dump cached Kerberos tickets or attempt unauthorized authentication techniques such as pass-the-ticket/hash and kerberoasting.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/its-a-feature/bifrost"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.003","name":"Pass the Ticket","reference":"https://attack.mitre.org/techniques/T1550/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/","subtechnique":[{"id":"T1558.003","name":"Kerberoasting","reference":"https://attack.mitre.org/techniques/T1558/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and\n process.args:(\"-action\" and (\"-kerberoast\" or askhash or asktgs or asktgt or s4u or (\"-ticket\" and ptt) or (dump and (tickets or keytab))))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},{"name":"Potential Kerberos Attack via Bifrost v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of Bifrost, a known macOS Kerberos pentesting tool, which can be used to dump cached Kerberos tickets or attempt unauthorized authentication techniques such as pass-the-ticket/hash and kerberoasting.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/its-a-feature/bifrost"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.003","name":"Pass the Ticket","reference":"https://attack.mitre.org/techniques/T1550/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/","subtechnique":[{"id":"T1558.003","name":"Kerberoasting","reference":"https://attack.mitre.org/techniques/T1558/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and\n process.args:(\"-action\" and (\"-kerberoast\" or askhash or asktgs or asktgt or s4u or (\"-ticket\" and ptt) or (dump and (tickets or keytab))))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]}]},"id":"16904215-2c95-4ac8-bf5c-12354e047192","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/169f3a93-efc7-4df2-94d6-0d9438c310d1.json b/fleet-packages/detection-rules-composite/kibana/security_rule/169f3a93-efc7-4df2-94d6-0d9438c310d1.json new file mode 100644 index 0000000000000..700a339edec4d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/169f3a93-efc7-4df2-94d6-0d9438c310d1.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"169f3a93-efc7-4df2-94d6-0d9438c310d1","versions":[{"name":"AWS IAM Group Creation v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a group in AWS Identity and Access Management (IAM). Groups specify permissions for multiple users. Any user in a group automatically has the permissions that are assigned to the group.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A group may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Group creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-group.html","https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/","subtechnique":[{"id":"T1136.003","name":"Cloud Account","reference":"https://attack.mitre.org/techniques/T1136/003/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:CreateGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS IAM Group Creation v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a group in AWS Identity and Access Management (IAM). Groups specify permissions for multiple users. Any user in a group automatically has the permissions that are assigned to the group.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A group may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Group creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-group.html","https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/","subtechnique":[{"id":"T1136.003","name":"Cloud Account","reference":"https://attack.mitre.org/techniques/T1136/003/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:CreateGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS IAM Group Creation v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a group in AWS Identity and Access Management (IAM). Groups specify permissions for multiple users. Any user in a group automatically has the permissions that are assigned to the group.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A group may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Group creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-group.html","https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/","subtechnique":[{"id":"T1136.003","name":"Cloud Account","reference":"https://attack.mitre.org/techniques/T1136/003/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:CreateGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"169f3a93-efc7-4df2-94d6-0d9438c310d1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/16a52c14-7883-47af-8745-9357803f0d4c.json b/fleet-packages/detection-rules-composite/kibana/security_rule/16a52c14-7883-47af-8745-9357803f0d4c.json new file mode 100644 index 0000000000000..6d9826acb8899 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/16a52c14-7883-47af-8745-9357803f0d4c.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"16a52c14-7883-47af-8745-9357803f0d4c","versions":[{"name":"Component Object Model Hijacking v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Component Object Model (COM) hijacking via registry modification. Adversaries may establish persistence by executing malicious content triggered by hijacked references to COM objects.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Component Object Model Hijacking\n\nAdversaries can insert malicious code that can be executed in place of legitimate software through hijacking the COM references and relationships as a means of persistence.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Retrieve the file referenced in the registry and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- Some Microsoft executables will reference the LocalServer32 registry key value for the location of external COM objects.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://bohops.com/2018/08/18/abusing-the-com-registry-structure-part-2-loading-techniques-for-evasion-and-persistence/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.015","name":"Component Object Model Hijacking","reference":"https://attack.mitre.org/techniques/T1546/015/"}]}]}],"language":"eql","query":"registry where\n /* not necessary but good for filtering privileged installations */\n user.domain != \"NT AUTHORITY\" and\n\n(\n (registry.path : \"HK*\\\\InprocServer32\\\\\" and registry.data.strings: (\"scrobj.dll\", \"C:\\\\*\\\\scrobj.dll\") and\n not registry.path : \"*\\\\{06290BD*-48AA-11D2-8432-006008C3FBFC}\\\\*\") or\n\n /* in general COM Registry changes on Users Hive is less noisy and worth alerting */\n (registry.path : (\"HKEY_USERS\\\\*\\\\InprocServer32\\\\*\",\n \"HKEY_USERS\\\\*\\\\LocalServer32\\\\*\",\n \"HKEY_USERS\\\\*\\\\DelegateExecute\\\\*\",\n \"HKEY_USERS\\\\*\\\\TreatAs\\\\*\",\n \"HKEY_USERS\\\\*\\\\ScriptletURL\\\\*\") and\n not (process.executable : \"?:\\\\Program Files*\\\\Veeam\\\\Backup and Replication\\\\Console\\\\veeam.backup.shell.exe\" and\n registry.path : \"HKEY_USERS\\\\S-1-*_Classes\\\\CLSID\\\\*\\\\LocalServer32\\\\\")) or\n\n (registry.path : \"HKLM\\\\*\\\\InProcServer32\\\\*\" and registry.data.strings : (\"*\\\\Users\\\\*\", \"*\\\\ProgramData\\\\*\"))\n\n) and\n\n /* removes false-positives generated by OneDrive and Teams */\n not process.name : (\"OneDrive.exe\",\"OneDriveSetup.exe\",\"FileSyncConfig.exe\",\"Teams.exe\") and\n\n /* Teams DLL loaded by regsvr */\n not (process.name: \"regsvr32.exe\" and registry.data.strings : \"*Microsoft.Teams.*.dll\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Component Object Model Hijacking v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Component Object Model (COM) hijacking via registry modification. Adversaries may establish persistence by executing malicious content triggered by hijacked references to COM objects.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Component Object Model Hijacking\n\nAdversaries can insert malicious code that can be executed in place of legitimate software through hijacking the COM references and relationships as a means of persistence.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Retrieve the file referenced in the registry and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- Some Microsoft executables will reference the LocalServer32 registry key value for the location of external COM objects.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://bohops.com/2018/08/18/abusing-the-com-registry-structure-part-2-loading-techniques-for-evasion-and-persistence/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.015","name":"Component Object Model Hijacking","reference":"https://attack.mitre.org/techniques/T1546/015/"}]}]}],"language":"eql","query":"registry where\n /* not necessary but good for filtering privileged installations */\n user.domain != \"NT AUTHORITY\" and\n\n(\n (registry.path : \"HK*\\\\InprocServer32\\\\\" and registry.data.strings: (\"scrobj.dll\", \"C:\\\\*\\\\scrobj.dll\") and\n not registry.path : \"*\\\\{06290BD*-48AA-11D2-8432-006008C3FBFC}\\\\*\") or\n\n /* in general COM Registry changes on Users Hive is less noisy and worth alerting */\n (registry.path : (\"HKEY_USERS\\\\*\\\\InprocServer32\\\\*\",\n \"HKEY_USERS\\\\*\\\\LocalServer32\\\\*\",\n \"HKEY_USERS\\\\*\\\\DelegateExecute\\\\*\",\n \"HKEY_USERS\\\\*\\\\TreatAs\\\\*\",\n \"HKEY_USERS\\\\*\\\\ScriptletURL\\\\*\") and\n not (process.executable : \"?:\\\\Program Files*\\\\Veeam\\\\Backup and Replication\\\\Console\\\\veeam.backup.shell.exe\" and\n registry.path : \"HKEY_USERS\\\\S-1-*_Classes\\\\CLSID\\\\*\\\\LocalServer32\\\\\")) or\n\n (registry.path : \"HKLM\\\\*\\\\InProcServer32\\\\*\" and registry.data.strings : (\"*\\\\Users\\\\*\", \"*\\\\ProgramData\\\\*\"))\n\n) and\n\n /* removes false-positives generated by OneDrive and Teams */\n not process.name : (\"OneDrive.exe\",\"OneDriveSetup.exe\",\"FileSyncConfig.exe\",\"Teams.exe\") and\n\n /* Teams DLL loaded by regsvr */\n not (process.name: \"regsvr32.exe\" and registry.data.strings : \"*Microsoft.Teams.*.dll\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Component Object Model Hijacking v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Component Object Model (COM) hijacking via registry modification. Adversaries may establish persistence by executing malicious content triggered by hijacked references to COM objects.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Component Object Model Hijacking\n\nAdversaries can insert malicious code that can be executed in place of legitimate software through hijacking the COM references and relationships as a means of persistence.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Retrieve the file referenced in the registry and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- Some Microsoft executables will reference the LocalServer32 registry key value for the location of external COM objects.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://bohops.com/2018/08/18/abusing-the-com-registry-structure-part-2-loading-techniques-for-evasion-and-persistence/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.015","name":"Component Object Model Hijacking","reference":"https://attack.mitre.org/techniques/T1546/015/"}]}]}],"language":"eql","query":"registry where\n /* not necessary but good for filtering privileged installations */\n user.domain != \"NT AUTHORITY\" and\n\n(\n (registry.path : \"HK*\\\\InprocServer32\\\\\" and registry.data.strings: (\"scrobj.dll\", \"C:\\\\*\\\\scrobj.dll\") and\n not registry.path : \"*\\\\{06290BD*-48AA-11D2-8432-006008C3FBFC}\\\\*\") or\n\n /* in general COM Registry changes on Users Hive is less noisy and worth alerting */\n (registry.path : (\"HKEY_USERS\\\\*\\\\InprocServer32\\\\*\",\n \"HKEY_USERS\\\\*\\\\LocalServer32\\\\*\",\n \"HKEY_USERS\\\\*\\\\DelegateExecute\\\\*\",\n \"HKEY_USERS\\\\*\\\\TreatAs\\\\*\",\n \"HKEY_USERS\\\\*\\\\ScriptletURL\\\\*\") and\n not (process.executable : \"?:\\\\Program Files*\\\\Veeam\\\\Backup and Replication\\\\Console\\\\veeam.backup.shell.exe\" and\n registry.path : \"HKEY_USERS\\\\S-1-*_Classes\\\\CLSID\\\\*\\\\LocalServer32\\\\\")) or\n\n (registry.path : \"HKLM\\\\*\\\\InProcServer32\\\\*\" and registry.data.strings : (\"*\\\\Users\\\\*\", \"*\\\\ProgramData\\\\*\"))\n\n) and\n\n /* removes false-positives generated by OneDrive and Teams */\n not process.name : (\"OneDrive.exe\",\"OneDriveSetup.exe\",\"FileSyncConfig.exe\",\"Teams.exe\") and\n\n /* Teams DLL loaded by regsvr */\n not (process.name: \"regsvr32.exe\" and registry.data.strings : \"*Microsoft.Teams.*.dll\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"16a52c14-7883-47af-8745-9357803f0d4c","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/16fac1a1-21ee-4ca6-b720-458e3855d046.json b/fleet-packages/detection-rules-composite/kibana/security_rule/16fac1a1-21ee-4ca6-b720-458e3855d046.json new file mode 100644 index 0000000000000..5da3559246d0b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/16fac1a1-21ee-4ca6-b720-458e3855d046.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"16fac1a1-21ee-4ca6-b720-458e3855d046","versions":[{"name":"Startup/Logon Script added to Group Policy Object v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the modification of Group Policy Objects (GPO) to add a startup/logon script to users or computer objects.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Scheduled Task Execution at Scale via GPO\n\nGroup Policy Objects (GPOs) can be used by attackers to instruct arbitrarily large groups of\nclients to execute specified commands at startup, logon, shutdown, and logoff. This is done by creating or modifying the\n`scripts.ini` or `psscripts.ini` files. The scripts are stored in the following path: `\\Machine\\Scripts\\`,\n`\\User\\Scripts\\`\n\n#### Possible investigation steps\n\n- This attack abuses a legitimate mechanism of Active Directory, so it is important to determine whether the activity\nis legitimate and the administrator is authorized to perform this operation.\n- Retrieve the contents of the `ScheduledTasks.xml` file, and check the `` and `` XML tags for any\npotentially malicious commands or binaries.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Scope which objects may be compromised by retrieving information about which objects are controlled by the GPO.\n\n### False positive analysis\n\n- Verify if the execution is legitimately authorized and executed under a change management process.\n\n### Related rules\n\n- Group Policy Abuse for Privilege Addition - b9554892-5e0e-424b-83a0-5aef95aa43bf\n- Scheduled Task Execution at Scale via GPO - 15a8ba77-1c13-4274-88fe-6bd14133861e\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- The investigation and containment must be performed in every computer controlled by the GPO, where necessary.\n- Remove the script from the GPO.\n- Check if other GPOs have suspicious scripts attached.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate Administrative Activity"],"references":["https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0025_windows_audit_directory_service_changes.md","https://github.com/atc-project/atc-data/blob/f2bbb51ecf68e2c9f488e3c70dcdd3df51d2a46b/docs/Logging_Policies/LP_0029_windows_audit_detailed_file_share.md","https://labs.f-secure.com/tools/sharpgpoabuse"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/"},{"id":"T1484","name":"Domain Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/","subtechnique":[{"id":"T1484.001","name":"Group Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"(\n event.code:5136 and winlog.event_data.AttributeLDAPDisplayName:(gPCMachineExtensionNames or gPCUserExtensionNames) and\n winlog.event_data.AttributeValue:(*42B5FAAE-6536-11D2-AE5A-0000F87571E3* and\n (*40B66650-4972-11D1-A7CA-0000F87571E3* or *40B6664F-4972-11D1-A7CA-0000F87571E3*))\n)\nor\n(\n event.code:5145 and winlog.event_data.ShareName:\\\\\\\\*\\\\SYSVOL and\n winlog.event_data.RelativeTargetName:(*\\\\scripts.ini or *\\\\psscripts.ini) and\n (message:WriteData or winlog.event_data.AccessList:*%%4417*)\n)\n","required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"message","type":"match_only_text"},{"ecs":false,"name":"winlog.event_data.AccessList","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeValue","type":"unknown"},{"ecs":false,"name":"winlog.event_data.RelativeTargetName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ShareName","type":"unknown"}],"setup":"The 'Audit Detailed File Share' audit policy must be configured (Success Failure).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nObject Access >\nAudit Detailed File Share (Success,Failure)\n```\n\nThe 'Audit Directory Service Changes' audit policy must be configured (Success Failure).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```"},{"name":"Startup/Logon Script added to Group Policy Object v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the modification of Group Policy Objects (GPO) to add a startup/logon script to users or computer objects.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Scheduled Task Execution at Scale via GPO\n\nGroup Policy Objects (GPOs) can be used by attackers to instruct arbitrarily large groups of\nclients to execute specified commands at startup, logon, shutdown, and logoff. This is done by creating or modifying the\n`scripts.ini` or `psscripts.ini` files. The scripts are stored in the following path: `\\Machine\\Scripts\\`,\n`\\User\\Scripts\\`\n\n#### Possible investigation steps\n\n- This attack abuses a legitimate mechanism of Active Directory, so it is important to determine whether the activity\nis legitimate and the administrator is authorized to perform this operation.\n- Retrieve the contents of the `ScheduledTasks.xml` file, and check the `` and `` XML tags for any\npotentially malicious commands or binaries.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Scope which objects may be compromised by retrieving information about which objects are controlled by the GPO.\n\n### False positive analysis\n\n- Verify if the execution is legitimately authorized and executed under a change management process.\n\n### Related rules\n\n- Group Policy Abuse for Privilege Addition - b9554892-5e0e-424b-83a0-5aef95aa43bf\n- Scheduled Task Execution at Scale via GPO - 15a8ba77-1c13-4274-88fe-6bd14133861e\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- The investigation and containment must be performed in every computer controlled by the GPO, where necessary.\n- Remove the script from the GPO.\n- Check if other GPOs have suspicious scripts attached.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate Administrative Activity"],"references":["https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0025_windows_audit_directory_service_changes.md","https://github.com/atc-project/atc-data/blob/f2bbb51ecf68e2c9f488e3c70dcdd3df51d2a46b/docs/Logging_Policies/LP_0029_windows_audit_detailed_file_share.md","https://labs.f-secure.com/tools/sharpgpoabuse"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/"},{"id":"T1484","name":"Domain Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/","subtechnique":[{"id":"T1484.001","name":"Group Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"(\n event.code:5136 and winlog.event_data.AttributeLDAPDisplayName:(gPCMachineExtensionNames or gPCUserExtensionNames) and\n winlog.event_data.AttributeValue:(*42B5FAAE-6536-11D2-AE5A-0000F87571E3* and\n (*40B66650-4972-11D1-A7CA-0000F87571E3* or *40B6664F-4972-11D1-A7CA-0000F87571E3*))\n)\nor\n(\n event.code:5145 and winlog.event_data.ShareName:\\\\\\\\*\\\\SYSVOL and\n winlog.event_data.RelativeTargetName:(*\\\\scripts.ini or *\\\\psscripts.ini) and\n (message:WriteData or winlog.event_data.AccessList:*%%4417*)\n)\n","required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"message","type":"match_only_text"},{"ecs":false,"name":"winlog.event_data.AccessList","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeValue","type":"unknown"},{"ecs":false,"name":"winlog.event_data.RelativeTargetName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ShareName","type":"unknown"}],"setup":"The 'Audit Detailed File Share' audit policy must be configured (Success Failure).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nObject Access >\nAudit Detailed File Share (Success,Failure)\n```\n\nThe 'Audit Directory Service Changes' audit policy must be configured (Success Failure).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```"},{"name":"Startup/Logon Script added to Group Policy Object v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the modification of Group Policy Objects (GPO) to add a startup/logon script to users or computer objects.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Scheduled Task Execution at Scale via GPO\n\nGroup Policy Objects (GPOs) can be used by attackers to instruct arbitrarily large groups of\nclients to execute specified commands at startup, logon, shutdown, and logoff. This is done by creating or modifying the\n`scripts.ini` or `psscripts.ini` files. The scripts are stored in the following path: `\\Machine\\Scripts\\`,\n`\\User\\Scripts\\`\n\n#### Possible investigation steps\n\n- This attack abuses a legitimate mechanism of Active Directory, so it is important to determine whether the activity\nis legitimate and the administrator is authorized to perform this operation.\n- Retrieve the contents of the `ScheduledTasks.xml` file, and check the `` and `` XML tags for any\npotentially malicious commands or binaries.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Scope which objects may be compromised by retrieving information about which objects are controlled by the GPO.\n\n### False positive analysis\n\n- Verify if the execution is legitimately authorized and executed under a change management process.\n\n### Related rules\n\n- Group Policy Abuse for Privilege Addition - b9554892-5e0e-424b-83a0-5aef95aa43bf\n- Scheduled Task Execution at Scale via GPO - 15a8ba77-1c13-4274-88fe-6bd14133861e\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- The investigation and containment must be performed in every computer controlled by the GPO, where necessary.\n- Remove the script from the GPO.\n- Check if other GPOs have suspicious scripts attached.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate Administrative Activity"],"references":["https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0025_windows_audit_directory_service_changes.md","https://github.com/atc-project/atc-data/blob/f2bbb51ecf68e2c9f488e3c70dcdd3df51d2a46b/docs/Logging_Policies/LP_0029_windows_audit_detailed_file_share.md","https://labs.f-secure.com/tools/sharpgpoabuse"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/"},{"id":"T1484","name":"Domain Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/","subtechnique":[{"id":"T1484.001","name":"Group Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"(\n event.code:5136 and winlog.event_data.AttributeLDAPDisplayName:(gPCMachineExtensionNames or gPCUserExtensionNames) and\n winlog.event_data.AttributeValue:(*42B5FAAE-6536-11D2-AE5A-0000F87571E3* and\n (*40B66650-4972-11D1-A7CA-0000F87571E3* or *40B6664F-4972-11D1-A7CA-0000F87571E3*))\n)\nor\n(\n event.code:5145 and winlog.event_data.ShareName:\\\\\\\\*\\\\SYSVOL and\n winlog.event_data.RelativeTargetName:(*\\\\scripts.ini or *\\\\psscripts.ini) and\n (message:WriteData or winlog.event_data.AccessList:*%%4417*)\n)\n","required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"message","type":"match_only_text"},{"ecs":false,"name":"winlog.event_data.AccessList","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeValue","type":"unknown"},{"ecs":false,"name":"winlog.event_data.RelativeTargetName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ShareName","type":"unknown"}],"setup":"The 'Audit Detailed File Share' audit policy must be configured (Success Failure).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nObject Access >\nAudit Detailed File Share (Success,Failure)\n```\n\nThe 'Audit Directory Service Changes' audit policy must be configured (Success Failure).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```"}]},"id":"16fac1a1-21ee-4ca6-b720-458e3855d046","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/1781d055-5c66-4adf-9c59-fc0fa58336a5.json b/fleet-packages/detection-rules-composite/kibana/security_rule/1781d055-5c66-4adf-9c59-fc0fa58336a5.json new file mode 100644 index 0000000000000..d9921bc4dc2ef --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/1781d055-5c66-4adf-9c59-fc0fa58336a5.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"1781d055-5c66-4adf-9c59-fc0fa58336a5","versions":[{"name":"Unusual Windows Username v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected activity for a username that is not normally active, which can indicate unauthorized changes, activity by unauthorized users, lateral movement, or compromised credentials. In many organizations, new usernames are not often created apart from specific types of system activities, such as creating new accounts for new employees. These user accounts quickly become active and routine. Events from rarely used usernames can point to suspicious activity. Additionally, automated Linux fleets tend to see activity from rarely used usernames only when personnel log in to make authorized or unauthorized changes, or threat actors have acquired credentials and log in for malicious purposes. Unusual usernames can also indicate pivoting, where compromised credentials are used to try and move laterally from one host to another.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Windows User\nDetection alerts from this rule indicate activity for a Windows user name that is rare and unusual. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is this program part of an expected workflow for the user who ran this program on this host? Could this be related to occasional troubleshooting or support activity?\n- Examine the history of user activity. If this user only manifested recently, it might be a service account for a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks that the user is performing.\n- Consider the same for the parent process. If the parent process is a legitimate system utility or service, this could be related to software updates or system management. If the parent process is something user-facing like an Office application, this process could be more suspicious.","author":["Elastic"],"false_positives":["Uncommon user activity can be due to an administrator or help desk technician logging onto a workstation or server in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_user_name"],"type":"machine_learning"},{"name":"Unusual Windows Username v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected activity for a username that is not normally active, which can indicate unauthorized changes, activity by unauthorized users, lateral movement, or compromised credentials. In many organizations, new usernames are not often created apart from specific types of system activities, such as creating new accounts for new employees. These user accounts quickly become active and routine. Events from rarely used usernames can point to suspicious activity. Additionally, automated Linux fleets tend to see activity from rarely used usernames only when personnel log in to make authorized or unauthorized changes, or threat actors have acquired credentials and log in for malicious purposes. Unusual usernames can also indicate pivoting, where compromised credentials are used to try and move laterally from one host to another.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Windows User\nDetection alerts from this rule indicate activity for a Windows user name that is rare and unusual. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is this program part of an expected workflow for the user who ran this program on this host? Could this be related to occasional troubleshooting or support activity?\n- Examine the history of user activity. If this user only manifested recently, it might be a service account for a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks that the user is performing.\n- Consider the same for the parent process. If the parent process is a legitimate system utility or service, this could be related to software updates or system management. If the parent process is something user-facing like an Office application, this process could be more suspicious.","author":["Elastic"],"false_positives":["Uncommon user activity can be due to an administrator or help desk technician logging onto a workstation or server in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_user_name"],"type":"machine_learning"},{"name":"Unusual Windows Username v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected activity for a username that is not normally active, which can indicate unauthorized changes, activity by unauthorized users, lateral movement, or compromised credentials. In many organizations, new usernames are not often created apart from specific types of system activities, such as creating new accounts for new employees. These user accounts quickly become active and routine. Events from rarely used usernames can point to suspicious activity. Additionally, automated Linux fleets tend to see activity from rarely used usernames only when personnel log in to make authorized or unauthorized changes, or threat actors have acquired credentials and log in for malicious purposes. Unusual usernames can also indicate pivoting, where compromised credentials are used to try and move laterally from one host to another.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Windows User\nDetection alerts from this rule indicate activity for a Windows user name that is rare and unusual. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is this program part of an expected workflow for the user who ran this program on this host? Could this be related to occasional troubleshooting or support activity?\n- Examine the history of user activity. If this user only manifested recently, it might be a service account for a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks that the user is performing.\n- Consider the same for the parent process. If the parent process is a legitimate system utility or service, this could be related to software updates or system management. If the parent process is something user-facing like an Office application, this process could be more suspicious.","author":["Elastic"],"false_positives":["Uncommon user activity can be due to an administrator or help desk technician logging onto a workstation or server in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_user_name"],"type":"machine_learning"}]},"id":"1781d055-5c66-4adf-9c59-fc0fa58336a5","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/1781d055-5c66-4adf-9c71-fc0fa58338c7.json b/fleet-packages/detection-rules-composite/kibana/security_rule/1781d055-5c66-4adf-9c71-fc0fa58338c7.json new file mode 100644 index 0000000000000..8d5701295a5ea --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/1781d055-5c66-4adf-9c71-fc0fa58338c7.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"1781d055-5c66-4adf-9c71-fc0fa58338c7","versions":[{"name":"Unusual Windows Service v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusual Windows service, This can indicate execution of unauthorized services, malware, or persistence mechanisms. In corporate Windows environments, hosts do not generally run many rare or unique services. This job helps detect malware and persistence mechanisms that have been installed and run as a service.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_service"],"type":"machine_learning"},{"name":"Unusual Windows Service v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusual Windows service, This can indicate execution of unauthorized services, malware, or persistence mechanisms. In corporate Windows environments, hosts do not generally run many rare or unique services. This job helps detect malware and persistence mechanisms that have been installed and run as a service.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_service"],"type":"machine_learning"},{"name":"Unusual Windows Service v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusual Windows service, This can indicate execution of unauthorized services, malware, or persistence mechanisms. In corporate Windows environments, hosts do not generally run many rare or unique services. This job helps detect malware and persistence mechanisms that have been installed and run as a service.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_service"],"type":"machine_learning"}]},"id":"1781d055-5c66-4adf-9c71-fc0fa58338c7","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/1781d055-5c66-4adf-9d60-fc0fa58337b6.json b/fleet-packages/detection-rules-composite/kibana/security_rule/1781d055-5c66-4adf-9d60-fc0fa58337b6.json new file mode 100644 index 0000000000000..73eb29c19b514 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/1781d055-5c66-4adf-9d60-fc0fa58337b6.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"1781d055-5c66-4adf-9d60-fc0fa58337b6","versions":[{"name":"Suspicious Powershell Script v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a PowerShell script with unusual data characteristics, such as obfuscation, that may be a characteristic of malicious PowerShell script text blocks.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Certain kinds of security testing may trigger this alert. PowerShell scripts that use high levels of obfuscation or have unusual script block payloads may trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html","https://www.elastic.co/security-labs/detecting-living-off-the-land-attacks-with-new-elastic-integration"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_script"],"type":"machine_learning"},{"name":"Suspicious Powershell Script v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a PowerShell script with unusual data characteristics, such as obfuscation, that may be a characteristic of malicious PowerShell script text blocks.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Certain kinds of security testing may trigger this alert. PowerShell scripts that use high levels of obfuscation or have unusual script block payloads may trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html","https://www.elastic.co/security-labs/detecting-living-off-the-land-attacks-with-new-elastic-integration"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_script"],"type":"machine_learning"},{"name":"Suspicious Powershell Script v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a PowerShell script with unusual data characteristics, such as obfuscation, that may be a characteristic of malicious PowerShell script text blocks.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Certain kinds of security testing may trigger this alert. PowerShell scripts that use high levels of obfuscation or have unusual script block payloads may trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html","https://www.elastic.co/security-labs/detecting-living-off-the-land-attacks-with-new-elastic-integration"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_script"],"type":"machine_learning"}]},"id":"1781d055-5c66-4adf-9d60-fc0fa58337b6","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/1781d055-5c66-4adf-9d82-fc0fa58449c8.json b/fleet-packages/detection-rules-composite/kibana/security_rule/1781d055-5c66-4adf-9d82-fc0fa58449c8.json new file mode 100644 index 0000000000000..203108376b037 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/1781d055-5c66-4adf-9d82-fc0fa58449c8.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"1781d055-5c66-4adf-9d82-fc0fa58449c8","versions":[{"name":"Unusual Windows User Privilege Elevation Activity v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusual user context switch, using the runas command or similar techniques, which can indicate account takeover or privilege escalation using compromised accounts. Privilege elevation using tools like runas are more commonly used by domain and network administrators than by regular Windows users.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user privilege elevation activity can be due to an administrator, help desk technician, or a user performing manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_rare_user_runas_event"],"type":"machine_learning"},{"name":"Unusual Windows User Privilege Elevation Activity v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusual user context switch, using the runas command or similar techniques, which can indicate account takeover or privilege escalation using compromised accounts. Privilege elevation using tools like runas are more commonly used by domain and network administrators than by regular Windows users.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user privilege elevation activity can be due to an administrator, help desk technician, or a user performing manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_rare_user_runas_event"],"type":"machine_learning"},{"name":"Unusual Windows User Privilege Elevation Activity v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusual user context switch, using the runas command or similar techniques, which can indicate account takeover or privilege escalation using compromised accounts. Privilege elevation using tools like runas are more commonly used by domain and network administrators than by regular Windows users.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user privilege elevation activity can be due to an administrator, help desk technician, or a user performing manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_rare_user_runas_event"],"type":"machine_learning"}]},"id":"1781d055-5c66-4adf-9d82-fc0fa58449c8","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/1781d055-5c66-4adf-9e93-fc0fa69550c9.json b/fleet-packages/detection-rules-composite/kibana/security_rule/1781d055-5c66-4adf-9e93-fc0fa69550c9.json new file mode 100644 index 0000000000000..55a40208c3007 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/1781d055-5c66-4adf-9e93-fc0fa69550c9.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"1781d055-5c66-4adf-9e93-fc0fa69550c9","versions":[{"name":"Unusual Windows Remote User v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusual remote desktop protocol (RDP) username, which can indicate account takeover or credentialed persistence using compromised accounts. RDP attacks, such as BlueKeep, also tend to use unusual usernames.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Windows User\nDetection alerts from this rule indicate activity for a rare and unusual Windows RDP (remote desktop) user. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is the user part of a group who normally logs into Windows hosts using RDP (remote desktop protocol)? Is this logon activity part of an expected workflow for the user?\n- Consider the source of the login. If the source is remote, could this be related to occasional troubleshooting or support activity by a vendor or an employee working remotely?","author":["Elastic"],"false_positives":["Uncommon username activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_rare_user_type10_remote_login"],"type":"machine_learning"},{"name":"Unusual Windows Remote User v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusual remote desktop protocol (RDP) username, which can indicate account takeover or credentialed persistence using compromised accounts. RDP attacks, such as BlueKeep, also tend to use unusual usernames.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Windows User\nDetection alerts from this rule indicate activity for a rare and unusual Windows RDP (remote desktop) user. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is the user part of a group who normally logs into Windows hosts using RDP (remote desktop protocol)? Is this logon activity part of an expected workflow for the user?\n- Consider the source of the login. If the source is remote, could this be related to occasional troubleshooting or support activity by a vendor or an employee working remotely?","author":["Elastic"],"false_positives":["Uncommon username activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_rare_user_type10_remote_login"],"type":"machine_learning"},{"name":"Unusual Windows Remote User v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusual remote desktop protocol (RDP) username, which can indicate account takeover or credentialed persistence using compromised accounts. RDP attacks, such as BlueKeep, also tend to use unusual usernames.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Windows User\nDetection alerts from this rule indicate activity for a rare and unusual Windows RDP (remote desktop) user. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is the user part of a group who normally logs into Windows hosts using RDP (remote desktop protocol)? Is this logon activity part of an expected workflow for the user?\n- Consider the source of the login. If the source is remote, could this be related to occasional troubleshooting or support activity by a vendor or an employee working remotely?","author":["Elastic"],"false_positives":["Uncommon username activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_rare_user_type10_remote_login"],"type":"machine_learning"}]},"id":"1781d055-5c66-4adf-9e93-fc0fa69550c9","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/17c7f6a5-5bc9-4e1f-92bf-13632d24384d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/17c7f6a5-5bc9-4e1f-92bf-13632d24384d.json new file mode 100644 index 0000000000000..130d50d86b987 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/17c7f6a5-5bc9-4e1f-92bf-13632d24384d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"17c7f6a5-5bc9-4e1f-92bf-13632d24384d","versions":[{"name":"Suspicious Execution - Short Program Name v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies process execution with a single character process name. This is often done by adversaries while staging or executing temporary utilities.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.003","name":"Rename System Utilities","reference":"https://attack.mitre.org/techniques/T1036/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and length(process.name) > 0 and\n length(process.name) == 5 and host.os.name == \"Windows\" and length(process.pe.original_file_name) > 5\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.os.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious Execution - Short Program Name v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies process execution with a single character process name. This is often done by adversaries while staging or executing temporary utilities.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.003","name":"Rename System Utilities","reference":"https://attack.mitre.org/techniques/T1036/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and length(process.name) > 0 and\n length(process.name) == 5 and host.os.name == \"Windows\" and length(process.pe.original_file_name) > 5\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.os.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious Execution - Short Program Name v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies process execution with a single character process name. This is often done by adversaries while staging or executing temporary utilities.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.003","name":"Rename System Utilities","reference":"https://attack.mitre.org/techniques/T1036/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and length(process.name) > 0 and\n length(process.name) == 5 and host.os.name == \"Windows\" and length(process.pe.original_file_name) > 5\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.os.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"17c7f6a5-5bc9-4e1f-92bf-13632d24384d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/17e68559-b274-4948-ad0b-f8415bb31126.json b/fleet-packages/detection-rules-composite/kibana/security_rule/17e68559-b274-4948-ad0b-f8415bb31126.json new file mode 100644 index 0000000000000..7b67b50c427c5 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/17e68559-b274-4948-ad0b-f8415bb31126.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"17e68559-b274-4948-ad0b-f8415bb31126","versions":[{"name":"Unusual Network Destination Domain Name v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusual network destination domain name. This can be due to initial access, persistence, command-and-control, or exfiltration activity. For example, when a user clicks on a link in a phishing email or opens a malicious document, a request may be sent to download and run a payload from an uncommon web server name. When malware is already running, it may send requests to an uncommon DNS domain the malware uses for command-and-control communication.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Web activity that occurs rarely in small quantities can trigger this alert. Possible examples are browsing technical support or vendor URLs that are used very sparsely. A user who visits a new and unique web destination may trigger this alert when the activity is sparse. Web applications that generate URLs unique to a transaction may trigger this when they are used sparsely. Web domains can be excluded in cases such as these."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML"],"anomaly_threshold":50,"machine_learning_job_id":"packetbeat_rare_server_domain","type":"machine_learning"},{"name":"Unusual Network Destination Domain Name v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusual network destination domain name. This can be due to initial access, persistence, command-and-control, or exfiltration activity. For example, when a user clicks on a link in a phishing email or opens a malicious document, a request may be sent to download and run a payload from an uncommon web server name. When malware is already running, it may send requests to an uncommon DNS domain the malware uses for command-and-control communication.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Web activity that occurs rarely in small quantities can trigger this alert. Possible examples are browsing technical support or vendor URLs that are used very sparsely. A user who visits a new and unique web destination may trigger this alert when the activity is sparse. Web applications that generate URLs unique to a transaction may trigger this when they are used sparsely. Web domains can be excluded in cases such as these."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML"],"anomaly_threshold":50,"machine_learning_job_id":"packetbeat_rare_server_domain","type":"machine_learning"},{"name":"Unusual Network Destination Domain Name v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusual network destination domain name. This can be due to initial access, persistence, command-and-control, or exfiltration activity. For example, when a user clicks on a link in a phishing email or opens a malicious document, a request may be sent to download and run a payload from an uncommon web server name. When malware is already running, it may send requests to an uncommon DNS domain the malware uses for command-and-control communication.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Web activity that occurs rarely in small quantities can trigger this alert. Possible examples are browsing technical support or vendor URLs that are used very sparsely. A user who visits a new and unique web destination may trigger this alert when the activity is sparse. Web applications that generate URLs unique to a transaction may trigger this when they are used sparsely. Web domains can be excluded in cases such as these."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML"],"anomaly_threshold":50,"machine_learning_job_id":"packetbeat_rare_server_domain","type":"machine_learning"}]},"id":"17e68559-b274-4948-ad0b-f8415bb31126","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/184dfe52-2999-42d9-b9d1-d1ca54495a61.json b/fleet-packages/detection-rules-composite/kibana/security_rule/184dfe52-2999-42d9-b9d1-d1ca54495a61.json new file mode 100644 index 0000000000000..aa1eb68c616d4 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/184dfe52-2999-42d9-b9d1-d1ca54495a61.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"184dfe52-2999-42d9-b9d1-d1ca54495a61","versions":[{"name":"GCP Logging Sink Modification v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a modification to a Logging sink in Google Cloud Platform (GCP). Logging compares the log entry to the sinks in that resource. Each sink whose filter matches the log entry writes a copy of the log entry to the sink's export destination. An adversary may update a Logging sink to exfiltrate logs to a different export destination.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Logging sink modifications may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Sink modifications from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/logging/docs/export#how_sinks_work"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.logging.v*.ConfigServiceV*.UpdateSink and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Logging Sink Modification v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a modification to a Logging sink in Google Cloud Platform (GCP). Logging compares the log entry to the sinks in that resource. Each sink whose filter matches the log entry writes a copy of the log entry to the sink's export destination. An adversary may update a Logging sink to exfiltrate logs to a different export destination.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Logging sink modifications may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Sink modifications from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/logging/docs/export#how_sinks_work"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.logging.v*.ConfigServiceV*.UpdateSink and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Logging Sink Modification v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a modification to a Logging sink in Google Cloud Platform (GCP). Logging compares the log entry to the sinks in that resource. Each sink whose filter matches the log entry writes a copy of the log entry to the sink's export destination. An adversary may update a Logging sink to exfiltrate logs to a different export destination.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Logging sink modifications may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Sink modifications from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/logging/docs/export#how_sinks_work"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.logging.v*.ConfigServiceV*.UpdateSink and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"184dfe52-2999-42d9-b9d1-d1ca54495a61","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/19de8096-e2b0-4bd8-80c9-34a820813fff.json b/fleet-packages/detection-rules-composite/kibana/security_rule/19de8096-e2b0-4bd8-80c9-34a820813fff.json new file mode 100644 index 0000000000000..b44eb985d17af --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/19de8096-e2b0-4bd8-80c9-34a820813fff.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"19de8096-e2b0-4bd8-80c9-34a820813fff","versions":[{"name":"Rare AWS Error Code v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusual error in a CloudTrail message. These can be byproducts of attempted or successful persistence, privilege escalation, defense evasion, discovery, lateral movement, or collection.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Rare AWS Error Code\n\nCloudTrail logging provides visibility on actions taken within an AWS environment. By monitoring these events and\nunderstanding what is considered normal behavior within an organization, you can spot suspicious or malicious activity\nwhen deviations occur.\n\nThis rule uses a machine learning job to detect an unusual error in a CloudTrail message. This can be byproducts of\nattempted or successful persistence, privilege escalation, defense evasion, discovery, lateral movement, or collection.\n\nDetection alerts from this rule indicate a rare and unusual error code that was associated with the response to an AWS\nAPI command or method call.\n\n#### Possible investigation steps\n\n- Examine the history of the error. If the error only manifested recently, it might be related to recent changes in an\nautomation module or script. You can find the error in the `aws.cloudtrail.error_code field` field.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, or network administrator activity.\n- Examine the request parameters. These may indicate the source of the program or the nature of the task being performed\nwhen the error occurred.\n - Check whether the error is related to unsuccessful attempts to enumerate or access objects, data, or secrets.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Contact the account owner and confirm whether they are aware of this activity if suspicious.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- Examine the history of the command. If the command only manifested recently, it might be part of a new automation\nmodule or script. If it has a consistent cadence (for example, it appears in small numbers on a weekly or monthly cadence),\nit might be part of a housekeeping or maintenance process. You can find the command in the `event.action field` field.\n- The adoption of new services or the addition of new functionality to scripts may generate false positives.\n\n### Related Rules\n\n- Unusual City For an AWS Command - 809b70d3-e2c3-455e-af1b-2626a5a1a276\n- Unusual Country For an AWS Command - dca28dee-c999-400f-b640-50a081cc0fd1\n- Unusual AWS Command for a User - ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1\n- Spike in AWS Error Messages - 78d3d8d9-b476-451d-a9e0-7a5addd70670\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"false_positives":["Rare and unusual errors may indicate an impending service failure state. Rare and unusual user error activity can also be due to manual troubleshooting or reconfiguration attempts by insufficiently privileged users, bugs in cloud automation scripts or workflows, or changes to IAM privileges."],"from":"now-2h","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Cloud","AWS","ML","Investigation Guide"],"anomaly_threshold":50,"machine_learning_job_id":"rare_error_code","type":"machine_learning","related_integrations":[],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Rare AWS Error Code v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusual error in a CloudTrail message. These can be byproducts of attempted or successful persistence, privilege escalation, defense evasion, discovery, lateral movement, or collection.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Rare AWS Error Code\n\nCloudTrail logging provides visibility on actions taken within an AWS environment. By monitoring these events and\nunderstanding what is considered normal behavior within an organization, you can spot suspicious or malicious activity\nwhen deviations occur.\n\nThis rule uses a machine learning job to detect an unusual error in a CloudTrail message. This can be byproducts of\nattempted or successful persistence, privilege escalation, defense evasion, discovery, lateral movement, or collection.\n\nDetection alerts from this rule indicate a rare and unusual error code that was associated with the response to an AWS\nAPI command or method call.\n\n#### Possible investigation steps\n\n- Examine the history of the error. If the error only manifested recently, it might be related to recent changes in an\nautomation module or script. You can find the error in the `aws.cloudtrail.error_code field` field.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, or network administrator activity.\n- Examine the request parameters. These may indicate the source of the program or the nature of the task being performed\nwhen the error occurred.\n - Check whether the error is related to unsuccessful attempts to enumerate or access objects, data, or secrets.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Contact the account owner and confirm whether they are aware of this activity if suspicious.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- Examine the history of the command. If the command only manifested recently, it might be part of a new automation\nmodule or script. If it has a consistent cadence (for example, it appears in small numbers on a weekly or monthly cadence),\nit might be part of a housekeeping or maintenance process. You can find the command in the `event.action field` field.\n- The adoption of new services or the addition of new functionality to scripts may generate false positives.\n\n### Related Rules\n\n- Unusual City For an AWS Command - 809b70d3-e2c3-455e-af1b-2626a5a1a276\n- Unusual Country For an AWS Command - dca28dee-c999-400f-b640-50a081cc0fd1\n- Unusual AWS Command for a User - ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1\n- Spike in AWS Error Messages - 78d3d8d9-b476-451d-a9e0-7a5addd70670\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"false_positives":["Rare and unusual errors may indicate an impending service failure state. Rare and unusual user error activity can also be due to manual troubleshooting or reconfiguration attempts by insufficiently privileged users, bugs in cloud automation scripts or workflows, or changes to IAM privileges."],"from":"now-2h","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Cloud","AWS","ML","Investigation Guide"],"anomaly_threshold":50,"machine_learning_job_id":"rare_error_code","type":"machine_learning","related_integrations":[],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Rare AWS Error Code v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusual error in a CloudTrail message. These can be byproducts of attempted or successful persistence, privilege escalation, defense evasion, discovery, lateral movement, or collection.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Rare AWS Error Code\n\nCloudTrail logging provides visibility on actions taken within an AWS environment. By monitoring these events and\nunderstanding what is considered normal behavior within an organization, you can spot suspicious or malicious activity\nwhen deviations occur.\n\nThis rule uses a machine learning job to detect an unusual error in a CloudTrail message. This can be byproducts of\nattempted or successful persistence, privilege escalation, defense evasion, discovery, lateral movement, or collection.\n\nDetection alerts from this rule indicate a rare and unusual error code that was associated with the response to an AWS\nAPI command or method call.\n\n#### Possible investigation steps\n\n- Examine the history of the error. If the error only manifested recently, it might be related to recent changes in an\nautomation module or script. You can find the error in the `aws.cloudtrail.error_code field` field.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, or network administrator activity.\n- Examine the request parameters. These may indicate the source of the program or the nature of the task being performed\nwhen the error occurred.\n - Check whether the error is related to unsuccessful attempts to enumerate or access objects, data, or secrets.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Contact the account owner and confirm whether they are aware of this activity if suspicious.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- Examine the history of the command. If the command only manifested recently, it might be part of a new automation\nmodule or script. If it has a consistent cadence (for example, it appears in small numbers on a weekly or monthly cadence),\nit might be part of a housekeeping or maintenance process. You can find the command in the `event.action field` field.\n- The adoption of new services or the addition of new functionality to scripts may generate false positives.\n\n### Related Rules\n\n- Unusual City For an AWS Command - 809b70d3-e2c3-455e-af1b-2626a5a1a276\n- Unusual Country For an AWS Command - dca28dee-c999-400f-b640-50a081cc0fd1\n- Unusual AWS Command for a User - ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1\n- Spike in AWS Error Messages - 78d3d8d9-b476-451d-a9e0-7a5addd70670\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"false_positives":["Rare and unusual errors may indicate an impending service failure state. Rare and unusual user error activity can also be due to manual troubleshooting or reconfiguration attempts by insufficiently privileged users, bugs in cloud automation scripts or workflows, or changes to IAM privileges."],"from":"now-2h","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Cloud","AWS","ML","Investigation Guide"],"anomaly_threshold":50,"machine_learning_job_id":"rare_error_code","type":"machine_learning","related_integrations":[],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"19de8096-e2b0-4bd8-80c9-34a820813fff","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/1a36cace-11a7-43a8-9a10-b497c5a02cd3.json b/fleet-packages/detection-rules-composite/kibana/security_rule/1a36cace-11a7-43a8-9a10-b497c5a02cd3.json new file mode 100644 index 0000000000000..c74e7b5a0f815 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/1a36cace-11a7-43a8-9a10-b497c5a02cd3.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"1a36cace-11a7-43a8-9a10-b497c5a02cd3","versions":[{"name":"Azure Application Credential Modification v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new credential is added to an application in Azure. An application may use a certificate or secret string to prove its identity when requesting a token. Multiple certificates and secrets can be added for an application and an adversary may abuse this by creating an additional authentication method to evade defenses or persist in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Application credential additions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Application credential additions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://msrc-blog.microsoft.com/2020/12/13/customer-guidance-on-recent-nation-state-cyber-attacks/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.001","name":"Application Access Token","reference":"https://attack.mitre.org/techniques/T1550/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Update application - Certificates and secrets management\" and event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Application Credential Modification v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new credential is added to an application in Azure. An application may use a certificate or secret string to prove its identity when requesting a token. Multiple certificates and secrets can be added for an application and an adversary may abuse this by creating an additional authentication method to evade defenses or persist in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Application credential additions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Application credential additions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://msrc-blog.microsoft.com/2020/12/13/customer-guidance-on-recent-nation-state-cyber-attacks/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.001","name":"Application Access Token","reference":"https://attack.mitre.org/techniques/T1550/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Update application - Certificates and secrets management\" and event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Application Credential Modification v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new credential is added to an application in Azure. An application may use a certificate or secret string to prove its identity when requesting a token. Multiple certificates and secrets can be added for an application and an adversary may abuse this by creating an additional authentication method to evade defenses or persist in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Application credential additions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Application credential additions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://msrc-blog.microsoft.com/2020/12/13/customer-guidance-on-recent-nation-state-cyber-attacks/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.001","name":"Application Access Token","reference":"https://attack.mitre.org/techniques/T1550/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Update application - Certificates and secrets management\" and event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"1a36cace-11a7-43a8-9a10-b497c5a02cd3","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/1a6075b0-7479-450e-8fe7-b8b8438ac570.json b/fleet-packages/detection-rules-composite/kibana/security_rule/1a6075b0-7479-450e-8fe7-b8b8438ac570.json new file mode 100644 index 0000000000000..b149deb4f4d40 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/1a6075b0-7479-450e-8fe7-b8b8438ac570.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"1a6075b0-7479-450e-8fe7-b8b8438ac570","versions":[{"name":"Execution of COM object via Xwizard v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Windows Component Object Model (COM) is an inter-process communication (IPC) component of the native Windows application programming interface (API) that enables interaction between software objects or executable code. Xwizard can be used to run a COM object created in registry to evade defensive counter measures.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://lolbas-project.github.io/lolbas/Binaries/Xwizard/","http://www.hexacorn.com/blog/2017/07/31/the-wizard-of-x-oppa-plugx-style/"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1559","name":"Inter-Process Communication","reference":"https://attack.mitre.org/techniques/T1559/","subtechnique":[{"id":"T1559.001","name":"Component Object Model","reference":"https://attack.mitre.org/techniques/T1559/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name : \"xwizard.exe\" and\n (\n (process.args : \"RunWizard\" and process.args : \"{*}\") or\n (process.executable != null and\n not process.executable : (\"C:\\\\Windows\\\\SysWOW64\\\\xwizard.exe\", \"C:\\\\Windows\\\\System32\\\\xwizard.exe\")\n )\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Execution of COM object via Xwizard v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Windows Component Object Model (COM) is an inter-process communication (IPC) component of the native Windows application programming interface (API) that enables interaction between software objects or executable code. Xwizard can be used to run a COM object created in registry to evade defensive counter measures.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://lolbas-project.github.io/lolbas/Binaries/Xwizard/","http://www.hexacorn.com/blog/2017/07/31/the-wizard-of-x-oppa-plugx-style/"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1559","name":"Inter-Process Communication","reference":"https://attack.mitre.org/techniques/T1559/","subtechnique":[{"id":"T1559.001","name":"Component Object Model","reference":"https://attack.mitre.org/techniques/T1559/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name : \"xwizard.exe\" and\n (\n (process.args : \"RunWizard\" and process.args : \"{*}\") or\n (process.executable != null and\n not process.executable : (\"C:\\\\Windows\\\\SysWOW64\\\\xwizard.exe\", \"C:\\\\Windows\\\\System32\\\\xwizard.exe\")\n )\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Execution of COM object via Xwizard v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Windows Component Object Model (COM) is an inter-process communication (IPC) component of the native Windows application programming interface (API) that enables interaction between software objects or executable code. Xwizard can be used to run a COM object created in registry to evade defensive counter measures.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://lolbas-project.github.io/lolbas/Binaries/Xwizard/","http://www.hexacorn.com/blog/2017/07/31/the-wizard-of-x-oppa-plugx-style/"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1559","name":"Inter-Process Communication","reference":"https://attack.mitre.org/techniques/T1559/","subtechnique":[{"id":"T1559.001","name":"Component Object Model","reference":"https://attack.mitre.org/techniques/T1559/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name : \"xwizard.exe\" and\n (\n (process.args : \"RunWizard\" and process.args : \"{*}\") or\n (process.executable != null and\n not process.executable : (\"C:\\\\Windows\\\\SysWOW64\\\\xwizard.exe\", \"C:\\\\Windows\\\\System32\\\\xwizard.exe\")\n )\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"1a6075b0-7479-450e-8fe7-b8b8438ac570","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/1aa8fa52-44a7-4dae-b058-f3333b91c8d7.json b/fleet-packages/detection-rules-composite/kibana/security_rule/1aa8fa52-44a7-4dae-b058-f3333b91c8d7.json new file mode 100644 index 0000000000000..cbe1b94f065d2 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/1aa8fa52-44a7-4dae-b058-f3333b91c8d7.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"1aa8fa52-44a7-4dae-b058-f3333b91c8d7","versions":[{"name":"AWS CloudTrail Log Suspended v103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspending the recording of AWS API calls and log file delivery for the specified trail. An adversary may suspend trails in an attempt to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudTrail Log Suspended\n\nAmazon CloudTrail is a service that enables governance, compliance, operational auditing, and risk auditing of your\nAmazon Web Services account. With CloudTrail, you can log, continuously monitor, and retain account activity related to\nactions across your Amazon Web Services infrastructure. CloudTrail provides event history of your Amazon Web Services\naccount activity, including actions taken through the Amazon Management Console, Amazon SDKs, command line tools, and\nother Amazon Web Services services. This event history simplifies security analysis, resource change tracking, and\ntroubleshooting.\n\nThis rule identifies the suspension of an AWS log trail using the API `StopLogging` action. Attackers can do this to\ncover their tracks and impact security monitoring that relies on this source.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Investigate the deleted log trail's criticality and whether the responsible team is aware of the deletion.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Suspending the recording of a trail may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Trail suspensions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_StopLogging.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudtrail/stop-logging.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:StopLogging and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS CloudTrail Log Suspended v103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspending the recording of AWS API calls and log file delivery for the specified trail. An adversary may suspend trails in an attempt to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudTrail Log Suspended\n\nAmazon CloudTrail is a service that enables governance, compliance, operational auditing, and risk auditing of your\nAmazon Web Services account. With CloudTrail, you can log, continuously monitor, and retain account activity related to\nactions across your Amazon Web Services infrastructure. CloudTrail provides event history of your Amazon Web Services\naccount activity, including actions taken through the Amazon Management Console, Amazon SDKs, command line tools, and\nother Amazon Web Services services. This event history simplifies security analysis, resource change tracking, and\ntroubleshooting.\n\nThis rule identifies the suspension of an AWS log trail using the API `StopLogging` action. Attackers can do this to\ncover their tracks and impact security monitoring that relies on this source.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Investigate the deleted log trail's criticality and whether the responsible team is aware of the deletion.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Suspending the recording of a trail may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Trail suspensions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_StopLogging.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudtrail/stop-logging.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:StopLogging and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS CloudTrail Log Suspended v103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspending the recording of AWS API calls and log file delivery for the specified trail. An adversary may suspend trails in an attempt to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudTrail Log Suspended\n\nAmazon CloudTrail is a service that enables governance, compliance, operational auditing, and risk auditing of your\nAmazon Web Services account. With CloudTrail, you can log, continuously monitor, and retain account activity related to\nactions across your Amazon Web Services infrastructure. CloudTrail provides event history of your Amazon Web Services\naccount activity, including actions taken through the Amazon Management Console, Amazon SDKs, command line tools, and\nother Amazon Web Services services. This event history simplifies security analysis, resource change tracking, and\ntroubleshooting.\n\nThis rule identifies the suspension of an AWS log trail using the API `StopLogging` action. Attackers can do this to\ncover their tracks and impact security monitoring that relies on this source.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Investigate the deleted log trail's criticality and whether the responsible team is aware of the deletion.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Suspending the recording of a trail may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Trail suspensions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_StopLogging.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudtrail/stop-logging.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:StopLogging and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"1aa8fa52-44a7-4dae-b058-f3333b91c8d7","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/1aa9181a-492b-4c01-8b16-fa0735786b2b.json b/fleet-packages/detection-rules-composite/kibana/security_rule/1aa9181a-492b-4c01-8b16-fa0735786b2b.json new file mode 100644 index 0000000000000..caa4fbe6e6da5 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/1aa9181a-492b-4c01-8b16-fa0735786b2b.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"1aa9181a-492b-4c01-8b16-fa0735786b2b","versions":[{"name":"User Account Creation v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to create new users. This is sometimes done by attackers to increase access or establish persistence on a system or domain.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating User Account Creation\n\nAttackers may create new accounts (both local and domain) to maintain access to victim systems.\n\nThis rule identifies the usage of `net.exe` to create new accounts.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Identify if the account was added to privileged groups or assigned special privileges after creation.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- Account creation is a common administrative task, so there is a high chance of the activity being legitimate. Before\ninvestigating further, verify that this activity is not benign.\n\n### Related rules\n\n- Creation of a Hidden Local User Account - 2edc8076-291e-41e9-81e4-e3fcbc97ae5e\n- Windows User Account Creation - 38e17753-f581-4644-84da-0d60a8318694\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Delete the created account.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/","subtechnique":[{"id":"T1136.001","name":"Local Account","reference":"https://attack.mitre.org/techniques/T1136/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"net.exe\", \"net1.exe\") and\n not process.parent.name : \"net.exe\" and\n (process.args : \"user\" and process.args : (\"/ad\", \"/add\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"User Account Creation v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to create new users. This is sometimes done by attackers to increase access or establish persistence on a system or domain.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating User Account Creation\n\nAttackers may create new accounts (both local and domain) to maintain access to victim systems.\n\nThis rule identifies the usage of `net.exe` to create new accounts.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Identify if the account was added to privileged groups or assigned special privileges after creation.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- Account creation is a common administrative task, so there is a high chance of the activity being legitimate. Before\ninvestigating further, verify that this activity is not benign.\n\n### Related rules\n\n- Creation of a Hidden Local User Account - 2edc8076-291e-41e9-81e4-e3fcbc97ae5e\n- Windows User Account Creation - 38e17753-f581-4644-84da-0d60a8318694\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Delete the created account.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/","subtechnique":[{"id":"T1136.001","name":"Local Account","reference":"https://attack.mitre.org/techniques/T1136/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"net.exe\", \"net1.exe\") and\n not process.parent.name : \"net.exe\" and\n (process.args : \"user\" and process.args : (\"/ad\", \"/add\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"User Account Creation v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to create new users. This is sometimes done by attackers to increase access or establish persistence on a system or domain.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating User Account Creation\n\nAttackers may create new accounts (both local and domain) to maintain access to victim systems.\n\nThis rule identifies the usage of `net.exe` to create new accounts.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Identify if the account was added to privileged groups or assigned special privileges after creation.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- Account creation is a common administrative task, so there is a high chance of the activity being legitimate. Before\ninvestigating further, verify that this activity is not benign.\n\n### Related rules\n\n- Creation of a Hidden Local User Account - 2edc8076-291e-41e9-81e4-e3fcbc97ae5e\n- Windows User Account Creation - 38e17753-f581-4644-84da-0d60a8318694\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Delete the created account.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/","subtechnique":[{"id":"T1136.001","name":"Local Account","reference":"https://attack.mitre.org/techniques/T1136/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"net.exe\", \"net1.exe\") and\n not process.parent.name : \"net.exe\" and\n (process.args : \"user\" and process.args : (\"/ad\", \"/add\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"1aa9181a-492b-4c01-8b16-fa0735786b2b","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/1b21abcc-4d9f-4b08-a7f5-316f5f94b973.json b/fleet-packages/detection-rules-composite/kibana/security_rule/1b21abcc-4d9f-4b08-a7f5-316f5f94b973.json new file mode 100644 index 0000000000000..f1f34f542c66a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/1b21abcc-4d9f-4b08-a7f5-316f5f94b973.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"1b21abcc-4d9f-4b08-a7f5-316f5f94b973","versions":[{"name":"Connection to Internal Network via Telnet v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Telnet provides a command line interface for communication with a remote device or server. This rule identifies Telnet network connections to non-publicly routable IP addresses.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Telnet can be used for both benign or malicious purposes. Telnet is included by default in some Linux distributions, so its presence is not inherently suspicious. The use of Telnet to manage devices remotely has declined in recent years in favor of more secure protocols such as SSH. Telnet usage by non-automated tools or frameworks may be suspicious."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Linux","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name == \"telnet\" and event.type == \"start\"]\n [network where process.name == \"telnet\" and\n cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\",\n \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\",\n \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Connection to Internal Network via Telnet v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Telnet provides a command line interface for communication with a remote device or server. This rule identifies Telnet network connections to non-publicly routable IP addresses.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Telnet can be used for both benign or malicious purposes. Telnet is included by default in some Linux distributions, so its presence is not inherently suspicious. The use of Telnet to manage devices remotely has declined in recent years in favor of more secure protocols such as SSH. Telnet usage by non-automated tools or frameworks may be suspicious."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Linux","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name == \"telnet\" and event.type == \"start\"]\n [network where process.name == \"telnet\" and\n cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\",\n \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\",\n \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Connection to Internal Network via Telnet v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Telnet provides a command line interface for communication with a remote device or server. This rule identifies Telnet network connections to non-publicly routable IP addresses.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Telnet can be used for both benign or malicious purposes. Telnet is included by default in some Linux distributions, so its presence is not inherently suspicious. The use of Telnet to manage devices remotely has declined in recent years in favor of more secure protocols such as SSH. Telnet usage by non-automated tools or frameworks may be suspicious."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Linux","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name == \"telnet\" and event.type == \"start\"]\n [network where process.name == \"telnet\" and\n cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\",\n \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\",\n \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"1b21abcc-4d9f-4b08-a7f5-316f5f94b973","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/1ba5160d-f5a2-4624-b0ff-6a1dc55d2516.json b/fleet-packages/detection-rules-composite/kibana/security_rule/1ba5160d-f5a2-4624-b0ff-6a1dc55d2516.json new file mode 100644 index 0000000000000..0a40b81a7c2f5 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/1ba5160d-f5a2-4624-b0ff-6a1dc55d2516.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"1ba5160d-f5a2-4624-b0ff-6a1dc55d2516","versions":[{"name":"AWS ElastiCache Security Group Modified or Deleted v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an ElastiCache security group has been modified or deleted.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["A ElastiCache security group deletion may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Security Group deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/Welcome.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:elasticache.amazonaws.com and event.action:(\"Delete Cache Security Group\" or\n\"Authorize Cache Security Group Ingress\" or \"Revoke Cache Security Group Ingress\" or \"AuthorizeCacheSecurityGroupEgress\" or\n\"RevokeCacheSecurityGroupEgress\") and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS ElastiCache Security Group Modified or Deleted v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an ElastiCache security group has been modified or deleted.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["A ElastiCache security group deletion may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Security Group deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/Welcome.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:elasticache.amazonaws.com and event.action:(\"Delete Cache Security Group\" or\n\"Authorize Cache Security Group Ingress\" or \"Revoke Cache Security Group Ingress\" or \"AuthorizeCacheSecurityGroupEgress\" or\n\"RevokeCacheSecurityGroupEgress\") and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS ElastiCache Security Group Modified or Deleted v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an ElastiCache security group has been modified or deleted.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["A ElastiCache security group deletion may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Security Group deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/Welcome.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:elasticache.amazonaws.com and event.action:(\"Delete Cache Security Group\" or\n\"Authorize Cache Security Group Ingress\" or \"Revoke Cache Security Group Ingress\" or \"AuthorizeCacheSecurityGroupEgress\" or\n\"RevokeCacheSecurityGroupEgress\") and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"1ba5160d-f5a2-4624-b0ff-6a1dc55d2516","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/1c27fa22-7727-4dd3-81c0-de6da5555feb.json b/fleet-packages/detection-rules-composite/kibana/security_rule/1c27fa22-7727-4dd3-81c0-de6da5555feb.json new file mode 100644 index 0000000000000..44f60acfc3b47 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/1c27fa22-7727-4dd3-81c0-de6da5555feb.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"1c27fa22-7727-4dd3-81c0-de6da5555feb","versions":[{"name":"Potential Linux SSH Brute Force Detected v1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple consecutive login failures targeting an user account from the same source address and within a short time interval. Adversaries will often brute force login attempts across multiple users with a common or known password, in an attempt to gain access to accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential SSH Brute Force Attack\n\nThe rule identifies consecutive SSH login failures targeting a user account from the same source IP address to the\nsame target host indicating brute force login attempts.\n\n#### Possible investigation steps\n\n- Investigate the login failure user name(s).\n- Investigate the source IP address of the failed ssh login attempt(s).\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Infrastructure or availability issue.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified.\n- Reset passwords for these accounts and other potentially compromised credentials.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip, user.name with maxspan=10s\n [authentication where event.action in (\"ssh_login\", \"user_login\") and\n event.outcome == \"failure\" and source.ip != null and source.ip != \"0.0.0.0\" and source.ip != \"::\" ] with runs=10\n","type":"eql","index":["auditbeat-*","logs-system.auth-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.name","type":"keyword"}]},{"name":"Potential Linux SSH Brute Force Detected v1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple consecutive login failures targeting an user account from the same source address and within a short time interval. Adversaries will often brute force login attempts across multiple users with a common or known password, in an attempt to gain access to accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential SSH Brute Force Attack\n\nThe rule identifies consecutive SSH login failures targeting a user account from the same source IP address to the\nsame target host indicating brute force login attempts.\n\n#### Possible investigation steps\n\n- Investigate the login failure user name(s).\n- Investigate the source IP address of the failed ssh login attempt(s).\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Infrastructure or availability issue.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified.\n- Reset passwords for these accounts and other potentially compromised credentials.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip, user.name with maxspan=10s\n [authentication where event.action in (\"ssh_login\", \"user_login\") and\n event.outcome == \"failure\" and source.ip != null and source.ip != \"0.0.0.0\" and source.ip != \"::\" ] with runs=10\n","type":"eql","index":["auditbeat-*","logs-system.auth-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.name","type":"keyword"}]},{"name":"Potential Linux SSH Brute Force Detected v1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple consecutive login failures targeting an user account from the same source address and within a short time interval. Adversaries will often brute force login attempts across multiple users with a common or known password, in an attempt to gain access to accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential SSH Brute Force Attack\n\nThe rule identifies consecutive SSH login failures targeting a user account from the same source IP address to the\nsame target host indicating brute force login attempts.\n\n#### Possible investigation steps\n\n- Investigate the login failure user name(s).\n- Investigate the source IP address of the failed ssh login attempt(s).\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Infrastructure or availability issue.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified.\n- Reset passwords for these accounts and other potentially compromised credentials.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip, user.name with maxspan=10s\n [authentication where event.action in (\"ssh_login\", \"user_login\") and\n event.outcome == \"failure\" and source.ip != null and source.ip != \"0.0.0.0\" and source.ip != \"::\" ] with runs=10\n","type":"eql","index":["auditbeat-*","logs-system.auth-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.name","type":"keyword"}]}]},"id":"1c27fa22-7727-4dd3-81c0-de6da5555feb","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/1c6a8c7a-5cb6-4a82-ba27-d5a5b8a40a38.json b/fleet-packages/detection-rules-composite/kibana/security_rule/1c6a8c7a-5cb6-4a82-ba27-d5a5b8a40a38.json new file mode 100644 index 0000000000000..bbeb77a390830 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/1c6a8c7a-5cb6-4a82-ba27-d5a5b8a40a38.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"1c6a8c7a-5cb6-4a82-ba27-d5a5b8a40a38","versions":[{"name":"Possible Consent Grant Attack via Azure-Registered Application v103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a user grants permissions to an Azure-registered application or when an administrator grants tenant-wide permissions to an application. An adversary may create an Azure-registered application that requests access to data such as contact information, email, or documents.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Possible Consent Grant Attack via Azure-Registered Application\n\nIn an illicit consent grant attack, the attacker creates an Azure-registered application that requests access to data\nsuch as contact information, email, or documents. The attacker then tricks an end user into granting that application\nconsent to access their data either through a phishing attack, or by injecting illicit code into a trusted website.\nAfter the illicit application has been granted consent, it has account-level access to data without the need for an\norganizational account. Normal remediation steps like resetting passwords for breached accounts or requiring multi-factor\nauthentication (MFA) on accounts are not effective against this type of attack, since these are third-party applications\nand are external to the organization.\n\nOfficial Microsoft guidance for detecting and remediating this attack can be found [here](https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/detect-and-remediate-illicit-consent-grants).\n\n#### Possible investigation steps\n\n- From the Azure AD portal, Review the application that was granted permissions:\n - Click on the `Review permissions` button on the `Permissions` blade of the application.\n - An app should require only permissions related to the app's purpose. If that's not the case, the app might be risky.\n - Apps that require high privileges or admin consent are more likely to be risky.\n- Investigate the app and the publisher. The following characteristics can indicate suspicious apps:\n - A low number of downloads.\n - Low rating or score or bad comments.\n - Apps with a suspicious publisher or website.\n - Apps whose last update is not recent. This might indicate an app that is no longer supported.\n- Export and examine the [Oauth app auditing](https://docs.microsoft.com/en-us/defender-cloud-apps/manage-app-permissions#oauth-app-auditing) to identify users affected.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Malicious applications abuse the same workflow used by legitimate apps.\nThus, analysts must review each app consent to ensure that only desired apps are granted access.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Disable the malicious application to stop user access and the application access to your data.\n- Revoke the application Oauth consent grant. The `Remove-AzureADOAuth2PermissionGrant` cmdlet can be used to complete\nthis task.\n- Remove the service principal application role assignment. The `Remove-AzureADServiceAppRoleAssignment` cmdlet can be\nused to complete this task.\n- Revoke the refresh token for all users assigned to the application. Azure provides a [playbook](https://github.com/Azure/Azure-Sentinel/tree/master/Playbooks/Revoke-AADSignInSessions) for this task.\n- [Report](https://docs.microsoft.com/en-us/defender-cloud-apps/manage-app-permissions#send-feedback) the application as malicious to Microsoft.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Investigate the potential for data compromise from the user's email and file sharing services. Activate your Data Loss\nincident response playbook.\n- Disable the permission for a user to set consent permission on their behalf.\n - Enable the [Admin consent request](https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/configure-admin-consent-workflow) feature.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/detect-and-remediate-illicit-consent-grants?view=o365-worldwide","https://www.cloud-architekt.net/detection-and-mitigation-consent-grant-attacks-azuread/","https://docs.microsoft.com/en-us/defender-cloud-apps/investigate-risky-oauth#how-to-detect-risky-oauth-apps"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1528","name":"Steal Application Access Token","reference":"https://attack.mitre.org/techniques/T1528/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:(azure.activitylogs or azure.auditlogs or o365.audit) and\n (\n azure.activitylogs.operation_name:\"Consent to application\" or\n azure.auditlogs.operation_name:\"Consent to application\" or\n o365.audit.Operation:\"Consent to application.\"\n ) and\n event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"},{"package":"azure","version":"^1.0.0"},{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":false,"name":"o365.audit.Operation","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Possible Consent Grant Attack via Azure-Registered Application v103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a user grants permissions to an Azure-registered application or when an administrator grants tenant-wide permissions to an application. An adversary may create an Azure-registered application that requests access to data such as contact information, email, or documents.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Possible Consent Grant Attack via Azure-Registered Application\n\nIn an illicit consent grant attack, the attacker creates an Azure-registered application that requests access to data\nsuch as contact information, email, or documents. The attacker then tricks an end user into granting that application\nconsent to access their data either through a phishing attack, or by injecting illicit code into a trusted website.\nAfter the illicit application has been granted consent, it has account-level access to data without the need for an\norganizational account. Normal remediation steps like resetting passwords for breached accounts or requiring multi-factor\nauthentication (MFA) on accounts are not effective against this type of attack, since these are third-party applications\nand are external to the organization.\n\nOfficial Microsoft guidance for detecting and remediating this attack can be found [here](https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/detect-and-remediate-illicit-consent-grants).\n\n#### Possible investigation steps\n\n- From the Azure AD portal, Review the application that was granted permissions:\n - Click on the `Review permissions` button on the `Permissions` blade of the application.\n - An app should require only permissions related to the app's purpose. If that's not the case, the app might be risky.\n - Apps that require high privileges or admin consent are more likely to be risky.\n- Investigate the app and the publisher. The following characteristics can indicate suspicious apps:\n - A low number of downloads.\n - Low rating or score or bad comments.\n - Apps with a suspicious publisher or website.\n - Apps whose last update is not recent. This might indicate an app that is no longer supported.\n- Export and examine the [Oauth app auditing](https://docs.microsoft.com/en-us/defender-cloud-apps/manage-app-permissions#oauth-app-auditing) to identify users affected.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Malicious applications abuse the same workflow used by legitimate apps.\nThus, analysts must review each app consent to ensure that only desired apps are granted access.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Disable the malicious application to stop user access and the application access to your data.\n- Revoke the application Oauth consent grant. The `Remove-AzureADOAuth2PermissionGrant` cmdlet can be used to complete\nthis task.\n- Remove the service principal application role assignment. The `Remove-AzureADServiceAppRoleAssignment` cmdlet can be\nused to complete this task.\n- Revoke the refresh token for all users assigned to the application. Azure provides a [playbook](https://github.com/Azure/Azure-Sentinel/tree/master/Playbooks/Revoke-AADSignInSessions) for this task.\n- [Report](https://docs.microsoft.com/en-us/defender-cloud-apps/manage-app-permissions#send-feedback) the application as malicious to Microsoft.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Investigate the potential for data compromise from the user's email and file sharing services. Activate your Data Loss\nincident response playbook.\n- Disable the permission for a user to set consent permission on their behalf.\n - Enable the [Admin consent request](https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/configure-admin-consent-workflow) feature.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/detect-and-remediate-illicit-consent-grants?view=o365-worldwide","https://www.cloud-architekt.net/detection-and-mitigation-consent-grant-attacks-azuread/","https://docs.microsoft.com/en-us/defender-cloud-apps/investigate-risky-oauth#how-to-detect-risky-oauth-apps"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1528","name":"Steal Application Access Token","reference":"https://attack.mitre.org/techniques/T1528/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:(azure.activitylogs or azure.auditlogs or o365.audit) and\n (\n azure.activitylogs.operation_name:\"Consent to application\" or\n azure.auditlogs.operation_name:\"Consent to application\" or\n o365.audit.Operation:\"Consent to application.\"\n ) and\n event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"},{"package":"azure","version":"^1.0.0"},{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":false,"name":"o365.audit.Operation","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Possible Consent Grant Attack via Azure-Registered Application v103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a user grants permissions to an Azure-registered application or when an administrator grants tenant-wide permissions to an application. An adversary may create an Azure-registered application that requests access to data such as contact information, email, or documents.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Possible Consent Grant Attack via Azure-Registered Application\n\nIn an illicit consent grant attack, the attacker creates an Azure-registered application that requests access to data\nsuch as contact information, email, or documents. The attacker then tricks an end user into granting that application\nconsent to access their data either through a phishing attack, or by injecting illicit code into a trusted website.\nAfter the illicit application has been granted consent, it has account-level access to data without the need for an\norganizational account. Normal remediation steps like resetting passwords for breached accounts or requiring multi-factor\nauthentication (MFA) on accounts are not effective against this type of attack, since these are third-party applications\nand are external to the organization.\n\nOfficial Microsoft guidance for detecting and remediating this attack can be found [here](https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/detect-and-remediate-illicit-consent-grants).\n\n#### Possible investigation steps\n\n- From the Azure AD portal, Review the application that was granted permissions:\n - Click on the `Review permissions` button on the `Permissions` blade of the application.\n - An app should require only permissions related to the app's purpose. If that's not the case, the app might be risky.\n - Apps that require high privileges or admin consent are more likely to be risky.\n- Investigate the app and the publisher. The following characteristics can indicate suspicious apps:\n - A low number of downloads.\n - Low rating or score or bad comments.\n - Apps with a suspicious publisher or website.\n - Apps whose last update is not recent. This might indicate an app that is no longer supported.\n- Export and examine the [Oauth app auditing](https://docs.microsoft.com/en-us/defender-cloud-apps/manage-app-permissions#oauth-app-auditing) to identify users affected.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Malicious applications abuse the same workflow used by legitimate apps.\nThus, analysts must review each app consent to ensure that only desired apps are granted access.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Disable the malicious application to stop user access and the application access to your data.\n- Revoke the application Oauth consent grant. The `Remove-AzureADOAuth2PermissionGrant` cmdlet can be used to complete\nthis task.\n- Remove the service principal application role assignment. The `Remove-AzureADServiceAppRoleAssignment` cmdlet can be\nused to complete this task.\n- Revoke the refresh token for all users assigned to the application. Azure provides a [playbook](https://github.com/Azure/Azure-Sentinel/tree/master/Playbooks/Revoke-AADSignInSessions) for this task.\n- [Report](https://docs.microsoft.com/en-us/defender-cloud-apps/manage-app-permissions#send-feedback) the application as malicious to Microsoft.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Investigate the potential for data compromise from the user's email and file sharing services. Activate your Data Loss\nincident response playbook.\n- Disable the permission for a user to set consent permission on their behalf.\n - Enable the [Admin consent request](https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/configure-admin-consent-workflow) feature.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/detect-and-remediate-illicit-consent-grants?view=o365-worldwide","https://www.cloud-architekt.net/detection-and-mitigation-consent-grant-attacks-azuread/","https://docs.microsoft.com/en-us/defender-cloud-apps/investigate-risky-oauth#how-to-detect-risky-oauth-apps"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1528","name":"Steal Application Access Token","reference":"https://attack.mitre.org/techniques/T1528/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:(azure.activitylogs or azure.auditlogs or o365.audit) and\n (\n azure.activitylogs.operation_name:\"Consent to application\" or\n azure.auditlogs.operation_name:\"Consent to application\" or\n o365.audit.Operation:\"Consent to application.\"\n ) and\n event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"},{"package":"azure","version":"^1.0.0"},{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":false,"name":"o365.audit.Operation","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"1c6a8c7a-5cb6-4a82-ba27-d5a5b8a40a38","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/1c84dd64-7e6c-4bad-ac73-a5014ee37042.json b/fleet-packages/detection-rules-composite/kibana/security_rule/1c84dd64-7e6c-4bad-ac73-a5014ee37042.json new file mode 100644 index 0000000000000..d62d3cab46b4a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/1c84dd64-7e6c-4bad-ac73-a5014ee37042.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"1c84dd64-7e6c-4bad-ac73-a5014ee37042","versions":[{"name":"Suspicious File Creation in /etc for Persistence v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the manual creation of files in specific etc directories, via user root, used by Linux malware to persist and elevate privileges on compromised systems. File creation in these directories should not be entirely common and could indicate a malicious binary or script installing persistence for long term access.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.intezer.com/blog/incident-response/orbit-new-undetected-linux-threat/","https://www.intezer.com/blog/research/lightning-framework-new-linux-threat/"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Orbit","Lightning Framework"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1037","name":"Boot or Logon Initialization Scripts","reference":"https://attack.mitre.org/techniques/T1037/","subtechnique":[{"id":"T1037.004","name":"RC Scripts","reference":"https://attack.mitre.org/techniques/T1037/004/"}]},{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.006","name":"Dynamic Linker Hijacking","reference":"https://attack.mitre.org/techniques/T1574/006/"}]},{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.002","name":"Systemd Service","reference":"https://attack.mitre.org/techniques/T1543/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.003","name":"Cron","reference":"https://attack.mitre.org/techniques/T1053/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.003","name":"Sudo and Sudo Caching","reference":"https://attack.mitre.org/techniques/T1548/003/"}]}]}],"language":"eql","query":"file where event.action == \"creation\" and user.name == \"root\" and\nfile.path : (\"/etc/ld.so.conf.d/*\", \"/etc/cron.d/*\", \"/etc/sudoers.d/*\", \"/etc/rc.d/init.d/*\", \"/etc/systemd/system/*\")\nand not process.executable : (\"*/dpkg\", \"*/yum\", \"*/apt\", \"*/dnf\", \"*/systemd\", \"*/snapd\", \"*/dnf-automatic\",\n \"*/yum-cron\", \"*/elastic-agent\", \"*/dnfdaemon-system\")\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},{"name":"Suspicious File Creation in /etc for Persistence v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the manual creation of files in specific etc directories, via user root, used by Linux malware to persist and elevate privileges on compromised systems. File creation in these directories should not be entirely common and could indicate a malicious binary or script installing persistence for long term access.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.intezer.com/blog/incident-response/orbit-new-undetected-linux-threat/","https://www.intezer.com/blog/research/lightning-framework-new-linux-threat/"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Orbit","Lightning Framework"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1037","name":"Boot or Logon Initialization Scripts","reference":"https://attack.mitre.org/techniques/T1037/","subtechnique":[{"id":"T1037.004","name":"RC Scripts","reference":"https://attack.mitre.org/techniques/T1037/004/"}]},{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.006","name":"Dynamic Linker Hijacking","reference":"https://attack.mitre.org/techniques/T1574/006/"}]},{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.002","name":"Systemd Service","reference":"https://attack.mitre.org/techniques/T1543/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.003","name":"Cron","reference":"https://attack.mitre.org/techniques/T1053/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.003","name":"Sudo and Sudo Caching","reference":"https://attack.mitre.org/techniques/T1548/003/"}]}]}],"language":"eql","query":"file where event.action == \"creation\" and user.name == \"root\" and\nfile.path : (\"/etc/ld.so.conf.d/*\", \"/etc/cron.d/*\", \"/etc/sudoers.d/*\", \"/etc/rc.d/init.d/*\", \"/etc/systemd/system/*\")\nand not process.executable : (\"*/dpkg\", \"*/yum\", \"*/apt\", \"*/dnf\", \"*/systemd\", \"*/snapd\", \"*/dnf-automatic\",\n \"*/yum-cron\", \"*/elastic-agent\", \"*/dnfdaemon-system\")\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},{"name":"Suspicious File Creation in /etc for Persistence v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the manual creation of files in specific etc directories, via user root, used by Linux malware to persist and elevate privileges on compromised systems. File creation in these directories should not be entirely common and could indicate a malicious binary or script installing persistence for long term access.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.intezer.com/blog/incident-response/orbit-new-undetected-linux-threat/","https://www.intezer.com/blog/research/lightning-framework-new-linux-threat/"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Orbit","Lightning Framework"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1037","name":"Boot or Logon Initialization Scripts","reference":"https://attack.mitre.org/techniques/T1037/","subtechnique":[{"id":"T1037.004","name":"RC Scripts","reference":"https://attack.mitre.org/techniques/T1037/004/"}]},{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.006","name":"Dynamic Linker Hijacking","reference":"https://attack.mitre.org/techniques/T1574/006/"}]},{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.002","name":"Systemd Service","reference":"https://attack.mitre.org/techniques/T1543/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.003","name":"Cron","reference":"https://attack.mitre.org/techniques/T1053/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.003","name":"Sudo and Sudo Caching","reference":"https://attack.mitre.org/techniques/T1548/003/"}]}]}],"language":"eql","query":"file where event.action == \"creation\" and user.name == \"root\" and\nfile.path : (\"/etc/ld.so.conf.d/*\", \"/etc/cron.d/*\", \"/etc/sudoers.d/*\", \"/etc/rc.d/init.d/*\", \"/etc/systemd/system/*\")\nand not process.executable : (\"*/dpkg\", \"*/yum\", \"*/apt\", \"*/dnf\", \"*/systemd\", \"*/snapd\", \"*/dnf-automatic\",\n \"*/yum-cron\", \"*/elastic-agent\", \"*/dnfdaemon-system\")\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]}]},"id":"1c84dd64-7e6c-4bad-ac73-a5014ee37042","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/1c966416-60c1-436b-bfd0-e002fddbfd89.json b/fleet-packages/detection-rules-composite/kibana/security_rule/1c966416-60c1-436b-bfd0-e002fddbfd89.json new file mode 100644 index 0000000000000..dd5fb7d47fd7b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/1c966416-60c1-436b-bfd0-e002fddbfd89.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"1c966416-60c1-436b-bfd0-e002fddbfd89","versions":[{"name":"Azure Kubernetes Rolebindings Created v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of role binding or cluster role bindings. You can assign these roles to Kubernetes subjects (users, groups, or service accounts) with role bindings and cluster role bindings. An adversary who has permissions to create bindings and cluster-bindings in the cluster can create a binding to the cluster-admin ClusterRole or to other high privileges roles.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"from":"now-20m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkubernetes","https://www.microsoft.com/security/blog/2020/04/02/attack-matrix-kubernetes/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\n\t(\"MICROSOFT.KUBERNETES/CONNECTEDCLUSTERS/RBAC.AUTHORIZATION.K8S.IO/ROLEBINDINGS/WRITE\" or\n\t \"MICROSOFT.KUBERNETES/CONNECTEDCLUSTERS/RBAC.AUTHORIZATION.K8S.IO/CLUSTERROLEBINDINGS/WRITE\") and\nevent.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Kubernetes Rolebindings Created v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of role binding or cluster role bindings. You can assign these roles to Kubernetes subjects (users, groups, or service accounts) with role bindings and cluster role bindings. An adversary who has permissions to create bindings and cluster-bindings in the cluster can create a binding to the cluster-admin ClusterRole or to other high privileges roles.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"from":"now-20m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkubernetes","https://www.microsoft.com/security/blog/2020/04/02/attack-matrix-kubernetes/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\n\t(\"MICROSOFT.KUBERNETES/CONNECTEDCLUSTERS/RBAC.AUTHORIZATION.K8S.IO/ROLEBINDINGS/WRITE\" or\n\t \"MICROSOFT.KUBERNETES/CONNECTEDCLUSTERS/RBAC.AUTHORIZATION.K8S.IO/CLUSTERROLEBINDINGS/WRITE\") and\nevent.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Kubernetes Rolebindings Created v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of role binding or cluster role bindings. You can assign these roles to Kubernetes subjects (users, groups, or service accounts) with role bindings and cluster role bindings. An adversary who has permissions to create bindings and cluster-bindings in the cluster can create a binding to the cluster-admin ClusterRole or to other high privileges roles.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"from":"now-20m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkubernetes","https://www.microsoft.com/security/blog/2020/04/02/attack-matrix-kubernetes/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\n\t(\"MICROSOFT.KUBERNETES/CONNECTEDCLUSTERS/RBAC.AUTHORIZATION.K8S.IO/ROLEBINDINGS/WRITE\" or\n\t \"MICROSOFT.KUBERNETES/CONNECTEDCLUSTERS/RBAC.AUTHORIZATION.K8S.IO/CLUSTERROLEBINDINGS/WRITE\") and\nevent.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"1c966416-60c1-436b-bfd0-e002fddbfd89","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/1cd01db9-be24-4bef-8e7c-e923f0ff78ab.json b/fleet-packages/detection-rules-composite/kibana/security_rule/1cd01db9-be24-4bef-8e7c-e923f0ff78ab.json new file mode 100644 index 0000000000000..b58c3b49aa996 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/1cd01db9-be24-4bef-8e7c-e923f0ff78ab.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"1cd01db9-be24-4bef-8e7c-e923f0ff78ab","versions":[{"name":"Incoming Execution via WinRM Remote Shell v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote execution via Windows Remote Management (WinRM) remote shell on a target host. This could be an indication of lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["WinRM is a dual-use protocol that can be used for benign or malicious activity. It's important to baseline your environment to determine the amount of noise to expect from this tool."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by host.id with maxspan=30s\n [network where process.pid == 4 and network.direction : (\"incoming\", \"ingress\") and\n destination.port in (5985, 5986) and network.protocol == \"http\" and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ]\n [process where event.type == \"start\" and process.parent.name : \"winrshost.exe\" and not process.name : \"conhost.exe\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"},{"ecs":true,"name":"source.ip","type":"ip"}]},{"name":"Incoming Execution via WinRM Remote Shell v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote execution via Windows Remote Management (WinRM) remote shell on a target host. This could be an indication of lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["WinRM is a dual-use protocol that can be used for benign or malicious activity. It's important to baseline your environment to determine the amount of noise to expect from this tool."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by host.id with maxspan=30s\n [network where process.pid == 4 and network.direction : (\"incoming\", \"ingress\") and\n destination.port in (5985, 5986) and network.protocol == \"http\" and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ]\n [process where event.type == \"start\" and process.parent.name : \"winrshost.exe\" and not process.name : \"conhost.exe\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"},{"ecs":true,"name":"source.ip","type":"ip"}]},{"name":"Incoming Execution via WinRM Remote Shell v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote execution via Windows Remote Management (WinRM) remote shell on a target host. This could be an indication of lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["WinRM is a dual-use protocol that can be used for benign or malicious activity. It's important to baseline your environment to determine the amount of noise to expect from this tool."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by host.id with maxspan=30s\n [network where process.pid == 4 and network.direction : (\"incoming\", \"ingress\") and\n destination.port in (5985, 5986) and network.protocol == \"http\" and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ]\n [process where event.type == \"start\" and process.parent.name : \"winrshost.exe\" and not process.name : \"conhost.exe\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"},{"ecs":true,"name":"source.ip","type":"ip"}]}]},"id":"1cd01db9-be24-4bef-8e7c-e923f0ff78ab","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/1d276579-3380-4095-ad38-e596a01bc64f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/1d276579-3380-4095-ad38-e596a01bc64f.json new file mode 100644 index 0000000000000..5caca3a7adfc3 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/1d276579-3380-4095-ad38-e596a01bc64f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"1d276579-3380-4095-ad38-e596a01bc64f","versions":[{"name":"Remote File Download via Script Interpreter v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies built-in Windows script interpreters (cscript.exe or wscript.exe) being used to download an executable file from a remote destination.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote File Download via Script Interpreter\n\nThe Windows Script Host (WSH) is a Windows automation technology, which is ideal for non-interactive scripting needs,\nsuch as logon scripting, administrative scripting, and machine automation.\n\nAttackers commonly use WSH scripts as their initial access method, acting like droppers for second stage payloads, but\ncan also use them to download tools and utilities needed to accomplish their goals.\n\nThis rule looks for DLLs and executables downloaded using `cscript.exe` or `wscript.exe`.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze both the script and the executable involved using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- The usage of these script engines by regular users is unlikely. In the case of authorized benign true positives\n(B-TPs), exceptions can be added.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"sequence by host.id, process.entity_id\n [network where process.name : (\"wscript.exe\", \"cscript.exe\") and network.protocol != \"dns\" and\n network.direction : (\"outgoing\", \"egress\") and network.type == \"ipv4\" and destination.ip != \"127.0.0.1\"\n ]\n [file where event.type == \"creation\" and file.extension : (\"exe\", \"dll\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"network.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Remote File Download via Script Interpreter v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies built-in Windows script interpreters (cscript.exe or wscript.exe) being used to download an executable file from a remote destination.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote File Download via Script Interpreter\n\nThe Windows Script Host (WSH) is a Windows automation technology, which is ideal for non-interactive scripting needs,\nsuch as logon scripting, administrative scripting, and machine automation.\n\nAttackers commonly use WSH scripts as their initial access method, acting like droppers for second stage payloads, but\ncan also use them to download tools and utilities needed to accomplish their goals.\n\nThis rule looks for DLLs and executables downloaded using `cscript.exe` or `wscript.exe`.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze both the script and the executable involved using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- The usage of these script engines by regular users is unlikely. In the case of authorized benign true positives\n(B-TPs), exceptions can be added.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"sequence by host.id, process.entity_id\n [network where process.name : (\"wscript.exe\", \"cscript.exe\") and network.protocol != \"dns\" and\n network.direction : (\"outgoing\", \"egress\") and network.type == \"ipv4\" and destination.ip != \"127.0.0.1\"\n ]\n [file where event.type == \"creation\" and file.extension : (\"exe\", \"dll\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"network.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Remote File Download via Script Interpreter v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies built-in Windows script interpreters (cscript.exe or wscript.exe) being used to download an executable file from a remote destination.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote File Download via Script Interpreter\n\nThe Windows Script Host (WSH) is a Windows automation technology, which is ideal for non-interactive scripting needs,\nsuch as logon scripting, administrative scripting, and machine automation.\n\nAttackers commonly use WSH scripts as their initial access method, acting like droppers for second stage payloads, but\ncan also use them to download tools and utilities needed to accomplish their goals.\n\nThis rule looks for DLLs and executables downloaded using `cscript.exe` or `wscript.exe`.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze both the script and the executable involved using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- The usage of these script engines by regular users is unlikely. In the case of authorized benign true positives\n(B-TPs), exceptions can be added.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"sequence by host.id, process.entity_id\n [network where process.name : (\"wscript.exe\", \"cscript.exe\") and network.protocol != \"dns\" and\n network.direction : (\"outgoing\", \"egress\") and network.type == \"ipv4\" and destination.ip != \"127.0.0.1\"\n ]\n [file where event.type == \"creation\" and file.extension : (\"exe\", \"dll\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"network.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"1d276579-3380-4095-ad38-e596a01bc64f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/1d72d014-e2ab-4707-b056-9b96abe7b511.json b/fleet-packages/detection-rules-composite/kibana/security_rule/1d72d014-e2ab-4707-b056-9b96abe7b511.json new file mode 100644 index 0000000000000..0a281b270e431 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/1d72d014-e2ab-4707-b056-9b96abe7b511.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"1d72d014-e2ab-4707-b056-9b96abe7b511","versions":[{"name":"External IP Lookup from Non-Browser Process v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies domains commonly used by adversaries for post-exploitation IP lookups. It is common for adversaries to test for Internet access and acquire their external IP address after they have gained access to a system. Among others, this has been observed in campaigns leveraging the information stealer, Trickbot.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating External IP Lookup from Non-Browser Process\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for connections to known IP lookup services through non-browser processes or non-installed programs.\nUsing only the IP address of the compromised system, attackers can obtain valuable information such as the system's\ngeographic location, the company that owns the IP, whether the system is cloud-hosted, and more.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Use the data collected through the analysis to investigate other machines affected in the environment.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If the domains listed in this rule are used as part of an authorized workflow, this rule will be triggered by those events. Validate that this is expected activity and tune the rule to fit your environment variables."],"from":"now-9m","references":["https://community.jisc.ac.uk/blogs/csirt/article/trickbot-analysis-and-mitigation","https://www.cybereason.com/blog/dropping-anchor-from-a-trickbot-infection-to-the-discovery-of-the-anchor-malware"],"tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1614","name":"System Location Discovery","reference":"https://attack.mitre.org/techniques/T1614/"},{"id":"T1016","name":"System Network Configuration Discovery","reference":"https://attack.mitre.org/techniques/T1016/","subtechnique":[{"id":"T1016.001","name":"Internet Connection Discovery","reference":"https://attack.mitre.org/techniques/T1016/001/"}]}]}],"language":"eql","query":"network where network.protocol == \"dns\" and\n process.name != null and user.id not in (\"S-1-5-19\", \"S-1-5-20\") and\n event.action == \"lookup_requested\" and\n /* Add new external IP lookup services here */\n dns.question.name :\n (\n \"*api.ipify.org\",\n \"*freegeoip.app\",\n \"*checkip.amazonaws.com\",\n \"*checkip.dyndns.org\",\n \"*freegeoip.app\",\n \"*icanhazip.com\",\n \"*ifconfig.*\",\n \"*ipecho.net\",\n \"*ipgeoapi.com\",\n \"*ipinfo.io\",\n \"*ip.anysrc.net\",\n \"*myexternalip.com\",\n \"*myipaddress.com\",\n \"*showipaddress.com\",\n \"*whatismyipaddress.com\",\n \"*wtfismyip.com\",\n \"*ipapi.co\",\n \"*ip-lookup.net\",\n \"*ipstack.com\"\n ) and\n /* Insert noisy false positives here */\n not process.executable :\n (\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\WWAHost.exe\",\n \"?:\\\\Windows\\\\System32\\\\smartscreen.exe\",\n \"?:\\\\Windows\\\\System32\\\\MicrosoftEdgeCP.exe\",\n \"?:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\Platform\\\\*\\\\MsMpEng.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Programs\\\\Fiddler\\\\Fiddler.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Programs\\\\Microsoft VS Code\\\\Code.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Microsoft\\\\OneDrive\\\\OneDrive.exe\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"dns.question.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"External IP Lookup from Non-Browser Process v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies domains commonly used by adversaries for post-exploitation IP lookups. It is common for adversaries to test for Internet access and acquire their external IP address after they have gained access to a system. Among others, this has been observed in campaigns leveraging the information stealer, Trickbot.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating External IP Lookup from Non-Browser Process\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for connections to known IP lookup services through non-browser processes or non-installed programs.\nUsing only the IP address of the compromised system, attackers can obtain valuable information such as the system's\ngeographic location, the company that owns the IP, whether the system is cloud-hosted, and more.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Use the data collected through the analysis to investigate other machines affected in the environment.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If the domains listed in this rule are used as part of an authorized workflow, this rule will be triggered by those events. Validate that this is expected activity and tune the rule to fit your environment variables."],"from":"now-9m","references":["https://community.jisc.ac.uk/blogs/csirt/article/trickbot-analysis-and-mitigation","https://www.cybereason.com/blog/dropping-anchor-from-a-trickbot-infection-to-the-discovery-of-the-anchor-malware"],"tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1614","name":"System Location Discovery","reference":"https://attack.mitre.org/techniques/T1614/"},{"id":"T1016","name":"System Network Configuration Discovery","reference":"https://attack.mitre.org/techniques/T1016/","subtechnique":[{"id":"T1016.001","name":"Internet Connection Discovery","reference":"https://attack.mitre.org/techniques/T1016/001/"}]}]}],"language":"eql","query":"network where network.protocol == \"dns\" and\n process.name != null and user.id not in (\"S-1-5-19\", \"S-1-5-20\") and\n event.action == \"lookup_requested\" and\n /* Add new external IP lookup services here */\n dns.question.name :\n (\n \"*api.ipify.org\",\n \"*freegeoip.app\",\n \"*checkip.amazonaws.com\",\n \"*checkip.dyndns.org\",\n \"*freegeoip.app\",\n \"*icanhazip.com\",\n \"*ifconfig.*\",\n \"*ipecho.net\",\n \"*ipgeoapi.com\",\n \"*ipinfo.io\",\n \"*ip.anysrc.net\",\n \"*myexternalip.com\",\n \"*myipaddress.com\",\n \"*showipaddress.com\",\n \"*whatismyipaddress.com\",\n \"*wtfismyip.com\",\n \"*ipapi.co\",\n \"*ip-lookup.net\",\n \"*ipstack.com\"\n ) and\n /* Insert noisy false positives here */\n not process.executable :\n (\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\WWAHost.exe\",\n \"?:\\\\Windows\\\\System32\\\\smartscreen.exe\",\n \"?:\\\\Windows\\\\System32\\\\MicrosoftEdgeCP.exe\",\n \"?:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\Platform\\\\*\\\\MsMpEng.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Programs\\\\Fiddler\\\\Fiddler.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Programs\\\\Microsoft VS Code\\\\Code.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Microsoft\\\\OneDrive\\\\OneDrive.exe\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"dns.question.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"External IP Lookup from Non-Browser Process v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies domains commonly used by adversaries for post-exploitation IP lookups. It is common for adversaries to test for Internet access and acquire their external IP address after they have gained access to a system. Among others, this has been observed in campaigns leveraging the information stealer, Trickbot.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating External IP Lookup from Non-Browser Process\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for connections to known IP lookup services through non-browser processes or non-installed programs.\nUsing only the IP address of the compromised system, attackers can obtain valuable information such as the system's\ngeographic location, the company that owns the IP, whether the system is cloud-hosted, and more.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Use the data collected through the analysis to investigate other machines affected in the environment.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If the domains listed in this rule are used as part of an authorized workflow, this rule will be triggered by those events. Validate that this is expected activity and tune the rule to fit your environment variables."],"from":"now-9m","references":["https://community.jisc.ac.uk/blogs/csirt/article/trickbot-analysis-and-mitigation","https://www.cybereason.com/blog/dropping-anchor-from-a-trickbot-infection-to-the-discovery-of-the-anchor-malware"],"tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1614","name":"System Location Discovery","reference":"https://attack.mitre.org/techniques/T1614/"},{"id":"T1016","name":"System Network Configuration Discovery","reference":"https://attack.mitre.org/techniques/T1016/","subtechnique":[{"id":"T1016.001","name":"Internet Connection Discovery","reference":"https://attack.mitre.org/techniques/T1016/001/"}]}]}],"language":"eql","query":"network where network.protocol == \"dns\" and\n process.name != null and user.id not in (\"S-1-5-19\", \"S-1-5-20\") and\n event.action == \"lookup_requested\" and\n /* Add new external IP lookup services here */\n dns.question.name :\n (\n \"*api.ipify.org\",\n \"*freegeoip.app\",\n \"*checkip.amazonaws.com\",\n \"*checkip.dyndns.org\",\n \"*freegeoip.app\",\n \"*icanhazip.com\",\n \"*ifconfig.*\",\n \"*ipecho.net\",\n \"*ipgeoapi.com\",\n \"*ipinfo.io\",\n \"*ip.anysrc.net\",\n \"*myexternalip.com\",\n \"*myipaddress.com\",\n \"*showipaddress.com\",\n \"*whatismyipaddress.com\",\n \"*wtfismyip.com\",\n \"*ipapi.co\",\n \"*ip-lookup.net\",\n \"*ipstack.com\"\n ) and\n /* Insert noisy false positives here */\n not process.executable :\n (\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\WWAHost.exe\",\n \"?:\\\\Windows\\\\System32\\\\smartscreen.exe\",\n \"?:\\\\Windows\\\\System32\\\\MicrosoftEdgeCP.exe\",\n \"?:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\Platform\\\\*\\\\MsMpEng.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Programs\\\\Fiddler\\\\Fiddler.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Programs\\\\Microsoft VS Code\\\\Code.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Microsoft\\\\OneDrive\\\\OneDrive.exe\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"dns.question.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]}]},"id":"1d72d014-e2ab-4707-b056-9b96abe7b511","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/1dcc51f6-ba26-49e7-9ef4-2655abb2361e.json b/fleet-packages/detection-rules-composite/kibana/security_rule/1dcc51f6-ba26-49e7-9ef4-2655abb2361e.json new file mode 100644 index 0000000000000..47fde138107bd --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/1dcc51f6-ba26-49e7-9ef4-2655abb2361e.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"1dcc51f6-ba26-49e7-9ef4-2655abb2361e","versions":[{"name":"UAC Bypass via DiskCleanup Scheduled Task Hijack v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies User Account Control (UAC) bypass via hijacking DiskCleanup Scheduled Task. Attackers bypass UAC to stealthily execute code with elevated permissions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.args : \"/autoclean\" and process.args : \"/d\" and\n not process.executable : (\"C:\\\\Windows\\\\System32\\\\cleanmgr.exe\",\n \"C:\\\\Windows\\\\SysWOW64\\\\cleanmgr.exe\",\n \"C:\\\\Windows\\\\System32\\\\taskhostw.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"UAC Bypass via DiskCleanup Scheduled Task Hijack v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies User Account Control (UAC) bypass via hijacking DiskCleanup Scheduled Task. Attackers bypass UAC to stealthily execute code with elevated permissions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.args : \"/autoclean\" and process.args : \"/d\" and\n not process.executable : (\"C:\\\\Windows\\\\System32\\\\cleanmgr.exe\",\n \"C:\\\\Windows\\\\SysWOW64\\\\cleanmgr.exe\",\n \"C:\\\\Windows\\\\System32\\\\taskhostw.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"UAC Bypass via DiskCleanup Scheduled Task Hijack v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies User Account Control (UAC) bypass via hijacking DiskCleanup Scheduled Task. Attackers bypass UAC to stealthily execute code with elevated permissions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.args : \"/autoclean\" and process.args : \"/d\" and\n not process.executable : (\"C:\\\\Windows\\\\System32\\\\cleanmgr.exe\",\n \"C:\\\\Windows\\\\SysWOW64\\\\cleanmgr.exe\",\n \"C:\\\\Windows\\\\System32\\\\taskhostw.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"1dcc51f6-ba26-49e7-9ef4-2655abb2361e","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/1defdd62-cd8d-426e-a246-81a37751bb2b.json b/fleet-packages/detection-rules-composite/kibana/security_rule/1defdd62-cd8d-426e-a246-81a37751bb2b.json new file mode 100644 index 0000000000000..72f46e221f02d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/1defdd62-cd8d-426e-a246-81a37751bb2b.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"1defdd62-cd8d-426e-a246-81a37751bb2b","versions":[{"name":"Execution of File Written or Modified by PDF Reader v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious file that was written by a PDF reader application and subsequently executed. These processes are often launched via exploitation of PDF applications.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Execution of File Written or Modified by PDF Reader\n\nPDF is a common file type used in corporate environments and most machines have software to\nhandle these files. This creates a vector where attackers can exploit the engines and technology behind this class of\nsoftware for initial access or privilege escalation.\n\nThis rule searches for executable files written by PDF reader software and executed in sequence. This is most likely the\nresult of exploitation for privilege escalation or initial access. This rule can also detect suspicious processes masquerading as\nPDF readers.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve the PDF documents received and opened by the user that could cause this behavior. Common locations include,\nbut are not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-120m","interval":"60m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"},{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]}],"language":"eql","query":"sequence with maxspan=2h\n [file where event.type != \"deletion\" and file.extension : \"exe\" and\n (process.name : \"AcroRd32.exe\" or\n process.name : \"rdrcef.exe\" or\n process.name : \"FoxitPhantomPDF.exe\" or\n process.name : \"FoxitReader.exe\") and\n not (file.name : \"FoxitPhantomPDF.exe\" or\n file.name : \"FoxitPhantomPDFUpdater.exe\" or\n file.name : \"FoxitReader.exe\" or\n file.name : \"FoxitReaderUpdater.exe\" or\n file.name : \"AcroRd32.exe\" or\n file.name : \"rdrcef.exe\")\n ] by host.id, file.path\n [process where event.type == \"start\"] by host.id, process.executable\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Execution of File Written or Modified by PDF Reader v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious file that was written by a PDF reader application and subsequently executed. These processes are often launched via exploitation of PDF applications.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Execution of File Written or Modified by PDF Reader\n\nPDF is a common file type used in corporate environments and most machines have software to\nhandle these files. This creates a vector where attackers can exploit the engines and technology behind this class of\nsoftware for initial access or privilege escalation.\n\nThis rule searches for executable files written by PDF reader software and executed in sequence. This is most likely the\nresult of exploitation for privilege escalation or initial access. This rule can also detect suspicious processes masquerading as\nPDF readers.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve the PDF documents received and opened by the user that could cause this behavior. Common locations include,\nbut are not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-120m","interval":"60m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"},{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]}],"language":"eql","query":"sequence with maxspan=2h\n [file where event.type != \"deletion\" and file.extension : \"exe\" and\n (process.name : \"AcroRd32.exe\" or\n process.name : \"rdrcef.exe\" or\n process.name : \"FoxitPhantomPDF.exe\" or\n process.name : \"FoxitReader.exe\") and\n not (file.name : \"FoxitPhantomPDF.exe\" or\n file.name : \"FoxitPhantomPDFUpdater.exe\" or\n file.name : \"FoxitReader.exe\" or\n file.name : \"FoxitReaderUpdater.exe\" or\n file.name : \"AcroRd32.exe\" or\n file.name : \"rdrcef.exe\")\n ] by host.id, file.path\n [process where event.type == \"start\"] by host.id, process.executable\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Execution of File Written or Modified by PDF Reader v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious file that was written by a PDF reader application and subsequently executed. These processes are often launched via exploitation of PDF applications.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Execution of File Written or Modified by PDF Reader\n\nPDF is a common file type used in corporate environments and most machines have software to\nhandle these files. This creates a vector where attackers can exploit the engines and technology behind this class of\nsoftware for initial access or privilege escalation.\n\nThis rule searches for executable files written by PDF reader software and executed in sequence. This is most likely the\nresult of exploitation for privilege escalation or initial access. This rule can also detect suspicious processes masquerading as\nPDF readers.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve the PDF documents received and opened by the user that could cause this behavior. Common locations include,\nbut are not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-120m","interval":"60m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"},{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]}],"language":"eql","query":"sequence with maxspan=2h\n [file where event.type != \"deletion\" and file.extension : \"exe\" and\n (process.name : \"AcroRd32.exe\" or\n process.name : \"rdrcef.exe\" or\n process.name : \"FoxitPhantomPDF.exe\" or\n process.name : \"FoxitReader.exe\") and\n not (file.name : \"FoxitPhantomPDF.exe\" or\n file.name : \"FoxitPhantomPDFUpdater.exe\" or\n file.name : \"FoxitReader.exe\" or\n file.name : \"FoxitReaderUpdater.exe\" or\n file.name : \"AcroRd32.exe\" or\n file.name : \"rdrcef.exe\")\n ] by host.id, file.path\n [process where event.type == \"start\"] by host.id, process.executable\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"1defdd62-cd8d-426e-a246-81a37751bb2b","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/1e0b832e-957e-43ae-b319-db82d228c908.json b/fleet-packages/detection-rules-composite/kibana/security_rule/1e0b832e-957e-43ae-b319-db82d228c908.json new file mode 100644 index 0000000000000..633ba67f216d4 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/1e0b832e-957e-43ae-b319-db82d228c908.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"1e0b832e-957e-43ae-b319-db82d228c908","versions":[{"name":"Azure Storage Account Key Regenerated v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a rotation to storage account access keys in Azure. Regenerating access keys can affect any applications or Azure services that are dependent on the storage account key. Adversaries may regenerate a key as a means of acquiring credentials to access systems and resources.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["It's recommended that you rotate your access keys periodically to help keep your storage account secure. Normal key rotation can be exempted from the rule. An abnormal time frame and/or a key rotation from unfamiliar users, hosts, or locations should be investigated."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/storage/common/storage-account-keys-manage?tabs=azure-portal"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1528","name":"Steal Application Access Token","reference":"https://attack.mitre.org/techniques/T1528/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.STORAGE/STORAGEACCOUNTS/REGENERATEKEY/ACTION\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Storage Account Key Regenerated v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a rotation to storage account access keys in Azure. Regenerating access keys can affect any applications or Azure services that are dependent on the storage account key. Adversaries may regenerate a key as a means of acquiring credentials to access systems and resources.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["It's recommended that you rotate your access keys periodically to help keep your storage account secure. Normal key rotation can be exempted from the rule. An abnormal time frame and/or a key rotation from unfamiliar users, hosts, or locations should be investigated."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/storage/common/storage-account-keys-manage?tabs=azure-portal"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1528","name":"Steal Application Access Token","reference":"https://attack.mitre.org/techniques/T1528/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.STORAGE/STORAGEACCOUNTS/REGENERATEKEY/ACTION\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Storage Account Key Regenerated v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a rotation to storage account access keys in Azure. Regenerating access keys can affect any applications or Azure services that are dependent on the storage account key. Adversaries may regenerate a key as a means of acquiring credentials to access systems and resources.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["It's recommended that you rotate your access keys periodically to help keep your storage account secure. Normal key rotation can be exempted from the rule. An abnormal time frame and/or a key rotation from unfamiliar users, hosts, or locations should be investigated."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/storage/common/storage-account-keys-manage?tabs=azure-portal"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1528","name":"Steal Application Access Token","reference":"https://attack.mitre.org/techniques/T1528/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.STORAGE/STORAGEACCOUNTS/REGENERATEKEY/ACTION\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"1e0b832e-957e-43ae-b319-db82d228c908","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/1e9fc667-9ff1-4b33-9f40-fefca8537eb0.json b/fleet-packages/detection-rules-composite/kibana/security_rule/1e9fc667-9ff1-4b33-9f40-fefca8537eb0.json new file mode 100644 index 0000000000000..03ea5eac958b4 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/1e9fc667-9ff1-4b33-9f40-fefca8537eb0.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"1e9fc667-9ff1-4b33-9f40-fefca8537eb0","versions":[{"name":"Unusual Sudo Activity v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for sudo activity from an unusual user context. An unusual sudo user could be due to troubleshooting activity or it could be a sign of credentialed access via compromised accounts.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon sudo activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]}],"anomaly_threshold":75,"machine_learning_job_id":["v3_linux_rare_sudo_user"],"type":"machine_learning"},{"name":"Unusual Sudo Activity v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for sudo activity from an unusual user context. An unusual sudo user could be due to troubleshooting activity or it could be a sign of credentialed access via compromised accounts.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon sudo activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]}],"anomaly_threshold":75,"machine_learning_job_id":["v3_linux_rare_sudo_user"],"type":"machine_learning"},{"name":"Unusual Sudo Activity v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for sudo activity from an unusual user context. An unusual sudo user could be due to troubleshooting activity or it could be a sign of credentialed access via compromised accounts.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon sudo activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]}],"anomaly_threshold":75,"machine_learning_job_id":["v3_linux_rare_sudo_user"],"type":"machine_learning"}]},"id":"1e9fc667-9ff1-4b33-9f40-fefca8537eb0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/1faec04b-d902-4f89-8aff-92cd9043c16f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/1faec04b-d902-4f89-8aff-92cd9043c16f.json new file mode 100644 index 0000000000000..fea1f27752a26 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/1faec04b-d902-4f89-8aff-92cd9043c16f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"1faec04b-d902-4f89-8aff-92cd9043c16f","versions":[{"name":"Unusual Linux User Calling the Metadata Service v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for anomalous access to the cloud platform metadata service by an unusual user. The metadata service may be targeted in order to harvest credentials or user data scripts containing secrets.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program, or one that runs under a new or rarely used user context, could trigger this detection rule. Manual interrogation of the metadata service during debugging or troubleshooting could trigger this rule."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.005","name":"Cloud Instance Metadata API","reference":"https://attack.mitre.org/techniques/T1552/005/"}]}]}],"anomaly_threshold":75,"machine_learning_job_id":["v3_linux_rare_metadata_user"],"type":"machine_learning"},{"name":"Unusual Linux User Calling the Metadata Service v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for anomalous access to the cloud platform metadata service by an unusual user. The metadata service may be targeted in order to harvest credentials or user data scripts containing secrets.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program, or one that runs under a new or rarely used user context, could trigger this detection rule. Manual interrogation of the metadata service during debugging or troubleshooting could trigger this rule."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.005","name":"Cloud Instance Metadata API","reference":"https://attack.mitre.org/techniques/T1552/005/"}]}]}],"anomaly_threshold":75,"machine_learning_job_id":["v3_linux_rare_metadata_user"],"type":"machine_learning"},{"name":"Unusual Linux User Calling the Metadata Service v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for anomalous access to the cloud platform metadata service by an unusual user. The metadata service may be targeted in order to harvest credentials or user data scripts containing secrets.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program, or one that runs under a new or rarely used user context, could trigger this detection rule. Manual interrogation of the metadata service during debugging or troubleshooting could trigger this rule."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.005","name":"Cloud Instance Metadata API","reference":"https://attack.mitre.org/techniques/T1552/005/"}]}]}],"anomaly_threshold":75,"machine_learning_job_id":["v3_linux_rare_metadata_user"],"type":"machine_learning"}]},"id":"1faec04b-d902-4f89-8aff-92cd9043c16f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/1fe3b299-fbb5-4657-a937-1d746f2c711a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/1fe3b299-fbb5-4657-a937-1d746f2c711a.json new file mode 100644 index 0000000000000..a66a3ead3f543 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/1fe3b299-fbb5-4657-a937-1d746f2c711a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"1fe3b299-fbb5-4657-a937-1d746f2c711a","versions":[{"name":"Unusual Network Activity from a Windows System Binary v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies network activity from unexpected system applications. This may indicate adversarial activity as these applications are often leveraged by adversaries to execute code and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/"}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=5m\n [process where event.type == \"start\" and\n\n /* known applocker bypasses */\n (process.name : \"bginfo.exe\" or\n process.name : \"cdb.exe\" or\n process.name : \"control.exe\" or\n process.name : \"cmstp.exe\" or\n process.name : \"csi.exe\" or\n process.name : \"dnx.exe\" or\n process.name : \"fsi.exe\" or\n process.name : \"ieexec.exe\" or\n process.name : \"iexpress.exe\" or\n process.name : \"installutil.exe\" or\n process.name : \"Microsoft.Workflow.Compiler.exe\" or\n process.name : \"MSBuild.exe\" or\n process.name : \"msdt.exe\" or\n process.name : \"mshta.exe\" or\n process.name : \"msiexec.exe\" or\n process.name : \"msxsl.exe\" or\n process.name : \"odbcconf.exe\" or\n process.name : \"rcsi.exe\" or\n process.name : \"regsvr32.exe\" or\n process.name : \"xwizard.exe\")]\n [network where\n (process.name : \"bginfo.exe\" or\n process.name : \"cdb.exe\" or\n process.name : \"control.exe\" or\n process.name : \"cmstp.exe\" or\n process.name : \"csi.exe\" or\n process.name : \"dnx.exe\" or\n process.name : \"fsi.exe\" or\n process.name : \"ieexec.exe\" or\n process.name : \"iexpress.exe\" or\n process.name : \"installutil.exe\" or\n process.name : \"Microsoft.Workflow.Compiler.exe\" or\n process.name : \"MSBuild.exe\" or\n process.name : \"msdt.exe\" or\n process.name : \"mshta.exe\" or\n process.name : \"msiexec.exe\" or\n process.name : \"msxsl.exe\" or\n process.name : \"odbcconf.exe\" or\n process.name : \"rcsi.exe\" or\n process.name : \"regsvr32.exe\" or\n process.name : \"xwizard.exe\")]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Unusual Network Activity from a Windows System Binary v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies network activity from unexpected system applications. This may indicate adversarial activity as these applications are often leveraged by adversaries to execute code and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/"}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=5m\n [process where event.type == \"start\" and\n\n /* known applocker bypasses */\n (process.name : \"bginfo.exe\" or\n process.name : \"cdb.exe\" or\n process.name : \"control.exe\" or\n process.name : \"cmstp.exe\" or\n process.name : \"csi.exe\" or\n process.name : \"dnx.exe\" or\n process.name : \"fsi.exe\" or\n process.name : \"ieexec.exe\" or\n process.name : \"iexpress.exe\" or\n process.name : \"installutil.exe\" or\n process.name : \"Microsoft.Workflow.Compiler.exe\" or\n process.name : \"MSBuild.exe\" or\n process.name : \"msdt.exe\" or\n process.name : \"mshta.exe\" or\n process.name : \"msiexec.exe\" or\n process.name : \"msxsl.exe\" or\n process.name : \"odbcconf.exe\" or\n process.name : \"rcsi.exe\" or\n process.name : \"regsvr32.exe\" or\n process.name : \"xwizard.exe\")]\n [network where\n (process.name : \"bginfo.exe\" or\n process.name : \"cdb.exe\" or\n process.name : \"control.exe\" or\n process.name : \"cmstp.exe\" or\n process.name : \"csi.exe\" or\n process.name : \"dnx.exe\" or\n process.name : \"fsi.exe\" or\n process.name : \"ieexec.exe\" or\n process.name : \"iexpress.exe\" or\n process.name : \"installutil.exe\" or\n process.name : \"Microsoft.Workflow.Compiler.exe\" or\n process.name : \"MSBuild.exe\" or\n process.name : \"msdt.exe\" or\n process.name : \"mshta.exe\" or\n process.name : \"msiexec.exe\" or\n process.name : \"msxsl.exe\" or\n process.name : \"odbcconf.exe\" or\n process.name : \"rcsi.exe\" or\n process.name : \"regsvr32.exe\" or\n process.name : \"xwizard.exe\")]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Unusual Network Activity from a Windows System Binary v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies network activity from unexpected system applications. This may indicate adversarial activity as these applications are often leveraged by adversaries to execute code and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/"}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=5m\n [process where event.type == \"start\" and\n\n /* known applocker bypasses */\n (process.name : \"bginfo.exe\" or\n process.name : \"cdb.exe\" or\n process.name : \"control.exe\" or\n process.name : \"cmstp.exe\" or\n process.name : \"csi.exe\" or\n process.name : \"dnx.exe\" or\n process.name : \"fsi.exe\" or\n process.name : \"ieexec.exe\" or\n process.name : \"iexpress.exe\" or\n process.name : \"installutil.exe\" or\n process.name : \"Microsoft.Workflow.Compiler.exe\" or\n process.name : \"MSBuild.exe\" or\n process.name : \"msdt.exe\" or\n process.name : \"mshta.exe\" or\n process.name : \"msiexec.exe\" or\n process.name : \"msxsl.exe\" or\n process.name : \"odbcconf.exe\" or\n process.name : \"rcsi.exe\" or\n process.name : \"regsvr32.exe\" or\n process.name : \"xwizard.exe\")]\n [network where\n (process.name : \"bginfo.exe\" or\n process.name : \"cdb.exe\" or\n process.name : \"control.exe\" or\n process.name : \"cmstp.exe\" or\n process.name : \"csi.exe\" or\n process.name : \"dnx.exe\" or\n process.name : \"fsi.exe\" or\n process.name : \"ieexec.exe\" or\n process.name : \"iexpress.exe\" or\n process.name : \"installutil.exe\" or\n process.name : \"Microsoft.Workflow.Compiler.exe\" or\n process.name : \"MSBuild.exe\" or\n process.name : \"msdt.exe\" or\n process.name : \"mshta.exe\" or\n process.name : \"msiexec.exe\" or\n process.name : \"msxsl.exe\" or\n process.name : \"odbcconf.exe\" or\n process.name : \"rcsi.exe\" or\n process.name : \"regsvr32.exe\" or\n process.name : \"xwizard.exe\")]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"1fe3b299-fbb5-4657-a937-1d746f2c711a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/2003cdc8-8d83-4aa5-b132-1f9a8eb48514.json b/fleet-packages/detection-rules-composite/kibana/security_rule/2003cdc8-8d83-4aa5-b132-1f9a8eb48514.json new file mode 100644 index 0000000000000..bbdc92a41eb06 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/2003cdc8-8d83-4aa5-b132-1f9a8eb48514.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"2003cdc8-8d83-4aa5-b132-1f9a8eb48514","versions":[{"name":"Exploit - Detected - Elastic Endgame v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected an Exploit. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:exploit_event or endgame.event_subtype_full:exploit_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Exploit - Detected - Elastic Endgame v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected an Exploit. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:exploit_event or endgame.event_subtype_full:exploit_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Exploit - Detected - Elastic Endgame v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected an Exploit. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:exploit_event or endgame.event_subtype_full:exploit_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]}]},"id":"2003cdc8-8d83-4aa5-b132-1f9a8eb48514","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/201200f1-a99b-43fb-88ed-f65a45c4972c.json b/fleet-packages/detection-rules-composite/kibana/security_rule/201200f1-a99b-43fb-88ed-f65a45c4972c.json new file mode 100644 index 0000000000000..c92b95e0aeda6 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/201200f1-a99b-43fb-88ed-f65a45c4972c.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"201200f1-a99b-43fb-88ed-f65a45c4972c","versions":[{"name":"Suspicious .NET Code Compilation v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious .NET code execution. connections.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1027","name":"Obfuscated Files or Information","reference":"https://attack.mitre.org/techniques/T1027/","subtechnique":[{"id":"T1027.004","name":"Compile After Delivery","reference":"https://attack.mitre.org/techniques/T1027/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"csc.exe\", \"vbc.exe\") and\n process.parent.name : (\"wscript.exe\", \"mshta.exe\", \"cscript.exe\", \"wmic.exe\", \"svchost.exe\", \"rundll32.exe\", \"cmstp.exe\", \"regsvr32.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious .NET Code Compilation v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious .NET code execution. connections.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1027","name":"Obfuscated Files or Information","reference":"https://attack.mitre.org/techniques/T1027/","subtechnique":[{"id":"T1027.004","name":"Compile After Delivery","reference":"https://attack.mitre.org/techniques/T1027/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"csc.exe\", \"vbc.exe\") and\n process.parent.name : (\"wscript.exe\", \"mshta.exe\", \"cscript.exe\", \"wmic.exe\", \"svchost.exe\", \"rundll32.exe\", \"cmstp.exe\", \"regsvr32.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious .NET Code Compilation v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious .NET code execution. connections.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1027","name":"Obfuscated Files or Information","reference":"https://attack.mitre.org/techniques/T1027/","subtechnique":[{"id":"T1027.004","name":"Compile After Delivery","reference":"https://attack.mitre.org/techniques/T1027/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"csc.exe\", \"vbc.exe\") and\n process.parent.name : (\"wscript.exe\", \"mshta.exe\", \"cscript.exe\", \"wmic.exe\", \"svchost.exe\", \"rundll32.exe\", \"cmstp.exe\", \"regsvr32.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"201200f1-a99b-43fb-88ed-f65a45c4972c","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/203ab79b-239b-4aa5-8e54-fc50623ee8e4.json b/fleet-packages/detection-rules-composite/kibana/security_rule/203ab79b-239b-4aa5-8e54-fc50623ee8e4.json new file mode 100644 index 0000000000000..4a1b724b0e847 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/203ab79b-239b-4aa5-8e54-fc50623ee8e4.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"203ab79b-239b-4aa5-8e54-fc50623ee8e4","versions":[{"name":"Creation or Modification of Root Certificate v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of a local trusted root certificate in Windows. The install of a malicious root certificate would allow an attacker the ability to masquerade malicious files as valid signed components from any entity (for example, Microsoft). It could also allow an attacker to decrypt SSL traffic.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Creation or Modification of Root Certificate\n\nRoot certificates are the primary level of certifications that tell a browser that the communication is trusted and\nlegitimate. This verification is based upon the identification of a certification authority. Windows\nadds several trusted root certificates so browsers can use them to communicate with websites.\n\n[Check out this post](https://www.thewindowsclub.com/what-are-root-certificates-windows) for more details on root certificates and the involved cryptography.\n\nThis rule identifies the creation or modification of a root certificate by monitoring registry modifications. The\ninstallation of a malicious root certificate would allow an attacker the ability to masquerade malicious files as valid\nsigned components from any entity (for example, Microsoft). It could also allow an attacker to decrypt SSL traffic.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate abnormal behaviors observed by the subject process such as network connections, other registry or file\nmodifications, and any spawned child processes.\n- If one of the processes is suspicious, retrieve it and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This detection may be triggered by certain applications that install root certificates for the purpose of inspecting\nSSL traffic. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove the malicious certificate from the root certificate store.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain applications may install root certificates for the purpose of inspecting SSL traffic."],"from":"now-9m","references":["https://posts.specterops.io/code-signing-certificate-cloning-attacks-and-defenses-6f98657fc6ec","https://www.ired.team/offensive-security/persistence/t1130-install-root-certificate"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1553","name":"Subvert Trust Controls","reference":"https://attack.mitre.org/techniques/T1553/","subtechnique":[{"id":"T1553.004","name":"Install Root Certificate","reference":"https://attack.mitre.org/techniques/T1553/004/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n registry.path :\n (\n \"HKLM\\\\Software\\\\Microsoft\\\\SystemCertificates\\\\Root\\\\Certificates\\\\*\\\\Blob\",\n \"HKLM\\\\Software\\\\Microsoft\\\\SystemCertificates\\\\AuthRoot\\\\Certificates\\\\*\\\\Blob\",\n \"HKLM\\\\Software\\\\Policies\\\\Microsoft\\\\SystemCertificates\\\\Root\\\\Certificates\\\\*\\\\Blob\",\n \"HKLM\\\\Software\\\\Policies\\\\Microsoft\\\\SystemCertificates\\\\AuthRoot\\\\Certificates\\\\*\\\\Blob\",\n \"\\\\REGISTRY\\\\MACHINE\\\\Software\\\\Microsoft\\\\SystemCertificates\\\\Root\\\\Certificates\\\\*\\\\Blob\",\n \"\\\\REGISTRY\\\\MACHINE\\\\Software\\\\Microsoft\\\\SystemCertificates\\\\AuthRoot\\\\Certificates\\\\*\\\\Blob\",\n \"\\\\REGISTRY\\\\MACHINE\\\\Software\\\\Policies\\\\Microsoft\\\\SystemCertificates\\\\Root\\\\Certificates\\\\*\\\\Blob\",\n \"\\\\REGISTRY\\\\MACHINE\\\\Software\\\\Policies\\\\Microsoft\\\\SystemCertificates\\\\AuthRoot\\\\Certificates\\\\*\\\\Blob\"\n ) and\n not process.executable :\n (\"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\*.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\*.exe\",\n \"?:\\\\Windows\\\\Sysmon64.exe\",\n \"?:\\\\Windows\\\\Sysmon.exe\",\n \"?:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\Platform\\\\*\\\\MsMpEng.exe\",\n \"?:\\\\Windows\\\\WinSxS\\\\*.exe\",\n \"?:\\\\Windows\\\\UUS\\\\amd64\\\\MoUsoCoreWorker.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Creation or Modification of Root Certificate v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of a local trusted root certificate in Windows. The install of a malicious root certificate would allow an attacker the ability to masquerade malicious files as valid signed components from any entity (for example, Microsoft). It could also allow an attacker to decrypt SSL traffic.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Creation or Modification of Root Certificate\n\nRoot certificates are the primary level of certifications that tell a browser that the communication is trusted and\nlegitimate. This verification is based upon the identification of a certification authority. Windows\nadds several trusted root certificates so browsers can use them to communicate with websites.\n\n[Check out this post](https://www.thewindowsclub.com/what-are-root-certificates-windows) for more details on root certificates and the involved cryptography.\n\nThis rule identifies the creation or modification of a root certificate by monitoring registry modifications. The\ninstallation of a malicious root certificate would allow an attacker the ability to masquerade malicious files as valid\nsigned components from any entity (for example, Microsoft). It could also allow an attacker to decrypt SSL traffic.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate abnormal behaviors observed by the subject process such as network connections, other registry or file\nmodifications, and any spawned child processes.\n- If one of the processes is suspicious, retrieve it and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This detection may be triggered by certain applications that install root certificates for the purpose of inspecting\nSSL traffic. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove the malicious certificate from the root certificate store.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain applications may install root certificates for the purpose of inspecting SSL traffic."],"from":"now-9m","references":["https://posts.specterops.io/code-signing-certificate-cloning-attacks-and-defenses-6f98657fc6ec","https://www.ired.team/offensive-security/persistence/t1130-install-root-certificate"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1553","name":"Subvert Trust Controls","reference":"https://attack.mitre.org/techniques/T1553/","subtechnique":[{"id":"T1553.004","name":"Install Root Certificate","reference":"https://attack.mitre.org/techniques/T1553/004/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n registry.path :\n (\n \"HKLM\\\\Software\\\\Microsoft\\\\SystemCertificates\\\\Root\\\\Certificates\\\\*\\\\Blob\",\n \"HKLM\\\\Software\\\\Microsoft\\\\SystemCertificates\\\\AuthRoot\\\\Certificates\\\\*\\\\Blob\",\n \"HKLM\\\\Software\\\\Policies\\\\Microsoft\\\\SystemCertificates\\\\Root\\\\Certificates\\\\*\\\\Blob\",\n \"HKLM\\\\Software\\\\Policies\\\\Microsoft\\\\SystemCertificates\\\\AuthRoot\\\\Certificates\\\\*\\\\Blob\",\n \"\\\\REGISTRY\\\\MACHINE\\\\Software\\\\Microsoft\\\\SystemCertificates\\\\Root\\\\Certificates\\\\*\\\\Blob\",\n \"\\\\REGISTRY\\\\MACHINE\\\\Software\\\\Microsoft\\\\SystemCertificates\\\\AuthRoot\\\\Certificates\\\\*\\\\Blob\",\n \"\\\\REGISTRY\\\\MACHINE\\\\Software\\\\Policies\\\\Microsoft\\\\SystemCertificates\\\\Root\\\\Certificates\\\\*\\\\Blob\",\n \"\\\\REGISTRY\\\\MACHINE\\\\Software\\\\Policies\\\\Microsoft\\\\SystemCertificates\\\\AuthRoot\\\\Certificates\\\\*\\\\Blob\"\n ) and\n not process.executable :\n (\"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\*.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\*.exe\",\n \"?:\\\\Windows\\\\Sysmon64.exe\",\n \"?:\\\\Windows\\\\Sysmon.exe\",\n \"?:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\Platform\\\\*\\\\MsMpEng.exe\",\n \"?:\\\\Windows\\\\WinSxS\\\\*.exe\",\n \"?:\\\\Windows\\\\UUS\\\\amd64\\\\MoUsoCoreWorker.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Creation or Modification of Root Certificate v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of a local trusted root certificate in Windows. The install of a malicious root certificate would allow an attacker the ability to masquerade malicious files as valid signed components from any entity (for example, Microsoft). It could also allow an attacker to decrypt SSL traffic.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Creation or Modification of Root Certificate\n\nRoot certificates are the primary level of certifications that tell a browser that the communication is trusted and\nlegitimate. This verification is based upon the identification of a certification authority. Windows\nadds several trusted root certificates so browsers can use them to communicate with websites.\n\n[Check out this post](https://www.thewindowsclub.com/what-are-root-certificates-windows) for more details on root certificates and the involved cryptography.\n\nThis rule identifies the creation or modification of a root certificate by monitoring registry modifications. The\ninstallation of a malicious root certificate would allow an attacker the ability to masquerade malicious files as valid\nsigned components from any entity (for example, Microsoft). It could also allow an attacker to decrypt SSL traffic.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate abnormal behaviors observed by the subject process such as network connections, other registry or file\nmodifications, and any spawned child processes.\n- If one of the processes is suspicious, retrieve it and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This detection may be triggered by certain applications that install root certificates for the purpose of inspecting\nSSL traffic. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove the malicious certificate from the root certificate store.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain applications may install root certificates for the purpose of inspecting SSL traffic."],"from":"now-9m","references":["https://posts.specterops.io/code-signing-certificate-cloning-attacks-and-defenses-6f98657fc6ec","https://www.ired.team/offensive-security/persistence/t1130-install-root-certificate"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1553","name":"Subvert Trust Controls","reference":"https://attack.mitre.org/techniques/T1553/","subtechnique":[{"id":"T1553.004","name":"Install Root Certificate","reference":"https://attack.mitre.org/techniques/T1553/004/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n registry.path :\n (\n \"HKLM\\\\Software\\\\Microsoft\\\\SystemCertificates\\\\Root\\\\Certificates\\\\*\\\\Blob\",\n \"HKLM\\\\Software\\\\Microsoft\\\\SystemCertificates\\\\AuthRoot\\\\Certificates\\\\*\\\\Blob\",\n \"HKLM\\\\Software\\\\Policies\\\\Microsoft\\\\SystemCertificates\\\\Root\\\\Certificates\\\\*\\\\Blob\",\n \"HKLM\\\\Software\\\\Policies\\\\Microsoft\\\\SystemCertificates\\\\AuthRoot\\\\Certificates\\\\*\\\\Blob\",\n \"\\\\REGISTRY\\\\MACHINE\\\\Software\\\\Microsoft\\\\SystemCertificates\\\\Root\\\\Certificates\\\\*\\\\Blob\",\n \"\\\\REGISTRY\\\\MACHINE\\\\Software\\\\Microsoft\\\\SystemCertificates\\\\AuthRoot\\\\Certificates\\\\*\\\\Blob\",\n \"\\\\REGISTRY\\\\MACHINE\\\\Software\\\\Policies\\\\Microsoft\\\\SystemCertificates\\\\Root\\\\Certificates\\\\*\\\\Blob\",\n \"\\\\REGISTRY\\\\MACHINE\\\\Software\\\\Policies\\\\Microsoft\\\\SystemCertificates\\\\AuthRoot\\\\Certificates\\\\*\\\\Blob\"\n ) and\n not process.executable :\n (\"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\*.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\*.exe\",\n \"?:\\\\Windows\\\\Sysmon64.exe\",\n \"?:\\\\Windows\\\\Sysmon.exe\",\n \"?:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\Platform\\\\*\\\\MsMpEng.exe\",\n \"?:\\\\Windows\\\\WinSxS\\\\*.exe\",\n \"?:\\\\Windows\\\\UUS\\\\amd64\\\\MoUsoCoreWorker.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"203ab79b-239b-4aa5-8e54-fc50623ee8e4","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/2045567e-b0af-444a-8c0b-0b6e2dae9e13.json b/fleet-packages/detection-rules-composite/kibana/security_rule/2045567e-b0af-444a-8c0b-0b6e2dae9e13.json new file mode 100644 index 0000000000000..a1a6a7dd14ade --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/2045567e-b0af-444a-8c0b-0b6e2dae9e13.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"2045567e-b0af-444a-8c0b-0b6e2dae9e13","versions":[{"name":"AWS Route 53 Domain Transferred to Another Account v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a request has been made to transfer a Route 53 domain to another AWS account.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["A domain may be transferred to another AWS account by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Domain transfers from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/Route53/latest/APIReference/API_Operations_Amazon_Route_53.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:route53.amazonaws.com and event.action:TransferDomainToAnotherAwsAccount and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Route 53 Domain Transferred to Another Account v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a request has been made to transfer a Route 53 domain to another AWS account.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["A domain may be transferred to another AWS account by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Domain transfers from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/Route53/latest/APIReference/API_Operations_Amazon_Route_53.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:route53.amazonaws.com and event.action:TransferDomainToAnotherAwsAccount and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Route 53 Domain Transferred to Another Account v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a request has been made to transfer a Route 53 domain to another AWS account.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["A domain may be transferred to another AWS account by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Domain transfers from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/Route53/latest/APIReference/API_Operations_Amazon_Route_53.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:route53.amazonaws.com and event.action:TransferDomainToAnotherAwsAccount and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"2045567e-b0af-444a-8c0b-0b6e2dae9e13","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/20457e4f-d1de-4b92-ae69-142e27a4342a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/20457e4f-d1de-4b92-ae69-142e27a4342a.json new file mode 100644 index 0000000000000..36a06cccbc857 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/20457e4f-d1de-4b92-ae69-142e27a4342a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"20457e4f-d1de-4b92-ae69-142e27a4342a","versions":[{"name":"Access of Stored Browser Credentials v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a process with arguments pointing to known browser files that store passwords and cookies. Adversaries may acquire credentials from web browsers by reading files specific to the target browser.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://securelist.com/calisto-trojan-for-macos/86543/"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1539","name":"Steal Web Session Cookie","reference":"https://attack.mitre.org/techniques/T1539/"},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.003","name":"Credentials from Web Browsers","reference":"https://attack.mitre.org/techniques/T1555/003/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.args :\n (\n \"/Users/*/Library/Application Support/Google/Chrome/Default/Login Data\",\n \"/Users/*/Library/Application Support/Google/Chrome/Default/Cookies\",\n \"/Users/*/Library/Application Support/Google/Chrome/Profile*/Cookies\",\n \"/Users/*/Library/Cookies*\",\n \"/Users/*/Library/Application Support/Firefox/Profiles/*.default/cookies.sqlite\",\n \"/Users/*/Library/Application Support/Firefox/Profiles/*.default/key*.db\",\n \"/Users/*/Library/Application Support/Firefox/Profiles/*.default/logins.json\",\n \"Login Data\",\n \"Cookies.binarycookies\",\n \"key4.db\",\n \"key3.db\",\n \"logins.json\",\n \"cookies.sqlite\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Access of Stored Browser Credentials v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a process with arguments pointing to known browser files that store passwords and cookies. Adversaries may acquire credentials from web browsers by reading files specific to the target browser.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://securelist.com/calisto-trojan-for-macos/86543/"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1539","name":"Steal Web Session Cookie","reference":"https://attack.mitre.org/techniques/T1539/"},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.003","name":"Credentials from Web Browsers","reference":"https://attack.mitre.org/techniques/T1555/003/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.args :\n (\n \"/Users/*/Library/Application Support/Google/Chrome/Default/Login Data\",\n \"/Users/*/Library/Application Support/Google/Chrome/Default/Cookies\",\n \"/Users/*/Library/Application Support/Google/Chrome/Profile*/Cookies\",\n \"/Users/*/Library/Cookies*\",\n \"/Users/*/Library/Application Support/Firefox/Profiles/*.default/cookies.sqlite\",\n \"/Users/*/Library/Application Support/Firefox/Profiles/*.default/key*.db\",\n \"/Users/*/Library/Application Support/Firefox/Profiles/*.default/logins.json\",\n \"Login Data\",\n \"Cookies.binarycookies\",\n \"key4.db\",\n \"key3.db\",\n \"logins.json\",\n \"cookies.sqlite\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Access of Stored Browser Credentials v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a process with arguments pointing to known browser files that store passwords and cookies. Adversaries may acquire credentials from web browsers by reading files specific to the target browser.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://securelist.com/calisto-trojan-for-macos/86543/"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1539","name":"Steal Web Session Cookie","reference":"https://attack.mitre.org/techniques/T1539/"},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.003","name":"Credentials from Web Browsers","reference":"https://attack.mitre.org/techniques/T1555/003/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.args :\n (\n \"/Users/*/Library/Application Support/Google/Chrome/Default/Login Data\",\n \"/Users/*/Library/Application Support/Google/Chrome/Default/Cookies\",\n \"/Users/*/Library/Application Support/Google/Chrome/Profile*/Cookies\",\n \"/Users/*/Library/Cookies*\",\n \"/Users/*/Library/Application Support/Firefox/Profiles/*.default/cookies.sqlite\",\n \"/Users/*/Library/Application Support/Firefox/Profiles/*.default/key*.db\",\n \"/Users/*/Library/Application Support/Firefox/Profiles/*.default/logins.json\",\n \"Login Data\",\n \"Cookies.binarycookies\",\n \"key4.db\",\n \"key3.db\",\n \"logins.json\",\n \"cookies.sqlite\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"20457e4f-d1de-4b92-ae69-142e27a4342a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/208dbe77-01ed-4954-8d44-1e5751cb20de.json b/fleet-packages/detection-rules-composite/kibana/security_rule/208dbe77-01ed-4954-8d44-1e5751cb20de.json new file mode 100644 index 0000000000000..34d01027887bb --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/208dbe77-01ed-4954-8d44-1e5751cb20de.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"208dbe77-01ed-4954-8d44-1e5751cb20de","versions":[{"name":"LSASS Memory Dump Handle Access v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies handle requests for the Local Security Authority Subsystem Service (LSASS) object access with specific access masks that many tools with a capability to dump memory to disk use (0x1fffff, 0x1010, 0x120089). This rule is tool agnostic as it has been validated against a host of various LSASS dump tools such as SharpDump, Procdump, Mimikatz, Comsvcs etc. It detects this behavior at a low level and does not depend on a specific tool or dump file name.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating LSASS Memory Dump Handle Access\n\nLocal Security Authority Server Service (LSASS) is a process in Microsoft Windows operating systems that is responsible\nfor enforcing security policy on the system. It verifies users logging on to a Windows computer or server, handles\npassword changes, and creates access tokens.\n\nAdversaries may attempt to access credential material stored in LSASS process memory. After a user logs on,the system\ngenerates and stores a variety of credential materials in LSASS process memory. This is meant to facilitate single\nsign-on (SSO) ensuring a user isn’t prompted each time resource access is requested. These credential materials can be\nharvested by an adversary using administrative user or SYSTEM privileges to conduct lateral movement using\n[alternate authentication material](https://attack.mitre.org/techniques/T1550/).\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- There should be very few or no false positives for this rule. If this activity is expected or noisy in your environment,\nconsider adding exceptions — preferably with a combination of user and command line conditions.\n- If the process is related to antivirus or endpoint detection and response solutions, validate that it is installed on\nthe correct path and signed with the company's valid digital signature.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Scope compromised credentials and disable the accounts.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\nEnsure advanced audit policies for Windows are enabled, specifically:\nObject Access policies [Event ID 4656](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4656) (Handle to an Object was Requested)\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nSystem Audit Policies >\nObject Access >\nAudit File System (Success,Failure)\nAudit Handle Manipulation (Success,Failure)\n```\n\nAlso, this event generates only if the object’s [SACL](https://docs.microsoft.com/en-us/windows/win32/secauthz/access-control-lists) has the required access control entry (ACE) to handle the use of specific access rights.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4656","https://twitter.com/jsecurity101/status/1227987828534956033?s=20","https://attack.mitre.org/techniques/T1003/001/","https://threathunterplaybook.com/notebooks/windows/06_credential_access/WIN-170105221010.html","http://findingbad.blogspot.com/2017/","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"any where event.action == \"File System\" and event.code == \"4656\" and\n\n winlog.event_data.ObjectName : (\n \"?:\\\\Windows\\\\System32\\\\lsass.exe\",\n \"\\\\Device\\\\HarddiskVolume?\\\\Windows\\\\System32\\\\lsass.exe\",\n \"\\\\Device\\\\HarddiskVolume??\\\\Windows\\\\System32\\\\lsass.exe\") and\n\n /* The right to perform an operation controlled by an extended access right. */\n\n (winlog.event_data.AccessMask : (\"0x1fffff\" , \"0x1010\", \"0x120089\", \"0x1F3FFF\") or\n winlog.event_data.AccessMaskDescription : (\"READ_CONTROL\", \"Read from process memory\"))\n\n /* Common Noisy False Positives */\n\n and not winlog.event_data.ProcessName : (\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\system32\\\\wbem\\\\WmiPrvSE.exe\",\n \"?:\\\\Windows\\\\System32\\\\dllhost.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"?:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\*.exe\",\n \"?:\\\\Windows\\\\explorer.exe\")\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AccessMask","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AccessMaskDescription","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ObjectName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ProcessName","type":"keyword"}],"setup":"Ensure advanced audit policies for Windows are enabled, specifically:\nObject Access policies Event ID 4656 (Handle to an Object was Requested)\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nSystem Audit Policies >\nObject Access >\nAudit File System (Success,Failure)\nAudit Handle Manipulation (Success,Failure)\n```\n\nAlso, this event generates only if the object’s SACL has the required access control entry (ACE) to handle the use of specific access rights.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"LSASS Memory Dump Handle Access v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies handle requests for the Local Security Authority Subsystem Service (LSASS) object access with specific access masks that many tools with a capability to dump memory to disk use (0x1fffff, 0x1010, 0x120089). This rule is tool agnostic as it has been validated against a host of various LSASS dump tools such as SharpDump, Procdump, Mimikatz, Comsvcs etc. It detects this behavior at a low level and does not depend on a specific tool or dump file name.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating LSASS Memory Dump Handle Access\n\nLocal Security Authority Server Service (LSASS) is a process in Microsoft Windows operating systems that is responsible\nfor enforcing security policy on the system. It verifies users logging on to a Windows computer or server, handles\npassword changes, and creates access tokens.\n\nAdversaries may attempt to access credential material stored in LSASS process memory. After a user logs on,the system\ngenerates and stores a variety of credential materials in LSASS process memory. This is meant to facilitate single\nsign-on (SSO) ensuring a user isn’t prompted each time resource access is requested. These credential materials can be\nharvested by an adversary using administrative user or SYSTEM privileges to conduct lateral movement using\n[alternate authentication material](https://attack.mitre.org/techniques/T1550/).\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- There should be very few or no false positives for this rule. If this activity is expected or noisy in your environment,\nconsider adding exceptions — preferably with a combination of user and command line conditions.\n- If the process is related to antivirus or endpoint detection and response solutions, validate that it is installed on\nthe correct path and signed with the company's valid digital signature.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Scope compromised credentials and disable the accounts.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\nEnsure advanced audit policies for Windows are enabled, specifically:\nObject Access policies [Event ID 4656](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4656) (Handle to an Object was Requested)\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nSystem Audit Policies >\nObject Access >\nAudit File System (Success,Failure)\nAudit Handle Manipulation (Success,Failure)\n```\n\nAlso, this event generates only if the object’s [SACL](https://docs.microsoft.com/en-us/windows/win32/secauthz/access-control-lists) has the required access control entry (ACE) to handle the use of specific access rights.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4656","https://twitter.com/jsecurity101/status/1227987828534956033?s=20","https://attack.mitre.org/techniques/T1003/001/","https://threathunterplaybook.com/notebooks/windows/06_credential_access/WIN-170105221010.html","http://findingbad.blogspot.com/2017/","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"any where event.action == \"File System\" and event.code == \"4656\" and\n\n winlog.event_data.ObjectName : (\n \"?:\\\\Windows\\\\System32\\\\lsass.exe\",\n \"\\\\Device\\\\HarddiskVolume?\\\\Windows\\\\System32\\\\lsass.exe\",\n \"\\\\Device\\\\HarddiskVolume??\\\\Windows\\\\System32\\\\lsass.exe\") and\n\n /* The right to perform an operation controlled by an extended access right. */\n\n (winlog.event_data.AccessMask : (\"0x1fffff\" , \"0x1010\", \"0x120089\", \"0x1F3FFF\") or\n winlog.event_data.AccessMaskDescription : (\"READ_CONTROL\", \"Read from process memory\"))\n\n /* Common Noisy False Positives */\n\n and not winlog.event_data.ProcessName : (\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\system32\\\\wbem\\\\WmiPrvSE.exe\",\n \"?:\\\\Windows\\\\System32\\\\dllhost.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"?:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\*.exe\",\n \"?:\\\\Windows\\\\explorer.exe\")\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AccessMask","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AccessMaskDescription","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ObjectName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ProcessName","type":"keyword"}],"setup":"Ensure advanced audit policies for Windows are enabled, specifically:\nObject Access policies Event ID 4656 (Handle to an Object was Requested)\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nSystem Audit Policies >\nObject Access >\nAudit File System (Success,Failure)\nAudit Handle Manipulation (Success,Failure)\n```\n\nAlso, this event generates only if the object’s SACL has the required access control entry (ACE) to handle the use of specific access rights.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"LSASS Memory Dump Handle Access v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies handle requests for the Local Security Authority Subsystem Service (LSASS) object access with specific access masks that many tools with a capability to dump memory to disk use (0x1fffff, 0x1010, 0x120089). This rule is tool agnostic as it has been validated against a host of various LSASS dump tools such as SharpDump, Procdump, Mimikatz, Comsvcs etc. It detects this behavior at a low level and does not depend on a specific tool or dump file name.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating LSASS Memory Dump Handle Access\n\nLocal Security Authority Server Service (LSASS) is a process in Microsoft Windows operating systems that is responsible\nfor enforcing security policy on the system. It verifies users logging on to a Windows computer or server, handles\npassword changes, and creates access tokens.\n\nAdversaries may attempt to access credential material stored in LSASS process memory. After a user logs on,the system\ngenerates and stores a variety of credential materials in LSASS process memory. This is meant to facilitate single\nsign-on (SSO) ensuring a user isn’t prompted each time resource access is requested. These credential materials can be\nharvested by an adversary using administrative user or SYSTEM privileges to conduct lateral movement using\n[alternate authentication material](https://attack.mitre.org/techniques/T1550/).\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- There should be very few or no false positives for this rule. If this activity is expected or noisy in your environment,\nconsider adding exceptions — preferably with a combination of user and command line conditions.\n- If the process is related to antivirus or endpoint detection and response solutions, validate that it is installed on\nthe correct path and signed with the company's valid digital signature.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Scope compromised credentials and disable the accounts.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\nEnsure advanced audit policies for Windows are enabled, specifically:\nObject Access policies [Event ID 4656](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4656) (Handle to an Object was Requested)\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nSystem Audit Policies >\nObject Access >\nAudit File System (Success,Failure)\nAudit Handle Manipulation (Success,Failure)\n```\n\nAlso, this event generates only if the object’s [SACL](https://docs.microsoft.com/en-us/windows/win32/secauthz/access-control-lists) has the required access control entry (ACE) to handle the use of specific access rights.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4656","https://twitter.com/jsecurity101/status/1227987828534956033?s=20","https://attack.mitre.org/techniques/T1003/001/","https://threathunterplaybook.com/notebooks/windows/06_credential_access/WIN-170105221010.html","http://findingbad.blogspot.com/2017/","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"any where event.action == \"File System\" and event.code == \"4656\" and\n\n winlog.event_data.ObjectName : (\n \"?:\\\\Windows\\\\System32\\\\lsass.exe\",\n \"\\\\Device\\\\HarddiskVolume?\\\\Windows\\\\System32\\\\lsass.exe\",\n \"\\\\Device\\\\HarddiskVolume??\\\\Windows\\\\System32\\\\lsass.exe\") and\n\n /* The right to perform an operation controlled by an extended access right. */\n\n (winlog.event_data.AccessMask : (\"0x1fffff\" , \"0x1010\", \"0x120089\", \"0x1F3FFF\") or\n winlog.event_data.AccessMaskDescription : (\"READ_CONTROL\", \"Read from process memory\"))\n\n /* Common Noisy False Positives */\n\n and not winlog.event_data.ProcessName : (\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\system32\\\\wbem\\\\WmiPrvSE.exe\",\n \"?:\\\\Windows\\\\System32\\\\dllhost.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"?:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\*.exe\",\n \"?:\\\\Windows\\\\explorer.exe\")\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AccessMask","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AccessMaskDescription","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ObjectName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ProcessName","type":"keyword"}],"setup":"Ensure advanced audit policies for Windows are enabled, specifically:\nObject Access policies Event ID 4656 (Handle to an Object was Requested)\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nSystem Audit Policies >\nObject Access >\nAudit File System (Success,Failure)\nAudit Handle Manipulation (Success,Failure)\n```\n\nAlso, this event generates only if the object’s SACL has the required access control entry (ACE) to handle the use of specific access rights.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"208dbe77-01ed-4954-8d44-1e5751cb20de","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/220be143-5c67-4fdb-b6ce-dd6826d024fd.json b/fleet-packages/detection-rules-composite/kibana/security_rule/220be143-5c67-4fdb-b6ce-dd6826d024fd.json new file mode 100644 index 0000000000000..cf93f4f2a3ffc --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/220be143-5c67-4fdb-b6ce-dd6826d024fd.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"220be143-5c67-4fdb-b6ce-dd6826d024fd","versions":[{"name":"Full User-Mode Dumps Enabled System-Wide v1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the enable of the full user-mode dumps feature system-wide. This feature allows Windows Error Reporting (WER) to collect data after an application crashes. This setting is a requirement for the LSASS Shtinkering attack, which fakes the communication of a crash on LSASS, generating a dump of the process memory, which gives the attacker access to the credentials present on the system without having to bring malware to the system. This setting is not enabled by default, and applications must create their registry subkeys to hold settings that enable them to collect dumps.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/win32/wer/collecting-user-mode-dumps","https://github.com/deepinstinct/Lsass-Shtinkering","https://media.defcon.org/DEF%20CON%2030/DEF%20CON%2030%20presentations/Asaf%20Gilboa%20-%20LSASS%20Shtinkering%20Abusing%20Windows%20Error%20Reporting%20to%20Dump%20LSASS.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1112","name":"Modify Registry","reference":"https://attack.mitre.org/techniques/T1112/"}]}],"language":"eql","query":"registry where registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\Windows Error Reporting\\\\LocalDumps\\\\DumpType\" and\n registry.data.strings : (\"2\", \"0x00000002\") and\n not (process.executable : \"?:\\\\Windows\\\\system32\\\\svchost.exe\" and user.id : (\"S-1-5-18\", \"S-1-5-19\", \"S-1-5-20\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"Full User-Mode Dumps Enabled System-Wide v1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the enable of the full user-mode dumps feature system-wide. This feature allows Windows Error Reporting (WER) to collect data after an application crashes. This setting is a requirement for the LSASS Shtinkering attack, which fakes the communication of a crash on LSASS, generating a dump of the process memory, which gives the attacker access to the credentials present on the system without having to bring malware to the system. This setting is not enabled by default, and applications must create their registry subkeys to hold settings that enable them to collect dumps.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/win32/wer/collecting-user-mode-dumps","https://github.com/deepinstinct/Lsass-Shtinkering","https://media.defcon.org/DEF%20CON%2030/DEF%20CON%2030%20presentations/Asaf%20Gilboa%20-%20LSASS%20Shtinkering%20Abusing%20Windows%20Error%20Reporting%20to%20Dump%20LSASS.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1112","name":"Modify Registry","reference":"https://attack.mitre.org/techniques/T1112/"}]}],"language":"eql","query":"registry where registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\Windows Error Reporting\\\\LocalDumps\\\\DumpType\" and\n registry.data.strings : (\"2\", \"0x00000002\") and\n not (process.executable : \"?:\\\\Windows\\\\system32\\\\svchost.exe\" and user.id : (\"S-1-5-18\", \"S-1-5-19\", \"S-1-5-20\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"Full User-Mode Dumps Enabled System-Wide v1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the enable of the full user-mode dumps feature system-wide. This feature allows Windows Error Reporting (WER) to collect data after an application crashes. This setting is a requirement for the LSASS Shtinkering attack, which fakes the communication of a crash on LSASS, generating a dump of the process memory, which gives the attacker access to the credentials present on the system without having to bring malware to the system. This setting is not enabled by default, and applications must create their registry subkeys to hold settings that enable them to collect dumps.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/win32/wer/collecting-user-mode-dumps","https://github.com/deepinstinct/Lsass-Shtinkering","https://media.defcon.org/DEF%20CON%2030/DEF%20CON%2030%20presentations/Asaf%20Gilboa%20-%20LSASS%20Shtinkering%20Abusing%20Windows%20Error%20Reporting%20to%20Dump%20LSASS.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1112","name":"Modify Registry","reference":"https://attack.mitre.org/techniques/T1112/"}]}],"language":"eql","query":"registry where registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\Windows Error Reporting\\\\LocalDumps\\\\DumpType\" and\n registry.data.strings : (\"2\", \"0x00000002\") and\n not (process.executable : \"?:\\\\Windows\\\\system32\\\\svchost.exe\" and user.id : (\"S-1-5-18\", \"S-1-5-19\", \"S-1-5-20\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]}]},"id":"220be143-5c67-4fdb-b6ce-dd6826d024fd","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/2215b8bd-1759-4ffa-8ab8-55c8e6b32e7f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/2215b8bd-1759-4ffa-8ab8-55c8e6b32e7f.json new file mode 100644 index 0000000000000..445a78dfeabae --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/2215b8bd-1759-4ffa-8ab8-55c8e6b32e7f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"2215b8bd-1759-4ffa-8ab8-55c8e6b32e7f","versions":[{"name":"SSH Authorized Keys File Modification v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The Secure Shell (SSH) authorized_keys file specifies which users are allowed to log into a server using public key authentication. Adversaries may modify it to maintain persistence on a victim host by adding their own public key(s).","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.004","name":"SSH Authorized Keys","reference":"https://attack.mitre.org/techniques/T1098/004/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and event.type:(change or creation) and\n file.name:(\"authorized_keys\" or \"authorized_keys2\") and\n not process.executable:\n (/Library/Developer/CommandLineTools/usr/bin/git or\n /usr/local/Cellar/maven/*/libexec/bin/mvn or\n /Library/Java/JavaVirtualMachines/jdk*.jdk/Contents/Home/bin/java or\n /usr/bin/vim or\n /usr/local/Cellar/coreutils/*/bin/gcat or\n /usr/bin/bsdtar or\n /usr/bin/nautilus or\n /usr/bin/scp or\n /usr/bin/touch or\n /var/lib/docker/* or\n /usr/bin/google_guest_agent)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},{"name":"SSH Authorized Keys File Modification v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The Secure Shell (SSH) authorized_keys file specifies which users are allowed to log into a server using public key authentication. Adversaries may modify it to maintain persistence on a victim host by adding their own public key(s).","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.004","name":"SSH Authorized Keys","reference":"https://attack.mitre.org/techniques/T1098/004/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and event.type:(change or creation) and\n file.name:(\"authorized_keys\" or \"authorized_keys2\") and\n not process.executable:\n (/Library/Developer/CommandLineTools/usr/bin/git or\n /usr/local/Cellar/maven/*/libexec/bin/mvn or\n /Library/Java/JavaVirtualMachines/jdk*.jdk/Contents/Home/bin/java or\n /usr/bin/vim or\n /usr/local/Cellar/coreutils/*/bin/gcat or\n /usr/bin/bsdtar or\n /usr/bin/nautilus or\n /usr/bin/scp or\n /usr/bin/touch or\n /var/lib/docker/* or\n /usr/bin/google_guest_agent)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},{"name":"SSH Authorized Keys File Modification v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The Secure Shell (SSH) authorized_keys file specifies which users are allowed to log into a server using public key authentication. Adversaries may modify it to maintain persistence on a victim host by adding their own public key(s).","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.004","name":"SSH Authorized Keys","reference":"https://attack.mitre.org/techniques/T1098/004/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and event.type:(change or creation) and\n file.name:(\"authorized_keys\" or \"authorized_keys2\") and\n not process.executable:\n (/Library/Developer/CommandLineTools/usr/bin/git or\n /usr/local/Cellar/maven/*/libexec/bin/mvn or\n /Library/Java/JavaVirtualMachines/jdk*.jdk/Contents/Home/bin/java or\n /usr/bin/vim or\n /usr/local/Cellar/coreutils/*/bin/gcat or\n /usr/bin/bsdtar or\n /usr/bin/nautilus or\n /usr/bin/scp or\n /usr/bin/touch or\n /var/lib/docker/* or\n /usr/bin/google_guest_agent)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]}]},"id":"2215b8bd-1759-4ffa-8ab8-55c8e6b32e7f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/22599847-5d13-48cb-8872-5796fee8692b.json b/fleet-packages/detection-rules-composite/kibana/security_rule/22599847-5d13-48cb-8872-5796fee8692b.json new file mode 100644 index 0000000000000..83dd21fa1fc68 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/22599847-5d13-48cb-8872-5796fee8692b.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"22599847-5d13-48cb-8872-5796fee8692b","versions":[{"name":"SUNBURST Command and Control Activity v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The malware known as SUNBURST targets the SolarWind's Orion business software for command and control. This rule detects post-exploitation command and control activity of the SUNBURST backdoor.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating SUNBURST Command and Control Activity\n\nSUNBURST is a trojanized version of a digitally signed SolarWinds Orion plugin called\nSolarWinds.Orion.Core.BusinessLayer.dll. The plugin contains a backdoor that communicates via HTTP to third-party\nservers. After an initial dormant period of up to two weeks, SUNBURST may retrieve and execute commands that instruct\nthe backdoor to transfer files, execute files, profile the system, reboot the system, and disable system services.\nThe malware's network traffic attempts to blend in with legitimate SolarWinds activity by imitating the Orion\nImprovement Program (OIP) protocol, and the malware stores persistent state data within legitimate plugin configuration files. The\nbackdoor uses multiple obfuscated blocklists to identify processes, services, and drivers associated with forensic and\nanti-virus tools.\n\nMore details on SUNBURST can be found on the [Mandiant Report](https://www.mandiant.com/resources/sunburst-additional-technical-details).\n\nThis rule identifies suspicious network connections that attempt to blend in with legitimate SolarWinds activity\nby imitating the Orion Improvement Program (OIP) protocol behavior.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the executable involved using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity should not happen legitimately. The security team should address any potential benign true positive\n(B-TP), as this configuration can put the environment at risk.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Reimage the host operating system and restore compromised files to clean versions.\n- Upgrade SolarWinds systems to the latest version to eradicate the chance of reinfection by abusing the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2020/12/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor.html"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.001","name":"Web Protocols","reference":"https://attack.mitre.org/techniques/T1071/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1195","name":"Supply Chain Compromise","reference":"https://attack.mitre.org/techniques/T1195/","subtechnique":[{"id":"T1195.002","name":"Compromise Software Supply Chain","reference":"https://attack.mitre.org/techniques/T1195/002/"}]}]}],"language":"eql","query":"network where event.type == \"protocol\" and network.protocol == \"http\" and\n process.name : (\"ConfigurationWizard.exe\",\n \"NetFlowService.exe\",\n \"NetflowDatabaseMaintenance.exe\",\n \"SolarWinds.Administration.exe\",\n \"SolarWinds.BusinessLayerHost.exe\",\n \"SolarWinds.BusinessLayerHostx64.exe\",\n \"SolarWinds.Collector.Service.exe\",\n \"SolarwindsDiagnostics.exe\") and\n (\n (\n (http.request.body.content : \"*/swip/Upload.ashx*\" and http.request.body.content : (\"POST*\", \"PUT*\")) or\n (http.request.body.content : (\"*/swip/SystemDescription*\", \"*/swip/Events*\") and http.request.body.content : (\"GET*\", \"HEAD*\"))\n ) and\n not http.request.body.content : \"*solarwinds.com*\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"http.request.body.content","type":"wildcard"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"SUNBURST Command and Control Activity v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The malware known as SUNBURST targets the SolarWind's Orion business software for command and control. This rule detects post-exploitation command and control activity of the SUNBURST backdoor.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating SUNBURST Command and Control Activity\n\nSUNBURST is a trojanized version of a digitally signed SolarWinds Orion plugin called\nSolarWinds.Orion.Core.BusinessLayer.dll. The plugin contains a backdoor that communicates via HTTP to third-party\nservers. After an initial dormant period of up to two weeks, SUNBURST may retrieve and execute commands that instruct\nthe backdoor to transfer files, execute files, profile the system, reboot the system, and disable system services.\nThe malware's network traffic attempts to blend in with legitimate SolarWinds activity by imitating the Orion\nImprovement Program (OIP) protocol, and the malware stores persistent state data within legitimate plugin configuration files. The\nbackdoor uses multiple obfuscated blocklists to identify processes, services, and drivers associated with forensic and\nanti-virus tools.\n\nMore details on SUNBURST can be found on the [Mandiant Report](https://www.mandiant.com/resources/sunburst-additional-technical-details).\n\nThis rule identifies suspicious network connections that attempt to blend in with legitimate SolarWinds activity\nby imitating the Orion Improvement Program (OIP) protocol behavior.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the executable involved using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity should not happen legitimately. The security team should address any potential benign true positive\n(B-TP), as this configuration can put the environment at risk.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Reimage the host operating system and restore compromised files to clean versions.\n- Upgrade SolarWinds systems to the latest version to eradicate the chance of reinfection by abusing the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2020/12/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor.html"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.001","name":"Web Protocols","reference":"https://attack.mitre.org/techniques/T1071/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1195","name":"Supply Chain Compromise","reference":"https://attack.mitre.org/techniques/T1195/","subtechnique":[{"id":"T1195.002","name":"Compromise Software Supply Chain","reference":"https://attack.mitre.org/techniques/T1195/002/"}]}]}],"language":"eql","query":"network where event.type == \"protocol\" and network.protocol == \"http\" and\n process.name : (\"ConfigurationWizard.exe\",\n \"NetFlowService.exe\",\n \"NetflowDatabaseMaintenance.exe\",\n \"SolarWinds.Administration.exe\",\n \"SolarWinds.BusinessLayerHost.exe\",\n \"SolarWinds.BusinessLayerHostx64.exe\",\n \"SolarWinds.Collector.Service.exe\",\n \"SolarwindsDiagnostics.exe\") and\n (\n (\n (http.request.body.content : \"*/swip/Upload.ashx*\" and http.request.body.content : (\"POST*\", \"PUT*\")) or\n (http.request.body.content : (\"*/swip/SystemDescription*\", \"*/swip/Events*\") and http.request.body.content : (\"GET*\", \"HEAD*\"))\n ) and\n not http.request.body.content : \"*solarwinds.com*\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"http.request.body.content","type":"wildcard"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"SUNBURST Command and Control Activity v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The malware known as SUNBURST targets the SolarWind's Orion business software for command and control. This rule detects post-exploitation command and control activity of the SUNBURST backdoor.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating SUNBURST Command and Control Activity\n\nSUNBURST is a trojanized version of a digitally signed SolarWinds Orion plugin called\nSolarWinds.Orion.Core.BusinessLayer.dll. The plugin contains a backdoor that communicates via HTTP to third-party\nservers. After an initial dormant period of up to two weeks, SUNBURST may retrieve and execute commands that instruct\nthe backdoor to transfer files, execute files, profile the system, reboot the system, and disable system services.\nThe malware's network traffic attempts to blend in with legitimate SolarWinds activity by imitating the Orion\nImprovement Program (OIP) protocol, and the malware stores persistent state data within legitimate plugin configuration files. The\nbackdoor uses multiple obfuscated blocklists to identify processes, services, and drivers associated with forensic and\nanti-virus tools.\n\nMore details on SUNBURST can be found on the [Mandiant Report](https://www.mandiant.com/resources/sunburst-additional-technical-details).\n\nThis rule identifies suspicious network connections that attempt to blend in with legitimate SolarWinds activity\nby imitating the Orion Improvement Program (OIP) protocol behavior.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the executable involved using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity should not happen legitimately. The security team should address any potential benign true positive\n(B-TP), as this configuration can put the environment at risk.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Reimage the host operating system and restore compromised files to clean versions.\n- Upgrade SolarWinds systems to the latest version to eradicate the chance of reinfection by abusing the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2020/12/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor.html"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.001","name":"Web Protocols","reference":"https://attack.mitre.org/techniques/T1071/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1195","name":"Supply Chain Compromise","reference":"https://attack.mitre.org/techniques/T1195/","subtechnique":[{"id":"T1195.002","name":"Compromise Software Supply Chain","reference":"https://attack.mitre.org/techniques/T1195/002/"}]}]}],"language":"eql","query":"network where event.type == \"protocol\" and network.protocol == \"http\" and\n process.name : (\"ConfigurationWizard.exe\",\n \"NetFlowService.exe\",\n \"NetflowDatabaseMaintenance.exe\",\n \"SolarWinds.Administration.exe\",\n \"SolarWinds.BusinessLayerHost.exe\",\n \"SolarWinds.BusinessLayerHostx64.exe\",\n \"SolarWinds.Collector.Service.exe\",\n \"SolarwindsDiagnostics.exe\") and\n (\n (\n (http.request.body.content : \"*/swip/Upload.ashx*\" and http.request.body.content : (\"POST*\", \"PUT*\")) or\n (http.request.body.content : (\"*/swip/SystemDescription*\", \"*/swip/Events*\") and http.request.body.content : (\"GET*\", \"HEAD*\"))\n ) and\n not http.request.body.content : \"*solarwinds.com*\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"http.request.body.content","type":"wildcard"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"22599847-5d13-48cb-8872-5796fee8692b","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/227dc608-e558-43d9-b521-150772250bae.json b/fleet-packages/detection-rules-composite/kibana/security_rule/227dc608-e558-43d9-b521-150772250bae.json new file mode 100644 index 0000000000000..333cc7becb606 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/227dc608-e558-43d9-b521-150772250bae.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"227dc608-e558-43d9-b521-150772250bae","versions":[{"name":"AWS S3 Bucket Configuration Deletion v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of various Amazon Simple Storage Service (S3) bucket configuration components.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Bucket components may be deleted by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Bucket component deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketPolicy.html","https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html","https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html","https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html","https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:s3.amazonaws.com and\n event.action:(DeleteBucketPolicy or DeleteBucketReplication or DeleteBucketCors or\n DeleteBucketEncryption or DeleteBucketLifecycle)\n and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS S3 Bucket Configuration Deletion v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of various Amazon Simple Storage Service (S3) bucket configuration components.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Bucket components may be deleted by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Bucket component deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketPolicy.html","https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html","https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html","https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html","https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:s3.amazonaws.com and\n event.action:(DeleteBucketPolicy or DeleteBucketReplication or DeleteBucketCors or\n DeleteBucketEncryption or DeleteBucketLifecycle)\n and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS S3 Bucket Configuration Deletion v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of various Amazon Simple Storage Service (S3) bucket configuration components.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Bucket components may be deleted by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Bucket component deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketPolicy.html","https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html","https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html","https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html","https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:s3.amazonaws.com and\n event.action:(DeleteBucketPolicy or DeleteBucketReplication or DeleteBucketCors or\n DeleteBucketEncryption or DeleteBucketLifecycle)\n and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"227dc608-e558-43d9-b521-150772250bae","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/231876e7-4d1f-4d63-a47c-47dd1acdc1cb.json b/fleet-packages/detection-rules-composite/kibana/security_rule/231876e7-4d1f-4d63-a47c-47dd1acdc1cb.json new file mode 100644 index 0000000000000..ef3f8b7be8b57 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/231876e7-4d1f-4d63-a47c-47dd1acdc1cb.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"231876e7-4d1f-4d63-a47c-47dd1acdc1cb","versions":[{"name":"Potential Shell via Web Server v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious commands executed via a web server, which may suggest a vulnerability and remote shell access.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Shell via Web Server\n\nAdversaries may backdoor web servers with web shells to establish persistent access to systems. A web shell is a web\nscript that is placed on an openly accessible web server to allow an adversary to use the web server as a gateway into a\nnetwork. A web shell may provide a set of functions to execute or a command line interface on the system that hosts the\nweb server.\n\nThis rule detects a web server process spawning script and command line interface programs, potentially indicating\nattackers executing commands using the web shell.\n\n#### Possible investigation steps\n\n- Investigate abnormal behaviors observed by the subject process such as network connections, file modifications, and\nany other spawned child processes.\n- Examine the command line to determine which commands or scripts were executed.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- If scripts or executables were dropped, retrieve the files and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - Check if the domain is newly registered or unexpected.\n - Check the reputation of the domain or IP address.\n - File access, modification, and creation activities.\n - Cron jobs, services and other persistence mechanisms.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently\nmalicious must be monitored by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Network monitoring or management products may have a web server component that runs shell commands as part of normal behavior."],"from":"now-9m","references":["https://pentestlab.blog/tag/web-shell/","https://www.elastic.co/security-labs/elastic-response-to-the-the-spring4shell-vulnerability-cve-2022-22965"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1505","name":"Server Software Component","reference":"https://attack.mitre.org/techniques/T1505/","subtechnique":[{"id":"T1505.003","name":"Web Shell","reference":"https://attack.mitre.org/techniques/T1505/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\nprocess.name:(bash or dash or ash or zsh or \"python*\" or \"perl*\" or \"php*\") and\nprocess.parent.name:(\"apache\" or \"nginx\" or \"www\" or \"apache2\" or \"httpd\" or \"www-data\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},{"name":"Potential Shell via Web Server v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious commands executed via a web server, which may suggest a vulnerability and remote shell access.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Shell via Web Server\n\nAdversaries may backdoor web servers with web shells to establish persistent access to systems. A web shell is a web\nscript that is placed on an openly accessible web server to allow an adversary to use the web server as a gateway into a\nnetwork. A web shell may provide a set of functions to execute or a command line interface on the system that hosts the\nweb server.\n\nThis rule detects a web server process spawning script and command line interface programs, potentially indicating\nattackers executing commands using the web shell.\n\n#### Possible investigation steps\n\n- Investigate abnormal behaviors observed by the subject process such as network connections, file modifications, and\nany other spawned child processes.\n- Examine the command line to determine which commands or scripts were executed.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- If scripts or executables were dropped, retrieve the files and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - Check if the domain is newly registered or unexpected.\n - Check the reputation of the domain or IP address.\n - File access, modification, and creation activities.\n - Cron jobs, services and other persistence mechanisms.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently\nmalicious must be monitored by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Network monitoring or management products may have a web server component that runs shell commands as part of normal behavior."],"from":"now-9m","references":["https://pentestlab.blog/tag/web-shell/","https://www.elastic.co/security-labs/elastic-response-to-the-the-spring4shell-vulnerability-cve-2022-22965"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1505","name":"Server Software Component","reference":"https://attack.mitre.org/techniques/T1505/","subtechnique":[{"id":"T1505.003","name":"Web Shell","reference":"https://attack.mitre.org/techniques/T1505/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\nprocess.name:(bash or dash or ash or zsh or \"python*\" or \"perl*\" or \"php*\") and\nprocess.parent.name:(\"apache\" or \"nginx\" or \"www\" or \"apache2\" or \"httpd\" or \"www-data\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},{"name":"Potential Shell via Web Server v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious commands executed via a web server, which may suggest a vulnerability and remote shell access.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Shell via Web Server\n\nAdversaries may backdoor web servers with web shells to establish persistent access to systems. A web shell is a web\nscript that is placed on an openly accessible web server to allow an adversary to use the web server as a gateway into a\nnetwork. A web shell may provide a set of functions to execute or a command line interface on the system that hosts the\nweb server.\n\nThis rule detects a web server process spawning script and command line interface programs, potentially indicating\nattackers executing commands using the web shell.\n\n#### Possible investigation steps\n\n- Investigate abnormal behaviors observed by the subject process such as network connections, file modifications, and\nany other spawned child processes.\n- Examine the command line to determine which commands or scripts were executed.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- If scripts or executables were dropped, retrieve the files and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - Check if the domain is newly registered or unexpected.\n - Check the reputation of the domain or IP address.\n - File access, modification, and creation activities.\n - Cron jobs, services and other persistence mechanisms.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently\nmalicious must be monitored by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Network monitoring or management products may have a web server component that runs shell commands as part of normal behavior."],"from":"now-9m","references":["https://pentestlab.blog/tag/web-shell/","https://www.elastic.co/security-labs/elastic-response-to-the-the-spring4shell-vulnerability-cve-2022-22965"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1505","name":"Server Software Component","reference":"https://attack.mitre.org/techniques/T1505/","subtechnique":[{"id":"T1505.003","name":"Web Shell","reference":"https://attack.mitre.org/techniques/T1505/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\nprocess.name:(bash or dash or ash or zsh or \"python*\" or \"perl*\" or \"php*\") and\nprocess.parent.name:(\"apache\" or \"nginx\" or \"www\" or \"apache2\" or \"httpd\" or \"www-data\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]}]},"id":"231876e7-4d1f-4d63-a47c-47dd1acdc1cb","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/2326d1b2-9acf-4dee-bd21-867ea7378b4d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/2326d1b2-9acf-4dee-bd21-867ea7378b4d.json new file mode 100644 index 0000000000000..301a96e30df00 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/2326d1b2-9acf-4dee-bd21-867ea7378b4d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"2326d1b2-9acf-4dee-bd21-867ea7378b4d","versions":[{"name":"GCP Storage Bucket Permissions Modification v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when the Identity and Access Management (IAM) permissions are modified for a Google Cloud Platform (GCP) storage bucket. An adversary may modify the permissions on a storage bucket to weaken their target's security controls or an administrator may inadvertently modify the permissions, which could lead to data exposure or loss.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Storage bucket permissions may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/storage/docs/access-control/iam-permissions"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1222","name":"File and Directory Permissions Modification","reference":"https://attack.mitre.org/techniques/T1222/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:\"storage.setIamPermissions\" and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Storage Bucket Permissions Modification v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when the Identity and Access Management (IAM) permissions are modified for a Google Cloud Platform (GCP) storage bucket. An adversary may modify the permissions on a storage bucket to weaken their target's security controls or an administrator may inadvertently modify the permissions, which could lead to data exposure or loss.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Storage bucket permissions may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/storage/docs/access-control/iam-permissions"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1222","name":"File and Directory Permissions Modification","reference":"https://attack.mitre.org/techniques/T1222/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:\"storage.setIamPermissions\" and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Storage Bucket Permissions Modification v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when the Identity and Access Management (IAM) permissions are modified for a Google Cloud Platform (GCP) storage bucket. An adversary may modify the permissions on a storage bucket to weaken their target's security controls or an administrator may inadvertently modify the permissions, which could lead to data exposure or loss.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Storage bucket permissions may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/storage/docs/access-control/iam-permissions"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1222","name":"File and Directory Permissions Modification","reference":"https://attack.mitre.org/techniques/T1222/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:\"storage.setIamPermissions\" and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"2326d1b2-9acf-4dee-bd21-867ea7378b4d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/2339f03c-f53f-40fa-834b-40c5983fc41f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/2339f03c-f53f-40fa-834b-40c5983fc41f.json new file mode 100644 index 0000000000000..77be3b7b6287c --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/2339f03c-f53f-40fa-834b-40c5983fc41f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"2339f03c-f53f-40fa-834b-40c5983fc41f","versions":[{"name":"Kernel module load via insmod v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of the insmod binary to load a Linux kernel object file. Threat actors can use this binary, given they have root privileges, to load a rootkit on a system providing them with complete control and the ability to hide from security products. Manually loading a kernel module in this manner should not be at all common and can indicate suspcious or malicious behavior.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://decoded.avast.io/davidalvarez/linux-threat-hunting-syslogk-a-kernel-rootkit-found-under-development-in-the-wild/"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Rootkit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.006","name":"Kernel Modules and Extensions","reference":"https://attack.mitre.org/techniques/T1547/006/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.executable : \"/usr/sbin/insmod\" and process.args : \"*.ko\"\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},{"name":"Kernel module load via insmod v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of the insmod binary to load a Linux kernel object file. Threat actors can use this binary, given they have root privileges, to load a rootkit on a system providing them with complete control and the ability to hide from security products. Manually loading a kernel module in this manner should not be at all common and can indicate suspcious or malicious behavior.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://decoded.avast.io/davidalvarez/linux-threat-hunting-syslogk-a-kernel-rootkit-found-under-development-in-the-wild/"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Rootkit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.006","name":"Kernel Modules and Extensions","reference":"https://attack.mitre.org/techniques/T1547/006/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.executable : \"/usr/sbin/insmod\" and process.args : \"*.ko\"\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},{"name":"Kernel module load via insmod v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of the insmod binary to load a Linux kernel object file. Threat actors can use this binary, given they have root privileges, to load a rootkit on a system providing them with complete control and the ability to hide from security products. Manually loading a kernel module in this manner should not be at all common and can indicate suspcious or malicious behavior.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://decoded.avast.io/davidalvarez/linux-threat-hunting-syslogk-a-kernel-rootkit-found-under-development-in-the-wild/"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Rootkit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.006","name":"Kernel Modules and Extensions","reference":"https://attack.mitre.org/techniques/T1547/006/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.executable : \"/usr/sbin/insmod\" and process.args : \"*.ko\"\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]}]},"id":"2339f03c-f53f-40fa-834b-40c5983fc41f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/25224a80-5a4a-4b8a-991e-6ab390465c4f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/25224a80-5a4a-4b8a-991e-6ab390465c4f.json new file mode 100644 index 0000000000000..ffcd6cdb09971 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/25224a80-5a4a-4b8a-991e-6ab390465c4f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"25224a80-5a4a-4b8a-991e-6ab390465c4f","versions":[{"name":"Lateral Movement via Startup Folder v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious file creations in the startup folder of a remote system. An adversary could abuse this to move laterally by dropping a malicious script or executable that will be executed after a reboot or user logon.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.mdsec.co.uk/2017/06/rdpinception/"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"file where event.type in (\"creation\", \"change\") and\n\n /* via RDP TSClient mounted share or SMB */\n (process.name : \"mstsc.exe\" or process.pid == 4) and\n\n file.path : (\"?:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\\\\*\",\n \"?:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\\\\*\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Lateral Movement via Startup Folder v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious file creations in the startup folder of a remote system. An adversary could abuse this to move laterally by dropping a malicious script or executable that will be executed after a reboot or user logon.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.mdsec.co.uk/2017/06/rdpinception/"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"file where event.type in (\"creation\", \"change\") and\n\n /* via RDP TSClient mounted share or SMB */\n (process.name : \"mstsc.exe\" or process.pid == 4) and\n\n file.path : (\"?:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\\\\*\",\n \"?:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\\\\*\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Lateral Movement via Startup Folder v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious file creations in the startup folder of a remote system. An adversary could abuse this to move laterally by dropping a malicious script or executable that will be executed after a reboot or user logon.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.mdsec.co.uk/2017/06/rdpinception/"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"file where event.type in (\"creation\", \"change\") and\n\n /* via RDP TSClient mounted share or SMB */\n (process.name : \"mstsc.exe\" or process.pid == 4) and\n\n file.path : (\"?:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\\\\*\",\n \"?:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\\\\*\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"25224a80-5a4a-4b8a-991e-6ab390465c4f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/2636aa6c-88b5-4337-9c31-8d0192a8ef45.json b/fleet-packages/detection-rules-composite/kibana/security_rule/2636aa6c-88b5-4337-9c31-8d0192a8ef45.json new file mode 100644 index 0000000000000..6a50188186079 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/2636aa6c-88b5-4337-9c31-8d0192a8ef45.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"2636aa6c-88b5-4337-9c31-8d0192a8ef45","versions":[{"name":"Azure Blob Container Access Level Modification v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies changes to container access levels in Azure. Anonymous public read access to containers and blobs in Azure is a way to share data broadly, but can present a security risk if access to sensitive data is not managed judiciously.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Access level modifications may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Access level modifications from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/storage/blobs/anonymous-read-access-prevent"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1526","name":"Cloud Service Discovery","reference":"https://attack.mitre.org/techniques/T1526/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.STORAGE/STORAGEACCOUNTS/BLOBSERVICES/CONTAINERS/WRITE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Blob Container Access Level Modification v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies changes to container access levels in Azure. Anonymous public read access to containers and blobs in Azure is a way to share data broadly, but can present a security risk if access to sensitive data is not managed judiciously.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Access level modifications may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Access level modifications from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/storage/blobs/anonymous-read-access-prevent"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1526","name":"Cloud Service Discovery","reference":"https://attack.mitre.org/techniques/T1526/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.STORAGE/STORAGEACCOUNTS/BLOBSERVICES/CONTAINERS/WRITE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Blob Container Access Level Modification v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies changes to container access levels in Azure. Anonymous public read access to containers and blobs in Azure is a way to share data broadly, but can present a security risk if access to sensitive data is not managed judiciously.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Access level modifications may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Access level modifications from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/storage/blobs/anonymous-read-access-prevent"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1526","name":"Cloud Service Discovery","reference":"https://attack.mitre.org/techniques/T1526/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.STORAGE/STORAGEACCOUNTS/BLOBSERVICES/CONTAINERS/WRITE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"2636aa6c-88b5-4337-9c31-8d0192a8ef45","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/265db8f5-fc73-4d0d-b434-6483b56372e2.json b/fleet-packages/detection-rules-composite/kibana/security_rule/265db8f5-fc73-4d0d-b434-6483b56372e2.json new file mode 100644 index 0000000000000..a3b503e5f0f7f --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/265db8f5-fc73-4d0d-b434-6483b56372e2.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"265db8f5-fc73-4d0d-b434-6483b56372e2","versions":[{"name":"Persistence via Update Orchestrator Service Hijack v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential hijacking of the Microsoft Update Orchestrator Service to establish persistence with an integrity level of SYSTEM.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Persistence via Update Orchestrator Service Hijack\n\nWindows Update Orchestrator Service is a DCOM service used by other components to install Windows updates that are\nalready downloaded. Windows Update Orchestrator Service was vulnerable to elevation of privileges (any user to local\nsystem) due to an improper authorization of the callers. The vulnerability affected the Windows 10 and Windows Server\nCore products. Fixed by Microsoft on Patch Tuesday June 2020.\n\nThis rule will detect uncommon processes spawned by `svchost.exe` with `UsoSvc` as the command line parameters.\nAttackers can leverage this technique to elevate privileges or maintain persistence.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/irsl/CVE-2020-1313"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","CVE-2020-1313","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.executable : \"C:\\\\Windows\\\\System32\\\\svchost.exe\" and\n process.parent.args : \"UsoSvc\" and\n not process.executable :\n (\"?:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\UUS\\\\Packages\\\\*\\\\amd64\\\\MoUsoCoreWorker.exe\",\n \"?:\\\\Windows\\\\System32\\\\UsoClient.exe\",\n \"?:\\\\Windows\\\\System32\\\\MusNotification.exe\",\n \"?:\\\\Windows\\\\System32\\\\MusNotificationUx.exe\",\n \"?:\\\\Windows\\\\System32\\\\MusNotifyIcon.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerMgr.exe\",\n \"?:\\\\Windows\\\\UUS\\\\amd64\\\\MoUsoCoreWorker.exe\",\n \"?:\\\\Windows\\\\System32\\\\MoUsoCoreWorker.exe\",\n \"?:\\\\Windows\\\\UUS\\\\amd64\\\\UsoCoreWorker.exe\",\n \"?:\\\\Windows\\\\System32\\\\UsoCoreWorker.exe\",\n \"?:\\\\Program Files\\\\Common Files\\\\microsoft shared\\\\ClickToRun\\\\OfficeC2RClient.exe\") and\n not process.name : (\"MoUsoCoreWorker.exe\", \"OfficeC2RClient.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Persistence via Update Orchestrator Service Hijack v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential hijacking of the Microsoft Update Orchestrator Service to establish persistence with an integrity level of SYSTEM.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Persistence via Update Orchestrator Service Hijack\n\nWindows Update Orchestrator Service is a DCOM service used by other components to install Windows updates that are\nalready downloaded. Windows Update Orchestrator Service was vulnerable to elevation of privileges (any user to local\nsystem) due to an improper authorization of the callers. The vulnerability affected the Windows 10 and Windows Server\nCore products. Fixed by Microsoft on Patch Tuesday June 2020.\n\nThis rule will detect uncommon processes spawned by `svchost.exe` with `UsoSvc` as the command line parameters.\nAttackers can leverage this technique to elevate privileges or maintain persistence.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/irsl/CVE-2020-1313"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","CVE-2020-1313","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.executable : \"C:\\\\Windows\\\\System32\\\\svchost.exe\" and\n process.parent.args : \"UsoSvc\" and\n not process.executable :\n (\"?:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\UUS\\\\Packages\\\\*\\\\amd64\\\\MoUsoCoreWorker.exe\",\n \"?:\\\\Windows\\\\System32\\\\UsoClient.exe\",\n \"?:\\\\Windows\\\\System32\\\\MusNotification.exe\",\n \"?:\\\\Windows\\\\System32\\\\MusNotificationUx.exe\",\n \"?:\\\\Windows\\\\System32\\\\MusNotifyIcon.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerMgr.exe\",\n \"?:\\\\Windows\\\\UUS\\\\amd64\\\\MoUsoCoreWorker.exe\",\n \"?:\\\\Windows\\\\System32\\\\MoUsoCoreWorker.exe\",\n \"?:\\\\Windows\\\\UUS\\\\amd64\\\\UsoCoreWorker.exe\",\n \"?:\\\\Windows\\\\System32\\\\UsoCoreWorker.exe\",\n \"?:\\\\Program Files\\\\Common Files\\\\microsoft shared\\\\ClickToRun\\\\OfficeC2RClient.exe\") and\n not process.name : (\"MoUsoCoreWorker.exe\", \"OfficeC2RClient.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Persistence via Update Orchestrator Service Hijack v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential hijacking of the Microsoft Update Orchestrator Service to establish persistence with an integrity level of SYSTEM.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Persistence via Update Orchestrator Service Hijack\n\nWindows Update Orchestrator Service is a DCOM service used by other components to install Windows updates that are\nalready downloaded. Windows Update Orchestrator Service was vulnerable to elevation of privileges (any user to local\nsystem) due to an improper authorization of the callers. The vulnerability affected the Windows 10 and Windows Server\nCore products. Fixed by Microsoft on Patch Tuesday June 2020.\n\nThis rule will detect uncommon processes spawned by `svchost.exe` with `UsoSvc` as the command line parameters.\nAttackers can leverage this technique to elevate privileges or maintain persistence.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/irsl/CVE-2020-1313"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","CVE-2020-1313","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.executable : \"C:\\\\Windows\\\\System32\\\\svchost.exe\" and\n process.parent.args : \"UsoSvc\" and\n not process.executable :\n (\"?:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\UUS\\\\Packages\\\\*\\\\amd64\\\\MoUsoCoreWorker.exe\",\n \"?:\\\\Windows\\\\System32\\\\UsoClient.exe\",\n \"?:\\\\Windows\\\\System32\\\\MusNotification.exe\",\n \"?:\\\\Windows\\\\System32\\\\MusNotificationUx.exe\",\n \"?:\\\\Windows\\\\System32\\\\MusNotifyIcon.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerMgr.exe\",\n \"?:\\\\Windows\\\\UUS\\\\amd64\\\\MoUsoCoreWorker.exe\",\n \"?:\\\\Windows\\\\System32\\\\MoUsoCoreWorker.exe\",\n \"?:\\\\Windows\\\\UUS\\\\amd64\\\\UsoCoreWorker.exe\",\n \"?:\\\\Windows\\\\System32\\\\UsoCoreWorker.exe\",\n \"?:\\\\Program Files\\\\Common Files\\\\microsoft shared\\\\ClickToRun\\\\OfficeC2RClient.exe\") and\n not process.name : (\"MoUsoCoreWorker.exe\", \"OfficeC2RClient.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"265db8f5-fc73-4d0d-b434-6483b56372e2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/26b01043-4f04-4d2f-882a-5a1d2e95751b.json b/fleet-packages/detection-rules-composite/kibana/security_rule/26b01043-4f04-4d2f-882a-5a1d2e95751b.json new file mode 100644 index 0000000000000..9b839f79e4b82 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/26b01043-4f04-4d2f-882a-5a1d2e95751b.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"26b01043-4f04-4d2f-882a-5a1d2e95751b","versions":[{"name":"Privileges Elevation via Parent Process PID Spoofing v1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies parent process spoofing used to create an elevated child process. Adversaries may spoof the parent process identifier (PPID) of a new process to evade process-monitoring defenses or to elevate privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://gist.github.com/xpn/a057a26ec81e736518ee50848b9c2cd6","https://blog.didierstevens.com/2017/03/20/","https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-updateprocthreadattribute","https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1134.002/T1134.002.md"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/","subtechnique":[{"id":"T1134.002","name":"Create Process with Token","reference":"https://attack.mitre.org/techniques/T1134/002/"},{"id":"T1134.004","name":"Parent PID Spoofing","reference":"https://attack.mitre.org/techniques/T1134/004/"}]}]}],"language":"eql","query":"/* This rule is compatible with Elastic Endpoint only */\n\nprocess where event.action == \"start\" and\n\n /* process creation via seclogon */\n process.parent.Ext.real.pid > 0 and\n\n /* PrivEsc to SYSTEM */\n user.id : \"S-1-5-18\" and\n\n /* Common FPs - evasion via hollowing is possible, should be covered by code injection */\n not process.executable : (\"?:\\\\Windows\\\\System32\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerFaultSecure.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\WerFaultSecure.exe\",\n \"?:\\\\Windows\\\\System32\\\\Wermgr.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\Wermgr.exe\",\n \"?:\\\\Windows\\\\SoftwareDistribution\\\\Download\\\\Install\\\\securityhealthsetup.exe\") and\n\n not process.parent.executable : \"?:\\\\Windows\\\\System32\\\\AtBroker.exe\" and\n\n not (process.code_signature.subject_name in\n (\"philandro Software GmbH\", \"Freedom Scientific Inc.\", \"TeamViewer Germany GmbH\", \"Projector.is, Inc.\",\n \"TeamViewer GmbH\", \"Cisco WebEx LLC\", \"Dell Inc\") and process.code_signature.trusted == true)\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"process.code_signature.subject_name","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":false,"name":"process.parent.Ext.real.pid","type":"unknown"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"Privileges Elevation via Parent Process PID Spoofing v1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies parent process spoofing used to create an elevated child process. Adversaries may spoof the parent process identifier (PPID) of a new process to evade process-monitoring defenses or to elevate privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://gist.github.com/xpn/a057a26ec81e736518ee50848b9c2cd6","https://blog.didierstevens.com/2017/03/20/","https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-updateprocthreadattribute","https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1134.002/T1134.002.md"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/","subtechnique":[{"id":"T1134.002","name":"Create Process with Token","reference":"https://attack.mitre.org/techniques/T1134/002/"},{"id":"T1134.004","name":"Parent PID Spoofing","reference":"https://attack.mitre.org/techniques/T1134/004/"}]}]}],"language":"eql","query":"/* This rule is compatible with Elastic Endpoint only */\n\nprocess where event.action == \"start\" and\n\n /* process creation via seclogon */\n process.parent.Ext.real.pid > 0 and\n\n /* PrivEsc to SYSTEM */\n user.id : \"S-1-5-18\" and\n\n /* Common FPs - evasion via hollowing is possible, should be covered by code injection */\n not process.executable : (\"?:\\\\Windows\\\\System32\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerFaultSecure.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\WerFaultSecure.exe\",\n \"?:\\\\Windows\\\\System32\\\\Wermgr.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\Wermgr.exe\",\n \"?:\\\\Windows\\\\SoftwareDistribution\\\\Download\\\\Install\\\\securityhealthsetup.exe\") and\n\n not process.parent.executable : \"?:\\\\Windows\\\\System32\\\\AtBroker.exe\" and\n\n not (process.code_signature.subject_name in\n (\"philandro Software GmbH\", \"Freedom Scientific Inc.\", \"TeamViewer Germany GmbH\", \"Projector.is, Inc.\",\n \"TeamViewer GmbH\", \"Cisco WebEx LLC\", \"Dell Inc\") and process.code_signature.trusted == true)\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"process.code_signature.subject_name","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":false,"name":"process.parent.Ext.real.pid","type":"unknown"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"Privileges Elevation via Parent Process PID Spoofing v1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies parent process spoofing used to create an elevated child process. Adversaries may spoof the parent process identifier (PPID) of a new process to evade process-monitoring defenses or to elevate privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://gist.github.com/xpn/a057a26ec81e736518ee50848b9c2cd6","https://blog.didierstevens.com/2017/03/20/","https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-updateprocthreadattribute","https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1134.002/T1134.002.md"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/","subtechnique":[{"id":"T1134.002","name":"Create Process with Token","reference":"https://attack.mitre.org/techniques/T1134/002/"},{"id":"T1134.004","name":"Parent PID Spoofing","reference":"https://attack.mitre.org/techniques/T1134/004/"}]}]}],"language":"eql","query":"/* This rule is compatible with Elastic Endpoint only */\n\nprocess where event.action == \"start\" and\n\n /* process creation via seclogon */\n process.parent.Ext.real.pid > 0 and\n\n /* PrivEsc to SYSTEM */\n user.id : \"S-1-5-18\" and\n\n /* Common FPs - evasion via hollowing is possible, should be covered by code injection */\n not process.executable : (\"?:\\\\Windows\\\\System32\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerFaultSecure.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\WerFaultSecure.exe\",\n \"?:\\\\Windows\\\\System32\\\\Wermgr.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\Wermgr.exe\",\n \"?:\\\\Windows\\\\SoftwareDistribution\\\\Download\\\\Install\\\\securityhealthsetup.exe\") and\n\n not process.parent.executable : \"?:\\\\Windows\\\\System32\\\\AtBroker.exe\" and\n\n not (process.code_signature.subject_name in\n (\"philandro Software GmbH\", \"Freedom Scientific Inc.\", \"TeamViewer Germany GmbH\", \"Projector.is, Inc.\",\n \"TeamViewer GmbH\", \"Cisco WebEx LLC\", \"Dell Inc\") and process.code_signature.trusted == true)\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"process.code_signature.subject_name","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":false,"name":"process.parent.Ext.real.pid","type":"unknown"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]}]},"id":"26b01043-4f04-4d2f-882a-5a1d2e95751b","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/26edba02-6979-4bce-920a-70b080a7be81.json b/fleet-packages/detection-rules-composite/kibana/security_rule/26edba02-6979-4bce-920a-70b080a7be81.json new file mode 100644 index 0000000000000..3fc58fc577e94 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/26edba02-6979-4bce-920a-70b080a7be81.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"26edba02-6979-4bce-920a-70b080a7be81","versions":[{"name":"Azure Active Directory High Risk User Sign-in Heuristic v103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies high risk Azure Active Directory (AD) sign-ins by leveraging Microsoft Identity Protection machine learning and heuristics.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Azure Active Directory High Risk User Sign-in Heuristic\n\nMicrosoft Identity Protection is an Azure AD security tool that detects various types of identity risks and attacks.\n\nThis rule identifies events produced by the Microsoft Identity Protection with a risk state equal to `confirmedCompromised`\nor `atRisk`.\n\n#### Possible investigation steps\n\n- Identify the Risk Detection that triggered the event. A list with descriptions can be found [here](https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/concept-identity-protection-risks#risk-types-and-detection).\n- Identify the user account involved and validate whether the suspicious activity is normal for that user.\n - Consider the source IP address and geolocation for the involved user account. Do they look normal?\n - Consider the device used to sign in. Is it registered and compliant?\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\nIf this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and device conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Austin Songer"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/reports-monitoring/reference-azure-monitor-sign-ins-log-schema","https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/overview-identity-protection","https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/howto-identity-protection-investigate-risk","https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/howto-identity-protection-investigate-risk#investigation-framework"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.signinlogs and\n azure.signinlogs.properties.risk_state:(\"confirmedCompromised\" or \"atRisk\") and event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.signinlogs.properties.risk_state","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Active Directory High Risk User Sign-in Heuristic v103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies high risk Azure Active Directory (AD) sign-ins by leveraging Microsoft Identity Protection machine learning and heuristics.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Azure Active Directory High Risk User Sign-in Heuristic\n\nMicrosoft Identity Protection is an Azure AD security tool that detects various types of identity risks and attacks.\n\nThis rule identifies events produced by the Microsoft Identity Protection with a risk state equal to `confirmedCompromised`\nor `atRisk`.\n\n#### Possible investigation steps\n\n- Identify the Risk Detection that triggered the event. A list with descriptions can be found [here](https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/concept-identity-protection-risks#risk-types-and-detection).\n- Identify the user account involved and validate whether the suspicious activity is normal for that user.\n - Consider the source IP address and geolocation for the involved user account. Do they look normal?\n - Consider the device used to sign in. Is it registered and compliant?\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\nIf this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and device conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Austin Songer"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/reports-monitoring/reference-azure-monitor-sign-ins-log-schema","https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/overview-identity-protection","https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/howto-identity-protection-investigate-risk","https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/howto-identity-protection-investigate-risk#investigation-framework"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.signinlogs and\n azure.signinlogs.properties.risk_state:(\"confirmedCompromised\" or \"atRisk\") and event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.signinlogs.properties.risk_state","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Active Directory High Risk User Sign-in Heuristic v103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies high risk Azure Active Directory (AD) sign-ins by leveraging Microsoft Identity Protection machine learning and heuristics.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Azure Active Directory High Risk User Sign-in Heuristic\n\nMicrosoft Identity Protection is an Azure AD security tool that detects various types of identity risks and attacks.\n\nThis rule identifies events produced by the Microsoft Identity Protection with a risk state equal to `confirmedCompromised`\nor `atRisk`.\n\n#### Possible investigation steps\n\n- Identify the Risk Detection that triggered the event. A list with descriptions can be found [here](https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/concept-identity-protection-risks#risk-types-and-detection).\n- Identify the user account involved and validate whether the suspicious activity is normal for that user.\n - Consider the source IP address and geolocation for the involved user account. Do they look normal?\n - Consider the device used to sign in. Is it registered and compliant?\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\nIf this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and device conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Austin Songer"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/reports-monitoring/reference-azure-monitor-sign-ins-log-schema","https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/overview-identity-protection","https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/howto-identity-protection-investigate-risk","https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/howto-identity-protection-investigate-risk#investigation-framework"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.signinlogs and\n azure.signinlogs.properties.risk_state:(\"confirmedCompromised\" or \"atRisk\") and event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.signinlogs.properties.risk_state","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"26edba02-6979-4bce-920a-70b080a7be81","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/26f68dba-ce29-497b-8e13-b4fde1db5a2d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/26f68dba-ce29-497b-8e13-b4fde1db5a2d.json new file mode 100644 index 0000000000000..380c8cd75024b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/26f68dba-ce29-497b-8e13-b4fde1db5a2d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"26f68dba-ce29-497b-8e13-b4fde1db5a2d","versions":[{"name":"Attempts to Brute Force a Microsoft 365 User Account v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to brute force a Microsoft 365 user account. An adversary may attempt a brute force attack to obtain unauthorized access to user accounts.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic","Willem D'Haese","Austin Songer"],"false_positives":["Automated processes that attempt to authenticate using expired credentials and unbounded retries may lead to false positives."],"from":"now-30m","references":["https://blueteamblog.com/7-ways-to-monitor-your-office-365-logs-using-siem"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:o365.audit and event.provider:(AzureActiveDirectory or Exchange) and\n event.category:authentication and event.action:(UserLoginFailed or PasswordLogonInitialAuthUsingPassword) and\n not o365.audit.LogonError:(UserAccountNotFound or EntitlementGrantsNotFound or UserStrongAuthEnrollmentRequired or\n UserStrongAuthClientAuthNRequired or InvalidReplyTo)\n","threshold":{"field":["user.id"],"value":10},"type":"threshold","index":["filebeat-*","logs-o365*"],"language":"kuery","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.LogonError","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempts to Brute Force a Microsoft 365 User Account v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to brute force a Microsoft 365 user account. An adversary may attempt a brute force attack to obtain unauthorized access to user accounts.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic","Willem D'Haese","Austin Songer"],"false_positives":["Automated processes that attempt to authenticate using expired credentials and unbounded retries may lead to false positives."],"from":"now-30m","references":["https://blueteamblog.com/7-ways-to-monitor-your-office-365-logs-using-siem"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:o365.audit and event.provider:(AzureActiveDirectory or Exchange) and\n event.category:authentication and event.action:(UserLoginFailed or PasswordLogonInitialAuthUsingPassword) and\n not o365.audit.LogonError:(UserAccountNotFound or EntitlementGrantsNotFound or UserStrongAuthEnrollmentRequired or\n UserStrongAuthClientAuthNRequired or InvalidReplyTo)\n","threshold":{"field":["user.id"],"value":10},"type":"threshold","index":["filebeat-*","logs-o365*"],"language":"kuery","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.LogonError","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempts to Brute Force a Microsoft 365 User Account v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to brute force a Microsoft 365 user account. An adversary may attempt a brute force attack to obtain unauthorized access to user accounts.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic","Willem D'Haese","Austin Songer"],"false_positives":["Automated processes that attempt to authenticate using expired credentials and unbounded retries may lead to false positives."],"from":"now-30m","references":["https://blueteamblog.com/7-ways-to-monitor-your-office-365-logs-using-siem"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:o365.audit and event.provider:(AzureActiveDirectory or Exchange) and\n event.category:authentication and event.action:(UserLoginFailed or PasswordLogonInitialAuthUsingPassword) and\n not o365.audit.LogonError:(UserAccountNotFound or EntitlementGrantsNotFound or UserStrongAuthEnrollmentRequired or\n UserStrongAuthClientAuthNRequired or InvalidReplyTo)\n","threshold":{"field":["user.id"],"value":10},"type":"threshold","index":["filebeat-*","logs-o365*"],"language":"kuery","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.LogonError","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"26f68dba-ce29-497b-8e13-b4fde1db5a2d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/272a6484-2663-46db-a532-ef734bf9a796.json b/fleet-packages/detection-rules-composite/kibana/security_rule/272a6484-2663-46db-a532-ef734bf9a796.json new file mode 100644 index 0000000000000..13aa97c08852e --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/272a6484-2663-46db-a532-ef734bf9a796.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"272a6484-2663-46db-a532-ef734bf9a796","versions":[{"name":"Microsoft 365 Exchange Transport Rule Modification v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a transport rule has been disabled or deleted in Microsoft 365. Mail flow rules (also known as transport rules) are used to identify and take action on messages that flow through your organization. An adversary or insider threat may modify a transport rule to exfiltrate data or evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A transport rule may be modified by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-transportrule?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/disable-transportrule?view=exchange-ps","https://docs.microsoft.com/en-us/exchange/security-and-compliance/mail-flow-rules/mail-flow-rules"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:(\"Remove-TransportRule\" or \"Disable-TransportRule\") and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Exchange Transport Rule Modification v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a transport rule has been disabled or deleted in Microsoft 365. Mail flow rules (also known as transport rules) are used to identify and take action on messages that flow through your organization. An adversary or insider threat may modify a transport rule to exfiltrate data or evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A transport rule may be modified by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-transportrule?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/disable-transportrule?view=exchange-ps","https://docs.microsoft.com/en-us/exchange/security-and-compliance/mail-flow-rules/mail-flow-rules"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:(\"Remove-TransportRule\" or \"Disable-TransportRule\") and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Exchange Transport Rule Modification v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a transport rule has been disabled or deleted in Microsoft 365. Mail flow rules (also known as transport rules) are used to identify and take action on messages that flow through your organization. An adversary or insider threat may modify a transport rule to exfiltrate data or evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A transport rule may be modified by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-transportrule?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/disable-transportrule?view=exchange-ps","https://docs.microsoft.com/en-us/exchange/security-and-compliance/mail-flow-rules/mail-flow-rules"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:(\"Remove-TransportRule\" or \"Disable-TransportRule\") and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"272a6484-2663-46db-a532-ef734bf9a796","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/2772264c-6fb9-4d9d-9014-b416eed21254.json b/fleet-packages/detection-rules-composite/kibana/security_rule/2772264c-6fb9-4d9d-9014-b416eed21254.json new file mode 100644 index 0000000000000..6bcfae0f39d61 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/2772264c-6fb9-4d9d-9014-b416eed21254.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"2772264c-6fb9-4d9d-9014-b416eed21254","versions":[{"name":"Incoming Execution via PowerShell Remoting v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote execution via Windows PowerShell remoting. Windows PowerShell remoting allows a user to run any Windows PowerShell command on one or more remote computers. This could be an indication of lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["PowerShell remoting is a dual-use protocol that can be used for benign or malicious activity. It's important to baseline your environment to determine the amount of noise to expect from this tool."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/powershell/scripting/learn/remoting/running-remote-commands?view=powershell-7.1"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by host.id with maxspan = 30s\n [network where network.direction : (\"incoming\", \"ingress\") and destination.port in (5985, 5986) and\n network.protocol == \"http\" and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ]\n [process where event.type == \"start\" and process.parent.name : \"wsmprovhost.exe\" and not process.name : \"conhost.exe\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},{"name":"Incoming Execution via PowerShell Remoting v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote execution via Windows PowerShell remoting. Windows PowerShell remoting allows a user to run any Windows PowerShell command on one or more remote computers. This could be an indication of lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["PowerShell remoting is a dual-use protocol that can be used for benign or malicious activity. It's important to baseline your environment to determine the amount of noise to expect from this tool."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/powershell/scripting/learn/remoting/running-remote-commands?view=powershell-7.1"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by host.id with maxspan = 30s\n [network where network.direction : (\"incoming\", \"ingress\") and destination.port in (5985, 5986) and\n network.protocol == \"http\" and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ]\n [process where event.type == \"start\" and process.parent.name : \"wsmprovhost.exe\" and not process.name : \"conhost.exe\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},{"name":"Incoming Execution via PowerShell Remoting v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote execution via Windows PowerShell remoting. Windows PowerShell remoting allows a user to run any Windows PowerShell command on one or more remote computers. This could be an indication of lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["PowerShell remoting is a dual-use protocol that can be used for benign or malicious activity. It's important to baseline your environment to determine the amount of noise to expect from this tool."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/powershell/scripting/learn/remoting/running-remote-commands?view=powershell-7.1"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by host.id with maxspan = 30s\n [network where network.direction : (\"incoming\", \"ingress\") and destination.port in (5985, 5986) and\n network.protocol == \"http\" and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ]\n [process where event.type == \"start\" and process.parent.name : \"wsmprovhost.exe\" and not process.name : \"conhost.exe\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]}]},"id":"2772264c-6fb9-4d9d-9014-b416eed21254","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/2783d84f-5091-4d7d-9319-9fceda8fa71b.json b/fleet-packages/detection-rules-composite/kibana/security_rule/2783d84f-5091-4d7d-9319-9fceda8fa71b.json new file mode 100644 index 0000000000000..4255fff11eb81 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/2783d84f-5091-4d7d-9319-9fceda8fa71b.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"2783d84f-5091-4d7d-9319-9fceda8fa71b","versions":[{"name":"GCP Firewall Rule Modification v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a firewall rule is modified in Google Cloud Platform (GCP) for Virtual Private Cloud (VPC) or App Engine. These firewall rules can be modified to allow or deny connections to or from virtual machine (VM) instances or specific applications. An adversary may modify an existing firewall rule in order to weaken their target's security controls and allow more permissive ingress or egress traffic flows for their benefit.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Firewall rules may be modified by system administrators. Verify that the firewall configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/firewalls","https://cloud.google.com/appengine/docs/standard/python/understanding-firewalls"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:(*.compute.firewalls.patch or google.appengine.*.Firewall.Update*Rule)\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Firewall Rule Modification v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a firewall rule is modified in Google Cloud Platform (GCP) for Virtual Private Cloud (VPC) or App Engine. These firewall rules can be modified to allow or deny connections to or from virtual machine (VM) instances or specific applications. An adversary may modify an existing firewall rule in order to weaken their target's security controls and allow more permissive ingress or egress traffic flows for their benefit.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Firewall rules may be modified by system administrators. Verify that the firewall configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/firewalls","https://cloud.google.com/appengine/docs/standard/python/understanding-firewalls"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:(*.compute.firewalls.patch or google.appengine.*.Firewall.Update*Rule)\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Firewall Rule Modification v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a firewall rule is modified in Google Cloud Platform (GCP) for Virtual Private Cloud (VPC) or App Engine. These firewall rules can be modified to allow or deny connections to or from virtual machine (VM) instances or specific applications. An adversary may modify an existing firewall rule in order to weaken their target's security controls and allow more permissive ingress or egress traffic flows for their benefit.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Firewall rules may be modified by system administrators. Verify that the firewall configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/firewalls","https://cloud.google.com/appengine/docs/standard/python/understanding-firewalls"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:(*.compute.firewalls.patch or google.appengine.*.Firewall.Update*Rule)\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"2783d84f-5091-4d7d-9319-9fceda8fa71b","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/27f7c15a-91f8-4c3d-8b9e-1f99cc030a51.json b/fleet-packages/detection-rules-composite/kibana/security_rule/27f7c15a-91f8-4c3d-8b9e-1f99cc030a51.json new file mode 100644 index 0000000000000..16082ef1aad24 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/27f7c15a-91f8-4c3d-8b9e-1f99cc030a51.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"27f7c15a-91f8-4c3d-8b9e-1f99cc030a51","versions":[{"name":"Microsoft 365 Teams External Access Enabled v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when external access is enabled in Microsoft Teams. External access lets Teams and Skype for Business users communicate with other users that are outside their organization. An adversary may enable external access or add an allowed domain to exfiltrate data or maintain persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Teams external access may be enabled by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/microsoftteams/manage-external-access"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:(SkypeForBusiness or MicrosoftTeams) and\nevent.category:web and event.action:\"Set-CsTenantFederationConfiguration\" and\no365.audit.Parameters.AllowFederatedUsers:True and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Parameters.AllowFederatedUsers","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Teams External Access Enabled v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when external access is enabled in Microsoft Teams. External access lets Teams and Skype for Business users communicate with other users that are outside their organization. An adversary may enable external access or add an allowed domain to exfiltrate data or maintain persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Teams external access may be enabled by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/microsoftteams/manage-external-access"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:(SkypeForBusiness or MicrosoftTeams) and\nevent.category:web and event.action:\"Set-CsTenantFederationConfiguration\" and\no365.audit.Parameters.AllowFederatedUsers:True and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Parameters.AllowFederatedUsers","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Teams External Access Enabled v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when external access is enabled in Microsoft Teams. External access lets Teams and Skype for Business users communicate with other users that are outside their organization. An adversary may enable external access or add an allowed domain to exfiltrate data or maintain persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Teams external access may be enabled by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/microsoftteams/manage-external-access"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:(SkypeForBusiness or MicrosoftTeams) and\nevent.category:web and event.action:\"Set-CsTenantFederationConfiguration\" and\no365.audit.Parameters.AllowFederatedUsers:True and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Parameters.AllowFederatedUsers","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"27f7c15a-91f8-4c3d-8b9e-1f99cc030a51","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/2820c9c2-bcd7-4d6e-9eba-faf3891ba450.json b/fleet-packages/detection-rules-composite/kibana/security_rule/2820c9c2-bcd7-4d6e-9eba-faf3891ba450.json new file mode 100644 index 0000000000000..929b69cade0e2 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/2820c9c2-bcd7-4d6e-9eba-faf3891ba450.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"2820c9c2-bcd7-4d6e-9eba-faf3891ba450","versions":[{"name":"Account Password Reset Remotely v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an attempt to reset a potentially privileged account password remotely. Adversaries may manipulate account passwords to maintain access or evade password duration policies and preserve compromised credentials.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Legitimate remote account administration."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4724","https://stealthbits.com/blog/manipulating-user-passwords-with-mimikatz/","https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES/blob/master/Credential%20Access/remote_pwd_reset_rpc_mimikatz_postzerologon_target_DC.evtx","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"language":"eql","query":"sequence by host.id with maxspan=5m\n [authentication where event.action == \"logged-in\" and\n /* event 4624 need to be logged */\n winlog.logon.type : \"Network\" and event.outcome == \"success\" and source.ip != null and\n source.ip != \"127.0.0.1\" and source.ip != \"::1\"] by winlog.event_data.TargetLogonId\n /* event 4724 need to be logged */\n [iam where event.action == \"reset-password\" and\n (\n /*\n This rule is very noisy if not scoped to privileged accounts, duplicate the\n rule and add your own naming convention and accounts of interest here.\n */\n winlog.event_data.TargetUserName: (\"*Admin*\", \"*super*\", \"*SVC*\", \"*DC0*\", \"*service*\", \"*DMZ*\", \"*ADM*\") or\n winlog.event_data.TargetSid : (\"S-1-5-21-*-500\", \"S-1-12-1-*-500\")\n )\n ] by winlog.event_data.SubjectLogonId\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetSid","type":"unknown"},{"ecs":false,"name":"winlog.event_data.TargetUserName","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}]},{"name":"Account Password Reset Remotely v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an attempt to reset a potentially privileged account password remotely. Adversaries may manipulate account passwords to maintain access or evade password duration policies and preserve compromised credentials.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Legitimate remote account administration."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4724","https://stealthbits.com/blog/manipulating-user-passwords-with-mimikatz/","https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES/blob/master/Credential%20Access/remote_pwd_reset_rpc_mimikatz_postzerologon_target_DC.evtx","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"language":"eql","query":"sequence by host.id with maxspan=5m\n [authentication where event.action == \"logged-in\" and\n /* event 4624 need to be logged */\n winlog.logon.type : \"Network\" and event.outcome == \"success\" and source.ip != null and\n source.ip != \"127.0.0.1\" and source.ip != \"::1\"] by winlog.event_data.TargetLogonId\n /* event 4724 need to be logged */\n [iam where event.action == \"reset-password\" and\n (\n /*\n This rule is very noisy if not scoped to privileged accounts, duplicate the\n rule and add your own naming convention and accounts of interest here.\n */\n winlog.event_data.TargetUserName: (\"*Admin*\", \"*super*\", \"*SVC*\", \"*DC0*\", \"*service*\", \"*DMZ*\", \"*ADM*\") or\n winlog.event_data.TargetSid : (\"S-1-5-21-*-500\", \"S-1-12-1-*-500\")\n )\n ] by winlog.event_data.SubjectLogonId\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetSid","type":"unknown"},{"ecs":false,"name":"winlog.event_data.TargetUserName","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}]},{"name":"Account Password Reset Remotely v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an attempt to reset a potentially privileged account password remotely. Adversaries may manipulate account passwords to maintain access or evade password duration policies and preserve compromised credentials.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Legitimate remote account administration."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4724","https://stealthbits.com/blog/manipulating-user-passwords-with-mimikatz/","https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES/blob/master/Credential%20Access/remote_pwd_reset_rpc_mimikatz_postzerologon_target_DC.evtx","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"language":"eql","query":"sequence by host.id with maxspan=5m\n [authentication where event.action == \"logged-in\" and\n /* event 4624 need to be logged */\n winlog.logon.type : \"Network\" and event.outcome == \"success\" and source.ip != null and\n source.ip != \"127.0.0.1\" and source.ip != \"::1\"] by winlog.event_data.TargetLogonId\n /* event 4724 need to be logged */\n [iam where event.action == \"reset-password\" and\n (\n /*\n This rule is very noisy if not scoped to privileged accounts, duplicate the\n rule and add your own naming convention and accounts of interest here.\n */\n winlog.event_data.TargetUserName: (\"*Admin*\", \"*super*\", \"*SVC*\", \"*DC0*\", \"*service*\", \"*DMZ*\", \"*ADM*\") or\n winlog.event_data.TargetSid : (\"S-1-5-21-*-500\", \"S-1-12-1-*-500\")\n )\n ] by winlog.event_data.SubjectLogonId\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetSid","type":"unknown"},{"ecs":false,"name":"winlog.event_data.TargetUserName","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}]}]},"id":"2820c9c2-bcd7-4d6e-9eba-faf3891ba450","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/2856446a-34e6-435b-9fb5-f8f040bfa7ed.json b/fleet-packages/detection-rules-composite/kibana/security_rule/2856446a-34e6-435b-9fb5-f8f040bfa7ed.json new file mode 100644 index 0000000000000..e1896a4739ef8 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/2856446a-34e6-435b-9fb5-f8f040bfa7ed.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"2856446a-34e6-435b-9fb5-f8f040bfa7ed","versions":[{"name":"Account Discovery Command via SYSTEM Account v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when the SYSTEM account uses an account discovery utility. This could be a sign of discovery activity after an adversary has achieved privilege escalation.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Account Discovery Command via SYSTEM Account\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of account discovery utilities using the SYSTEM account, which is commonly observed\nafter attackers successfully perform privilege escalation or exploit web applications.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n - If the process tree includes a web-application server process such as w3wp, httpd.exe, nginx.exe and alike,\n investigate any suspicious file creation or modification in the last 48 hours to assess the presence of any potential\n webshell backdoor.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Determine how the SYSTEM account is being used. For example, users with administrator privileges can spawn a system\nshell using Windows services, scheduled tasks or other third party utilities.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n- Use the data collected through the analysis to investigate other machines affected in the environment.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1033","name":"System Owner/User Discovery","reference":"https://attack.mitre.org/techniques/T1033/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (?process.Ext.token.integrity_level_name : \"System\" or\n ?winlog.event_data.IntegrityLevel : \"System\") and\n (process.name : \"whoami.exe\" or\n (process.name : \"net1.exe\" and not process.parent.name : \"net.exe\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.IntegrityLevel","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Account Discovery Command via SYSTEM Account v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when the SYSTEM account uses an account discovery utility. This could be a sign of discovery activity after an adversary has achieved privilege escalation.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Account Discovery Command via SYSTEM Account\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of account discovery utilities using the SYSTEM account, which is commonly observed\nafter attackers successfully perform privilege escalation or exploit web applications.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n - If the process tree includes a web-application server process such as w3wp, httpd.exe, nginx.exe and alike,\n investigate any suspicious file creation or modification in the last 48 hours to assess the presence of any potential\n webshell backdoor.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Determine how the SYSTEM account is being used. For example, users with administrator privileges can spawn a system\nshell using Windows services, scheduled tasks or other third party utilities.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n- Use the data collected through the analysis to investigate other machines affected in the environment.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1033","name":"System Owner/User Discovery","reference":"https://attack.mitre.org/techniques/T1033/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (?process.Ext.token.integrity_level_name : \"System\" or\n ?winlog.event_data.IntegrityLevel : \"System\") and\n (process.name : \"whoami.exe\" or\n (process.name : \"net1.exe\" and not process.parent.name : \"net.exe\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.IntegrityLevel","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Account Discovery Command via SYSTEM Account v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when the SYSTEM account uses an account discovery utility. This could be a sign of discovery activity after an adversary has achieved privilege escalation.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Account Discovery Command via SYSTEM Account\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of account discovery utilities using the SYSTEM account, which is commonly observed\nafter attackers successfully perform privilege escalation or exploit web applications.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n - If the process tree includes a web-application server process such as w3wp, httpd.exe, nginx.exe and alike,\n investigate any suspicious file creation or modification in the last 48 hours to assess the presence of any potential\n webshell backdoor.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Determine how the SYSTEM account is being used. For example, users with administrator privileges can spawn a system\nshell using Windows services, scheduled tasks or other third party utilities.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n- Use the data collected through the analysis to investigate other machines affected in the environment.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1033","name":"System Owner/User Discovery","reference":"https://attack.mitre.org/techniques/T1033/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (?process.Ext.token.integrity_level_name : \"System\" or\n ?winlog.event_data.IntegrityLevel : \"System\") and\n (process.name : \"whoami.exe\" or\n (process.name : \"net1.exe\" and not process.parent.name : \"net.exe\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.IntegrityLevel","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"2856446a-34e6-435b-9fb5-f8f040bfa7ed","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/2863ffeb-bf77-44dd-b7a5-93ef94b72036.json b/fleet-packages/detection-rules-composite/kibana/security_rule/2863ffeb-bf77-44dd-b7a5-93ef94b72036.json new file mode 100644 index 0000000000000..0b1f5774faf93 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/2863ffeb-bf77-44dd-b7a5-93ef94b72036.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"2863ffeb-bf77-44dd-b7a5-93ef94b72036","versions":[{"name":"Exploit - Prevented - Elastic Endgame v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented an Exploit. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:exploit_event or endgame.event_subtype_full:exploit_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Exploit - Prevented - Elastic Endgame v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented an Exploit. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:exploit_event or endgame.event_subtype_full:exploit_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Exploit - Prevented - Elastic Endgame v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented an Exploit. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:exploit_event or endgame.event_subtype_full:exploit_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]}]},"id":"2863ffeb-bf77-44dd-b7a5-93ef94b72036","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/29052c19-ff3e-42fd-8363-7be14d7c5469.json b/fleet-packages/detection-rules-composite/kibana/security_rule/29052c19-ff3e-42fd-8363-7be14d7c5469.json new file mode 100644 index 0000000000000..837832e8767f3 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/29052c19-ff3e-42fd-8363-7be14d7c5469.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"29052c19-ff3e-42fd-8363-7be14d7c5469","versions":[{"name":"AWS Security Group Configuration Change Detection v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a change to an AWS Security Group Configuration. A security group is like a virtual firewall, and modifying configurations may allow unauthorized access. Threat actors may abuse this to establish persistence, exfiltrate data, or pivot in an AWS environment.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["A security group may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Security group creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-30m","interval":"10m","references":["https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-security-groups.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:(AuthorizeSecurityGroupEgress or\nCreateSecurityGroup or ModifyInstanceAttribute or ModifySecurityGroupRules or RevokeSecurityGroupEgress or\nRevokeSecurityGroupIngress) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Security Group Configuration Change Detection v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a change to an AWS Security Group Configuration. A security group is like a virtual firewall, and modifying configurations may allow unauthorized access. Threat actors may abuse this to establish persistence, exfiltrate data, or pivot in an AWS environment.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["A security group may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Security group creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-30m","interval":"10m","references":["https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-security-groups.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:(AuthorizeSecurityGroupEgress or\nCreateSecurityGroup or ModifyInstanceAttribute or ModifySecurityGroupRules or RevokeSecurityGroupEgress or\nRevokeSecurityGroupIngress) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Security Group Configuration Change Detection v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a change to an AWS Security Group Configuration. A security group is like a virtual firewall, and modifying configurations may allow unauthorized access. Threat actors may abuse this to establish persistence, exfiltrate data, or pivot in an AWS environment.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["A security group may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Security group creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-30m","interval":"10m","references":["https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-security-groups.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:(AuthorizeSecurityGroupEgress or\nCreateSecurityGroup or ModifyInstanceAttribute or ModifySecurityGroupRules or RevokeSecurityGroupEgress or\nRevokeSecurityGroupIngress) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"29052c19-ff3e-42fd-8363-7be14d7c5469","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/290aca65-e94d-403b-ba0f-62f320e63f51.json b/fleet-packages/detection-rules-composite/kibana/security_rule/290aca65-e94d-403b-ba0f-62f320e63f51.json new file mode 100644 index 0000000000000..24aafcace0834 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/290aca65-e94d-403b-ba0f-62f320e63f51.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"290aca65-e94d-403b-ba0f-62f320e63f51","versions":[{"name":"UAC Bypass Attempt via Windows Directory Masquerading v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an attempt to bypass User Account Control (UAC) by masquerading as a Microsoft trusted Windows directory. Attackers may bypass UAC to stealthily execute code with elevated permissions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating UAC Bypass Attempt via Windows Directory Masquerading\n\nWindows User Account Control (UAC) allows a program to elevate its privileges (tracked as low to high integrity levels)\nto perform a task under administrator-level permissions, possibly by prompting the user for confirmation.\nUAC can deny an operation under high-integrity enforcement, or allow the user to perform the action if they are in the\nlocal administrators group and enter an administrator password when prompted.\n\nFor more information about the UAC and how it works, check the [official Microsoft docs page](https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/how-user-account-control-works).\n\nThis rule identifies an attempt to bypass User Account Control (UAC) by masquerading as a Microsoft trusted Windows\ndirectory. Attackers may bypass UAC to stealthily execute code with elevated permissions.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze any suspicious spawned processes using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://medium.com/tenable-techblog/uac-bypass-by-mocking-trusted-directories-24a96675f6e"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.args : (\"C:\\\\Windows \\\\system32\\\\*.exe\", \"C:\\\\Windows \\\\SysWOW64\\\\*.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"UAC Bypass Attempt via Windows Directory Masquerading v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an attempt to bypass User Account Control (UAC) by masquerading as a Microsoft trusted Windows directory. Attackers may bypass UAC to stealthily execute code with elevated permissions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating UAC Bypass Attempt via Windows Directory Masquerading\n\nWindows User Account Control (UAC) allows a program to elevate its privileges (tracked as low to high integrity levels)\nto perform a task under administrator-level permissions, possibly by prompting the user for confirmation.\nUAC can deny an operation under high-integrity enforcement, or allow the user to perform the action if they are in the\nlocal administrators group and enter an administrator password when prompted.\n\nFor more information about the UAC and how it works, check the [official Microsoft docs page](https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/how-user-account-control-works).\n\nThis rule identifies an attempt to bypass User Account Control (UAC) by masquerading as a Microsoft trusted Windows\ndirectory. Attackers may bypass UAC to stealthily execute code with elevated permissions.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze any suspicious spawned processes using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://medium.com/tenable-techblog/uac-bypass-by-mocking-trusted-directories-24a96675f6e"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.args : (\"C:\\\\Windows \\\\system32\\\\*.exe\", \"C:\\\\Windows \\\\SysWOW64\\\\*.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"UAC Bypass Attempt via Windows Directory Masquerading v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an attempt to bypass User Account Control (UAC) by masquerading as a Microsoft trusted Windows directory. Attackers may bypass UAC to stealthily execute code with elevated permissions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating UAC Bypass Attempt via Windows Directory Masquerading\n\nWindows User Account Control (UAC) allows a program to elevate its privileges (tracked as low to high integrity levels)\nto perform a task under administrator-level permissions, possibly by prompting the user for confirmation.\nUAC can deny an operation under high-integrity enforcement, or allow the user to perform the action if they are in the\nlocal administrators group and enter an administrator password when prompted.\n\nFor more information about the UAC and how it works, check the [official Microsoft docs page](https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/how-user-account-control-works).\n\nThis rule identifies an attempt to bypass User Account Control (UAC) by masquerading as a Microsoft trusted Windows\ndirectory. Attackers may bypass UAC to stealthily execute code with elevated permissions.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze any suspicious spawned processes using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://medium.com/tenable-techblog/uac-bypass-by-mocking-trusted-directories-24a96675f6e"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.args : (\"C:\\\\Windows \\\\system32\\\\*.exe\", \"C:\\\\Windows \\\\SysWOW64\\\\*.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"290aca65-e94d-403b-ba0f-62f320e63f51","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/2917d495-59bd-4250-b395-c29409b76086.json b/fleet-packages/detection-rules-composite/kibana/security_rule/2917d495-59bd-4250-b395-c29409b76086.json new file mode 100644 index 0000000000000..f646c4c86ec58 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/2917d495-59bd-4250-b395-c29409b76086.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"2917d495-59bd-4250-b395-c29409b76086","versions":[{"name":"Web Shell Detection: Script Process Child of Common Web Processes v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious commands executed via a web server, which may suggest a vulnerability and remote shell access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Web Shell Detection: Script Process Child of Common Web Processes\n\nAdversaries may backdoor web servers with web shells to establish persistent access to systems. A web shell is a web\nscript that is placed on an openly accessible web server to allow an adversary to use the web server as a gateway into a\nnetwork. A web shell may provide a set of functions to execute or a command-line interface on the system that hosts the\nweb server.\n\nThis rule detects a web server process spawning script and command-line interface programs, potentially indicating\nattackers executing commands using the web shell.\n\n#### Possible investigation steps\n\n- Investigate abnormal behaviors observed by the subject process such as network connections, registry or file\nmodifications, and any other spawned child processes.\n- Examine the command line to determine which commands or scripts were executed.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- If scripts or executables were dropped, retrieve the files and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently\nmalicious must be monitored by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Security audits, maintenance, and network administrative scripts may trigger this alert when run under web processes."],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2020/02/04/ghost-in-the-shell-investigating-web-shell-attacks/","https://www.elastic.co/security-labs/elastic-response-to-the-the-spring4shell-vulnerability-cve-2022-22965","https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-1"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1505","name":"Server Software Component","reference":"https://attack.mitre.org/techniques/T1505/","subtechnique":[{"id":"T1505.003","name":"Web Shell","reference":"https://attack.mitre.org/techniques/T1505/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"w3wp.exe\", \"httpd.exe\", \"nginx.exe\", \"php.exe\", \"php-cgi.exe\", \"tomcat.exe\") and\n process.name : (\"cmd.exe\", \"cscript.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\", \"wmic.exe\", \"wscript.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Web Shell Detection: Script Process Child of Common Web Processes v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious commands executed via a web server, which may suggest a vulnerability and remote shell access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Web Shell Detection: Script Process Child of Common Web Processes\n\nAdversaries may backdoor web servers with web shells to establish persistent access to systems. A web shell is a web\nscript that is placed on an openly accessible web server to allow an adversary to use the web server as a gateway into a\nnetwork. A web shell may provide a set of functions to execute or a command-line interface on the system that hosts the\nweb server.\n\nThis rule detects a web server process spawning script and command-line interface programs, potentially indicating\nattackers executing commands using the web shell.\n\n#### Possible investigation steps\n\n- Investigate abnormal behaviors observed by the subject process such as network connections, registry or file\nmodifications, and any other spawned child processes.\n- Examine the command line to determine which commands or scripts were executed.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- If scripts or executables were dropped, retrieve the files and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently\nmalicious must be monitored by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Security audits, maintenance, and network administrative scripts may trigger this alert when run under web processes."],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2020/02/04/ghost-in-the-shell-investigating-web-shell-attacks/","https://www.elastic.co/security-labs/elastic-response-to-the-the-spring4shell-vulnerability-cve-2022-22965","https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-1"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1505","name":"Server Software Component","reference":"https://attack.mitre.org/techniques/T1505/","subtechnique":[{"id":"T1505.003","name":"Web Shell","reference":"https://attack.mitre.org/techniques/T1505/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"w3wp.exe\", \"httpd.exe\", \"nginx.exe\", \"php.exe\", \"php-cgi.exe\", \"tomcat.exe\") and\n process.name : (\"cmd.exe\", \"cscript.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\", \"wmic.exe\", \"wscript.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Web Shell Detection: Script Process Child of Common Web Processes v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious commands executed via a web server, which may suggest a vulnerability and remote shell access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Web Shell Detection: Script Process Child of Common Web Processes\n\nAdversaries may backdoor web servers with web shells to establish persistent access to systems. A web shell is a web\nscript that is placed on an openly accessible web server to allow an adversary to use the web server as a gateway into a\nnetwork. A web shell may provide a set of functions to execute or a command-line interface on the system that hosts the\nweb server.\n\nThis rule detects a web server process spawning script and command-line interface programs, potentially indicating\nattackers executing commands using the web shell.\n\n#### Possible investigation steps\n\n- Investigate abnormal behaviors observed by the subject process such as network connections, registry or file\nmodifications, and any other spawned child processes.\n- Examine the command line to determine which commands or scripts were executed.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- If scripts or executables were dropped, retrieve the files and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently\nmalicious must be monitored by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Security audits, maintenance, and network administrative scripts may trigger this alert when run under web processes."],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2020/02/04/ghost-in-the-shell-investigating-web-shell-attacks/","https://www.elastic.co/security-labs/elastic-response-to-the-the-spring4shell-vulnerability-cve-2022-22965","https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-1"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1505","name":"Server Software Component","reference":"https://attack.mitre.org/techniques/T1505/","subtechnique":[{"id":"T1505.003","name":"Web Shell","reference":"https://attack.mitre.org/techniques/T1505/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"w3wp.exe\", \"httpd.exe\", \"nginx.exe\", \"php.exe\", \"php-cgi.exe\", \"tomcat.exe\") and\n process.name : (\"cmd.exe\", \"cscript.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\", \"wmic.exe\", \"wscript.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"2917d495-59bd-4250-b395-c29409b76086","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/291a0de9-937a-4189-94c0-3e847c8b13e4.json b/fleet-packages/detection-rules-composite/kibana/security_rule/291a0de9-937a-4189-94c0-3e847c8b13e4.json new file mode 100644 index 0000000000000..9686490065a84 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/291a0de9-937a-4189-94c0-3e847c8b13e4.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"291a0de9-937a-4189-94c0-3e847c8b13e4","versions":[{"name":"Enumeration of Privileged Local Groups Membership v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies instances of an unusual process enumerating built-in Windows privileged local groups membership like Administrators or Remote Desktop users.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Enumeration of Privileged Local Groups Membership\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the enumeration of privileged local groups' membership by suspicious processes, and excludes known\nlegitimate utilities and programs installed. Attackers can use this information to decide the next steps of the attack,\nsuch as mapping targets for credential compromise and other post-exploitation activities.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Identify the process, host and user involved on the event.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\nThe 'Audit Security Group Management' audit policy must be configured (Success).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nAccount Management >\nAudit Security Group Management (Success)\n```\n\nMicrosoft introduced the [event used](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4799) in this detection rule on Windows 10 and Windows Server 2016 or later operating systems.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1069","name":"Permission Groups Discovery","reference":"https://attack.mitre.org/techniques/T1069/","subtechnique":[{"id":"T1069.001","name":"Local Groups","reference":"https://attack.mitre.org/techniques/T1069/001/"}]}]}],"language":"eql","query":"iam where event.action == \"user-member-enumerated\" and\n\n /* excluding machine account */\n not winlog.event_data.SubjectUserName: (\"*$\", \"LOCAL SERVICE\", \"NETWORK SERVICE\") and\n\n /* noisy and usual legit processes excluded */\n not winlog.event_data.CallerProcessName:\n (\"-\",\n \"?:\\\\Windows\\\\System32\\\\VSSVC.exe\",\n \"?:\\\\Windows\\\\System32\\\\SearchIndexer.exe\",\n \"?:\\\\Windows\\\\System32\\\\CompatTelRunner.exe\",\n \"?:\\\\Windows\\\\System32\\\\oobe\\\\msoobe.exe\",\n \"?:\\\\Windows\\\\System32\\\\net1.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Windows\\\\System32\\\\Netplwiz.exe\",\n \"?:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\System32\\\\CloudExperienceHostBroker.exe\",\n \"?:\\\\Windows\\\\System32\\\\wbem\\\\WmiPrvSE.exe\",\n \"?:\\\\Windows\\\\System32\\\\SrTasks.exe\",\n \"?:\\\\Windows\\\\System32\\\\lsass.exe\",\n \"?:\\\\Windows\\\\System32\\\\diskshadow.exe\",\n \"?:\\\\Windows\\\\System32\\\\dfsrs.exe\",\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\WindowsAzure\\\\*\\\\WaAppAgent.exe\",\n \"?:\\\\Windows\\\\System32\\\\vssadmin.exe\",\n \"?:\\\\Windows\\\\VeeamVssSupport\\\\VeeamGuestHelper.exe\",\n \"?:\\\\Windows\\\\System32\\\\dllhost.exe\",\n \"?:\\\\Windows\\\\System32\\\\mmc.exe\",\n \"?:\\\\Windows\\\\System32\\\\SettingSyncHost.exe\",\n \"?:\\\\Windows\\\\ImmersiveControlPanel\\\\SystemSettings.exe\",\n \"?:\\\\Windows\\\\System32\\\\SystemSettingsAdminFlows.exe\",\n \"?:\\\\Windows\\\\Temp\\\\rubrik_vmware???\\\\snaptool.exe\",\n \"?:\\\\Windows\\\\System32\\\\inetsrv\\\\w3wp.exe\",\n \"?:\\\\$WINDOWS.~BT\\\\Sources\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\wsmprovhost.exe\",\n \"?:\\\\Windows\\\\System32\\\\spool\\\\drivers\\\\x64\\\\3\\\\x3jobt3?.exe\",\n \"?:\\\\Windows\\\\System32\\\\mstsc.exe\",\n \"?:\\\\Windows\\\\System32\\\\esentutl.exe\",\n \"?:\\\\Windows\\\\System32\\\\RecoveryDrive.exe\",\n \"?:\\\\Windows\\\\System32\\\\SystemPropertiesComputerName.exe\") and\n\n /* privileged local groups */\n (group.name:(\"admin*\",\"RemoteDesktopUsers\") or\n winlog.event_data.TargetSid:(\"S-1-5-32-544\",\"S-1-5-32-555\"))\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"group.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallerProcessName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectUserName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetSid","type":"unknown"}],"setup":"The 'Audit Security Group Management' audit policy must be configured (Success).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nAccount Management >\nAudit Security Group Management (Success)\n```\n\nMicrosoft introduced the event used in this detection rule on Windows 10 and Windows Server 2016 or later operating systems.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Enumeration of Privileged Local Groups Membership v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies instances of an unusual process enumerating built-in Windows privileged local groups membership like Administrators or Remote Desktop users.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Enumeration of Privileged Local Groups Membership\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the enumeration of privileged local groups' membership by suspicious processes, and excludes known\nlegitimate utilities and programs installed. Attackers can use this information to decide the next steps of the attack,\nsuch as mapping targets for credential compromise and other post-exploitation activities.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Identify the process, host and user involved on the event.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\nThe 'Audit Security Group Management' audit policy must be configured (Success).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nAccount Management >\nAudit Security Group Management (Success)\n```\n\nMicrosoft introduced the [event used](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4799) in this detection rule on Windows 10 and Windows Server 2016 or later operating systems.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1069","name":"Permission Groups Discovery","reference":"https://attack.mitre.org/techniques/T1069/","subtechnique":[{"id":"T1069.001","name":"Local Groups","reference":"https://attack.mitre.org/techniques/T1069/001/"}]}]}],"language":"eql","query":"iam where event.action == \"user-member-enumerated\" and\n\n /* excluding machine account */\n not winlog.event_data.SubjectUserName: (\"*$\", \"LOCAL SERVICE\", \"NETWORK SERVICE\") and\n\n /* noisy and usual legit processes excluded */\n not winlog.event_data.CallerProcessName:\n (\"-\",\n \"?:\\\\Windows\\\\System32\\\\VSSVC.exe\",\n \"?:\\\\Windows\\\\System32\\\\SearchIndexer.exe\",\n \"?:\\\\Windows\\\\System32\\\\CompatTelRunner.exe\",\n \"?:\\\\Windows\\\\System32\\\\oobe\\\\msoobe.exe\",\n \"?:\\\\Windows\\\\System32\\\\net1.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Windows\\\\System32\\\\Netplwiz.exe\",\n \"?:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\System32\\\\CloudExperienceHostBroker.exe\",\n \"?:\\\\Windows\\\\System32\\\\wbem\\\\WmiPrvSE.exe\",\n \"?:\\\\Windows\\\\System32\\\\SrTasks.exe\",\n \"?:\\\\Windows\\\\System32\\\\lsass.exe\",\n \"?:\\\\Windows\\\\System32\\\\diskshadow.exe\",\n \"?:\\\\Windows\\\\System32\\\\dfsrs.exe\",\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\WindowsAzure\\\\*\\\\WaAppAgent.exe\",\n \"?:\\\\Windows\\\\System32\\\\vssadmin.exe\",\n \"?:\\\\Windows\\\\VeeamVssSupport\\\\VeeamGuestHelper.exe\",\n \"?:\\\\Windows\\\\System32\\\\dllhost.exe\",\n \"?:\\\\Windows\\\\System32\\\\mmc.exe\",\n \"?:\\\\Windows\\\\System32\\\\SettingSyncHost.exe\",\n \"?:\\\\Windows\\\\ImmersiveControlPanel\\\\SystemSettings.exe\",\n \"?:\\\\Windows\\\\System32\\\\SystemSettingsAdminFlows.exe\",\n \"?:\\\\Windows\\\\Temp\\\\rubrik_vmware???\\\\snaptool.exe\",\n \"?:\\\\Windows\\\\System32\\\\inetsrv\\\\w3wp.exe\",\n \"?:\\\\$WINDOWS.~BT\\\\Sources\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\wsmprovhost.exe\",\n \"?:\\\\Windows\\\\System32\\\\spool\\\\drivers\\\\x64\\\\3\\\\x3jobt3?.exe\",\n \"?:\\\\Windows\\\\System32\\\\mstsc.exe\",\n \"?:\\\\Windows\\\\System32\\\\esentutl.exe\",\n \"?:\\\\Windows\\\\System32\\\\RecoveryDrive.exe\",\n \"?:\\\\Windows\\\\System32\\\\SystemPropertiesComputerName.exe\") and\n\n /* privileged local groups */\n (group.name:(\"admin*\",\"RemoteDesktopUsers\") or\n winlog.event_data.TargetSid:(\"S-1-5-32-544\",\"S-1-5-32-555\"))\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"group.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallerProcessName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectUserName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetSid","type":"unknown"}],"setup":"The 'Audit Security Group Management' audit policy must be configured (Success).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nAccount Management >\nAudit Security Group Management (Success)\n```\n\nMicrosoft introduced the event used in this detection rule on Windows 10 and Windows Server 2016 or later operating systems.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Enumeration of Privileged Local Groups Membership v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies instances of an unusual process enumerating built-in Windows privileged local groups membership like Administrators or Remote Desktop users.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Enumeration of Privileged Local Groups Membership\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the enumeration of privileged local groups' membership by suspicious processes, and excludes known\nlegitimate utilities and programs installed. Attackers can use this information to decide the next steps of the attack,\nsuch as mapping targets for credential compromise and other post-exploitation activities.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Identify the process, host and user involved on the event.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\nThe 'Audit Security Group Management' audit policy must be configured (Success).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nAccount Management >\nAudit Security Group Management (Success)\n```\n\nMicrosoft introduced the [event used](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4799) in this detection rule on Windows 10 and Windows Server 2016 or later operating systems.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1069","name":"Permission Groups Discovery","reference":"https://attack.mitre.org/techniques/T1069/","subtechnique":[{"id":"T1069.001","name":"Local Groups","reference":"https://attack.mitre.org/techniques/T1069/001/"}]}]}],"language":"eql","query":"iam where event.action == \"user-member-enumerated\" and\n\n /* excluding machine account */\n not winlog.event_data.SubjectUserName: (\"*$\", \"LOCAL SERVICE\", \"NETWORK SERVICE\") and\n\n /* noisy and usual legit processes excluded */\n not winlog.event_data.CallerProcessName:\n (\"-\",\n \"?:\\\\Windows\\\\System32\\\\VSSVC.exe\",\n \"?:\\\\Windows\\\\System32\\\\SearchIndexer.exe\",\n \"?:\\\\Windows\\\\System32\\\\CompatTelRunner.exe\",\n \"?:\\\\Windows\\\\System32\\\\oobe\\\\msoobe.exe\",\n \"?:\\\\Windows\\\\System32\\\\net1.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Windows\\\\System32\\\\Netplwiz.exe\",\n \"?:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\System32\\\\CloudExperienceHostBroker.exe\",\n \"?:\\\\Windows\\\\System32\\\\wbem\\\\WmiPrvSE.exe\",\n \"?:\\\\Windows\\\\System32\\\\SrTasks.exe\",\n \"?:\\\\Windows\\\\System32\\\\lsass.exe\",\n \"?:\\\\Windows\\\\System32\\\\diskshadow.exe\",\n \"?:\\\\Windows\\\\System32\\\\dfsrs.exe\",\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\WindowsAzure\\\\*\\\\WaAppAgent.exe\",\n \"?:\\\\Windows\\\\System32\\\\vssadmin.exe\",\n \"?:\\\\Windows\\\\VeeamVssSupport\\\\VeeamGuestHelper.exe\",\n \"?:\\\\Windows\\\\System32\\\\dllhost.exe\",\n \"?:\\\\Windows\\\\System32\\\\mmc.exe\",\n \"?:\\\\Windows\\\\System32\\\\SettingSyncHost.exe\",\n \"?:\\\\Windows\\\\ImmersiveControlPanel\\\\SystemSettings.exe\",\n \"?:\\\\Windows\\\\System32\\\\SystemSettingsAdminFlows.exe\",\n \"?:\\\\Windows\\\\Temp\\\\rubrik_vmware???\\\\snaptool.exe\",\n \"?:\\\\Windows\\\\System32\\\\inetsrv\\\\w3wp.exe\",\n \"?:\\\\$WINDOWS.~BT\\\\Sources\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\wsmprovhost.exe\",\n \"?:\\\\Windows\\\\System32\\\\spool\\\\drivers\\\\x64\\\\3\\\\x3jobt3?.exe\",\n \"?:\\\\Windows\\\\System32\\\\mstsc.exe\",\n \"?:\\\\Windows\\\\System32\\\\esentutl.exe\",\n \"?:\\\\Windows\\\\System32\\\\RecoveryDrive.exe\",\n \"?:\\\\Windows\\\\System32\\\\SystemPropertiesComputerName.exe\") and\n\n /* privileged local groups */\n (group.name:(\"admin*\",\"RemoteDesktopUsers\") or\n winlog.event_data.TargetSid:(\"S-1-5-32-544\",\"S-1-5-32-555\"))\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"group.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallerProcessName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectUserName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetSid","type":"unknown"}],"setup":"The 'Audit Security Group Management' audit policy must be configured (Success).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nAccount Management >\nAudit Security Group Management (Success)\n```\n\nMicrosoft introduced the event used in this detection rule on Windows 10 and Windows Server 2016 or later operating systems.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"291a0de9-937a-4189-94c0-3e847c8b13e4","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/2abda169-416b-4bb3-9a6b-f8d239fd78ba.json b/fleet-packages/detection-rules-composite/kibana/security_rule/2abda169-416b-4bb3-9a6b-f8d239fd78ba.json new file mode 100644 index 0000000000000..1b6082e94f802 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/2abda169-416b-4bb3-9a6b-f8d239fd78ba.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"2abda169-416b-4bb3-9a6b-f8d239fd78ba","versions":[{"name":"Kubernetes Pod created with a Sensitive hostPath Volume v200.0.0","rule_version":"200.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects when a pod is created with a sensitive volume of type hostPath. A hostPath volume type mounts a sensitive file or folder from the node to the container. If the container gets compromised, the attacker can use this mount for gaining access to the node. There are many ways a container with unrestricted access to the host filesystem can escalate privileges, including reading data from other containers, and accessing tokens of more privileged pods.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator may need to attach a hostPath volume for a legitimate reason. This alert should be investigated for legitimacy by determining if the kuberenetes.audit.requestObject.spec.volumes.hostPath.path triggered is one needed by its target container/pod. For example, when the fleet managed elastic agent is deployed as a daemonset it creates several hostPath volume mounts, some of which are sensitive host directories like /proc, /etc/kubernetes, and /var/log. Add exceptions for trusted container images using the query field \"kubernetes.audit.requestObject.spec.container.image\""],"references":["https://blog.appsecco.com/kubernetes-namespace-breakout-using-insecure-host-path-volume-part-1-b382f2a6e216","https://kubernetes.io/docs/concepts/storage/volumes/#hostpath"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.objectRef.resource:\"pods\"\n and kubernetes.audit.verb:(\"create\" or \"update\" or \"patch\")\n and kubernetes.audit.requestObject.spec.volumes.hostPath.path:\n (\"/\" or \n \"/proc\" or \n \"/root\" or \n \"/var\" or \n \"/var/run\" or \n \"/var/run/docker.sock\" or \n \"/var/run/crio/crio.sock\" or \n \"/var/run/cri-dockerd.sock\" or \n \"/var/lib/kubelet\" or \n \"/var/lib/kubelet/pki\" or \n \"/var/lib/docker/overlay2\" or \n \"/etc\" or \n \"/etc/kubernetes\" or \n \"/etc/kubernetes/manifests\" or \n \"/etc/kubernetes/pki\" or\n \"/home/admin\")\n and not kubernetes.audit.requestObject.spec.containers.image: (\"docker.elastic.co/beats/elastic-agent:8.4.0\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.volumes.hostPath.path","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},{"name":"Kubernetes Pod created with a Sensitive hostPath Volume v200.0.1","rule_version":"200.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects when a pod is created with a sensitive volume of type hostPath. A hostPath volume type mounts a sensitive file or folder from the node to the container. If the container gets compromised, the attacker can use this mount for gaining access to the node. There are many ways a container with unrestricted access to the host filesystem can escalate privileges, including reading data from other containers, and accessing tokens of more privileged pods.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator may need to attach a hostPath volume for a legitimate reason. This alert should be investigated for legitimacy by determining if the kuberenetes.audit.requestObject.spec.volumes.hostPath.path triggered is one needed by its target container/pod. For example, when the fleet managed elastic agent is deployed as a daemonset it creates several hostPath volume mounts, some of which are sensitive host directories like /proc, /etc/kubernetes, and /var/log. Add exceptions for trusted container images using the query field \"kubernetes.audit.requestObject.spec.container.image\""],"references":["https://blog.appsecco.com/kubernetes-namespace-breakout-using-insecure-host-path-volume-part-1-b382f2a6e216","https://kubernetes.io/docs/concepts/storage/volumes/#hostpath"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.objectRef.resource:\"pods\"\n and kubernetes.audit.verb:(\"create\" or \"update\" or \"patch\")\n and kubernetes.audit.requestObject.spec.volumes.hostPath.path:\n (\"/\" or \n \"/proc\" or \n \"/root\" or \n \"/var\" or \n \"/var/run\" or \n \"/var/run/docker.sock\" or \n \"/var/run/crio/crio.sock\" or \n \"/var/run/cri-dockerd.sock\" or \n \"/var/lib/kubelet\" or \n \"/var/lib/kubelet/pki\" or \n \"/var/lib/docker/overlay2\" or \n \"/etc\" or \n \"/etc/kubernetes\" or \n \"/etc/kubernetes/manifests\" or \n \"/etc/kubernetes/pki\" or\n \"/home/admin\")\n and not kubernetes.audit.requestObject.spec.containers.image: (\"docker.elastic.co/beats/elastic-agent:8.4.0\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.volumes.hostPath.path","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},{"name":"Kubernetes Pod created with a Sensitive hostPath Volume v200.0.2","rule_version":"200.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects when a pod is created with a sensitive volume of type hostPath. A hostPath volume type mounts a sensitive file or folder from the node to the container. If the container gets compromised, the attacker can use this mount for gaining access to the node. There are many ways a container with unrestricted access to the host filesystem can escalate privileges, including reading data from other containers, and accessing tokens of more privileged pods.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator may need to attach a hostPath volume for a legitimate reason. This alert should be investigated for legitimacy by determining if the kuberenetes.audit.requestObject.spec.volumes.hostPath.path triggered is one needed by its target container/pod. For example, when the fleet managed elastic agent is deployed as a daemonset it creates several hostPath volume mounts, some of which are sensitive host directories like /proc, /etc/kubernetes, and /var/log. Add exceptions for trusted container images using the query field \"kubernetes.audit.requestObject.spec.container.image\""],"references":["https://blog.appsecco.com/kubernetes-namespace-breakout-using-insecure-host-path-volume-part-1-b382f2a6e216","https://kubernetes.io/docs/concepts/storage/volumes/#hostpath"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.objectRef.resource:\"pods\"\n and kubernetes.audit.verb:(\"create\" or \"update\" or \"patch\")\n and kubernetes.audit.requestObject.spec.volumes.hostPath.path:\n (\"/\" or \n \"/proc\" or \n \"/root\" or \n \"/var\" or \n \"/var/run\" or \n \"/var/run/docker.sock\" or \n \"/var/run/crio/crio.sock\" or \n \"/var/run/cri-dockerd.sock\" or \n \"/var/lib/kubelet\" or \n \"/var/lib/kubelet/pki\" or \n \"/var/lib/docker/overlay2\" or \n \"/etc\" or \n \"/etc/kubernetes\" or \n \"/etc/kubernetes/manifests\" or \n \"/etc/kubernetes/pki\" or\n \"/home/admin\")\n and not kubernetes.audit.requestObject.spec.containers.image: (\"docker.elastic.co/beats/elastic-agent:8.4.0\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.volumes.hostPath.path","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."}]},"id":"2abda169-416b-4bb3-9a6b-f8d239fd78ba","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/2bf78aa2-9c56-48de-b139-f169bf99cf86.json b/fleet-packages/detection-rules-composite/kibana/security_rule/2bf78aa2-9c56-48de-b139-f169bf99cf86.json new file mode 100644 index 0000000000000..2b2d64ac37cd0 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/2bf78aa2-9c56-48de-b139-f169bf99cf86.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"2bf78aa2-9c56-48de-b139-f169bf99cf86","versions":[{"name":"Adobe Hijack Persistence v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects writing executable files that will be automatically launched by Adobe on launch.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Adobe Hijack Persistence\n\nAttackers can replace the `RdrCEF.exe` executable with their own to maintain their access, which will be launched\nwhenever Adobe Acrobat Reader is executed.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://twitter.com/pabraeken/status/997997818362155008"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.010","name":"Services File Permissions Weakness","reference":"https://attack.mitre.org/techniques/T1574/010/"}]}]}],"language":"eql","query":"file where event.type == \"creation\" and\n file.path : (\"?:\\\\Program Files (x86)\\\\Adobe\\\\Acrobat Reader DC\\\\Reader\\\\AcroCEF\\\\RdrCEF.exe\",\n \"?:\\\\Program Files\\\\Adobe\\\\Acrobat Reader DC\\\\Reader\\\\AcroCEF\\\\RdrCEF.exe\") and\n not process.name : \"msiexec.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Adobe Hijack Persistence v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects writing executable files that will be automatically launched by Adobe on launch.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Adobe Hijack Persistence\n\nAttackers can replace the `RdrCEF.exe` executable with their own to maintain their access, which will be launched\nwhenever Adobe Acrobat Reader is executed.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://twitter.com/pabraeken/status/997997818362155008"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.010","name":"Services File Permissions Weakness","reference":"https://attack.mitre.org/techniques/T1574/010/"}]}]}],"language":"eql","query":"file where event.type == \"creation\" and\n file.path : (\"?:\\\\Program Files (x86)\\\\Adobe\\\\Acrobat Reader DC\\\\Reader\\\\AcroCEF\\\\RdrCEF.exe\",\n \"?:\\\\Program Files\\\\Adobe\\\\Acrobat Reader DC\\\\Reader\\\\AcroCEF\\\\RdrCEF.exe\") and\n not process.name : \"msiexec.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Adobe Hijack Persistence v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects writing executable files that will be automatically launched by Adobe on launch.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Adobe Hijack Persistence\n\nAttackers can replace the `RdrCEF.exe` executable with their own to maintain their access, which will be launched\nwhenever Adobe Acrobat Reader is executed.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://twitter.com/pabraeken/status/997997818362155008"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.010","name":"Services File Permissions Weakness","reference":"https://attack.mitre.org/techniques/T1574/010/"}]}]}],"language":"eql","query":"file where event.type == \"creation\" and\n file.path : (\"?:\\\\Program Files (x86)\\\\Adobe\\\\Acrobat Reader DC\\\\Reader\\\\AcroCEF\\\\RdrCEF.exe\",\n \"?:\\\\Program Files\\\\Adobe\\\\Acrobat Reader DC\\\\Reader\\\\AcroCEF\\\\RdrCEF.exe\") and\n not process.name : \"msiexec.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"2bf78aa2-9c56-48de-b139-f169bf99cf86","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/2c17e5d7-08b9-43b2-b58a-0270d65ac85b.json b/fleet-packages/detection-rules-composite/kibana/security_rule/2c17e5d7-08b9-43b2-b58a-0270d65ac85b.json new file mode 100644 index 0000000000000..4fade209695bd --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/2c17e5d7-08b9-43b2-b58a-0270d65ac85b.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"2c17e5d7-08b9-43b2-b58a-0270d65ac85b","versions":[{"name":"Windows Defender Exclusions Added via PowerShell v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to the Windows Defender configuration settings using PowerShell to add exclusions at the folder directory or process level.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Defender Exclusions Added via PowerShell\n\nMicrosoft Windows Defender is an antivirus product built into Microsoft Windows. Since this software product is\nused to prevent and stop malware, it's important to monitor what specific exclusions are made to the product's configuration\nsettings. These can often be signs of an adversary or malware trying to bypass Windows Defender's capabilities. One of\nthe more notable [examples](https://www.cyberbit.com/blog/endpoint-security/latest-trickbot-variant-has-new-tricks-up-its-sleeve/)\nwas observed in 2018 where Trickbot incorporated mechanisms to disable Windows Defender to avoid detection.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Examine the exclusion in order to determine the intent behind it.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- If the exclusion specifies a suspicious file or path, retrieve the file(s) and determine if malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This rule has a high chance to produce false positives due to how often network administrators legitimately configure\nexclusions. In order to validate the activity further, review the specific exclusion and its intent. There are many\nlegitimate reasons for exclusions, so it's important to gain context.\n\n### Related rules\n\n- Windows Defender Disabled via Registry Modification - 2ffa1f1e-b6db-47fa-994b-1512743847eb\n- Disabling Windows Defender Security Settings via PowerShell - c8cccb06-faf2-4cd5-886e-2c9636cfcb87\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Exclusion lists for antimalware capabilities should always be routinely monitored for review.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.bitdefender.com/files/News/CaseStudies/study/400/Bitdefender-PR-Whitepaper-MosaicLoader-creat5540-en-EN.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"},{"id":"T1562.006","name":"Indicator Blocking","reference":"https://attack.mitre.org/techniques/T1562/006/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") or process.pe.original_file_name in (\"powershell.exe\", \"pwsh.dll\", \"powershell_ise.exe\")) and\n process.args : (\"*Add-MpPreference*\", \"*Set-MpPreference*\") and\n process.args : (\"*-Exclusion*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Windows Defender Exclusions Added via PowerShell v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to the Windows Defender configuration settings using PowerShell to add exclusions at the folder directory or process level.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Defender Exclusions Added via PowerShell\n\nMicrosoft Windows Defender is an antivirus product built into Microsoft Windows. Since this software product is\nused to prevent and stop malware, it's important to monitor what specific exclusions are made to the product's configuration\nsettings. These can often be signs of an adversary or malware trying to bypass Windows Defender's capabilities. One of\nthe more notable [examples](https://www.cyberbit.com/blog/endpoint-security/latest-trickbot-variant-has-new-tricks-up-its-sleeve/)\nwas observed in 2018 where Trickbot incorporated mechanisms to disable Windows Defender to avoid detection.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Examine the exclusion in order to determine the intent behind it.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- If the exclusion specifies a suspicious file or path, retrieve the file(s) and determine if malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This rule has a high chance to produce false positives due to how often network administrators legitimately configure\nexclusions. In order to validate the activity further, review the specific exclusion and its intent. There are many\nlegitimate reasons for exclusions, so it's important to gain context.\n\n### Related rules\n\n- Windows Defender Disabled via Registry Modification - 2ffa1f1e-b6db-47fa-994b-1512743847eb\n- Disabling Windows Defender Security Settings via PowerShell - c8cccb06-faf2-4cd5-886e-2c9636cfcb87\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Exclusion lists for antimalware capabilities should always be routinely monitored for review.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.bitdefender.com/files/News/CaseStudies/study/400/Bitdefender-PR-Whitepaper-MosaicLoader-creat5540-en-EN.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"},{"id":"T1562.006","name":"Indicator Blocking","reference":"https://attack.mitre.org/techniques/T1562/006/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") or process.pe.original_file_name in (\"powershell.exe\", \"pwsh.dll\", \"powershell_ise.exe\")) and\n process.args : (\"*Add-MpPreference*\", \"*Set-MpPreference*\") and\n process.args : (\"*-Exclusion*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Windows Defender Exclusions Added via PowerShell v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to the Windows Defender configuration settings using PowerShell to add exclusions at the folder directory or process level.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Defender Exclusions Added via PowerShell\n\nMicrosoft Windows Defender is an antivirus product built into Microsoft Windows. Since this software product is\nused to prevent and stop malware, it's important to monitor what specific exclusions are made to the product's configuration\nsettings. These can often be signs of an adversary or malware trying to bypass Windows Defender's capabilities. One of\nthe more notable [examples](https://www.cyberbit.com/blog/endpoint-security/latest-trickbot-variant-has-new-tricks-up-its-sleeve/)\nwas observed in 2018 where Trickbot incorporated mechanisms to disable Windows Defender to avoid detection.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Examine the exclusion in order to determine the intent behind it.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- If the exclusion specifies a suspicious file or path, retrieve the file(s) and determine if malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This rule has a high chance to produce false positives due to how often network administrators legitimately configure\nexclusions. In order to validate the activity further, review the specific exclusion and its intent. There are many\nlegitimate reasons for exclusions, so it's important to gain context.\n\n### Related rules\n\n- Windows Defender Disabled via Registry Modification - 2ffa1f1e-b6db-47fa-994b-1512743847eb\n- Disabling Windows Defender Security Settings via PowerShell - c8cccb06-faf2-4cd5-886e-2c9636cfcb87\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Exclusion lists for antimalware capabilities should always be routinely monitored for review.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.bitdefender.com/files/News/CaseStudies/study/400/Bitdefender-PR-Whitepaper-MosaicLoader-creat5540-en-EN.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"},{"id":"T1562.006","name":"Indicator Blocking","reference":"https://attack.mitre.org/techniques/T1562/006/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") or process.pe.original_file_name in (\"powershell.exe\", \"pwsh.dll\", \"powershell_ise.exe\")) and\n process.args : (\"*Add-MpPreference*\", \"*Set-MpPreference*\") and\n process.args : (\"*-Exclusion*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"2c17e5d7-08b9-43b2-b58a-0270d65ac85b","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/2c3c29a4-f170-42f8-a3d8-2ceebc18eb6a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/2c3c29a4-f170-42f8-a3d8-2ceebc18eb6a.json new file mode 100644 index 0000000000000..3570b58f3a1a5 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/2c3c29a4-f170-42f8-a3d8-2ceebc18eb6a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"2c3c29a4-f170-42f8-a3d8-2ceebc18eb6a","versions":[{"name":"Suspicious Microsoft Diagnostics Wizard Execution v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential abuse of the Microsoft Diagnostics Troubleshooting Wizard (MSDT) to proxy malicious command or binary execution via malicious process arguments.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://twitter.com/nao_sec/status/1530196847679401984","https://lolbas-project.github.io/lolbas/Binaries/Msdt/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.pe.original_file_name == \"msdt.exe\" or process.name : \"msdt.exe\") and\n (\n process.args : (\"IT_RebrowseForFile=*\", \"ms-msdt:/id\", \"ms-msdt:-id\", \"*FromBase64*\") or\n\n (process.args : \"-af\" and process.args : \"/skip\" and\n process.parent.name : (\"explorer.exe\", \"cmd.exe\", \"powershell.exe\", \"cscript.exe\", \"wscript.exe\", \"mshta.exe\", \"rundll32.exe\", \"regsvr32.exe\") and\n process.args : (\"?:\\\\WINDOWS\\\\diagnostics\\\\index\\\\PCWDiagnostic.xml\", \"PCWDiagnostic.xml\", \"?:\\\\Users\\\\Public\\\\*\", \"?:\\\\Windows\\\\Temp\\\\*\")) or\n\n (process.pe.original_file_name == \"msdt.exe\" and not process.name : \"msdt.exe\" and process.name != null) or\n\n (process.pe.original_file_name == \"msdt.exe\" and not process.executable : (\"?:\\\\Windows\\\\system32\\\\msdt.exe\", \"?:\\\\Windows\\\\SysWOW64\\\\msdt.exe\"))\n )\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious Microsoft Diagnostics Wizard Execution v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential abuse of the Microsoft Diagnostics Troubleshooting Wizard (MSDT) to proxy malicious command or binary execution via malicious process arguments.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://twitter.com/nao_sec/status/1530196847679401984","https://lolbas-project.github.io/lolbas/Binaries/Msdt/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.pe.original_file_name == \"msdt.exe\" or process.name : \"msdt.exe\") and\n (\n process.args : (\"IT_RebrowseForFile=*\", \"ms-msdt:/id\", \"ms-msdt:-id\", \"*FromBase64*\") or\n\n (process.args : \"-af\" and process.args : \"/skip\" and\n process.parent.name : (\"explorer.exe\", \"cmd.exe\", \"powershell.exe\", \"cscript.exe\", \"wscript.exe\", \"mshta.exe\", \"rundll32.exe\", \"regsvr32.exe\") and\n process.args : (\"?:\\\\WINDOWS\\\\diagnostics\\\\index\\\\PCWDiagnostic.xml\", \"PCWDiagnostic.xml\", \"?:\\\\Users\\\\Public\\\\*\", \"?:\\\\Windows\\\\Temp\\\\*\")) or\n\n (process.pe.original_file_name == \"msdt.exe\" and not process.name : \"msdt.exe\" and process.name != null) or\n\n (process.pe.original_file_name == \"msdt.exe\" and not process.executable : (\"?:\\\\Windows\\\\system32\\\\msdt.exe\", \"?:\\\\Windows\\\\SysWOW64\\\\msdt.exe\"))\n )\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious Microsoft Diagnostics Wizard Execution v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential abuse of the Microsoft Diagnostics Troubleshooting Wizard (MSDT) to proxy malicious command or binary execution via malicious process arguments.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://twitter.com/nao_sec/status/1530196847679401984","https://lolbas-project.github.io/lolbas/Binaries/Msdt/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.pe.original_file_name == \"msdt.exe\" or process.name : \"msdt.exe\") and\n (\n process.args : (\"IT_RebrowseForFile=*\", \"ms-msdt:/id\", \"ms-msdt:-id\", \"*FromBase64*\") or\n\n (process.args : \"-af\" and process.args : \"/skip\" and\n process.parent.name : (\"explorer.exe\", \"cmd.exe\", \"powershell.exe\", \"cscript.exe\", \"wscript.exe\", \"mshta.exe\", \"rundll32.exe\", \"regsvr32.exe\") and\n process.args : (\"?:\\\\WINDOWS\\\\diagnostics\\\\index\\\\PCWDiagnostic.xml\", \"PCWDiagnostic.xml\", \"?:\\\\Users\\\\Public\\\\*\", \"?:\\\\Windows\\\\Temp\\\\*\")) or\n\n (process.pe.original_file_name == \"msdt.exe\" and not process.name : \"msdt.exe\" and process.name != null) or\n\n (process.pe.original_file_name == \"msdt.exe\" and not process.executable : (\"?:\\\\Windows\\\\system32\\\\msdt.exe\", \"?:\\\\Windows\\\\SysWOW64\\\\msdt.exe\"))\n )\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"2c3c29a4-f170-42f8-a3d8-2ceebc18eb6a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/2d8043ed-5bda-4caf-801c-c1feb7410504.json b/fleet-packages/detection-rules-composite/kibana/security_rule/2d8043ed-5bda-4caf-801c-c1feb7410504.json new file mode 100644 index 0000000000000..89bafcc6dd467 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/2d8043ed-5bda-4caf-801c-c1feb7410504.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"2d8043ed-5bda-4caf-801c-c1feb7410504","versions":[{"name":"Enumeration of Kernel Modules v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Loadable Kernel Modules (or LKMs) are pieces of code that can be loaded and unloaded into the kernel upon demand. They extend the functionality of the kernel without the need to reboot the system. This identifies attempts to enumerate information about a kernel module.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Security tools and device drivers may run these programs in order to enumerate kernel modules. Use of these programs by ordinary users is uncommon. These can be exempted by process name or username."],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.args:(kmod and list and sudo or sudo and (depmod or lsmod or modinfo))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},{"name":"Enumeration of Kernel Modules v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Loadable Kernel Modules (or LKMs) are pieces of code that can be loaded and unloaded into the kernel upon demand. They extend the functionality of the kernel without the need to reboot the system. This identifies attempts to enumerate information about a kernel module.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Security tools and device drivers may run these programs in order to enumerate kernel modules. Use of these programs by ordinary users is uncommon. These can be exempted by process name or username."],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.args:(kmod and list and sudo or sudo and (depmod or lsmod or modinfo))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},{"name":"Enumeration of Kernel Modules v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Loadable Kernel Modules (or LKMs) are pieces of code that can be loaded and unloaded into the kernel upon demand. They extend the functionality of the kernel without the need to reboot the system. This identifies attempts to enumerate information about a kernel module.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Security tools and device drivers may run these programs in order to enumerate kernel modules. Use of these programs by ordinary users is uncommon. These can be exempted by process name or username."],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.args:(kmod and list and sudo or sudo and (depmod or lsmod or modinfo))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]}]},"id":"2d8043ed-5bda-4caf-801c-c1feb7410504","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/2dd480be-1263-4d9c-8672-172928f6789a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/2dd480be-1263-4d9c-8672-172928f6789a.json new file mode 100644 index 0000000000000..7c11ad183c3e6 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/2dd480be-1263-4d9c-8672-172928f6789a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"2dd480be-1263-4d9c-8672-172928f6789a","versions":[{"name":"Suspicious Process Access via Direct System Call v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious process access events from an unknown memory region. Endpoint security solutions usually hook userland Windows APIs in order to decide if the code that is being executed is malicious or not. It's possible to bypass hooked functions by writing malicious functions that call syscalls directly.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Process Access via Direct System Call\n\nEndpoint security solutions usually hook userland Windows APIs in order to decide if the code that is being executed is\nmalicious or not. It's possible to bypass hooked functions by writing malicious functions that call syscalls directly.\n\nMore context and technical details can be found in this [research blog](https://outflank.nl/blog/2019/06/19/red-team-tactics-combining-direct-system-calls-and-srdi-to-bypass-av-edr/).\n\nThis rule identifies suspicious process access events from an unknown memory region. Attackers can use direct system\ncalls to bypass security solutions that rely on hooks.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This detection may be triggered by certain applications that install root certificates for the purpose of inspecting\nSSL traffic. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove the malicious certificate from the root certificate store.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://twitter.com/SBousseaden/status/1278013896440324096","https://www.ired.team/offensive-security/defense-evasion/using-syscalls-directly-from-visual-studio-to-bypass-avs-edrs"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"process where event.code == \"10\" and\n length(winlog.event_data.CallTrace) > 0 and\n\n /* Sysmon CallTrace starting with unknown memory module instead of ntdll which host Windows NT Syscalls */\n not winlog.event_data.CallTrace :\n (\"?:\\\\WINDOWS\\\\SYSTEM32\\\\ntdll.dll*\",\n \"?:\\\\WINDOWS\\\\SysWOW64\\\\ntdll.dll*\",\n \"?:\\\\Windows\\\\System32\\\\wow64cpu.dll*\",\n \"?:\\\\WINDOWS\\\\System32\\\\wow64win.dll*\",\n \"?:\\\\Windows\\\\System32\\\\win32u.dll*\") and\n\n not winlog.event_data.TargetImage :\n (\"?:\\\\Program Files (x86)\\\\Malwarebytes Anti-Exploit\\\\mbae-svc.exe\",\n \"?:\\\\Program Files\\\\Cisco\\\\AMP\\\\*\\\\sfc.exe\",\n \"?:\\\\Program Files (x86)\\\\Microsoft\\\\EdgeWebView\\\\Application\\\\*\\\\msedgewebview2.exe\",\n \"?:\\\\Program Files\\\\Adobe\\\\Acrobat DC\\\\Acrobat\\\\*\\\\AcroCEF.exe\") and\n\n not (process.executable : (\"?:\\\\Program Files\\\\Adobe\\\\Acrobat DC\\\\Acrobat\\\\Acrobat.exe\",\n \"?:\\\\Program Files (x86)\\\\World of Warcraft\\\\_classic_\\\\WowClassic.exe\") and\n not winlog.event_data.TargetImage : \"?:\\\\WINDOWS\\\\system32\\\\lsass.exe\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallTrace","type":"unknown"},{"ecs":false,"name":"winlog.event_data.TargetImage","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious Process Access via Direct System Call v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious process access events from an unknown memory region. Endpoint security solutions usually hook userland Windows APIs in order to decide if the code that is being executed is malicious or not. It's possible to bypass hooked functions by writing malicious functions that call syscalls directly.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Process Access via Direct System Call\n\nEndpoint security solutions usually hook userland Windows APIs in order to decide if the code that is being executed is\nmalicious or not. It's possible to bypass hooked functions by writing malicious functions that call syscalls directly.\n\nMore context and technical details can be found in this [research blog](https://outflank.nl/blog/2019/06/19/red-team-tactics-combining-direct-system-calls-and-srdi-to-bypass-av-edr/).\n\nThis rule identifies suspicious process access events from an unknown memory region. Attackers can use direct system\ncalls to bypass security solutions that rely on hooks.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This detection may be triggered by certain applications that install root certificates for the purpose of inspecting\nSSL traffic. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove the malicious certificate from the root certificate store.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://twitter.com/SBousseaden/status/1278013896440324096","https://www.ired.team/offensive-security/defense-evasion/using-syscalls-directly-from-visual-studio-to-bypass-avs-edrs"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"process where event.code == \"10\" and\n length(winlog.event_data.CallTrace) > 0 and\n\n /* Sysmon CallTrace starting with unknown memory module instead of ntdll which host Windows NT Syscalls */\n not winlog.event_data.CallTrace :\n (\"?:\\\\WINDOWS\\\\SYSTEM32\\\\ntdll.dll*\",\n \"?:\\\\WINDOWS\\\\SysWOW64\\\\ntdll.dll*\",\n \"?:\\\\Windows\\\\System32\\\\wow64cpu.dll*\",\n \"?:\\\\WINDOWS\\\\System32\\\\wow64win.dll*\",\n \"?:\\\\Windows\\\\System32\\\\win32u.dll*\") and\n\n not winlog.event_data.TargetImage :\n (\"?:\\\\Program Files (x86)\\\\Malwarebytes Anti-Exploit\\\\mbae-svc.exe\",\n \"?:\\\\Program Files\\\\Cisco\\\\AMP\\\\*\\\\sfc.exe\",\n \"?:\\\\Program Files (x86)\\\\Microsoft\\\\EdgeWebView\\\\Application\\\\*\\\\msedgewebview2.exe\",\n \"?:\\\\Program Files\\\\Adobe\\\\Acrobat DC\\\\Acrobat\\\\*\\\\AcroCEF.exe\") and\n\n not (process.executable : (\"?:\\\\Program Files\\\\Adobe\\\\Acrobat DC\\\\Acrobat\\\\Acrobat.exe\",\n \"?:\\\\Program Files (x86)\\\\World of Warcraft\\\\_classic_\\\\WowClassic.exe\") and\n not winlog.event_data.TargetImage : \"?:\\\\WINDOWS\\\\system32\\\\lsass.exe\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallTrace","type":"unknown"},{"ecs":false,"name":"winlog.event_data.TargetImage","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious Process Access via Direct System Call v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious process access events from an unknown memory region. Endpoint security solutions usually hook userland Windows APIs in order to decide if the code that is being executed is malicious or not. It's possible to bypass hooked functions by writing malicious functions that call syscalls directly.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Process Access via Direct System Call\n\nEndpoint security solutions usually hook userland Windows APIs in order to decide if the code that is being executed is\nmalicious or not. It's possible to bypass hooked functions by writing malicious functions that call syscalls directly.\n\nMore context and technical details can be found in this [research blog](https://outflank.nl/blog/2019/06/19/red-team-tactics-combining-direct-system-calls-and-srdi-to-bypass-av-edr/).\n\nThis rule identifies suspicious process access events from an unknown memory region. Attackers can use direct system\ncalls to bypass security solutions that rely on hooks.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This detection may be triggered by certain applications that install root certificates for the purpose of inspecting\nSSL traffic. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove the malicious certificate from the root certificate store.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://twitter.com/SBousseaden/status/1278013896440324096","https://www.ired.team/offensive-security/defense-evasion/using-syscalls-directly-from-visual-studio-to-bypass-avs-edrs"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"process where event.code == \"10\" and\n length(winlog.event_data.CallTrace) > 0 and\n\n /* Sysmon CallTrace starting with unknown memory module instead of ntdll which host Windows NT Syscalls */\n not winlog.event_data.CallTrace :\n (\"?:\\\\WINDOWS\\\\SYSTEM32\\\\ntdll.dll*\",\n \"?:\\\\WINDOWS\\\\SysWOW64\\\\ntdll.dll*\",\n \"?:\\\\Windows\\\\System32\\\\wow64cpu.dll*\",\n \"?:\\\\WINDOWS\\\\System32\\\\wow64win.dll*\",\n \"?:\\\\Windows\\\\System32\\\\win32u.dll*\") and\n\n not winlog.event_data.TargetImage :\n (\"?:\\\\Program Files (x86)\\\\Malwarebytes Anti-Exploit\\\\mbae-svc.exe\",\n \"?:\\\\Program Files\\\\Cisco\\\\AMP\\\\*\\\\sfc.exe\",\n \"?:\\\\Program Files (x86)\\\\Microsoft\\\\EdgeWebView\\\\Application\\\\*\\\\msedgewebview2.exe\",\n \"?:\\\\Program Files\\\\Adobe\\\\Acrobat DC\\\\Acrobat\\\\*\\\\AcroCEF.exe\") and\n\n not (process.executable : (\"?:\\\\Program Files\\\\Adobe\\\\Acrobat DC\\\\Acrobat\\\\Acrobat.exe\",\n \"?:\\\\Program Files (x86)\\\\World of Warcraft\\\\_classic_\\\\WowClassic.exe\") and\n not winlog.event_data.TargetImage : \"?:\\\\WINDOWS\\\\system32\\\\lsass.exe\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallTrace","type":"unknown"},{"ecs":false,"name":"winlog.event_data.TargetImage","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"2dd480be-1263-4d9c-8672-172928f6789a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/2de10e77-c144-4e69-afb7-344e7127abd0.json b/fleet-packages/detection-rules-composite/kibana/security_rule/2de10e77-c144-4e69-afb7-344e7127abd0.json new file mode 100644 index 0000000000000..befb66519281c --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/2de10e77-c144-4e69-afb7-344e7127abd0.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"2de10e77-c144-4e69-afb7-344e7127abd0","versions":[{"name":"O365 Excessive Single Sign-On Logon Errors v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies accounts with a high number of single sign-on (SSO) logon errors. Excessive logon errors may indicate an attempt to brute force a password or SSO token.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic","Austin Songer"],"false_positives":["Automated processes that attempt to authenticate using expired credentials and unbounded retries may lead to false positives."],"from":"now-20m","tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:o365.audit and event.provider:AzureActiveDirectory and event.category:authentication and o365.audit.LogonError:\"SsoArtifactInvalidOrExpired\"\n","threshold":{"field":["user.id"],"value":5},"type":"threshold","index":["filebeat-*","logs-o365*"],"language":"kuery","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.LogonError","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"O365 Excessive Single Sign-On Logon Errors v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies accounts with a high number of single sign-on (SSO) logon errors. Excessive logon errors may indicate an attempt to brute force a password or SSO token.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic","Austin Songer"],"false_positives":["Automated processes that attempt to authenticate using expired credentials and unbounded retries may lead to false positives."],"from":"now-20m","tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:o365.audit and event.provider:AzureActiveDirectory and event.category:authentication and o365.audit.LogonError:\"SsoArtifactInvalidOrExpired\"\n","threshold":{"field":["user.id"],"value":5},"type":"threshold","index":["filebeat-*","logs-o365*"],"language":"kuery","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.LogonError","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"O365 Excessive Single Sign-On Logon Errors v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies accounts with a high number of single sign-on (SSO) logon errors. Excessive logon errors may indicate an attempt to brute force a password or SSO token.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic","Austin Songer"],"false_positives":["Automated processes that attempt to authenticate using expired credentials and unbounded retries may lead to false positives."],"from":"now-20m","tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:o365.audit and event.provider:AzureActiveDirectory and event.category:authentication and o365.audit.LogonError:\"SsoArtifactInvalidOrExpired\"\n","threshold":{"field":["user.id"],"value":5},"type":"threshold","index":["filebeat-*","logs-o365*"],"language":"kuery","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.LogonError","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"2de10e77-c144-4e69-afb7-344e7127abd0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/2de87d72-ee0c-43e2-b975-5f0b029ac600.json b/fleet-packages/detection-rules-composite/kibana/security_rule/2de87d72-ee0c-43e2-b975-5f0b029ac600.json new file mode 100644 index 0000000000000..e6b06da1cee7b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/2de87d72-ee0c-43e2-b975-5f0b029ac600.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"2de87d72-ee0c-43e2-b975-5f0b029ac600","versions":[{"name":"Wireless Credential Dumping using Netsh Command v1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to dump Wireless saved access keys in clear text using the Windows built-in utility Netsh.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://learn.microsoft.com/en-us/windows-server/networking/technologies/netsh/netsh-contexts","https://www.geeksforgeeks.org/how-to-find-the-wi-fi-password-using-cmd-in-windows/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Discovery","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"netsh.exe\" or process.pe.original_file_name == \"netsh.exe\") and\n process.args : \"wlan\" and process.args : \"key*clear\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Wireless Credential Dumping using Netsh Command v1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to dump Wireless saved access keys in clear text using the Windows built-in utility Netsh.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://learn.microsoft.com/en-us/windows-server/networking/technologies/netsh/netsh-contexts","https://www.geeksforgeeks.org/how-to-find-the-wi-fi-password-using-cmd-in-windows/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Discovery","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"netsh.exe\" or process.pe.original_file_name == \"netsh.exe\") and\n process.args : \"wlan\" and process.args : \"key*clear\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Wireless Credential Dumping using Netsh Command v1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to dump Wireless saved access keys in clear text using the Windows built-in utility Netsh.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://learn.microsoft.com/en-us/windows-server/networking/technologies/netsh/netsh-contexts","https://www.geeksforgeeks.org/how-to-find-the-wi-fi-password-using-cmd-in-windows/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Discovery","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"netsh.exe\" or process.pe.original_file_name == \"netsh.exe\") and\n process.args : \"wlan\" and process.args : \"key*clear\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"2de87d72-ee0c-43e2-b975-5f0b029ac600","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/2e1e835d-01e5-48ca-b9fc-7a61f7f11902.json b/fleet-packages/detection-rules-composite/kibana/security_rule/2e1e835d-01e5-48ca-b9fc-7a61f7f11902.json new file mode 100644 index 0000000000000..cfd455ca69a8a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/2e1e835d-01e5-48ca-b9fc-7a61f7f11902.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"2e1e835d-01e5-48ca-b9fc-7a61f7f11902","versions":[{"name":"Renamed AutoIt Scripts Interpreter v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious AutoIt process execution. Malware written as an AutoIt script tends to rename the AutoIt executable to avoid detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.003","name":"Rename System Utilities","reference":"https://attack.mitre.org/techniques/T1036/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name : \"AutoIt*.exe\" and not process.name : \"AutoIt*.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Renamed AutoIt Scripts Interpreter v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious AutoIt process execution. Malware written as an AutoIt script tends to rename the AutoIt executable to avoid detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.003","name":"Rename System Utilities","reference":"https://attack.mitre.org/techniques/T1036/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name : \"AutoIt*.exe\" and not process.name : \"AutoIt*.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Renamed AutoIt Scripts Interpreter v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious AutoIt process execution. Malware written as an AutoIt script tends to rename the AutoIt executable to avoid detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.003","name":"Rename System Utilities","reference":"https://attack.mitre.org/techniques/T1036/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name : \"AutoIt*.exe\" and not process.name : \"AutoIt*.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"2e1e835d-01e5-48ca-b9fc-7a61f7f11902","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/2e29e96a-b67c-455a-afe4-de6183431d0d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/2e29e96a-b67c-455a-afe4-de6183431d0d.json new file mode 100644 index 0000000000000..668fca053816b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/2e29e96a-b67c-455a-afe4-de6183431d0d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"2e29e96a-b67c-455a-afe4-de6183431d0d","versions":[{"name":"Potential Process Injection via PowerShell v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of Windows API functions that are commonly abused by malware and security tools to load malicious code or inject it into remote processes.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Process Injection via PowerShell\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nPowerShell also has solid capabilities to make the interaction with the Win32 API in an uncomplicated and reliable way,\nlike the execution of inline C# code, PSReflect, Get-ProcAddress, etc.\n\nRed Team tooling and malware developers take advantage of these capabilities to develop stagers and loaders that inject\npayloads directly into the memory without touching the disk to circumvent file-based security protections.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Check if the imported function was executed and which process it targeted.\n- Check if the injected code can be retrieved (hardcoded in the script or on command line logs).\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate PowerShell scripts that make use of these functions."],"from":"now-9m","references":["https://github.com/EmpireProject/Empire/blob/master/data/module_source/management/Invoke-PSInject.ps1","https://github.com/EmpireProject/Empire/blob/master/data/module_source/management/Invoke-ReflectivePEInjection.ps1","https://github.com/BC-SECURITY/Empire/blob/master/empire/server/data/module_source/credentials/Invoke-Mimikatz.ps1","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/","subtechnique":[{"id":"T1055.001","name":"Dynamic-link Library Injection","reference":"https://attack.mitre.org/techniques/T1055/001/"},{"id":"T1055.002","name":"Portable Executable Injection","reference":"https://attack.mitre.org/techniques/T1055/002/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n (VirtualAlloc or VirtualAllocEx or VirtualProtect or LdrLoadDll or LoadLibrary or LoadLibraryA or\n LoadLibraryEx or GetProcAddress or OpenProcess or OpenProcessToken or AdjustTokenPrivileges) and\n (WriteProcessMemory or CreateRemoteThread or NtCreateThreadEx or CreateThread or QueueUserAPC or\n SuspendThread or ResumeThread or GetDelegateForFunctionPointer)\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},{"name":"Potential Process Injection via PowerShell v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of Windows API functions that are commonly abused by malware and security tools to load malicious code or inject it into remote processes.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Process Injection via PowerShell\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nPowerShell also has solid capabilities to make the interaction with the Win32 API in an uncomplicated and reliable way,\nlike the execution of inline C# code, PSReflect, Get-ProcAddress, etc.\n\nRed Team tooling and malware developers take advantage of these capabilities to develop stagers and loaders that inject\npayloads directly into the memory without touching the disk to circumvent file-based security protections.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Check if the imported function was executed and which process it targeted.\n- Check if the injected code can be retrieved (hardcoded in the script or on command line logs).\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate PowerShell scripts that make use of these functions."],"from":"now-9m","references":["https://github.com/EmpireProject/Empire/blob/master/data/module_source/management/Invoke-PSInject.ps1","https://github.com/EmpireProject/Empire/blob/master/data/module_source/management/Invoke-ReflectivePEInjection.ps1","https://github.com/BC-SECURITY/Empire/blob/master/empire/server/data/module_source/credentials/Invoke-Mimikatz.ps1","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/","subtechnique":[{"id":"T1055.001","name":"Dynamic-link Library Injection","reference":"https://attack.mitre.org/techniques/T1055/001/"},{"id":"T1055.002","name":"Portable Executable Injection","reference":"https://attack.mitre.org/techniques/T1055/002/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n (VirtualAlloc or VirtualAllocEx or VirtualProtect or LdrLoadDll or LoadLibrary or LoadLibraryA or\n LoadLibraryEx or GetProcAddress or OpenProcess or OpenProcessToken or AdjustTokenPrivileges) and\n (WriteProcessMemory or CreateRemoteThread or NtCreateThreadEx or CreateThread or QueueUserAPC or\n SuspendThread or ResumeThread or GetDelegateForFunctionPointer)\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},{"name":"Potential Process Injection via PowerShell v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of Windows API functions that are commonly abused by malware and security tools to load malicious code or inject it into remote processes.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Process Injection via PowerShell\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nPowerShell also has solid capabilities to make the interaction with the Win32 API in an uncomplicated and reliable way,\nlike the execution of inline C# code, PSReflect, Get-ProcAddress, etc.\n\nRed Team tooling and malware developers take advantage of these capabilities to develop stagers and loaders that inject\npayloads directly into the memory without touching the disk to circumvent file-based security protections.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Check if the imported function was executed and which process it targeted.\n- Check if the injected code can be retrieved (hardcoded in the script or on command line logs).\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate PowerShell scripts that make use of these functions."],"from":"now-9m","references":["https://github.com/EmpireProject/Empire/blob/master/data/module_source/management/Invoke-PSInject.ps1","https://github.com/EmpireProject/Empire/blob/master/data/module_source/management/Invoke-ReflectivePEInjection.ps1","https://github.com/BC-SECURITY/Empire/blob/master/empire/server/data/module_source/credentials/Invoke-Mimikatz.ps1","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/","subtechnique":[{"id":"T1055.001","name":"Dynamic-link Library Injection","reference":"https://attack.mitre.org/techniques/T1055/001/"},{"id":"T1055.002","name":"Portable Executable Injection","reference":"https://attack.mitre.org/techniques/T1055/002/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n (VirtualAlloc or VirtualAllocEx or VirtualProtect or LdrLoadDll or LoadLibrary or LoadLibraryA or\n LoadLibraryEx or GetProcAddress or OpenProcess or OpenProcessToken or AdjustTokenPrivileges) and\n (WriteProcessMemory or CreateRemoteThread or NtCreateThreadEx or CreateThread or QueueUserAPC or\n SuspendThread or ResumeThread or GetDelegateForFunctionPointer)\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"}]},"id":"2e29e96a-b67c-455a-afe4-de6183431d0d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/2e580225-2a58-48ef-938b-572933be06fe.json b/fleet-packages/detection-rules-composite/kibana/security_rule/2e580225-2a58-48ef-938b-572933be06fe.json new file mode 100644 index 0000000000000..401ae553b7990 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/2e580225-2a58-48ef-938b-572933be06fe.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"2e580225-2a58-48ef-938b-572933be06fe","versions":[{"name":"Halfbaked Command and Control Beacon v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Halfbaked is a malware family used to establish persistence in a contested network. This rule detects a network activity algorithm leveraged by Halfbaked implant beacons for command and control.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Threat intel\n\nThis activity has been observed in FIN7 campaigns.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This rule should be tailored to exclude systems, either as sources or destinations, in which this behavior is expected."],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2017/04/fin7-phishing-lnk.html","https://attack.mitre.org/software/S0151/"],"tags":["Elastic","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/"},{"id":"T1568","name":"Dynamic Resolution","reference":"https://attack.mitre.org/techniques/T1568/","subtechnique":[{"id":"T1568.002","name":"Domain Generation Algorithms","reference":"https://attack.mitre.org/techniques/T1568/002/"}]}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"lucene","query":"event.category:(network OR network_traffic) AND network.protocol:http AND\n network.transport:tcp AND url.full:/http:\\/\\/[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}\\/cd/ AND\n destination.port:(53 OR 80 OR 8080 OR 443)\n"},{"name":"Halfbaked Command and Control Beacon v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Halfbaked is a malware family used to establish persistence in a contested network. This rule detects a network activity algorithm leveraged by Halfbaked implant beacons for command and control.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Threat intel\n\nThis activity has been observed in FIN7 campaigns.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This rule should be tailored to exclude systems, either as sources or destinations, in which this behavior is expected."],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2017/04/fin7-phishing-lnk.html","https://attack.mitre.org/software/S0151/"],"tags":["Elastic","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/"},{"id":"T1568","name":"Dynamic Resolution","reference":"https://attack.mitre.org/techniques/T1568/","subtechnique":[{"id":"T1568.002","name":"Domain Generation Algorithms","reference":"https://attack.mitre.org/techniques/T1568/002/"}]}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"lucene","query":"event.category:(network OR network_traffic) AND network.protocol:http AND\n network.transport:tcp AND url.full:/http:\\/\\/[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}\\/cd/ AND\n destination.port:(53 OR 80 OR 8080 OR 443)\n"},{"name":"Halfbaked Command and Control Beacon v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Halfbaked is a malware family used to establish persistence in a contested network. This rule detects a network activity algorithm leveraged by Halfbaked implant beacons for command and control.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Threat intel\n\nThis activity has been observed in FIN7 campaigns.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This rule should be tailored to exclude systems, either as sources or destinations, in which this behavior is expected."],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2017/04/fin7-phishing-lnk.html","https://attack.mitre.org/software/S0151/"],"tags":["Elastic","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/"},{"id":"T1568","name":"Dynamic Resolution","reference":"https://attack.mitre.org/techniques/T1568/","subtechnique":[{"id":"T1568.002","name":"Domain Generation Algorithms","reference":"https://attack.mitre.org/techniques/T1568/002/"}]}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"lucene","query":"event.category:(network OR network_traffic) AND network.protocol:http AND\n network.transport:tcp AND url.full:/http:\\/\\/[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}\\/cd/ AND\n destination.port:(53 OR 80 OR 8080 OR 443)\n"}]},"id":"2e580225-2a58-48ef-938b-572933be06fe","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/2edc8076-291e-41e9-81e4-e3fcbc97ae5e.json b/fleet-packages/detection-rules-composite/kibana/security_rule/2edc8076-291e-41e9-81e4-e3fcbc97ae5e.json new file mode 100644 index 0000000000000..93223a12874dd --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/2edc8076-291e-41e9-81e4-e3fcbc97ae5e.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"2edc8076-291e-41e9-81e4-e3fcbc97ae5e","versions":[{"name":"Creation of a Hidden Local User Account v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a hidden local user account by appending the dollar sign to the account name. This is sometimes done by attackers to increase access to a system and avoid appearing in the results of accounts listing using the net users command.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Creation of a Hidden Local User Account\n\nAttackers can create accounts ending with a `$` symbol to make the account hidden to user enumeration utilities and\nbypass detections that identify computer accounts by this pattern to apply filters.\n\nThis rule uses registry events to identify the creation of local hidden accounts.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positive (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Delete the hidden account.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.menasec.net/2019/02/threat-hunting-6-hiding-in-plain-sights_8.html","https://github.com/CyberMonitor/APT_CyberCriminal_Campagin_Collections/tree/master/2020/2020.12.15.Lazarus_Campaign"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/","subtechnique":[{"id":"T1136.001","name":"Local Account","reference":"https://attack.mitre.org/techniques/T1136/001/"}]}]}],"language":"eql","query":"registry where registry.path : \"HKLM\\\\SAM\\\\SAM\\\\Domains\\\\Account\\\\Users\\\\Names\\\\*$\\\\\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Creation of a Hidden Local User Account v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a hidden local user account by appending the dollar sign to the account name. This is sometimes done by attackers to increase access to a system and avoid appearing in the results of accounts listing using the net users command.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Creation of a Hidden Local User Account\n\nAttackers can create accounts ending with a `$` symbol to make the account hidden to user enumeration utilities and\nbypass detections that identify computer accounts by this pattern to apply filters.\n\nThis rule uses registry events to identify the creation of local hidden accounts.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positive (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Delete the hidden account.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.menasec.net/2019/02/threat-hunting-6-hiding-in-plain-sights_8.html","https://github.com/CyberMonitor/APT_CyberCriminal_Campagin_Collections/tree/master/2020/2020.12.15.Lazarus_Campaign"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/","subtechnique":[{"id":"T1136.001","name":"Local Account","reference":"https://attack.mitre.org/techniques/T1136/001/"}]}]}],"language":"eql","query":"registry where registry.path : \"HKLM\\\\SAM\\\\SAM\\\\Domains\\\\Account\\\\Users\\\\Names\\\\*$\\\\\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Creation of a Hidden Local User Account v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a hidden local user account by appending the dollar sign to the account name. This is sometimes done by attackers to increase access to a system and avoid appearing in the results of accounts listing using the net users command.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Creation of a Hidden Local User Account\n\nAttackers can create accounts ending with a `$` symbol to make the account hidden to user enumeration utilities and\nbypass detections that identify computer accounts by this pattern to apply filters.\n\nThis rule uses registry events to identify the creation of local hidden accounts.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positive (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Delete the hidden account.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.menasec.net/2019/02/threat-hunting-6-hiding-in-plain-sights_8.html","https://github.com/CyberMonitor/APT_CyberCriminal_Campagin_Collections/tree/master/2020/2020.12.15.Lazarus_Campaign"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/","subtechnique":[{"id":"T1136.001","name":"Local Account","reference":"https://attack.mitre.org/techniques/T1136/001/"}]}]}],"language":"eql","query":"registry where registry.path : \"HKLM\\\\SAM\\\\SAM\\\\Domains\\\\Account\\\\Users\\\\Names\\\\*$\\\\\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"2edc8076-291e-41e9-81e4-e3fcbc97ae5e","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/2f2f4939-0b34-40c2-a0a3-844eb7889f43.json b/fleet-packages/detection-rules-composite/kibana/security_rule/2f2f4939-0b34-40c2-a0a3-844eb7889f43.json new file mode 100644 index 0000000000000..ccd92ed49bb25 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/2f2f4939-0b34-40c2-a0a3-844eb7889f43.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"2f2f4939-0b34-40c2-a0a3-844eb7889f43","versions":[{"name":"PowerShell Suspicious Script with Audio Capture Capabilities v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects PowerShell scripts that can record audio, a common feature in popular post-exploitation tooling.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Suspicious Script with Audio Capture Capabilities\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can use PowerShell to interact with the Windows API with the intent of capturing audio from input devices\nconnected to the victim's computer.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Investigate if the script stores the recorded data locally and determine if anything was recorded.\n- Investigate if the script contains exfiltration capabilities and the destination of this exfiltration.\n- Assess network data to determine if the host communicated with the exfiltration server.\n\n### False positive analysis\n\n- Regular users should not need scripts to capture audio, which makes false positives unlikely. In the case of\nauthorized benign true positives (B-TPs), exceptions can be added.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- The response must be prioritized if this alert involves key executives or potentially valuable targets for espionage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Get-MicrophoneAudio.ps1"],"tags":["Elastic","Host","Windows","Threat Detection","Collection","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1123","name":"Audio Capture","reference":"https://attack.mitre.org/techniques/T1123/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n \"Get-MicrophoneAudio\" or (waveInGetNumDevs and mciSendStringA)\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},{"name":"PowerShell Suspicious Script with Audio Capture Capabilities v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects PowerShell scripts that can record audio, a common feature in popular post-exploitation tooling.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Suspicious Script with Audio Capture Capabilities\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can use PowerShell to interact with the Windows API with the intent of capturing audio from input devices\nconnected to the victim's computer.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Investigate if the script stores the recorded data locally and determine if anything was recorded.\n- Investigate if the script contains exfiltration capabilities and the destination of this exfiltration.\n- Assess network data to determine if the host communicated with the exfiltration server.\n\n### False positive analysis\n\n- Regular users should not need scripts to capture audio, which makes false positives unlikely. In the case of\nauthorized benign true positives (B-TPs), exceptions can be added.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- The response must be prioritized if this alert involves key executives or potentially valuable targets for espionage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Get-MicrophoneAudio.ps1"],"tags":["Elastic","Host","Windows","Threat Detection","Collection","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1123","name":"Audio Capture","reference":"https://attack.mitre.org/techniques/T1123/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n \"Get-MicrophoneAudio\" or (waveInGetNumDevs and mciSendStringA)\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},{"name":"PowerShell Suspicious Script with Audio Capture Capabilities v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects PowerShell scripts that can record audio, a common feature in popular post-exploitation tooling.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Suspicious Script with Audio Capture Capabilities\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can use PowerShell to interact with the Windows API with the intent of capturing audio from input devices\nconnected to the victim's computer.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Investigate if the script stores the recorded data locally and determine if anything was recorded.\n- Investigate if the script contains exfiltration capabilities and the destination of this exfiltration.\n- Assess network data to determine if the host communicated with the exfiltration server.\n\n### False positive analysis\n\n- Regular users should not need scripts to capture audio, which makes false positives unlikely. In the case of\nauthorized benign true positives (B-TPs), exceptions can be added.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- The response must be prioritized if this alert involves key executives or potentially valuable targets for espionage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Get-MicrophoneAudio.ps1"],"tags":["Elastic","Host","Windows","Threat Detection","Collection","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1123","name":"Audio Capture","reference":"https://attack.mitre.org/techniques/T1123/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n \"Get-MicrophoneAudio\" or (waveInGetNumDevs and mciSendStringA)\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"}]},"id":"2f2f4939-0b34-40c2-a0a3-844eb7889f43","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/2f8a1226-5720-437d-9c20-e0029deb6194.json b/fleet-packages/detection-rules-composite/kibana/security_rule/2f8a1226-5720-437d-9c20-e0029deb6194.json new file mode 100644 index 0000000000000..26aa0880d0255 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/2f8a1226-5720-437d-9c20-e0029deb6194.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"2f8a1226-5720-437d-9c20-e0029deb6194","versions":[{"name":"Attempt to Disable Syslog Service v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may attempt to disable the syslog service in an attempt to an attempt to disrupt event logging and evade detection by security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n ((process.name:service and process.args:stop) or\n (process.name:chkconfig and process.args:off) or\n (process.name:systemctl and process.args:(disable or stop or kill)))\n and process.args:(syslog or rsyslog or \"syslog-ng\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Attempt to Disable Syslog Service v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may attempt to disable the syslog service in an attempt to an attempt to disrupt event logging and evade detection by security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n ((process.name:service and process.args:stop) or\n (process.name:chkconfig and process.args:off) or\n (process.name:systemctl and process.args:(disable or stop or kill)))\n and process.args:(syslog or rsyslog or \"syslog-ng\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Attempt to Disable Syslog Service v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may attempt to disable the syslog service in an attempt to an attempt to disrupt event logging and evade detection by security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n ((process.name:service and process.args:stop) or\n (process.name:chkconfig and process.args:off) or\n (process.name:systemctl and process.args:(disable or stop or kill)))\n and process.args:(syslog or rsyslog or \"syslog-ng\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"2f8a1226-5720-437d-9c20-e0029deb6194","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/2fba96c0-ade5-4bce-b92f-a5df2509da3f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/2fba96c0-ade5-4bce-b92f-a5df2509da3f.json new file mode 100644 index 0000000000000..474737aeea9ed --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/2fba96c0-ade5-4bce-b92f-a5df2509da3f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"2fba96c0-ade5-4bce-b92f-a5df2509da3f","versions":[{"name":"Startup Folder Persistence via Unsigned Process v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies files written or modified in the startup folder by unsigned processes. Adversaries may abuse this technique to maintain persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Startup Folder Persistence via Unsigned Process\n\nThe Windows Startup folder is a special folder in Windows. Programs added to this folder are executed during account\nlogon, without user interaction, providing an excellent way for attackers to maintain persistence.\n\nThis rule looks for unsigned processes writing to the Startup folder locations.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- There is a high possibility of benign legitimate programs being added to Startup folders. This activity could be based\non new software installations, patches, or any kind of network administrator related activity. Before undertaking further\ninvestigation, verify that this activity is not benign.\n\n### Related rules\n\n- Suspicious Startup Shell Folder Modification - c8b150f0-0164-475b-a75e-74b47800a9ff\n- Persistent Scripts in the Startup Directory - f7c4dc5a-a58d-491d-9f14-9b66507121c0\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan=5s\n [process where event.type == \"start\" and process.code_signature.trusted == false and\n /* suspicious paths can be added here */\n process.executable : (\"C:\\\\Users\\\\*.exe\",\n \"C:\\\\ProgramData\\\\*.exe\",\n \"C:\\\\Windows\\\\Temp\\\\*.exe\",\n \"C:\\\\Windows\\\\Tasks\\\\*.exe\",\n \"C:\\\\Intel\\\\*.exe\",\n \"C:\\\\PerfLogs\\\\*.exe\")\n ]\n [file where event.type != \"deletion\" and user.domain != \"NT AUTHORITY\" and\n file.path : (\"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\\\\*\",\n \"C:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\StartUp\\\\*\")\n ]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}]},{"name":"Startup Folder Persistence via Unsigned Process v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies files written or modified in the startup folder by unsigned processes. Adversaries may abuse this technique to maintain persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Startup Folder Persistence via Unsigned Process\n\nThe Windows Startup folder is a special folder in Windows. Programs added to this folder are executed during account\nlogon, without user interaction, providing an excellent way for attackers to maintain persistence.\n\nThis rule looks for unsigned processes writing to the Startup folder locations.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- There is a high possibility of benign legitimate programs being added to Startup folders. This activity could be based\non new software installations, patches, or any kind of network administrator related activity. Before undertaking further\ninvestigation, verify that this activity is not benign.\n\n### Related rules\n\n- Suspicious Startup Shell Folder Modification - c8b150f0-0164-475b-a75e-74b47800a9ff\n- Persistent Scripts in the Startup Directory - f7c4dc5a-a58d-491d-9f14-9b66507121c0\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan=5s\n [process where event.type == \"start\" and process.code_signature.trusted == false and\n /* suspicious paths can be added here */\n process.executable : (\"C:\\\\Users\\\\*.exe\",\n \"C:\\\\ProgramData\\\\*.exe\",\n \"C:\\\\Windows\\\\Temp\\\\*.exe\",\n \"C:\\\\Windows\\\\Tasks\\\\*.exe\",\n \"C:\\\\Intel\\\\*.exe\",\n \"C:\\\\PerfLogs\\\\*.exe\")\n ]\n [file where event.type != \"deletion\" and user.domain != \"NT AUTHORITY\" and\n file.path : (\"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\\\\*\",\n \"C:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\StartUp\\\\*\")\n ]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}]},{"name":"Startup Folder Persistence via Unsigned Process v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies files written or modified in the startup folder by unsigned processes. Adversaries may abuse this technique to maintain persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Startup Folder Persistence via Unsigned Process\n\nThe Windows Startup folder is a special folder in Windows. Programs added to this folder are executed during account\nlogon, without user interaction, providing an excellent way for attackers to maintain persistence.\n\nThis rule looks for unsigned processes writing to the Startup folder locations.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- There is a high possibility of benign legitimate programs being added to Startup folders. This activity could be based\non new software installations, patches, or any kind of network administrator related activity. Before undertaking further\ninvestigation, verify that this activity is not benign.\n\n### Related rules\n\n- Suspicious Startup Shell Folder Modification - c8b150f0-0164-475b-a75e-74b47800a9ff\n- Persistent Scripts in the Startup Directory - f7c4dc5a-a58d-491d-9f14-9b66507121c0\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan=5s\n [process where event.type == \"start\" and process.code_signature.trusted == false and\n /* suspicious paths can be added here */\n process.executable : (\"C:\\\\Users\\\\*.exe\",\n \"C:\\\\ProgramData\\\\*.exe\",\n \"C:\\\\Windows\\\\Temp\\\\*.exe\",\n \"C:\\\\Windows\\\\Tasks\\\\*.exe\",\n \"C:\\\\Intel\\\\*.exe\",\n \"C:\\\\PerfLogs\\\\*.exe\")\n ]\n [file where event.type != \"deletion\" and user.domain != \"NT AUTHORITY\" and\n file.path : (\"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\\\\*\",\n \"C:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\StartUp\\\\*\")\n ]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}]}]},"id":"2fba96c0-ade5-4bce-b92f-a5df2509da3f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/2ffa1f1e-b6db-47fa-994b-1512743847eb.json b/fleet-packages/detection-rules-composite/kibana/security_rule/2ffa1f1e-b6db-47fa-994b-1512743847eb.json new file mode 100644 index 0000000000000..d157599beaeba --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/2ffa1f1e-b6db-47fa-994b-1512743847eb.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"2ffa1f1e-b6db-47fa-994b-1512743847eb","versions":[{"name":"Windows Defender Disabled via Registry Modification v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to the Windows Defender registry settings to disable the service or set the service to be started manually.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Defender Disabled via Registry Modification\n\nMicrosoft Windows Defender is an antivirus product built into Microsoft Windows, which makes it popular across multiple\nenvironments. Disabling it is a common step in threat actor playbooks.\n\nThis rule monitors the registry for configurations that disable Windows Defender or the start of its service.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check if this operation was approved and performed according to the organization's change management policy.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity,\nthe configuration is justified (for example, it is being used to deploy other security solutions or troubleshooting),\nand no other suspicious activity has been observed.\n\n### Related rules\n\n- Disabling Windows Defender Security Settings via PowerShell - c8cccb06-faf2-4cd5-886e-2c9636cfcb87\n- Microsoft Windows Defender Tampering - fe794edd-487f-4a90-b285-3ee54f2af2d3\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Re-enable Windows Defender and restore the service configurations to automatic start.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://thedfirreport.com/2020/12/13/defender-control/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"},{"id":"T1562.006","name":"Indicator Blocking","reference":"https://attack.mitre.org/techniques/T1562/006/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n (\n (\n registry.path: (\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\DisableAntiSpyware\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\DisableAntiSpyware\"\n ) and\n registry.data.strings: (\"1\", \"0x00000001\")\n ) or\n (\n registry.path: (\n \"HKLM\\\\System\\\\*ControlSet*\\\\Services\\\\WinDefend\\\\Start\",\n \"\\\\REGISTRY\\\\MACHINE\\\\System\\\\*ControlSet*\\\\Services\\\\WinDefend\\\\Start\"\n ) and\n registry.data.strings in (\"3\", \"4\", \"0x00000003\", \"0x00000004\")\n )\n ) and\n\n not process.executable :\n (\"?:\\\\WINDOWS\\\\system32\\\\services.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Program Files (x86)\\\\Trend Micro\\\\Security Agent\\\\NTRmv.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Windows Defender Disabled via Registry Modification v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to the Windows Defender registry settings to disable the service or set the service to be started manually.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Defender Disabled via Registry Modification\n\nMicrosoft Windows Defender is an antivirus product built into Microsoft Windows, which makes it popular across multiple\nenvironments. Disabling it is a common step in threat actor playbooks.\n\nThis rule monitors the registry for configurations that disable Windows Defender or the start of its service.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check if this operation was approved and performed according to the organization's change management policy.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity,\nthe configuration is justified (for example, it is being used to deploy other security solutions or troubleshooting),\nand no other suspicious activity has been observed.\n\n### Related rules\n\n- Disabling Windows Defender Security Settings via PowerShell - c8cccb06-faf2-4cd5-886e-2c9636cfcb87\n- Microsoft Windows Defender Tampering - fe794edd-487f-4a90-b285-3ee54f2af2d3\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Re-enable Windows Defender and restore the service configurations to automatic start.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://thedfirreport.com/2020/12/13/defender-control/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"},{"id":"T1562.006","name":"Indicator Blocking","reference":"https://attack.mitre.org/techniques/T1562/006/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n (\n (\n registry.path: (\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\DisableAntiSpyware\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\DisableAntiSpyware\"\n ) and\n registry.data.strings: (\"1\", \"0x00000001\")\n ) or\n (\n registry.path: (\n \"HKLM\\\\System\\\\*ControlSet*\\\\Services\\\\WinDefend\\\\Start\",\n \"\\\\REGISTRY\\\\MACHINE\\\\System\\\\*ControlSet*\\\\Services\\\\WinDefend\\\\Start\"\n ) and\n registry.data.strings in (\"3\", \"4\", \"0x00000003\", \"0x00000004\")\n )\n ) and\n\n not process.executable :\n (\"?:\\\\WINDOWS\\\\system32\\\\services.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Program Files (x86)\\\\Trend Micro\\\\Security Agent\\\\NTRmv.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Windows Defender Disabled via Registry Modification v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to the Windows Defender registry settings to disable the service or set the service to be started manually.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Defender Disabled via Registry Modification\n\nMicrosoft Windows Defender is an antivirus product built into Microsoft Windows, which makes it popular across multiple\nenvironments. Disabling it is a common step in threat actor playbooks.\n\nThis rule monitors the registry for configurations that disable Windows Defender or the start of its service.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check if this operation was approved and performed according to the organization's change management policy.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity,\nthe configuration is justified (for example, it is being used to deploy other security solutions or troubleshooting),\nand no other suspicious activity has been observed.\n\n### Related rules\n\n- Disabling Windows Defender Security Settings via PowerShell - c8cccb06-faf2-4cd5-886e-2c9636cfcb87\n- Microsoft Windows Defender Tampering - fe794edd-487f-4a90-b285-3ee54f2af2d3\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Re-enable Windows Defender and restore the service configurations to automatic start.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://thedfirreport.com/2020/12/13/defender-control/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"},{"id":"T1562.006","name":"Indicator Blocking","reference":"https://attack.mitre.org/techniques/T1562/006/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n (\n (\n registry.path: (\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\DisableAntiSpyware\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\DisableAntiSpyware\"\n ) and\n registry.data.strings: (\"1\", \"0x00000001\")\n ) or\n (\n registry.path: (\n \"HKLM\\\\System\\\\*ControlSet*\\\\Services\\\\WinDefend\\\\Start\",\n \"\\\\REGISTRY\\\\MACHINE\\\\System\\\\*ControlSet*\\\\Services\\\\WinDefend\\\\Start\"\n ) and\n registry.data.strings in (\"3\", \"4\", \"0x00000003\", \"0x00000004\")\n )\n ) and\n\n not process.executable :\n (\"?:\\\\WINDOWS\\\\system32\\\\services.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Program Files (x86)\\\\Trend Micro\\\\Security Agent\\\\NTRmv.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"2ffa1f1e-b6db-47fa-994b-1512743847eb","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/30562697-9859-4ae0-a8c5-dab45d664170.json b/fleet-packages/detection-rules-composite/kibana/security_rule/30562697-9859-4ae0-a8c5-dab45d664170.json new file mode 100644 index 0000000000000..71e1c7fdda873 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/30562697-9859-4ae0-a8c5-dab45d664170.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"30562697-9859-4ae0-a8c5-dab45d664170","versions":[{"name":"GCP Firewall Rule Creation v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a firewall rule is created in Google Cloud Platform (GCP) for Virtual Private Cloud (VPC) or App Engine. These firewall rules can be configured to allow or deny connections to or from virtual machine (VM) instances or specific applications. An adversary may create a new firewall rule in order to weaken their target's security controls and allow more permissive ingress or egress traffic flows for their benefit.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Firewall rules may be created by system administrators. Verify that the firewall configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/firewalls","https://cloud.google.com/appengine/docs/standard/python/understanding-firewalls"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:(*.compute.firewalls.insert or google.appengine.*.Firewall.Create*Rule)\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Firewall Rule Creation v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a firewall rule is created in Google Cloud Platform (GCP) for Virtual Private Cloud (VPC) or App Engine. These firewall rules can be configured to allow or deny connections to or from virtual machine (VM) instances or specific applications. An adversary may create a new firewall rule in order to weaken their target's security controls and allow more permissive ingress or egress traffic flows for their benefit.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Firewall rules may be created by system administrators. Verify that the firewall configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/firewalls","https://cloud.google.com/appengine/docs/standard/python/understanding-firewalls"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:(*.compute.firewalls.insert or google.appengine.*.Firewall.Create*Rule)\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Firewall Rule Creation v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a firewall rule is created in Google Cloud Platform (GCP) for Virtual Private Cloud (VPC) or App Engine. These firewall rules can be configured to allow or deny connections to or from virtual machine (VM) instances or specific applications. An adversary may create a new firewall rule in order to weaken their target's security controls and allow more permissive ingress or egress traffic flows for their benefit.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Firewall rules may be created by system administrators. Verify that the firewall configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/firewalls","https://cloud.google.com/appengine/docs/standard/python/understanding-firewalls"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:(*.compute.firewalls.insert or google.appengine.*.Firewall.Create*Rule)\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"30562697-9859-4ae0-a8c5-dab45d664170","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/3115bd2c-0baa-4df0-80ea-45e474b5ef93.json b/fleet-packages/detection-rules-composite/kibana/security_rule/3115bd2c-0baa-4df0-80ea-45e474b5ef93.json new file mode 100644 index 0000000000000..d780a3978b07e --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/3115bd2c-0baa-4df0-80ea-45e474b5ef93.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"3115bd2c-0baa-4df0-80ea-45e474b5ef93","versions":[{"name":"Agent Spoofing - Mismatched Agent ID v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects events that have a mismatch on the expected event agent ID. The status \"agent_id_mismatch\" occurs when the expected agent ID associated with the API key does not match the actual agent ID in an event. This could indicate attempts to spoof events in order to masquerade actual activity to evade detection.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This is meant to run only on datasources using Elastic Agent 7.14+ since versions prior to that will be missing the necessary field, resulting in false positives."],"from":"now-9m","tags":["Elastic","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"type":"query","index":["logs-*","metrics-*","traces-*"],"language":"kuery","query":"event.agent_id_status:agent_id_mismatch\n","required_fields":[{"ecs":true,"name":"event.agent_id_status","type":"keyword"}]},{"name":"Agent Spoofing - Mismatched Agent ID v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects events that have a mismatch on the expected event agent ID. The status \"agent_id_mismatch\" occurs when the expected agent ID associated with the API key does not match the actual agent ID in an event. This could indicate attempts to spoof events in order to masquerade actual activity to evade detection.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This is meant to run only on datasources using Elastic Agent 7.14+ since versions prior to that will be missing the necessary field, resulting in false positives."],"from":"now-9m","tags":["Elastic","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"type":"query","index":["logs-*","metrics-*","traces-*"],"language":"kuery","query":"event.agent_id_status:agent_id_mismatch\n","required_fields":[{"ecs":true,"name":"event.agent_id_status","type":"keyword"}]},{"name":"Agent Spoofing - Mismatched Agent ID v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects events that have a mismatch on the expected event agent ID. The status \"agent_id_mismatch\" occurs when the expected agent ID associated with the API key does not match the actual agent ID in an event. This could indicate attempts to spoof events in order to masquerade actual activity to evade detection.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This is meant to run only on datasources using Elastic Agent 7.14+ since versions prior to that will be missing the necessary field, resulting in false positives."],"from":"now-9m","tags":["Elastic","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"type":"query","index":["logs-*","metrics-*","traces-*"],"language":"kuery","query":"event.agent_id_status:agent_id_mismatch\n","required_fields":[{"ecs":true,"name":"event.agent_id_status","type":"keyword"}]}]},"id":"3115bd2c-0baa-4df0-80ea-45e474b5ef93","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/31295df3-277b-4c56-a1fb-84e31b4222a9.json b/fleet-packages/detection-rules-composite/kibana/security_rule/31295df3-277b-4c56-a1fb-84e31b4222a9.json new file mode 100644 index 0000000000000..cf559a146c353 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/31295df3-277b-4c56-a1fb-84e31b4222a9.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"31295df3-277b-4c56-a1fb-84e31b4222a9","versions":[{"name":"Inbound Connection to an Unsecure Elasticsearch Node v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Elasticsearch nodes that do not have Transport Layer Security (TLS), and/or lack authentication, and are accepting inbound network connections over the default Elasticsearch port.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If you have front-facing proxies that provide authentication and TLS, this rule would need to be tuned to eliminate the source IP address of your reverse-proxy."],"from":"now-9m","references":["https://www.elastic.co/guide/en/elasticsearch/reference/current/configuring-security.html","https://www.elastic.co/guide/en/beats/packetbeat/current/packetbeat-http-options.html#_send_all_headers"],"tags":["Elastic","Network","Threat Detection","Initial Access","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"lucene","query":"event.category:network_traffic AND network.protocol:http AND status:OK AND destination.port:9200 AND network.direction:inbound AND NOT http.response.headers.content-type:\"image/x-icon\" AND NOT _exists_:http.request.headers.authorization\n","setup":"This rule requires the addition of port `9200` and `send_all_headers` to the `HTTP` protocol configuration in `packetbeat.yml`. See the References section for additional configuration documentation."},{"name":"Inbound Connection to an Unsecure Elasticsearch Node v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Elasticsearch nodes that do not have Transport Layer Security (TLS), and/or lack authentication, and are accepting inbound network connections over the default Elasticsearch port.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If you have front-facing proxies that provide authentication and TLS, this rule would need to be tuned to eliminate the source IP address of your reverse-proxy."],"from":"now-9m","references":["https://www.elastic.co/guide/en/elasticsearch/reference/current/configuring-security.html","https://www.elastic.co/guide/en/beats/packetbeat/current/packetbeat-http-options.html#_send_all_headers"],"tags":["Elastic","Network","Threat Detection","Initial Access","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"lucene","query":"event.category:network_traffic AND network.protocol:http AND status:OK AND destination.port:9200 AND network.direction:inbound AND NOT http.response.headers.content-type:\"image/x-icon\" AND NOT _exists_:http.request.headers.authorization\n","setup":"This rule requires the addition of port `9200` and `send_all_headers` to the `HTTP` protocol configuration in `packetbeat.yml`. See the References section for additional configuration documentation."},{"name":"Inbound Connection to an Unsecure Elasticsearch Node v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Elasticsearch nodes that do not have Transport Layer Security (TLS), and/or lack authentication, and are accepting inbound network connections over the default Elasticsearch port.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If you have front-facing proxies that provide authentication and TLS, this rule would need to be tuned to eliminate the source IP address of your reverse-proxy."],"from":"now-9m","references":["https://www.elastic.co/guide/en/elasticsearch/reference/current/configuring-security.html","https://www.elastic.co/guide/en/beats/packetbeat/current/packetbeat-http-options.html#_send_all_headers"],"tags":["Elastic","Network","Threat Detection","Initial Access","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"lucene","query":"event.category:network_traffic AND network.protocol:http AND status:OK AND destination.port:9200 AND network.direction:inbound AND NOT http.response.headers.content-type:\"image/x-icon\" AND NOT _exists_:http.request.headers.authorization\n","setup":"This rule requires the addition of port `9200` and `send_all_headers` to the `HTTP` protocol configuration in `packetbeat.yml`. See the References section for additional configuration documentation."}]},"id":"31295df3-277b-4c56-a1fb-84e31b4222a9","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/31b4c719-f2b4-41f6-a9bd-fce93c2eaf62.json b/fleet-packages/detection-rules-composite/kibana/security_rule/31b4c719-f2b4-41f6-a9bd-fce93c2eaf62.json new file mode 100644 index 0000000000000..216d9a58c56a9 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/31b4c719-f2b4-41f6-a9bd-fce93c2eaf62.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"31b4c719-f2b4-41f6-a9bd-fce93c2eaf62","versions":[{"name":"Bypass UAC via Event Viewer v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies User Account Control (UAC) bypass via eventvwr.exe. Attackers bypass UAC to stealthily execute code with elevated permissions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Bypass UAC via Event Viewer\n\nWindows User Account Control (UAC) allows a program to elevate its privileges (tracked as low to high integrity levels)\nto perform a task under administrator-level permissions, possibly by prompting the user for confirmation.\nUAC can deny an operation under high-integrity enforcement, or allow the user to perform the action if they are in the\nlocal administrators group and enter an administrator password when prompted.\n\nFor more information about the UAC and how it works, check the [official Microsoft docs page](https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/how-user-account-control-works).\n\nDuring startup, `eventvwr.exe` checks the registry value of the `HKCU\\Software\\Classes\\mscfile\\shell\\open\\command`\nregistry key for the location of `mmc.exe`, which is used to open the `eventvwr.msc` saved console file. If the location\nof another binary or script is added to this registry value, it will be executed as a high-integrity process without a\nUAC prompt being displayed to the user. This rule detects this UAC bypass by monitoring processes spawned by\n`eventvwr.exe` other than `mmc.exe` and `werfault.exe`.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"eventvwr.exe\" and\n not process.executable :\n (\"?:\\\\Windows\\\\SysWOW64\\\\mmc.exe\",\n \"?:\\\\Windows\\\\System32\\\\mmc.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerFault.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Bypass UAC via Event Viewer v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies User Account Control (UAC) bypass via eventvwr.exe. Attackers bypass UAC to stealthily execute code with elevated permissions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Bypass UAC via Event Viewer\n\nWindows User Account Control (UAC) allows a program to elevate its privileges (tracked as low to high integrity levels)\nto perform a task under administrator-level permissions, possibly by prompting the user for confirmation.\nUAC can deny an operation under high-integrity enforcement, or allow the user to perform the action if they are in the\nlocal administrators group and enter an administrator password when prompted.\n\nFor more information about the UAC and how it works, check the [official Microsoft docs page](https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/how-user-account-control-works).\n\nDuring startup, `eventvwr.exe` checks the registry value of the `HKCU\\Software\\Classes\\mscfile\\shell\\open\\command`\nregistry key for the location of `mmc.exe`, which is used to open the `eventvwr.msc` saved console file. If the location\nof another binary or script is added to this registry value, it will be executed as a high-integrity process without a\nUAC prompt being displayed to the user. This rule detects this UAC bypass by monitoring processes spawned by\n`eventvwr.exe` other than `mmc.exe` and `werfault.exe`.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"eventvwr.exe\" and\n not process.executable :\n (\"?:\\\\Windows\\\\SysWOW64\\\\mmc.exe\",\n \"?:\\\\Windows\\\\System32\\\\mmc.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerFault.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Bypass UAC via Event Viewer v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies User Account Control (UAC) bypass via eventvwr.exe. Attackers bypass UAC to stealthily execute code with elevated permissions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Bypass UAC via Event Viewer\n\nWindows User Account Control (UAC) allows a program to elevate its privileges (tracked as low to high integrity levels)\nto perform a task under administrator-level permissions, possibly by prompting the user for confirmation.\nUAC can deny an operation under high-integrity enforcement, or allow the user to perform the action if they are in the\nlocal administrators group and enter an administrator password when prompted.\n\nFor more information about the UAC and how it works, check the [official Microsoft docs page](https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/how-user-account-control-works).\n\nDuring startup, `eventvwr.exe` checks the registry value of the `HKCU\\Software\\Classes\\mscfile\\shell\\open\\command`\nregistry key for the location of `mmc.exe`, which is used to open the `eventvwr.msc` saved console file. If the location\nof another binary or script is added to this registry value, it will be executed as a high-integrity process without a\nUAC prompt being displayed to the user. This rule detects this UAC bypass by monitoring processes spawned by\n`eventvwr.exe` other than `mmc.exe` and `werfault.exe`.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"eventvwr.exe\" and\n not process.executable :\n (\"?:\\\\Windows\\\\SysWOW64\\\\mmc.exe\",\n \"?:\\\\Windows\\\\System32\\\\mmc.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerFault.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"31b4c719-f2b4-41f6-a9bd-fce93c2eaf62","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/3202e172-01b1-4738-a932-d024c514ba72.json b/fleet-packages/detection-rules-composite/kibana/security_rule/3202e172-01b1-4738-a932-d024c514ba72.json new file mode 100644 index 0000000000000..1b0edc7822abb --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/3202e172-01b1-4738-a932-d024c514ba72.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"3202e172-01b1-4738-a932-d024c514ba72","versions":[{"name":"GCP Pub/Sub Topic Deletion v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a topic in Google Cloud Platform (GCP). In GCP, the publisher-subscriber relationship (Pub/Sub) is an asynchronous messaging service that decouples event-producing and event-processing services. A publisher application creates and sends messages to a topic. Deleting a topic can interrupt message flow in the Pub/Sub pipeline.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Topic deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Topic deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/pubsub/docs/overview"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.pubsub.v*.Publisher.DeleteTopic and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Pub/Sub Topic Deletion v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a topic in Google Cloud Platform (GCP). In GCP, the publisher-subscriber relationship (Pub/Sub) is an asynchronous messaging service that decouples event-producing and event-processing services. A publisher application creates and sends messages to a topic. Deleting a topic can interrupt message flow in the Pub/Sub pipeline.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Topic deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Topic deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/pubsub/docs/overview"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.pubsub.v*.Publisher.DeleteTopic and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Pub/Sub Topic Deletion v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a topic in Google Cloud Platform (GCP). In GCP, the publisher-subscriber relationship (Pub/Sub) is an asynchronous messaging service that decouples event-producing and event-processing services. A publisher application creates and sends messages to a topic. Deleting a topic can interrupt message flow in the Pub/Sub pipeline.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Topic deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Topic deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/pubsub/docs/overview"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.pubsub.v*.Publisher.DeleteTopic and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"3202e172-01b1-4738-a932-d024c514ba72","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/323cb487-279d-4218-bcbd-a568efe930c6.json b/fleet-packages/detection-rules-composite/kibana/security_rule/323cb487-279d-4218-bcbd-a568efe930c6.json new file mode 100644 index 0000000000000..95b43d63aa428 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/323cb487-279d-4218-bcbd-a568efe930c6.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"323cb487-279d-4218-bcbd-a568efe930c6","versions":[{"name":"Azure Network Watcher Deletion v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a Network Watcher in Azure. Network Watchers are used to monitor, diagnose, view metrics, and enable or disable logs for resources in an Azure virtual network. An adversary may delete a Network Watcher in an attempt to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Network Watcher deletions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Network Watcher deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/network-watcher/network-watcher-monitoring-overview"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.NETWORK/NETWORKWATCHERS/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Network Watcher Deletion v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a Network Watcher in Azure. Network Watchers are used to monitor, diagnose, view metrics, and enable or disable logs for resources in an Azure virtual network. An adversary may delete a Network Watcher in an attempt to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Network Watcher deletions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Network Watcher deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/network-watcher/network-watcher-monitoring-overview"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.NETWORK/NETWORKWATCHERS/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Network Watcher Deletion v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a Network Watcher in Azure. Network Watchers are used to monitor, diagnose, view metrics, and enable or disable logs for resources in an Azure virtual network. An adversary may delete a Network Watcher in an attempt to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Network Watcher deletions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Network Watcher deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/network-watcher/network-watcher-monitoring-overview"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.NETWORK/NETWORKWATCHERS/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"323cb487-279d-4218-bcbd-a568efe930c6","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/32923416-763a-4531-bb35-f33b9232ecdb.json b/fleet-packages/detection-rules-composite/kibana/security_rule/32923416-763a-4531-bb35-f33b9232ecdb.json new file mode 100644 index 0000000000000..aac7c74e5b3c4 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/32923416-763a-4531-bb35-f33b9232ecdb.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"32923416-763a-4531-bb35-f33b9232ecdb","versions":[{"name":"RPC (Remote Procedure Call) to the Internet v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of RPC traffic to the Internet. RPC is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Initial Access","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and (destination.port:135 or event.dataset:zeek.dce_rpc) and\n source.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n ) and\n not destination.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},{"name":"RPC (Remote Procedure Call) to the Internet v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of RPC traffic to the Internet. RPC is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Initial Access","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and (destination.port:135 or event.dataset:zeek.dce_rpc) and\n source.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n ) and\n not destination.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},{"name":"RPC (Remote Procedure Call) to the Internet v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of RPC traffic to the Internet. RPC is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Initial Access","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and (destination.port:135 or event.dataset:zeek.dce_rpc) and\n source.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n ) and\n not destination.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]}]},"id":"32923416-763a-4531-bb35-f33b9232ecdb","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/32c5cf9c-2ef8-4e87-819e-5ccb7cd18b14.json b/fleet-packages/detection-rules-composite/kibana/security_rule/32c5cf9c-2ef8-4e87-819e-5ccb7cd18b14.json new file mode 100644 index 0000000000000..709a0546bf7c3 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/32c5cf9c-2ef8-4e87-819e-5ccb7cd18b14.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"32c5cf9c-2ef8-4e87-819e-5ccb7cd18b14","versions":[{"name":"Program Files Directory Masquerading v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution from a directory masquerading as the Windows Program Files directories. These paths are trusted and usually host trusted third party programs. An adversary may leverage masquerading, along with low privileges to bypass detections allowlisting those folders.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.005","name":"Match Legitimate Name or Location","reference":"https://attack.mitre.org/techniques/T1036/005/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.executable : \"C:\\\\*Program*Files*\\\\*.exe\" and\n not process.executable : (\"C:\\\\Program Files\\\\*.exe\", \"C:\\\\Program Files (x86)\\\\*.exe\", \"C:\\\\Users\\\\*.exe\", \"C:\\\\ProgramData\\\\*.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Program Files Directory Masquerading v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution from a directory masquerading as the Windows Program Files directories. These paths are trusted and usually host trusted third party programs. An adversary may leverage masquerading, along with low privileges to bypass detections allowlisting those folders.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.005","name":"Match Legitimate Name or Location","reference":"https://attack.mitre.org/techniques/T1036/005/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.executable : \"C:\\\\*Program*Files*\\\\*.exe\" and\n not process.executable : (\"C:\\\\Program Files\\\\*.exe\", \"C:\\\\Program Files (x86)\\\\*.exe\", \"C:\\\\Users\\\\*.exe\", \"C:\\\\ProgramData\\\\*.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Program Files Directory Masquerading v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution from a directory masquerading as the Windows Program Files directories. These paths are trusted and usually host trusted third party programs. An adversary may leverage masquerading, along with low privileges to bypass detections allowlisting those folders.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.005","name":"Match Legitimate Name or Location","reference":"https://attack.mitre.org/techniques/T1036/005/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.executable : \"C:\\\\*Program*Files*\\\\*.exe\" and\n not process.executable : (\"C:\\\\Program Files\\\\*.exe\", \"C:\\\\Program Files (x86)\\\\*.exe\", \"C:\\\\Users\\\\*.exe\", \"C:\\\\ProgramData\\\\*.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"32c5cf9c-2ef8-4e87-819e-5ccb7cd18b14","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/32f4675e-6c49-4ace-80f9-97c9259dca2e.json b/fleet-packages/detection-rules-composite/kibana/security_rule/32f4675e-6c49-4ace-80f9-97c9259dca2e.json new file mode 100644 index 0000000000000..53f334b9bb330 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/32f4675e-6c49-4ace-80f9-97c9259dca2e.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"32f4675e-6c49-4ace-80f9-97c9259dca2e","versions":[{"name":"Suspicious MS Outlook Child Process v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious child processes of Microsoft Outlook. These child processes are often associated with spear phishing activity.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious MS Outlook Child Process\n\nMicrosoft Outlook is an email client that provides contact, email calendar, and task management features. Outlook is\nwidely used, either standalone or as part of the Office suite.\n\nThis rule looks for suspicious processes spawned by MS Outlook, which can be the result of the execution of malicious\ndocuments and/or exploitation for initial access.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve recently opened files received via email and opened by the user that could cause this behavior. Common\nlocations include but are not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"outlook.exe\" and\n process.name : (\"Microsoft.Workflow.Compiler.exe\", \"arp.exe\", \"atbroker.exe\", \"bginfo.exe\", \"bitsadmin.exe\",\n \"cdb.exe\", \"certutil.exe\", \"cmd.exe\", \"cmstp.exe\", \"cscript.exe\", \"csi.exe\", \"dnx.exe\", \"dsget.exe\",\n \"dsquery.exe\", \"forfiles.exe\", \"fsi.exe\", \"ftp.exe\", \"gpresult.exe\", \"hostname.exe\", \"ieexec.exe\",\n \"iexpress.exe\", \"installutil.exe\", \"ipconfig.exe\", \"mshta.exe\", \"msxsl.exe\", \"nbtstat.exe\", \"net.exe\",\n \"net1.exe\", \"netsh.exe\", \"netstat.exe\", \"nltest.exe\", \"odbcconf.exe\", \"ping.exe\", \"powershell.exe\",\n \"pwsh.exe\", \"qprocess.exe\", \"quser.exe\", \"qwinsta.exe\", \"rcsi.exe\", \"reg.exe\", \"regasm.exe\",\n \"regsvcs.exe\", \"regsvr32.exe\", \"sc.exe\", \"schtasks.exe\", \"systeminfo.exe\", \"tasklist.exe\",\n \"tracert.exe\", \"whoami.exe\", \"wmic.exe\", \"wscript.exe\", \"xwizard.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious MS Outlook Child Process v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious child processes of Microsoft Outlook. These child processes are often associated with spear phishing activity.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious MS Outlook Child Process\n\nMicrosoft Outlook is an email client that provides contact, email calendar, and task management features. Outlook is\nwidely used, either standalone or as part of the Office suite.\n\nThis rule looks for suspicious processes spawned by MS Outlook, which can be the result of the execution of malicious\ndocuments and/or exploitation for initial access.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve recently opened files received via email and opened by the user that could cause this behavior. Common\nlocations include but are not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"outlook.exe\" and\n process.name : (\"Microsoft.Workflow.Compiler.exe\", \"arp.exe\", \"atbroker.exe\", \"bginfo.exe\", \"bitsadmin.exe\",\n \"cdb.exe\", \"certutil.exe\", \"cmd.exe\", \"cmstp.exe\", \"cscript.exe\", \"csi.exe\", \"dnx.exe\", \"dsget.exe\",\n \"dsquery.exe\", \"forfiles.exe\", \"fsi.exe\", \"ftp.exe\", \"gpresult.exe\", \"hostname.exe\", \"ieexec.exe\",\n \"iexpress.exe\", \"installutil.exe\", \"ipconfig.exe\", \"mshta.exe\", \"msxsl.exe\", \"nbtstat.exe\", \"net.exe\",\n \"net1.exe\", \"netsh.exe\", \"netstat.exe\", \"nltest.exe\", \"odbcconf.exe\", \"ping.exe\", \"powershell.exe\",\n \"pwsh.exe\", \"qprocess.exe\", \"quser.exe\", \"qwinsta.exe\", \"rcsi.exe\", \"reg.exe\", \"regasm.exe\",\n \"regsvcs.exe\", \"regsvr32.exe\", \"sc.exe\", \"schtasks.exe\", \"systeminfo.exe\", \"tasklist.exe\",\n \"tracert.exe\", \"whoami.exe\", \"wmic.exe\", \"wscript.exe\", \"xwizard.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious MS Outlook Child Process v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious child processes of Microsoft Outlook. These child processes are often associated with spear phishing activity.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious MS Outlook Child Process\n\nMicrosoft Outlook is an email client that provides contact, email calendar, and task management features. Outlook is\nwidely used, either standalone or as part of the Office suite.\n\nThis rule looks for suspicious processes spawned by MS Outlook, which can be the result of the execution of malicious\ndocuments and/or exploitation for initial access.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve recently opened files received via email and opened by the user that could cause this behavior. Common\nlocations include but are not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"outlook.exe\" and\n process.name : (\"Microsoft.Workflow.Compiler.exe\", \"arp.exe\", \"atbroker.exe\", \"bginfo.exe\", \"bitsadmin.exe\",\n \"cdb.exe\", \"certutil.exe\", \"cmd.exe\", \"cmstp.exe\", \"cscript.exe\", \"csi.exe\", \"dnx.exe\", \"dsget.exe\",\n \"dsquery.exe\", \"forfiles.exe\", \"fsi.exe\", \"ftp.exe\", \"gpresult.exe\", \"hostname.exe\", \"ieexec.exe\",\n \"iexpress.exe\", \"installutil.exe\", \"ipconfig.exe\", \"mshta.exe\", \"msxsl.exe\", \"nbtstat.exe\", \"net.exe\",\n \"net1.exe\", \"netsh.exe\", \"netstat.exe\", \"nltest.exe\", \"odbcconf.exe\", \"ping.exe\", \"powershell.exe\",\n \"pwsh.exe\", \"qprocess.exe\", \"quser.exe\", \"qwinsta.exe\", \"rcsi.exe\", \"reg.exe\", \"regasm.exe\",\n \"regsvcs.exe\", \"regsvr32.exe\", \"sc.exe\", \"schtasks.exe\", \"systeminfo.exe\", \"tasklist.exe\",\n \"tracert.exe\", \"whoami.exe\", \"wmic.exe\", \"wscript.exe\", \"xwizard.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"32f4675e-6c49-4ace-80f9-97c9259dca2e","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/333de828-8190-4cf5-8d7c-7575846f6fe0.json b/fleet-packages/detection-rules-composite/kibana/security_rule/333de828-8190-4cf5-8d7c-7575846f6fe0.json new file mode 100644 index 0000000000000..81e8fda1e9e47 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/333de828-8190-4cf5-8d7c-7575846f6fe0.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"333de828-8190-4cf5-8d7c-7575846f6fe0","versions":[{"name":"AWS IAM User Addition to Group v103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the addition of a user to a specified group in AWS Identity and Access Management (IAM).","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS IAM User Addition to Group\n\nAWS Identity and Access Management (IAM) provides fine-grained access control across all of AWS. With IAM, you can specify\nwho can access which services and resources, and under which conditions. With IAM policies, you manage permissions to\nyour workforce and systems to ensure least-privilege permissions.\n\nThis rule looks for the addition of users to a specified user group.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- False positives may occur due to the intended usage of the service. Tuning is needed in order to have higher\nconfidence. Consider adding exceptions — preferably with a combination of user agent and IP address conditions — to\nreduce noise from onboarding processes and administrator activities.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Adding users to a specified group may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. User additions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/IAM/latest/APIReference/API_AddUserToGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access","Credential Access","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:AddUserToGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS IAM User Addition to Group v103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the addition of a user to a specified group in AWS Identity and Access Management (IAM).","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS IAM User Addition to Group\n\nAWS Identity and Access Management (IAM) provides fine-grained access control across all of AWS. With IAM, you can specify\nwho can access which services and resources, and under which conditions. With IAM policies, you manage permissions to\nyour workforce and systems to ensure least-privilege permissions.\n\nThis rule looks for the addition of users to a specified user group.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- False positives may occur due to the intended usage of the service. Tuning is needed in order to have higher\nconfidence. Consider adding exceptions — preferably with a combination of user agent and IP address conditions — to\nreduce noise from onboarding processes and administrator activities.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Adding users to a specified group may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. User additions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/IAM/latest/APIReference/API_AddUserToGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access","Credential Access","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:AddUserToGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS IAM User Addition to Group v103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the addition of a user to a specified group in AWS Identity and Access Management (IAM).","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS IAM User Addition to Group\n\nAWS Identity and Access Management (IAM) provides fine-grained access control across all of AWS. With IAM, you can specify\nwho can access which services and resources, and under which conditions. With IAM policies, you manage permissions to\nyour workforce and systems to ensure least-privilege permissions.\n\nThis rule looks for the addition of users to a specified user group.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- False positives may occur due to the intended usage of the service. Tuning is needed in order to have higher\nconfidence. Consider adding exceptions — preferably with a combination of user agent and IP address conditions — to\nreduce noise from onboarding processes and administrator activities.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Adding users to a specified group may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. User additions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/IAM/latest/APIReference/API_AddUserToGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access","Credential Access","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:AddUserToGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"333de828-8190-4cf5-8d7c-7575846f6fe0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/33f306e8-417c-411b-965c-c2812d6d3f4d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/33f306e8-417c-411b-965c-c2812d6d3f4d.json new file mode 100644 index 0000000000000..a50846fada77d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/33f306e8-417c-411b-965c-c2812d6d3f4d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"33f306e8-417c-411b-965c-c2812d6d3f4d","versions":[{"name":"Remote File Download via PowerShell v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies powershell.exe being used to download an executable file from an untrusted remote destination.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote File Download via PowerShell\n\nAttackers commonly transfer tooling or malware from external systems into a compromised environment using the command\nand control channel. However, they can also abuse signed utilities to drop these files.\n\nPowerShell is one of system administrators' main tools for automation, report routines, and other tasks. This makes it\navailable for use in various environments and creates an attractive way for attackers to execute code and perform\nactions. This rule correlates network and file events to detect downloads of executable and script files performed using\nPowerShell.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check the reputation of the domain or IP address used to host the downloaded file.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- Administrators can use PowerShell legitimately to download executable and script files. Analysts can dismiss the alert\nif the Administrator is aware of the activity and the triage has not identified suspicious or malicious files.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan=30s\n [network where process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and network.protocol == \"dns\" and\n not dns.question.name : (\"localhost\", \"*.microsoft.com\", \"*.azureedge.net\", \"*.powershellgallery.com\", \"*.windowsupdate.com\", \"metadata.google.internal\") and\n not user.domain : \"NT AUTHORITY\"]\n [file where process.name : \"powershell.exe\" and event.type == \"creation\" and file.extension : (\"exe\", \"dll\", \"ps1\", \"bat\") and\n not file.name : \"__PSScriptPolicy*.ps1\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dns.question.name","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}]},{"name":"Remote File Download via PowerShell v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies powershell.exe being used to download an executable file from an untrusted remote destination.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote File Download via PowerShell\n\nAttackers commonly transfer tooling or malware from external systems into a compromised environment using the command\nand control channel. However, they can also abuse signed utilities to drop these files.\n\nPowerShell is one of system administrators' main tools for automation, report routines, and other tasks. This makes it\navailable for use in various environments and creates an attractive way for attackers to execute code and perform\nactions. This rule correlates network and file events to detect downloads of executable and script files performed using\nPowerShell.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check the reputation of the domain or IP address used to host the downloaded file.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- Administrators can use PowerShell legitimately to download executable and script files. Analysts can dismiss the alert\nif the Administrator is aware of the activity and the triage has not identified suspicious or malicious files.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan=30s\n [network where process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and network.protocol == \"dns\" and\n not dns.question.name : (\"localhost\", \"*.microsoft.com\", \"*.azureedge.net\", \"*.powershellgallery.com\", \"*.windowsupdate.com\", \"metadata.google.internal\") and\n not user.domain : \"NT AUTHORITY\"]\n [file where process.name : \"powershell.exe\" and event.type == \"creation\" and file.extension : (\"exe\", \"dll\", \"ps1\", \"bat\") and\n not file.name : \"__PSScriptPolicy*.ps1\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dns.question.name","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}]},{"name":"Remote File Download via PowerShell v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies powershell.exe being used to download an executable file from an untrusted remote destination.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote File Download via PowerShell\n\nAttackers commonly transfer tooling or malware from external systems into a compromised environment using the command\nand control channel. However, they can also abuse signed utilities to drop these files.\n\nPowerShell is one of system administrators' main tools for automation, report routines, and other tasks. This makes it\navailable for use in various environments and creates an attractive way for attackers to execute code and perform\nactions. This rule correlates network and file events to detect downloads of executable and script files performed using\nPowerShell.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check the reputation of the domain or IP address used to host the downloaded file.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- Administrators can use PowerShell legitimately to download executable and script files. Analysts can dismiss the alert\nif the Administrator is aware of the activity and the triage has not identified suspicious or malicious files.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan=30s\n [network where process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and network.protocol == \"dns\" and\n not dns.question.name : (\"localhost\", \"*.microsoft.com\", \"*.azureedge.net\", \"*.powershellgallery.com\", \"*.windowsupdate.com\", \"metadata.google.internal\") and\n not user.domain : \"NT AUTHORITY\"]\n [file where process.name : \"powershell.exe\" and event.type == \"creation\" and file.extension : (\"exe\", \"dll\", \"ps1\", \"bat\") and\n not file.name : \"__PSScriptPolicy*.ps1\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dns.question.name","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}]}]},"id":"33f306e8-417c-411b-965c-c2812d6d3f4d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/34fde489-94b0-4500-a76f-b8a157cf9269.json b/fleet-packages/detection-rules-composite/kibana/security_rule/34fde489-94b0-4500-a76f-b8a157cf9269.json new file mode 100644 index 0000000000000..04c2d703d9f1b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/34fde489-94b0-4500-a76f-b8a157cf9269.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"34fde489-94b0-4500-a76f-b8a157cf9269","versions":[{"name":"Accepted Default Telnet Port Connection v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of Telnet traffic. Telnet is commonly used by system administrators to remotely control older or embedded systems using the command line shell. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector. As a plain-text protocol, it may also expose usernames and passwords to anyone capable of observing the traffic.","risk_score":47,"severity":"medium","license":"Elastic License v2","timeline_id":"300afc76-072d-4261-864d-4149714bf3f1","timeline_title":"Comprehensive Network Timeline","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["IoT (Internet of Things) devices and networks may use telnet and can be excluded if desired. Some business work-flows may use Telnet for administration of older devices. These often have a predictable behavior. Telnet activity involving an unusual source or destination may be more suspicious. Telnet activity involving a production server that has no known associated Telnet work-flow or business requirement is often suspicious."],"from":"now-9m","tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host","Lateral Movement","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and destination.port:23\n and network.direction:(inbound or ingress or outbound or egress)\n and not event.action:(\n flow_dropped or denied or deny or\n flow_terminated or timeout or Reject or network_flow)\n","required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"}]},{"name":"Accepted Default Telnet Port Connection v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of Telnet traffic. Telnet is commonly used by system administrators to remotely control older or embedded systems using the command line shell. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector. As a plain-text protocol, it may also expose usernames and passwords to anyone capable of observing the traffic.","risk_score":47,"severity":"medium","license":"Elastic License v2","timeline_id":"300afc76-072d-4261-864d-4149714bf3f1","timeline_title":"Comprehensive Network Timeline","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["IoT (Internet of Things) devices and networks may use telnet and can be excluded if desired. Some business work-flows may use Telnet for administration of older devices. These often have a predictable behavior. Telnet activity involving an unusual source or destination may be more suspicious. Telnet activity involving a production server that has no known associated Telnet work-flow or business requirement is often suspicious."],"from":"now-9m","tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host","Lateral Movement","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and destination.port:23\n and network.direction:(inbound or ingress or outbound or egress)\n and not event.action:(\n flow_dropped or denied or deny or\n flow_terminated or timeout or Reject or network_flow)\n","required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"}]},{"name":"Accepted Default Telnet Port Connection v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of Telnet traffic. Telnet is commonly used by system administrators to remotely control older or embedded systems using the command line shell. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector. As a plain-text protocol, it may also expose usernames and passwords to anyone capable of observing the traffic.","risk_score":47,"severity":"medium","license":"Elastic License v2","timeline_id":"300afc76-072d-4261-864d-4149714bf3f1","timeline_title":"Comprehensive Network Timeline","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["IoT (Internet of Things) devices and networks may use telnet and can be excluded if desired. Some business work-flows may use Telnet for administration of older devices. These often have a predictable behavior. Telnet activity involving an unusual source or destination may be more suspicious. Telnet activity involving a production server that has no known associated Telnet work-flow or business requirement is often suspicious."],"from":"now-9m","tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host","Lateral Movement","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and destination.port:23\n and network.direction:(inbound or ingress or outbound or egress)\n and not event.action:(\n flow_dropped or denied or deny or\n flow_terminated or timeout or Reject or network_flow)\n","required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"}]}]},"id":"34fde489-94b0-4500-a76f-b8a157cf9269","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/35330ba2-c859-4c98-8b7f-c19159ea0e58.json b/fleet-packages/detection-rules-composite/kibana/security_rule/35330ba2-c859-4c98-8b7f-c19159ea0e58.json new file mode 100644 index 0000000000000..b5720280affbd --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/35330ba2-c859-4c98-8b7f-c19159ea0e58.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"35330ba2-c859-4c98-8b7f-c19159ea0e58","versions":[{"name":"Execution via Electron Child Process Node.js Module v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to execute a child process from within the context of an Electron application using the child_process Node.js module. Adversaries may abuse this technique to inherit permissions from parent processes.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.matthewslipper.com/2019/09/22/everything-you-wanted-electron-child-process.html","https://www.trustedsec.com/blog/macos-injection-via-third-party-frameworks/","https://nodejs.org/api/child_process.html"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.args:(\"-e\" and const*require*child_process*)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},{"name":"Execution via Electron Child Process Node.js Module v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to execute a child process from within the context of an Electron application using the child_process Node.js module. Adversaries may abuse this technique to inherit permissions from parent processes.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.matthewslipper.com/2019/09/22/everything-you-wanted-electron-child-process.html","https://www.trustedsec.com/blog/macos-injection-via-third-party-frameworks/","https://nodejs.org/api/child_process.html"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.args:(\"-e\" and const*require*child_process*)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},{"name":"Execution via Electron Child Process Node.js Module v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to execute a child process from within the context of an Electron application using the child_process Node.js module. Adversaries may abuse this technique to inherit permissions from parent processes.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.matthewslipper.com/2019/09/22/everything-you-wanted-electron-child-process.html","https://www.trustedsec.com/blog/macos-injection-via-third-party-frameworks/","https://nodejs.org/api/child_process.html"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.args:(\"-e\" and const*require*child_process*)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]}]},"id":"35330ba2-c859-4c98-8b7f-c19159ea0e58","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/3535c8bb-3bd5-40f4-ae32-b7cd589d5372.json b/fleet-packages/detection-rules-composite/kibana/security_rule/3535c8bb-3bd5-40f4-ae32-b7cd589d5372.json new file mode 100644 index 0000000000000..79be22e330747 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/3535c8bb-3bd5-40f4-ae32-b7cd589d5372.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"3535c8bb-3bd5-40f4-ae32-b7cd589d5372","versions":[{"name":"Port Forwarding Rule Addition v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a new port forwarding rule. An adversary may abuse this technique to bypass network segmentation restrictions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Port Forwarding Rule Addition\n\nNetwork port forwarding is a mechanism to redirect incoming TCP connections (IPv4 or IPv6) from the local TCP port to\nany other port number, or even to a port on a remote computer.\n\nAttackers may configure port forwarding rules to bypass network segmentation restrictions, using the host as a jump box\nto access previously unreachable systems.\n\nThis rule monitors the modifications to the `HKLM\\SYSTEM\\*ControlSet*\\Services\\PortProxy\\v4tov4\\` subkeys.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account and system owners and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Identify the target host IP address, check the connections originating from the host where the modification occurred,\nand inspect the credentials used.\n - Investigate suspicious login activity, such as unauthorized access and logins from outside working hours and unusual locations.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the Administrator is aware of the activity\nand there are justifications for this configuration.\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Delete the port forwarding rule.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2019/01/bypassing-network-restrictions-through-rdp-tunneling.html"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1572","name":"Protocol Tunneling","reference":"https://attack.mitre.org/techniques/T1572/"}]}],"language":"eql","query":"registry where registry.path : (\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\PortProxy\\\\v4tov4\\\\*\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\PortProxy\\\\v4tov4\\\\*\"\n)\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Port Forwarding Rule Addition v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a new port forwarding rule. An adversary may abuse this technique to bypass network segmentation restrictions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Port Forwarding Rule Addition\n\nNetwork port forwarding is a mechanism to redirect incoming TCP connections (IPv4 or IPv6) from the local TCP port to\nany other port number, or even to a port on a remote computer.\n\nAttackers may configure port forwarding rules to bypass network segmentation restrictions, using the host as a jump box\nto access previously unreachable systems.\n\nThis rule monitors the modifications to the `HKLM\\SYSTEM\\*ControlSet*\\Services\\PortProxy\\v4tov4\\` subkeys.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account and system owners and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Identify the target host IP address, check the connections originating from the host where the modification occurred,\nand inspect the credentials used.\n - Investigate suspicious login activity, such as unauthorized access and logins from outside working hours and unusual locations.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the Administrator is aware of the activity\nand there are justifications for this configuration.\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Delete the port forwarding rule.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2019/01/bypassing-network-restrictions-through-rdp-tunneling.html"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1572","name":"Protocol Tunneling","reference":"https://attack.mitre.org/techniques/T1572/"}]}],"language":"eql","query":"registry where registry.path : (\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\PortProxy\\\\v4tov4\\\\*\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\PortProxy\\\\v4tov4\\\\*\"\n)\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Port Forwarding Rule Addition v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a new port forwarding rule. An adversary may abuse this technique to bypass network segmentation restrictions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Port Forwarding Rule Addition\n\nNetwork port forwarding is a mechanism to redirect incoming TCP connections (IPv4 or IPv6) from the local TCP port to\nany other port number, or even to a port on a remote computer.\n\nAttackers may configure port forwarding rules to bypass network segmentation restrictions, using the host as a jump box\nto access previously unreachable systems.\n\nThis rule monitors the modifications to the `HKLM\\SYSTEM\\*ControlSet*\\Services\\PortProxy\\v4tov4\\` subkeys.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account and system owners and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Identify the target host IP address, check the connections originating from the host where the modification occurred,\nand inspect the credentials used.\n - Investigate suspicious login activity, such as unauthorized access and logins from outside working hours and unusual locations.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the Administrator is aware of the activity\nand there are justifications for this configuration.\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Delete the port forwarding rule.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2019/01/bypassing-network-restrictions-through-rdp-tunneling.html"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1572","name":"Protocol Tunneling","reference":"https://attack.mitre.org/techniques/T1572/"}]}],"language":"eql","query":"registry where registry.path : (\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\PortProxy\\\\v4tov4\\\\*\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\PortProxy\\\\v4tov4\\\\*\"\n)\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"3535c8bb-3bd5-40f4-ae32-b7cd589d5372","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/35df0dd8-092d-4a83-88c1-5151a804f31b.json b/fleet-packages/detection-rules-composite/kibana/security_rule/35df0dd8-092d-4a83-88c1-5151a804f31b.json new file mode 100644 index 0000000000000..8e17d50003a56 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/35df0dd8-092d-4a83-88c1-5151a804f31b.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"35df0dd8-092d-4a83-88c1-5151a804f31b","versions":[{"name":"Unusual Parent-Child Relationship v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Windows programs run from unexpected parent processes. This could indicate masquerading or other strange activity on a system.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Parent-Child Relationship\n\nWindows internal/system processes have some characteristics that can be used to spot suspicious activities. One of these\ncharacteristics is parent-child relationships. These relationships can be used to baseline the typical behavior of the\nsystem and then alert on occurrences that don't comply with the baseline.\n\nThis rule uses this information to spot suspicious parent and child processes.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/sbousseaden/Slides/blob/master/Hunting%20MindMaps/PNG/Windows%20Processes%20TH.map.png","https://www.andreafortuna.org/2017/06/15/standard-windows-processes-a-brief-reference/"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/","subtechnique":[{"id":"T1055.012","name":"Process Hollowing","reference":"https://attack.mitre.org/techniques/T1055/012/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\nprocess.parent.name != null and\n (\n /* suspicious parent processes */\n (process.name:\"autochk.exe\" and not process.parent.name:\"smss.exe\") or\n (process.name:(\"fontdrvhost.exe\", \"dwm.exe\") and not process.parent.name:(\"wininit.exe\", \"winlogon.exe\")) or\n (process.name:(\"consent.exe\", \"RuntimeBroker.exe\", \"TiWorker.exe\") and not process.parent.name:\"svchost.exe\") or\n (process.name:\"SearchIndexer.exe\" and not process.parent.name:\"services.exe\") or\n (process.name:\"SearchProtocolHost.exe\" and not process.parent.name:(\"SearchIndexer.exe\", \"dllhost.exe\")) or\n (process.name:\"dllhost.exe\" and not process.parent.name:(\"services.exe\", \"svchost.exe\")) or\n (process.name:\"smss.exe\" and not process.parent.name:(\"System\", \"smss.exe\")) or\n (process.name:\"csrss.exe\" and not process.parent.name:(\"smss.exe\", \"svchost.exe\")) or\n (process.name:\"wininit.exe\" and not process.parent.name:\"smss.exe\") or\n (process.name:\"winlogon.exe\" and not process.parent.name:\"smss.exe\") or\n (process.name:(\"lsass.exe\", \"LsaIso.exe\") and not process.parent.name:\"wininit.exe\") or\n (process.name:\"LogonUI.exe\" and not process.parent.name:(\"wininit.exe\", \"winlogon.exe\")) or\n (process.name:\"services.exe\" and not process.parent.name:\"wininit.exe\") or\n (process.name:\"svchost.exe\" and not process.parent.name:(\"MsMpEng.exe\", \"services.exe\")) or\n (process.name:\"spoolsv.exe\" and not process.parent.name:\"services.exe\") or\n (process.name:\"taskhost.exe\" and not process.parent.name:(\"services.exe\", \"svchost.exe\")) or\n (process.name:\"taskhostw.exe\" and not process.parent.name:(\"services.exe\", \"svchost.exe\")) or\n (process.name:\"userinit.exe\" and not process.parent.name:(\"dwm.exe\", \"winlogon.exe\")) or\n (process.name:(\"wmiprvse.exe\", \"wsmprovhost.exe\", \"winrshost.exe\") and not process.parent.name:\"svchost.exe\") or\n /* suspicious child processes */\n (process.parent.name:(\"SearchProtocolHost.exe\", \"taskhost.exe\", \"csrss.exe\") and not process.name:(\"werfault.exe\", \"wermgr.exe\", \"WerFaultSecure.exe\")) or\n (process.parent.name:\"autochk.exe\" and not process.name:(\"chkdsk.exe\", \"doskey.exe\", \"WerFault.exe\")) or\n (process.parent.name:\"smss.exe\" and not process.name:(\"autochk.exe\", \"smss.exe\", \"csrss.exe\", \"wininit.exe\", \"winlogon.exe\", \"setupcl.exe\", \"WerFault.exe\")) or\n (process.parent.name:\"wermgr.exe\" and not process.name:(\"WerFaultSecure.exe\", \"wermgr.exe\", \"WerFault.exe\")) or\n (process.parent.name:\"conhost.exe\" and not process.name:(\"mscorsvw.exe\", \"wermgr.exe\", \"WerFault.exe\", \"WerFaultSecure.exe\"))\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Unusual Parent-Child Relationship v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Windows programs run from unexpected parent processes. This could indicate masquerading or other strange activity on a system.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Parent-Child Relationship\n\nWindows internal/system processes have some characteristics that can be used to spot suspicious activities. One of these\ncharacteristics is parent-child relationships. These relationships can be used to baseline the typical behavior of the\nsystem and then alert on occurrences that don't comply with the baseline.\n\nThis rule uses this information to spot suspicious parent and child processes.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/sbousseaden/Slides/blob/master/Hunting%20MindMaps/PNG/Windows%20Processes%20TH.map.png","https://www.andreafortuna.org/2017/06/15/standard-windows-processes-a-brief-reference/"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/","subtechnique":[{"id":"T1055.012","name":"Process Hollowing","reference":"https://attack.mitre.org/techniques/T1055/012/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\nprocess.parent.name != null and\n (\n /* suspicious parent processes */\n (process.name:\"autochk.exe\" and not process.parent.name:\"smss.exe\") or\n (process.name:(\"fontdrvhost.exe\", \"dwm.exe\") and not process.parent.name:(\"wininit.exe\", \"winlogon.exe\")) or\n (process.name:(\"consent.exe\", \"RuntimeBroker.exe\", \"TiWorker.exe\") and not process.parent.name:\"svchost.exe\") or\n (process.name:\"SearchIndexer.exe\" and not process.parent.name:\"services.exe\") or\n (process.name:\"SearchProtocolHost.exe\" and not process.parent.name:(\"SearchIndexer.exe\", \"dllhost.exe\")) or\n (process.name:\"dllhost.exe\" and not process.parent.name:(\"services.exe\", \"svchost.exe\")) or\n (process.name:\"smss.exe\" and not process.parent.name:(\"System\", \"smss.exe\")) or\n (process.name:\"csrss.exe\" and not process.parent.name:(\"smss.exe\", \"svchost.exe\")) or\n (process.name:\"wininit.exe\" and not process.parent.name:\"smss.exe\") or\n (process.name:\"winlogon.exe\" and not process.parent.name:\"smss.exe\") or\n (process.name:(\"lsass.exe\", \"LsaIso.exe\") and not process.parent.name:\"wininit.exe\") or\n (process.name:\"LogonUI.exe\" and not process.parent.name:(\"wininit.exe\", \"winlogon.exe\")) or\n (process.name:\"services.exe\" and not process.parent.name:\"wininit.exe\") or\n (process.name:\"svchost.exe\" and not process.parent.name:(\"MsMpEng.exe\", \"services.exe\")) or\n (process.name:\"spoolsv.exe\" and not process.parent.name:\"services.exe\") or\n (process.name:\"taskhost.exe\" and not process.parent.name:(\"services.exe\", \"svchost.exe\")) or\n (process.name:\"taskhostw.exe\" and not process.parent.name:(\"services.exe\", \"svchost.exe\")) or\n (process.name:\"userinit.exe\" and not process.parent.name:(\"dwm.exe\", \"winlogon.exe\")) or\n (process.name:(\"wmiprvse.exe\", \"wsmprovhost.exe\", \"winrshost.exe\") and not process.parent.name:\"svchost.exe\") or\n /* suspicious child processes */\n (process.parent.name:(\"SearchProtocolHost.exe\", \"taskhost.exe\", \"csrss.exe\") and not process.name:(\"werfault.exe\", \"wermgr.exe\", \"WerFaultSecure.exe\")) or\n (process.parent.name:\"autochk.exe\" and not process.name:(\"chkdsk.exe\", \"doskey.exe\", \"WerFault.exe\")) or\n (process.parent.name:\"smss.exe\" and not process.name:(\"autochk.exe\", \"smss.exe\", \"csrss.exe\", \"wininit.exe\", \"winlogon.exe\", \"setupcl.exe\", \"WerFault.exe\")) or\n (process.parent.name:\"wermgr.exe\" and not process.name:(\"WerFaultSecure.exe\", \"wermgr.exe\", \"WerFault.exe\")) or\n (process.parent.name:\"conhost.exe\" and not process.name:(\"mscorsvw.exe\", \"wermgr.exe\", \"WerFault.exe\", \"WerFaultSecure.exe\"))\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Unusual Parent-Child Relationship v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Windows programs run from unexpected parent processes. This could indicate masquerading or other strange activity on a system.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Parent-Child Relationship\n\nWindows internal/system processes have some characteristics that can be used to spot suspicious activities. One of these\ncharacteristics is parent-child relationships. These relationships can be used to baseline the typical behavior of the\nsystem and then alert on occurrences that don't comply with the baseline.\n\nThis rule uses this information to spot suspicious parent and child processes.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/sbousseaden/Slides/blob/master/Hunting%20MindMaps/PNG/Windows%20Processes%20TH.map.png","https://www.andreafortuna.org/2017/06/15/standard-windows-processes-a-brief-reference/"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/","subtechnique":[{"id":"T1055.012","name":"Process Hollowing","reference":"https://attack.mitre.org/techniques/T1055/012/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\nprocess.parent.name != null and\n (\n /* suspicious parent processes */\n (process.name:\"autochk.exe\" and not process.parent.name:\"smss.exe\") or\n (process.name:(\"fontdrvhost.exe\", \"dwm.exe\") and not process.parent.name:(\"wininit.exe\", \"winlogon.exe\")) or\n (process.name:(\"consent.exe\", \"RuntimeBroker.exe\", \"TiWorker.exe\") and not process.parent.name:\"svchost.exe\") or\n (process.name:\"SearchIndexer.exe\" and not process.parent.name:\"services.exe\") or\n (process.name:\"SearchProtocolHost.exe\" and not process.parent.name:(\"SearchIndexer.exe\", \"dllhost.exe\")) or\n (process.name:\"dllhost.exe\" and not process.parent.name:(\"services.exe\", \"svchost.exe\")) or\n (process.name:\"smss.exe\" and not process.parent.name:(\"System\", \"smss.exe\")) or\n (process.name:\"csrss.exe\" and not process.parent.name:(\"smss.exe\", \"svchost.exe\")) or\n (process.name:\"wininit.exe\" and not process.parent.name:\"smss.exe\") or\n (process.name:\"winlogon.exe\" and not process.parent.name:\"smss.exe\") or\n (process.name:(\"lsass.exe\", \"LsaIso.exe\") and not process.parent.name:\"wininit.exe\") or\n (process.name:\"LogonUI.exe\" and not process.parent.name:(\"wininit.exe\", \"winlogon.exe\")) or\n (process.name:\"services.exe\" and not process.parent.name:\"wininit.exe\") or\n (process.name:\"svchost.exe\" and not process.parent.name:(\"MsMpEng.exe\", \"services.exe\")) or\n (process.name:\"spoolsv.exe\" and not process.parent.name:\"services.exe\") or\n (process.name:\"taskhost.exe\" and not process.parent.name:(\"services.exe\", \"svchost.exe\")) or\n (process.name:\"taskhostw.exe\" and not process.parent.name:(\"services.exe\", \"svchost.exe\")) or\n (process.name:\"userinit.exe\" and not process.parent.name:(\"dwm.exe\", \"winlogon.exe\")) or\n (process.name:(\"wmiprvse.exe\", \"wsmprovhost.exe\", \"winrshost.exe\") and not process.parent.name:\"svchost.exe\") or\n /* suspicious child processes */\n (process.parent.name:(\"SearchProtocolHost.exe\", \"taskhost.exe\", \"csrss.exe\") and not process.name:(\"werfault.exe\", \"wermgr.exe\", \"WerFaultSecure.exe\")) or\n (process.parent.name:\"autochk.exe\" and not process.name:(\"chkdsk.exe\", \"doskey.exe\", \"WerFault.exe\")) or\n (process.parent.name:\"smss.exe\" and not process.name:(\"autochk.exe\", \"smss.exe\", \"csrss.exe\", \"wininit.exe\", \"winlogon.exe\", \"setupcl.exe\", \"WerFault.exe\")) or\n (process.parent.name:\"wermgr.exe\" and not process.name:(\"WerFaultSecure.exe\", \"wermgr.exe\", \"WerFault.exe\")) or\n (process.parent.name:\"conhost.exe\" and not process.name:(\"mscorsvw.exe\", \"wermgr.exe\", \"WerFault.exe\", \"WerFaultSecure.exe\"))\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"35df0dd8-092d-4a83-88c1-5151a804f31b","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/35f86980-1fb1-4dff-b311-3be941549c8d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/35f86980-1fb1-4dff-b311-3be941549c8d.json new file mode 100644 index 0000000000000..84f719bcb56d4 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/35f86980-1fb1-4dff-b311-3be941549c8d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"35f86980-1fb1-4dff-b311-3be941549c8d","versions":[{"name":"Network Traffic to Rare Destination Country v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a rare destination country name in the network logs. This can be due to initial access, persistence, command-and-control, or exfiltration activity. For example, when a user clicks on a link in a phishing email or opens a malicious document, a request may be sent to download and run a payload from a server in a country which does not normally appear in network traffic or business work-flows. Malware instances and persistence mechanisms may communicate with command-and-control (C2) infrastructure in their country of origin, which may be an unusual destination country for the source network.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Business workflows that occur very occasionally, and involve a business relationship with an organization in a country that does not routinely appear in network events, can trigger this alert. A new business workflow with an organization in a country with which no workflows previously existed may trigger this alert - although the model will learn that the new destination country is no longer anomalous as the activity becomes ongoing. Business travelers who roam to many countries for brief periods may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML"],"anomaly_threshold":75,"machine_learning_job_id":"rare_destination_country","type":"machine_learning"},{"name":"Network Traffic to Rare Destination Country v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a rare destination country name in the network logs. This can be due to initial access, persistence, command-and-control, or exfiltration activity. For example, when a user clicks on a link in a phishing email or opens a malicious document, a request may be sent to download and run a payload from a server in a country which does not normally appear in network traffic or business work-flows. Malware instances and persistence mechanisms may communicate with command-and-control (C2) infrastructure in their country of origin, which may be an unusual destination country for the source network.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Business workflows that occur very occasionally, and involve a business relationship with an organization in a country that does not routinely appear in network events, can trigger this alert. A new business workflow with an organization in a country with which no workflows previously existed may trigger this alert - although the model will learn that the new destination country is no longer anomalous as the activity becomes ongoing. Business travelers who roam to many countries for brief periods may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML"],"anomaly_threshold":75,"machine_learning_job_id":"rare_destination_country","type":"machine_learning"},{"name":"Network Traffic to Rare Destination Country v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a rare destination country name in the network logs. This can be due to initial access, persistence, command-and-control, or exfiltration activity. For example, when a user clicks on a link in a phishing email or opens a malicious document, a request may be sent to download and run a payload from a server in a country which does not normally appear in network traffic or business work-flows. Malware instances and persistence mechanisms may communicate with command-and-control (C2) infrastructure in their country of origin, which may be an unusual destination country for the source network.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Business workflows that occur very occasionally, and involve a business relationship with an organization in a country that does not routinely appear in network events, can trigger this alert. A new business workflow with an organization in a country with which no workflows previously existed may trigger this alert - although the model will learn that the new destination country is no longer anomalous as the activity becomes ongoing. Business travelers who roam to many countries for brief periods may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML"],"anomaly_threshold":75,"machine_learning_job_id":"rare_destination_country","type":"machine_learning"}]},"id":"35f86980-1fb1-4dff-b311-3be941549c8d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/3688577a-d196-11ec-90b0-f661ea17fbce.json b/fleet-packages/detection-rules-composite/kibana/security_rule/3688577a-d196-11ec-90b0-f661ea17fbce.json new file mode 100644 index 0000000000000..36260b48110df --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/3688577a-d196-11ec-90b0-f661ea17fbce.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"3688577a-d196-11ec-90b0-f661ea17fbce","versions":[{"name":"Process Started from Process ID (PID) File v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a new process starting from a process ID (PID), lock or reboot file within the temporary file storage paradigm (tmpfs) directory /var/run directory. On Linux, the PID files typically hold the process ID to track previous copies running and manage other tasks. Certain Linux malware use the /var/run directory for holding data, executables and other tasks, disguising itself or these files as legitimate PID files.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Process Started from Process ID (PID) File\nDetection alerts from this rule indicate a process spawned from an executable masqueraded as a legitimate PID file which is very unusual and should not occur. Here are some possible avenues of investigation:\n- Examine parent and child process relationships of the new process to determine if other processes are running.\n- Examine the /var/run directory using Osquery to determine other potential PID files with unsually large file sizes, indicative of it being an executable: \"SELECT f.size, f.uid, f.type, f.path from file f WHERE path like '/var/run/%%';\"\n- Examine the reputation of the SHA256 hash from the PID file in a database like VirusTotal to identify additional pivots and artifacts for investigation.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["False-Positives (FP) should be at a minimum with this detection as PID files are meant to hold process IDs, not inherently be executables that spawn processes."],"from":"now-9m","references":["https://www.sandflysecurity.com/blog/linux-file-masquerading-and-malicious-pids-sandfly-1-2-6-update/","https://twitter.com/GossiTheDog/status/1522964028284411907","https://exatrack.com/public/Tricephalic_Hellkeeper.pdf","https://www.elastic.co/security-labs/a-peek-behind-the-bpfdoor"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","BPFDoor"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and user.id == \"0\" and process.executable regex~ \"\"\"/var/run/\\w+\\.(pid|lock|reboot)\"\"\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"Process Started from Process ID (PID) File v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a new process starting from a process ID (PID), lock or reboot file within the temporary file storage paradigm (tmpfs) directory /var/run directory. On Linux, the PID files typically hold the process ID to track previous copies running and manage other tasks. Certain Linux malware use the /var/run directory for holding data, executables and other tasks, disguising itself or these files as legitimate PID files.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Process Started from Process ID (PID) File\nDetection alerts from this rule indicate a process spawned from an executable masqueraded as a legitimate PID file which is very unusual and should not occur. Here are some possible avenues of investigation:\n- Examine parent and child process relationships of the new process to determine if other processes are running.\n- Examine the /var/run directory using Osquery to determine other potential PID files with unsually large file sizes, indicative of it being an executable: \"SELECT f.size, f.uid, f.type, f.path from file f WHERE path like '/var/run/%%';\"\n- Examine the reputation of the SHA256 hash from the PID file in a database like VirusTotal to identify additional pivots and artifacts for investigation.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["False-Positives (FP) should be at a minimum with this detection as PID files are meant to hold process IDs, not inherently be executables that spawn processes."],"from":"now-9m","references":["https://www.sandflysecurity.com/blog/linux-file-masquerading-and-malicious-pids-sandfly-1-2-6-update/","https://twitter.com/GossiTheDog/status/1522964028284411907","https://exatrack.com/public/Tricephalic_Hellkeeper.pdf","https://www.elastic.co/security-labs/a-peek-behind-the-bpfdoor"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","BPFDoor"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and user.id == \"0\" and process.executable regex~ \"\"\"/var/run/\\w+\\.(pid|lock|reboot)\"\"\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"Process Started from Process ID (PID) File v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a new process starting from a process ID (PID), lock or reboot file within the temporary file storage paradigm (tmpfs) directory /var/run directory. On Linux, the PID files typically hold the process ID to track previous copies running and manage other tasks. Certain Linux malware use the /var/run directory for holding data, executables and other tasks, disguising itself or these files as legitimate PID files.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Process Started from Process ID (PID) File\nDetection alerts from this rule indicate a process spawned from an executable masqueraded as a legitimate PID file which is very unusual and should not occur. Here are some possible avenues of investigation:\n- Examine parent and child process relationships of the new process to determine if other processes are running.\n- Examine the /var/run directory using Osquery to determine other potential PID files with unsually large file sizes, indicative of it being an executable: \"SELECT f.size, f.uid, f.type, f.path from file f WHERE path like '/var/run/%%';\"\n- Examine the reputation of the SHA256 hash from the PID file in a database like VirusTotal to identify additional pivots and artifacts for investigation.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["False-Positives (FP) should be at a minimum with this detection as PID files are meant to hold process IDs, not inherently be executables that spawn processes."],"from":"now-9m","references":["https://www.sandflysecurity.com/blog/linux-file-masquerading-and-malicious-pids-sandfly-1-2-6-update/","https://twitter.com/GossiTheDog/status/1522964028284411907","https://exatrack.com/public/Tricephalic_Hellkeeper.pdf","https://www.elastic.co/security-labs/a-peek-behind-the-bpfdoor"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","BPFDoor"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and user.id == \"0\" and process.executable regex~ \"\"\"/var/run/\\w+\\.(pid|lock|reboot)\"\"\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]}]},"id":"3688577a-d196-11ec-90b0-f661ea17fbce","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/36a8e048-d888-4f61-a8b9-0f9e2e40f317.json b/fleet-packages/detection-rules-composite/kibana/security_rule/36a8e048-d888-4f61-a8b9-0f9e2e40f317.json new file mode 100644 index 0000000000000..cf52d837c9c75 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/36a8e048-d888-4f61-a8b9-0f9e2e40f317.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"36a8e048-d888-4f61-a8b9-0f9e2e40f317","versions":[{"name":"Suspicious ImagePath Service Creation v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a suspicious ImagePath value. This could be an indication of an adversary attempting to stealthily persist or escalate privileges through abnormal service creation.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"registry where registry.path : \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Services\\\\*\\\\ImagePath\" and\n /* add suspicious registry ImagePath values here */\n registry.data.strings : (\"%COMSPEC%*\", \"*\\\\.\\\\pipe\\\\*\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},{"name":"Suspicious ImagePath Service Creation v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a suspicious ImagePath value. This could be an indication of an adversary attempting to stealthily persist or escalate privileges through abnormal service creation.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"registry where registry.path : \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Services\\\\*\\\\ImagePath\" and\n /* add suspicious registry ImagePath values here */\n registry.data.strings : (\"%COMSPEC%*\", \"*\\\\.\\\\pipe\\\\*\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},{"name":"Suspicious ImagePath Service Creation v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a suspicious ImagePath value. This could be an indication of an adversary attempting to stealthily persist or escalate privileges through abnormal service creation.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"registry where registry.path : \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Services\\\\*\\\\ImagePath\" and\n /* add suspicious registry ImagePath values here */\n registry.data.strings : (\"%COMSPEC%*\", \"*\\\\.\\\\pipe\\\\*\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]}]},"id":"36a8e048-d888-4f61-a8b9-0f9e2e40f317","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/378f9024-8a0c-46a5-aa08-ce147ac73a4e.json b/fleet-packages/detection-rules-composite/kibana/security_rule/378f9024-8a0c-46a5-aa08-ce147ac73a4e.json new file mode 100644 index 0000000000000..4cc3a091f61c0 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/378f9024-8a0c-46a5-aa08-ce147ac73a4e.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"378f9024-8a0c-46a5-aa08-ce147ac73a4e","versions":[{"name":"AWS RDS Security Group Creation v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an Amazon Relational Database Service (RDS) Security group.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["An RDS security group may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Security group creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBSecurityGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/","subtechnique":[{"id":"T1136.003","name":"Cloud Account","reference":"https://attack.mitre.org/techniques/T1136/003/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:CreateDBSecurityGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS RDS Security Group Creation v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an Amazon Relational Database Service (RDS) Security group.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["An RDS security group may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Security group creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBSecurityGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/","subtechnique":[{"id":"T1136.003","name":"Cloud Account","reference":"https://attack.mitre.org/techniques/T1136/003/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:CreateDBSecurityGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS RDS Security Group Creation v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an Amazon Relational Database Service (RDS) Security group.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["An RDS security group may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Security group creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBSecurityGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/","subtechnique":[{"id":"T1136.003","name":"Cloud Account","reference":"https://attack.mitre.org/techniques/T1136/003/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:CreateDBSecurityGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"378f9024-8a0c-46a5-aa08-ce147ac73a4e","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/37994bca-0611-4500-ab67-5588afe73b77.json b/fleet-packages/detection-rules-composite/kibana/security_rule/37994bca-0611-4500-ab67-5588afe73b77.json new file mode 100644 index 0000000000000..7a80f6be03729 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/37994bca-0611-4500-ab67-5588afe73b77.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"37994bca-0611-4500-ab67-5588afe73b77","versions":[{"name":"Azure Active Directory High Risk Sign-in v103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies high risk Azure Active Directory (AD) sign-ins by leveraging Microsoft's Identity Protection machine learning and heuristics. Identity Protection categorizes risk into three tiers: low, medium, and high. While Microsoft does not provide specific details about how risk is calculated, each level brings higher confidence that the user or sign-in is compromised.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Azure Active Directory High Risk Sign-in\n\nMicrosoft Identity Protection is an Azure AD security tool that detects various types of identity risks and attacks.\n\nThis rule identifies events produced by Microsoft Identity Protection with high risk levels or high aggregated risk level.\n\n#### Possible investigation steps\n\n- Identify the Risk Detection that triggered the event. A list with descriptions can be found [here](https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/concept-identity-protection-risks#risk-types-and-detection).\n- Identify the user account involved and validate whether the suspicious activity is normal for that user.\n - Consider the source IP address and geolocation for the involved user account. Do they look normal?\n - Consider the device used to sign in. Is it registered and compliant?\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\nIf this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and device conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Willem D'Haese"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/conditional-access/howto-conditional-access-policy-risk","https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/overview-identity-protection","https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/howto-identity-protection-investigate-risk"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.signinlogs and\n (azure.signinlogs.properties.risk_level_during_signin:high or azure.signinlogs.properties.risk_level_aggregated:high) and\n event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.signinlogs.properties.risk_level_aggregated","type":"keyword"},{"ecs":false,"name":"azure.signinlogs.properties.risk_level_during_signin","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule.\n\nNote that details for `azure.signinlogs.properties.risk_level_during_signin` and `azure.signinlogs.properties.risk_level_aggregated`\nare only available for Azure AD Premium P2 customers. All other customers will be returned `hidden`."},{"name":"Azure Active Directory High Risk Sign-in v103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies high risk Azure Active Directory (AD) sign-ins by leveraging Microsoft's Identity Protection machine learning and heuristics. Identity Protection categorizes risk into three tiers: low, medium, and high. While Microsoft does not provide specific details about how risk is calculated, each level brings higher confidence that the user or sign-in is compromised.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Azure Active Directory High Risk Sign-in\n\nMicrosoft Identity Protection is an Azure AD security tool that detects various types of identity risks and attacks.\n\nThis rule identifies events produced by Microsoft Identity Protection with high risk levels or high aggregated risk level.\n\n#### Possible investigation steps\n\n- Identify the Risk Detection that triggered the event. A list with descriptions can be found [here](https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/concept-identity-protection-risks#risk-types-and-detection).\n- Identify the user account involved and validate whether the suspicious activity is normal for that user.\n - Consider the source IP address and geolocation for the involved user account. Do they look normal?\n - Consider the device used to sign in. Is it registered and compliant?\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\nIf this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and device conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Willem D'Haese"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/conditional-access/howto-conditional-access-policy-risk","https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/overview-identity-protection","https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/howto-identity-protection-investigate-risk"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.signinlogs and\n (azure.signinlogs.properties.risk_level_during_signin:high or azure.signinlogs.properties.risk_level_aggregated:high) and\n event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.signinlogs.properties.risk_level_aggregated","type":"keyword"},{"ecs":false,"name":"azure.signinlogs.properties.risk_level_during_signin","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule.\n\nNote that details for `azure.signinlogs.properties.risk_level_during_signin` and `azure.signinlogs.properties.risk_level_aggregated`\nare only available for Azure AD Premium P2 customers. All other customers will be returned `hidden`."},{"name":"Azure Active Directory High Risk Sign-in v103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies high risk Azure Active Directory (AD) sign-ins by leveraging Microsoft's Identity Protection machine learning and heuristics. Identity Protection categorizes risk into three tiers: low, medium, and high. While Microsoft does not provide specific details about how risk is calculated, each level brings higher confidence that the user or sign-in is compromised.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Azure Active Directory High Risk Sign-in\n\nMicrosoft Identity Protection is an Azure AD security tool that detects various types of identity risks and attacks.\n\nThis rule identifies events produced by Microsoft Identity Protection with high risk levels or high aggregated risk level.\n\n#### Possible investigation steps\n\n- Identify the Risk Detection that triggered the event. A list with descriptions can be found [here](https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/concept-identity-protection-risks#risk-types-and-detection).\n- Identify the user account involved and validate whether the suspicious activity is normal for that user.\n - Consider the source IP address and geolocation for the involved user account. Do they look normal?\n - Consider the device used to sign in. Is it registered and compliant?\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\nIf this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and device conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Willem D'Haese"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/conditional-access/howto-conditional-access-policy-risk","https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/overview-identity-protection","https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/howto-identity-protection-investigate-risk"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.signinlogs and\n (azure.signinlogs.properties.risk_level_during_signin:high or azure.signinlogs.properties.risk_level_aggregated:high) and\n event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.signinlogs.properties.risk_level_aggregated","type":"keyword"},{"ecs":false,"name":"azure.signinlogs.properties.risk_level_during_signin","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule.\n\nNote that details for `azure.signinlogs.properties.risk_level_during_signin` and `azure.signinlogs.properties.risk_level_aggregated`\nare only available for Azure AD Premium P2 customers. All other customers will be returned `hidden`."}]},"id":"37994bca-0611-4500-ab67-5588afe73b77","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/37b211e8-4e2f-440f-86d8-06cc8f158cfa.json b/fleet-packages/detection-rules-composite/kibana/security_rule/37b211e8-4e2f-440f-86d8-06cc8f158cfa.json new file mode 100644 index 0000000000000..9a17312d8948a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/37b211e8-4e2f-440f-86d8-06cc8f158cfa.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"37b211e8-4e2f-440f-86d8-06cc8f158cfa","versions":[{"name":"AWS Execution via System Manager v103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of commands and scripts via System Manager. Execution methods such as RunShellScript, RunPowerShellScript, and alike can be abused by an authenticated attacker to install a backdoor or to interact with a compromised instance via reverse-shell using system only commands.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS Execution via System Manager\n\nAmazon EC2 Systems Manager is a management service designed to help users automatically collect software inventory, apply\noperating system patches, create system images, and configure Windows and Linux operating systems.\n\nThis rule looks for the execution of commands and scripts using System Manager. Note that the actual contents of these\nscripts and commands are not included in the event, so analysts must gain visibility using an host-level security product.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate that the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Investigate the commands or scripts using host-level visibility.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences involving other users.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Suspicious commands from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-plugins.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Initial Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ssm.amazonaws.com and event.action:SendCommand and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Execution via System Manager v103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of commands and scripts via System Manager. Execution methods such as RunShellScript, RunPowerShellScript, and alike can be abused by an authenticated attacker to install a backdoor or to interact with a compromised instance via reverse-shell using system only commands.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS Execution via System Manager\n\nAmazon EC2 Systems Manager is a management service designed to help users automatically collect software inventory, apply\noperating system patches, create system images, and configure Windows and Linux operating systems.\n\nThis rule looks for the execution of commands and scripts using System Manager. Note that the actual contents of these\nscripts and commands are not included in the event, so analysts must gain visibility using an host-level security product.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate that the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Investigate the commands or scripts using host-level visibility.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences involving other users.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Suspicious commands from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-plugins.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Initial Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ssm.amazonaws.com and event.action:SendCommand and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Execution via System Manager v103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of commands and scripts via System Manager. Execution methods such as RunShellScript, RunPowerShellScript, and alike can be abused by an authenticated attacker to install a backdoor or to interact with a compromised instance via reverse-shell using system only commands.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS Execution via System Manager\n\nAmazon EC2 Systems Manager is a management service designed to help users automatically collect software inventory, apply\noperating system patches, create system images, and configure Windows and Linux operating systems.\n\nThis rule looks for the execution of commands and scripts using System Manager. Note that the actual contents of these\nscripts and commands are not included in the event, so analysts must gain visibility using an host-level security product.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate that the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Investigate the commands or scripts using host-level visibility.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences involving other users.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Suspicious commands from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-plugins.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Initial Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ssm.amazonaws.com and event.action:SendCommand and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"37b211e8-4e2f-440f-86d8-06cc8f158cfa","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/37f638ea-909d-4f94-9248-edd21e4a9906.json b/fleet-packages/detection-rules-composite/kibana/security_rule/37f638ea-909d-4f94-9248-edd21e4a9906.json new file mode 100644 index 0000000000000..e8cfe799dca6a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/37f638ea-909d-4f94-9248-edd21e4a9906.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"37f638ea-909d-4f94-9248-edd21e4a9906","versions":[{"name":"Finder Sync Plugin Registered and Enabled v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Finder Sync plugins enable users to extend Finder’s functionality by modifying the user interface. Adversaries may abuse this feature by adding a rogue Finder Plugin to repeatedly execute malicious payloads for persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted Finder Sync Plugins"],"from":"now-9m","references":["https://github.com/specterops/presentations/raw/master/Leo%20Pitt/Hey_Im_Still_in_Here_Modern_macOS_Persistence_SO-CON2020.pdf"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.name : \"pluginkit\" and\n process.args : \"-e\" and process.args : \"use\" and process.args : \"-i\" and\n not process.args :\n (\n \"com.google.GoogleDrive.FinderSyncAPIExtension\",\n \"com.google.drivefs.findersync\",\n \"com.boxcryptor.osx.Rednif\",\n \"com.adobe.accmac.ACCFinderSync\",\n \"com.microsoft.OneDrive.FinderSync\",\n \"com.insynchq.Insync.Insync-Finder-Integration\",\n \"com.box.desktop.findersyncext\"\n ) and\n not process.parent.executable : (\n \"/Library/Application Support/IDriveforMac/IDriveHelperTools/FinderPluginApp.app/Contents/MacOS/FinderPluginApp\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},{"name":"Finder Sync Plugin Registered and Enabled v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Finder Sync plugins enable users to extend Finder’s functionality by modifying the user interface. Adversaries may abuse this feature by adding a rogue Finder Plugin to repeatedly execute malicious payloads for persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted Finder Sync Plugins"],"from":"now-9m","references":["https://github.com/specterops/presentations/raw/master/Leo%20Pitt/Hey_Im_Still_in_Here_Modern_macOS_Persistence_SO-CON2020.pdf"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.name : \"pluginkit\" and\n process.args : \"-e\" and process.args : \"use\" and process.args : \"-i\" and\n not process.args :\n (\n \"com.google.GoogleDrive.FinderSyncAPIExtension\",\n \"com.google.drivefs.findersync\",\n \"com.boxcryptor.osx.Rednif\",\n \"com.adobe.accmac.ACCFinderSync\",\n \"com.microsoft.OneDrive.FinderSync\",\n \"com.insynchq.Insync.Insync-Finder-Integration\",\n \"com.box.desktop.findersyncext\"\n ) and\n not process.parent.executable : (\n \"/Library/Application Support/IDriveforMac/IDriveHelperTools/FinderPluginApp.app/Contents/MacOS/FinderPluginApp\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},{"name":"Finder Sync Plugin Registered and Enabled v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Finder Sync plugins enable users to extend Finder’s functionality by modifying the user interface. Adversaries may abuse this feature by adding a rogue Finder Plugin to repeatedly execute malicious payloads for persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted Finder Sync Plugins"],"from":"now-9m","references":["https://github.com/specterops/presentations/raw/master/Leo%20Pitt/Hey_Im_Still_in_Here_Modern_macOS_Persistence_SO-CON2020.pdf"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.name : \"pluginkit\" and\n process.args : \"-e\" and process.args : \"use\" and process.args : \"-i\" and\n not process.args :\n (\n \"com.google.GoogleDrive.FinderSyncAPIExtension\",\n \"com.google.drivefs.findersync\",\n \"com.boxcryptor.osx.Rednif\",\n \"com.adobe.accmac.ACCFinderSync\",\n \"com.microsoft.OneDrive.FinderSync\",\n \"com.insynchq.Insync.Insync-Finder-Integration\",\n \"com.box.desktop.findersyncext\"\n ) and\n not process.parent.executable : (\n \"/Library/Application Support/IDriveforMac/IDriveHelperTools/FinderPluginApp.app/Contents/MacOS/FinderPluginApp\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]}]},"id":"37f638ea-909d-4f94-9248-edd21e4a9906","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/3805c3dc-f82c-4f8d-891e-63c24d3102b0.json b/fleet-packages/detection-rules-composite/kibana/security_rule/3805c3dc-f82c-4f8d-891e-63c24d3102b0.json new file mode 100644 index 0000000000000..0c19d36692ac2 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/3805c3dc-f82c-4f8d-891e-63c24d3102b0.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"3805c3dc-f82c-4f8d-891e-63c24d3102b0","versions":[{"name":"Attempted Bypass of Okta MFA v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to bypass Okta multi-factor authentication (MFA). An adversary may attempt to bypass the Okta MFA policies configured for an organization in order to obtain unauthorized access to an application.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1111","name":"Multi-Factor Authentication Interception","reference":"https://attack.mitre.org/techniques/T1111/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.mfa.attempt_bypass\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempted Bypass of Okta MFA v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to bypass Okta multi-factor authentication (MFA). An adversary may attempt to bypass the Okta MFA policies configured for an organization in order to obtain unauthorized access to an application.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1111","name":"Multi-Factor Authentication Interception","reference":"https://attack.mitre.org/techniques/T1111/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.mfa.attempt_bypass\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempted Bypass of Okta MFA v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to bypass Okta multi-factor authentication (MFA). An adversary may attempt to bypass the Okta MFA policies configured for an organization in order to obtain unauthorized access to an application.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1111","name":"Multi-Factor Authentication Interception","reference":"https://attack.mitre.org/techniques/T1111/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.mfa.attempt_bypass\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"3805c3dc-f82c-4f8d-891e-63c24d3102b0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/3838e0e3-1850-4850-a411-2e8c5ba40ba8.json b/fleet-packages/detection-rules-composite/kibana/security_rule/3838e0e3-1850-4850-a411-2e8c5ba40ba8.json new file mode 100644 index 0000000000000..15080e0bede20 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/3838e0e3-1850-4850-a411-2e8c5ba40ba8.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"3838e0e3-1850-4850-a411-2e8c5ba40ba8","versions":[{"name":"Network Connection via Certutil v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies certutil.exe making a network connection. Adversaries could abuse certutil.exe to download a certificate, or malware, from a remote URL.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Network Connection via Certutil\n\nAttackers can abuse `certutil.exe` to download malware, offensive security tools, and certificates from external sources\nin order to take the next steps in a compromised environment.\n\nThis rule looks for network events where `certutil.exe` contacts IP ranges other than the ones specified in\n[IANA IPv4 Special-Purpose Address Registry](https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml)\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate if the downloaded file was executed.\n- Determine the context in which `certutil.exe` and the file were run.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the downloaded file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. If trusted software uses this command and the triage has not identified\nanything suspicious, this alert can be closed as a false positive.\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml","https://frsecure.com/malware-incident-response-playbook/"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"certutil.exe\" and event.type == \"start\"]\n [network where process.name : \"certutil.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\",\n \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\",\n \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Network Connection via Certutil v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies certutil.exe making a network connection. Adversaries could abuse certutil.exe to download a certificate, or malware, from a remote URL.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Network Connection via Certutil\n\nAttackers can abuse `certutil.exe` to download malware, offensive security tools, and certificates from external sources\nin order to take the next steps in a compromised environment.\n\nThis rule looks for network events where `certutil.exe` contacts IP ranges other than the ones specified in\n[IANA IPv4 Special-Purpose Address Registry](https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml)\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate if the downloaded file was executed.\n- Determine the context in which `certutil.exe` and the file were run.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the downloaded file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. If trusted software uses this command and the triage has not identified\nanything suspicious, this alert can be closed as a false positive.\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml","https://frsecure.com/malware-incident-response-playbook/"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"certutil.exe\" and event.type == \"start\"]\n [network where process.name : \"certutil.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\",\n \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\",\n \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Network Connection via Certutil v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies certutil.exe making a network connection. Adversaries could abuse certutil.exe to download a certificate, or malware, from a remote URL.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Network Connection via Certutil\n\nAttackers can abuse `certutil.exe` to download malware, offensive security tools, and certificates from external sources\nin order to take the next steps in a compromised environment.\n\nThis rule looks for network events where `certutil.exe` contacts IP ranges other than the ones specified in\n[IANA IPv4 Special-Purpose Address Registry](https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml)\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate if the downloaded file was executed.\n- Determine the context in which `certutil.exe` and the file were run.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the downloaded file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. If trusted software uses this command and the triage has not identified\nanything suspicious, this alert can be closed as a false positive.\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml","https://frsecure.com/malware-incident-response-playbook/"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"certutil.exe\" and event.type == \"start\"]\n [network where process.name : \"certutil.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\",\n \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\",\n \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"3838e0e3-1850-4850-a411-2e8c5ba40ba8","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/38948d29-3d5d-42e3-8aec-be832aaaf8eb.json b/fleet-packages/detection-rules-composite/kibana/security_rule/38948d29-3d5d-42e3-8aec-be832aaaf8eb.json new file mode 100644 index 0000000000000..e0be6e24bed35 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/38948d29-3d5d-42e3-8aec-be832aaaf8eb.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"38948d29-3d5d-42e3-8aec-be832aaaf8eb","versions":[{"name":"Prompt for Credentials with OSASCRIPT v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of osascript to execute scripts via standard input that may prompt a user with a rogue dialog for credentials.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/EmpireProject/EmPyre/blob/master/lib/modules/collection/osx/prompt.py","https://ss64.com/osx/osascript.html"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1056","name":"Input Capture","reference":"https://attack.mitre.org/techniques/T1056/","subtechnique":[{"id":"T1056.002","name":"GUI Input Capture","reference":"https://attack.mitre.org/techniques/T1056/002/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.name : \"osascript\" and\n process.command_line : \"osascript*display dialog*password*\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Prompt for Credentials with OSASCRIPT v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of osascript to execute scripts via standard input that may prompt a user with a rogue dialog for credentials.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/EmpireProject/EmPyre/blob/master/lib/modules/collection/osx/prompt.py","https://ss64.com/osx/osascript.html"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1056","name":"Input Capture","reference":"https://attack.mitre.org/techniques/T1056/","subtechnique":[{"id":"T1056.002","name":"GUI Input Capture","reference":"https://attack.mitre.org/techniques/T1056/002/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.name : \"osascript\" and\n process.command_line : \"osascript*display dialog*password*\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Prompt for Credentials with OSASCRIPT v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of osascript to execute scripts via standard input that may prompt a user with a rogue dialog for credentials.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/EmpireProject/EmPyre/blob/master/lib/modules/collection/osx/prompt.py","https://ss64.com/osx/osascript.html"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1056","name":"Input Capture","reference":"https://attack.mitre.org/techniques/T1056/","subtechnique":[{"id":"T1056.002","name":"GUI Input Capture","reference":"https://attack.mitre.org/techniques/T1056/002/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.name : \"osascript\" and\n process.command_line : \"osascript*display dialog*password*\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"38948d29-3d5d-42e3-8aec-be832aaaf8eb","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/38e5acdd-5f20-4d99-8fe4-f0a1a592077f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/38e5acdd-5f20-4d99-8fe4-f0a1a592077f.json new file mode 100644 index 0000000000000..5c24289738413 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/38e5acdd-5f20-4d99-8fe4-f0a1a592077f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"38e5acdd-5f20-4d99-8fe4-f0a1a592077f","versions":[{"name":"User Added as Owner for Azure Service Principal v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user is added as an owner for an Azure service principal. The service principal object defines what the application can do in the specific tenant, who can access the application, and what resources the app can access. A service principal object is created when an application is given permission to access resources in a tenant. An adversary may add a user account as an owner for a service principal and use that account in order to define what an application can do in the Azure AD tenant.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/develop/app-objects-and-service-principals"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Add owner to service principal\" and event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"User Added as Owner for Azure Service Principal v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user is added as an owner for an Azure service principal. The service principal object defines what the application can do in the specific tenant, who can access the application, and what resources the app can access. A service principal object is created when an application is given permission to access resources in a tenant. An adversary may add a user account as an owner for a service principal and use that account in order to define what an application can do in the Azure AD tenant.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/develop/app-objects-and-service-principals"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Add owner to service principal\" and event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"User Added as Owner for Azure Service Principal v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user is added as an owner for an Azure service principal. The service principal object defines what the application can do in the specific tenant, who can access the application, and what resources the app can access. A service principal object is created when an application is given permission to access resources in a tenant. An adversary may add a user account as an owner for a service principal and use that account in order to define what an application can do in the Azure AD tenant.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/develop/app-objects-and-service-principals"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Add owner to service principal\" and event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"38e5acdd-5f20-4d99-8fe4-f0a1a592077f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/39144f38-5284-4f8e-a2ae-e3fd628d90b0.json b/fleet-packages/detection-rules-composite/kibana/security_rule/39144f38-5284-4f8e-a2ae-e3fd628d90b0.json new file mode 100644 index 0000000000000..efdea45b73ccf --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/39144f38-5284-4f8e-a2ae-e3fd628d90b0.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"39144f38-5284-4f8e-a2ae-e3fd628d90b0","versions":[{"name":"AWS EC2 Network Access Control List Creation v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an AWS Elastic Compute Cloud (EC2) network access control list (ACL) or an entry in a network ACL with a specified rule number.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Network ACL's may be created by a network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Network ACL creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-network-acl.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkAcl.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-network-acl-entry.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkAclEntry.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1133","name":"External Remote Services","reference":"https://attack.mitre.org/techniques/T1133/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:(CreateNetworkAcl or CreateNetworkAclEntry) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS EC2 Network Access Control List Creation v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an AWS Elastic Compute Cloud (EC2) network access control list (ACL) or an entry in a network ACL with a specified rule number.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Network ACL's may be created by a network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Network ACL creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-network-acl.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkAcl.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-network-acl-entry.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkAclEntry.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1133","name":"External Remote Services","reference":"https://attack.mitre.org/techniques/T1133/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:(CreateNetworkAcl or CreateNetworkAclEntry) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS EC2 Network Access Control List Creation v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an AWS Elastic Compute Cloud (EC2) network access control list (ACL) or an entry in a network ACL with a specified rule number.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Network ACL's may be created by a network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Network ACL creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-network-acl.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkAcl.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-network-acl-entry.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkAclEntry.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1133","name":"External Remote Services","reference":"https://attack.mitre.org/techniques/T1133/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:(CreateNetworkAcl or CreateNetworkAclEntry) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"39144f38-5284-4f8e-a2ae-e3fd628d90b0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/397945f3-d39a-4e6f-8bcb-9656c2031438.json b/fleet-packages/detection-rules-composite/kibana/security_rule/397945f3-d39a-4e6f-8bcb-9656c2031438.json new file mode 100644 index 0000000000000..58fc84f54969f --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/397945f3-d39a-4e6f-8bcb-9656c2031438.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"397945f3-d39a-4e6f-8bcb-9656c2031438","versions":[{"name":"Persistence via Microsoft Outlook VBA v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to establish persistence on an endpoint by installing a rogue Microsoft Outlook VBA Template.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A legitimate VBA for Outlook is usually configured interactively via OUTLOOK.EXE."],"from":"now-9m","references":["https://www.mdsec.co.uk/2020/11/a-fresh-outlook-on-mail-based-persistence/","https://www.linkedin.com/pulse/outlook-backdoor-using-vba-samir-b-/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1137","name":"Office Application Startup","reference":"https://attack.mitre.org/techniques/T1137/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path : \"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Outlook\\\\VbaProject.OTM\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Persistence via Microsoft Outlook VBA v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to establish persistence on an endpoint by installing a rogue Microsoft Outlook VBA Template.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A legitimate VBA for Outlook is usually configured interactively via OUTLOOK.EXE."],"from":"now-9m","references":["https://www.mdsec.co.uk/2020/11/a-fresh-outlook-on-mail-based-persistence/","https://www.linkedin.com/pulse/outlook-backdoor-using-vba-samir-b-/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1137","name":"Office Application Startup","reference":"https://attack.mitre.org/techniques/T1137/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path : \"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Outlook\\\\VbaProject.OTM\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Persistence via Microsoft Outlook VBA v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to establish persistence on an endpoint by installing a rogue Microsoft Outlook VBA Template.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A legitimate VBA for Outlook is usually configured interactively via OUTLOOK.EXE."],"from":"now-9m","references":["https://www.mdsec.co.uk/2020/11/a-fresh-outlook-on-mail-based-persistence/","https://www.linkedin.com/pulse/outlook-backdoor-using-vba-samir-b-/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1137","name":"Office Application Startup","reference":"https://attack.mitre.org/techniques/T1137/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path : \"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Outlook\\\\VbaProject.OTM\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"397945f3-d39a-4e6f-8bcb-9656c2031438","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/3a59fc81-99d3-47ea-8cd6-d48d561fca20.json b/fleet-packages/detection-rules-composite/kibana/security_rule/3a59fc81-99d3-47ea-8cd6-d48d561fca20.json new file mode 100644 index 0000000000000..6fdaa5c4b5cd8 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/3a59fc81-99d3-47ea-8cd6-d48d561fca20.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"3a59fc81-99d3-47ea-8cd6-d48d561fca20","versions":[{"name":"Potential DNS Tunneling via NsLookup v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule identifies a large number (15) of nslookup.exe executions with an explicit query type from the same host. This may indicate command and control activity utilizing the DNS protocol.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential DNS Tunneling via NsLookup\n\nAttackers can abuse existing network rules that allow DNS communication with external resources to use the protocol as\ntheir command and control and/or exfiltration channel.\n\nDNS queries can be used to infiltrate data such as commands to be run, malicious files, etc., and also for exfiltration,\nsince queries can be used to send data to the attacker-controlled DNS server. This process is commonly known as DNS tunneling.\n\nMore information on how tunneling works and how it can be abused can be found on\n[Palo Alto Unit42 Research](https://unit42.paloaltonetworks.com/dns-tunneling-how-dns-can-be-abused-by-malicious-actors).\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the DNS query and identify the information sent.\n- Extract this communication's indicators of compromise (IoCs) and use traffic logs to search for other potentially\ncompromised hosts.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. If the parent process is trusted and the data sent is not sensitive nor\ncommand and control related, this alert can be closed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Immediately block the identified indicators of compromise (IoCs).\n- Implement any temporary network rules, procedures, and segmentation required to contain the attack.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Update firewall rules to be more restrictive.\n- Reimage the host operating system or restore the compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://unit42.paloaltonetworks.com/dns-tunneling-in-the-wild-overview-of-oilrigs-dns-tunneling/"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.004","name":"DNS","reference":"https://attack.mitre.org/techniques/T1071/004/"}]}]}],"query":"event.category:process and event.type:start and process.name:nslookup.exe and process.args:(-querytype=* or -qt=* or -q=* or -type=*)\n","threshold":{"field":["host.id"],"value":15},"type":"threshold","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Potential DNS Tunneling via NsLookup v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule identifies a large number (15) of nslookup.exe executions with an explicit query type from the same host. This may indicate command and control activity utilizing the DNS protocol.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential DNS Tunneling via NsLookup\n\nAttackers can abuse existing network rules that allow DNS communication with external resources to use the protocol as\ntheir command and control and/or exfiltration channel.\n\nDNS queries can be used to infiltrate data such as commands to be run, malicious files, etc., and also for exfiltration,\nsince queries can be used to send data to the attacker-controlled DNS server. This process is commonly known as DNS tunneling.\n\nMore information on how tunneling works and how it can be abused can be found on\n[Palo Alto Unit42 Research](https://unit42.paloaltonetworks.com/dns-tunneling-how-dns-can-be-abused-by-malicious-actors).\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the DNS query and identify the information sent.\n- Extract this communication's indicators of compromise (IoCs) and use traffic logs to search for other potentially\ncompromised hosts.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. If the parent process is trusted and the data sent is not sensitive nor\ncommand and control related, this alert can be closed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Immediately block the identified indicators of compromise (IoCs).\n- Implement any temporary network rules, procedures, and segmentation required to contain the attack.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Update firewall rules to be more restrictive.\n- Reimage the host operating system or restore the compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://unit42.paloaltonetworks.com/dns-tunneling-in-the-wild-overview-of-oilrigs-dns-tunneling/"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.004","name":"DNS","reference":"https://attack.mitre.org/techniques/T1071/004/"}]}]}],"query":"event.category:process and event.type:start and process.name:nslookup.exe and process.args:(-querytype=* or -qt=* or -q=* or -type=*)\n","threshold":{"field":["host.id"],"value":15},"type":"threshold","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Potential DNS Tunneling via NsLookup v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule identifies a large number (15) of nslookup.exe executions with an explicit query type from the same host. This may indicate command and control activity utilizing the DNS protocol.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential DNS Tunneling via NsLookup\n\nAttackers can abuse existing network rules that allow DNS communication with external resources to use the protocol as\ntheir command and control and/or exfiltration channel.\n\nDNS queries can be used to infiltrate data such as commands to be run, malicious files, etc., and also for exfiltration,\nsince queries can be used to send data to the attacker-controlled DNS server. This process is commonly known as DNS tunneling.\n\nMore information on how tunneling works and how it can be abused can be found on\n[Palo Alto Unit42 Research](https://unit42.paloaltonetworks.com/dns-tunneling-how-dns-can-be-abused-by-malicious-actors).\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the DNS query and identify the information sent.\n- Extract this communication's indicators of compromise (IoCs) and use traffic logs to search for other potentially\ncompromised hosts.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. If the parent process is trusted and the data sent is not sensitive nor\ncommand and control related, this alert can be closed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Immediately block the identified indicators of compromise (IoCs).\n- Implement any temporary network rules, procedures, and segmentation required to contain the attack.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Update firewall rules to be more restrictive.\n- Reimage the host operating system or restore the compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://unit42.paloaltonetworks.com/dns-tunneling-in-the-wild-overview-of-oilrigs-dns-tunneling/"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.004","name":"DNS","reference":"https://attack.mitre.org/techniques/T1071/004/"}]}]}],"query":"event.category:process and event.type:start and process.name:nslookup.exe and process.args:(-querytype=* or -qt=* or -q=* or -type=*)\n","threshold":{"field":["host.id"],"value":15},"type":"threshold","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"3a59fc81-99d3-47ea-8cd6-d48d561fca20","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/3ad49c61-7adc-42c1-b788-732eda2f5abf.json b/fleet-packages/detection-rules-composite/kibana/security_rule/3ad49c61-7adc-42c1-b788-732eda2f5abf.json new file mode 100644 index 0000000000000..fa22af5056b59 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/3ad49c61-7adc-42c1-b788-732eda2f5abf.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"3ad49c61-7adc-42c1-b788-732eda2f5abf","versions":[{"name":"VNC (Virtual Network Computing) to the Internet v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of VNC traffic to the Internet. VNC is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["VNC connections may be made directly to Linux cloud server instances but such connections are usually made only by engineers. VNC is less common than SSH or RDP but may be required by some work flows such as remote access and support for specialized software products or servers. Such work-flows are usually known and not unexpected. Usage that is unfamiliar to server or network owners can be unexpected and suspicious."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1219","name":"Remote Access Software","reference":"https://attack.mitre.org/techniques/T1219/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and destination.port >= 5800 and destination.port <= 5810 and\n source.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n ) and\n not destination.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},{"name":"VNC (Virtual Network Computing) to the Internet v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of VNC traffic to the Internet. VNC is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["VNC connections may be made directly to Linux cloud server instances but such connections are usually made only by engineers. VNC is less common than SSH or RDP but may be required by some work flows such as remote access and support for specialized software products or servers. Such work-flows are usually known and not unexpected. Usage that is unfamiliar to server or network owners can be unexpected and suspicious."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1219","name":"Remote Access Software","reference":"https://attack.mitre.org/techniques/T1219/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and destination.port >= 5800 and destination.port <= 5810 and\n source.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n ) and\n not destination.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},{"name":"VNC (Virtual Network Computing) to the Internet v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of VNC traffic to the Internet. VNC is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["VNC connections may be made directly to Linux cloud server instances but such connections are usually made only by engineers. VNC is less common than SSH or RDP but may be required by some work flows such as remote access and support for specialized software products or servers. Such work-flows are usually known and not unexpected. Usage that is unfamiliar to server or network owners can be unexpected and suspicious."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1219","name":"Remote Access Software","reference":"https://attack.mitre.org/techniques/T1219/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and destination.port >= 5800 and destination.port <= 5810 and\n source.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n ) and\n not destination.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]}]},"id":"3ad49c61-7adc-42c1-b788-732eda2f5abf","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/3ad77ed4-4dcf-4c51-8bfc-e3f7ce316b2f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/3ad77ed4-4dcf-4c51-8bfc-e3f7ce316b2f.json new file mode 100644 index 0000000000000..380f72c2e4e26 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/3ad77ed4-4dcf-4c51-8bfc-e3f7ce316b2f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"3ad77ed4-4dcf-4c51-8bfc-e3f7ce316b2f","versions":[{"name":"Azure Full Network Packet Capture Detected v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential full network packet capture in Azure. Packet Capture is an Azure Network Watcher feature that can be used to inspect network traffic. This feature can potentially be abused to read sensitive data from unencrypted internal traffic.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Full Network Packet Capture may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Full Network Packet Capture from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1040","name":"Network Sniffing","reference":"https://attack.mitre.org/techniques/T1040/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\n (\n \"MICROSOFT.NETWORK/*/STARTPACKETCAPTURE/ACTION\" or\n \"MICROSOFT.NETWORK/*/VPNCONNECTIONS/STARTPACKETCAPTURE/ACTION\" or\n \"MICROSOFT.NETWORK/*/PACKETCAPTURES/WRITE\"\n ) and\nevent.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Full Network Packet Capture Detected v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential full network packet capture in Azure. Packet Capture is an Azure Network Watcher feature that can be used to inspect network traffic. This feature can potentially be abused to read sensitive data from unencrypted internal traffic.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Full Network Packet Capture may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Full Network Packet Capture from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1040","name":"Network Sniffing","reference":"https://attack.mitre.org/techniques/T1040/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\n (\n \"MICROSOFT.NETWORK/*/STARTPACKETCAPTURE/ACTION\" or\n \"MICROSOFT.NETWORK/*/VPNCONNECTIONS/STARTPACKETCAPTURE/ACTION\" or\n \"MICROSOFT.NETWORK/*/PACKETCAPTURES/WRITE\"\n ) and\nevent.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Full Network Packet Capture Detected v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential full network packet capture in Azure. Packet Capture is an Azure Network Watcher feature that can be used to inspect network traffic. This feature can potentially be abused to read sensitive data from unencrypted internal traffic.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Full Network Packet Capture may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Full Network Packet Capture from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1040","name":"Network Sniffing","reference":"https://attack.mitre.org/techniques/T1040/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\n (\n \"MICROSOFT.NETWORK/*/STARTPACKETCAPTURE/ACTION\" or\n \"MICROSOFT.NETWORK/*/VPNCONNECTIONS/STARTPACKETCAPTURE/ACTION\" or\n \"MICROSOFT.NETWORK/*/PACKETCAPTURES/WRITE\"\n ) and\nevent.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"3ad77ed4-4dcf-4c51-8bfc-e3f7ce316b2f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/3b382770-efbb-44f4-beed-f5e0a051b895.json b/fleet-packages/detection-rules-composite/kibana/security_rule/3b382770-efbb-44f4-beed-f5e0a051b895.json new file mode 100644 index 0000000000000..53b5a46680cfc --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/3b382770-efbb-44f4-beed-f5e0a051b895.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"3b382770-efbb-44f4-beed-f5e0a051b895","versions":[{"name":"Malware - Prevented - Elastic Endgame v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented Malware. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame"],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:file_classification_event or endgame.event_subtype_full:file_classification_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Malware - Prevented - Elastic Endgame v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented Malware. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame"],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:file_classification_event or endgame.event_subtype_full:file_classification_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Malware - Prevented - Elastic Endgame v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented Malware. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame"],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:file_classification_event or endgame.event_subtype_full:file_classification_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]}]},"id":"3b382770-efbb-44f4-beed-f5e0a051b895","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/3b47900d-e793-49e8-968f-c90dc3526aa1.json b/fleet-packages/detection-rules-composite/kibana/security_rule/3b47900d-e793-49e8-968f-c90dc3526aa1.json new file mode 100644 index 0000000000000..3e16743998001 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/3b47900d-e793-49e8-968f-c90dc3526aa1.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"3b47900d-e793-49e8-968f-c90dc3526aa1","versions":[{"name":"Unusual Parent Process for cmd.exe v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious parent child process relationship with cmd.exe descending from an unusual process.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"cmd.exe\" and\n process.parent.name : (\"lsass.exe\",\n \"csrss.exe\",\n \"epad.exe\",\n \"regsvr32.exe\",\n \"dllhost.exe\",\n \"LogonUI.exe\",\n \"wermgr.exe\",\n \"spoolsv.exe\",\n \"jucheck.exe\",\n \"jusched.exe\",\n \"ctfmon.exe\",\n \"taskhostw.exe\",\n \"GoogleUpdate.exe\",\n \"sppsvc.exe\",\n \"sihost.exe\",\n \"slui.exe\",\n \"SIHClient.exe\",\n \"SearchIndexer.exe\",\n \"SearchProtocolHost.exe\",\n \"FlashPlayerUpdateService.exe\",\n \"WerFault.exe\",\n \"WUDFHost.exe\",\n \"unsecapp.exe\",\n \"wlanext.exe\" )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Unusual Parent Process for cmd.exe v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious parent child process relationship with cmd.exe descending from an unusual process.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"cmd.exe\" and\n process.parent.name : (\"lsass.exe\",\n \"csrss.exe\",\n \"epad.exe\",\n \"regsvr32.exe\",\n \"dllhost.exe\",\n \"LogonUI.exe\",\n \"wermgr.exe\",\n \"spoolsv.exe\",\n \"jucheck.exe\",\n \"jusched.exe\",\n \"ctfmon.exe\",\n \"taskhostw.exe\",\n \"GoogleUpdate.exe\",\n \"sppsvc.exe\",\n \"sihost.exe\",\n \"slui.exe\",\n \"SIHClient.exe\",\n \"SearchIndexer.exe\",\n \"SearchProtocolHost.exe\",\n \"FlashPlayerUpdateService.exe\",\n \"WerFault.exe\",\n \"WUDFHost.exe\",\n \"unsecapp.exe\",\n \"wlanext.exe\" )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Unusual Parent Process for cmd.exe v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious parent child process relationship with cmd.exe descending from an unusual process.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"cmd.exe\" and\n process.parent.name : (\"lsass.exe\",\n \"csrss.exe\",\n \"epad.exe\",\n \"regsvr32.exe\",\n \"dllhost.exe\",\n \"LogonUI.exe\",\n \"wermgr.exe\",\n \"spoolsv.exe\",\n \"jucheck.exe\",\n \"jusched.exe\",\n \"ctfmon.exe\",\n \"taskhostw.exe\",\n \"GoogleUpdate.exe\",\n \"sppsvc.exe\",\n \"sihost.exe\",\n \"slui.exe\",\n \"SIHClient.exe\",\n \"SearchIndexer.exe\",\n \"SearchProtocolHost.exe\",\n \"FlashPlayerUpdateService.exe\",\n \"WerFault.exe\",\n \"WUDFHost.exe\",\n \"unsecapp.exe\",\n \"wlanext.exe\" )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"3b47900d-e793-49e8-968f-c90dc3526aa1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/3bc6deaa-fbd4-433a-ae21-3e892f95624f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/3bc6deaa-fbd4-433a-ae21-3e892f95624f.json new file mode 100644 index 0000000000000..2b77879f39259 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/3bc6deaa-fbd4-433a-ae21-3e892f95624f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"3bc6deaa-fbd4-433a-ae21-3e892f95624f","versions":[{"name":"NTDS or SAM Database File Copied v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a copy operation of the Active Directory Domain Database (ntds.dit) or Security Account Manager (SAM) files. Those files contain sensitive information including hashed domain and/or local credentials.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"from":"now-9m","max_signals":33,"references":["https://thedfirreport.com/2020/11/23/pysa-mespinoza-ransomware/","https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1003.002/T1003.002.md#atomic-test-3---esentutlexe-sam-copy","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.002","name":"Security Account Manager","reference":"https://attack.mitre.org/techniques/T1003/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (\n (process.pe.original_file_name in (\"Cmd.Exe\", \"PowerShell.EXE\", \"XCOPY.EXE\") and\n process.args : (\"copy\", \"xcopy\", \"Copy-Item\", \"move\", \"cp\", \"mv\")\n ) or\n (process.pe.original_file_name : \"esentutl.exe\" and process.args : (\"*/y*\", \"*/vss*\", \"*/d*\"))\n ) and\n process.args : (\"*\\\\ntds.dit\", \"*\\\\config\\\\SAM\", \"\\\\*\\\\GLOBALROOT\\\\Device\\\\HarddiskVolumeShadowCopy*\\\\*\", \"*/system32/config/SAM*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"NTDS or SAM Database File Copied v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a copy operation of the Active Directory Domain Database (ntds.dit) or Security Account Manager (SAM) files. Those files contain sensitive information including hashed domain and/or local credentials.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"from":"now-9m","max_signals":33,"references":["https://thedfirreport.com/2020/11/23/pysa-mespinoza-ransomware/","https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1003.002/T1003.002.md#atomic-test-3---esentutlexe-sam-copy","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.002","name":"Security Account Manager","reference":"https://attack.mitre.org/techniques/T1003/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (\n (process.pe.original_file_name in (\"Cmd.Exe\", \"PowerShell.EXE\", \"XCOPY.EXE\") and\n process.args : (\"copy\", \"xcopy\", \"Copy-Item\", \"move\", \"cp\", \"mv\")\n ) or\n (process.pe.original_file_name : \"esentutl.exe\" and process.args : (\"*/y*\", \"*/vss*\", \"*/d*\"))\n ) and\n process.args : (\"*\\\\ntds.dit\", \"*\\\\config\\\\SAM\", \"\\\\*\\\\GLOBALROOT\\\\Device\\\\HarddiskVolumeShadowCopy*\\\\*\", \"*/system32/config/SAM*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"NTDS or SAM Database File Copied v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a copy operation of the Active Directory Domain Database (ntds.dit) or Security Account Manager (SAM) files. Those files contain sensitive information including hashed domain and/or local credentials.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"from":"now-9m","max_signals":33,"references":["https://thedfirreport.com/2020/11/23/pysa-mespinoza-ransomware/","https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1003.002/T1003.002.md#atomic-test-3---esentutlexe-sam-copy","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.002","name":"Security Account Manager","reference":"https://attack.mitre.org/techniques/T1003/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (\n (process.pe.original_file_name in (\"Cmd.Exe\", \"PowerShell.EXE\", \"XCOPY.EXE\") and\n process.args : (\"copy\", \"xcopy\", \"Copy-Item\", \"move\", \"cp\", \"mv\")\n ) or\n (process.pe.original_file_name : \"esentutl.exe\" and process.args : (\"*/y*\", \"*/vss*\", \"*/d*\"))\n ) and\n process.args : (\"*\\\\ntds.dit\", \"*\\\\config\\\\SAM\", \"\\\\*\\\\GLOBALROOT\\\\Device\\\\HarddiskVolumeShadowCopy*\\\\*\", \"*/system32/config/SAM*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"3bc6deaa-fbd4-433a-ae21-3e892f95624f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/3c7e32e6-6104-46d9-a06e-da0f8b5795a0.json b/fleet-packages/detection-rules-composite/kibana/security_rule/3c7e32e6-6104-46d9-a06e-da0f8b5795a0.json new file mode 100644 index 0000000000000..23b3c9ec015bf --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/3c7e32e6-6104-46d9-a06e-da0f8b5795a0.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"3c7e32e6-6104-46d9-a06e-da0f8b5795a0","versions":[{"name":"Unusual Linux Network Port Activity v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual destination port activity that can indicate command-and-control, persistence mechanism, or data exfiltration activity. Rarely used destination port activity is generally unusual in Linux fleets, and can indicate unauthorized access or threat actor activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program or one that rarely uses the network could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Linux","Threat Detection","ML"],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_anomalous_network_port_activity"],"type":"machine_learning"},{"name":"Unusual Linux Network Port Activity v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual destination port activity that can indicate command-and-control, persistence mechanism, or data exfiltration activity. Rarely used destination port activity is generally unusual in Linux fleets, and can indicate unauthorized access or threat actor activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program or one that rarely uses the network could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Linux","Threat Detection","ML"],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_anomalous_network_port_activity"],"type":"machine_learning"},{"name":"Unusual Linux Network Port Activity v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual destination port activity that can indicate command-and-control, persistence mechanism, or data exfiltration activity. Rarely used destination port activity is generally unusual in Linux fleets, and can indicate unauthorized access or threat actor activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program or one that rarely uses the network could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Linux","Threat Detection","ML"],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_anomalous_network_port_activity"],"type":"machine_learning"}]},"id":"3c7e32e6-6104-46d9-a06e-da0f8b5795a0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/3e002465-876f-4f04-b016-84ef48ce7e5d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/3e002465-876f-4f04-b016-84ef48ce7e5d.json new file mode 100644 index 0000000000000..57412e16d00b4 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/3e002465-876f-4f04-b016-84ef48ce7e5d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"3e002465-876f-4f04-b016-84ef48ce7e5d","versions":[{"name":"AWS CloudTrail Log Updated v103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an update to an AWS log trail setting that specifies the delivery of log files.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudTrail Log Updated\n\nAmazon CloudTrail is a service that enables governance, compliance, operational auditing, and risk auditing of your\nAmazon Web Services account. With CloudTrail, you can log, continuously monitor, and retain account activity related to\nactions across your Amazon Web Services infrastructure. CloudTrail provides event history of your Amazon Web Services\naccount activity, including actions taken through the Amazon Management Console, Amazon SDKs, command line tools, and\nother Amazon Web Services services. This event history simplifies security analysis, resource change tracking, and\ntroubleshooting.\n\nThis rule identifies a modification on CloudTrail settings using the API `UpdateTrail` action. Attackers can do this to\ncover their tracks and impact security monitoring that relies on this source.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Examine the response elements of the event to determine the scope of the changes.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trail updates may be made by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Trail updates from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_UpdateTrail.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudtrail/update-trail.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1565","name":"Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/","subtechnique":[{"id":"T1565.001","name":"Stored Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1530","name":"Data from Cloud Storage Object","reference":"https://attack.mitre.org/techniques/T1530/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:UpdateTrail and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS CloudTrail Log Updated v103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an update to an AWS log trail setting that specifies the delivery of log files.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudTrail Log Updated\n\nAmazon CloudTrail is a service that enables governance, compliance, operational auditing, and risk auditing of your\nAmazon Web Services account. With CloudTrail, you can log, continuously monitor, and retain account activity related to\nactions across your Amazon Web Services infrastructure. CloudTrail provides event history of your Amazon Web Services\naccount activity, including actions taken through the Amazon Management Console, Amazon SDKs, command line tools, and\nother Amazon Web Services services. This event history simplifies security analysis, resource change tracking, and\ntroubleshooting.\n\nThis rule identifies a modification on CloudTrail settings using the API `UpdateTrail` action. Attackers can do this to\ncover their tracks and impact security monitoring that relies on this source.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Examine the response elements of the event to determine the scope of the changes.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trail updates may be made by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Trail updates from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_UpdateTrail.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudtrail/update-trail.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1565","name":"Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/","subtechnique":[{"id":"T1565.001","name":"Stored Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1530","name":"Data from Cloud Storage Object","reference":"https://attack.mitre.org/techniques/T1530/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:UpdateTrail and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS CloudTrail Log Updated v103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an update to an AWS log trail setting that specifies the delivery of log files.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudTrail Log Updated\n\nAmazon CloudTrail is a service that enables governance, compliance, operational auditing, and risk auditing of your\nAmazon Web Services account. With CloudTrail, you can log, continuously monitor, and retain account activity related to\nactions across your Amazon Web Services infrastructure. CloudTrail provides event history of your Amazon Web Services\naccount activity, including actions taken through the Amazon Management Console, Amazon SDKs, command line tools, and\nother Amazon Web Services services. This event history simplifies security analysis, resource change tracking, and\ntroubleshooting.\n\nThis rule identifies a modification on CloudTrail settings using the API `UpdateTrail` action. Attackers can do this to\ncover their tracks and impact security monitoring that relies on this source.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Examine the response elements of the event to determine the scope of the changes.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trail updates may be made by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Trail updates from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_UpdateTrail.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudtrail/update-trail.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1565","name":"Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/","subtechnique":[{"id":"T1565.001","name":"Stored Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1530","name":"Data from Cloud Storage Object","reference":"https://attack.mitre.org/techniques/T1530/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:UpdateTrail and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"3e002465-876f-4f04-b016-84ef48ce7e5d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/3e3d15c6-1509-479a-b125-21718372157e.json b/fleet-packages/detection-rules-composite/kibana/security_rule/3e3d15c6-1509-479a-b125-21718372157e.json new file mode 100644 index 0000000000000..a134266263f22 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/3e3d15c6-1509-479a-b125-21718372157e.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"3e3d15c6-1509-479a-b125-21718372157e","versions":[{"name":"Suspicious Emond Child Process v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a suspicious child process of the Event Monitor Daemon (emond). Adversaries may abuse this service by writing a rule to execute commands when a defined event occurs, such as system start up or user authentication.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.xorrior.com/emond-persistence/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.014","name":"Emond","reference":"https://attack.mitre.org/techniques/T1546/014/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.parent.name : \"emond\" and\n process.name : (\n \"bash\",\n \"dash\",\n \"sh\",\n \"tcsh\",\n \"csh\",\n \"zsh\",\n \"ksh\",\n \"fish\",\n \"Python\",\n \"python*\",\n \"perl*\",\n \"php*\",\n \"osascript\",\n \"pwsh\",\n \"curl\",\n \"wget\",\n \"cp\",\n \"mv\",\n \"touch\",\n \"echo\",\n \"base64\",\n \"launchctl\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},{"name":"Suspicious Emond Child Process v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a suspicious child process of the Event Monitor Daemon (emond). Adversaries may abuse this service by writing a rule to execute commands when a defined event occurs, such as system start up or user authentication.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.xorrior.com/emond-persistence/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.014","name":"Emond","reference":"https://attack.mitre.org/techniques/T1546/014/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.parent.name : \"emond\" and\n process.name : (\n \"bash\",\n \"dash\",\n \"sh\",\n \"tcsh\",\n \"csh\",\n \"zsh\",\n \"ksh\",\n \"fish\",\n \"Python\",\n \"python*\",\n \"perl*\",\n \"php*\",\n \"osascript\",\n \"pwsh\",\n \"curl\",\n \"wget\",\n \"cp\",\n \"mv\",\n \"touch\",\n \"echo\",\n \"base64\",\n \"launchctl\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},{"name":"Suspicious Emond Child Process v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a suspicious child process of the Event Monitor Daemon (emond). Adversaries may abuse this service by writing a rule to execute commands when a defined event occurs, such as system start up or user authentication.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.xorrior.com/emond-persistence/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.014","name":"Emond","reference":"https://attack.mitre.org/techniques/T1546/014/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.parent.name : \"emond\" and\n process.name : (\n \"bash\",\n \"dash\",\n \"sh\",\n \"tcsh\",\n \"csh\",\n \"zsh\",\n \"ksh\",\n \"fish\",\n \"Python\",\n \"python*\",\n \"perl*\",\n \"php*\",\n \"osascript\",\n \"pwsh\",\n \"curl\",\n \"wget\",\n \"cp\",\n \"mv\",\n \"touch\",\n \"echo\",\n \"base64\",\n \"launchctl\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]}]},"id":"3e3d15c6-1509-479a-b125-21718372157e","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/3ecbdc9e-e4f2-43fa-8cca-63802125e582.json b/fleet-packages/detection-rules-composite/kibana/security_rule/3ecbdc9e-e4f2-43fa-8cca-63802125e582.json new file mode 100644 index 0000000000000..967bfd893728a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/3ecbdc9e-e4f2-43fa-8cca-63802125e582.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"3ecbdc9e-e4f2-43fa-8cca-63802125e582","versions":[{"name":"Privilege Escalation via Named Pipe Impersonation v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a privilege escalation attempt via named pipe impersonation. An adversary may abuse this technique by utilizing a framework such Metasploit's meterpreter getsystem command.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.ired.team/offensive-security/privilege-escalation/windows-namedpipes-privilege-escalation"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name in (\"Cmd.Exe\", \"PowerShell.EXE\") and\n process.args : \"echo\" and process.args : \">\" and process.args : \"\\\\\\\\.\\\\pipe\\\\*\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Privilege Escalation via Named Pipe Impersonation v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a privilege escalation attempt via named pipe impersonation. An adversary may abuse this technique by utilizing a framework such Metasploit's meterpreter getsystem command.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.ired.team/offensive-security/privilege-escalation/windows-namedpipes-privilege-escalation"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name in (\"Cmd.Exe\", \"PowerShell.EXE\") and\n process.args : \"echo\" and process.args : \">\" and process.args : \"\\\\\\\\.\\\\pipe\\\\*\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Privilege Escalation via Named Pipe Impersonation v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a privilege escalation attempt via named pipe impersonation. An adversary may abuse this technique by utilizing a framework such Metasploit's meterpreter getsystem command.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.ired.team/offensive-security/privilege-escalation/windows-namedpipes-privilege-escalation"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name in (\"Cmd.Exe\", \"PowerShell.EXE\") and\n process.args : \"echo\" and process.args : \">\" and process.args : \"\\\\\\\\.\\\\pipe\\\\*\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"3ecbdc9e-e4f2-43fa-8cca-63802125e582","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/3ed032b2-45d8-4406-bc79-7ad1eabb2c72.json b/fleet-packages/detection-rules-composite/kibana/security_rule/3ed032b2-45d8-4406-bc79-7ad1eabb2c72.json new file mode 100644 index 0000000000000..694aac448f32a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/3ed032b2-45d8-4406-bc79-7ad1eabb2c72.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"3ed032b2-45d8-4406-bc79-7ad1eabb2c72","versions":[{"name":"Suspicious Process Creation CallTrace v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a process is created and immediately accessed from an unknown memory code region and by the same parent process. This may indicate a code injection attempt.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Process Creation CallTrace\n\nAttackers may inject code into child processes' memory to hide their actual activity, evade detection mechanisms, and\ndecrease discoverability during forensics. This rule looks for a spawned process by Microsoft Office, scripting, and\ncommand line applications, followed by a process access event for an unknown memory region by the parent process, which\ncan indicate a code injection attempt.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behavior observed by the subject process such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Create a memory dump of the child process for analysis.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n [process where event.code == \"1\" and\n /* sysmon process creation */\n process.parent.name : (\"winword.exe\", \"excel.exe\", \"outlook.exe\", \"powerpnt.exe\", \"eqnedt32.exe\", \"fltldr.exe\",\n \"mspub.exe\", \"msaccess.exe\",\"cscript.exe\", \"wscript.exe\", \"rundll32.exe\", \"regsvr32.exe\",\n \"mshta.exe\", \"wmic.exe\", \"cmstp.exe\", \"msxsl.exe\") and\n\n /* noisy FP patterns */\n not (process.parent.name : \"EXCEL.EXE\" and process.executable : \"?:\\\\Program Files\\\\Microsoft Office\\\\root\\\\Office*\\\\ADDINS\\\\*.exe\") and\n not (process.executable : \"?:\\\\Windows\\\\splwow64.exe\" and process.args in (\"8192\", \"12288\") and process.parent.name : (\"winword.exe\", \"excel.exe\", \"outlook.exe\", \"powerpnt.exe\")) and\n not (process.parent.name : \"rundll32.exe\" and process.parent.args : (\"?:\\\\WINDOWS\\\\Installer\\\\MSI*.tmp,zzzzInvokeManagedCustomActionOutOfProc\", \"--no-sandbox\")) and\n not (process.executable :\n (\"?:\\\\Program Files (x86)\\\\Microsoft\\\\EdgeWebView\\\\Application\\\\*\\\\msedgewebview2.exe\",\n \"?:\\\\Program Files\\\\Adobe\\\\Acrobat DC\\\\Acrobat\\\\Acrobat.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\DWWIN.EXE\") and\n process.parent.name : (\"winword.exe\", \"excel.exe\", \"outlook.exe\", \"powerpnt.exe\")) and\n not (process.parent.name : \"regsvr32.exe\" and process.parent.args : (\"?:\\\\Program Files\\\\*\", \"?:\\\\Program Files (x86)\\\\*\"))\n ] by process.parent.entity_id, process.entity_id\n [process where event.code == \"10\" and\n /* Sysmon process access event from unknown module */\n winlog.event_data.CallTrace : \"*UNKNOWN*\"] by process.entity_id, winlog.event_data.TargetProcessGUID\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallTrace","type":"unknown"},{"ecs":false,"name":"winlog.event_data.TargetProcessGUID","type":"unknown"}]},{"name":"Suspicious Process Creation CallTrace v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a process is created and immediately accessed from an unknown memory code region and by the same parent process. This may indicate a code injection attempt.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Process Creation CallTrace\n\nAttackers may inject code into child processes' memory to hide their actual activity, evade detection mechanisms, and\ndecrease discoverability during forensics. This rule looks for a spawned process by Microsoft Office, scripting, and\ncommand line applications, followed by a process access event for an unknown memory region by the parent process, which\ncan indicate a code injection attempt.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behavior observed by the subject process such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Create a memory dump of the child process for analysis.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n [process where event.code == \"1\" and\n /* sysmon process creation */\n process.parent.name : (\"winword.exe\", \"excel.exe\", \"outlook.exe\", \"powerpnt.exe\", \"eqnedt32.exe\", \"fltldr.exe\",\n \"mspub.exe\", \"msaccess.exe\",\"cscript.exe\", \"wscript.exe\", \"rundll32.exe\", \"regsvr32.exe\",\n \"mshta.exe\", \"wmic.exe\", \"cmstp.exe\", \"msxsl.exe\") and\n\n /* noisy FP patterns */\n not (process.parent.name : \"EXCEL.EXE\" and process.executable : \"?:\\\\Program Files\\\\Microsoft Office\\\\root\\\\Office*\\\\ADDINS\\\\*.exe\") and\n not (process.executable : \"?:\\\\Windows\\\\splwow64.exe\" and process.args in (\"8192\", \"12288\") and process.parent.name : (\"winword.exe\", \"excel.exe\", \"outlook.exe\", \"powerpnt.exe\")) and\n not (process.parent.name : \"rundll32.exe\" and process.parent.args : (\"?:\\\\WINDOWS\\\\Installer\\\\MSI*.tmp,zzzzInvokeManagedCustomActionOutOfProc\", \"--no-sandbox\")) and\n not (process.executable :\n (\"?:\\\\Program Files (x86)\\\\Microsoft\\\\EdgeWebView\\\\Application\\\\*\\\\msedgewebview2.exe\",\n \"?:\\\\Program Files\\\\Adobe\\\\Acrobat DC\\\\Acrobat\\\\Acrobat.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\DWWIN.EXE\") and\n process.parent.name : (\"winword.exe\", \"excel.exe\", \"outlook.exe\", \"powerpnt.exe\")) and\n not (process.parent.name : \"regsvr32.exe\" and process.parent.args : (\"?:\\\\Program Files\\\\*\", \"?:\\\\Program Files (x86)\\\\*\"))\n ] by process.parent.entity_id, process.entity_id\n [process where event.code == \"10\" and\n /* Sysmon process access event from unknown module */\n winlog.event_data.CallTrace : \"*UNKNOWN*\"] by process.entity_id, winlog.event_data.TargetProcessGUID\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallTrace","type":"unknown"},{"ecs":false,"name":"winlog.event_data.TargetProcessGUID","type":"unknown"}]},{"name":"Suspicious Process Creation CallTrace v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a process is created and immediately accessed from an unknown memory code region and by the same parent process. This may indicate a code injection attempt.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Process Creation CallTrace\n\nAttackers may inject code into child processes' memory to hide their actual activity, evade detection mechanisms, and\ndecrease discoverability during forensics. This rule looks for a spawned process by Microsoft Office, scripting, and\ncommand line applications, followed by a process access event for an unknown memory region by the parent process, which\ncan indicate a code injection attempt.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behavior observed by the subject process such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Create a memory dump of the child process for analysis.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n [process where event.code == \"1\" and\n /* sysmon process creation */\n process.parent.name : (\"winword.exe\", \"excel.exe\", \"outlook.exe\", \"powerpnt.exe\", \"eqnedt32.exe\", \"fltldr.exe\",\n \"mspub.exe\", \"msaccess.exe\",\"cscript.exe\", \"wscript.exe\", \"rundll32.exe\", \"regsvr32.exe\",\n \"mshta.exe\", \"wmic.exe\", \"cmstp.exe\", \"msxsl.exe\") and\n\n /* noisy FP patterns */\n not (process.parent.name : \"EXCEL.EXE\" and process.executable : \"?:\\\\Program Files\\\\Microsoft Office\\\\root\\\\Office*\\\\ADDINS\\\\*.exe\") and\n not (process.executable : \"?:\\\\Windows\\\\splwow64.exe\" and process.args in (\"8192\", \"12288\") and process.parent.name : (\"winword.exe\", \"excel.exe\", \"outlook.exe\", \"powerpnt.exe\")) and\n not (process.parent.name : \"rundll32.exe\" and process.parent.args : (\"?:\\\\WINDOWS\\\\Installer\\\\MSI*.tmp,zzzzInvokeManagedCustomActionOutOfProc\", \"--no-sandbox\")) and\n not (process.executable :\n (\"?:\\\\Program Files (x86)\\\\Microsoft\\\\EdgeWebView\\\\Application\\\\*\\\\msedgewebview2.exe\",\n \"?:\\\\Program Files\\\\Adobe\\\\Acrobat DC\\\\Acrobat\\\\Acrobat.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\DWWIN.EXE\") and\n process.parent.name : (\"winword.exe\", \"excel.exe\", \"outlook.exe\", \"powerpnt.exe\")) and\n not (process.parent.name : \"regsvr32.exe\" and process.parent.args : (\"?:\\\\Program Files\\\\*\", \"?:\\\\Program Files (x86)\\\\*\"))\n ] by process.parent.entity_id, process.entity_id\n [process where event.code == \"10\" and\n /* Sysmon process access event from unknown module */\n winlog.event_data.CallTrace : \"*UNKNOWN*\"] by process.entity_id, winlog.event_data.TargetProcessGUID\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallTrace","type":"unknown"},{"ecs":false,"name":"winlog.event_data.TargetProcessGUID","type":"unknown"}]}]},"id":"3ed032b2-45d8-4406-bc79-7ad1eabb2c72","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/3efee4f0-182a-40a8-a835-102c68a4175d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/3efee4f0-182a-40a8-a835-102c68a4175d.json new file mode 100644 index 0000000000000..251eb845cb7e4 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/3efee4f0-182a-40a8-a835-102c68a4175d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"3efee4f0-182a-40a8-a835-102c68a4175d","versions":[{"name":"Potential Password Spraying of Microsoft 365 User Accounts v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number (25) of failed Microsoft 365 user authentication attempts from a single IP address within 30 minutes, which could be indicative of a password spraying attack. An adversary may attempt a password spraying attack to obtain unauthorized access to user accounts.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic"],"false_positives":["Automated processes that attempt to authenticate using expired credentials and unbounded retries may lead to false positives."],"from":"now-30m","tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:o365.audit and event.provider:(Exchange or AzureActiveDirectory) and event.category:authentication and\nevent.action:(\"UserLoginFailed\" or \"PasswordLogonInitialAuthUsingPassword\")\n","threshold":{"field":["source.ip"],"value":25},"type":"threshold","index":["filebeat-*","logs-o365*"],"language":"kuery","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Potential Password Spraying of Microsoft 365 User Accounts v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number (25) of failed Microsoft 365 user authentication attempts from a single IP address within 30 minutes, which could be indicative of a password spraying attack. An adversary may attempt a password spraying attack to obtain unauthorized access to user accounts.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic"],"false_positives":["Automated processes that attempt to authenticate using expired credentials and unbounded retries may lead to false positives."],"from":"now-30m","tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:o365.audit and event.provider:(Exchange or AzureActiveDirectory) and event.category:authentication and\nevent.action:(\"UserLoginFailed\" or \"PasswordLogonInitialAuthUsingPassword\")\n","threshold":{"field":["source.ip"],"value":25},"type":"threshold","index":["filebeat-*","logs-o365*"],"language":"kuery","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Potential Password Spraying of Microsoft 365 User Accounts v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number (25) of failed Microsoft 365 user authentication attempts from a single IP address within 30 minutes, which could be indicative of a password spraying attack. An adversary may attempt a password spraying attack to obtain unauthorized access to user accounts.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic"],"false_positives":["Automated processes that attempt to authenticate using expired credentials and unbounded retries may lead to false positives."],"from":"now-30m","tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:o365.audit and event.provider:(Exchange or AzureActiveDirectory) and event.category:authentication and\nevent.action:(\"UserLoginFailed\" or \"PasswordLogonInitialAuthUsingPassword\")\n","threshold":{"field":["source.ip"],"value":25},"type":"threshold","index":["filebeat-*","logs-o365*"],"language":"kuery","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"3efee4f0-182a-40a8-a835-102c68a4175d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/3f0e5410-a4bf-4e8c-bcfc-79d67a285c54.json b/fleet-packages/detection-rules-composite/kibana/security_rule/3f0e5410-a4bf-4e8c-bcfc-79d67a285c54.json new file mode 100644 index 0000000000000..d3c5eedbf882b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/3f0e5410-a4bf-4e8c-bcfc-79d67a285c54.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"3f0e5410-a4bf-4e8c-bcfc-79d67a285c54","versions":[{"name":"CyberArk Privileged Access Security Error v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the occurrence of a CyberArk Privileged Access Security (PAS) error level audit event. The event.code correlates to the CyberArk Vault Audit Action Code.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\nThis is a promotion rule for CyberArk error events, which are alertable events per the vendor.\nConsult vendor documentation on interpreting specific events.","rule_name_override":"event.action","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["To tune this rule, add exceptions to exclude any event.code which should not trigger this rule."],"from":"now-30m","references":["https://docs.cyberark.com/Product-Doc/OnlineHelp/PAS/Latest/en/Content/PASREF/Vault%20Audit%20Action%20Codes.htm?tocpath=Administration%7CReferences%7C_____3"],"tags":["Elastic","cyberarkpas","SecOps","Log Auditing","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-cyberarkpas.audit*"],"language":"kuery","query":"event.dataset:cyberarkpas.audit and event.type:error\n","related_integrations":[{"package":"cyberarkpas","version":"^2.2.0"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"}],"setup":"The CyberArk Privileged Access Security (PAS) Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"CyberArk Privileged Access Security Error v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the occurrence of a CyberArk Privileged Access Security (PAS) error level audit event. The event.code correlates to the CyberArk Vault Audit Action Code.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\nThis is a promotion rule for CyberArk error events, which are alertable events per the vendor.\nConsult vendor documentation on interpreting specific events.","rule_name_override":"event.action","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["To tune this rule, add exceptions to exclude any event.code which should not trigger this rule."],"from":"now-30m","references":["https://docs.cyberark.com/Product-Doc/OnlineHelp/PAS/Latest/en/Content/PASREF/Vault%20Audit%20Action%20Codes.htm?tocpath=Administration%7CReferences%7C_____3"],"tags":["Elastic","cyberarkpas","SecOps","Log Auditing","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-cyberarkpas.audit*"],"language":"kuery","query":"event.dataset:cyberarkpas.audit and event.type:error\n","related_integrations":[{"package":"cyberarkpas","version":"^2.2.0"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"}],"setup":"The CyberArk Privileged Access Security (PAS) Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"CyberArk Privileged Access Security Error v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the occurrence of a CyberArk Privileged Access Security (PAS) error level audit event. The event.code correlates to the CyberArk Vault Audit Action Code.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\nThis is a promotion rule for CyberArk error events, which are alertable events per the vendor.\nConsult vendor documentation on interpreting specific events.","rule_name_override":"event.action","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["To tune this rule, add exceptions to exclude any event.code which should not trigger this rule."],"from":"now-30m","references":["https://docs.cyberark.com/Product-Doc/OnlineHelp/PAS/Latest/en/Content/PASREF/Vault%20Audit%20Action%20Codes.htm?tocpath=Administration%7CReferences%7C_____3"],"tags":["Elastic","cyberarkpas","SecOps","Log Auditing","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-cyberarkpas.audit*"],"language":"kuery","query":"event.dataset:cyberarkpas.audit and event.type:error\n","related_integrations":[{"package":"cyberarkpas","version":"^2.2.0"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"}],"setup":"The CyberArk Privileged Access Security (PAS) Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"3f0e5410-a4bf-4e8c-bcfc-79d67a285c54","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/3f3f9fe2-d095-11ec-95dc-f661ea17fbce.json b/fleet-packages/detection-rules-composite/kibana/security_rule/3f3f9fe2-d095-11ec-95dc-f661ea17fbce.json new file mode 100644 index 0000000000000..ffcca705e4dec --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/3f3f9fe2-d095-11ec-95dc-f661ea17fbce.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"3f3f9fe2-d095-11ec-95dc-f661ea17fbce","versions":[{"name":"Binary Executed from Shared Memory Directory v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a binary by root in Linux shared memory directories: (/dev/shm/, /run/shm/, /var/run/, /var/lock/). This activity is to be considered highly abnormal and should be investigated. Threat actors have placed executables used for persistence on high-uptime servers in these directories as system backdoors.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Directories /dev/shm and /run/shm are temporary file storage directories in Linux. They are intended to appear as a mounted file system, but uses virtual memory instead of a persistent storage device and thus are used for mounting file systems in legitimate purposes."],"from":"now-9m","references":["https://linuxsecurity.com/features/fileless-malware-on-linux","https://twitter.com/GossiTheDog/status/1522964028284411907","https://www.elastic.co/security-labs/a-peek-behind-the-bpfdoor"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","BPFDoor"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n event.action == \"exec\" and user.name == \"root\" and\n process.executable : (\n \"/dev/shm/*\",\n \"/run/shm/*\",\n \"/var/run/*\",\n \"/var/lock/*\"\n ) and\n not process.executable : ( \"/var/run/docker/*\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},{"name":"Binary Executed from Shared Memory Directory v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a binary by root in Linux shared memory directories: (/dev/shm/, /run/shm/, /var/run/, /var/lock/). This activity is to be considered highly abnormal and should be investigated. Threat actors have placed executables used for persistence on high-uptime servers in these directories as system backdoors.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Directories /dev/shm and /run/shm are temporary file storage directories in Linux. They are intended to appear as a mounted file system, but uses virtual memory instead of a persistent storage device and thus are used for mounting file systems in legitimate purposes."],"from":"now-9m","references":["https://linuxsecurity.com/features/fileless-malware-on-linux","https://twitter.com/GossiTheDog/status/1522964028284411907","https://www.elastic.co/security-labs/a-peek-behind-the-bpfdoor"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","BPFDoor"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n event.action == \"exec\" and user.name == \"root\" and\n process.executable : (\n \"/dev/shm/*\",\n \"/run/shm/*\",\n \"/var/run/*\",\n \"/var/lock/*\"\n ) and\n not process.executable : ( \"/var/run/docker/*\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},{"name":"Binary Executed from Shared Memory Directory v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a binary by root in Linux shared memory directories: (/dev/shm/, /run/shm/, /var/run/, /var/lock/). This activity is to be considered highly abnormal and should be investigated. Threat actors have placed executables used for persistence on high-uptime servers in these directories as system backdoors.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Directories /dev/shm and /run/shm are temporary file storage directories in Linux. They are intended to appear as a mounted file system, but uses virtual memory instead of a persistent storage device and thus are used for mounting file systems in legitimate purposes."],"from":"now-9m","references":["https://linuxsecurity.com/features/fileless-malware-on-linux","https://twitter.com/GossiTheDog/status/1522964028284411907","https://www.elastic.co/security-labs/a-peek-behind-the-bpfdoor"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","BPFDoor"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n event.action == \"exec\" and user.name == \"root\" and\n process.executable : (\n \"/dev/shm/*\",\n \"/run/shm/*\",\n \"/var/run/*\",\n \"/var/lock/*\"\n ) and\n not process.executable : ( \"/var/run/docker/*\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]}]},"id":"3f3f9fe2-d095-11ec-95dc-f661ea17fbce","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/403ef0d3-8259-40c9-a5b6-d48354712e49.json b/fleet-packages/detection-rules-composite/kibana/security_rule/403ef0d3-8259-40c9-a5b6-d48354712e49.json new file mode 100644 index 0000000000000..5e9a07fdd9583 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/403ef0d3-8259-40c9-a5b6-d48354712e49.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"403ef0d3-8259-40c9-a5b6-d48354712e49","versions":[{"name":"Unusual Persistence via Services Registry v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies processes modifying the services registry key directly, instead of through the expected Windows APIs. This could be an indication of an adversary attempting to stealthily persist through abnormal service creation or modification of an existing service.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"registry where registry.path : (\"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Services\\\\*\\\\ServiceDLL\", \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Services\\\\*\\\\ImagePath\") and\n not registry.data.strings : (\"?:\\\\windows\\\\system32\\\\Drivers\\\\*.sys\",\n \"\\\\SystemRoot\\\\System32\\\\drivers\\\\*.sys\",\n \"\\\\??\\\\?:\\\\Windows\\\\system32\\\\Drivers\\\\*.SYS\",\n \"system32\\\\DRIVERS\\\\USBSTOR\") and\n not (process.name : \"procexp??.exe\" and registry.data.strings : \"?:\\\\*\\\\procexp*.sys\") and\n not process.executable : (\"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Windows\\\\winsxs\\\\*\\\\TiWorker.exe\",\n \"?:\\\\Windows\\\\System32\\\\drvinst.exe\",\n \"?:\\\\Windows\\\\System32\\\\services.exe\",\n \"?:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\System32\\\\regsvr32.exe\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},{"name":"Unusual Persistence via Services Registry v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies processes modifying the services registry key directly, instead of through the expected Windows APIs. This could be an indication of an adversary attempting to stealthily persist through abnormal service creation or modification of an existing service.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"registry where registry.path : (\"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Services\\\\*\\\\ServiceDLL\", \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Services\\\\*\\\\ImagePath\") and\n not registry.data.strings : (\"?:\\\\windows\\\\system32\\\\Drivers\\\\*.sys\",\n \"\\\\SystemRoot\\\\System32\\\\drivers\\\\*.sys\",\n \"\\\\??\\\\?:\\\\Windows\\\\system32\\\\Drivers\\\\*.SYS\",\n \"system32\\\\DRIVERS\\\\USBSTOR\") and\n not (process.name : \"procexp??.exe\" and registry.data.strings : \"?:\\\\*\\\\procexp*.sys\") and\n not process.executable : (\"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Windows\\\\winsxs\\\\*\\\\TiWorker.exe\",\n \"?:\\\\Windows\\\\System32\\\\drvinst.exe\",\n \"?:\\\\Windows\\\\System32\\\\services.exe\",\n \"?:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\System32\\\\regsvr32.exe\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},{"name":"Unusual Persistence via Services Registry v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies processes modifying the services registry key directly, instead of through the expected Windows APIs. This could be an indication of an adversary attempting to stealthily persist through abnormal service creation or modification of an existing service.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"registry where registry.path : (\"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Services\\\\*\\\\ServiceDLL\", \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Services\\\\*\\\\ImagePath\") and\n not registry.data.strings : (\"?:\\\\windows\\\\system32\\\\Drivers\\\\*.sys\",\n \"\\\\SystemRoot\\\\System32\\\\drivers\\\\*.sys\",\n \"\\\\??\\\\?:\\\\Windows\\\\system32\\\\Drivers\\\\*.SYS\",\n \"system32\\\\DRIVERS\\\\USBSTOR\") and\n not (process.name : \"procexp??.exe\" and registry.data.strings : \"?:\\\\*\\\\procexp*.sys\") and\n not process.executable : (\"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Windows\\\\winsxs\\\\*\\\\TiWorker.exe\",\n \"?:\\\\Windows\\\\System32\\\\drvinst.exe\",\n \"?:\\\\Windows\\\\System32\\\\services.exe\",\n \"?:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\System32\\\\regsvr32.exe\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]}]},"id":"403ef0d3-8259-40c9-a5b6-d48354712e49","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/416697ae-e468-4093-a93d-59661fa619ec.json b/fleet-packages/detection-rules-composite/kibana/security_rule/416697ae-e468-4093-a93d-59661fa619ec.json new file mode 100644 index 0000000000000..bc581b0be0657 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/416697ae-e468-4093-a93d-59661fa619ec.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"416697ae-e468-4093-a93d-59661fa619ec","versions":[{"name":"Control Panel Process with Unusual Arguments v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual instances of Control Panel with suspicious keywords or paths in the process command line value. Adversaries may abuse control.exe to proxy execution of malicious code.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.joesandbox.com/analysis/476188/1/html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.002","name":"Control Panel","reference":"https://attack.mitre.org/techniques/T1218/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.executable : (\"?:\\\\Windows\\\\SysWOW64\\\\control.exe\", \"?:\\\\Windows\\\\System32\\\\control.exe\") and\n process.command_line :\n (\"*.jpg*\",\n \"*.png*\",\n \"*.gif*\",\n \"*.bmp*\",\n \"*.jpeg*\",\n \"*.TIFF*\",\n \"*.inf*\",\n \"*.cpl:*/*\",\n \"*../../..*\",\n \"*/AppData/Local/*\",\n \"*:\\\\Users\\\\Public\\\\*\",\n \"*\\\\AppData\\\\Local\\\\*\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Control Panel Process with Unusual Arguments v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual instances of Control Panel with suspicious keywords or paths in the process command line value. Adversaries may abuse control.exe to proxy execution of malicious code.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.joesandbox.com/analysis/476188/1/html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.002","name":"Control Panel","reference":"https://attack.mitre.org/techniques/T1218/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.executable : (\"?:\\\\Windows\\\\SysWOW64\\\\control.exe\", \"?:\\\\Windows\\\\System32\\\\control.exe\") and\n process.command_line :\n (\"*.jpg*\",\n \"*.png*\",\n \"*.gif*\",\n \"*.bmp*\",\n \"*.jpeg*\",\n \"*.TIFF*\",\n \"*.inf*\",\n \"*.cpl:*/*\",\n \"*../../..*\",\n \"*/AppData/Local/*\",\n \"*:\\\\Users\\\\Public\\\\*\",\n \"*\\\\AppData\\\\Local\\\\*\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Control Panel Process with Unusual Arguments v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual instances of Control Panel with suspicious keywords or paths in the process command line value. Adversaries may abuse control.exe to proxy execution of malicious code.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.joesandbox.com/analysis/476188/1/html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.002","name":"Control Panel","reference":"https://attack.mitre.org/techniques/T1218/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.executable : (\"?:\\\\Windows\\\\SysWOW64\\\\control.exe\", \"?:\\\\Windows\\\\System32\\\\control.exe\") and\n process.command_line :\n (\"*.jpg*\",\n \"*.png*\",\n \"*.gif*\",\n \"*.bmp*\",\n \"*.jpeg*\",\n \"*.TIFF*\",\n \"*.inf*\",\n \"*.cpl:*/*\",\n \"*../../..*\",\n \"*/AppData/Local/*\",\n \"*:\\\\Users\\\\Public\\\\*\",\n \"*\\\\AppData\\\\Local\\\\*\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"416697ae-e468-4093-a93d-59661fa619ec","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/41824afb-d68c-4d0e-bfee-474dac1fa56e.json b/fleet-packages/detection-rules-composite/kibana/security_rule/41824afb-d68c-4d0e-bfee-474dac1fa56e.json new file mode 100644 index 0000000000000..707c6707690fc --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/41824afb-d68c-4d0e-bfee-474dac1fa56e.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"41824afb-d68c-4d0e-bfee-474dac1fa56e","versions":[{"name":"EggShell Backdoor Execution v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of and EggShell Backdoor. EggShell is a known post exploitation tool for macOS and Linux.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/neoneggplant/EggShell"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.006","name":"Python","reference":"https://attack.mitre.org/techniques/T1059/006/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:espl and process.args:eyJkZWJ1ZyI6*\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"EggShell Backdoor Execution v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of and EggShell Backdoor. EggShell is a known post exploitation tool for macOS and Linux.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/neoneggplant/EggShell"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.006","name":"Python","reference":"https://attack.mitre.org/techniques/T1059/006/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:espl and process.args:eyJkZWJ1ZyI6*\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"EggShell Backdoor Execution v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of and EggShell Backdoor. EggShell is a known post exploitation tool for macOS and Linux.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/neoneggplant/EggShell"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.006","name":"Python","reference":"https://attack.mitre.org/techniques/T1059/006/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:espl and process.args:eyJkZWJ1ZyI6*\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"41824afb-d68c-4d0e-bfee-474dac1fa56e","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/41b638a1-8ab6-4f8e-86d9-466317ef2db5.json b/fleet-packages/detection-rules-composite/kibana/security_rule/41b638a1-8ab6-4f8e-86d9-466317ef2db5.json new file mode 100644 index 0000000000000..d09d0bf410fb5 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/41b638a1-8ab6-4f8e-86d9-466317ef2db5.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"41b638a1-8ab6-4f8e-86d9-466317ef2db5","versions":[{"name":"Potential Hidden Local User Account Creation v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to create a local account that will be hidden from the macOS logon window. This may indicate an attempt to evade user attention while maintaining persistence using a separate local account.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://support.apple.com/en-us/HT203998"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.003","name":"Local Accounts","reference":"https://attack.mitre.org/techniques/T1078/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:dscl and process.args:(IsHidden and create and (true or 1 or yes))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Potential Hidden Local User Account Creation v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to create a local account that will be hidden from the macOS logon window. This may indicate an attempt to evade user attention while maintaining persistence using a separate local account.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://support.apple.com/en-us/HT203998"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.003","name":"Local Accounts","reference":"https://attack.mitre.org/techniques/T1078/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:dscl and process.args:(IsHidden and create and (true or 1 or yes))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Potential Hidden Local User Account Creation v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to create a local account that will be hidden from the macOS logon window. This may indicate an attempt to evade user attention while maintaining persistence using a separate local account.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://support.apple.com/en-us/HT203998"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.003","name":"Local Accounts","reference":"https://attack.mitre.org/techniques/T1078/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:dscl and process.args:(IsHidden and create and (true or 1 or yes))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"41b638a1-8ab6-4f8e-86d9-466317ef2db5","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/42bf698b-4738-445b-8231-c834ddefd8a0.json b/fleet-packages/detection-rules-composite/kibana/security_rule/42bf698b-4738-445b-8231-c834ddefd8a0.json new file mode 100644 index 0000000000000..3b8d54866fbaf --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/42bf698b-4738-445b-8231-c834ddefd8a0.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"42bf698b-4738-445b-8231-c834ddefd8a0","versions":[{"name":"Okta Brute Force or Password Spraying Attack v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number of failed Okta user authentication attempts from a single IP address, which could be indicative of a brute force or password spraying attack. An adversary may attempt a brute force or password spraying attack to obtain unauthorized access to user accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic"],"false_positives":["Automated processes that attempt to authenticate using expired credentials and unbounded retries may lead to false positives."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:okta.system and event.category:authentication and event.outcome:failure\n","threshold":{"field":["source.ip"],"value":25},"type":"threshold","index":["filebeat-*","logs-okta*"],"language":"kuery","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Okta Brute Force or Password Spraying Attack v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number of failed Okta user authentication attempts from a single IP address, which could be indicative of a brute force or password spraying attack. An adversary may attempt a brute force or password spraying attack to obtain unauthorized access to user accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic"],"false_positives":["Automated processes that attempt to authenticate using expired credentials and unbounded retries may lead to false positives."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:okta.system and event.category:authentication and event.outcome:failure\n","threshold":{"field":["source.ip"],"value":25},"type":"threshold","index":["filebeat-*","logs-okta*"],"language":"kuery","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Okta Brute Force or Password Spraying Attack v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number of failed Okta user authentication attempts from a single IP address, which could be indicative of a brute force or password spraying attack. An adversary may attempt a brute force or password spraying attack to obtain unauthorized access to user accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic"],"false_positives":["Automated processes that attempt to authenticate using expired credentials and unbounded retries may lead to false positives."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:okta.system and event.category:authentication and event.outcome:failure\n","threshold":{"field":["source.ip"],"value":25},"type":"threshold","index":["filebeat-*","logs-okta*"],"language":"kuery","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"42bf698b-4738-445b-8231-c834ddefd8a0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/42eeee3d-947f-46d3-a14d-7036b962c266.json b/fleet-packages/detection-rules-composite/kibana/security_rule/42eeee3d-947f-46d3-a14d-7036b962c266.json new file mode 100644 index 0000000000000..86e0da1acd7e3 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/42eeee3d-947f-46d3-a14d-7036b962c266.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"42eeee3d-947f-46d3-a14d-7036b962c266","versions":[{"name":"Process Creation via Secondary Logon v2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies process creation with alternate credentials. Adversaries may create a new process with a different token to escalate privileges and bypass access controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic"],"from":"now-9m","references":["https://attack.mitre.org/techniques/T1134/002/"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/","subtechnique":[{"id":"T1134.002","name":"Create Process with Token","reference":"https://attack.mitre.org/techniques/T1134/002/"},{"id":"T1134.003","name":"Make and Impersonate Token","reference":"https://attack.mitre.org/techniques/T1134/003/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n\n[authentication where event.action:\"logged-in\" and\n event.outcome == \"success\" and user.id : (\"S-1-5-21-*\", \"S-1-12-1-*\") and\n\n /* seclogon service */\n process.name == \"svchost.exe\" and \n winlog.event_data.LogonProcessName : \"seclogo*\" and source.ip == \"::1\" ] by winlog.event_data.TargetLogonId\n\n[process where event.type == \"start\"] by winlog.event_data.TargetLogonId\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.id","type":"keyword"},{"ecs":false,"name":"winlog.event_data.LogonProcessName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetLogonId","type":"keyword"}],"setup":"Audit events 4624 and 4688 are needed to trigger this rule.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Process Creation via Secondary Logon v2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies process creation with alternate credentials. Adversaries may create a new process with a different token to escalate privileges and bypass access controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic"],"from":"now-9m","references":["https://attack.mitre.org/techniques/T1134/002/"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/","subtechnique":[{"id":"T1134.002","name":"Create Process with Token","reference":"https://attack.mitre.org/techniques/T1134/002/"},{"id":"T1134.003","name":"Make and Impersonate Token","reference":"https://attack.mitre.org/techniques/T1134/003/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n\n[authentication where event.action:\"logged-in\" and\n event.outcome == \"success\" and user.id : (\"S-1-5-21-*\", \"S-1-12-1-*\") and\n\n /* seclogon service */\n process.name == \"svchost.exe\" and \n winlog.event_data.LogonProcessName : \"seclogo*\" and source.ip == \"::1\" ] by winlog.event_data.TargetLogonId\n\n[process where event.type == \"start\"] by winlog.event_data.TargetLogonId\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.id","type":"keyword"},{"ecs":false,"name":"winlog.event_data.LogonProcessName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetLogonId","type":"keyword"}],"setup":"Audit events 4624 and 4688 are needed to trigger this rule.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Process Creation via Secondary Logon v2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies process creation with alternate credentials. Adversaries may create a new process with a different token to escalate privileges and bypass access controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic"],"from":"now-9m","references":["https://attack.mitre.org/techniques/T1134/002/"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/","subtechnique":[{"id":"T1134.002","name":"Create Process with Token","reference":"https://attack.mitre.org/techniques/T1134/002/"},{"id":"T1134.003","name":"Make and Impersonate Token","reference":"https://attack.mitre.org/techniques/T1134/003/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n\n[authentication where event.action:\"logged-in\" and\n event.outcome == \"success\" and user.id : (\"S-1-5-21-*\", \"S-1-12-1-*\") and\n\n /* seclogon service */\n process.name == \"svchost.exe\" and \n winlog.event_data.LogonProcessName : \"seclogo*\" and source.ip == \"::1\" ] by winlog.event_data.TargetLogonId\n\n[process where event.type == \"start\"] by winlog.event_data.TargetLogonId\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.id","type":"keyword"},{"ecs":false,"name":"winlog.event_data.LogonProcessName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetLogonId","type":"keyword"}],"setup":"Audit events 4624 and 4688 are needed to trigger this rule.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"42eeee3d-947f-46d3-a14d-7036b962c266","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/4330272b-9724-4bc6-a3ca-f1532b81e5c2.json b/fleet-packages/detection-rules-composite/kibana/security_rule/4330272b-9724-4bc6-a3ca-f1532b81e5c2.json new file mode 100644 index 0000000000000..4a661a573b4bb --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/4330272b-9724-4bc6-a3ca-f1532b81e5c2.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"4330272b-9724-4bc6-a3ca-f1532b81e5c2","versions":[{"name":"Unusual Login Activity v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an unusually high number of authentication attempts.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Security audits may trigger this alert. Conditions that generate bursts of failed logins, such as misconfigured applications or account lockouts could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"anomaly_threshold":50,"machine_learning_job_id":"suspicious_login_activity","type":"machine_learning"},{"name":"Unusual Login Activity v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an unusually high number of authentication attempts.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Security audits may trigger this alert. Conditions that generate bursts of failed logins, such as misconfigured applications or account lockouts could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"anomaly_threshold":50,"machine_learning_job_id":"suspicious_login_activity","type":"machine_learning"},{"name":"Unusual Login Activity v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an unusually high number of authentication attempts.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Security audits may trigger this alert. Conditions that generate bursts of failed logins, such as misconfigured applications or account lockouts could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"anomaly_threshold":50,"machine_learning_job_id":"suspicious_login_activity","type":"machine_learning"}]},"id":"4330272b-9724-4bc6-a3ca-f1532b81e5c2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/43303fd4-4839-4e48-b2b2-803ab060758d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/43303fd4-4839-4e48-b2b2-803ab060758d.json new file mode 100644 index 0000000000000..411644251bc66 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/43303fd4-4839-4e48-b2b2-803ab060758d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"43303fd4-4839-4e48-b2b2-803ab060758d","versions":[{"name":"Web Application Suspicious Activity: No User Agent v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A request to a web application server contained no identifying user agent string.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some normal applications and scripts may contain no user agent. Most legitimate web requests from the Internet contain a user agent string. Requests from web browsers almost always contain a user agent string. If the source is unexpected, the user unauthorized, or the request unusual, these may indicate suspicious or malicious activity."],"references":["https://en.wikipedia.org/wiki/User_agent"],"tags":["Elastic","APM"],"type":"query","filters":[{"$state":{"store":"appState"},"exists":{"field":"user_agent.original"},"meta":{"disabled":false,"indexRefName":"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index","key":"user_agent.original","negate":true,"type":"exists","value":"exists"}}],"index":["apm-*-transaction*","traces-apm*"],"language":"kuery","query":"url.path:*\n","required_fields":[{"ecs":true,"name":"url.path","type":"wildcard"}]},{"name":"Web Application Suspicious Activity: No User Agent v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A request to a web application server contained no identifying user agent string.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some normal applications and scripts may contain no user agent. Most legitimate web requests from the Internet contain a user agent string. Requests from web browsers almost always contain a user agent string. If the source is unexpected, the user unauthorized, or the request unusual, these may indicate suspicious or malicious activity."],"references":["https://en.wikipedia.org/wiki/User_agent"],"tags":["Elastic","APM"],"type":"query","filters":[{"$state":{"store":"appState"},"exists":{"field":"user_agent.original"},"meta":{"disabled":false,"indexRefName":"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index","key":"user_agent.original","negate":true,"type":"exists","value":"exists"}}],"index":["apm-*-transaction*","traces-apm*"],"language":"kuery","query":"url.path:*\n","required_fields":[{"ecs":true,"name":"url.path","type":"wildcard"}]},{"name":"Web Application Suspicious Activity: No User Agent v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A request to a web application server contained no identifying user agent string.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some normal applications and scripts may contain no user agent. Most legitimate web requests from the Internet contain a user agent string. Requests from web browsers almost always contain a user agent string. If the source is unexpected, the user unauthorized, or the request unusual, these may indicate suspicious or malicious activity."],"references":["https://en.wikipedia.org/wiki/User_agent"],"tags":["Elastic","APM"],"type":"query","filters":[{"$state":{"store":"appState"},"exists":{"field":"user_agent.original"},"meta":{"disabled":false,"indexRefName":"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index","key":"user_agent.original","negate":true,"type":"exists","value":"exists"}}],"index":["apm-*-transaction*","traces-apm*"],"language":"kuery","query":"url.path:*\n","required_fields":[{"ecs":true,"name":"url.path","type":"wildcard"}]}]},"id":"43303fd4-4839-4e48-b2b2-803ab060758d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/440e2db4-bc7f-4c96-a068-65b78da59bde.json b/fleet-packages/detection-rules-composite/kibana/security_rule/440e2db4-bc7f-4c96-a068-65b78da59bde.json new file mode 100644 index 0000000000000..038bef7ef1801 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/440e2db4-bc7f-4c96-a068-65b78da59bde.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"440e2db4-bc7f-4c96-a068-65b78da59bde","versions":[{"name":"Startup Persistence by a Suspicious Process v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies files written to or modified in the startup folder by commonly abused processes. Adversaries may use this technique to maintain persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Startup Persistence by a Suspicious Process\n\nThe Windows Startup folder is a special folder in Windows. Programs added to this folder are executed during account\nlogon, without user interaction, providing an excellent way for attackers to maintain persistence.\n\nThis rule monitors for commonly abused processes writing to the Startup folder locations.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- Administrators may add programs to this mechanism via command-line shells. Before the further investigation,\nverify that this activity is not benign.\n\n### Related rules\n\n- Suspicious Startup Shell Folder Modification - c8b150f0-0164-475b-a75e-74b47800a9ff\n- Persistent Scripts in the Startup Directory - f7c4dc5a-a58d-491d-9f14-9b66507121c0\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-1"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n user.domain != \"NT AUTHORITY\" and\n file.path : (\"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\\\\*\",\n \"C:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\StartUp\\\\*\") and\n process.name : (\"cmd.exe\",\n \"powershell.exe\",\n \"wmic.exe\",\n \"mshta.exe\",\n \"pwsh.exe\",\n \"cscript.exe\",\n \"wscript.exe\",\n \"regsvr32.exe\",\n \"RegAsm.exe\",\n \"rundll32.exe\",\n \"EQNEDT32.EXE\",\n \"WINWORD.EXE\",\n \"EXCEL.EXE\",\n \"POWERPNT.EXE\",\n \"MSPUB.EXE\",\n \"MSACCESS.EXE\",\n \"iexplore.exe\",\n \"InstallUtil.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Startup Persistence by a Suspicious Process v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies files written to or modified in the startup folder by commonly abused processes. Adversaries may use this technique to maintain persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Startup Persistence by a Suspicious Process\n\nThe Windows Startup folder is a special folder in Windows. Programs added to this folder are executed during account\nlogon, without user interaction, providing an excellent way for attackers to maintain persistence.\n\nThis rule monitors for commonly abused processes writing to the Startup folder locations.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- Administrators may add programs to this mechanism via command-line shells. Before the further investigation,\nverify that this activity is not benign.\n\n### Related rules\n\n- Suspicious Startup Shell Folder Modification - c8b150f0-0164-475b-a75e-74b47800a9ff\n- Persistent Scripts in the Startup Directory - f7c4dc5a-a58d-491d-9f14-9b66507121c0\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-1"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n user.domain != \"NT AUTHORITY\" and\n file.path : (\"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\\\\*\",\n \"C:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\StartUp\\\\*\") and\n process.name : (\"cmd.exe\",\n \"powershell.exe\",\n \"wmic.exe\",\n \"mshta.exe\",\n \"pwsh.exe\",\n \"cscript.exe\",\n \"wscript.exe\",\n \"regsvr32.exe\",\n \"RegAsm.exe\",\n \"rundll32.exe\",\n \"EQNEDT32.EXE\",\n \"WINWORD.EXE\",\n \"EXCEL.EXE\",\n \"POWERPNT.EXE\",\n \"MSPUB.EXE\",\n \"MSACCESS.EXE\",\n \"iexplore.exe\",\n \"InstallUtil.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Startup Persistence by a Suspicious Process v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies files written to or modified in the startup folder by commonly abused processes. Adversaries may use this technique to maintain persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Startup Persistence by a Suspicious Process\n\nThe Windows Startup folder is a special folder in Windows. Programs added to this folder are executed during account\nlogon, without user interaction, providing an excellent way for attackers to maintain persistence.\n\nThis rule monitors for commonly abused processes writing to the Startup folder locations.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- Administrators may add programs to this mechanism via command-line shells. Before the further investigation,\nverify that this activity is not benign.\n\n### Related rules\n\n- Suspicious Startup Shell Folder Modification - c8b150f0-0164-475b-a75e-74b47800a9ff\n- Persistent Scripts in the Startup Directory - f7c4dc5a-a58d-491d-9f14-9b66507121c0\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-1"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n user.domain != \"NT AUTHORITY\" and\n file.path : (\"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\\\\*\",\n \"C:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\StartUp\\\\*\") and\n process.name : (\"cmd.exe\",\n \"powershell.exe\",\n \"wmic.exe\",\n \"mshta.exe\",\n \"pwsh.exe\",\n \"cscript.exe\",\n \"wscript.exe\",\n \"regsvr32.exe\",\n \"RegAsm.exe\",\n \"rundll32.exe\",\n \"EQNEDT32.EXE\",\n \"WINWORD.EXE\",\n \"EXCEL.EXE\",\n \"POWERPNT.EXE\",\n \"MSPUB.EXE\",\n \"MSACCESS.EXE\",\n \"iexplore.exe\",\n \"InstallUtil.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"440e2db4-bc7f-4c96-a068-65b78da59bde","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/445a342e-03fb-42d0-8656-0367eb2dead5.json b/fleet-packages/detection-rules-composite/kibana/security_rule/445a342e-03fb-42d0-8656-0367eb2dead5.json new file mode 100644 index 0000000000000..f9a74d8199dd7 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/445a342e-03fb-42d0-8656-0367eb2dead5.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"445a342e-03fb-42d0-8656-0367eb2dead5","versions":[{"name":"Unusual Windows Path Activity v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies processes started from atypical folders in the file system, which might indicate malware execution or persistence mechanisms. In corporate Windows environments, software installation is centrally managed and it is unusual for programs to be executed from user or temporary directories. Processes executed from these locations can denote that a user downloaded software directly from the Internet or a malicious script or macro executed malware.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A new and unusual program or artifact download in the course of software upgrades, debugging, or troubleshooting could trigger this alert. Users downloading and running programs from unusual locations, such as temporary directories, browser caches, or profile paths could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_path_activity"],"type":"machine_learning"},{"name":"Unusual Windows Path Activity v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies processes started from atypical folders in the file system, which might indicate malware execution or persistence mechanisms. In corporate Windows environments, software installation is centrally managed and it is unusual for programs to be executed from user or temporary directories. Processes executed from these locations can denote that a user downloaded software directly from the Internet or a malicious script or macro executed malware.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A new and unusual program or artifact download in the course of software upgrades, debugging, or troubleshooting could trigger this alert. Users downloading and running programs from unusual locations, such as temporary directories, browser caches, or profile paths could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_path_activity"],"type":"machine_learning"},{"name":"Unusual Windows Path Activity v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies processes started from atypical folders in the file system, which might indicate malware execution or persistence mechanisms. In corporate Windows environments, software installation is centrally managed and it is unusual for programs to be executed from user or temporary directories. Processes executed from these locations can denote that a user downloaded software directly from the Internet or a malicious script or macro executed malware.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A new and unusual program or artifact download in the course of software upgrades, debugging, or troubleshooting could trigger this alert. Users downloading and running programs from unusual locations, such as temporary directories, browser caches, or profile paths could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_path_activity"],"type":"machine_learning"}]},"id":"445a342e-03fb-42d0-8656-0367eb2dead5","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/44fc462c-1159-4fa8-b1b7-9b6296ab4f96.json b/fleet-packages/detection-rules-composite/kibana/security_rule/44fc462c-1159-4fa8-b1b7-9b6296ab4f96.json new file mode 100644 index 0000000000000..32bc40ff7a1c2 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/44fc462c-1159-4fa8-b1b7-9b6296ab4f96.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"44fc462c-1159-4fa8-b1b7-9b6296ab4f96","versions":[{"name":"Multiple Vault Web Credentials Read v2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Windows Credential Manager allows you to create, view, or delete saved credentials for signing into websites, connected applications, and networks. An adversary may abuse this to list or dump credentials stored in the Credential Manager for saved usernames and passwords. This may also be performed in preparation of lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic"],"from":"now-9m","references":["https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=5382","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.004","name":"Windows Credential Manager","reference":"https://attack.mitre.org/techniques/T1555/004/"}]}]}],"language":"eql","query":"sequence by host.id, winlog.process.pid with maxspan=1s\n\n /* 2 consecutive vault reads from same pid for web creds */\n\n [any where event.code : \"5382\" and\n (winlog.event_data.SchemaFriendlyName : \"Windows Web Password Credential\" or winlog.event_data.Resource : \"http*\") and\n not winlog.event_data.SubjectLogonId : \"0x3e7\"]\n\n [any where event.code : \"5382\" and\n (winlog.event_data.SchemaFriendlyName : \"Windows Web Password Credential\" or winlog.event_data.Resource : \"http*\") and\n not winlog.event_data.SubjectLogonId : \"0x3e7\"]\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":false,"name":"winlog.event_data.Resource","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SchemaFriendlyName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.process.pid","type":"long"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Multiple Vault Web Credentials Read v2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Windows Credential Manager allows you to create, view, or delete saved credentials for signing into websites, connected applications, and networks. An adversary may abuse this to list or dump credentials stored in the Credential Manager for saved usernames and passwords. This may also be performed in preparation of lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic"],"from":"now-9m","references":["https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=5382","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.004","name":"Windows Credential Manager","reference":"https://attack.mitre.org/techniques/T1555/004/"}]}]}],"language":"eql","query":"sequence by host.id, winlog.process.pid with maxspan=1s\n\n /* 2 consecutive vault reads from same pid for web creds */\n\n [any where event.code : \"5382\" and\n (winlog.event_data.SchemaFriendlyName : \"Windows Web Password Credential\" or winlog.event_data.Resource : \"http*\") and\n not winlog.event_data.SubjectLogonId : \"0x3e7\"]\n\n [any where event.code : \"5382\" and\n (winlog.event_data.SchemaFriendlyName : \"Windows Web Password Credential\" or winlog.event_data.Resource : \"http*\") and\n not winlog.event_data.SubjectLogonId : \"0x3e7\"]\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":false,"name":"winlog.event_data.Resource","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SchemaFriendlyName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.process.pid","type":"long"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Multiple Vault Web Credentials Read v2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Windows Credential Manager allows you to create, view, or delete saved credentials for signing into websites, connected applications, and networks. An adversary may abuse this to list or dump credentials stored in the Credential Manager for saved usernames and passwords. This may also be performed in preparation of lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic"],"from":"now-9m","references":["https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=5382","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.004","name":"Windows Credential Manager","reference":"https://attack.mitre.org/techniques/T1555/004/"}]}]}],"language":"eql","query":"sequence by host.id, winlog.process.pid with maxspan=1s\n\n /* 2 consecutive vault reads from same pid for web creds */\n\n [any where event.code : \"5382\" and\n (winlog.event_data.SchemaFriendlyName : \"Windows Web Password Credential\" or winlog.event_data.Resource : \"http*\") and\n not winlog.event_data.SubjectLogonId : \"0x3e7\"]\n\n [any where event.code : \"5382\" and\n (winlog.event_data.SchemaFriendlyName : \"Windows Web Password Credential\" or winlog.event_data.Resource : \"http*\") and\n not winlog.event_data.SubjectLogonId : \"0x3e7\"]\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":false,"name":"winlog.event_data.Resource","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SchemaFriendlyName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.process.pid","type":"long"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"44fc462c-1159-4fa8-b1b7-9b6296ab4f96","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/453f659e-0429-40b1-bfdb-b6957286e04b.json b/fleet-packages/detection-rules-composite/kibana/security_rule/453f659e-0429-40b1-bfdb-b6957286e04b.json new file mode 100644 index 0000000000000..281ff34f093bf --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/453f659e-0429-40b1-bfdb-b6957286e04b.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"453f659e-0429-40b1-bfdb-b6957286e04b","versions":[{"name":"Permission Theft - Prevented - Elastic Endgame v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented Permission Theft. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:token_protection_event or endgame.event_subtype_full:token_protection_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Permission Theft - Prevented - Elastic Endgame v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented Permission Theft. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:token_protection_event or endgame.event_subtype_full:token_protection_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Permission Theft - Prevented - Elastic Endgame v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented Permission Theft. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:token_protection_event or endgame.event_subtype_full:token_protection_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]}]},"id":"453f659e-0429-40b1-bfdb-b6957286e04b","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/45ac4800-840f-414c-b221-53dd36a5aaf7.json b/fleet-packages/detection-rules-composite/kibana/security_rule/45ac4800-840f-414c-b221-53dd36a5aaf7.json new file mode 100644 index 0000000000000..0b3aa5d5e0859 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/45ac4800-840f-414c-b221-53dd36a5aaf7.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"45ac4800-840f-414c-b221-53dd36a5aaf7","versions":[{"name":"Windows Event Logs Cleared v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to clear Windows event log stores. This is often done by attackers in an attempt to evade detection or destroy forensic evidence on a system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Event Logs Cleared\n\nWindows event logs are a fundamental data source for security monitoring, forensics, and incident response. Adversaries\ncan tamper, clear, and delete this data to break SIEM detections, cover their tracks, and slow down incident response.\n\nThis rule looks for the occurrence of clear actions on the `security` event log.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n - Verify if any other anti-forensics behaviors were observed.\n- Investigate the event logs prior to the action for suspicious behaviors that an attacker may be trying to cover up.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n - This activity is potentially done after the adversary achieves its objectives on the host. Ensure that previous\n actions, if any, are investigated accordingly with their response playbooks.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic","Anabella Cristaldi"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.001","name":"Clear Windows Event Logs","reference":"https://attack.mitre.org/techniques/T1070/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:(\"audit-log-cleared\" or \"Log clear\")\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"}]},{"name":"Windows Event Logs Cleared v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to clear Windows event log stores. This is often done by attackers in an attempt to evade detection or destroy forensic evidence on a system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Event Logs Cleared\n\nWindows event logs are a fundamental data source for security monitoring, forensics, and incident response. Adversaries\ncan tamper, clear, and delete this data to break SIEM detections, cover their tracks, and slow down incident response.\n\nThis rule looks for the occurrence of clear actions on the `security` event log.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n - Verify if any other anti-forensics behaviors were observed.\n- Investigate the event logs prior to the action for suspicious behaviors that an attacker may be trying to cover up.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n - This activity is potentially done after the adversary achieves its objectives on the host. Ensure that previous\n actions, if any, are investigated accordingly with their response playbooks.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic","Anabella Cristaldi"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.001","name":"Clear Windows Event Logs","reference":"https://attack.mitre.org/techniques/T1070/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:(\"audit-log-cleared\" or \"Log clear\")\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"}]},{"name":"Windows Event Logs Cleared v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to clear Windows event log stores. This is often done by attackers in an attempt to evade detection or destroy forensic evidence on a system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Event Logs Cleared\n\nWindows event logs are a fundamental data source for security monitoring, forensics, and incident response. Adversaries\ncan tamper, clear, and delete this data to break SIEM detections, cover their tracks, and slow down incident response.\n\nThis rule looks for the occurrence of clear actions on the `security` event log.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n - Verify if any other anti-forensics behaviors were observed.\n- Investigate the event logs prior to the action for suspicious behaviors that an attacker may be trying to cover up.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n - This activity is potentially done after the adversary achieves its objectives on the host. Ensure that previous\n actions, if any, are investigated accordingly with their response playbooks.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic","Anabella Cristaldi"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.001","name":"Clear Windows Event Logs","reference":"https://attack.mitre.org/techniques/T1070/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:(\"audit-log-cleared\" or \"Log clear\")\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"}]}]},"id":"45ac4800-840f-414c-b221-53dd36a5aaf7","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/45d273fb-1dca-457d-9855-bcb302180c21.json b/fleet-packages/detection-rules-composite/kibana/security_rule/45d273fb-1dca-457d-9855-bcb302180c21.json new file mode 100644 index 0000000000000..1e608bc0d0f8e --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/45d273fb-1dca-457d-9855-bcb302180c21.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"45d273fb-1dca-457d-9855-bcb302180c21","versions":[{"name":"Encrypting Files with WinRar or 7z v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of WinRar or 7z to create an encrypted files. Adversaries will often compress and encrypt data in preparation for exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Encrypting Files with WinRar or 7z\n\nAttackers may compress and/or encrypt data collected before exfiltration. Compressing the data can help obfuscate the\ncollected data and minimize the amount of data sent over the network. Encryption can be used to hide information that is\nbeing exfiltrated from detection or make exfiltration less apparent upon inspection by a defender.\n\nThese steps are usually done in preparation for exfiltration, meaning the attack may be in its final stages.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Retrieve the encrypted file.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check if the password used in the encryption was included in the command line.\n- Decrypt the `.rar`/`.zip` and check if the information is sensitive.\n- If the password is not available, and the format is `.zip` or the option used in WinRAR is not the `-hp`, list the\nfile names included in the encrypted file.\n- Investigate if the file was transferred to an attacker-controlled server.\n\n### False positive analysis\n\n- Backup software can use these utilities. Check the `process.parent.executable` and\n`process.parent.command_line` fields to determine what triggered the encryption.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Prioritize cases that involve personally identifiable information (PII) or other classified data.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.welivesecurity.com/2020/12/02/turla-crutch-keeping-back-door-open/"],"tags":["Elastic","Host","Windows","Threat Detection","Collection","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1560","name":"Archive Collected Data","reference":"https://attack.mitre.org/techniques/T1560/","subtechnique":[{"id":"T1560.001","name":"Archive via Utility","reference":"https://attack.mitre.org/techniques/T1560/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n ((process.name:\"rar.exe\" or process.code_signature.subject_name == \"win.rar GmbH\" or\n process.pe.original_file_name == \"Command line RAR\") and\n process.args == \"a\" and process.args : (\"-hp*\", \"-p*\", \"-dw\", \"-tb\", \"-ta\", \"/hp*\", \"/p*\", \"/dw\", \"/tb\", \"/ta\"))\n\n or\n (process.pe.original_file_name in (\"7z.exe\", \"7za.exe\") and\n process.args == \"a\" and process.args : (\"-p*\", \"-sdel\"))\n\n /* uncomment if noisy for backup software related FPs */\n /* not process.parent.executable : (\"C:\\\\Program Files\\\\*.exe\", \"C:\\\\Program Files (x86)\\\\*.exe\") */\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.code_signature.subject_name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Encrypting Files with WinRar or 7z v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of WinRar or 7z to create an encrypted files. Adversaries will often compress and encrypt data in preparation for exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Encrypting Files with WinRar or 7z\n\nAttackers may compress and/or encrypt data collected before exfiltration. Compressing the data can help obfuscate the\ncollected data and minimize the amount of data sent over the network. Encryption can be used to hide information that is\nbeing exfiltrated from detection or make exfiltration less apparent upon inspection by a defender.\n\nThese steps are usually done in preparation for exfiltration, meaning the attack may be in its final stages.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Retrieve the encrypted file.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check if the password used in the encryption was included in the command line.\n- Decrypt the `.rar`/`.zip` and check if the information is sensitive.\n- If the password is not available, and the format is `.zip` or the option used in WinRAR is not the `-hp`, list the\nfile names included in the encrypted file.\n- Investigate if the file was transferred to an attacker-controlled server.\n\n### False positive analysis\n\n- Backup software can use these utilities. Check the `process.parent.executable` and\n`process.parent.command_line` fields to determine what triggered the encryption.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Prioritize cases that involve personally identifiable information (PII) or other classified data.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.welivesecurity.com/2020/12/02/turla-crutch-keeping-back-door-open/"],"tags":["Elastic","Host","Windows","Threat Detection","Collection","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1560","name":"Archive Collected Data","reference":"https://attack.mitre.org/techniques/T1560/","subtechnique":[{"id":"T1560.001","name":"Archive via Utility","reference":"https://attack.mitre.org/techniques/T1560/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n ((process.name:\"rar.exe\" or process.code_signature.subject_name == \"win.rar GmbH\" or\n process.pe.original_file_name == \"Command line RAR\") and\n process.args == \"a\" and process.args : (\"-hp*\", \"-p*\", \"-dw\", \"-tb\", \"-ta\", \"/hp*\", \"/p*\", \"/dw\", \"/tb\", \"/ta\"))\n\n or\n (process.pe.original_file_name in (\"7z.exe\", \"7za.exe\") and\n process.args == \"a\" and process.args : (\"-p*\", \"-sdel\"))\n\n /* uncomment if noisy for backup software related FPs */\n /* not process.parent.executable : (\"C:\\\\Program Files\\\\*.exe\", \"C:\\\\Program Files (x86)\\\\*.exe\") */\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.code_signature.subject_name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Encrypting Files with WinRar or 7z v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of WinRar or 7z to create an encrypted files. Adversaries will often compress and encrypt data in preparation for exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Encrypting Files with WinRar or 7z\n\nAttackers may compress and/or encrypt data collected before exfiltration. Compressing the data can help obfuscate the\ncollected data and minimize the amount of data sent over the network. Encryption can be used to hide information that is\nbeing exfiltrated from detection or make exfiltration less apparent upon inspection by a defender.\n\nThese steps are usually done in preparation for exfiltration, meaning the attack may be in its final stages.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Retrieve the encrypted file.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check if the password used in the encryption was included in the command line.\n- Decrypt the `.rar`/`.zip` and check if the information is sensitive.\n- If the password is not available, and the format is `.zip` or the option used in WinRAR is not the `-hp`, list the\nfile names included in the encrypted file.\n- Investigate if the file was transferred to an attacker-controlled server.\n\n### False positive analysis\n\n- Backup software can use these utilities. Check the `process.parent.executable` and\n`process.parent.command_line` fields to determine what triggered the encryption.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Prioritize cases that involve personally identifiable information (PII) or other classified data.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.welivesecurity.com/2020/12/02/turla-crutch-keeping-back-door-open/"],"tags":["Elastic","Host","Windows","Threat Detection","Collection","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1560","name":"Archive Collected Data","reference":"https://attack.mitre.org/techniques/T1560/","subtechnique":[{"id":"T1560.001","name":"Archive via Utility","reference":"https://attack.mitre.org/techniques/T1560/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n ((process.name:\"rar.exe\" or process.code_signature.subject_name == \"win.rar GmbH\" or\n process.pe.original_file_name == \"Command line RAR\") and\n process.args == \"a\" and process.args : (\"-hp*\", \"-p*\", \"-dw\", \"-tb\", \"-ta\", \"/hp*\", \"/p*\", \"/dw\", \"/tb\", \"/ta\"))\n\n or\n (process.pe.original_file_name in (\"7z.exe\", \"7za.exe\") and\n process.args == \"a\" and process.args : (\"-p*\", \"-sdel\"))\n\n /* uncomment if noisy for backup software related FPs */\n /* not process.parent.executable : (\"C:\\\\Program Files\\\\*.exe\", \"C:\\\\Program Files (x86)\\\\*.exe\") */\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.code_signature.subject_name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"45d273fb-1dca-457d-9855-bcb302180c21","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/4630d948-40d4-4cef-ac69-4002e29bc3db.json b/fleet-packages/detection-rules-composite/kibana/security_rule/4630d948-40d4-4cef-ac69-4002e29bc3db.json new file mode 100644 index 0000000000000..5c4ccf61d6a27 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/4630d948-40d4-4cef-ac69-4002e29bc3db.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"4630d948-40d4-4cef-ac69-4002e29bc3db","versions":[{"name":"Adding Hidden File Attribute via Attrib v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries can add the 'hidden' attribute to files to hide them from the user in an attempt to evade detection.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timeline_id":"e70679c2-6cde-4510-9764-4823df18f7db","timeline_title":"Comprehensive Process Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.001","name":"Hidden Files and Directories","reference":"https://attack.mitre.org/techniques/T1564/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"attrib.exe\" and process.args : \"+h\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Adding Hidden File Attribute via Attrib v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries can add the 'hidden' attribute to files to hide them from the user in an attempt to evade detection.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timeline_id":"e70679c2-6cde-4510-9764-4823df18f7db","timeline_title":"Comprehensive Process Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.001","name":"Hidden Files and Directories","reference":"https://attack.mitre.org/techniques/T1564/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"attrib.exe\" and process.args : \"+h\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Adding Hidden File Attribute via Attrib v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries can add the 'hidden' attribute to files to hide them from the user in an attempt to evade detection.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timeline_id":"e70679c2-6cde-4510-9764-4823df18f7db","timeline_title":"Comprehensive Process Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.001","name":"Hidden Files and Directories","reference":"https://attack.mitre.org/techniques/T1564/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"attrib.exe\" and process.args : \"+h\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"4630d948-40d4-4cef-ac69-4002e29bc3db","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/4682fd2c-cfae-47ed-a543-9bed37657aa6.json b/fleet-packages/detection-rules-composite/kibana/security_rule/4682fd2c-cfae-47ed-a543-9bed37657aa6.json new file mode 100644 index 0000000000000..b114c4a29220e --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/4682fd2c-cfae-47ed-a543-9bed37657aa6.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"4682fd2c-cfae-47ed-a543-9bed37657aa6","versions":[{"name":"Potential Local NTLM Relay via HTTP v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempt to coerce a local NTLM authentication via HTTP using the Windows Printer Spooler service as a target. An adversary may use this primitive in combination with other techniques to elevate privileges on a compromised system.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/med0x2e/NTLMRelay2Self","https://github.com/topotam/PetitPotam","https://github.com/dirkjanm/krbrelayx/blob/master/printerbug.py"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1212","name":"Exploitation for Credential Access","reference":"https://attack.mitre.org/techniques/T1212/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"rundll32.exe\" and\n\n /* Rundll32 WbeDav Client */\n process.args : (\"?:\\\\Windows\\\\System32\\\\davclnt.dll,DavSetCookie\", \"?:\\\\Windows\\\\SysWOW64\\\\davclnt.dll,DavSetCookie\") and\n\n /* Access to named pipe via http */\n process.args : (\"http*/print/pipe/*\", \"http*/pipe/spoolss\", \"http*/pipe/srvsvc\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Potential Local NTLM Relay via HTTP v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempt to coerce a local NTLM authentication via HTTP using the Windows Printer Spooler service as a target. An adversary may use this primitive in combination with other techniques to elevate privileges on a compromised system.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/med0x2e/NTLMRelay2Self","https://github.com/topotam/PetitPotam","https://github.com/dirkjanm/krbrelayx/blob/master/printerbug.py"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1212","name":"Exploitation for Credential Access","reference":"https://attack.mitre.org/techniques/T1212/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"rundll32.exe\" and\n\n /* Rundll32 WbeDav Client */\n process.args : (\"?:\\\\Windows\\\\System32\\\\davclnt.dll,DavSetCookie\", \"?:\\\\Windows\\\\SysWOW64\\\\davclnt.dll,DavSetCookie\") and\n\n /* Access to named pipe via http */\n process.args : (\"http*/print/pipe/*\", \"http*/pipe/spoolss\", \"http*/pipe/srvsvc\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Potential Local NTLM Relay via HTTP v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempt to coerce a local NTLM authentication via HTTP using the Windows Printer Spooler service as a target. An adversary may use this primitive in combination with other techniques to elevate privileges on a compromised system.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/med0x2e/NTLMRelay2Self","https://github.com/topotam/PetitPotam","https://github.com/dirkjanm/krbrelayx/blob/master/printerbug.py"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1212","name":"Exploitation for Credential Access","reference":"https://attack.mitre.org/techniques/T1212/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"rundll32.exe\" and\n\n /* Rundll32 WbeDav Client */\n process.args : (\"?:\\\\Windows\\\\System32\\\\davclnt.dll,DavSetCookie\", \"?:\\\\Windows\\\\SysWOW64\\\\davclnt.dll,DavSetCookie\") and\n\n /* Access to named pipe via http */\n process.args : (\"http*/print/pipe/*\", \"http*/pipe/spoolss\", \"http*/pipe/srvsvc\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"4682fd2c-cfae-47ed-a543-9bed37657aa6","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/46f804f5-b289-43d6-a881-9387cf594f75.json b/fleet-packages/detection-rules-composite/kibana/security_rule/46f804f5-b289-43d6-a881-9387cf594f75.json new file mode 100644 index 0000000000000..389aec284895b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/46f804f5-b289-43d6-a881-9387cf594f75.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"46f804f5-b289-43d6-a881-9387cf594f75","versions":[{"name":"Unusual Process For a Linux Host v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies rare processes that do not usually run on individual hosts, which can indicate execution of unauthorized services, malware, or persistence mechanisms. Processes are considered rare when they only run occasionally as compared with other processes running on the host.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Linux Process\nDetection alerts from this rule indicate the presence of a Linux process that is rare and unusual for the host it ran on. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is this program part of an expected workflow for the user who ran this program on this host?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Linux","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_rare_process_by_host_linux"],"type":"machine_learning"},{"name":"Unusual Process For a Linux Host v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies rare processes that do not usually run on individual hosts, which can indicate execution of unauthorized services, malware, or persistence mechanisms. Processes are considered rare when they only run occasionally as compared with other processes running on the host.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Linux Process\nDetection alerts from this rule indicate the presence of a Linux process that is rare and unusual for the host it ran on. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is this program part of an expected workflow for the user who ran this program on this host?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Linux","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_rare_process_by_host_linux"],"type":"machine_learning"},{"name":"Unusual Process For a Linux Host v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies rare processes that do not usually run on individual hosts, which can indicate execution of unauthorized services, malware, or persistence mechanisms. Processes are considered rare when they only run occasionally as compared with other processes running on the host.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Linux Process\nDetection alerts from this rule indicate the presence of a Linux process that is rare and unusual for the host it ran on. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is this program part of an expected workflow for the user who ran this program on this host?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Linux","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_rare_process_by_host_linux"],"type":"machine_learning"}]},"id":"46f804f5-b289-43d6-a881-9387cf594f75","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/47e22836-4a16-4b35-beee-98f6c4ee9bf2.json b/fleet-packages/detection-rules-composite/kibana/security_rule/47e22836-4a16-4b35-beee-98f6c4ee9bf2.json new file mode 100644 index 0000000000000..53dfc7ac4ba7c --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/47e22836-4a16-4b35-beee-98f6c4ee9bf2.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"47e22836-4a16-4b35-beee-98f6c4ee9bf2","versions":[{"name":"Suspicious Remote Registry Access via SeBackupPrivilege v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote access to the registry using an account with Backup Operators group membership. This may indicate an attempt to exfiltrate credentials by dumping the Security Account Manager (SAM) registry hive in preparation for credential access and privileges elevation.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Remote Registry Access via SeBackupPrivilege\n\nSeBackupPrivilege is a privilege that allows file content retrieval, designed to enable users to create backup copies of\nthe system. Since it is impossible to make a backup of something you cannot read, this privilege comes at the cost of\nproviding the user with full read access to the file system. This privilege must bypass any access control list (ACL) placed in the system.\n\nThis rule identifies remote access to the registry using an account with Backup Operators group membership. This may\nindicate an attempt to exfiltrate credentials by dumping the Security Account Manager (SAM) registry hive in preparation\nfor credential access and privileges elevation.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate the activities done by the subject user the login session. The field `winlog.event_data.SubjectLogonId`\ncan be used to get this data.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate abnormal behaviors observed by the subject user such as network connections, registry or file\nmodifications, and processes created.\n- Investigate if the registry file was retrieved or exfiltrated.\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, benign true positives (B-TPs) can be added as exceptions\nif necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Limit or disable the involved user account to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-9m","references":["https://github.com/mpgn/BackupOperatorToDA","https://raw.githubusercontent.com/Wh04m1001/Random/main/BackupOperators.cpp","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.002","name":"Security Account Manager","reference":"https://attack.mitre.org/techniques/T1003/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by host.id, winlog.event_data.SubjectLogonId with maxspan=1m\n [iam where event.action == \"logged-in-special\" and\n winlog.event_data.PrivilegeList : \"SeBackupPrivilege\" and\n\n /* excluding accounts with existing privileged access */\n not winlog.event_data.PrivilegeList : \"SeDebugPrivilege\"]\n [any where event.action == \"Detailed File Share\" and winlog.event_data.RelativeTargetName : \"winreg\"]\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":false,"name":"winlog.event_data.PrivilegeList","type":"keyword"},{"ecs":false,"name":"winlog.event_data.RelativeTargetName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"}],"setup":"The 'Audit Detailed File Share' audit policy is required be configured (Success) on Domain Controllers and Sensitive Windows Servers.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nObject Access >\nAudit Detailed File Share (Success)\n```\n\nThe 'Special Logon' audit policy must be configured (Success).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nLogon/Logoff >\nSpecial Logon (Success)\n```"},{"name":"Suspicious Remote Registry Access via SeBackupPrivilege v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote access to the registry using an account with Backup Operators group membership. This may indicate an attempt to exfiltrate credentials by dumping the Security Account Manager (SAM) registry hive in preparation for credential access and privileges elevation.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Remote Registry Access via SeBackupPrivilege\n\nSeBackupPrivilege is a privilege that allows file content retrieval, designed to enable users to create backup copies of\nthe system. Since it is impossible to make a backup of something you cannot read, this privilege comes at the cost of\nproviding the user with full read access to the file system. This privilege must bypass any access control list (ACL) placed in the system.\n\nThis rule identifies remote access to the registry using an account with Backup Operators group membership. This may\nindicate an attempt to exfiltrate credentials by dumping the Security Account Manager (SAM) registry hive in preparation\nfor credential access and privileges elevation.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate the activities done by the subject user the login session. The field `winlog.event_data.SubjectLogonId`\ncan be used to get this data.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate abnormal behaviors observed by the subject user such as network connections, registry or file\nmodifications, and processes created.\n- Investigate if the registry file was retrieved or exfiltrated.\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, benign true positives (B-TPs) can be added as exceptions\nif necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Limit or disable the involved user account to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-9m","references":["https://github.com/mpgn/BackupOperatorToDA","https://raw.githubusercontent.com/Wh04m1001/Random/main/BackupOperators.cpp","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.002","name":"Security Account Manager","reference":"https://attack.mitre.org/techniques/T1003/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by host.id, winlog.event_data.SubjectLogonId with maxspan=1m\n [iam where event.action == \"logged-in-special\" and\n winlog.event_data.PrivilegeList : \"SeBackupPrivilege\" and\n\n /* excluding accounts with existing privileged access */\n not winlog.event_data.PrivilegeList : \"SeDebugPrivilege\"]\n [any where event.action == \"Detailed File Share\" and winlog.event_data.RelativeTargetName : \"winreg\"]\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":false,"name":"winlog.event_data.PrivilegeList","type":"keyword"},{"ecs":false,"name":"winlog.event_data.RelativeTargetName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"}],"setup":"The 'Audit Detailed File Share' audit policy is required be configured (Success) on Domain Controllers and Sensitive Windows Servers.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nObject Access >\nAudit Detailed File Share (Success)\n```\n\nThe 'Special Logon' audit policy must be configured (Success).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nLogon/Logoff >\nSpecial Logon (Success)\n```"},{"name":"Suspicious Remote Registry Access via SeBackupPrivilege v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote access to the registry using an account with Backup Operators group membership. This may indicate an attempt to exfiltrate credentials by dumping the Security Account Manager (SAM) registry hive in preparation for credential access and privileges elevation.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Remote Registry Access via SeBackupPrivilege\n\nSeBackupPrivilege is a privilege that allows file content retrieval, designed to enable users to create backup copies of\nthe system. Since it is impossible to make a backup of something you cannot read, this privilege comes at the cost of\nproviding the user with full read access to the file system. This privilege must bypass any access control list (ACL) placed in the system.\n\nThis rule identifies remote access to the registry using an account with Backup Operators group membership. This may\nindicate an attempt to exfiltrate credentials by dumping the Security Account Manager (SAM) registry hive in preparation\nfor credential access and privileges elevation.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate the activities done by the subject user the login session. The field `winlog.event_data.SubjectLogonId`\ncan be used to get this data.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate abnormal behaviors observed by the subject user such as network connections, registry or file\nmodifications, and processes created.\n- Investigate if the registry file was retrieved or exfiltrated.\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, benign true positives (B-TPs) can be added as exceptions\nif necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Limit or disable the involved user account to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-9m","references":["https://github.com/mpgn/BackupOperatorToDA","https://raw.githubusercontent.com/Wh04m1001/Random/main/BackupOperators.cpp","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.002","name":"Security Account Manager","reference":"https://attack.mitre.org/techniques/T1003/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by host.id, winlog.event_data.SubjectLogonId with maxspan=1m\n [iam where event.action == \"logged-in-special\" and\n winlog.event_data.PrivilegeList : \"SeBackupPrivilege\" and\n\n /* excluding accounts with existing privileged access */\n not winlog.event_data.PrivilegeList : \"SeDebugPrivilege\"]\n [any where event.action == \"Detailed File Share\" and winlog.event_data.RelativeTargetName : \"winreg\"]\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":false,"name":"winlog.event_data.PrivilegeList","type":"keyword"},{"ecs":false,"name":"winlog.event_data.RelativeTargetName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"}],"setup":"The 'Audit Detailed File Share' audit policy is required be configured (Success) on Domain Controllers and Sensitive Windows Servers.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nObject Access >\nAudit Detailed File Share (Success)\n```\n\nThe 'Special Logon' audit policy must be configured (Success).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nLogon/Logoff >\nSpecial Logon (Success)\n```"}]},"id":"47e22836-4a16-4b35-beee-98f6c4ee9bf2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/47f76567-d58a-4fed-b32b-21f571e28910.json b/fleet-packages/detection-rules-composite/kibana/security_rule/47f76567-d58a-4fed-b32b-21f571e28910.json new file mode 100644 index 0000000000000..27233cfc91902 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/47f76567-d58a-4fed-b32b-21f571e28910.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"47f76567-d58a-4fed-b32b-21f571e28910","versions":[{"name":"Apple Script Execution followed by Network Connection v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects execution via the Apple script interpreter (osascript) followed by a network connection from the same process within a short time period. Adversaries may use malicious scripts for execution and command and control.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://developer.apple.com/library/archive/documentation/LanguagesUtilities/Conceptual/MacAutomationScriptingGuide/index.html","https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","macOS","Threat Detection","Command and Control","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.002","name":"AppleScript","reference":"https://attack.mitre.org/techniques/T1059/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan=30s\n [process where event.type == \"start\" and process.name == \"osascript\"]\n [network where event.type != \"end\" and process.name == \"osascript\" and destination.ip != \"::1\" and\n not cidrmatch(destination.ip,\n \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\", \"192.0.0.0/29\", \"192.0.0.8/32\",\n \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\",\n \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\", \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Apple Script Execution followed by Network Connection v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects execution via the Apple script interpreter (osascript) followed by a network connection from the same process within a short time period. Adversaries may use malicious scripts for execution and command and control.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://developer.apple.com/library/archive/documentation/LanguagesUtilities/Conceptual/MacAutomationScriptingGuide/index.html","https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","macOS","Threat Detection","Command and Control","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.002","name":"AppleScript","reference":"https://attack.mitre.org/techniques/T1059/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan=30s\n [process where event.type == \"start\" and process.name == \"osascript\"]\n [network where event.type != \"end\" and process.name == \"osascript\" and destination.ip != \"::1\" and\n not cidrmatch(destination.ip,\n \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\", \"192.0.0.0/29\", \"192.0.0.8/32\",\n \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\",\n \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\", \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Apple Script Execution followed by Network Connection v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects execution via the Apple script interpreter (osascript) followed by a network connection from the same process within a short time period. Adversaries may use malicious scripts for execution and command and control.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://developer.apple.com/library/archive/documentation/LanguagesUtilities/Conceptual/MacAutomationScriptingGuide/index.html","https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","macOS","Threat Detection","Command and Control","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.002","name":"AppleScript","reference":"https://attack.mitre.org/techniques/T1059/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan=30s\n [process where event.type == \"start\" and process.name == \"osascript\"]\n [network where event.type != \"end\" and process.name == \"osascript\" and destination.ip != \"::1\" and\n not cidrmatch(destination.ip,\n \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\", \"192.0.0.0/29\", \"192.0.0.8/32\",\n \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\",\n \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\", \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"47f76567-d58a-4fed-b32b-21f571e28910","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/483c4daf-b0c6-49e0-adf3-0bfa93231d6b.json b/fleet-packages/detection-rules-composite/kibana/security_rule/483c4daf-b0c6-49e0-adf3-0bfa93231d6b.json new file mode 100644 index 0000000000000..c4d9903d06036 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/483c4daf-b0c6-49e0-adf3-0bfa93231d6b.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"483c4daf-b0c6-49e0-adf3-0bfa93231d6b","versions":[{"name":"Microsoft Exchange Server UM Spawning Suspicious Processes v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious processes being spawned by the Microsoft Exchange Server Unified Messaging (UM) service. This activity has been observed exploiting CVE-2021-26857.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Legitimate processes may be spawned from the Microsoft Exchange Server Unified Messaging (UM) service. If known processes are causing false positives, they can be exempted from the rule."],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2021/03/02/hafnium-targeting-exchange-servers","https://www.volexity.com/blog/2021/03/02/active-exploitation-of-microsoft-exchange-zero-day-vulnerabilities"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"UMService.exe\", \"UMWorkerProcess.exe\") and\n not process.executable :\n (\"?:\\\\Windows\\\\System32\\\\werfault.exe\",\n \"?:\\\\Windows\\\\System32\\\\wermgr.exe\",\n \"?:\\\\Program Files\\\\Microsoft\\\\Exchange Server\\\\V??\\\\Bin\\\\UMWorkerProcess.exe\",\n \"D:\\\\Exchange 2016\\\\Bin\\\\UMWorkerProcess.exe\",\n \"E:\\\\ExchangeServer\\\\Bin\\\\UMWorkerProcess.exe\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Microsoft Exchange Server UM Spawning Suspicious Processes v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious processes being spawned by the Microsoft Exchange Server Unified Messaging (UM) service. This activity has been observed exploiting CVE-2021-26857.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Legitimate processes may be spawned from the Microsoft Exchange Server Unified Messaging (UM) service. If known processes are causing false positives, they can be exempted from the rule."],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2021/03/02/hafnium-targeting-exchange-servers","https://www.volexity.com/blog/2021/03/02/active-exploitation-of-microsoft-exchange-zero-day-vulnerabilities"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"UMService.exe\", \"UMWorkerProcess.exe\") and\n not process.executable :\n (\"?:\\\\Windows\\\\System32\\\\werfault.exe\",\n \"?:\\\\Windows\\\\System32\\\\wermgr.exe\",\n \"?:\\\\Program Files\\\\Microsoft\\\\Exchange Server\\\\V??\\\\Bin\\\\UMWorkerProcess.exe\",\n \"D:\\\\Exchange 2016\\\\Bin\\\\UMWorkerProcess.exe\",\n \"E:\\\\ExchangeServer\\\\Bin\\\\UMWorkerProcess.exe\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Microsoft Exchange Server UM Spawning Suspicious Processes v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious processes being spawned by the Microsoft Exchange Server Unified Messaging (UM) service. This activity has been observed exploiting CVE-2021-26857.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Legitimate processes may be spawned from the Microsoft Exchange Server Unified Messaging (UM) service. If known processes are causing false positives, they can be exempted from the rule."],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2021/03/02/hafnium-targeting-exchange-servers","https://www.volexity.com/blog/2021/03/02/active-exploitation-of-microsoft-exchange-zero-day-vulnerabilities"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"UMService.exe\", \"UMWorkerProcess.exe\") and\n not process.executable :\n (\"?:\\\\Windows\\\\System32\\\\werfault.exe\",\n \"?:\\\\Windows\\\\System32\\\\wermgr.exe\",\n \"?:\\\\Program Files\\\\Microsoft\\\\Exchange Server\\\\V??\\\\Bin\\\\UMWorkerProcess.exe\",\n \"D:\\\\Exchange 2016\\\\Bin\\\\UMWorkerProcess.exe\",\n \"E:\\\\ExchangeServer\\\\Bin\\\\UMWorkerProcess.exe\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"483c4daf-b0c6-49e0-adf3-0bfa93231d6b","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/48b6edfc-079d-4907-b43c-baffa243270d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/48b6edfc-079d-4907-b43c-baffa243270d.json new file mode 100644 index 0000000000000..899f098283479 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/48b6edfc-079d-4907-b43c-baffa243270d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"48b6edfc-079d-4907-b43c-baffa243270d","versions":[{"name":"Multiple Logon Failure from the same Source Address v1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple consecutive logon failures from the same source address and within a short time interval. Adversaries will often brute force login attempts across multiple users with a common or known password, in an attempt to gain access to accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n#### Possible investigation steps\n\n- Investigate the logon failure reason code and the targeted user names.\n- Investigate the source IP address of the failed Network Logon attempts.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Trust relationship between the primary domain and the trusted domain issue.\n- Infrastructure or availability issue.\n\n### Related rules\n\n- Multiple Logon Failure Followed by Logon Success - 4e85dc8a-3e41-40d8-bc28-91af7ac6cf60\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the host is a domain controller (DC):\n - Activate your incident response plan for total Active Directory compromise.\n - Review the privileges assigned to users that can access the DCs, to ensure that the least privilege principle is\n being followed and to reduce the attack surface.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4625"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip with maxspan=10s\n [authentication where event.action == \"logon-failed\" and\n /* event 4625 need to be logged */\n winlog.logon.type : \"Network\" and\n source.ip != null and source.ip != \"127.0.0.1\" and source.ip != \"::1\" and\n not user.name : (\"ANONYMOUS LOGON\", \"-\", \"*$\") and not user.domain == \"NT AUTHORITY\" and\n\n /* \n noisy failure status codes often associated to authentication misconfiguration :\n 0xC000015B - The user has not been granted the requested logon type (also called the logon right) at this machine.\n 0XC000005E\t- There are currently no logon servers available to service the logon request.\n 0XC0000133\t- Clocks between DC and other computer too far out of sync.\n 0XC0000192\tAn attempt was made to logon, but the Netlogon service was not started.\n */\n not winlog.event_data.Status : (\"0xC000015B\", \"0XC000005E\", \"0XC0000133\", \"0XC0000192\")] with runs=10\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.Status","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Multiple Logon Failure from the same Source Address v1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple consecutive logon failures from the same source address and within a short time interval. Adversaries will often brute force login attempts across multiple users with a common or known password, in an attempt to gain access to accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n#### Possible investigation steps\n\n- Investigate the logon failure reason code and the targeted user names.\n- Investigate the source IP address of the failed Network Logon attempts.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Trust relationship between the primary domain and the trusted domain issue.\n- Infrastructure or availability issue.\n\n### Related rules\n\n- Multiple Logon Failure Followed by Logon Success - 4e85dc8a-3e41-40d8-bc28-91af7ac6cf60\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the host is a domain controller (DC):\n - Activate your incident response plan for total Active Directory compromise.\n - Review the privileges assigned to users that can access the DCs, to ensure that the least privilege principle is\n being followed and to reduce the attack surface.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4625"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip with maxspan=10s\n [authentication where event.action == \"logon-failed\" and\n /* event 4625 need to be logged */\n winlog.logon.type : \"Network\" and\n source.ip != null and source.ip != \"127.0.0.1\" and source.ip != \"::1\" and\n not user.name : (\"ANONYMOUS LOGON\", \"-\", \"*$\") and not user.domain == \"NT AUTHORITY\" and\n\n /* \n noisy failure status codes often associated to authentication misconfiguration :\n 0xC000015B - The user has not been granted the requested logon type (also called the logon right) at this machine.\n 0XC000005E\t- There are currently no logon servers available to service the logon request.\n 0XC0000133\t- Clocks between DC and other computer too far out of sync.\n 0XC0000192\tAn attempt was made to logon, but the Netlogon service was not started.\n */\n not winlog.event_data.Status : (\"0xC000015B\", \"0XC000005E\", \"0XC0000133\", \"0XC0000192\")] with runs=10\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.Status","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Multiple Logon Failure from the same Source Address v1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple consecutive logon failures from the same source address and within a short time interval. Adversaries will often brute force login attempts across multiple users with a common or known password, in an attempt to gain access to accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n#### Possible investigation steps\n\n- Investigate the logon failure reason code and the targeted user names.\n- Investigate the source IP address of the failed Network Logon attempts.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Trust relationship between the primary domain and the trusted domain issue.\n- Infrastructure or availability issue.\n\n### Related rules\n\n- Multiple Logon Failure Followed by Logon Success - 4e85dc8a-3e41-40d8-bc28-91af7ac6cf60\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the host is a domain controller (DC):\n - Activate your incident response plan for total Active Directory compromise.\n - Review the privileges assigned to users that can access the DCs, to ensure that the least privilege principle is\n being followed and to reduce the attack surface.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4625"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip with maxspan=10s\n [authentication where event.action == \"logon-failed\" and\n /* event 4625 need to be logged */\n winlog.logon.type : \"Network\" and\n source.ip != null and source.ip != \"127.0.0.1\" and source.ip != \"::1\" and\n not user.name : (\"ANONYMOUS LOGON\", \"-\", \"*$\") and not user.domain == \"NT AUTHORITY\" and\n\n /* \n noisy failure status codes often associated to authentication misconfiguration :\n 0xC000015B - The user has not been granted the requested logon type (also called the logon right) at this machine.\n 0XC000005E\t- There are currently no logon servers available to service the logon request.\n 0XC0000133\t- Clocks between DC and other computer too far out of sync.\n 0XC0000192\tAn attempt was made to logon, but the Netlogon service was not started.\n */\n not winlog.event_data.Status : (\"0xC000015B\", \"0XC000005E\", \"0XC0000133\", \"0XC0000192\")] with runs=10\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.Status","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"48b6edfc-079d-4907-b43c-baffa243270d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/48d7f54d-c29e-4430-93a9-9db6b5892270.json b/fleet-packages/detection-rules-composite/kibana/security_rule/48d7f54d-c29e-4430-93a9-9db6b5892270.json new file mode 100644 index 0000000000000..ca7741a558783 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/48d7f54d-c29e-4430-93a9-9db6b5892270.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"48d7f54d-c29e-4430-93a9-9db6b5892270","versions":[{"name":"Unexpected Child Process of macOS Screensaver Engine v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a child process is spawned by the screensaver engine process, which is consistent with an attacker's malicious payload being executed after the screensaver activated on the endpoint. An adversary can maintain persistence on a macOS endpoint by creating a malicious screensaver (.saver) file and configuring the screensaver plist file to execute code each time the screensaver is activated.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n- Analyze the descendant processes of the ScreenSaverEngine process for malicious code and suspicious behavior such\nas a download of a payload from a server.\n- Review the installed and activated screensaver on the host. Triage the screensaver (.saver) file that was triggered to\nidentify whether the file is malicious or not.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/saving-your-access-d562bf5bf90b","https://github.com/D00MFist/PersistentJXA"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.002","name":"Screensaver","reference":"https://attack.mitre.org/techniques/T1546/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.parent.name == \"ScreenSaverEngine\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Unexpected Child Process of macOS Screensaver Engine v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a child process is spawned by the screensaver engine process, which is consistent with an attacker's malicious payload being executed after the screensaver activated on the endpoint. An adversary can maintain persistence on a macOS endpoint by creating a malicious screensaver (.saver) file and configuring the screensaver plist file to execute code each time the screensaver is activated.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n- Analyze the descendant processes of the ScreenSaverEngine process for malicious code and suspicious behavior such\nas a download of a payload from a server.\n- Review the installed and activated screensaver on the host. Triage the screensaver (.saver) file that was triggered to\nidentify whether the file is malicious or not.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/saving-your-access-d562bf5bf90b","https://github.com/D00MFist/PersistentJXA"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.002","name":"Screensaver","reference":"https://attack.mitre.org/techniques/T1546/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.parent.name == \"ScreenSaverEngine\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Unexpected Child Process of macOS Screensaver Engine v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a child process is spawned by the screensaver engine process, which is consistent with an attacker's malicious payload being executed after the screensaver activated on the endpoint. An adversary can maintain persistence on a macOS endpoint by creating a malicious screensaver (.saver) file and configuring the screensaver plist file to execute code each time the screensaver is activated.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n- Analyze the descendant processes of the ScreenSaverEngine process for malicious code and suspicious behavior such\nas a download of a payload from a server.\n- Review the installed and activated screensaver on the host. Triage the screensaver (.saver) file that was triggered to\nidentify whether the file is malicious or not.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/saving-your-access-d562bf5bf90b","https://github.com/D00MFist/PersistentJXA"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.002","name":"Screensaver","reference":"https://attack.mitre.org/techniques/T1546/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.parent.name == \"ScreenSaverEngine\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"48d7f54d-c29e-4430-93a9-9db6b5892270","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/48ec9452-e1fd-4513-a376-10a1a26d2c83.json b/fleet-packages/detection-rules-composite/kibana/security_rule/48ec9452-e1fd-4513-a376-10a1a26d2c83.json new file mode 100644 index 0000000000000..c068e4cbd6c07 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/48ec9452-e1fd-4513-a376-10a1a26d2c83.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"48ec9452-e1fd-4513-a376-10a1a26d2c83","versions":[{"name":"Potential Persistence via Periodic Tasks v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of the default configuration for periodic tasks. Adversaries may abuse periodic tasks to execute malicious code or maintain persistence.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://opensource.apple.com/source/crontabs/crontabs-13/private/etc/defaults/periodic.conf.auto.html","https://www.oreilly.com/library/view/mac-os-x/0596003706/re328.html","https://github.com/D00MFist/PersistentJXA/blob/master/PeriodicPersist.js"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.003","name":"Cron","reference":"https://attack.mitre.org/techniques/T1053/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:\"file\" and not event.type:\"deletion\" and\n file.path:(/private/etc/periodic/* or /private/etc/defaults/periodic.conf or /private/etc/periodic.conf)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}]},{"name":"Potential Persistence via Periodic Tasks v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of the default configuration for periodic tasks. Adversaries may abuse periodic tasks to execute malicious code or maintain persistence.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://opensource.apple.com/source/crontabs/crontabs-13/private/etc/defaults/periodic.conf.auto.html","https://www.oreilly.com/library/view/mac-os-x/0596003706/re328.html","https://github.com/D00MFist/PersistentJXA/blob/master/PeriodicPersist.js"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.003","name":"Cron","reference":"https://attack.mitre.org/techniques/T1053/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:\"file\" and not event.type:\"deletion\" and\n file.path:(/private/etc/periodic/* or /private/etc/defaults/periodic.conf or /private/etc/periodic.conf)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}]},{"name":"Potential Persistence via Periodic Tasks v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of the default configuration for periodic tasks. Adversaries may abuse periodic tasks to execute malicious code or maintain persistence.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://opensource.apple.com/source/crontabs/crontabs-13/private/etc/defaults/periodic.conf.auto.html","https://www.oreilly.com/library/view/mac-os-x/0596003706/re328.html","https://github.com/D00MFist/PersistentJXA/blob/master/PeriodicPersist.js"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.003","name":"Cron","reference":"https://attack.mitre.org/techniques/T1053/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:\"file\" and not event.type:\"deletion\" and\n file.path:(/private/etc/periodic/* or /private/etc/defaults/periodic.conf or /private/etc/periodic.conf)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}]}]},"id":"48ec9452-e1fd-4513-a376-10a1a26d2c83","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/493834ca-f861-414c-8602-150d5505b777.json b/fleet-packages/detection-rules-composite/kibana/security_rule/493834ca-f861-414c-8602-150d5505b777.json new file mode 100644 index 0000000000000..871ffe05dca1d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/493834ca-f861-414c-8602-150d5505b777.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"493834ca-f861-414c-8602-150d5505b777","versions":[{"name":"Agent Spoofing - Multiple Hosts Using Same Agent v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when multiple hosts are using the same agent ID. This could occur in the event of an agent being taken over and used to inject illegitimate documents into an instance as an attempt to spoof events in order to masquerade actual activity to evade detection.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This is meant to run only on datasources using Elastic Agent 7.14+ since versions prior to that will be missing the necessary field, resulting in false positives."],"from":"now-9m","tags":["Elastic","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"query":"event.agent_id_status:*\n","threshold":{"field":["agent.id"],"value":2,"cardinality":[{"field":"host.id","value":2}]},"type":"threshold","index":["logs-*","metrics-*","traces-*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.agent_id_status","type":"keyword"}]},{"name":"Agent Spoofing - Multiple Hosts Using Same Agent v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when multiple hosts are using the same agent ID. This could occur in the event of an agent being taken over and used to inject illegitimate documents into an instance as an attempt to spoof events in order to masquerade actual activity to evade detection.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This is meant to run only on datasources using Elastic Agent 7.14+ since versions prior to that will be missing the necessary field, resulting in false positives."],"from":"now-9m","tags":["Elastic","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"query":"event.agent_id_status:*\n","threshold":{"field":["agent.id"],"value":2,"cardinality":[{"field":"host.id","value":2}]},"type":"threshold","index":["logs-*","metrics-*","traces-*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.agent_id_status","type":"keyword"}]},{"name":"Agent Spoofing - Multiple Hosts Using Same Agent v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when multiple hosts are using the same agent ID. This could occur in the event of an agent being taken over and used to inject illegitimate documents into an instance as an attempt to spoof events in order to masquerade actual activity to evade detection.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This is meant to run only on datasources using Elastic Agent 7.14+ since versions prior to that will be missing the necessary field, resulting in false positives."],"from":"now-9m","tags":["Elastic","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"query":"event.agent_id_status:*\n","threshold":{"field":["agent.id"],"value":2,"cardinality":[{"field":"host.id","value":2}]},"type":"threshold","index":["logs-*","metrics-*","traces-*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.agent_id_status","type":"keyword"}]}]},"id":"493834ca-f861-414c-8602-150d5505b777","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/495e5f2e-2480-11ed-bea8-f661ea17fbce.json b/fleet-packages/detection-rules-composite/kibana/security_rule/495e5f2e-2480-11ed-bea8-f661ea17fbce.json new file mode 100644 index 0000000000000..4bff4476ea3ab --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/495e5f2e-2480-11ed-bea8-f661ea17fbce.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"495e5f2e-2480-11ed-bea8-f661ea17fbce","versions":[{"name":"Application Removed from Blocklist in Google Workspace v2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Google Workspace administrators may be aware of malicious applications within the Google marketplace and block these applications for user security purposes. An adversary, with administrative privileges, may remove this application from the explicit block list to allow distribution of the application amongst users. This may also indicate the unauthorized use of an application that had been previously blocked before by a user with admin privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Applications can be added and removed from blocklists by Google Workspace administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/6328701?hl=en#"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Impair Defenses"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.category:\"iam\" and event.type:\"change\" and\n event.action:\"CHANGE_APPLICATION_SETTING\" and\n google_workspace.admin.application.name:\"Google Workspace Marketplace\" and\n google_workspace.admin.old_value: *allowed*false* and google_workspace.admin.new_value: *allowed*true*\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.application.name","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.old_value","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Application Removed from Blocklist in Google Workspace v2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Google Workspace administrators may be aware of malicious applications within the Google marketplace and block these applications for user security purposes. An adversary, with administrative privileges, may remove this application from the explicit block list to allow distribution of the application amongst users. This may also indicate the unauthorized use of an application that had been previously blocked before by a user with admin privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Applications can be added and removed from blocklists by Google Workspace administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/6328701?hl=en#"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Impair Defenses"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.category:\"iam\" and event.type:\"change\" and\n event.action:\"CHANGE_APPLICATION_SETTING\" and\n google_workspace.admin.application.name:\"Google Workspace Marketplace\" and\n google_workspace.admin.old_value: *allowed*false* and google_workspace.admin.new_value: *allowed*true*\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.application.name","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.old_value","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Application Removed from Blocklist in Google Workspace v2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Google Workspace administrators may be aware of malicious applications within the Google marketplace and block these applications for user security purposes. An adversary, with administrative privileges, may remove this application from the explicit block list to allow distribution of the application amongst users. This may also indicate the unauthorized use of an application that had been previously blocked before by a user with admin privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Applications can be added and removed from blocklists by Google Workspace administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/6328701?hl=en#"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Impair Defenses"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.category:\"iam\" and event.type:\"change\" and\n event.action:\"CHANGE_APPLICATION_SETTING\" and\n google_workspace.admin.application.name:\"Google Workspace Marketplace\" and\n google_workspace.admin.old_value: *allowed*false* and google_workspace.admin.new_value: *allowed*true*\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.application.name","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.old_value","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"495e5f2e-2480-11ed-bea8-f661ea17fbce","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/4a4e23cf-78a2-449c-bac3-701924c269d3.json b/fleet-packages/detection-rules-composite/kibana/security_rule/4a4e23cf-78a2-449c-bac3-701924c269d3.json new file mode 100644 index 0000000000000..ebe52fc54cca5 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/4a4e23cf-78a2-449c-bac3-701924c269d3.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"4a4e23cf-78a2-449c-bac3-701924c269d3","versions":[{"name":"Possible FIN7 DGA Command and Control Behavior v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects a known command and control pattern in network events. The FIN7 threat group is known to use this command and control technique, while maintaining persistence in their target's network.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\nIn the event this rule identifies benign domains in your environment, the `destination.domain` field in the rule can be modified to include those domains. Example: `...AND NOT destination.domain:(zoom.us OR benign.domain1 OR benign.domain2)`.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This rule could identify benign domains that are formatted similarly to FIN7's command and control algorithm. Alerts should be investigated by an analyst to assess the validity of the individual observations."],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2018/08/fin7-pursuing-an-enigmatic-and-evasive-global-criminal-operation.html"],"tags":["Elastic","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/"},{"id":"T1568","name":"Dynamic Resolution","reference":"https://attack.mitre.org/techniques/T1568/","subtechnique":[{"id":"T1568.002","name":"Domain Generation Algorithms","reference":"https://attack.mitre.org/techniques/T1568/002/"}]}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"lucene","query":"event.category:(network OR network_traffic) AND type:(tls OR http) AND network.transport:tcp\nAND destination.domain:/[a-zA-Z]{4,5}\\.(pw|us|club|info|site|top)/ AND NOT destination.domain:zoom.us\n"},{"name":"Possible FIN7 DGA Command and Control Behavior v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects a known command and control pattern in network events. The FIN7 threat group is known to use this command and control technique, while maintaining persistence in their target's network.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\nIn the event this rule identifies benign domains in your environment, the `destination.domain` field in the rule can be modified to include those domains. Example: `...AND NOT destination.domain:(zoom.us OR benign.domain1 OR benign.domain2)`.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This rule could identify benign domains that are formatted similarly to FIN7's command and control algorithm. Alerts should be investigated by an analyst to assess the validity of the individual observations."],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2018/08/fin7-pursuing-an-enigmatic-and-evasive-global-criminal-operation.html"],"tags":["Elastic","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/"},{"id":"T1568","name":"Dynamic Resolution","reference":"https://attack.mitre.org/techniques/T1568/","subtechnique":[{"id":"T1568.002","name":"Domain Generation Algorithms","reference":"https://attack.mitre.org/techniques/T1568/002/"}]}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"lucene","query":"event.category:(network OR network_traffic) AND type:(tls OR http) AND network.transport:tcp\nAND destination.domain:/[a-zA-Z]{4,5}\\.(pw|us|club|info|site|top)/ AND NOT destination.domain:zoom.us\n"},{"name":"Possible FIN7 DGA Command and Control Behavior v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects a known command and control pattern in network events. The FIN7 threat group is known to use this command and control technique, while maintaining persistence in their target's network.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\nIn the event this rule identifies benign domains in your environment, the `destination.domain` field in the rule can be modified to include those domains. Example: `...AND NOT destination.domain:(zoom.us OR benign.domain1 OR benign.domain2)`.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This rule could identify benign domains that are formatted similarly to FIN7's command and control algorithm. Alerts should be investigated by an analyst to assess the validity of the individual observations."],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2018/08/fin7-pursuing-an-enigmatic-and-evasive-global-criminal-operation.html"],"tags":["Elastic","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/"},{"id":"T1568","name":"Dynamic Resolution","reference":"https://attack.mitre.org/techniques/T1568/","subtechnique":[{"id":"T1568.002","name":"Domain Generation Algorithms","reference":"https://attack.mitre.org/techniques/T1568/002/"}]}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"lucene","query":"event.category:(network OR network_traffic) AND type:(tls OR http) AND network.transport:tcp\nAND destination.domain:/[a-zA-Z]{4,5}\\.(pw|us|club|info|site|top)/ AND NOT destination.domain:zoom.us\n"}]},"id":"4a4e23cf-78a2-449c-bac3-701924c269d3","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/4b438734-3793-4fda-bd42-ceeada0be8f9.json b/fleet-packages/detection-rules-composite/kibana/security_rule/4b438734-3793-4fda-bd42-ceeada0be8f9.json new file mode 100644 index 0000000000000..e8e94cc22a52c --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/4b438734-3793-4fda-bd42-ceeada0be8f9.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"4b438734-3793-4fda-bd42-ceeada0be8f9","versions":[{"name":"Disable Windows Firewall Rules via Netsh v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the netsh.exe to disable or weaken the local firewall. Attackers will use this command line tool to disable the firewall during troubleshooting or to enable network mobility.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Disable Windows Firewall Rules via Netsh\n\nThe Windows Defender Firewall is a native component which provides host-based, two-way network traffic filtering for a\ndevice, and blocks unauthorized network traffic flowing into or out of the local device.\n\nAttackers can disable the Windows firewall or its rules to enable lateral movement and command and control activity.\n\nThis rule identifies patterns related to disabling the Windows firewall or its rules using the `netsh.exe` utility.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the user to check if they are aware of the operation.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Check whether the user is an administrator and is legitimately performing\ntroubleshooting.\n- In case of an allowed benign true positive (B-TP), assess adding rules to allow needed traffic and re-enable the firewall.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.004","name":"Disable or Modify System Firewall","reference":"https://attack.mitre.org/techniques/T1562/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"netsh.exe\" and\n (\n (process.args : \"disable\" and process.args : \"firewall\" and process.args : \"set\") or\n (process.args : \"advfirewall\" and process.args : \"off\" and process.args : \"state\")\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Disable Windows Firewall Rules via Netsh v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the netsh.exe to disable or weaken the local firewall. Attackers will use this command line tool to disable the firewall during troubleshooting or to enable network mobility.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Disable Windows Firewall Rules via Netsh\n\nThe Windows Defender Firewall is a native component which provides host-based, two-way network traffic filtering for a\ndevice, and blocks unauthorized network traffic flowing into or out of the local device.\n\nAttackers can disable the Windows firewall or its rules to enable lateral movement and command and control activity.\n\nThis rule identifies patterns related to disabling the Windows firewall or its rules using the `netsh.exe` utility.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the user to check if they are aware of the operation.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Check whether the user is an administrator and is legitimately performing\ntroubleshooting.\n- In case of an allowed benign true positive (B-TP), assess adding rules to allow needed traffic and re-enable the firewall.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.004","name":"Disable or Modify System Firewall","reference":"https://attack.mitre.org/techniques/T1562/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"netsh.exe\" and\n (\n (process.args : \"disable\" and process.args : \"firewall\" and process.args : \"set\") or\n (process.args : \"advfirewall\" and process.args : \"off\" and process.args : \"state\")\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Disable Windows Firewall Rules via Netsh v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the netsh.exe to disable or weaken the local firewall. Attackers will use this command line tool to disable the firewall during troubleshooting or to enable network mobility.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Disable Windows Firewall Rules via Netsh\n\nThe Windows Defender Firewall is a native component which provides host-based, two-way network traffic filtering for a\ndevice, and blocks unauthorized network traffic flowing into or out of the local device.\n\nAttackers can disable the Windows firewall or its rules to enable lateral movement and command and control activity.\n\nThis rule identifies patterns related to disabling the Windows firewall or its rules using the `netsh.exe` utility.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the user to check if they are aware of the operation.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Check whether the user is an administrator and is legitimately performing\ntroubleshooting.\n- In case of an allowed benign true positive (B-TP), assess adding rules to allow needed traffic and re-enable the firewall.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.004","name":"Disable or Modify System Firewall","reference":"https://attack.mitre.org/techniques/T1562/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"netsh.exe\" and\n (\n (process.args : \"disable\" and process.args : \"firewall\" and process.args : \"set\") or\n (process.args : \"advfirewall\" and process.args : \"off\" and process.args : \"state\")\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"4b438734-3793-4fda-bd42-ceeada0be8f9","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/4bd1c1af-79d4-4d37-9efa-6e0240640242.json b/fleet-packages/detection-rules-composite/kibana/security_rule/4bd1c1af-79d4-4d37-9efa-6e0240640242.json new file mode 100644 index 0000000000000..5afb3af19c523 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/4bd1c1af-79d4-4d37-9efa-6e0240640242.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"4bd1c1af-79d4-4d37-9efa-6e0240640242","versions":[{"name":"Unusual Process Execution Path - Alternate Data Stream v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies processes running from an Alternate Data Stream. This is uncommon for legitimate processes and sometimes done by adversaries to hide malware.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.004","name":"NTFS File Attributes","reference":"https://attack.mitre.org/techniques/T1564/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.args : \"?:\\\\*:*\" and process.args_count == 1\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Unusual Process Execution Path - Alternate Data Stream v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies processes running from an Alternate Data Stream. This is uncommon for legitimate processes and sometimes done by adversaries to hide malware.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.004","name":"NTFS File Attributes","reference":"https://attack.mitre.org/techniques/T1564/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.args : \"?:\\\\*:*\" and process.args_count == 1\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Unusual Process Execution Path - Alternate Data Stream v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies processes running from an Alternate Data Stream. This is uncommon for legitimate processes and sometimes done by adversaries to hide malware.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.004","name":"NTFS File Attributes","reference":"https://attack.mitre.org/techniques/T1564/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.args : \"?:\\\\*:*\" and process.args_count == 1\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"4bd1c1af-79d4-4d37-9efa-6e0240640242","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/4c59cff1-b78a-41b8-a9f1-4231984d1fb6.json b/fleet-packages/detection-rules-composite/kibana/security_rule/4c59cff1-b78a-41b8-a9f1-4231984d1fb6.json new file mode 100644 index 0000000000000..3ae83ea5a062b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/4c59cff1-b78a-41b8-a9f1-4231984d1fb6.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"4c59cff1-b78a-41b8-a9f1-4231984d1fb6","versions":[{"name":"PowerShell Share Enumeration Script v2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects scripts that contain PowerShell functions, structures, or Windows API functions related to windows share enumeration activities. Attackers, mainly ransomware groups, commonly identify and inspect network shares, looking for critical information for encryption and/or exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Share Enumeration Script\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can use PowerShell to enumerate shares to search for sensitive data like documents, scripts, and other kinds\nof valuable data for encryption, exfiltration, and lateral movement.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Check for additional PowerShell and command line logs that indicate that imported functions were run.\n - Evaluate which information was potentially mapped and accessed by the attacker.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.advintel.io/post/hunting-for-corporate-insurance-policies-indicators-of-ransom-exfiltrations","https://thedfirreport.com/2022/04/04/stolen-images-campaign-ends-in-conti-ransomware/","https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1135","name":"Network Share Discovery","reference":"https://attack.mitre.org/techniques/T1135/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]},{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text:(\n \"Invoke-ShareFinder\" or\n \"Invoke-ShareFinderThreaded\" or\n (\n \"shi1_netname\" and\n \"shi1_remark\"\n ) or\n (\n \"NetShareEnum\" and\n \"NetApiBufferFree\"\n )\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},{"name":"PowerShell Share Enumeration Script v2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects scripts that contain PowerShell functions, structures, or Windows API functions related to windows share enumeration activities. Attackers, mainly ransomware groups, commonly identify and inspect network shares, looking for critical information for encryption and/or exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Share Enumeration Script\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can use PowerShell to enumerate shares to search for sensitive data like documents, scripts, and other kinds\nof valuable data for encryption, exfiltration, and lateral movement.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Check for additional PowerShell and command line logs that indicate that imported functions were run.\n - Evaluate which information was potentially mapped and accessed by the attacker.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.advintel.io/post/hunting-for-corporate-insurance-policies-indicators-of-ransom-exfiltrations","https://thedfirreport.com/2022/04/04/stolen-images-campaign-ends-in-conti-ransomware/","https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1135","name":"Network Share Discovery","reference":"https://attack.mitre.org/techniques/T1135/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]},{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text:(\n \"Invoke-ShareFinder\" or\n \"Invoke-ShareFinderThreaded\" or\n (\n \"shi1_netname\" and\n \"shi1_remark\"\n ) or\n (\n \"NetShareEnum\" and\n \"NetApiBufferFree\"\n )\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},{"name":"PowerShell Share Enumeration Script v2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects scripts that contain PowerShell functions, structures, or Windows API functions related to windows share enumeration activities. Attackers, mainly ransomware groups, commonly identify and inspect network shares, looking for critical information for encryption and/or exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Share Enumeration Script\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can use PowerShell to enumerate shares to search for sensitive data like documents, scripts, and other kinds\nof valuable data for encryption, exfiltration, and lateral movement.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Check for additional PowerShell and command line logs that indicate that imported functions were run.\n - Evaluate which information was potentially mapped and accessed by the attacker.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.advintel.io/post/hunting-for-corporate-insurance-policies-indicators-of-ransom-exfiltrations","https://thedfirreport.com/2022/04/04/stolen-images-campaign-ends-in-conti-ransomware/","https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1135","name":"Network Share Discovery","reference":"https://attack.mitre.org/techniques/T1135/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]},{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text:(\n \"Invoke-ShareFinder\" or\n \"Invoke-ShareFinderThreaded\" or\n (\n \"shi1_netname\" and\n \"shi1_remark\"\n ) or\n (\n \"NetShareEnum\" and\n \"NetApiBufferFree\"\n )\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"}]},"id":"4c59cff1-b78a-41b8-a9f1-4231984d1fb6","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/4d50a94f-2844-43fa-8395-6afbd5e1c5ef.json b/fleet-packages/detection-rules-composite/kibana/security_rule/4d50a94f-2844-43fa-8395-6afbd5e1c5ef.json new file mode 100644 index 0000000000000..96cb43f0fb539 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/4d50a94f-2844-43fa-8395-6afbd5e1c5ef.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"4d50a94f-2844-43fa-8395-6afbd5e1c5ef","versions":[{"name":"AWS Management Console Brute Force of Root User Identity v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number of failed authentication attempts to the AWS management console for the Root user identity. An adversary may attempt to brute force the password for the Root user identity, as it has complete access to all services and resources for the AWS account.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic"],"false_positives":["Automated processes that attempt to authenticate using expired credentials and unbounded retries may lead to false positives."],"from":"now-20m","references":["https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:aws.cloudtrail and event.provider:signin.amazonaws.com and event.action:ConsoleLogin and aws.cloudtrail.user_identity.type:Root and event.outcome:failure\n","threshold":{"field":["cloud.account.id"],"value":10},"type":"threshold","index":["filebeat-*","logs-aws*"],"language":"kuery","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.user_identity.type","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Management Console Brute Force of Root User Identity v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number of failed authentication attempts to the AWS management console for the Root user identity. An adversary may attempt to brute force the password for the Root user identity, as it has complete access to all services and resources for the AWS account.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic"],"false_positives":["Automated processes that attempt to authenticate using expired credentials and unbounded retries may lead to false positives."],"from":"now-20m","references":["https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:aws.cloudtrail and event.provider:signin.amazonaws.com and event.action:ConsoleLogin and aws.cloudtrail.user_identity.type:Root and event.outcome:failure\n","threshold":{"field":["cloud.account.id"],"value":10},"type":"threshold","index":["filebeat-*","logs-aws*"],"language":"kuery","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.user_identity.type","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Management Console Brute Force of Root User Identity v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number of failed authentication attempts to the AWS management console for the Root user identity. An adversary may attempt to brute force the password for the Root user identity, as it has complete access to all services and resources for the AWS account.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic"],"false_positives":["Automated processes that attempt to authenticate using expired credentials and unbounded retries may lead to false positives."],"from":"now-20m","references":["https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:aws.cloudtrail and event.provider:signin.amazonaws.com and event.action:ConsoleLogin and aws.cloudtrail.user_identity.type:Root and event.outcome:failure\n","threshold":{"field":["cloud.account.id"],"value":10},"type":"threshold","index":["filebeat-*","logs-aws*"],"language":"kuery","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.user_identity.type","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"4d50a94f-2844-43fa-8395-6afbd5e1c5ef","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/4da13d6e-904f-4636-81d8-6ab14b4e6ae9.json b/fleet-packages/detection-rules-composite/kibana/security_rule/4da13d6e-904f-4636-81d8-6ab14b4e6ae9.json new file mode 100644 index 0000000000000..c9db1fc73520f --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/4da13d6e-904f-4636-81d8-6ab14b4e6ae9.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"4da13d6e-904f-4636-81d8-6ab14b4e6ae9","versions":[{"name":"Attempt to Disable Gatekeeper v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to disable Gatekeeper on macOS. Gatekeeper is a security feature that's designed to ensure that only trusted software is run. Adversaries may attempt to disable Gatekeeper before executing malicious code.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://support.apple.com/en-us/HT202491","https://community.carbonblack.com/t5/Threat-Advisories-Documents/TAU-TIN-Shlayer-OSX/ta-p/68397"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1553","name":"Subvert Trust Controls","reference":"https://attack.mitre.org/techniques/T1553/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.args:(spctl and \"--master-disable\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},{"name":"Attempt to Disable Gatekeeper v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to disable Gatekeeper on macOS. Gatekeeper is a security feature that's designed to ensure that only trusted software is run. Adversaries may attempt to disable Gatekeeper before executing malicious code.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://support.apple.com/en-us/HT202491","https://community.carbonblack.com/t5/Threat-Advisories-Documents/TAU-TIN-Shlayer-OSX/ta-p/68397"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1553","name":"Subvert Trust Controls","reference":"https://attack.mitre.org/techniques/T1553/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.args:(spctl and \"--master-disable\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},{"name":"Attempt to Disable Gatekeeper v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to disable Gatekeeper on macOS. Gatekeeper is a security feature that's designed to ensure that only trusted software is run. Adversaries may attempt to disable Gatekeeper before executing malicious code.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://support.apple.com/en-us/HT202491","https://community.carbonblack.com/t5/Threat-Advisories-Documents/TAU-TIN-Shlayer-OSX/ta-p/68397"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1553","name":"Subvert Trust Controls","reference":"https://attack.mitre.org/techniques/T1553/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.args:(spctl and \"--master-disable\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]}]},"id":"4da13d6e-904f-4636-81d8-6ab14b4e6ae9","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/4de76544-f0e5-486a-8f84-eae0b6063cdc.json b/fleet-packages/detection-rules-composite/kibana/security_rule/4de76544-f0e5-486a-8f84-eae0b6063cdc.json new file mode 100644 index 0000000000000..e6c907edaacde --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/4de76544-f0e5-486a-8f84-eae0b6063cdc.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"4de76544-f0e5-486a-8f84-eae0b6063cdc","versions":[{"name":"Disable Windows Event and Security Logs Using Built-in Tools v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to disable EventLog via the logman Windows utility, PowerShell, or auditpol. This is often done by attackers in an attempt to evade detection on a system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Disable Windows Event and Security Logs Using Built-in Tools\n\nWindows event logs are a fundamental data source for security monitoring, forensics, and incident response. Adversaries\ncan tamper, clear, and delete this data to break SIEM detections, cover their tracks, and slow down incident response.\n\nThis rule looks for the usage of different utilities to disable the EventLog service or specific event logs.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n - Verify if any other anti-forensics behaviors were observed.\n- Investigate the event logs prior to the action for suspicious behaviors that an attacker may be trying to cover up.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Re-enable affected logging components, services, and security monitoring.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Ivan Ninichuck","Austin Songer"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/logman","https://medium.com/palantir/tampering-with-windows-event-tracing-background-offense-and-defense-4be7ac62ac63"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.001","name":"Clear Windows Event Logs","reference":"https://attack.mitre.org/techniques/T1070/001/"}]},{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.006","name":"Indicator Blocking","reference":"https://attack.mitre.org/techniques/T1562/006/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n\n ((process.name:\"logman.exe\" or process.pe.original_file_name == \"Logman.exe\") and\n process.args : \"EventLog-*\" and process.args : (\"stop\", \"delete\")) or\n\n ((process.name : (\"pwsh.exe\", \"powershell.exe\", \"powershell_ise.exe\") or process.pe.original_file_name in\n (\"pwsh.exe\", \"powershell.exe\", \"powershell_ise.exe\")) and\n\tprocess.args : \"Set-Service\" and process.args: \"EventLog\" and process.args : \"Disabled\") or\n\n ((process.name:\"auditpol.exe\" or process.pe.original_file_name == \"AUDITPOL.EXE\") and process.args : \"/success:disable\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Disable Windows Event and Security Logs Using Built-in Tools v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to disable EventLog via the logman Windows utility, PowerShell, or auditpol. This is often done by attackers in an attempt to evade detection on a system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Disable Windows Event and Security Logs Using Built-in Tools\n\nWindows event logs are a fundamental data source for security monitoring, forensics, and incident response. Adversaries\ncan tamper, clear, and delete this data to break SIEM detections, cover their tracks, and slow down incident response.\n\nThis rule looks for the usage of different utilities to disable the EventLog service or specific event logs.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n - Verify if any other anti-forensics behaviors were observed.\n- Investigate the event logs prior to the action for suspicious behaviors that an attacker may be trying to cover up.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Re-enable affected logging components, services, and security monitoring.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Ivan Ninichuck","Austin Songer"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/logman","https://medium.com/palantir/tampering-with-windows-event-tracing-background-offense-and-defense-4be7ac62ac63"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.001","name":"Clear Windows Event Logs","reference":"https://attack.mitre.org/techniques/T1070/001/"}]},{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.006","name":"Indicator Blocking","reference":"https://attack.mitre.org/techniques/T1562/006/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n\n ((process.name:\"logman.exe\" or process.pe.original_file_name == \"Logman.exe\") and\n process.args : \"EventLog-*\" and process.args : (\"stop\", \"delete\")) or\n\n ((process.name : (\"pwsh.exe\", \"powershell.exe\", \"powershell_ise.exe\") or process.pe.original_file_name in\n (\"pwsh.exe\", \"powershell.exe\", \"powershell_ise.exe\")) and\n\tprocess.args : \"Set-Service\" and process.args: \"EventLog\" and process.args : \"Disabled\") or\n\n ((process.name:\"auditpol.exe\" or process.pe.original_file_name == \"AUDITPOL.EXE\") and process.args : \"/success:disable\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Disable Windows Event and Security Logs Using Built-in Tools v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to disable EventLog via the logman Windows utility, PowerShell, or auditpol. This is often done by attackers in an attempt to evade detection on a system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Disable Windows Event and Security Logs Using Built-in Tools\n\nWindows event logs are a fundamental data source for security monitoring, forensics, and incident response. Adversaries\ncan tamper, clear, and delete this data to break SIEM detections, cover their tracks, and slow down incident response.\n\nThis rule looks for the usage of different utilities to disable the EventLog service or specific event logs.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n - Verify if any other anti-forensics behaviors were observed.\n- Investigate the event logs prior to the action for suspicious behaviors that an attacker may be trying to cover up.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Re-enable affected logging components, services, and security monitoring.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Ivan Ninichuck","Austin Songer"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/logman","https://medium.com/palantir/tampering-with-windows-event-tracing-background-offense-and-defense-4be7ac62ac63"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.001","name":"Clear Windows Event Logs","reference":"https://attack.mitre.org/techniques/T1070/001/"}]},{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.006","name":"Indicator Blocking","reference":"https://attack.mitre.org/techniques/T1562/006/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n\n ((process.name:\"logman.exe\" or process.pe.original_file_name == \"Logman.exe\") and\n process.args : \"EventLog-*\" and process.args : (\"stop\", \"delete\")) or\n\n ((process.name : (\"pwsh.exe\", \"powershell.exe\", \"powershell_ise.exe\") or process.pe.original_file_name in\n (\"pwsh.exe\", \"powershell.exe\", \"powershell_ise.exe\")) and\n\tprocess.args : \"Set-Service\" and process.args: \"EventLog\" and process.args : \"Disabled\") or\n\n ((process.name:\"auditpol.exe\" or process.pe.original_file_name == \"AUDITPOL.EXE\") and process.args : \"/success:disable\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"4de76544-f0e5-486a-8f84-eae0b6063cdc","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/4e85dc8a-3e41-40d8-bc28-91af7ac6cf60.json b/fleet-packages/detection-rules-composite/kibana/security_rule/4e85dc8a-3e41-40d8-bc28-91af7ac6cf60.json new file mode 100644 index 0000000000000..d532c2802cc24 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/4e85dc8a-3e41-40d8-bc28-91af7ac6cf60.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"4e85dc8a-3e41-40d8-bc28-91af7ac6cf60","versions":[{"name":"Multiple Logon Failure Followed by Logon Success v1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple logon failures followed by a successful one from the same source address. Adversaries will often brute force login attempts across multiple users with a common or known password, in an attempt to gain access to accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n#### Possible investigation steps\n\n- Investigate the logon failure reason code and the targeted user names.\n- Investigate the source IP address of the failed Network Logon attempts.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Trust relationship between the primary domain and the trusted domain issue.\n- Infrastructure or availability issue.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the host is a domain controller (DC):\n - Activate your incident response plan for total Active Directory compromise.\n - Review the privileges assigned to users that can access the DCs, to ensure that the least privilege principle is\n being followed and to reduce the attack surface.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4625"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip with maxspan=5s\n [authentication where event.action == \"logon-failed\" and\n /* event 4625 need to be logged */\n winlog.logon.type : \"Network\" and\n source.ip != null and source.ip != \"127.0.0.1\" and source.ip != \"::1\" and\n not user.name : (\"ANONYMOUS LOGON\", \"-\", \"*$\") and not user.domain == \"NT AUTHORITY\" and\n\n /* noisy failure status codes often associated to authentication misconfiguration */\n not winlog.event_data.Status : (\"0xC000015B\", \"0XC000005E\", \"0XC0000133\", \"0XC0000192\")] with runs=5\n [authentication where event.action == \"logged-in\" and\n /* event 4624 need to be logged */\n winlog.logon.type : \"Network\" and\n source.ip != null and source.ip != \"127.0.0.1\" and source.ip != \"::1\" and\n not user.name : (\"ANONYMOUS LOGON\", \"-\", \"*$\") and not user.domain == \"NT AUTHORITY\"]\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.Status","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Multiple Logon Failure Followed by Logon Success v1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple logon failures followed by a successful one from the same source address. Adversaries will often brute force login attempts across multiple users with a common or known password, in an attempt to gain access to accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n#### Possible investigation steps\n\n- Investigate the logon failure reason code and the targeted user names.\n- Investigate the source IP address of the failed Network Logon attempts.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Trust relationship between the primary domain and the trusted domain issue.\n- Infrastructure or availability issue.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the host is a domain controller (DC):\n - Activate your incident response plan for total Active Directory compromise.\n - Review the privileges assigned to users that can access the DCs, to ensure that the least privilege principle is\n being followed and to reduce the attack surface.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4625"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip with maxspan=5s\n [authentication where event.action == \"logon-failed\" and\n /* event 4625 need to be logged */\n winlog.logon.type : \"Network\" and\n source.ip != null and source.ip != \"127.0.0.1\" and source.ip != \"::1\" and\n not user.name : (\"ANONYMOUS LOGON\", \"-\", \"*$\") and not user.domain == \"NT AUTHORITY\" and\n\n /* noisy failure status codes often associated to authentication misconfiguration */\n not winlog.event_data.Status : (\"0xC000015B\", \"0XC000005E\", \"0XC0000133\", \"0XC0000192\")] with runs=5\n [authentication where event.action == \"logged-in\" and\n /* event 4624 need to be logged */\n winlog.logon.type : \"Network\" and\n source.ip != null and source.ip != \"127.0.0.1\" and source.ip != \"::1\" and\n not user.name : (\"ANONYMOUS LOGON\", \"-\", \"*$\") and not user.domain == \"NT AUTHORITY\"]\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.Status","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Multiple Logon Failure Followed by Logon Success v1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple logon failures followed by a successful one from the same source address. Adversaries will often brute force login attempts across multiple users with a common or known password, in an attempt to gain access to accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n#### Possible investigation steps\n\n- Investigate the logon failure reason code and the targeted user names.\n- Investigate the source IP address of the failed Network Logon attempts.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Trust relationship between the primary domain and the trusted domain issue.\n- Infrastructure or availability issue.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the host is a domain controller (DC):\n - Activate your incident response plan for total Active Directory compromise.\n - Review the privileges assigned to users that can access the DCs, to ensure that the least privilege principle is\n being followed and to reduce the attack surface.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4625"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip with maxspan=5s\n [authentication where event.action == \"logon-failed\" and\n /* event 4625 need to be logged */\n winlog.logon.type : \"Network\" and\n source.ip != null and source.ip != \"127.0.0.1\" and source.ip != \"::1\" and\n not user.name : (\"ANONYMOUS LOGON\", \"-\", \"*$\") and not user.domain == \"NT AUTHORITY\" and\n\n /* noisy failure status codes often associated to authentication misconfiguration */\n not winlog.event_data.Status : (\"0xC000015B\", \"0XC000005E\", \"0XC0000133\", \"0XC0000192\")] with runs=5\n [authentication where event.action == \"logged-in\" and\n /* event 4624 need to be logged */\n winlog.logon.type : \"Network\" and\n source.ip != null and source.ip != \"127.0.0.1\" and source.ip != \"::1\" and\n not user.name : (\"ANONYMOUS LOGON\", \"-\", \"*$\") and not user.domain == \"NT AUTHORITY\"]\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.Status","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"4e85dc8a-3e41-40d8-bc28-91af7ac6cf60","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/4ed493fc-d637-4a36-80ff-ac84937e5461.json b/fleet-packages/detection-rules-composite/kibana/security_rule/4ed493fc-d637-4a36-80ff-ac84937e5461.json new file mode 100644 index 0000000000000..9b373f72843d7 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/4ed493fc-d637-4a36-80ff-ac84937e5461.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"4ed493fc-d637-4a36-80ff-ac84937e5461","versions":[{"name":"Execution via MSSQL xp_cmdshell Stored Procedure v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution via MSSQL xp_cmdshell stored procedure. Malicious users may attempt to elevate their privileges by using xp_cmdshell, which is disabled by default, thus, it's important to review the context of it's use.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Execution via MSSQL xp_cmdshell Stored Procedure\n\nMicrosoft SQL Server (MSSQL) has procedures meant to extend its functionality, the Extended Stored Procedures. These\nprocedures are external functions written in C/C++; some provide interfaces for external programs. This is the case for\nxp_cmdshell, which spawns a Windows command shell and passes in a string for execution. Attackers can use this to\nexecute commands on the system running the SQL server, commonly to escalate their privileges and establish persistence.\n\nThe xp_cmdshell procedure is disabled by default, but when used, it has the same security context as the MSSQL Server\nservice account, which is often privileged.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the command line to determine if the command executed is potentially harmful or malicious.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n\n### False positive analysis\n\n- This mechanism can be used legitimately, but it brings inherent risk. The security team must monitor any activity of\nit. If recurrent tasks are being executed using this mechanism, consider adding exceptions — preferably with a full\ncommand line.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Ensure that SQL servers are not directly exposed to the internet. If there is a business justification for such, use\nan allowlist to allow only connections from known legitimate sources.\n- Disable the xp_cmdshell stored procedure.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://thedfirreport.com/2022/07/11/select-xmrig-from-sqlserver/"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"cmd.exe\" and process.parent.name : \"sqlservr.exe\" and\n not process.args : (\"\\\\\\\\*\", \"diskfree\", \"rmdir\", \"mkdir\", \"dir\", \"del\", \"rename\", \"bcp\", \"*XMLNAMESPACES*\",\n \"?:\\\\MSSQL\\\\Backup\\\\Jobs\\\\sql_agent_backup_job.ps1\", \"K:\\\\MSSQL\\\\Backup\\\\msdb\", \"K:\\\\MSSQL\\\\Backup\\\\Logins\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Execution via MSSQL xp_cmdshell Stored Procedure v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution via MSSQL xp_cmdshell stored procedure. Malicious users may attempt to elevate their privileges by using xp_cmdshell, which is disabled by default, thus, it's important to review the context of it's use.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Execution via MSSQL xp_cmdshell Stored Procedure\n\nMicrosoft SQL Server (MSSQL) has procedures meant to extend its functionality, the Extended Stored Procedures. These\nprocedures are external functions written in C/C++; some provide interfaces for external programs. This is the case for\nxp_cmdshell, which spawns a Windows command shell and passes in a string for execution. Attackers can use this to\nexecute commands on the system running the SQL server, commonly to escalate their privileges and establish persistence.\n\nThe xp_cmdshell procedure is disabled by default, but when used, it has the same security context as the MSSQL Server\nservice account, which is often privileged.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the command line to determine if the command executed is potentially harmful or malicious.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n\n### False positive analysis\n\n- This mechanism can be used legitimately, but it brings inherent risk. The security team must monitor any activity of\nit. If recurrent tasks are being executed using this mechanism, consider adding exceptions — preferably with a full\ncommand line.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Ensure that SQL servers are not directly exposed to the internet. If there is a business justification for such, use\nan allowlist to allow only connections from known legitimate sources.\n- Disable the xp_cmdshell stored procedure.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://thedfirreport.com/2022/07/11/select-xmrig-from-sqlserver/"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"cmd.exe\" and process.parent.name : \"sqlservr.exe\" and\n not process.args : (\"\\\\\\\\*\", \"diskfree\", \"rmdir\", \"mkdir\", \"dir\", \"del\", \"rename\", \"bcp\", \"*XMLNAMESPACES*\",\n \"?:\\\\MSSQL\\\\Backup\\\\Jobs\\\\sql_agent_backup_job.ps1\", \"K:\\\\MSSQL\\\\Backup\\\\msdb\", \"K:\\\\MSSQL\\\\Backup\\\\Logins\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Execution via MSSQL xp_cmdshell Stored Procedure v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution via MSSQL xp_cmdshell stored procedure. Malicious users may attempt to elevate their privileges by using xp_cmdshell, which is disabled by default, thus, it's important to review the context of it's use.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Execution via MSSQL xp_cmdshell Stored Procedure\n\nMicrosoft SQL Server (MSSQL) has procedures meant to extend its functionality, the Extended Stored Procedures. These\nprocedures are external functions written in C/C++; some provide interfaces for external programs. This is the case for\nxp_cmdshell, which spawns a Windows command shell and passes in a string for execution. Attackers can use this to\nexecute commands on the system running the SQL server, commonly to escalate their privileges and establish persistence.\n\nThe xp_cmdshell procedure is disabled by default, but when used, it has the same security context as the MSSQL Server\nservice account, which is often privileged.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the command line to determine if the command executed is potentially harmful or malicious.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n\n### False positive analysis\n\n- This mechanism can be used legitimately, but it brings inherent risk. The security team must monitor any activity of\nit. If recurrent tasks are being executed using this mechanism, consider adding exceptions — preferably with a full\ncommand line.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Ensure that SQL servers are not directly exposed to the internet. If there is a business justification for such, use\nan allowlist to allow only connections from known legitimate sources.\n- Disable the xp_cmdshell stored procedure.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://thedfirreport.com/2022/07/11/select-xmrig-from-sqlserver/"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"cmd.exe\" and process.parent.name : \"sqlservr.exe\" and\n not process.args : (\"\\\\\\\\*\", \"diskfree\", \"rmdir\", \"mkdir\", \"dir\", \"del\", \"rename\", \"bcp\", \"*XMLNAMESPACES*\",\n \"?:\\\\MSSQL\\\\Backup\\\\Jobs\\\\sql_agent_backup_job.ps1\", \"K:\\\\MSSQL\\\\Backup\\\\msdb\", \"K:\\\\MSSQL\\\\Backup\\\\Logins\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"4ed493fc-d637-4a36-80ff-ac84937e5461","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/4ed678a9-3a4f-41fb-9fea-f85a6e0a0dff.json b/fleet-packages/detection-rules-composite/kibana/security_rule/4ed678a9-3a4f-41fb-9fea-f85a6e0a0dff.json new file mode 100644 index 0000000000000..c33a4e8670896 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/4ed678a9-3a4f-41fb-9fea-f85a6e0a0dff.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"4ed678a9-3a4f-41fb-9fea-f85a6e0a0dff","versions":[{"name":"Suspicious Script Object Execution v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies scrobj.dll loaded into unusual Microsoft processes. This usually means a malicious scriptlet is being executed in the target process.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=2m\n [process where event.type == \"start\"\n and (process.code_signature.subject_name in (\"Microsoft Corporation\", \"Microsoft Windows\") and\n process.code_signature.trusted == true) and\n not process.executable : (\n \"?:\\\\Windows\\\\System32\\\\cscript.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\cscript.exe\",\n \"?:\\\\Program Files (x86)\\\\Internet Explorer\\\\iexplore.exe\",\n \"?:\\\\Program Files\\\\Internet Explorer\\\\iexplore.exe\",\n \"?:\\\\Windows\\\\SystemApps\\\\Microsoft.MicrosoftEdge_*\\\\MicrosoftEdge.exe\",\n \"?:\\\\Windows\\\\system32\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\System32\\\\smartscreen.exe\",\n \"?:\\\\Windows\\\\system32\\\\taskhostw.exe\",\n \"?:\\\\windows\\\\system32\\\\inetsrv\\\\w3wp.exe\",\n \"?:\\\\windows\\\\SysWOW64\\\\inetsrv\\\\w3wp.exe\",\n \"?:\\\\Windows\\\\system32\\\\wscript.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\wscript.exe\",\n \"?:\\\\Windows\\\\system32\\\\mobsync.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\mobsync.exe\",\n \"?:\\\\Windows\\\\System32\\\\cmd.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\cmd.exe\")]\n [library where event.type == \"start\" and dll.name : \"scrobj.dll\"]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.code_signature.subject_name","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},{"name":"Suspicious Script Object Execution v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies scrobj.dll loaded into unusual Microsoft processes. This usually means a malicious scriptlet is being executed in the target process.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=2m\n [process where event.type == \"start\"\n and (process.code_signature.subject_name in (\"Microsoft Corporation\", \"Microsoft Windows\") and\n process.code_signature.trusted == true) and\n not process.executable : (\n \"?:\\\\Windows\\\\System32\\\\cscript.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\cscript.exe\",\n \"?:\\\\Program Files (x86)\\\\Internet Explorer\\\\iexplore.exe\",\n \"?:\\\\Program Files\\\\Internet Explorer\\\\iexplore.exe\",\n \"?:\\\\Windows\\\\SystemApps\\\\Microsoft.MicrosoftEdge_*\\\\MicrosoftEdge.exe\",\n \"?:\\\\Windows\\\\system32\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\System32\\\\smartscreen.exe\",\n \"?:\\\\Windows\\\\system32\\\\taskhostw.exe\",\n \"?:\\\\windows\\\\system32\\\\inetsrv\\\\w3wp.exe\",\n \"?:\\\\windows\\\\SysWOW64\\\\inetsrv\\\\w3wp.exe\",\n \"?:\\\\Windows\\\\system32\\\\wscript.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\wscript.exe\",\n \"?:\\\\Windows\\\\system32\\\\mobsync.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\mobsync.exe\",\n \"?:\\\\Windows\\\\System32\\\\cmd.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\cmd.exe\")]\n [library where event.type == \"start\" and dll.name : \"scrobj.dll\"]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.code_signature.subject_name","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},{"name":"Suspicious Script Object Execution v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies scrobj.dll loaded into unusual Microsoft processes. This usually means a malicious scriptlet is being executed in the target process.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=2m\n [process where event.type == \"start\"\n and (process.code_signature.subject_name in (\"Microsoft Corporation\", \"Microsoft Windows\") and\n process.code_signature.trusted == true) and\n not process.executable : (\n \"?:\\\\Windows\\\\System32\\\\cscript.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\cscript.exe\",\n \"?:\\\\Program Files (x86)\\\\Internet Explorer\\\\iexplore.exe\",\n \"?:\\\\Program Files\\\\Internet Explorer\\\\iexplore.exe\",\n \"?:\\\\Windows\\\\SystemApps\\\\Microsoft.MicrosoftEdge_*\\\\MicrosoftEdge.exe\",\n \"?:\\\\Windows\\\\system32\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\System32\\\\smartscreen.exe\",\n \"?:\\\\Windows\\\\system32\\\\taskhostw.exe\",\n \"?:\\\\windows\\\\system32\\\\inetsrv\\\\w3wp.exe\",\n \"?:\\\\windows\\\\SysWOW64\\\\inetsrv\\\\w3wp.exe\",\n \"?:\\\\Windows\\\\system32\\\\wscript.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\wscript.exe\",\n \"?:\\\\Windows\\\\system32\\\\mobsync.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\mobsync.exe\",\n \"?:\\\\Windows\\\\System32\\\\cmd.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\cmd.exe\")]\n [library where event.type == \"start\" and dll.name : \"scrobj.dll\"]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.code_signature.subject_name","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]}]},"id":"4ed678a9-3a4f-41fb-9fea-f85a6e0a0dff","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/4edd3e1a-3aa0-499b-8147-4d2ea43b1613.json b/fleet-packages/detection-rules-composite/kibana/security_rule/4edd3e1a-3aa0-499b-8147-4d2ea43b1613.json new file mode 100644 index 0000000000000..061af01ed3f21 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/4edd3e1a-3aa0-499b-8147-4d2ea43b1613.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"4edd3e1a-3aa0-499b-8147-4d2ea43b1613","versions":[{"name":"Unauthorized Access to an Okta Application v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unauthorized access attempts to Okta applications.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:app.generic.unauth_app_access_attempt\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Unauthorized Access to an Okta Application v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unauthorized access attempts to Okta applications.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:app.generic.unauth_app_access_attempt\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Unauthorized Access to an Okta Application v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unauthorized access attempts to Okta applications.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:app.generic.unauth_app_access_attempt\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"4edd3e1a-3aa0-499b-8147-4d2ea43b1613","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/4fe9d835-40e1-452d-8230-17c147cafad8.json b/fleet-packages/detection-rules-composite/kibana/security_rule/4fe9d835-40e1-452d-8230-17c147cafad8.json new file mode 100644 index 0000000000000..7ab3fd9e1076c --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/4fe9d835-40e1-452d-8230-17c147cafad8.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"4fe9d835-40e1-452d-8230-17c147cafad8","versions":[{"name":"Execution via TSClient Mountpoint v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution from the Remote Desktop Protocol (RDP) shared mountpoint tsclient on the target host. This may indicate a lateral movement attempt.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/revisiting-remote-desktop-lateral-movement-8fb905cb46c3"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"process where event.type == \"start\" and process.executable : \"\\\\Device\\\\Mup\\\\tsclient\\\\*.exe\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Execution via TSClient Mountpoint v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution from the Remote Desktop Protocol (RDP) shared mountpoint tsclient on the target host. This may indicate a lateral movement attempt.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/revisiting-remote-desktop-lateral-movement-8fb905cb46c3"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"process where event.type == \"start\" and process.executable : \"\\\\Device\\\\Mup\\\\tsclient\\\\*.exe\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Execution via TSClient Mountpoint v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution from the Remote Desktop Protocol (RDP) shared mountpoint tsclient on the target host. This may indicate a lateral movement attempt.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/revisiting-remote-desktop-lateral-movement-8fb905cb46c3"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"process where event.type == \"start\" and process.executable : \"\\\\Device\\\\Mup\\\\tsclient\\\\*.exe\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"4fe9d835-40e1-452d-8230-17c147cafad8","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/513f0ffd-b317-4b9c-9494-92ce861f22c7.json b/fleet-packages/detection-rules-composite/kibana/security_rule/513f0ffd-b317-4b9c-9494-92ce861f22c7.json new file mode 100644 index 0000000000000..2edc9bb427d6b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/513f0ffd-b317-4b9c-9494-92ce861f22c7.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"513f0ffd-b317-4b9c-9494-92ce861f22c7","versions":[{"name":"Registry Persistence via AppCert DLL v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to maintain persistence by creating registry keys using AppCert DLLs. AppCert DLLs are loaded by every process using the common API functions to create processes.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.009","name":"AppCert DLLs","reference":"https://attack.mitre.org/techniques/T1546/009/"}]}]}],"language":"eql","query":"registry where\n/* uncomment once stable length(bytes_written_string) > 0 and */\n registry.path : \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Session Manager\\\\AppCertDLLs\\\\*\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Registry Persistence via AppCert DLL v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to maintain persistence by creating registry keys using AppCert DLLs. AppCert DLLs are loaded by every process using the common API functions to create processes.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.009","name":"AppCert DLLs","reference":"https://attack.mitre.org/techniques/T1546/009/"}]}]}],"language":"eql","query":"registry where\n/* uncomment once stable length(bytes_written_string) > 0 and */\n registry.path : \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Session Manager\\\\AppCertDLLs\\\\*\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Registry Persistence via AppCert DLL v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to maintain persistence by creating registry keys using AppCert DLLs. AppCert DLLs are loaded by every process using the common API functions to create processes.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.009","name":"AppCert DLLs","reference":"https://attack.mitre.org/techniques/T1546/009/"}]}]}],"language":"eql","query":"registry where\n/* uncomment once stable length(bytes_written_string) > 0 and */\n registry.path : \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Session Manager\\\\AppCertDLLs\\\\*\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"513f0ffd-b317-4b9c-9494-92ce861f22c7","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/514121ce-c7b6-474a-8237-68ff71672379.json b/fleet-packages/detection-rules-composite/kibana/security_rule/514121ce-c7b6-474a-8237-68ff71672379.json new file mode 100644 index 0000000000000..9facbc750a0a1 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/514121ce-c7b6-474a-8237-68ff71672379.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"514121ce-c7b6-474a-8237-68ff71672379","versions":[{"name":"Microsoft 365 Exchange DKIM Signing Configuration Disabled v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a DomainKeys Identified Mail (DKIM) signing configuration is disabled in Microsoft 365. With DKIM in Microsoft 365, messages that are sent from Exchange Online will be cryptographically signed. This will allow the receiving email system to validate that the messages were generated by a server that the organization authorized and were not spoofed.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Disabling a DKIM configuration may be done by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/set-dkimsigningconfig?view=exchange-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Data Protection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Set-DkimSigningConfig\" and o365.audit.Parameters.Enabled:False and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Parameters.Enabled","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Exchange DKIM Signing Configuration Disabled v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a DomainKeys Identified Mail (DKIM) signing configuration is disabled in Microsoft 365. With DKIM in Microsoft 365, messages that are sent from Exchange Online will be cryptographically signed. This will allow the receiving email system to validate that the messages were generated by a server that the organization authorized and were not spoofed.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Disabling a DKIM configuration may be done by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/set-dkimsigningconfig?view=exchange-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Data Protection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Set-DkimSigningConfig\" and o365.audit.Parameters.Enabled:False and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Parameters.Enabled","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Exchange DKIM Signing Configuration Disabled v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a DomainKeys Identified Mail (DKIM) signing configuration is disabled in Microsoft 365. With DKIM in Microsoft 365, messages that are sent from Exchange Online will be cryptographically signed. This will allow the receiving email system to validate that the messages were generated by a server that the organization authorized and were not spoofed.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Disabling a DKIM configuration may be done by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/set-dkimsigningconfig?view=exchange-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Data Protection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Set-DkimSigningConfig\" and o365.audit.Parameters.Enabled:False and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Parameters.Enabled","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"514121ce-c7b6-474a-8237-68ff71672379","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/51859fa0-d86b-4214-bf48-ebb30ed91305.json b/fleet-packages/detection-rules-composite/kibana/security_rule/51859fa0-d86b-4214-bf48-ebb30ed91305.json new file mode 100644 index 0000000000000..66ffc6cc383da --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/51859fa0-d86b-4214-bf48-ebb30ed91305.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"51859fa0-d86b-4214-bf48-ebb30ed91305","versions":[{"name":"GCP Logging Sink Deletion v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a Logging sink deletion in Google Cloud Platform (GCP). Every time a log entry arrives, Logging compares the log entry to the sinks in that resource. Each sink whose filter matches the log entry writes a copy of the log entry to the sink's export destination. An adversary may delete a Logging sink to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Logging sink deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Logging sink deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/logging/docs/export"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.logging.v*.ConfigServiceV*.DeleteSink and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Logging Sink Deletion v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a Logging sink deletion in Google Cloud Platform (GCP). Every time a log entry arrives, Logging compares the log entry to the sinks in that resource. Each sink whose filter matches the log entry writes a copy of the log entry to the sink's export destination. An adversary may delete a Logging sink to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Logging sink deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Logging sink deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/logging/docs/export"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.logging.v*.ConfigServiceV*.DeleteSink and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Logging Sink Deletion v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a Logging sink deletion in Google Cloud Platform (GCP). Every time a log entry arrives, Logging compares the log entry to the sinks in that resource. Each sink whose filter matches the log entry writes a copy of the log entry to the sink's export destination. An adversary may delete a Logging sink to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Logging sink deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Logging sink deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/logging/docs/export"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.logging.v*.ConfigServiceV*.DeleteSink and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"51859fa0-d86b-4214-bf48-ebb30ed91305","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/51ce96fb-9e52-4dad-b0ba-99b54440fc9a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/51ce96fb-9e52-4dad-b0ba-99b54440fc9a.json new file mode 100644 index 0000000000000..15f3bde83b12c --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/51ce96fb-9e52-4dad-b0ba-99b54440fc9a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"51ce96fb-9e52-4dad-b0ba-99b54440fc9a","versions":[{"name":"Incoming DCOM Lateral Movement with MMC v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of Distributed Component Object Model (DCOM) to run commands from a remote host, which are launched via the MMC20 Application COM Object. This behavior may indicate an attacker abusing a DCOM application to move laterally.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.003","name":"Distributed Component Object Model","reference":"https://attack.mitre.org/techniques/T1021/003/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n [network where event.type == \"start\" and process.name : \"mmc.exe\" and source.port >= 49152 and\n destination.port >= 49152 and source.ip != \"127.0.0.1\" and source.ip != \"::1\" and\n network.direction : (\"incoming\", \"ingress\") and network.transport == \"tcp\"\n ] by process.entity_id\n [process where event.type == \"start\" and process.parent.name : \"mmc.exe\"\n ] by process.parent.entity_id\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]},{"name":"Incoming DCOM Lateral Movement with MMC v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of Distributed Component Object Model (DCOM) to run commands from a remote host, which are launched via the MMC20 Application COM Object. This behavior may indicate an attacker abusing a DCOM application to move laterally.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.003","name":"Distributed Component Object Model","reference":"https://attack.mitre.org/techniques/T1021/003/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n [network where event.type == \"start\" and process.name : \"mmc.exe\" and source.port >= 49152 and\n destination.port >= 49152 and source.ip != \"127.0.0.1\" and source.ip != \"::1\" and\n network.direction : (\"incoming\", \"ingress\") and network.transport == \"tcp\"\n ] by process.entity_id\n [process where event.type == \"start\" and process.parent.name : \"mmc.exe\"\n ] by process.parent.entity_id\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]},{"name":"Incoming DCOM Lateral Movement with MMC v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of Distributed Component Object Model (DCOM) to run commands from a remote host, which are launched via the MMC20 Application COM Object. This behavior may indicate an attacker abusing a DCOM application to move laterally.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.003","name":"Distributed Component Object Model","reference":"https://attack.mitre.org/techniques/T1021/003/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n [network where event.type == \"start\" and process.name : \"mmc.exe\" and source.port >= 49152 and\n destination.port >= 49152 and source.ip != \"127.0.0.1\" and source.ip != \"::1\" and\n network.direction : (\"incoming\", \"ingress\") and network.transport == \"tcp\"\n ] by process.entity_id\n [process where event.type == \"start\" and process.parent.name : \"mmc.exe\"\n ] by process.parent.entity_id\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]}]},"id":"51ce96fb-9e52-4dad-b0ba-99b54440fc9a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/523116c0-d89d-4d7c-82c2-39e6845a78ef.json b/fleet-packages/detection-rules-composite/kibana/security_rule/523116c0-d89d-4d7c-82c2-39e6845a78ef.json new file mode 100644 index 0000000000000..fff0d91bf6fbc --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/523116c0-d89d-4d7c-82c2-39e6845a78ef.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"523116c0-d89d-4d7c-82c2-39e6845a78ef","versions":[{"name":"AWS GuardDuty Detector Deletion v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an Amazon GuardDuty detector. Upon deletion, GuardDuty stops monitoring the environment and all existing findings are lost.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The GuardDuty detector may be deleted by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Detector deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/guardduty/delete-detector.html","https://docs.aws.amazon.com/guardduty/latest/APIReference/API_DeleteDetector.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:guardduty.amazonaws.com and event.action:DeleteDetector and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS GuardDuty Detector Deletion v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an Amazon GuardDuty detector. Upon deletion, GuardDuty stops monitoring the environment and all existing findings are lost.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The GuardDuty detector may be deleted by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Detector deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/guardduty/delete-detector.html","https://docs.aws.amazon.com/guardduty/latest/APIReference/API_DeleteDetector.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:guardduty.amazonaws.com and event.action:DeleteDetector and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS GuardDuty Detector Deletion v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an Amazon GuardDuty detector. Upon deletion, GuardDuty stops monitoring the environment and all existing findings are lost.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The GuardDuty detector may be deleted by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Detector deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/guardduty/delete-detector.html","https://docs.aws.amazon.com/guardduty/latest/APIReference/API_DeleteDetector.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:guardduty.amazonaws.com and event.action:DeleteDetector and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"523116c0-d89d-4d7c-82c2-39e6845a78ef","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/52376a86-ee86-4967-97ae-1a05f55816f0.json b/fleet-packages/detection-rules-composite/kibana/security_rule/52376a86-ee86-4967-97ae-1a05f55816f0.json new file mode 100644 index 0000000000000..4cd2002f21f45 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/52376a86-ee86-4967-97ae-1a05f55816f0.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"52376a86-ee86-4967-97ae-1a05f55816f0","versions":[{"name":"Linux Restricted Shell Breakout via Linux Binary(s) v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Linux binary(s) abuse to breakout of restricted shells or environments by spawning an interactive system shell. The linux utility(s) activity of spawning shell is not a standard use of the binary for a user or system administrator. It may indicates an attempt to improve the capabilities or stability of an adversary access.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Shell Evasion via Linux Utilities\nDetection alerts from this rule indicate that a Linux utility has been abused to breakout of restricted shells or\nenvironments by spawning an interactive system shell.\nHere are some possible avenues of investigation:\n- Examine the entry point to the host and user in action via the Analyse View.\n - Identify the session entry leader and session user\n- Examine the contents of session leading to the abuse via the Session View.\n - Examine the command execution pattern in the session, which may lead to suspricous activities\n- Examine the execution of commands in the spawned shell.\n - Identify imment threat to the system from the executed commands\n - Take necessary incident response actions to contain any malicious behviour caused via this execution.\n\n### Related rules\n\n- A malicious spawned shell can execute any of the possible MITTRE ATT&CK vectors mainly to impair defences.\n- Hence its adviced to enable defence evasion and privilige escalation rules accordingly in your environment\n\n### Response and remediation\n\nInitiate the incident response process based on the outcome of the triage.\n\n- If the triage releaved suspicious netwrok activity from the malicious spawned shell,\n - Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware execution via the maliciously spawned shell,\n - Search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- If the triage revelaed defence evasion for imparing defenses\n - Isolate the involved host to prevent further post-compromise behavior.\n - Identified the disabled security guard components on the host and take necessary steps in renebaling the same.\n - If any tools have been disbaled / uninstalled or config tampered work towards reenabling the same.\n- If the triage revelaed addition of persistence mechanism exploit like auto start scripts\n - Isolate further login to the systems that can initae auto start scripts.\n - Identify the auto start scripts and disable and remove the same from the systems\n- If the triage revealed data crawling or data export via remote copy\n - Investigate credential exposure on systems compromised / used / decoded by the attacker during the data crawling\n - Intiate compromised credential deactivation and credential rotation process for all exposed crednetials.\n - Investiagte if any IPR data was accessed during the data crawling and take appropriate actions.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://gtfobins.github.io/gtfobins/apt/","https://gtfobins.github.io/gtfobins/apt-get/","https://gtfobins.github.io/gtfobins/nawk/","https://gtfobins.github.io/gtfobins/mawk/","https://gtfobins.github.io/gtfobins/awk/","https://gtfobins.github.io/gtfobins/gawk/","https://gtfobins.github.io/gtfobins/busybox/","https://gtfobins.github.io/gtfobins/c89/","https://gtfobins.github.io/gtfobins/c99/","https://gtfobins.github.io/gtfobins/cpulimit/","https://gtfobins.github.io/gtfobins/crash/","https://gtfobins.github.io/gtfobins/env/","https://gtfobins.github.io/gtfobins/expect/","https://gtfobins.github.io/gtfobins/find/","https://gtfobins.github.io/gtfobins/flock/","https://gtfobins.github.io/gtfobins/gcc/","https://gtfobins.github.io/gtfobins/mysql/","https://gtfobins.github.io/gtfobins/nice/","https://gtfobins.github.io/gtfobins/ssh/","https://gtfobins.github.io/gtfobins/vi/","https://gtfobins.github.io/gtfobins/vim/","https://gtfobins.github.io/gtfobins/capsh/","https://gtfobins.github.io/gtfobins/byebug/","https://gtfobins.github.io/gtfobins/git/","https://gtfobins.github.io/gtfobins/ftp/"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","GTFOBins"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.004","name":"Unix Shell","reference":"https://attack.mitre.org/techniques/T1059/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n\n /* launch shells from unusual process */\n (process.name == \"capsh\" and process.args == \"--\") or\n\n /* launching shells from unusual parents or parent+arg combos */\n (process.name in (\"bash\", \"sh\", \"dash\",\"ash\") and\n (process.parent.name in (\"byebug\",\"git\",\"ftp\",\"strace\")) or\n\n /* shells specified in parent args */\n /* nice rule is broken in 8.2 */\n (process.parent.args in (\"/bin/sh\", \"/bin/bash\", \"/bin/dash\", \"/bin/ash\", \"sh\", \"bash\", \"dash\", \"ash\") and\n (\n (process.parent.name == \"nice\") or\n (process.parent.name == \"cpulimit\" and process.parent.args == \"-f\") or\n (process.parent.name == \"find\" and process.parent.args == \"-exec\" and process.parent.args == \";\") or\n (process.parent.name == \"flock\" and process.parent.args == \"-u\" and process.parent.args == \"/\")\n )\n ) or\n\n /* shells specified in args */\n (process.args in (\"/bin/sh\", \"/bin/bash\", \"/bin/dash\", \"/bin/ash\", \"sh\", \"bash\", \"dash\", \"ash\") and\n (process.parent.name == \"crash\" and process.parent.args == \"-h\") or\n (process.name == \"sensible-pager\" and process.parent.name in (\"apt\", \"apt-get\") and process.parent.args == \"changelog\")\n /* scope to include more sensible-pager invoked shells with different parent process to reduce noise and remove false positives */\n )\n ) or\n (process.name == \"busybox\" and process.args_count == 2 and process.args in (\"/bin/sh\", \"/bin/bash\", \"/bin/dash\", \"/bin/ash\", \"sh\", \"bash\", \"dash\", \"ash\") )or\n (process.name == \"env\" and process.args_count == 2 and process.args in (\"/bin/sh\", \"/bin/bash\", \"/bin/dash\", \"/bin/ash\", \"sh\", \"bash\", \"dash\", \"ash\")) or\n (process.parent.name in (\"vi\", \"vim\") and process.parent.args == \"-c\" and process.parent.args in (\":!/bin/bash\", \":!/bin/sh\", \":!bash\", \":!sh\")) or\n (process.parent.name in (\"c89\",\"c99\", \"gcc\") and process.parent.args in (\"sh,-s\", \"bash,-s\", \"dash,-s\", \"ash,-s\", \"/bin/sh,-s\", \"/bin/bash,-s\", \"/bin/dash,-s\", \"/bin/ash,-s\") and process.parent.args == \"-wrapper\") or\n (process.parent.name == \"expect\" and process.parent.args == \"-c\" and process.parent.args in (\"spawn /bin/sh;interact\", \"spawn /bin/bash;interact\", \"spawn /bin/dash;interact\", \"spawn sh;interact\", \"spawn bash;interact\", \"spawn dash;interact\")) or\n (process.parent.name == \"mysql\" and process.parent.args == \"-e\" and process.parent.args in (\"\\\\!*sh\", \"\\\\!*bash\", \"\\\\!*dash\", \"\\\\!*/bin/sh\", \"\\\\!*/bin/bash\", \"\\\\!*/bin/dash\")) or\n (process.parent.name == \"ssh\" and process.parent.args == \"-o\" and process.parent.args in (\"ProxyCommand=;sh 0<&2 1>&2\", \"ProxyCommand=;bash 0<&2 1>&2\", \"ProxyCommand=;dash 0<&2 1>&2\", \"ProxyCommand=;/bin/sh 0<&2 1>&2\", \"ProxyCommand=;/bin/bash 0<&2 1>&2\", \"ProxyCommand=;/bin/dash 0<&2 1>&2\")) or\n (process.parent.name in (\"nawk\", \"mawk\", \"awk\", \"gawk\") and process.parent.args : \"BEGIN {system(*)}\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"The session view analysis for the command alerted is avalible in versions 8.2 and above."},{"name":"Linux Restricted Shell Breakout via Linux Binary(s) v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Linux binary(s) abuse to breakout of restricted shells or environments by spawning an interactive system shell. The linux utility(s) activity of spawning shell is not a standard use of the binary for a user or system administrator. It may indicates an attempt to improve the capabilities or stability of an adversary access.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Shell Evasion via Linux Utilities\nDetection alerts from this rule indicate that a Linux utility has been abused to breakout of restricted shells or\nenvironments by spawning an interactive system shell.\nHere are some possible avenues of investigation:\n- Examine the entry point to the host and user in action via the Analyse View.\n - Identify the session entry leader and session user\n- Examine the contents of session leading to the abuse via the Session View.\n - Examine the command execution pattern in the session, which may lead to suspricous activities\n- Examine the execution of commands in the spawned shell.\n - Identify imment threat to the system from the executed commands\n - Take necessary incident response actions to contain any malicious behviour caused via this execution.\n\n### Related rules\n\n- A malicious spawned shell can execute any of the possible MITTRE ATT&CK vectors mainly to impair defences.\n- Hence its adviced to enable defence evasion and privilige escalation rules accordingly in your environment\n\n### Response and remediation\n\nInitiate the incident response process based on the outcome of the triage.\n\n- If the triage releaved suspicious netwrok activity from the malicious spawned shell,\n - Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware execution via the maliciously spawned shell,\n - Search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- If the triage revelaed defence evasion for imparing defenses\n - Isolate the involved host to prevent further post-compromise behavior.\n - Identified the disabled security guard components on the host and take necessary steps in renebaling the same.\n - If any tools have been disbaled / uninstalled or config tampered work towards reenabling the same.\n- If the triage revelaed addition of persistence mechanism exploit like auto start scripts\n - Isolate further login to the systems that can initae auto start scripts.\n - Identify the auto start scripts and disable and remove the same from the systems\n- If the triage revealed data crawling or data export via remote copy\n - Investigate credential exposure on systems compromised / used / decoded by the attacker during the data crawling\n - Intiate compromised credential deactivation and credential rotation process for all exposed crednetials.\n - Investiagte if any IPR data was accessed during the data crawling and take appropriate actions.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://gtfobins.github.io/gtfobins/apt/","https://gtfobins.github.io/gtfobins/apt-get/","https://gtfobins.github.io/gtfobins/nawk/","https://gtfobins.github.io/gtfobins/mawk/","https://gtfobins.github.io/gtfobins/awk/","https://gtfobins.github.io/gtfobins/gawk/","https://gtfobins.github.io/gtfobins/busybox/","https://gtfobins.github.io/gtfobins/c89/","https://gtfobins.github.io/gtfobins/c99/","https://gtfobins.github.io/gtfobins/cpulimit/","https://gtfobins.github.io/gtfobins/crash/","https://gtfobins.github.io/gtfobins/env/","https://gtfobins.github.io/gtfobins/expect/","https://gtfobins.github.io/gtfobins/find/","https://gtfobins.github.io/gtfobins/flock/","https://gtfobins.github.io/gtfobins/gcc/","https://gtfobins.github.io/gtfobins/mysql/","https://gtfobins.github.io/gtfobins/nice/","https://gtfobins.github.io/gtfobins/ssh/","https://gtfobins.github.io/gtfobins/vi/","https://gtfobins.github.io/gtfobins/vim/","https://gtfobins.github.io/gtfobins/capsh/","https://gtfobins.github.io/gtfobins/byebug/","https://gtfobins.github.io/gtfobins/git/","https://gtfobins.github.io/gtfobins/ftp/"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","GTFOBins"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.004","name":"Unix Shell","reference":"https://attack.mitre.org/techniques/T1059/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n\n /* launch shells from unusual process */\n (process.name == \"capsh\" and process.args == \"--\") or\n\n /* launching shells from unusual parents or parent+arg combos */\n (process.name in (\"bash\", \"sh\", \"dash\",\"ash\") and\n (process.parent.name in (\"byebug\",\"git\",\"ftp\",\"strace\")) or\n\n /* shells specified in parent args */\n /* nice rule is broken in 8.2 */\n (process.parent.args in (\"/bin/sh\", \"/bin/bash\", \"/bin/dash\", \"/bin/ash\", \"sh\", \"bash\", \"dash\", \"ash\") and\n (\n (process.parent.name == \"nice\") or\n (process.parent.name == \"cpulimit\" and process.parent.args == \"-f\") or\n (process.parent.name == \"find\" and process.parent.args == \"-exec\" and process.parent.args == \";\") or\n (process.parent.name == \"flock\" and process.parent.args == \"-u\" and process.parent.args == \"/\")\n )\n ) or\n\n /* shells specified in args */\n (process.args in (\"/bin/sh\", \"/bin/bash\", \"/bin/dash\", \"/bin/ash\", \"sh\", \"bash\", \"dash\", \"ash\") and\n (process.parent.name == \"crash\" and process.parent.args == \"-h\") or\n (process.name == \"sensible-pager\" and process.parent.name in (\"apt\", \"apt-get\") and process.parent.args == \"changelog\")\n /* scope to include more sensible-pager invoked shells with different parent process to reduce noise and remove false positives */\n )\n ) or\n (process.name == \"busybox\" and process.args_count == 2 and process.args in (\"/bin/sh\", \"/bin/bash\", \"/bin/dash\", \"/bin/ash\", \"sh\", \"bash\", \"dash\", \"ash\") )or\n (process.name == \"env\" and process.args_count == 2 and process.args in (\"/bin/sh\", \"/bin/bash\", \"/bin/dash\", \"/bin/ash\", \"sh\", \"bash\", \"dash\", \"ash\")) or\n (process.parent.name in (\"vi\", \"vim\") and process.parent.args == \"-c\" and process.parent.args in (\":!/bin/bash\", \":!/bin/sh\", \":!bash\", \":!sh\")) or\n (process.parent.name in (\"c89\",\"c99\", \"gcc\") and process.parent.args in (\"sh,-s\", \"bash,-s\", \"dash,-s\", \"ash,-s\", \"/bin/sh,-s\", \"/bin/bash,-s\", \"/bin/dash,-s\", \"/bin/ash,-s\") and process.parent.args == \"-wrapper\") or\n (process.parent.name == \"expect\" and process.parent.args == \"-c\" and process.parent.args in (\"spawn /bin/sh;interact\", \"spawn /bin/bash;interact\", \"spawn /bin/dash;interact\", \"spawn sh;interact\", \"spawn bash;interact\", \"spawn dash;interact\")) or\n (process.parent.name == \"mysql\" and process.parent.args == \"-e\" and process.parent.args in (\"\\\\!*sh\", \"\\\\!*bash\", \"\\\\!*dash\", \"\\\\!*/bin/sh\", \"\\\\!*/bin/bash\", \"\\\\!*/bin/dash\")) or\n (process.parent.name == \"ssh\" and process.parent.args == \"-o\" and process.parent.args in (\"ProxyCommand=;sh 0<&2 1>&2\", \"ProxyCommand=;bash 0<&2 1>&2\", \"ProxyCommand=;dash 0<&2 1>&2\", \"ProxyCommand=;/bin/sh 0<&2 1>&2\", \"ProxyCommand=;/bin/bash 0<&2 1>&2\", \"ProxyCommand=;/bin/dash 0<&2 1>&2\")) or\n (process.parent.name in (\"nawk\", \"mawk\", \"awk\", \"gawk\") and process.parent.args : \"BEGIN {system(*)}\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"The session view analysis for the command alerted is avalible in versions 8.2 and above."},{"name":"Linux Restricted Shell Breakout via Linux Binary(s) v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Linux binary(s) abuse to breakout of restricted shells or environments by spawning an interactive system shell. The linux utility(s) activity of spawning shell is not a standard use of the binary for a user or system administrator. It may indicates an attempt to improve the capabilities or stability of an adversary access.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Shell Evasion via Linux Utilities\nDetection alerts from this rule indicate that a Linux utility has been abused to breakout of restricted shells or\nenvironments by spawning an interactive system shell.\nHere are some possible avenues of investigation:\n- Examine the entry point to the host and user in action via the Analyse View.\n - Identify the session entry leader and session user\n- Examine the contents of session leading to the abuse via the Session View.\n - Examine the command execution pattern in the session, which may lead to suspricous activities\n- Examine the execution of commands in the spawned shell.\n - Identify imment threat to the system from the executed commands\n - Take necessary incident response actions to contain any malicious behviour caused via this execution.\n\n### Related rules\n\n- A malicious spawned shell can execute any of the possible MITTRE ATT&CK vectors mainly to impair defences.\n- Hence its adviced to enable defence evasion and privilige escalation rules accordingly in your environment\n\n### Response and remediation\n\nInitiate the incident response process based on the outcome of the triage.\n\n- If the triage releaved suspicious netwrok activity from the malicious spawned shell,\n - Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware execution via the maliciously spawned shell,\n - Search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- If the triage revelaed defence evasion for imparing defenses\n - Isolate the involved host to prevent further post-compromise behavior.\n - Identified the disabled security guard components on the host and take necessary steps in renebaling the same.\n - If any tools have been disbaled / uninstalled or config tampered work towards reenabling the same.\n- If the triage revelaed addition of persistence mechanism exploit like auto start scripts\n - Isolate further login to the systems that can initae auto start scripts.\n - Identify the auto start scripts and disable and remove the same from the systems\n- If the triage revealed data crawling or data export via remote copy\n - Investigate credential exposure on systems compromised / used / decoded by the attacker during the data crawling\n - Intiate compromised credential deactivation and credential rotation process for all exposed crednetials.\n - Investiagte if any IPR data was accessed during the data crawling and take appropriate actions.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://gtfobins.github.io/gtfobins/apt/","https://gtfobins.github.io/gtfobins/apt-get/","https://gtfobins.github.io/gtfobins/nawk/","https://gtfobins.github.io/gtfobins/mawk/","https://gtfobins.github.io/gtfobins/awk/","https://gtfobins.github.io/gtfobins/gawk/","https://gtfobins.github.io/gtfobins/busybox/","https://gtfobins.github.io/gtfobins/c89/","https://gtfobins.github.io/gtfobins/c99/","https://gtfobins.github.io/gtfobins/cpulimit/","https://gtfobins.github.io/gtfobins/crash/","https://gtfobins.github.io/gtfobins/env/","https://gtfobins.github.io/gtfobins/expect/","https://gtfobins.github.io/gtfobins/find/","https://gtfobins.github.io/gtfobins/flock/","https://gtfobins.github.io/gtfobins/gcc/","https://gtfobins.github.io/gtfobins/mysql/","https://gtfobins.github.io/gtfobins/nice/","https://gtfobins.github.io/gtfobins/ssh/","https://gtfobins.github.io/gtfobins/vi/","https://gtfobins.github.io/gtfobins/vim/","https://gtfobins.github.io/gtfobins/capsh/","https://gtfobins.github.io/gtfobins/byebug/","https://gtfobins.github.io/gtfobins/git/","https://gtfobins.github.io/gtfobins/ftp/"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","GTFOBins"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.004","name":"Unix Shell","reference":"https://attack.mitre.org/techniques/T1059/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n\n /* launch shells from unusual process */\n (process.name == \"capsh\" and process.args == \"--\") or\n\n /* launching shells from unusual parents or parent+arg combos */\n (process.name in (\"bash\", \"sh\", \"dash\",\"ash\") and\n (process.parent.name in (\"byebug\",\"git\",\"ftp\",\"strace\")) or\n\n /* shells specified in parent args */\n /* nice rule is broken in 8.2 */\n (process.parent.args in (\"/bin/sh\", \"/bin/bash\", \"/bin/dash\", \"/bin/ash\", \"sh\", \"bash\", \"dash\", \"ash\") and\n (\n (process.parent.name == \"nice\") or\n (process.parent.name == \"cpulimit\" and process.parent.args == \"-f\") or\n (process.parent.name == \"find\" and process.parent.args == \"-exec\" and process.parent.args == \";\") or\n (process.parent.name == \"flock\" and process.parent.args == \"-u\" and process.parent.args == \"/\")\n )\n ) or\n\n /* shells specified in args */\n (process.args in (\"/bin/sh\", \"/bin/bash\", \"/bin/dash\", \"/bin/ash\", \"sh\", \"bash\", \"dash\", \"ash\") and\n (process.parent.name == \"crash\" and process.parent.args == \"-h\") or\n (process.name == \"sensible-pager\" and process.parent.name in (\"apt\", \"apt-get\") and process.parent.args == \"changelog\")\n /* scope to include more sensible-pager invoked shells with different parent process to reduce noise and remove false positives */\n )\n ) or\n (process.name == \"busybox\" and process.args_count == 2 and process.args in (\"/bin/sh\", \"/bin/bash\", \"/bin/dash\", \"/bin/ash\", \"sh\", \"bash\", \"dash\", \"ash\") )or\n (process.name == \"env\" and process.args_count == 2 and process.args in (\"/bin/sh\", \"/bin/bash\", \"/bin/dash\", \"/bin/ash\", \"sh\", \"bash\", \"dash\", \"ash\")) or\n (process.parent.name in (\"vi\", \"vim\") and process.parent.args == \"-c\" and process.parent.args in (\":!/bin/bash\", \":!/bin/sh\", \":!bash\", \":!sh\")) or\n (process.parent.name in (\"c89\",\"c99\", \"gcc\") and process.parent.args in (\"sh,-s\", \"bash,-s\", \"dash,-s\", \"ash,-s\", \"/bin/sh,-s\", \"/bin/bash,-s\", \"/bin/dash,-s\", \"/bin/ash,-s\") and process.parent.args == \"-wrapper\") or\n (process.parent.name == \"expect\" and process.parent.args == \"-c\" and process.parent.args in (\"spawn /bin/sh;interact\", \"spawn /bin/bash;interact\", \"spawn /bin/dash;interact\", \"spawn sh;interact\", \"spawn bash;interact\", \"spawn dash;interact\")) or\n (process.parent.name == \"mysql\" and process.parent.args == \"-e\" and process.parent.args in (\"\\\\!*sh\", \"\\\\!*bash\", \"\\\\!*dash\", \"\\\\!*/bin/sh\", \"\\\\!*/bin/bash\", \"\\\\!*/bin/dash\")) or\n (process.parent.name == \"ssh\" and process.parent.args == \"-o\" and process.parent.args in (\"ProxyCommand=;sh 0<&2 1>&2\", \"ProxyCommand=;bash 0<&2 1>&2\", \"ProxyCommand=;dash 0<&2 1>&2\", \"ProxyCommand=;/bin/sh 0<&2 1>&2\", \"ProxyCommand=;/bin/bash 0<&2 1>&2\", \"ProxyCommand=;/bin/dash 0<&2 1>&2\")) or\n (process.parent.name in (\"nawk\", \"mawk\", \"awk\", \"gawk\") and process.parent.args : \"BEGIN {system(*)}\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"The session view analysis for the command alerted is avalible in versions 8.2 and above."}]},"id":"52376a86-ee86-4967-97ae-1a05f55816f0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/52aaab7b-b51c-441a-89ce-4387b3aea886.json b/fleet-packages/detection-rules-composite/kibana/security_rule/52aaab7b-b51c-441a-89ce-4387b3aea886.json new file mode 100644 index 0000000000000..9d4d50a8e60e1 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/52aaab7b-b51c-441a-89ce-4387b3aea886.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"52aaab7b-b51c-441a-89ce-4387b3aea886","versions":[{"name":"Unusual Network Connection via RunDLL32 v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual instances of rundll32.exe making outbound network connections. This may indicate adversarial Command and Control activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Network Connection via RunDLL32\n\nRunDLL32 is a built-in Windows utility and also a vital component used by the operating system itself. The functionality\nprovided by RunDLL32 to execute Dynamic Link Libraries (DLLs) is widely abused by attackers, because it makes it hard to\ndifferentiate malicious activity from normal operations.\n\nThis rule looks for external network connections established using RunDLL32 when the utility is being executed with no\narguments, which can potentially indicate command and control activity.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate the target host that RunDLL32 is communicating with.\n - Check if the domain is newly registered or unexpected.\n - Check the reputation of the domain or IP address.\n- Identify the target computer and its role in the IT environment.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml","https://redcanary.com/threat-detection-report/techniques/rundll32/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.011","name":"Rundll32","reference":"https://attack.mitre.org/techniques/T1218/011/"}]}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan=1m\n [process where event.type == \"start\" and process.name : \"rundll32.exe\" and process.args_count == 1]\n [network where process.name : \"rundll32.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\",\n \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\",\n \"100.64.0.0/10\", \"192.175.48.0/24\",\"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Unusual Network Connection via RunDLL32 v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual instances of rundll32.exe making outbound network connections. This may indicate adversarial Command and Control activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Network Connection via RunDLL32\n\nRunDLL32 is a built-in Windows utility and also a vital component used by the operating system itself. The functionality\nprovided by RunDLL32 to execute Dynamic Link Libraries (DLLs) is widely abused by attackers, because it makes it hard to\ndifferentiate malicious activity from normal operations.\n\nThis rule looks for external network connections established using RunDLL32 when the utility is being executed with no\narguments, which can potentially indicate command and control activity.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate the target host that RunDLL32 is communicating with.\n - Check if the domain is newly registered or unexpected.\n - Check the reputation of the domain or IP address.\n- Identify the target computer and its role in the IT environment.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml","https://redcanary.com/threat-detection-report/techniques/rundll32/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.011","name":"Rundll32","reference":"https://attack.mitre.org/techniques/T1218/011/"}]}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan=1m\n [process where event.type == \"start\" and process.name : \"rundll32.exe\" and process.args_count == 1]\n [network where process.name : \"rundll32.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\",\n \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\",\n \"100.64.0.0/10\", \"192.175.48.0/24\",\"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Unusual Network Connection via RunDLL32 v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual instances of rundll32.exe making outbound network connections. This may indicate adversarial Command and Control activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Network Connection via RunDLL32\n\nRunDLL32 is a built-in Windows utility and also a vital component used by the operating system itself. The functionality\nprovided by RunDLL32 to execute Dynamic Link Libraries (DLLs) is widely abused by attackers, because it makes it hard to\ndifferentiate malicious activity from normal operations.\n\nThis rule looks for external network connections established using RunDLL32 when the utility is being executed with no\narguments, which can potentially indicate command and control activity.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate the target host that RunDLL32 is communicating with.\n - Check if the domain is newly registered or unexpected.\n - Check the reputation of the domain or IP address.\n- Identify the target computer and its role in the IT environment.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml","https://redcanary.com/threat-detection-report/techniques/rundll32/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.011","name":"Rundll32","reference":"https://attack.mitre.org/techniques/T1218/011/"}]}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan=1m\n [process where event.type == \"start\" and process.name : \"rundll32.exe\" and process.args_count == 1]\n [network where process.name : \"rundll32.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\",\n \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\",\n \"100.64.0.0/10\", \"192.175.48.0/24\",\"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"52aaab7b-b51c-441a-89ce-4387b3aea886","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/52afbdc5-db15-485e-bc24-f5707f820c4b.json b/fleet-packages/detection-rules-composite/kibana/security_rule/52afbdc5-db15-485e-bc24-f5707f820c4b.json new file mode 100644 index 0000000000000..e38e2491b7c2f --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/52afbdc5-db15-485e-bc24-f5707f820c4b.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"52afbdc5-db15-485e-bc24-f5707f820c4b","versions":[{"name":"Unusual Linux Network Activity v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Linux processes that do not usually use the network but have unexpected network activity, which can indicate command-and-control, lateral movement, persistence, or data exfiltration activity. A process with unusual network activity can denote process exploitation or injection, where the process is used to run persistence mechanisms that allow a malicious actor remote access or control of the host, data exfiltration, and execution of unauthorized network applications.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Network Activity\nDetection alerts from this rule indicate the presence of network activity from a Linux process for which network activity is rare and unusual. Here are some possible avenues of investigation:\n- Consider the IP addresses and ports. Are these used by normal but infrequent network workflows? Are they expected or unexpected?\n- If the destination IP address is remote or external, does it associate with an expected domain, organization or geography? Note: avoid interacting directly with suspected malicious IP addresses.\n- Consider the user as identified by the username field. Is this network activity part of an expected workflow for the user who ran the program?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business or maintenance process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.","author":["Elastic"],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Linux","Threat Detection","ML"],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_anomalous_network_activity"],"type":"machine_learning"},{"name":"Unusual Linux Network Activity v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Linux processes that do not usually use the network but have unexpected network activity, which can indicate command-and-control, lateral movement, persistence, or data exfiltration activity. A process with unusual network activity can denote process exploitation or injection, where the process is used to run persistence mechanisms that allow a malicious actor remote access or control of the host, data exfiltration, and execution of unauthorized network applications.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Network Activity\nDetection alerts from this rule indicate the presence of network activity from a Linux process for which network activity is rare and unusual. Here are some possible avenues of investigation:\n- Consider the IP addresses and ports. Are these used by normal but infrequent network workflows? Are they expected or unexpected?\n- If the destination IP address is remote or external, does it associate with an expected domain, organization or geography? Note: avoid interacting directly with suspected malicious IP addresses.\n- Consider the user as identified by the username field. Is this network activity part of an expected workflow for the user who ran the program?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business or maintenance process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.","author":["Elastic"],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Linux","Threat Detection","ML"],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_anomalous_network_activity"],"type":"machine_learning"},{"name":"Unusual Linux Network Activity v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Linux processes that do not usually use the network but have unexpected network activity, which can indicate command-and-control, lateral movement, persistence, or data exfiltration activity. A process with unusual network activity can denote process exploitation or injection, where the process is used to run persistence mechanisms that allow a malicious actor remote access or control of the host, data exfiltration, and execution of unauthorized network applications.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Network Activity\nDetection alerts from this rule indicate the presence of network activity from a Linux process for which network activity is rare and unusual. Here are some possible avenues of investigation:\n- Consider the IP addresses and ports. Are these used by normal but infrequent network workflows? Are they expected or unexpected?\n- If the destination IP address is remote or external, does it associate with an expected domain, organization or geography? Note: avoid interacting directly with suspected malicious IP addresses.\n- Consider the user as identified by the username field. Is this network activity part of an expected workflow for the user who ran the program?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business or maintenance process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.","author":["Elastic"],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Linux","Threat Detection","ML"],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_anomalous_network_activity"],"type":"machine_learning"}]},"id":"52afbdc5-db15-485e-bc24-f5707f820c4b","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/530178da-92ea-43ce-94c2-8877a826783d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/530178da-92ea-43ce-94c2-8877a826783d.json new file mode 100644 index 0000000000000..9d426febb1ae6 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/530178da-92ea-43ce-94c2-8877a826783d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"530178da-92ea-43ce-94c2-8877a826783d","versions":[{"name":"Suspicious CronTab Creation or Modification v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to create or modify a crontab via a process that is not crontab (i.e python, osascript, etc.). This activity should not be highly prevalent and could indicate the use of cron as a persistence mechanism by a threat actor.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://taomm.org/PDFs/vol1/CH%200x02%20Persistence.pdf","https://theevilbit.github.io/beyond/beyond_0004/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.003","name":"Cron","reference":"https://attack.mitre.org/techniques/T1053/003/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and process.name != null and\n file.path : \"/private/var/at/tabs/*\" and not process.executable == \"/usr/bin/crontab\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Suspicious CronTab Creation or Modification v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to create or modify a crontab via a process that is not crontab (i.e python, osascript, etc.). This activity should not be highly prevalent and could indicate the use of cron as a persistence mechanism by a threat actor.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://taomm.org/PDFs/vol1/CH%200x02%20Persistence.pdf","https://theevilbit.github.io/beyond/beyond_0004/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.003","name":"Cron","reference":"https://attack.mitre.org/techniques/T1053/003/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and process.name != null and\n file.path : \"/private/var/at/tabs/*\" and not process.executable == \"/usr/bin/crontab\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Suspicious CronTab Creation or Modification v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to create or modify a crontab via a process that is not crontab (i.e python, osascript, etc.). This activity should not be highly prevalent and could indicate the use of cron as a persistence mechanism by a threat actor.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://taomm.org/PDFs/vol1/CH%200x02%20Persistence.pdf","https://theevilbit.github.io/beyond/beyond_0004/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.003","name":"Cron","reference":"https://attack.mitre.org/techniques/T1053/003/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and process.name != null and\n file.path : \"/private/var/at/tabs/*\" and not process.executable == \"/usr/bin/crontab\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"530178da-92ea-43ce-94c2-8877a826783d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/536997f7-ae73-447d-a12d-bff1e8f5f0a0.json b/fleet-packages/detection-rules-composite/kibana/security_rule/536997f7-ae73-447d-a12d-bff1e8f5f0a0.json new file mode 100644 index 0000000000000..71418709c34c7 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/536997f7-ae73-447d-a12d-bff1e8f5f0a0.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"536997f7-ae73-447d-a12d-bff1e8f5f0a0","versions":[{"name":"AWS EFS File System or Mount Deleted v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when an EFS File System or Mount is deleted. An adversary could break any file system using the mount target that is being deleted, which might disrupt instances or applications using those mounts. The mount must be deleted prior to deleting the File System, or the adversary will be unable to delete the File System.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["File System or Mount being deleted may be performed by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. File System Mount deletion by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/efs/latest/ug/API_DeleteFileSystem.html","https://docs.aws.amazon.com/efs/latest/ug/API_DeleteMountTarget.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Data Protection"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:elasticfilesystem.amazonaws.com and\nevent.action:(DeleteMountTarget or DeleteFileSystem) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS EFS File System or Mount Deleted v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when an EFS File System or Mount is deleted. An adversary could break any file system using the mount target that is being deleted, which might disrupt instances or applications using those mounts. The mount must be deleted prior to deleting the File System, or the adversary will be unable to delete the File System.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["File System or Mount being deleted may be performed by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. File System Mount deletion by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/efs/latest/ug/API_DeleteFileSystem.html","https://docs.aws.amazon.com/efs/latest/ug/API_DeleteMountTarget.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Data Protection"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:elasticfilesystem.amazonaws.com and\nevent.action:(DeleteMountTarget or DeleteFileSystem) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS EFS File System or Mount Deleted v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when an EFS File System or Mount is deleted. An adversary could break any file system using the mount target that is being deleted, which might disrupt instances or applications using those mounts. The mount must be deleted prior to deleting the File System, or the adversary will be unable to delete the File System.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["File System or Mount being deleted may be performed by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. File System Mount deletion by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/efs/latest/ug/API_DeleteFileSystem.html","https://docs.aws.amazon.com/efs/latest/ug/API_DeleteMountTarget.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Data Protection"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:elasticfilesystem.amazonaws.com and\nevent.action:(DeleteMountTarget or DeleteFileSystem) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"536997f7-ae73-447d-a12d-bff1e8f5f0a0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/5370d4cd-2bb3-4d71-abf5-1e1d0ff5a2de.json b/fleet-packages/detection-rules-composite/kibana/security_rule/5370d4cd-2bb3-4d71-abf5-1e1d0ff5a2de.json new file mode 100644 index 0000000000000..79de6a7939a65 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/5370d4cd-2bb3-4d71-abf5-1e1d0ff5a2de.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"5370d4cd-2bb3-4d71-abf5-1e1d0ff5a2de","versions":[{"name":"Azure Diagnostic Settings Deletion v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of diagnostic settings in Azure, which send platform logs and metrics to different destinations. An adversary may delete diagnostic settings in an attempt to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Deletion of diagnostic settings may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Diagnostic settings deletion from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/azure-monitor/platform/diagnostic-settings"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.INSIGHTS/DIAGNOSTICSETTINGS/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Diagnostic Settings Deletion v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of diagnostic settings in Azure, which send platform logs and metrics to different destinations. An adversary may delete diagnostic settings in an attempt to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Deletion of diagnostic settings may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Diagnostic settings deletion from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/azure-monitor/platform/diagnostic-settings"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.INSIGHTS/DIAGNOSTICSETTINGS/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Diagnostic Settings Deletion v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of diagnostic settings in Azure, which send platform logs and metrics to different destinations. An adversary may delete diagnostic settings in an attempt to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Deletion of diagnostic settings may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Diagnostic settings deletion from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/azure-monitor/platform/diagnostic-settings"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.INSIGHTS/DIAGNOSTICSETTINGS/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"5370d4cd-2bb3-4d71-abf5-1e1d0ff5a2de","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/53a26770-9cbd-40c5-8b57-61d01a325e14.json b/fleet-packages/detection-rules-composite/kibana/security_rule/53a26770-9cbd-40c5-8b57-61d01a325e14.json new file mode 100644 index 0000000000000..cabb857842d66 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/53a26770-9cbd-40c5-8b57-61d01a325e14.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"53a26770-9cbd-40c5-8b57-61d01a325e14","versions":[{"name":"Suspicious PDF Reader Child Process v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious child processes of PDF reader applications. These child processes are often launched via exploitation of PDF applications or social engineering.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious PDF Reader Child Process\n\nPDF is a common file type used in corporate environments and most machines have software to handle these files. This\ncreates a vector where attackers can exploit the engines and technology behind this class of software for initial access\nor privilege escalation.\n\nThis rule looks for commonly abused built-in utilities spawned by a PDF reader process, which is likely a malicious behavior.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve PDF documents received and opened by the user that could cause this behavior. Common locations include, but\nare not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1204","name":"User Execution","reference":"https://attack.mitre.org/techniques/T1204/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"AcroRd32.exe\",\n \"Acrobat.exe\",\n \"FoxitPhantomPDF.exe\",\n \"FoxitReader.exe\") and\n process.name : (\"arp.exe\", \"dsquery.exe\", \"dsget.exe\", \"gpresult.exe\", \"hostname.exe\", \"ipconfig.exe\", \"nbtstat.exe\",\n \"net.exe\", \"net1.exe\", \"netsh.exe\", \"netstat.exe\", \"nltest.exe\", \"ping.exe\", \"qprocess.exe\",\n \"quser.exe\", \"qwinsta.exe\", \"reg.exe\", \"sc.exe\", \"systeminfo.exe\", \"tasklist.exe\", \"tracert.exe\",\n \"whoami.exe\", \"bginfo.exe\", \"cdb.exe\", \"cmstp.exe\", \"csi.exe\", \"dnx.exe\", \"fsi.exe\", \"ieexec.exe\",\n \"iexpress.exe\", \"installutil.exe\", \"Microsoft.Workflow.Compiler.exe\", \"msbuild.exe\", \"mshta.exe\",\n \"msxsl.exe\", \"odbcconf.exe\", \"rcsi.exe\", \"regsvr32.exe\", \"xwizard.exe\", \"atbroker.exe\",\n \"forfiles.exe\", \"schtasks.exe\", \"regasm.exe\", \"regsvcs.exe\", \"cmd.exe\", \"cscript.exe\",\n \"powershell.exe\", \"pwsh.exe\", \"wmic.exe\", \"wscript.exe\", \"bitsadmin.exe\", \"certutil.exe\", \"ftp.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious PDF Reader Child Process v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious child processes of PDF reader applications. These child processes are often launched via exploitation of PDF applications or social engineering.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious PDF Reader Child Process\n\nPDF is a common file type used in corporate environments and most machines have software to handle these files. This\ncreates a vector where attackers can exploit the engines and technology behind this class of software for initial access\nor privilege escalation.\n\nThis rule looks for commonly abused built-in utilities spawned by a PDF reader process, which is likely a malicious behavior.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve PDF documents received and opened by the user that could cause this behavior. Common locations include, but\nare not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1204","name":"User Execution","reference":"https://attack.mitre.org/techniques/T1204/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"AcroRd32.exe\",\n \"Acrobat.exe\",\n \"FoxitPhantomPDF.exe\",\n \"FoxitReader.exe\") and\n process.name : (\"arp.exe\", \"dsquery.exe\", \"dsget.exe\", \"gpresult.exe\", \"hostname.exe\", \"ipconfig.exe\", \"nbtstat.exe\",\n \"net.exe\", \"net1.exe\", \"netsh.exe\", \"netstat.exe\", \"nltest.exe\", \"ping.exe\", \"qprocess.exe\",\n \"quser.exe\", \"qwinsta.exe\", \"reg.exe\", \"sc.exe\", \"systeminfo.exe\", \"tasklist.exe\", \"tracert.exe\",\n \"whoami.exe\", \"bginfo.exe\", \"cdb.exe\", \"cmstp.exe\", \"csi.exe\", \"dnx.exe\", \"fsi.exe\", \"ieexec.exe\",\n \"iexpress.exe\", \"installutil.exe\", \"Microsoft.Workflow.Compiler.exe\", \"msbuild.exe\", \"mshta.exe\",\n \"msxsl.exe\", \"odbcconf.exe\", \"rcsi.exe\", \"regsvr32.exe\", \"xwizard.exe\", \"atbroker.exe\",\n \"forfiles.exe\", \"schtasks.exe\", \"regasm.exe\", \"regsvcs.exe\", \"cmd.exe\", \"cscript.exe\",\n \"powershell.exe\", \"pwsh.exe\", \"wmic.exe\", \"wscript.exe\", \"bitsadmin.exe\", \"certutil.exe\", \"ftp.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious PDF Reader Child Process v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious child processes of PDF reader applications. These child processes are often launched via exploitation of PDF applications or social engineering.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious PDF Reader Child Process\n\nPDF is a common file type used in corporate environments and most machines have software to handle these files. This\ncreates a vector where attackers can exploit the engines and technology behind this class of software for initial access\nor privilege escalation.\n\nThis rule looks for commonly abused built-in utilities spawned by a PDF reader process, which is likely a malicious behavior.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve PDF documents received and opened by the user that could cause this behavior. Common locations include, but\nare not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1204","name":"User Execution","reference":"https://attack.mitre.org/techniques/T1204/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"AcroRd32.exe\",\n \"Acrobat.exe\",\n \"FoxitPhantomPDF.exe\",\n \"FoxitReader.exe\") and\n process.name : (\"arp.exe\", \"dsquery.exe\", \"dsget.exe\", \"gpresult.exe\", \"hostname.exe\", \"ipconfig.exe\", \"nbtstat.exe\",\n \"net.exe\", \"net1.exe\", \"netsh.exe\", \"netstat.exe\", \"nltest.exe\", \"ping.exe\", \"qprocess.exe\",\n \"quser.exe\", \"qwinsta.exe\", \"reg.exe\", \"sc.exe\", \"systeminfo.exe\", \"tasklist.exe\", \"tracert.exe\",\n \"whoami.exe\", \"bginfo.exe\", \"cdb.exe\", \"cmstp.exe\", \"csi.exe\", \"dnx.exe\", \"fsi.exe\", \"ieexec.exe\",\n \"iexpress.exe\", \"installutil.exe\", \"Microsoft.Workflow.Compiler.exe\", \"msbuild.exe\", \"mshta.exe\",\n \"msxsl.exe\", \"odbcconf.exe\", \"rcsi.exe\", \"regsvr32.exe\", \"xwizard.exe\", \"atbroker.exe\",\n \"forfiles.exe\", \"schtasks.exe\", \"regasm.exe\", \"regsvcs.exe\", \"cmd.exe\", \"cscript.exe\",\n \"powershell.exe\", \"pwsh.exe\", \"wmic.exe\", \"wscript.exe\", \"bitsadmin.exe\", \"certutil.exe\", \"ftp.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"53a26770-9cbd-40c5-8b57-61d01a325e14","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/54902e45-3467-49a4-8abc-529f2c8cfb80.json b/fleet-packages/detection-rules-composite/kibana/security_rule/54902e45-3467-49a4-8abc-529f2c8cfb80.json new file mode 100644 index 0000000000000..f5315d8e254a7 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/54902e45-3467-49a4-8abc-529f2c8cfb80.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"54902e45-3467-49a4-8abc-529f2c8cfb80","versions":[{"name":"Uncommon Registry Persistence Change v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects changes to registry persistence keys that are not commonly used or modified by legitimate programs. This could be an indication of an adversary's attempt to persist in a stealthy manner.","risk_score":47,"severity":"medium","license":"Elastic License v2","timeline_id":"3e47ef71-ebfc-4520-975c-cb27fc090799","timeline_title":"Comprehensive Registry Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.microsoftpressstore.com/articles/article.aspx?p=2762082&seqNum=2"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1112","name":"Modify Registry","reference":"https://attack.mitre.org/techniques/T1112/"}]}],"language":"eql","query":"registry where\n /* uncomment once stable length(registry.data.strings) > 0 and */\n registry.path : (\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Terminal Server\\\\Install\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Terminal Server\\\\Install\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Runonce\\\\*\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\Load\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\Run\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\IconServiceLib\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\AppSetup\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Taskman\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Userinit\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\VmApplet\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\Shell\",\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logoff\\\\Script\",\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logon\\\\Script\",\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Shutdown\\\\Script\",\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Startup\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\Shell\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logoff\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logon\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Shutdown\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Startup\\\\Script\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Active Setup\\\\Installed Components\\\\*\\\\ShellComponent\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows CE Services\\\\AutoStartOnConnect\\\\MicrosoftActiveSync\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows CE Services\\\\AutoStartOnDisconnect\\\\MicrosoftActiveSync\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Ctf\\\\LangBarAddin\\\\*\\\\FilePath\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Exec\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Script\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Command Processor\\\\Autorun\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Ctf\\\\LangBarAddin\\\\*\\\\FilePath\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Exec\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Command Processor\\\\Autorun\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Image File Execution Options\\\\*\\\\VerifierDlls\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\GpExtensions\\\\*\\\\DllName\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\SafeBoot\\\\AlternateShell\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Terminal Server\\\\Wds\\\\rdpwd\\\\StartupPrograms\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Terminal Server\\\\WinStations\\\\RDP-Tcp\\\\InitialProgram\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Session Manager\\\\BootExecute\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Session Manager\\\\SetupExecute\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Session Manager\\\\Execute\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Session Manager\\\\S0InitialCommand\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\ServiceControlManagerExtension\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\BootVerificationProgram\\\\ImagePath\",\n \"HKLM\\\\SYSTEM\\\\Setup\\\\CmdLine\",\n \"HKEY_USERS\\\\*\\\\Environment\\\\UserInitMprLogonScript\") and\n\n not registry.data.strings : (\"C:\\\\Windows\\\\system32\\\\userinit.exe\", \"cmd.exe\", \"C:\\\\Program Files (x86)\\\\*.exe\",\n \"C:\\\\Program Files\\\\*.exe\") and\n not (process.name : \"rundll32.exe\" and registry.path : \"*\\\\Software\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Script\") and\n not process.executable : (\"C:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"C:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\",\n \"C:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\Platform\\\\*\\\\MsMpEng.exe\",\n \"C:\\\\Program Files\\\\*.exe\",\n \"C:\\\\Program Files (x86)\\\\*.exe\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},{"name":"Uncommon Registry Persistence Change v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects changes to registry persistence keys that are not commonly used or modified by legitimate programs. This could be an indication of an adversary's attempt to persist in a stealthy manner.","risk_score":47,"severity":"medium","license":"Elastic License v2","timeline_id":"3e47ef71-ebfc-4520-975c-cb27fc090799","timeline_title":"Comprehensive Registry Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.microsoftpressstore.com/articles/article.aspx?p=2762082&seqNum=2"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1112","name":"Modify Registry","reference":"https://attack.mitre.org/techniques/T1112/"}]}],"language":"eql","query":"registry where\n /* uncomment once stable length(registry.data.strings) > 0 and */\n registry.path : (\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Terminal Server\\\\Install\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Terminal Server\\\\Install\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Runonce\\\\*\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\Load\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\Run\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\IconServiceLib\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\AppSetup\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Taskman\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Userinit\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\VmApplet\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\Shell\",\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logoff\\\\Script\",\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logon\\\\Script\",\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Shutdown\\\\Script\",\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Startup\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\Shell\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logoff\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logon\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Shutdown\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Startup\\\\Script\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Active Setup\\\\Installed Components\\\\*\\\\ShellComponent\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows CE Services\\\\AutoStartOnConnect\\\\MicrosoftActiveSync\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows CE Services\\\\AutoStartOnDisconnect\\\\MicrosoftActiveSync\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Ctf\\\\LangBarAddin\\\\*\\\\FilePath\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Exec\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Script\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Command Processor\\\\Autorun\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Ctf\\\\LangBarAddin\\\\*\\\\FilePath\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Exec\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Command Processor\\\\Autorun\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Image File Execution Options\\\\*\\\\VerifierDlls\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\GpExtensions\\\\*\\\\DllName\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\SafeBoot\\\\AlternateShell\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Terminal Server\\\\Wds\\\\rdpwd\\\\StartupPrograms\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Terminal Server\\\\WinStations\\\\RDP-Tcp\\\\InitialProgram\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Session Manager\\\\BootExecute\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Session Manager\\\\SetupExecute\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Session Manager\\\\Execute\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Session Manager\\\\S0InitialCommand\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\ServiceControlManagerExtension\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\BootVerificationProgram\\\\ImagePath\",\n \"HKLM\\\\SYSTEM\\\\Setup\\\\CmdLine\",\n \"HKEY_USERS\\\\*\\\\Environment\\\\UserInitMprLogonScript\") and\n\n not registry.data.strings : (\"C:\\\\Windows\\\\system32\\\\userinit.exe\", \"cmd.exe\", \"C:\\\\Program Files (x86)\\\\*.exe\",\n \"C:\\\\Program Files\\\\*.exe\") and\n not (process.name : \"rundll32.exe\" and registry.path : \"*\\\\Software\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Script\") and\n not process.executable : (\"C:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"C:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\",\n \"C:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\Platform\\\\*\\\\MsMpEng.exe\",\n \"C:\\\\Program Files\\\\*.exe\",\n \"C:\\\\Program Files (x86)\\\\*.exe\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},{"name":"Uncommon Registry Persistence Change v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects changes to registry persistence keys that are not commonly used or modified by legitimate programs. This could be an indication of an adversary's attempt to persist in a stealthy manner.","risk_score":47,"severity":"medium","license":"Elastic License v2","timeline_id":"3e47ef71-ebfc-4520-975c-cb27fc090799","timeline_title":"Comprehensive Registry Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.microsoftpressstore.com/articles/article.aspx?p=2762082&seqNum=2"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1112","name":"Modify Registry","reference":"https://attack.mitre.org/techniques/T1112/"}]}],"language":"eql","query":"registry where\n /* uncomment once stable length(registry.data.strings) > 0 and */\n registry.path : (\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Terminal Server\\\\Install\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Terminal Server\\\\Install\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Runonce\\\\*\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\Load\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\Run\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\IconServiceLib\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\AppSetup\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Taskman\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Userinit\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\VmApplet\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\Shell\",\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logoff\\\\Script\",\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logon\\\\Script\",\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Shutdown\\\\Script\",\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Startup\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\Shell\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logoff\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logon\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Shutdown\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Startup\\\\Script\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Active Setup\\\\Installed Components\\\\*\\\\ShellComponent\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows CE Services\\\\AutoStartOnConnect\\\\MicrosoftActiveSync\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows CE Services\\\\AutoStartOnDisconnect\\\\MicrosoftActiveSync\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Ctf\\\\LangBarAddin\\\\*\\\\FilePath\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Exec\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Script\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Command Processor\\\\Autorun\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Ctf\\\\LangBarAddin\\\\*\\\\FilePath\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Exec\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Command Processor\\\\Autorun\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Image File Execution Options\\\\*\\\\VerifierDlls\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\GpExtensions\\\\*\\\\DllName\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\SafeBoot\\\\AlternateShell\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Terminal Server\\\\Wds\\\\rdpwd\\\\StartupPrograms\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Terminal Server\\\\WinStations\\\\RDP-Tcp\\\\InitialProgram\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Session Manager\\\\BootExecute\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Session Manager\\\\SetupExecute\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Session Manager\\\\Execute\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Session Manager\\\\S0InitialCommand\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\ServiceControlManagerExtension\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\BootVerificationProgram\\\\ImagePath\",\n \"HKLM\\\\SYSTEM\\\\Setup\\\\CmdLine\",\n \"HKEY_USERS\\\\*\\\\Environment\\\\UserInitMprLogonScript\") and\n\n not registry.data.strings : (\"C:\\\\Windows\\\\system32\\\\userinit.exe\", \"cmd.exe\", \"C:\\\\Program Files (x86)\\\\*.exe\",\n \"C:\\\\Program Files\\\\*.exe\") and\n not (process.name : \"rundll32.exe\" and registry.path : \"*\\\\Software\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Script\") and\n not process.executable : (\"C:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"C:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\",\n \"C:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\Platform\\\\*\\\\MsMpEng.exe\",\n \"C:\\\\Program Files\\\\*.exe\",\n \"C:\\\\Program Files (x86)\\\\*.exe\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]}]},"id":"54902e45-3467-49a4-8abc-529f2c8cfb80","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/54c3d186-0461-4dc3-9b33-2dc5c7473936.json b/fleet-packages/detection-rules-composite/kibana/security_rule/54c3d186-0461-4dc3-9b33-2dc5c7473936.json new file mode 100644 index 0000000000000..6a4c48ef6901a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/54c3d186-0461-4dc3-9b33-2dc5c7473936.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"54c3d186-0461-4dc3-9b33-2dc5c7473936","versions":[{"name":"Network Logon Provider Registry Modification v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the modification of the network logon provider registry. Adversaries may register a rogue network logon provider module for persistence and/or credential access via intercepting the authentication credentials in clear text during user logon.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Authorized third party network logon providers."],"from":"now-9m","references":["https://github.com/gtworek/PSBits/tree/master/PasswordStealing/NPPSpy","https://docs.microsoft.com/en-us/windows/win32/api/npapi/nf-npapi-nplogonnotify"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"language":"eql","query":"registry where registry.data.strings != null and\n registry.path : (\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\NetworkProvider\\\\ProviderPath\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\NetworkProvider\\\\ProviderPath\"\n ) and\n /* Excluding default NetworkProviders RDPNP, LanmanWorkstation and webclient. */\n not ( user.id : \"S-1-5-18\" and\n registry.data.strings in\n (\"%SystemRoot%\\\\System32\\\\ntlanman.dll\",\n \"%SystemRoot%\\\\System32\\\\drprov.dll\",\n \"%SystemRoot%\\\\System32\\\\davclnt.dll\")\n )\n","type":"eql","index":["logs-endpoint.events.*","endgame-*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"Network Logon Provider Registry Modification v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the modification of the network logon provider registry. Adversaries may register a rogue network logon provider module for persistence and/or credential access via intercepting the authentication credentials in clear text during user logon.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Authorized third party network logon providers."],"from":"now-9m","references":["https://github.com/gtworek/PSBits/tree/master/PasswordStealing/NPPSpy","https://docs.microsoft.com/en-us/windows/win32/api/npapi/nf-npapi-nplogonnotify"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"language":"eql","query":"registry where registry.data.strings != null and\n registry.path : (\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\NetworkProvider\\\\ProviderPath\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\NetworkProvider\\\\ProviderPath\"\n ) and\n /* Excluding default NetworkProviders RDPNP, LanmanWorkstation and webclient. */\n not ( user.id : \"S-1-5-18\" and\n registry.data.strings in\n (\"%SystemRoot%\\\\System32\\\\ntlanman.dll\",\n \"%SystemRoot%\\\\System32\\\\drprov.dll\",\n \"%SystemRoot%\\\\System32\\\\davclnt.dll\")\n )\n","type":"eql","index":["logs-endpoint.events.*","endgame-*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"Network Logon Provider Registry Modification v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the modification of the network logon provider registry. Adversaries may register a rogue network logon provider module for persistence and/or credential access via intercepting the authentication credentials in clear text during user logon.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Authorized third party network logon providers."],"from":"now-9m","references":["https://github.com/gtworek/PSBits/tree/master/PasswordStealing/NPPSpy","https://docs.microsoft.com/en-us/windows/win32/api/npapi/nf-npapi-nplogonnotify"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"language":"eql","query":"registry where registry.data.strings != null and\n registry.path : (\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\NetworkProvider\\\\ProviderPath\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\NetworkProvider\\\\ProviderPath\"\n ) and\n /* Excluding default NetworkProviders RDPNP, LanmanWorkstation and webclient. */\n not ( user.id : \"S-1-5-18\" and\n registry.data.strings in\n (\"%SystemRoot%\\\\System32\\\\ntlanman.dll\",\n \"%SystemRoot%\\\\System32\\\\drprov.dll\",\n \"%SystemRoot%\\\\System32\\\\davclnt.dll\")\n )\n","type":"eql","index":["logs-endpoint.events.*","endgame-*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]}]},"id":"54c3d186-0461-4dc3-9b33-2dc5c7473936","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/55c2bf58-2a39-4c58-a384-c8b1978153c2.json b/fleet-packages/detection-rules-composite/kibana/security_rule/55c2bf58-2a39-4c58-a384-c8b1978153c2.json new file mode 100644 index 0000000000000..3e9db64c6ea76 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/55c2bf58-2a39-4c58-a384-c8b1978153c2.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"55c2bf58-2a39-4c58-a384-c8b1978153c2","versions":[{"name":"Windows Service Installed via an Unusual Client v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a Windows service by an unusual client process. Services may be created with administrator privileges but are executed under SYSTEM privileges, so an adversary may also use a service to escalate privileges from administrator to SYSTEM.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.x86matthew.com/view_post?id=create_svc_rpc","https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4697","https://github.com/atc-project/atomic-threat-coverage/blob/master/Atomic_Threat_Coverage/Logging_Policies/LP_0100_windows_audit_security_system_extension.md"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"service-installed\" and (winlog.event_data.ClientProcessId:\"0\" or winlog.event_data.ParentProcessId:\"0\")\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":false,"name":"winlog.event_data.ClientProcessId","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ParentProcessId","type":"unknown"}],"setup":"The 'Audit Security System Extension' logging policy must be configured for (Success)\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nSystem >\nAudit Security System Extension (Success)\n```"},{"name":"Windows Service Installed via an Unusual Client v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a Windows service by an unusual client process. Services may be created with administrator privileges but are executed under SYSTEM privileges, so an adversary may also use a service to escalate privileges from administrator to SYSTEM.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.x86matthew.com/view_post?id=create_svc_rpc","https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4697","https://github.com/atc-project/atomic-threat-coverage/blob/master/Atomic_Threat_Coverage/Logging_Policies/LP_0100_windows_audit_security_system_extension.md"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"service-installed\" and (winlog.event_data.ClientProcessId:\"0\" or winlog.event_data.ParentProcessId:\"0\")\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":false,"name":"winlog.event_data.ClientProcessId","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ParentProcessId","type":"unknown"}],"setup":"The 'Audit Security System Extension' logging policy must be configured for (Success)\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nSystem >\nAudit Security System Extension (Success)\n```"},{"name":"Windows Service Installed via an Unusual Client v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a Windows service by an unusual client process. Services may be created with administrator privileges but are executed under SYSTEM privileges, so an adversary may also use a service to escalate privileges from administrator to SYSTEM.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.x86matthew.com/view_post?id=create_svc_rpc","https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4697","https://github.com/atc-project/atomic-threat-coverage/blob/master/Atomic_Threat_Coverage/Logging_Policies/LP_0100_windows_audit_security_system_extension.md"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"service-installed\" and (winlog.event_data.ClientProcessId:\"0\" or winlog.event_data.ParentProcessId:\"0\")\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":false,"name":"winlog.event_data.ClientProcessId","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ParentProcessId","type":"unknown"}],"setup":"The 'Audit Security System Extension' logging policy must be configured for (Success)\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nSystem >\nAudit Security System Extension (Success)\n```"}]},"id":"55c2bf58-2a39-4c58-a384-c8b1978153c2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/55d551c6-333b-4665-ab7e-5d14a59715ce.json b/fleet-packages/detection-rules-composite/kibana/security_rule/55d551c6-333b-4665-ab7e-5d14a59715ce.json new file mode 100644 index 0000000000000..6c9a0225538b7 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/55d551c6-333b-4665-ab7e-5d14a59715ce.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"55d551c6-333b-4665-ab7e-5d14a59715ce","versions":[{"name":"PsExec Network Connection v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the SysInternals tool PsExec.exe making a network connection. This could be an indication of lateral movement.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PsExec Network Connection\n\nPsExec is a remote administration tool that enables the execution of commands with both regular and SYSTEM privileges\non Windows systems. Microsoft develops it as part of the Sysinternals Suite. Although commonly used by administrators,\nPsExec is frequently used by attackers to enable lateral movement and execute commands as SYSTEM to disable defenses and\nbypass security protections.\n\nThis rule identifies PsExec execution by looking for the creation of `PsExec.exe`, the default name for the\nutility, followed by a network connection done by the process.\n\n#### Possible investigation steps\n\n- Check if the usage of this tool complies with the organization's administration policy.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Identify the target computer and its role in the IT environment.\n- Investigate what commands were run, and assess whether this behavior is prevalent in the environment by looking for\nsimilar occurrences across hosts.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. As long as the analyst did not identify suspicious activity related to the\nuser or involved hosts, and the tool is allowed by the organization's policy, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n - Prioritize accordingly with the role of the servers and users involved.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"false_positives":["PsExec is a dual-use tool that can be used for benign or malicious activity. It's important to baseline your environment to determine the amount of noise to expect from this tool."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1569","name":"System Services","reference":"https://attack.mitre.org/techniques/T1569/","subtechnique":[{"id":"T1569.002","name":"Service Execution","reference":"https://attack.mitre.org/techniques/T1569/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"PsExec.exe\" and event.type == \"start\" and\n\n /* This flag suppresses the display of the license dialog and may\n indicate that psexec executed for the first time in the machine */\n process.args : \"-accepteula\" and\n\n not process.executable : (\"?:\\\\ProgramData\\\\Docusnap\\\\Discovery\\\\discovery\\\\plugins\\\\17\\\\Bin\\\\psexec.exe\",\n \"?:\\\\Docusnap 11\\\\Bin\\\\psexec.exe\",\n \"?:\\\\Program Files\\\\Docusnap X\\\\Bin\\\\psexec.exe\",\n \"?:\\\\Program Files\\\\Docusnap X\\\\Tools\\\\dsDNS.exe\") and\n not process.parent.executable : \"?:\\\\Program Files (x86)\\\\Cynet\\\\Cynet Scanner\\\\CynetScanner.exe\"]\n [network where process.name : \"PsExec.exe\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},{"name":"PsExec Network Connection v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the SysInternals tool PsExec.exe making a network connection. This could be an indication of lateral movement.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PsExec Network Connection\n\nPsExec is a remote administration tool that enables the execution of commands with both regular and SYSTEM privileges\non Windows systems. Microsoft develops it as part of the Sysinternals Suite. Although commonly used by administrators,\nPsExec is frequently used by attackers to enable lateral movement and execute commands as SYSTEM to disable defenses and\nbypass security protections.\n\nThis rule identifies PsExec execution by looking for the creation of `PsExec.exe`, the default name for the\nutility, followed by a network connection done by the process.\n\n#### Possible investigation steps\n\n- Check if the usage of this tool complies with the organization's administration policy.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Identify the target computer and its role in the IT environment.\n- Investigate what commands were run, and assess whether this behavior is prevalent in the environment by looking for\nsimilar occurrences across hosts.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. As long as the analyst did not identify suspicious activity related to the\nuser or involved hosts, and the tool is allowed by the organization's policy, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n - Prioritize accordingly with the role of the servers and users involved.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"false_positives":["PsExec is a dual-use tool that can be used for benign or malicious activity. It's important to baseline your environment to determine the amount of noise to expect from this tool."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1569","name":"System Services","reference":"https://attack.mitre.org/techniques/T1569/","subtechnique":[{"id":"T1569.002","name":"Service Execution","reference":"https://attack.mitre.org/techniques/T1569/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"PsExec.exe\" and event.type == \"start\" and\n\n /* This flag suppresses the display of the license dialog and may\n indicate that psexec executed for the first time in the machine */\n process.args : \"-accepteula\" and\n\n not process.executable : (\"?:\\\\ProgramData\\\\Docusnap\\\\Discovery\\\\discovery\\\\plugins\\\\17\\\\Bin\\\\psexec.exe\",\n \"?:\\\\Docusnap 11\\\\Bin\\\\psexec.exe\",\n \"?:\\\\Program Files\\\\Docusnap X\\\\Bin\\\\psexec.exe\",\n \"?:\\\\Program Files\\\\Docusnap X\\\\Tools\\\\dsDNS.exe\") and\n not process.parent.executable : \"?:\\\\Program Files (x86)\\\\Cynet\\\\Cynet Scanner\\\\CynetScanner.exe\"]\n [network where process.name : \"PsExec.exe\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},{"name":"PsExec Network Connection v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the SysInternals tool PsExec.exe making a network connection. This could be an indication of lateral movement.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PsExec Network Connection\n\nPsExec is a remote administration tool that enables the execution of commands with both regular and SYSTEM privileges\non Windows systems. Microsoft develops it as part of the Sysinternals Suite. Although commonly used by administrators,\nPsExec is frequently used by attackers to enable lateral movement and execute commands as SYSTEM to disable defenses and\nbypass security protections.\n\nThis rule identifies PsExec execution by looking for the creation of `PsExec.exe`, the default name for the\nutility, followed by a network connection done by the process.\n\n#### Possible investigation steps\n\n- Check if the usage of this tool complies with the organization's administration policy.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Identify the target computer and its role in the IT environment.\n- Investigate what commands were run, and assess whether this behavior is prevalent in the environment by looking for\nsimilar occurrences across hosts.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. As long as the analyst did not identify suspicious activity related to the\nuser or involved hosts, and the tool is allowed by the organization's policy, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n - Prioritize accordingly with the role of the servers and users involved.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"false_positives":["PsExec is a dual-use tool that can be used for benign or malicious activity. It's important to baseline your environment to determine the amount of noise to expect from this tool."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1569","name":"System Services","reference":"https://attack.mitre.org/techniques/T1569/","subtechnique":[{"id":"T1569.002","name":"Service Execution","reference":"https://attack.mitre.org/techniques/T1569/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"PsExec.exe\" and event.type == \"start\" and\n\n /* This flag suppresses the display of the license dialog and may\n indicate that psexec executed for the first time in the machine */\n process.args : \"-accepteula\" and\n\n not process.executable : (\"?:\\\\ProgramData\\\\Docusnap\\\\Discovery\\\\discovery\\\\plugins\\\\17\\\\Bin\\\\psexec.exe\",\n \"?:\\\\Docusnap 11\\\\Bin\\\\psexec.exe\",\n \"?:\\\\Program Files\\\\Docusnap X\\\\Bin\\\\psexec.exe\",\n \"?:\\\\Program Files\\\\Docusnap X\\\\Tools\\\\dsDNS.exe\") and\n not process.parent.executable : \"?:\\\\Program Files (x86)\\\\Cynet\\\\Cynet Scanner\\\\CynetScanner.exe\"]\n [network where process.name : \"PsExec.exe\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]}]},"id":"55d551c6-333b-4665-ab7e-5d14a59715ce","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/56557cde-d923-4b88-adee-c61b3f3b5dc3.json b/fleet-packages/detection-rules-composite/kibana/security_rule/56557cde-d923-4b88-adee-c61b3f3b5dc3.json new file mode 100644 index 0000000000000..257c5e13ece41 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/56557cde-d923-4b88-adee-c61b3f3b5dc3.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"56557cde-d923-4b88-adee-c61b3f3b5dc3","versions":[{"name":"Windows CryptoAPI Spoofing Vulnerability (CVE-2020-0601 - CurveBall) v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A spoofing vulnerability exists in the way Windows CryptoAPI (Crypt32.dll) validates Elliptic Curve Cryptography (ECC) certificates. An attacker could exploit the vulnerability by using a spoofed code-signing certificate to sign a malicious executable, making it appear the file was from a trusted, legitimate source.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1553","name":"Subvert Trust Controls","reference":"https://attack.mitre.org/techniques/T1553/","subtechnique":[{"id":"T1553.002","name":"Code Signing","reference":"https://attack.mitre.org/techniques/T1553/002/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.provider:\"Microsoft-Windows-Audit-CVE\" and message:\"[CVE-2020-0601]\"\n","required_fields":[{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":true,"name":"message","type":"match_only_text"}]},{"name":"Windows CryptoAPI Spoofing Vulnerability (CVE-2020-0601 - CurveBall) v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A spoofing vulnerability exists in the way Windows CryptoAPI (Crypt32.dll) validates Elliptic Curve Cryptography (ECC) certificates. An attacker could exploit the vulnerability by using a spoofed code-signing certificate to sign a malicious executable, making it appear the file was from a trusted, legitimate source.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1553","name":"Subvert Trust Controls","reference":"https://attack.mitre.org/techniques/T1553/","subtechnique":[{"id":"T1553.002","name":"Code Signing","reference":"https://attack.mitre.org/techniques/T1553/002/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.provider:\"Microsoft-Windows-Audit-CVE\" and message:\"[CVE-2020-0601]\"\n","required_fields":[{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":true,"name":"message","type":"match_only_text"}]},{"name":"Windows CryptoAPI Spoofing Vulnerability (CVE-2020-0601 - CurveBall) v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A spoofing vulnerability exists in the way Windows CryptoAPI (Crypt32.dll) validates Elliptic Curve Cryptography (ECC) certificates. An attacker could exploit the vulnerability by using a spoofed code-signing certificate to sign a malicious executable, making it appear the file was from a trusted, legitimate source.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1553","name":"Subvert Trust Controls","reference":"https://attack.mitre.org/techniques/T1553/","subtechnique":[{"id":"T1553.002","name":"Code Signing","reference":"https://attack.mitre.org/techniques/T1553/002/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.provider:\"Microsoft-Windows-Audit-CVE\" and message:\"[CVE-2020-0601]\"\n","required_fields":[{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":true,"name":"message","type":"match_only_text"}]}]},"id":"56557cde-d923-4b88-adee-c61b3f3b5dc3","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/565c2b44-7a21-4818-955f-8d4737967d2e.json b/fleet-packages/detection-rules-composite/kibana/security_rule/565c2b44-7a21-4818-955f-8d4737967d2e.json new file mode 100644 index 0000000000000..f1abc52648c25 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/565c2b44-7a21-4818-955f-8d4737967d2e.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"565c2b44-7a21-4818-955f-8d4737967d2e","versions":[{"name":"Potential Admin Group Account Addition v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to add an account to the admin group via the command line. This could be an indication of privilege escalation activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://managingosx.wordpress.com/2010/01/14/add-a-user-to-the-admin-group-via-command-line-3-0/"],"tags":["Elastic","Host","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.003","name":"Local Accounts","reference":"https://attack.mitre.org/techniques/T1078/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:(dscl or dseditgroup) and process.args:((\"/Groups/admin\" or admin) and (\"-a\" or \"-append\"))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Potential Admin Group Account Addition v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to add an account to the admin group via the command line. This could be an indication of privilege escalation activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://managingosx.wordpress.com/2010/01/14/add-a-user-to-the-admin-group-via-command-line-3-0/"],"tags":["Elastic","Host","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.003","name":"Local Accounts","reference":"https://attack.mitre.org/techniques/T1078/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:(dscl or dseditgroup) and process.args:((\"/Groups/admin\" or admin) and (\"-a\" or \"-append\"))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Potential Admin Group Account Addition v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to add an account to the admin group via the command line. This could be an indication of privilege escalation activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://managingosx.wordpress.com/2010/01/14/add-a-user-to-the-admin-group-via-command-line-3-0/"],"tags":["Elastic","Host","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.003","name":"Local Accounts","reference":"https://attack.mitre.org/techniques/T1078/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:(dscl or dseditgroup) and process.args:((\"/Groups/admin\" or admin) and (\"-a\" or \"-append\"))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"565c2b44-7a21-4818-955f-8d4737967d2e","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/565d6ca5-75ba-4c82-9b13-add25353471c.json b/fleet-packages/detection-rules-composite/kibana/security_rule/565d6ca5-75ba-4c82-9b13-add25353471c.json new file mode 100644 index 0000000000000..1f334d08b2f9a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/565d6ca5-75ba-4c82-9b13-add25353471c.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"565d6ca5-75ba-4c82-9b13-add25353471c","versions":[{"name":"Dumping of Keychain Content via Security Command v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may dump the content of the keychain storage data from a system to acquire credentials. Keychains are the built-in way for macOS to keep track of users' passwords and credentials for many services and features, including Wi-Fi and website passwords, secure notes, certificates, and Kerberos.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://ss64.com/osx/security.html"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.001","name":"Keychain","reference":"https://attack.mitre.org/techniques/T1555/001/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.args : \"dump-keychain\" and process.args : \"-d\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Dumping of Keychain Content via Security Command v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may dump the content of the keychain storage data from a system to acquire credentials. Keychains are the built-in way for macOS to keep track of users' passwords and credentials for many services and features, including Wi-Fi and website passwords, secure notes, certificates, and Kerberos.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://ss64.com/osx/security.html"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.001","name":"Keychain","reference":"https://attack.mitre.org/techniques/T1555/001/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.args : \"dump-keychain\" and process.args : \"-d\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Dumping of Keychain Content via Security Command v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may dump the content of the keychain storage data from a system to acquire credentials. Keychains are the built-in way for macOS to keep track of users' passwords and credentials for many services and features, including Wi-Fi and website passwords, secure notes, certificates, and Kerberos.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://ss64.com/osx/security.html"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.001","name":"Keychain","reference":"https://attack.mitre.org/techniques/T1555/001/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.args : \"dump-keychain\" and process.args : \"-d\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"565d6ca5-75ba-4c82-9b13-add25353471c","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/5663b693-0dea-4f2e-8275-f1ae5ff2de8e.json b/fleet-packages/detection-rules-composite/kibana/security_rule/5663b693-0dea-4f2e-8275-f1ae5ff2de8e.json new file mode 100644 index 0000000000000..db747cacacfab --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/5663b693-0dea-4f2e-8275-f1ae5ff2de8e.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"5663b693-0dea-4f2e-8275-f1ae5ff2de8e","versions":[{"name":"GCP Logging Bucket Deletion v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a Logging bucket deletion in Google Cloud Platform (GCP). Log buckets are containers that store and organize log data. A deleted bucket stays in a pending state for 7 days, and Logging continues to route logs to the bucket during that time. To stop routing logs to a deleted bucket, you can delete the log sinks that have the bucket as their destination, or modify the filter for the sinks to stop it from routing logs to the deleted bucket. An adversary may delete a log bucket to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Logging bucket deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Logging bucket deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/logging/docs/buckets","https://cloud.google.com/logging/docs/storage"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.logging.v*.ConfigServiceV*.DeleteBucket and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Logging Bucket Deletion v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a Logging bucket deletion in Google Cloud Platform (GCP). Log buckets are containers that store and organize log data. A deleted bucket stays in a pending state for 7 days, and Logging continues to route logs to the bucket during that time. To stop routing logs to a deleted bucket, you can delete the log sinks that have the bucket as their destination, or modify the filter for the sinks to stop it from routing logs to the deleted bucket. An adversary may delete a log bucket to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Logging bucket deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Logging bucket deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/logging/docs/buckets","https://cloud.google.com/logging/docs/storage"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.logging.v*.ConfigServiceV*.DeleteBucket and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Logging Bucket Deletion v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a Logging bucket deletion in Google Cloud Platform (GCP). Log buckets are containers that store and organize log data. A deleted bucket stays in a pending state for 7 days, and Logging continues to route logs to the bucket during that time. To stop routing logs to a deleted bucket, you can delete the log sinks that have the bucket as their destination, or modify the filter for the sinks to stop it from routing logs to the deleted bucket. An adversary may delete a log bucket to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Logging bucket deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Logging bucket deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/logging/docs/buckets","https://cloud.google.com/logging/docs/storage"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.logging.v*.ConfigServiceV*.DeleteBucket and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"5663b693-0dea-4f2e-8275-f1ae5ff2de8e","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/56f2e9b5-4803-4e44-a0a4-a52dc79d57fe.json b/fleet-packages/detection-rules-composite/kibana/security_rule/56f2e9b5-4803-4e44-a0a4-a52dc79d57fe.json new file mode 100644 index 0000000000000..47d681fcefc44 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/56f2e9b5-4803-4e44-a0a4-a52dc79d57fe.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"56f2e9b5-4803-4e44-a0a4-a52dc79d57fe","versions":[{"name":"PowerShell PSReflect Script v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of PSReflect in PowerShell scripts. Attackers leverage PSReflect as a library that enables PowerShell to access win32 API functions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell PSReflect Script\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nPSReflect is a library that enables PowerShell to access win32 API functions in an uncomplicated way. It also helps to\ncreate enums and structs easily—all without touching the disk.\n\nAlthough this is an interesting project for every developer and admin out there, it is mainly used in the red team and\nmalware tooling for its capabilities.\n\nDetecting the core implementation of PSReflect means detecting most of the tooling that uses Windows API through\nPowerShell, enabling defenders to discover tools being dropped in the environment.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics. The\nscript content that may be split into multiple script blocks (you can use the field `powershell.file.script_block_id`\nfor filtering).\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Check for additional PowerShell and command-line logs that indicate that imported functions were run.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the script using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- PowerShell Suspicious Discovery Related Windows API Functions - 61ac3638-40a3-44b2-855a-985636ca985e\n- PowerShell Keylogging Script - bd2c86a0-8b61-4457-ab38-96943984e889\n- PowerShell Suspicious Script with Audio Capture Capabilities - 2f2f4939-0b34-40c2-a0a3-844eb7889f43\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n- Suspicious .NET Reflection via PowerShell - e26f042e-c590-4e82-8e05-41e81bd822ad\n- PowerShell Suspicious Payload Encoded and Compressed - 81fe9dc6-a2d7-4192-a2d8-eed98afc766a\n- PowerShell Suspicious Script with Screenshot Capabilities - 959a7353-1129-4aa7-9084-30746b256a70\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate PowerShell scripts that make use of PSReflect to access the win32 API"],"from":"now-9m","references":["https://github.com/mattifestation/PSReflect/blob/master/PSReflect.psm1","https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]},{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text:(\n \"New-InMemoryModule\" or\n \"Add-Win32Type\" or\n psenum or\n DefineDynamicAssembly or\n DefineDynamicModule or\n \"Reflection.TypeAttributes\" or\n \"Reflection.Emit.OpCodes\" or\n \"Reflection.Emit.CustomAttributeBuilder\" or\n \"Runtime.InteropServices.DllImportAttribute\"\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},{"name":"PowerShell PSReflect Script v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of PSReflect in PowerShell scripts. Attackers leverage PSReflect as a library that enables PowerShell to access win32 API functions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell PSReflect Script\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nPSReflect is a library that enables PowerShell to access win32 API functions in an uncomplicated way. It also helps to\ncreate enums and structs easily—all without touching the disk.\n\nAlthough this is an interesting project for every developer and admin out there, it is mainly used in the red team and\nmalware tooling for its capabilities.\n\nDetecting the core implementation of PSReflect means detecting most of the tooling that uses Windows API through\nPowerShell, enabling defenders to discover tools being dropped in the environment.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics. The\nscript content that may be split into multiple script blocks (you can use the field `powershell.file.script_block_id`\nfor filtering).\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Check for additional PowerShell and command-line logs that indicate that imported functions were run.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the script using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- PowerShell Suspicious Discovery Related Windows API Functions - 61ac3638-40a3-44b2-855a-985636ca985e\n- PowerShell Keylogging Script - bd2c86a0-8b61-4457-ab38-96943984e889\n- PowerShell Suspicious Script with Audio Capture Capabilities - 2f2f4939-0b34-40c2-a0a3-844eb7889f43\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n- Suspicious .NET Reflection via PowerShell - e26f042e-c590-4e82-8e05-41e81bd822ad\n- PowerShell Suspicious Payload Encoded and Compressed - 81fe9dc6-a2d7-4192-a2d8-eed98afc766a\n- PowerShell Suspicious Script with Screenshot Capabilities - 959a7353-1129-4aa7-9084-30746b256a70\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate PowerShell scripts that make use of PSReflect to access the win32 API"],"from":"now-9m","references":["https://github.com/mattifestation/PSReflect/blob/master/PSReflect.psm1","https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]},{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text:(\n \"New-InMemoryModule\" or\n \"Add-Win32Type\" or\n psenum or\n DefineDynamicAssembly or\n DefineDynamicModule or\n \"Reflection.TypeAttributes\" or\n \"Reflection.Emit.OpCodes\" or\n \"Reflection.Emit.CustomAttributeBuilder\" or\n \"Runtime.InteropServices.DllImportAttribute\"\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},{"name":"PowerShell PSReflect Script v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of PSReflect in PowerShell scripts. Attackers leverage PSReflect as a library that enables PowerShell to access win32 API functions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell PSReflect Script\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nPSReflect is a library that enables PowerShell to access win32 API functions in an uncomplicated way. It also helps to\ncreate enums and structs easily—all without touching the disk.\n\nAlthough this is an interesting project for every developer and admin out there, it is mainly used in the red team and\nmalware tooling for its capabilities.\n\nDetecting the core implementation of PSReflect means detecting most of the tooling that uses Windows API through\nPowerShell, enabling defenders to discover tools being dropped in the environment.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics. The\nscript content that may be split into multiple script blocks (you can use the field `powershell.file.script_block_id`\nfor filtering).\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Check for additional PowerShell and command-line logs that indicate that imported functions were run.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the script using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- PowerShell Suspicious Discovery Related Windows API Functions - 61ac3638-40a3-44b2-855a-985636ca985e\n- PowerShell Keylogging Script - bd2c86a0-8b61-4457-ab38-96943984e889\n- PowerShell Suspicious Script with Audio Capture Capabilities - 2f2f4939-0b34-40c2-a0a3-844eb7889f43\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n- Suspicious .NET Reflection via PowerShell - e26f042e-c590-4e82-8e05-41e81bd822ad\n- PowerShell Suspicious Payload Encoded and Compressed - 81fe9dc6-a2d7-4192-a2d8-eed98afc766a\n- PowerShell Suspicious Script with Screenshot Capabilities - 959a7353-1129-4aa7-9084-30746b256a70\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate PowerShell scripts that make use of PSReflect to access the win32 API"],"from":"now-9m","references":["https://github.com/mattifestation/PSReflect/blob/master/PSReflect.psm1","https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]},{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text:(\n \"New-InMemoryModule\" or\n \"Add-Win32Type\" or\n psenum or\n DefineDynamicAssembly or\n DefineDynamicModule or\n \"Reflection.TypeAttributes\" or\n \"Reflection.Emit.OpCodes\" or\n \"Reflection.Emit.CustomAttributeBuilder\" or\n \"Runtime.InteropServices.DllImportAttribute\"\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"}]},"id":"56f2e9b5-4803-4e44-a0a4-a52dc79d57fe","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/5700cb81-df44-46aa-a5d7-337798f53eb8.json b/fleet-packages/detection-rules-composite/kibana/security_rule/5700cb81-df44-46aa-a5d7-337798f53eb8.json new file mode 100644 index 0000000000000..e1c57afe8d7af --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/5700cb81-df44-46aa-a5d7-337798f53eb8.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"5700cb81-df44-46aa-a5d7-337798f53eb8","versions":[{"name":"VNC (Virtual Network Computing) from the Internet v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of VNC traffic from the Internet. VNC is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["VNC connections may be received directly to Linux cloud server instances but such connections are usually made only by engineers. VNC is less common than SSH or RDP but may be required by some work-flows such as remote access and support for specialized software products or servers. Such work-flows are usually known and not unexpected. Usage that is unfamiliar to server or network owners can be unexpected and suspicious."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1219","name":"Remote Access Software","reference":"https://attack.mitre.org/techniques/T1219/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and destination.port >= 5800 and destination.port <= 5810 and\n not source.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n ) and\n destination.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},{"name":"VNC (Virtual Network Computing) from the Internet v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of VNC traffic from the Internet. VNC is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["VNC connections may be received directly to Linux cloud server instances but such connections are usually made only by engineers. VNC is less common than SSH or RDP but may be required by some work-flows such as remote access and support for specialized software products or servers. Such work-flows are usually known and not unexpected. Usage that is unfamiliar to server or network owners can be unexpected and suspicious."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1219","name":"Remote Access Software","reference":"https://attack.mitre.org/techniques/T1219/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and destination.port >= 5800 and destination.port <= 5810 and\n not source.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n ) and\n destination.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},{"name":"VNC (Virtual Network Computing) from the Internet v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of VNC traffic from the Internet. VNC is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["VNC connections may be received directly to Linux cloud server instances but such connections are usually made only by engineers. VNC is less common than SSH or RDP but may be required by some work-flows such as remote access and support for specialized software products or servers. Such work-flows are usually known and not unexpected. Usage that is unfamiliar to server or network owners can be unexpected and suspicious."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1219","name":"Remote Access Software","reference":"https://attack.mitre.org/techniques/T1219/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and destination.port >= 5800 and destination.port <= 5810 and\n not source.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n ) and\n destination.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]}]},"id":"5700cb81-df44-46aa-a5d7-337798f53eb8","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/571afc56-5ed9-465d-a2a9-045f099f6e7e.json b/fleet-packages/detection-rules-composite/kibana/security_rule/571afc56-5ed9-465d-a2a9-045f099f6e7e.json new file mode 100644 index 0000000000000..6fef9344c317b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/571afc56-5ed9-465d-a2a9-045f099f6e7e.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"571afc56-5ed9-465d-a2a9-045f099f6e7e","versions":[{"name":"Credential Dumping - Detected - Elastic Endgame v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected Credential Dumping. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:cred_theft_event or endgame.event_subtype_full:cred_theft_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Credential Dumping - Detected - Elastic Endgame v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected Credential Dumping. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:cred_theft_event or endgame.event_subtype_full:cred_theft_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Credential Dumping - Detected - Elastic Endgame v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected Credential Dumping. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:cred_theft_event or endgame.event_subtype_full:cred_theft_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]}]},"id":"571afc56-5ed9-465d-a2a9-045f099f6e7e","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/573f6e7a-7acf-4bcd-ad42-c4969124d3c0.json b/fleet-packages/detection-rules-composite/kibana/security_rule/573f6e7a-7acf-4bcd-ad42-c4969124d3c0.json new file mode 100644 index 0000000000000..8909a4f60c9ee --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/573f6e7a-7acf-4bcd-ad42-c4969124d3c0.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"573f6e7a-7acf-4bcd-ad42-c4969124d3c0","versions":[{"name":"Azure Virtual Network Device Modified or Deleted v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a virtual network device is modified or deleted. This can be a network virtual appliance, virtual hub, or virtual router.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Virtual Network Device modification or deletion may be performed by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Virtual Network Device modification or deletion by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Network Security","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:(\"MICROSOFT.NETWORK/NETWORKINTERFACES/TAPCONFIGURATIONS/WRITE\" or\n\"MICROSOFT.NETWORK/NETWORKINTERFACES/TAPCONFIGURATIONS/DELETE\" or \"MICROSOFT.NETWORK/NETWORKINTERFACES/WRITE\" or\n\"MICROSOFT.NETWORK/NETWORKINTERFACES/JOIN/ACTION\" or \"MICROSOFT.NETWORK/NETWORKINTERFACES/DELETE\" or\n\"MICROSOFT.NETWORK/NETWORKVIRTUALAPPLIANCES/DELETE\" or \"MICROSOFT.NETWORK/NETWORKVIRTUALAPPLIANCES/WRITE\" or\n\"MICROSOFT.NETWORK/VIRTUALHUBS/DELETE\" or \"MICROSOFT.NETWORK/VIRTUALHUBS/WRITE\" or\n\"MICROSOFT.NETWORK/VIRTUALROUTERS/WRITE\" or \"MICROSOFT.NETWORK/VIRTUALROUTERS/DELETE\") and\nevent.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Virtual Network Device Modified or Deleted v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a virtual network device is modified or deleted. This can be a network virtual appliance, virtual hub, or virtual router.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Virtual Network Device modification or deletion may be performed by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Virtual Network Device modification or deletion by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Network Security","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:(\"MICROSOFT.NETWORK/NETWORKINTERFACES/TAPCONFIGURATIONS/WRITE\" or\n\"MICROSOFT.NETWORK/NETWORKINTERFACES/TAPCONFIGURATIONS/DELETE\" or \"MICROSOFT.NETWORK/NETWORKINTERFACES/WRITE\" or\n\"MICROSOFT.NETWORK/NETWORKINTERFACES/JOIN/ACTION\" or \"MICROSOFT.NETWORK/NETWORKINTERFACES/DELETE\" or\n\"MICROSOFT.NETWORK/NETWORKVIRTUALAPPLIANCES/DELETE\" or \"MICROSOFT.NETWORK/NETWORKVIRTUALAPPLIANCES/WRITE\" or\n\"MICROSOFT.NETWORK/VIRTUALHUBS/DELETE\" or \"MICROSOFT.NETWORK/VIRTUALHUBS/WRITE\" or\n\"MICROSOFT.NETWORK/VIRTUALROUTERS/WRITE\" or \"MICROSOFT.NETWORK/VIRTUALROUTERS/DELETE\") and\nevent.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Virtual Network Device Modified or Deleted v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a virtual network device is modified or deleted. This can be a network virtual appliance, virtual hub, or virtual router.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Virtual Network Device modification or deletion may be performed by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Virtual Network Device modification or deletion by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Network Security","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:(\"MICROSOFT.NETWORK/NETWORKINTERFACES/TAPCONFIGURATIONS/WRITE\" or\n\"MICROSOFT.NETWORK/NETWORKINTERFACES/TAPCONFIGURATIONS/DELETE\" or \"MICROSOFT.NETWORK/NETWORKINTERFACES/WRITE\" or\n\"MICROSOFT.NETWORK/NETWORKINTERFACES/JOIN/ACTION\" or \"MICROSOFT.NETWORK/NETWORKINTERFACES/DELETE\" or\n\"MICROSOFT.NETWORK/NETWORKVIRTUALAPPLIANCES/DELETE\" or \"MICROSOFT.NETWORK/NETWORKVIRTUALAPPLIANCES/WRITE\" or\n\"MICROSOFT.NETWORK/VIRTUALHUBS/DELETE\" or \"MICROSOFT.NETWORK/VIRTUALHUBS/WRITE\" or\n\"MICROSOFT.NETWORK/VIRTUALROUTERS/WRITE\" or \"MICROSOFT.NETWORK/VIRTUALROUTERS/DELETE\") and\nevent.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"573f6e7a-7acf-4bcd-ad42-c4969124d3c0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/577ec21e-56fe-4065-91d8-45eb8224fe77.json b/fleet-packages/detection-rules-composite/kibana/security_rule/577ec21e-56fe-4065-91d8-45eb8224fe77.json new file mode 100644 index 0000000000000..202150d4d4158 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/577ec21e-56fe-4065-91d8-45eb8224fe77.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"577ec21e-56fe-4065-91d8-45eb8224fe77","versions":[{"name":"PowerShell MiniDump Script v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects PowerShell scripts capable of dumping process memory using WindowsErrorReporting or Dbghelp.dll MiniDumpWriteDump. Attackers can use this tooling to dump LSASS and get access to credentials.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell MiniDump Script\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can abuse Process Memory Dump capabilities to extract credentials from LSASS or to obtain other\nprivileged information stored in the process memory.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Check if the imported function was executed and which process it targeted.\n\n### False positive analysis\n\n- Regular users do not have a business justification for using scripting utilities to dump process memory, making false\npositives unlikely.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["PowerShell scripts that use this capability for troubleshooting."],"from":"now-9m","references":["https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Out-Minidump.ps1","https://github.com/FuzzySecurity/PowerShell-Suite/blob/master/Get-ProcessMiniDump.ps1","https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and powershell.file.script_block_text:(MiniDumpWriteDump or MiniDumpWithFullMemory or pmuDetirWpmuDiniM)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},{"name":"PowerShell MiniDump Script v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects PowerShell scripts capable of dumping process memory using WindowsErrorReporting or Dbghelp.dll MiniDumpWriteDump. Attackers can use this tooling to dump LSASS and get access to credentials.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell MiniDump Script\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can abuse Process Memory Dump capabilities to extract credentials from LSASS or to obtain other\nprivileged information stored in the process memory.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Check if the imported function was executed and which process it targeted.\n\n### False positive analysis\n\n- Regular users do not have a business justification for using scripting utilities to dump process memory, making false\npositives unlikely.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["PowerShell scripts that use this capability for troubleshooting."],"from":"now-9m","references":["https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Out-Minidump.ps1","https://github.com/FuzzySecurity/PowerShell-Suite/blob/master/Get-ProcessMiniDump.ps1","https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and powershell.file.script_block_text:(MiniDumpWriteDump or MiniDumpWithFullMemory or pmuDetirWpmuDiniM)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},{"name":"PowerShell MiniDump Script v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects PowerShell scripts capable of dumping process memory using WindowsErrorReporting or Dbghelp.dll MiniDumpWriteDump. Attackers can use this tooling to dump LSASS and get access to credentials.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell MiniDump Script\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can abuse Process Memory Dump capabilities to extract credentials from LSASS or to obtain other\nprivileged information stored in the process memory.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Check if the imported function was executed and which process it targeted.\n\n### False positive analysis\n\n- Regular users do not have a business justification for using scripting utilities to dump process memory, making false\npositives unlikely.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["PowerShell scripts that use this capability for troubleshooting."],"from":"now-9m","references":["https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Out-Minidump.ps1","https://github.com/FuzzySecurity/PowerShell-Suite/blob/master/Get-ProcessMiniDump.ps1","https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and powershell.file.script_block_text:(MiniDumpWriteDump or MiniDumpWithFullMemory or pmuDetirWpmuDiniM)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"}]},"id":"577ec21e-56fe-4065-91d8-45eb8224fe77","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/581add16-df76-42bb-af8e-c979bfb39a59.json b/fleet-packages/detection-rules-composite/kibana/security_rule/581add16-df76-42bb-af8e-c979bfb39a59.json new file mode 100644 index 0000000000000..0eef0ab829551 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/581add16-df76-42bb-af8e-c979bfb39a59.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"581add16-df76-42bb-af8e-c979bfb39a59","versions":[{"name":"Deleting Backup Catalogs with Wbadmin v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the wbadmin.exe to delete the backup catalog. Ransomware and other malware may do this to prevent system recovery.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Deleting Backup Catalogs with Wbadmin\n\nWindows Server Backup stores the details about your backups (what volumes are backed up and where the backups are\nlocated) in a file called a backup catalog, which ransomware victims can use to recover corrupted backup files.\nDeleting these files is a common step in threat actor playbooks.\n\nThis rule identifies the deletion of the backup catalog using the `wbadmin.exe` utility.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Check if any files on the host machine have been encrypted.\n\n### False positive analysis\n\n- Administrators can use this command to delete corrupted catalogs, but overall the activity is unlikely to be legitimate.\n\n### Related rules\n\n- Third-party Backup Files Deleted via Unexpected Process - 11ea6bec-ebde-4d71-a8e9-784948f8e3e9\n- Volume Shadow Copy Deleted or Resized via VssAdmin - b5ea4bfe-a1b2-421f-9d47-22a75a6f2921\n- Volume Shadow Copy Deletion via PowerShell - d99a037b-c8e2-47a5-97b9-170d076827c4\n- Volume Shadow Copy Deletion via WMIC - dc9c1f74-dac3-48e3-b47f-eb79db358f57\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If any other destructive action was identified on the host, it is recommended to prioritize the investigation and look\nfor ransomware preparation and execution activities.\n- If any backups were affected:\n - Perform data recovery locally or restore the backups from replicated copies (cloud, other servers, etc.).\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"wbadmin.exe\" or process.pe.original_file_name == \"WBADMIN.EXE\") and\n process.args : \"catalog\" and process.args : \"delete\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Deleting Backup Catalogs with Wbadmin v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the wbadmin.exe to delete the backup catalog. Ransomware and other malware may do this to prevent system recovery.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Deleting Backup Catalogs with Wbadmin\n\nWindows Server Backup stores the details about your backups (what volumes are backed up and where the backups are\nlocated) in a file called a backup catalog, which ransomware victims can use to recover corrupted backup files.\nDeleting these files is a common step in threat actor playbooks.\n\nThis rule identifies the deletion of the backup catalog using the `wbadmin.exe` utility.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Check if any files on the host machine have been encrypted.\n\n### False positive analysis\n\n- Administrators can use this command to delete corrupted catalogs, but overall the activity is unlikely to be legitimate.\n\n### Related rules\n\n- Third-party Backup Files Deleted via Unexpected Process - 11ea6bec-ebde-4d71-a8e9-784948f8e3e9\n- Volume Shadow Copy Deleted or Resized via VssAdmin - b5ea4bfe-a1b2-421f-9d47-22a75a6f2921\n- Volume Shadow Copy Deletion via PowerShell - d99a037b-c8e2-47a5-97b9-170d076827c4\n- Volume Shadow Copy Deletion via WMIC - dc9c1f74-dac3-48e3-b47f-eb79db358f57\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If any other destructive action was identified on the host, it is recommended to prioritize the investigation and look\nfor ransomware preparation and execution activities.\n- If any backups were affected:\n - Perform data recovery locally or restore the backups from replicated copies (cloud, other servers, etc.).\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"wbadmin.exe\" or process.pe.original_file_name == \"WBADMIN.EXE\") and\n process.args : \"catalog\" and process.args : \"delete\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Deleting Backup Catalogs with Wbadmin v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the wbadmin.exe to delete the backup catalog. Ransomware and other malware may do this to prevent system recovery.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Deleting Backup Catalogs with Wbadmin\n\nWindows Server Backup stores the details about your backups (what volumes are backed up and where the backups are\nlocated) in a file called a backup catalog, which ransomware victims can use to recover corrupted backup files.\nDeleting these files is a common step in threat actor playbooks.\n\nThis rule identifies the deletion of the backup catalog using the `wbadmin.exe` utility.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Check if any files on the host machine have been encrypted.\n\n### False positive analysis\n\n- Administrators can use this command to delete corrupted catalogs, but overall the activity is unlikely to be legitimate.\n\n### Related rules\n\n- Third-party Backup Files Deleted via Unexpected Process - 11ea6bec-ebde-4d71-a8e9-784948f8e3e9\n- Volume Shadow Copy Deleted or Resized via VssAdmin - b5ea4bfe-a1b2-421f-9d47-22a75a6f2921\n- Volume Shadow Copy Deletion via PowerShell - d99a037b-c8e2-47a5-97b9-170d076827c4\n- Volume Shadow Copy Deletion via WMIC - dc9c1f74-dac3-48e3-b47f-eb79db358f57\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If any other destructive action was identified on the host, it is recommended to prioritize the investigation and look\nfor ransomware preparation and execution activities.\n- If any backups were affected:\n - Perform data recovery locally or restore the backups from replicated copies (cloud, other servers, etc.).\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"wbadmin.exe\" or process.pe.original_file_name == \"WBADMIN.EXE\") and\n process.args : \"catalog\" and process.args : \"delete\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"581add16-df76-42bb-af8e-c979bfb39a59","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/58aa72ca-d968-4f34-b9f7-bea51d75eb50.json b/fleet-packages/detection-rules-composite/kibana/security_rule/58aa72ca-d968-4f34-b9f7-bea51d75eb50.json new file mode 100644 index 0000000000000..2cdaca8e07747 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/58aa72ca-d968-4f34-b9f7-bea51d75eb50.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"58aa72ca-d968-4f34-b9f7-bea51d75eb50","versions":[{"name":"RDP Enabled via Registry v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies registry write modifications to enable Remote Desktop Protocol (RDP) access. This could be indicative of adversary lateral movement preparation.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating RDP Enabled via Registry\n\nMicrosoft Remote Desktop Protocol (RDP) is a proprietary Microsoft protocol that enables remote connections to other\ncomputers, typically over TCP port 3389.\n\nAttackers can use RDP to conduct their actions interactively. Ransomware operators frequently use RDP to access\nvictim servers, often using privileged accounts.\n\nThis rule detects modification of the fDenyTSConnections registry key to the value `0`, which specifies that remote\ndesktop connections are enabled. Attackers can abuse remote registry, use psexec, etc., to enable RDP and move laterally.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the user to check if they are aware of the operation.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check whether it makes sense to enable RDP to this host, given its role in the environment.\n- Check if the host is directly exposed to the internet.\n- Check whether privileged accounts accessed the host shortly after the modification.\n- Review network events within a short timespan of this alert for incoming RDP connection attempts.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Check whether the user should be performing this kind of activity, whether\nthey are aware of it, whether RDP should be open, and whether the action exposes the environment to unnecessary risks.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If RDP is needed, make sure to secure it using firewall rules:\n - Allowlist RDP traffic to specific trusted hosts.\n - Restrict RDP logins to authorized non-administrator accounts, where possible.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.001","name":"Remote Desktop Protocol","reference":"https://attack.mitre.org/techniques/T1021/001/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n registry.path : \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Terminal Server\\\\fDenyTSConnections\" and\n registry.data.strings : (\"0\", \"0x00000000\") and not (process.name : \"svchost.exe\" and user.domain == \"NT AUTHORITY\") and\n not process.executable : \"C:\\\\Windows\\\\System32\\\\SystemPropertiesRemote.exe\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"RDP Enabled via Registry v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies registry write modifications to enable Remote Desktop Protocol (RDP) access. This could be indicative of adversary lateral movement preparation.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating RDP Enabled via Registry\n\nMicrosoft Remote Desktop Protocol (RDP) is a proprietary Microsoft protocol that enables remote connections to other\ncomputers, typically over TCP port 3389.\n\nAttackers can use RDP to conduct their actions interactively. Ransomware operators frequently use RDP to access\nvictim servers, often using privileged accounts.\n\nThis rule detects modification of the fDenyTSConnections registry key to the value `0`, which specifies that remote\ndesktop connections are enabled. Attackers can abuse remote registry, use psexec, etc., to enable RDP and move laterally.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the user to check if they are aware of the operation.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check whether it makes sense to enable RDP to this host, given its role in the environment.\n- Check if the host is directly exposed to the internet.\n- Check whether privileged accounts accessed the host shortly after the modification.\n- Review network events within a short timespan of this alert for incoming RDP connection attempts.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Check whether the user should be performing this kind of activity, whether\nthey are aware of it, whether RDP should be open, and whether the action exposes the environment to unnecessary risks.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If RDP is needed, make sure to secure it using firewall rules:\n - Allowlist RDP traffic to specific trusted hosts.\n - Restrict RDP logins to authorized non-administrator accounts, where possible.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.001","name":"Remote Desktop Protocol","reference":"https://attack.mitre.org/techniques/T1021/001/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n registry.path : \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Terminal Server\\\\fDenyTSConnections\" and\n registry.data.strings : (\"0\", \"0x00000000\") and not (process.name : \"svchost.exe\" and user.domain == \"NT AUTHORITY\") and\n not process.executable : \"C:\\\\Windows\\\\System32\\\\SystemPropertiesRemote.exe\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"RDP Enabled via Registry v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies registry write modifications to enable Remote Desktop Protocol (RDP) access. This could be indicative of adversary lateral movement preparation.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating RDP Enabled via Registry\n\nMicrosoft Remote Desktop Protocol (RDP) is a proprietary Microsoft protocol that enables remote connections to other\ncomputers, typically over TCP port 3389.\n\nAttackers can use RDP to conduct their actions interactively. Ransomware operators frequently use RDP to access\nvictim servers, often using privileged accounts.\n\nThis rule detects modification of the fDenyTSConnections registry key to the value `0`, which specifies that remote\ndesktop connections are enabled. Attackers can abuse remote registry, use psexec, etc., to enable RDP and move laterally.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the user to check if they are aware of the operation.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check whether it makes sense to enable RDP to this host, given its role in the environment.\n- Check if the host is directly exposed to the internet.\n- Check whether privileged accounts accessed the host shortly after the modification.\n- Review network events within a short timespan of this alert for incoming RDP connection attempts.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Check whether the user should be performing this kind of activity, whether\nthey are aware of it, whether RDP should be open, and whether the action exposes the environment to unnecessary risks.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If RDP is needed, make sure to secure it using firewall rules:\n - Allowlist RDP traffic to specific trusted hosts.\n - Restrict RDP logins to authorized non-administrator accounts, where possible.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.001","name":"Remote Desktop Protocol","reference":"https://attack.mitre.org/techniques/T1021/001/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n registry.path : \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Terminal Server\\\\fDenyTSConnections\" and\n registry.data.strings : (\"0\", \"0x00000000\") and not (process.name : \"svchost.exe\" and user.domain == \"NT AUTHORITY\") and\n not process.executable : \"C:\\\\Windows\\\\System32\\\\SystemPropertiesRemote.exe\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"58aa72ca-d968-4f34-b9f7-bea51d75eb50","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/58ac2aa5-6718-427c-a845-5f3ac5af00ba.json b/fleet-packages/detection-rules-composite/kibana/security_rule/58ac2aa5-6718-427c-a845-5f3ac5af00ba.json new file mode 100644 index 0000000000000..2a673a0fb82e1 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/58ac2aa5-6718-427c-a845-5f3ac5af00ba.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"58ac2aa5-6718-427c-a845-5f3ac5af00ba","versions":[{"name":"Zoom Meeting with no Passcode v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule identifies Zoom meetings that are created without a passcode. Meetings without a passcode are susceptible to Zoombombing. Zoombombing is carried out by taking advantage of Zoom sessions that are not protected with a passcode. Zoombombing refers to the unwanted, disruptive intrusion, generally by Internet trolls and hackers, into a video conference call. In a typical Zoombombing incident, a teleconferencing session is hijacked by the insertion of material that is lewd, obscene, racist, or antisemitic in nature, typically resulting of the shutdown of the session.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://blog.zoom.us/a-message-to-our-users/","https://www.fbi.gov/contact-us/field-offices/boston/news/press-releases/fbi-warns-of-teleconferencing-and-online-classroom-hijacking-during-covid-19-pandemic"],"tags":["Elastic","Application","Communication","Zoom","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["filebeat-*"],"language":"kuery","query":"event.type:creation and event.module:zoom and event.dataset:zoom.webhook and\n event.action:meeting.created and not zoom.meeting.password:*\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"zoom.meeting.password","type":"keyword"}],"setup":"The Zoom Filebeat module or similarly structured data is required to be compatible with this rule."},{"name":"Zoom Meeting with no Passcode v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule identifies Zoom meetings that are created without a passcode. Meetings without a passcode are susceptible to Zoombombing. Zoombombing is carried out by taking advantage of Zoom sessions that are not protected with a passcode. Zoombombing refers to the unwanted, disruptive intrusion, generally by Internet trolls and hackers, into a video conference call. In a typical Zoombombing incident, a teleconferencing session is hijacked by the insertion of material that is lewd, obscene, racist, or antisemitic in nature, typically resulting of the shutdown of the session.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://blog.zoom.us/a-message-to-our-users/","https://www.fbi.gov/contact-us/field-offices/boston/news/press-releases/fbi-warns-of-teleconferencing-and-online-classroom-hijacking-during-covid-19-pandemic"],"tags":["Elastic","Application","Communication","Zoom","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["filebeat-*"],"language":"kuery","query":"event.type:creation and event.module:zoom and event.dataset:zoom.webhook and\n event.action:meeting.created and not zoom.meeting.password:*\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"zoom.meeting.password","type":"keyword"}],"setup":"The Zoom Filebeat module or similarly structured data is required to be compatible with this rule."},{"name":"Zoom Meeting with no Passcode v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule identifies Zoom meetings that are created without a passcode. Meetings without a passcode are susceptible to Zoombombing. Zoombombing is carried out by taking advantage of Zoom sessions that are not protected with a passcode. Zoombombing refers to the unwanted, disruptive intrusion, generally by Internet trolls and hackers, into a video conference call. In a typical Zoombombing incident, a teleconferencing session is hijacked by the insertion of material that is lewd, obscene, racist, or antisemitic in nature, typically resulting of the shutdown of the session.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://blog.zoom.us/a-message-to-our-users/","https://www.fbi.gov/contact-us/field-offices/boston/news/press-releases/fbi-warns-of-teleconferencing-and-online-classroom-hijacking-during-covid-19-pandemic"],"tags":["Elastic","Application","Communication","Zoom","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["filebeat-*"],"language":"kuery","query":"event.type:creation and event.module:zoom and event.dataset:zoom.webhook and\n event.action:meeting.created and not zoom.meeting.password:*\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"zoom.meeting.password","type":"keyword"}],"setup":"The Zoom Filebeat module or similarly structured data is required to be compatible with this rule."}]},"id":"58ac2aa5-6718-427c-a845-5f3ac5af00ba","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/58bc134c-e8d2-4291-a552-b4b3e537c60b.json b/fleet-packages/detection-rules-composite/kibana/security_rule/58bc134c-e8d2-4291-a552-b4b3e537c60b.json new file mode 100644 index 0000000000000..1b9164159f4b5 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/58bc134c-e8d2-4291-a552-b4b3e537c60b.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"58bc134c-e8d2-4291-a552-b4b3e537c60b","versions":[{"name":"Potential Lateral Tool Transfer via SMB Share v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or change of a Windows executable file over network shares. Adversaries may transfer tools or other files between systems in a compromised environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Lateral Tool Transfer via SMB Share\n\nAdversaries can use network shares to host tooling to support the compromise of other hosts in the environment. These tools\ncan include discovery utilities, credential dumpers, malware, etc. Attackers can also leverage file shares that employees\nfrequently access to host malicious files to gain a foothold in other machines.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve the created file and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity can happen legitimately. Consider adding exceptions if it is expected and noisy in your environment.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Review the privileges needed to write to the network share and restrict write access as needed.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1570","name":"Lateral Tool Transfer","reference":"https://attack.mitre.org/techniques/T1570/"},{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=30s\n [network where event.type == \"start\" and process.pid == 4 and destination.port == 445 and\n network.direction : (\"incoming\", \"ingress\") and\n network.transport == \"tcp\" and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ] by process.entity_id\n /* add more executable extensions here if they are not noisy in your environment */\n [file where event.type in (\"creation\", \"change\") and process.pid == 4 and file.extension : (\"exe\", \"dll\", \"bat\", \"cmd\")] by process.entity_id\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"},{"ecs":true,"name":"source.ip","type":"ip"}]},{"name":"Potential Lateral Tool Transfer via SMB Share v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or change of a Windows executable file over network shares. Adversaries may transfer tools or other files between systems in a compromised environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Lateral Tool Transfer via SMB Share\n\nAdversaries can use network shares to host tooling to support the compromise of other hosts in the environment. These tools\ncan include discovery utilities, credential dumpers, malware, etc. Attackers can also leverage file shares that employees\nfrequently access to host malicious files to gain a foothold in other machines.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve the created file and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity can happen legitimately. Consider adding exceptions if it is expected and noisy in your environment.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Review the privileges needed to write to the network share and restrict write access as needed.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1570","name":"Lateral Tool Transfer","reference":"https://attack.mitre.org/techniques/T1570/"},{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=30s\n [network where event.type == \"start\" and process.pid == 4 and destination.port == 445 and\n network.direction : (\"incoming\", \"ingress\") and\n network.transport == \"tcp\" and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ] by process.entity_id\n /* add more executable extensions here if they are not noisy in your environment */\n [file where event.type in (\"creation\", \"change\") and process.pid == 4 and file.extension : (\"exe\", \"dll\", \"bat\", \"cmd\")] by process.entity_id\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"},{"ecs":true,"name":"source.ip","type":"ip"}]},{"name":"Potential Lateral Tool Transfer via SMB Share v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or change of a Windows executable file over network shares. Adversaries may transfer tools or other files between systems in a compromised environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Lateral Tool Transfer via SMB Share\n\nAdversaries can use network shares to host tooling to support the compromise of other hosts in the environment. These tools\ncan include discovery utilities, credential dumpers, malware, etc. Attackers can also leverage file shares that employees\nfrequently access to host malicious files to gain a foothold in other machines.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve the created file and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity can happen legitimately. Consider adding exceptions if it is expected and noisy in your environment.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Review the privileges needed to write to the network share and restrict write access as needed.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1570","name":"Lateral Tool Transfer","reference":"https://attack.mitre.org/techniques/T1570/"},{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=30s\n [network where event.type == \"start\" and process.pid == 4 and destination.port == 445 and\n network.direction : (\"incoming\", \"ingress\") and\n network.transport == \"tcp\" and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ] by process.entity_id\n /* add more executable extensions here if they are not noisy in your environment */\n [file where event.type in (\"creation\", \"change\") and process.pid == 4 and file.extension : (\"exe\", \"dll\", \"bat\", \"cmd\")] by process.entity_id\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"},{"ecs":true,"name":"source.ip","type":"ip"}]}]},"id":"58bc134c-e8d2-4291-a552-b4b3e537c60b","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/58c6d58b-a0d3-412d-b3b8-0981a9400607.json b/fleet-packages/detection-rules-composite/kibana/security_rule/58c6d58b-a0d3-412d-b3b8-0981a9400607.json new file mode 100644 index 0000000000000..d90dbfebd3d12 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/58c6d58b-a0d3-412d-b3b8-0981a9400607.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"58c6d58b-a0d3-412d-b3b8-0981a9400607","versions":[{"name":"Potential Privilege Escalation via InstallerFileTakeOver v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a potential exploitation of InstallerTakeOver (CVE-2021-41379) default PoC execution. Successful exploitation allows an unprivileged user to escalate privileges to SYSTEM.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Privilege Escalation via InstallerFileTakeOver\n\nInstallerFileTakeOver is a weaponized escalation of privilege proof of concept (EoP PoC) to the CVE-2021-41379 vulnerability. Upon successful exploitation, an\nunprivileged user will escalate privileges to SYSTEM/NT AUTHORITY.\n\nThis rule detects the default execution of the PoC, which overwrites the `elevation_service.exe` DACL and copies itself\nto the location to escalate privileges. An attacker is able to still take over any file that is not in use (locked),\nwhich is outside the scope of this rule.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Look for additional processes spawned by the process, command lines, and network communications.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- Verify whether a digital signature exists in the executable, and if it is valid.\n\n### Related rules\n\n- Suspicious DLL Loaded for Persistence or Privilege Escalation - bfeaf89b-a2a7-48a3-817f-e41829dc61ee\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/klinix5/InstallerFileTakeOver"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"/* This rule is compatible with both Sysmon and Elastic Endpoint */\n\nprocess where event.type == \"start\" and\n (?process.Ext.token.integrity_level_name : \"System\" or\n ?winlog.event_data.IntegrityLevel : \"System\") and\n (\n (process.name : \"elevation_service.exe\" and\n not process.pe.original_file_name == \"elevation_service.exe\") or\n\n (process.parent.name : \"elevation_service.exe\" and\n process.name : (\"rundll32.exe\", \"cmd.exe\", \"powershell.exe\"))\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.IntegrityLevel","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Privilege Escalation via InstallerFileTakeOver v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a potential exploitation of InstallerTakeOver (CVE-2021-41379) default PoC execution. Successful exploitation allows an unprivileged user to escalate privileges to SYSTEM.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Privilege Escalation via InstallerFileTakeOver\n\nInstallerFileTakeOver is a weaponized escalation of privilege proof of concept (EoP PoC) to the CVE-2021-41379 vulnerability. Upon successful exploitation, an\nunprivileged user will escalate privileges to SYSTEM/NT AUTHORITY.\n\nThis rule detects the default execution of the PoC, which overwrites the `elevation_service.exe` DACL and copies itself\nto the location to escalate privileges. An attacker is able to still take over any file that is not in use (locked),\nwhich is outside the scope of this rule.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Look for additional processes spawned by the process, command lines, and network communications.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- Verify whether a digital signature exists in the executable, and if it is valid.\n\n### Related rules\n\n- Suspicious DLL Loaded for Persistence or Privilege Escalation - bfeaf89b-a2a7-48a3-817f-e41829dc61ee\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/klinix5/InstallerFileTakeOver"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"/* This rule is compatible with both Sysmon and Elastic Endpoint */\n\nprocess where event.type == \"start\" and\n (?process.Ext.token.integrity_level_name : \"System\" or\n ?winlog.event_data.IntegrityLevel : \"System\") and\n (\n (process.name : \"elevation_service.exe\" and\n not process.pe.original_file_name == \"elevation_service.exe\") or\n\n (process.parent.name : \"elevation_service.exe\" and\n process.name : (\"rundll32.exe\", \"cmd.exe\", \"powershell.exe\"))\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.IntegrityLevel","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Privilege Escalation via InstallerFileTakeOver v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a potential exploitation of InstallerTakeOver (CVE-2021-41379) default PoC execution. Successful exploitation allows an unprivileged user to escalate privileges to SYSTEM.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Privilege Escalation via InstallerFileTakeOver\n\nInstallerFileTakeOver is a weaponized escalation of privilege proof of concept (EoP PoC) to the CVE-2021-41379 vulnerability. Upon successful exploitation, an\nunprivileged user will escalate privileges to SYSTEM/NT AUTHORITY.\n\nThis rule detects the default execution of the PoC, which overwrites the `elevation_service.exe` DACL and copies itself\nto the location to escalate privileges. An attacker is able to still take over any file that is not in use (locked),\nwhich is outside the scope of this rule.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Look for additional processes spawned by the process, command lines, and network communications.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- Verify whether a digital signature exists in the executable, and if it is valid.\n\n### Related rules\n\n- Suspicious DLL Loaded for Persistence or Privilege Escalation - bfeaf89b-a2a7-48a3-817f-e41829dc61ee\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/klinix5/InstallerFileTakeOver"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"/* This rule is compatible with both Sysmon and Elastic Endpoint */\n\nprocess where event.type == \"start\" and\n (?process.Ext.token.integrity_level_name : \"System\" or\n ?winlog.event_data.IntegrityLevel : \"System\") and\n (\n (process.name : \"elevation_service.exe\" and\n not process.pe.original_file_name == \"elevation_service.exe\") or\n\n (process.parent.name : \"elevation_service.exe\" and\n process.name : (\"rundll32.exe\", \"cmd.exe\", \"powershell.exe\"))\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.IntegrityLevel","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"58c6d58b-a0d3-412d-b3b8-0981a9400607","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/5930658c-2107-4afc-91af-e0e55b7f7184.json b/fleet-packages/detection-rules-composite/kibana/security_rule/5930658c-2107-4afc-91af-e0e55b7f7184.json new file mode 100644 index 0000000000000..ca57bc40c59f0 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/5930658c-2107-4afc-91af-e0e55b7f7184.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"5930658c-2107-4afc-91af-e0e55b7f7184","versions":[{"name":"O365 Email Reported by User as Malware or Phish v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the occurrence of emails reported as Phishing or Malware by Users. Security Awareness training is essential to stay ahead of scammers and threat actors, as security products can be bypassed, and the user can still receive a malicious message. Educating users to report suspicious messages can help identify gaps in security controls and prevent malware infections and Business Email Compromise attacks.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate files reported by the users"],"from":"now-30m","references":["https://support.microsoft.com/en-us/office/use-the-report-message-add-in-b5caa9f1-cdf3-4443-af8c-ff724ea719d2?ui=en-us&rs=en-us&ad=us"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"},{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:SecurityComplianceCenter and event.action:AlertTriggered and rule.name:\"Email reported by user as malware or phish\"\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":true,"name":"rule.name","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"O365 Email Reported by User as Malware or Phish v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the occurrence of emails reported as Phishing or Malware by Users. Security Awareness training is essential to stay ahead of scammers and threat actors, as security products can be bypassed, and the user can still receive a malicious message. Educating users to report suspicious messages can help identify gaps in security controls and prevent malware infections and Business Email Compromise attacks.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate files reported by the users"],"from":"now-30m","references":["https://support.microsoft.com/en-us/office/use-the-report-message-add-in-b5caa9f1-cdf3-4443-af8c-ff724ea719d2?ui=en-us&rs=en-us&ad=us"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"},{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:SecurityComplianceCenter and event.action:AlertTriggered and rule.name:\"Email reported by user as malware or phish\"\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":true,"name":"rule.name","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"O365 Email Reported by User as Malware or Phish v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the occurrence of emails reported as Phishing or Malware by Users. Security Awareness training is essential to stay ahead of scammers and threat actors, as security products can be bypassed, and the user can still receive a malicious message. Educating users to report suspicious messages can help identify gaps in security controls and prevent malware infections and Business Email Compromise attacks.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate files reported by the users"],"from":"now-30m","references":["https://support.microsoft.com/en-us/office/use-the-report-message-add-in-b5caa9f1-cdf3-4443-af8c-ff724ea719d2?ui=en-us&rs=en-us&ad=us"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"},{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:SecurityComplianceCenter and event.action:AlertTriggered and rule.name:\"Email reported by user as malware or phish\"\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":true,"name":"rule.name","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"5930658c-2107-4afc-91af-e0e55b7f7184","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/594e0cbf-86cc-45aa-9ff7-ff27db27d3ed.json b/fleet-packages/detection-rules-composite/kibana/security_rule/594e0cbf-86cc-45aa-9ff7-ff27db27d3ed.json new file mode 100644 index 0000000000000..78b24673e2798 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/594e0cbf-86cc-45aa-9ff7-ff27db27d3ed.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"594e0cbf-86cc-45aa-9ff7-ff27db27d3ed","versions":[{"name":"AWS CloudTrail Log Created v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an AWS log trail that specifies the settings for delivery of log data.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trail creations may be made by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Trail creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_CreateTrail.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudtrail/create-trail.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1530","name":"Data from Cloud Storage Object","reference":"https://attack.mitre.org/techniques/T1530/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:CreateTrail and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS CloudTrail Log Created v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an AWS log trail that specifies the settings for delivery of log data.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trail creations may be made by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Trail creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_CreateTrail.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudtrail/create-trail.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1530","name":"Data from Cloud Storage Object","reference":"https://attack.mitre.org/techniques/T1530/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:CreateTrail and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS CloudTrail Log Created v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an AWS log trail that specifies the settings for delivery of log data.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trail creations may be made by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Trail creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_CreateTrail.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudtrail/create-trail.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1530","name":"Data from Cloud Storage Object","reference":"https://attack.mitre.org/techniques/T1530/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:CreateTrail and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"594e0cbf-86cc-45aa-9ff7-ff27db27d3ed","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/59756272-1998-4b8c-be14-e287035c4d10.json b/fleet-packages/detection-rules-composite/kibana/security_rule/59756272-1998-4b8c-be14-e287035c4d10.json new file mode 100644 index 0000000000000..227e2bbdb64bc --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/59756272-1998-4b8c-be14-e287035c4d10.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"59756272-1998-4b8c-be14-e287035c4d10","versions":[{"name":"Unusual Linux System Owner or User Discovery Activity v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for commands related to system user or owner discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used to engage in system owner or user discovery in order to identify currently active or primary users of a system. This may be a precursor to additional discovery, credential dumping or privilege elevation activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user command activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1033","name":"System Owner/User Discovery","reference":"https://attack.mitre.org/techniques/T1033/"}]}],"anomaly_threshold":75,"machine_learning_job_id":["v3_linux_system_user_discovery"],"type":"machine_learning"},{"name":"Unusual Linux System Owner or User Discovery Activity v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for commands related to system user or owner discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used to engage in system owner or user discovery in order to identify currently active or primary users of a system. This may be a precursor to additional discovery, credential dumping or privilege elevation activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user command activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1033","name":"System Owner/User Discovery","reference":"https://attack.mitre.org/techniques/T1033/"}]}],"anomaly_threshold":75,"machine_learning_job_id":["v3_linux_system_user_discovery"],"type":"machine_learning"},{"name":"Unusual Linux System Owner or User Discovery Activity v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for commands related to system user or owner discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used to engage in system owner or user discovery in order to identify currently active or primary users of a system. This may be a precursor to additional discovery, credential dumping or privilege elevation activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user command activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1033","name":"System Owner/User Discovery","reference":"https://attack.mitre.org/techniques/T1033/"}]}],"anomaly_threshold":75,"machine_learning_job_id":["v3_linux_system_user_discovery"],"type":"machine_learning"}]},"id":"59756272-1998-4b8c-be14-e287035c4d10","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/5a14d01d-7ac8-4545-914c-b687c2cf66b3.json b/fleet-packages/detection-rules-composite/kibana/security_rule/5a14d01d-7ac8-4545-914c-b687c2cf66b3.json new file mode 100644 index 0000000000000..db42d86da2d11 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/5a14d01d-7ac8-4545-914c-b687c2cf66b3.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"5a14d01d-7ac8-4545-914c-b687c2cf66b3","versions":[{"name":"UAC Bypass Attempt via Privileged IFileOperation COM Interface v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to bypass User Account Control (UAC) via DLL side-loading. Attackers may attempt to bypass UAC to stealthily execute code with elevated permissions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/hfiref0x/UACME","https://www.elastic.co/security-labs/exploring-windows-uac-bypasses-techniques-and-detection-strategies"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"file where event.type : \"change\" and process.name : \"dllhost.exe\" and\n /* Known modules names side loaded into process running with high or system integrity level for UAC Bypass, update here for new modules */\n file.name : (\"wow64log.dll\", \"comctl32.dll\", \"DismCore.dll\", \"OskSupport.dll\", \"duser.dll\", \"Accessibility.ni.dll\") and\n /* has no impact on rule logic just to avoid OS install related FPs */\n not file.path : (\"C:\\\\Windows\\\\SoftwareDistribution\\\\*\", \"C:\\\\Windows\\\\WinSxS\\\\*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"UAC Bypass Attempt via Privileged IFileOperation COM Interface v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to bypass User Account Control (UAC) via DLL side-loading. Attackers may attempt to bypass UAC to stealthily execute code with elevated permissions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/hfiref0x/UACME","https://www.elastic.co/security-labs/exploring-windows-uac-bypasses-techniques-and-detection-strategies"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"file where event.type : \"change\" and process.name : \"dllhost.exe\" and\n /* Known modules names side loaded into process running with high or system integrity level for UAC Bypass, update here for new modules */\n file.name : (\"wow64log.dll\", \"comctl32.dll\", \"DismCore.dll\", \"OskSupport.dll\", \"duser.dll\", \"Accessibility.ni.dll\") and\n /* has no impact on rule logic just to avoid OS install related FPs */\n not file.path : (\"C:\\\\Windows\\\\SoftwareDistribution\\\\*\", \"C:\\\\Windows\\\\WinSxS\\\\*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"UAC Bypass Attempt via Privileged IFileOperation COM Interface v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to bypass User Account Control (UAC) via DLL side-loading. Attackers may attempt to bypass UAC to stealthily execute code with elevated permissions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/hfiref0x/UACME","https://www.elastic.co/security-labs/exploring-windows-uac-bypasses-techniques-and-detection-strategies"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"file where event.type : \"change\" and process.name : \"dllhost.exe\" and\n /* Known modules names side loaded into process running with high or system integrity level for UAC Bypass, update here for new modules */\n file.name : (\"wow64log.dll\", \"comctl32.dll\", \"DismCore.dll\", \"OskSupport.dll\", \"duser.dll\", \"Accessibility.ni.dll\") and\n /* has no impact on rule logic just to avoid OS install related FPs */\n not file.path : (\"C:\\\\Windows\\\\SoftwareDistribution\\\\*\", \"C:\\\\Windows\\\\WinSxS\\\\*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"5a14d01d-7ac8-4545-914c-b687c2cf66b3","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/5ae4e6f8-d1bf-40fa-96ba-e29645e1e4dc.json b/fleet-packages/detection-rules-composite/kibana/security_rule/5ae4e6f8-d1bf-40fa-96ba-e29645e1e4dc.json new file mode 100644 index 0000000000000..8d6e8701943ce --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/5ae4e6f8-d1bf-40fa-96ba-e29645e1e4dc.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"5ae4e6f8-d1bf-40fa-96ba-e29645e1e4dc","versions":[{"name":"Remote SSH Login Enabled via systemsetup Command v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects use of the systemsetup command to enable remote SSH Login.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://documents.trendmicro.com/assets/pdf/XCSSET_Technical_Brief.pdf","https://ss64.com/osx/systemsetup.html","https://support.apple.com/guide/remote-desktop/about-systemsetup-apd95406b8d/mac"],"tags":["Elastic","Host","macOS","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.004","name":"SSH","reference":"https://attack.mitre.org/techniques/T1021/004/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:systemsetup and\n process.args:(\"-setremotelogin\" and on) and\n not process.parent.executable : /usr/local/jamf/bin/jamf\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},{"name":"Remote SSH Login Enabled via systemsetup Command v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects use of the systemsetup command to enable remote SSH Login.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://documents.trendmicro.com/assets/pdf/XCSSET_Technical_Brief.pdf","https://ss64.com/osx/systemsetup.html","https://support.apple.com/guide/remote-desktop/about-systemsetup-apd95406b8d/mac"],"tags":["Elastic","Host","macOS","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.004","name":"SSH","reference":"https://attack.mitre.org/techniques/T1021/004/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:systemsetup and\n process.args:(\"-setremotelogin\" and on) and\n not process.parent.executable : /usr/local/jamf/bin/jamf\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},{"name":"Remote SSH Login Enabled via systemsetup Command v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects use of the systemsetup command to enable remote SSH Login.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://documents.trendmicro.com/assets/pdf/XCSSET_Technical_Brief.pdf","https://ss64.com/osx/systemsetup.html","https://support.apple.com/guide/remote-desktop/about-systemsetup-apd95406b8d/mac"],"tags":["Elastic","Host","macOS","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.004","name":"SSH","reference":"https://attack.mitre.org/techniques/T1021/004/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:systemsetup and\n process.args:(\"-setremotelogin\" and on) and\n not process.parent.executable : /usr/local/jamf/bin/jamf\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]}]},"id":"5ae4e6f8-d1bf-40fa-96ba-e29645e1e4dc","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/5aee924b-6ceb-4633-980e-1bde8cdb40c5.json b/fleet-packages/detection-rules-composite/kibana/security_rule/5aee924b-6ceb-4633-980e-1bde8cdb40c5.json new file mode 100644 index 0000000000000..d9a7a998fa62f --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/5aee924b-6ceb-4633-980e-1bde8cdb40c5.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"5aee924b-6ceb-4633-980e-1bde8cdb40c5","versions":[{"name":"Potential Secure File Deletion via SDelete Utility v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects file name patterns generated by the use of Sysinternals SDelete utility to securely delete a file via multiple file overwrite and rename operations.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\nVerify process details such as command line and hash to confirm this activity legitimacy.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.004","name":"File Deletion","reference":"https://attack.mitre.org/techniques/T1070/004/"}]}]}],"language":"eql","query":"file where event.type == \"change\" and file.name : \"*AAA.AAA\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Secure File Deletion via SDelete Utility v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects file name patterns generated by the use of Sysinternals SDelete utility to securely delete a file via multiple file overwrite and rename operations.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\nVerify process details such as command line and hash to confirm this activity legitimacy.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.004","name":"File Deletion","reference":"https://attack.mitre.org/techniques/T1070/004/"}]}]}],"language":"eql","query":"file where event.type == \"change\" and file.name : \"*AAA.AAA\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Secure File Deletion via SDelete Utility v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects file name patterns generated by the use of Sysinternals SDelete utility to securely delete a file via multiple file overwrite and rename operations.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\nVerify process details such as command line and hash to confirm this activity legitimacy.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.004","name":"File Deletion","reference":"https://attack.mitre.org/techniques/T1070/004/"}]}]}],"language":"eql","query":"file where event.type == \"change\" and file.name : \"*AAA.AAA\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"5aee924b-6ceb-4633-980e-1bde8cdb40c5","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/5b03c9fb-9945-4d2f-9568-fd690fee3fba.json b/fleet-packages/detection-rules-composite/kibana/security_rule/5b03c9fb-9945-4d2f-9568-fd690fee3fba.json new file mode 100644 index 0000000000000..5d5bd09fa8228 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/5b03c9fb-9945-4d2f-9568-fd690fee3fba.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"5b03c9fb-9945-4d2f-9568-fd690fee3fba","versions":[{"name":"Virtual Machine Fingerprinting v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary may attempt to get detailed information about the operating system and hardware. This rule identifies common locations used to discover virtual machine hardware by a non-root user. This technique has been used by the Pupy RAT and other malware.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain tools or automated software may enumerate hardware information. These tools can be exempted via user name or process arguments to eliminate potential noise."],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.args:(\"/sys/class/dmi/id/bios_version\" or\n \"/sys/class/dmi/id/product_name\" or\n \"/sys/class/dmi/id/chassis_vendor\" or\n \"/proc/scsi/scsi\" or\n \"/proc/ide/hd0/model\") and\n not user.name:root\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},{"name":"Virtual Machine Fingerprinting v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary may attempt to get detailed information about the operating system and hardware. This rule identifies common locations used to discover virtual machine hardware by a non-root user. This technique has been used by the Pupy RAT and other malware.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain tools or automated software may enumerate hardware information. These tools can be exempted via user name or process arguments to eliminate potential noise."],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.args:(\"/sys/class/dmi/id/bios_version\" or\n \"/sys/class/dmi/id/product_name\" or\n \"/sys/class/dmi/id/chassis_vendor\" or\n \"/proc/scsi/scsi\" or\n \"/proc/ide/hd0/model\") and\n not user.name:root\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},{"name":"Virtual Machine Fingerprinting v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary may attempt to get detailed information about the operating system and hardware. This rule identifies common locations used to discover virtual machine hardware by a non-root user. This technique has been used by the Pupy RAT and other malware.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain tools or automated software may enumerate hardware information. These tools can be exempted via user name or process arguments to eliminate potential noise."],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.args:(\"/sys/class/dmi/id/bios_version\" or\n \"/sys/class/dmi/id/product_name\" or\n \"/sys/class/dmi/id/chassis_vendor\" or\n \"/proc/scsi/scsi\" or\n \"/proc/ide/hd0/model\") and\n not user.name:root\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]}]},"id":"5b03c9fb-9945-4d2f-9568-fd690fee3fba","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/5bb4a95d-5a08-48eb-80db-4c3a63ec78a8.json b/fleet-packages/detection-rules-composite/kibana/security_rule/5bb4a95d-5a08-48eb-80db-4c3a63ec78a8.json new file mode 100644 index 0000000000000..0ba511c67a8d0 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/5bb4a95d-5a08-48eb-80db-4c3a63ec78a8.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"5bb4a95d-5a08-48eb-80db-4c3a63ec78a8","versions":[{"name":"Suspicious PrintSpooler Service Executable File Creation v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to exploit privilege escalation vulnerabilities related to the Print Spooler service. For more information refer to the following CVE's - CVE-2020-1048, CVE-2020-1337 and CVE-2020-1300 and verify that the impacted system is patched.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://voidsec.com/cve-2020-1337-printdemon-is-dead-long-live-printdemon/","https://www.thezdi.com/blog/2020/7/8/cve-2020-1300-remote-code-execution-through-microsoft-windows-cab-files"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and process.name : \"spoolsv.exe\" and\n file.extension : (\"exe\", \"dll\") and\n not file.path : (\"?:\\\\Windows\\\\System32\\\\spool\\\\*\", \"?:\\\\Windows\\\\Temp\\\\*\", \"?:\\\\Users\\\\*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious PrintSpooler Service Executable File Creation v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to exploit privilege escalation vulnerabilities related to the Print Spooler service. For more information refer to the following CVE's - CVE-2020-1048, CVE-2020-1337 and CVE-2020-1300 and verify that the impacted system is patched.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://voidsec.com/cve-2020-1337-printdemon-is-dead-long-live-printdemon/","https://www.thezdi.com/blog/2020/7/8/cve-2020-1300-remote-code-execution-through-microsoft-windows-cab-files"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and process.name : \"spoolsv.exe\" and\n file.extension : (\"exe\", \"dll\") and\n not file.path : (\"?:\\\\Windows\\\\System32\\\\spool\\\\*\", \"?:\\\\Windows\\\\Temp\\\\*\", \"?:\\\\Users\\\\*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious PrintSpooler Service Executable File Creation v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to exploit privilege escalation vulnerabilities related to the Print Spooler service. For more information refer to the following CVE's - CVE-2020-1048, CVE-2020-1337 and CVE-2020-1300 and verify that the impacted system is patched.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://voidsec.com/cve-2020-1337-printdemon-is-dead-long-live-printdemon/","https://www.thezdi.com/blog/2020/7/8/cve-2020-1300-remote-code-execution-through-microsoft-windows-cab-files"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and process.name : \"spoolsv.exe\" and\n file.extension : (\"exe\", \"dll\") and\n not file.path : (\"?:\\\\Windows\\\\System32\\\\spool\\\\*\", \"?:\\\\Windows\\\\Temp\\\\*\", \"?:\\\\Users\\\\*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"5bb4a95d-5a08-48eb-80db-4c3a63ec78a8","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/5beaebc1-cc13-4bfc-9949-776f9e0dc318.json b/fleet-packages/detection-rules-composite/kibana/security_rule/5beaebc1-cc13-4bfc-9949-776f9e0dc318.json new file mode 100644 index 0000000000000..ca1c1e807d837 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/5beaebc1-cc13-4bfc-9949-776f9e0dc318.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"5beaebc1-cc13-4bfc-9949-776f9e0dc318","versions":[{"name":"AWS WAF Rule or Rule Group Deletion v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a specified AWS Web Application Firewall (WAF) rule or rule group.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["WAF rules or rule groups may be deleted by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Rule deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/waf/delete-rule-group.html","https://docs.aws.amazon.com/waf/latest/APIReference/API_waf_DeleteRuleGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:(waf.amazonaws.com or waf-regional.amazonaws.com or wafv2.amazonaws.com) and event.action:(DeleteRule or DeleteRuleGroup) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS WAF Rule or Rule Group Deletion v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a specified AWS Web Application Firewall (WAF) rule or rule group.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["WAF rules or rule groups may be deleted by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Rule deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/waf/delete-rule-group.html","https://docs.aws.amazon.com/waf/latest/APIReference/API_waf_DeleteRuleGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:(waf.amazonaws.com or waf-regional.amazonaws.com or wafv2.amazonaws.com) and event.action:(DeleteRule or DeleteRuleGroup) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS WAF Rule or Rule Group Deletion v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a specified AWS Web Application Firewall (WAF) rule or rule group.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["WAF rules or rule groups may be deleted by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Rule deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/waf/delete-rule-group.html","https://docs.aws.amazon.com/waf/latest/APIReference/API_waf_DeleteRuleGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:(waf.amazonaws.com or waf-regional.amazonaws.com or wafv2.amazonaws.com) and event.action:(DeleteRule or DeleteRuleGroup) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"5beaebc1-cc13-4bfc-9949-776f9e0dc318","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/5c983105-4681-46c3-9890-0c66d05e776b.json b/fleet-packages/detection-rules-composite/kibana/security_rule/5c983105-4681-46c3-9890-0c66d05e776b.json new file mode 100644 index 0000000000000..02e78ad2b488a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/5c983105-4681-46c3-9890-0c66d05e776b.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"5c983105-4681-46c3-9890-0c66d05e776b","versions":[{"name":"Unusual Linux Process Discovery Activity v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for commands related to system process discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used by a threat actor to engage in system process discovery in order to increase their understanding of software applications running on a target host or network. This may be a precursor to selection of a persistence mechanism or a method of privilege elevation.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user command activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1057","name":"Process Discovery","reference":"https://attack.mitre.org/techniques/T1057/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_system_process_discovery"],"type":"machine_learning"},{"name":"Unusual Linux Process Discovery Activity v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for commands related to system process discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used by a threat actor to engage in system process discovery in order to increase their understanding of software applications running on a target host or network. This may be a precursor to selection of a persistence mechanism or a method of privilege elevation.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user command activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1057","name":"Process Discovery","reference":"https://attack.mitre.org/techniques/T1057/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_system_process_discovery"],"type":"machine_learning"},{"name":"Unusual Linux Process Discovery Activity v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for commands related to system process discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used by a threat actor to engage in system process discovery in order to increase their understanding of software applications running on a target host or network. This may be a precursor to selection of a persistence mechanism or a method of privilege elevation.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user command activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1057","name":"Process Discovery","reference":"https://attack.mitre.org/techniques/T1057/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_system_process_discovery"],"type":"machine_learning"}]},"id":"5c983105-4681-46c3-9890-0c66d05e776b","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/5cd55388-a19c-47c7-8ec4-f41656c2fded.json b/fleet-packages/detection-rules-composite/kibana/security_rule/5cd55388-a19c-47c7-8ec4-f41656c2fded.json new file mode 100644 index 0000000000000..f28c89053cad5 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/5cd55388-a19c-47c7-8ec4-f41656c2fded.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"5cd55388-a19c-47c7-8ec4-f41656c2fded","versions":[{"name":"Outbound Scheduled Task Activity via PowerShell v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the PowerShell process loading the Task Scheduler COM DLL followed by an outbound RPC network connection within a short time period. This may indicate lateral movement or remote discovery via scheduled tasks.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","references":["https://www.volexity.com/blog/2020/12/14/dark-halo-leverages-solarwinds-compromise-to-breach-organizations/"],"tags":["Elastic","Host","Windows","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan = 5s\n [any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : \"taskschd.dll\" or file.name : \"taskschd.dll\") and process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\")]\n [network where process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and destination.port == 135 and not destination.address in (\"127.0.0.1\", \"::1\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.address","type":"keyword"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Outbound Scheduled Task Activity via PowerShell v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the PowerShell process loading the Task Scheduler COM DLL followed by an outbound RPC network connection within a short time period. This may indicate lateral movement or remote discovery via scheduled tasks.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","references":["https://www.volexity.com/blog/2020/12/14/dark-halo-leverages-solarwinds-compromise-to-breach-organizations/"],"tags":["Elastic","Host","Windows","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan = 5s\n [any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : \"taskschd.dll\" or file.name : \"taskschd.dll\") and process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\")]\n [network where process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and destination.port == 135 and not destination.address in (\"127.0.0.1\", \"::1\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.address","type":"keyword"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Outbound Scheduled Task Activity via PowerShell v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the PowerShell process loading the Task Scheduler COM DLL followed by an outbound RPC network connection within a short time period. This may indicate lateral movement or remote discovery via scheduled tasks.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","references":["https://www.volexity.com/blog/2020/12/14/dark-halo-leverages-solarwinds-compromise-to-breach-organizations/"],"tags":["Elastic","Host","Windows","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan = 5s\n [any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : \"taskschd.dll\" or file.name : \"taskschd.dll\") and process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\")]\n [network where process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and destination.port == 135 and not destination.address in (\"127.0.0.1\", \"::1\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.address","type":"keyword"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"5cd55388-a19c-47c7-8ec4-f41656c2fded","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/5cd8e1f7-0050-4afc-b2df-904e40b2f5ae.json b/fleet-packages/detection-rules-composite/kibana/security_rule/5cd8e1f7-0050-4afc-b2df-904e40b2f5ae.json new file mode 100644 index 0000000000000..a0d91637114c8 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/5cd8e1f7-0050-4afc-b2df-904e40b2f5ae.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"5cd8e1f7-0050-4afc-b2df-904e40b2f5ae","versions":[{"name":"User Added to Privileged Group v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a user being added to a privileged group in Active Directory. Privileged accounts and groups in Active Directory are those to which powerful rights, privileges, and permissions are granted that allow them to perform nearly any action in Active Directory and on domain-joined systems.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating User Added to Privileged Group in Active Directory\n\nPrivileged accounts and groups in Active Directory are those to which powerful rights, privileges, and permissions are\ngranted that allow them to perform nearly any action in Active Directory and on domain-joined systems.\n\nAttackers can add users to privileged groups to maintain a level of access if their other privileged accounts are\nuncovered by the security team. This allows them to keep operating after the security team discovers abused accounts.\n\nThis rule monitors events related to a user being added to a privileged group.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should manage members of this group.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- This attack abuses a legitimate Active Directory mechanism, so it is important to determine whether the activity is\nlegitimate, if the administrator is authorized to perform this operation, and if there is a need to grant the account\nthis level of privilege.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the admin is not aware of the operation, activate your Active Directory incident response plan.\n- If the user does not need the administrator privileges, remove the account from the privileged group.\n- Review the privileges of the administrator account that performed the action.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Skoetting"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/appendix-b--privileged-accounts-and-groups-in-active-directory"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"language":"eql","query":"iam where event.action == \"added-member-to-group\" and\n group.name : (\"Admin*\",\n \"Local Administrators\",\n \"Domain Admins\",\n \"Enterprise Admins\",\n \"Backup Admins\",\n \"Schema Admins\",\n \"DnsAdmins\",\n \"Exchange Organization Administrators\")\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"group.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"User Added to Privileged Group v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a user being added to a privileged group in Active Directory. Privileged accounts and groups in Active Directory are those to which powerful rights, privileges, and permissions are granted that allow them to perform nearly any action in Active Directory and on domain-joined systems.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating User Added to Privileged Group in Active Directory\n\nPrivileged accounts and groups in Active Directory are those to which powerful rights, privileges, and permissions are\ngranted that allow them to perform nearly any action in Active Directory and on domain-joined systems.\n\nAttackers can add users to privileged groups to maintain a level of access if their other privileged accounts are\nuncovered by the security team. This allows them to keep operating after the security team discovers abused accounts.\n\nThis rule monitors events related to a user being added to a privileged group.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should manage members of this group.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- This attack abuses a legitimate Active Directory mechanism, so it is important to determine whether the activity is\nlegitimate, if the administrator is authorized to perform this operation, and if there is a need to grant the account\nthis level of privilege.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the admin is not aware of the operation, activate your Active Directory incident response plan.\n- If the user does not need the administrator privileges, remove the account from the privileged group.\n- Review the privileges of the administrator account that performed the action.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Skoetting"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/appendix-b--privileged-accounts-and-groups-in-active-directory"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"language":"eql","query":"iam where event.action == \"added-member-to-group\" and\n group.name : (\"Admin*\",\n \"Local Administrators\",\n \"Domain Admins\",\n \"Enterprise Admins\",\n \"Backup Admins\",\n \"Schema Admins\",\n \"DnsAdmins\",\n \"Exchange Organization Administrators\")\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"group.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"User Added to Privileged Group v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a user being added to a privileged group in Active Directory. Privileged accounts and groups in Active Directory are those to which powerful rights, privileges, and permissions are granted that allow them to perform nearly any action in Active Directory and on domain-joined systems.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating User Added to Privileged Group in Active Directory\n\nPrivileged accounts and groups in Active Directory are those to which powerful rights, privileges, and permissions are\ngranted that allow them to perform nearly any action in Active Directory and on domain-joined systems.\n\nAttackers can add users to privileged groups to maintain a level of access if their other privileged accounts are\nuncovered by the security team. This allows them to keep operating after the security team discovers abused accounts.\n\nThis rule monitors events related to a user being added to a privileged group.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should manage members of this group.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- This attack abuses a legitimate Active Directory mechanism, so it is important to determine whether the activity is\nlegitimate, if the administrator is authorized to perform this operation, and if there is a need to grant the account\nthis level of privilege.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the admin is not aware of the operation, activate your Active Directory incident response plan.\n- If the user does not need the administrator privileges, remove the account from the privileged group.\n- Review the privileges of the administrator account that performed the action.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Skoetting"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/appendix-b--privileged-accounts-and-groups-in-active-directory"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"language":"eql","query":"iam where event.action == \"added-member-to-group\" and\n group.name : (\"Admin*\",\n \"Local Administrators\",\n \"Domain Admins\",\n \"Enterprise Admins\",\n \"Backup Admins\",\n \"Schema Admins\",\n \"DnsAdmins\",\n \"Exchange Organization Administrators\")\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"group.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"5cd8e1f7-0050-4afc-b2df-904e40b2f5ae","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/5cf6397e-eb91-4f31-8951-9f0eaa755a31.json b/fleet-packages/detection-rules-composite/kibana/security_rule/5cf6397e-eb91-4f31-8951-9f0eaa755a31.json new file mode 100644 index 0000000000000..b6f8e70ee6e23 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/5cf6397e-eb91-4f31-8951-9f0eaa755a31.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"5cf6397e-eb91-4f31-8951-9f0eaa755a31","versions":[{"name":"Persistence via PowerShell profile v1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of a PowerShell profile. PowerShell profile is a script that is executed when PowerShell starts to customize the user environment, which can be abused by attackers to persist in a environment where PowerShell is common.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_profiles","https://www.welivesecurity.com/2019/05/29/turla-powershell-usage/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.013","name":"PowerShell Profile","reference":"https://attack.mitre.org/techniques/T1546/013/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path : (\"?:\\\\Users\\\\*\\\\Documents\\\\WindowsPowerShell\\\\*\",\n \"?:\\\\Users\\\\*\\\\Documents\\\\PowerShell\\\\*\",\n \"?:\\\\Windows\\\\System32\\\\WindowsPowerShell\\\\*\") and\n file.name : (\"profile.ps1\", \"Microsoft.Powershell_profile.ps1\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}]},{"name":"Persistence via PowerShell profile v1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of a PowerShell profile. PowerShell profile is a script that is executed when PowerShell starts to customize the user environment, which can be abused by attackers to persist in a environment where PowerShell is common.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_profiles","https://www.welivesecurity.com/2019/05/29/turla-powershell-usage/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.013","name":"PowerShell Profile","reference":"https://attack.mitre.org/techniques/T1546/013/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path : (\"?:\\\\Users\\\\*\\\\Documents\\\\WindowsPowerShell\\\\*\",\n \"?:\\\\Users\\\\*\\\\Documents\\\\PowerShell\\\\*\",\n \"?:\\\\Windows\\\\System32\\\\WindowsPowerShell\\\\*\") and\n file.name : (\"profile.ps1\", \"Microsoft.Powershell_profile.ps1\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}]},{"name":"Persistence via PowerShell profile v1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of a PowerShell profile. PowerShell profile is a script that is executed when PowerShell starts to customize the user environment, which can be abused by attackers to persist in a environment where PowerShell is common.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_profiles","https://www.welivesecurity.com/2019/05/29/turla-powershell-usage/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.013","name":"PowerShell Profile","reference":"https://attack.mitre.org/techniques/T1546/013/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path : (\"?:\\\\Users\\\\*\\\\Documents\\\\WindowsPowerShell\\\\*\",\n \"?:\\\\Users\\\\*\\\\Documents\\\\PowerShell\\\\*\",\n \"?:\\\\Windows\\\\System32\\\\WindowsPowerShell\\\\*\") and\n file.name : (\"profile.ps1\", \"Microsoft.Powershell_profile.ps1\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}]}]},"id":"5cf6397e-eb91-4f31-8951-9f0eaa755a31","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/5d0265bf-dea9-41a9-92ad-48a8dcd05080.json b/fleet-packages/detection-rules-composite/kibana/security_rule/5d0265bf-dea9-41a9-92ad-48a8dcd05080.json new file mode 100644 index 0000000000000..2dc6abd3a5186 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/5d0265bf-dea9-41a9-92ad-48a8dcd05080.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"5d0265bf-dea9-41a9-92ad-48a8dcd05080","versions":[{"name":"Persistence via Login or Logout Hook v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the Defaults command to install a login or logoff hook in MacOS. An adversary may abuse this capability to establish persistence in an environment by inserting code to be executed at login or logout.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.virusbulletin.com/uploads/pdf/conference_slides/2014/Wardle-VB2014.pdf","https://www.manpagez.com/man/1/defaults/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1037","name":"Boot or Logon Initialization Scripts","reference":"https://attack.mitre.org/techniques/T1037/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name == \"defaults\" and process.args == \"write\" and process.args in (\"LoginHook\", \"LogoutHook\") and\n not process.args :\n (\n \"Support/JAMF/ManagementFrameworkScripts/logouthook.sh\",\n \"Support/JAMF/ManagementFrameworkScripts/loginhook.sh\",\n \"/Library/Application Support/JAMF/ManagementFrameworkScripts/logouthook.sh\",\n \"/Library/Application Support/JAMF/ManagementFrameworkScripts/loginhook.sh\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Persistence via Login or Logout Hook v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the Defaults command to install a login or logoff hook in MacOS. An adversary may abuse this capability to establish persistence in an environment by inserting code to be executed at login or logout.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.virusbulletin.com/uploads/pdf/conference_slides/2014/Wardle-VB2014.pdf","https://www.manpagez.com/man/1/defaults/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1037","name":"Boot or Logon Initialization Scripts","reference":"https://attack.mitre.org/techniques/T1037/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name == \"defaults\" and process.args == \"write\" and process.args in (\"LoginHook\", \"LogoutHook\") and\n not process.args :\n (\n \"Support/JAMF/ManagementFrameworkScripts/logouthook.sh\",\n \"Support/JAMF/ManagementFrameworkScripts/loginhook.sh\",\n \"/Library/Application Support/JAMF/ManagementFrameworkScripts/logouthook.sh\",\n \"/Library/Application Support/JAMF/ManagementFrameworkScripts/loginhook.sh\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Persistence via Login or Logout Hook v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the Defaults command to install a login or logoff hook in MacOS. An adversary may abuse this capability to establish persistence in an environment by inserting code to be executed at login or logout.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.virusbulletin.com/uploads/pdf/conference_slides/2014/Wardle-VB2014.pdf","https://www.manpagez.com/man/1/defaults/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1037","name":"Boot or Logon Initialization Scripts","reference":"https://attack.mitre.org/techniques/T1037/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name == \"defaults\" and process.args == \"write\" and process.args in (\"LoginHook\", \"LogoutHook\") and\n not process.args :\n (\n \"Support/JAMF/ManagementFrameworkScripts/logouthook.sh\",\n \"Support/JAMF/ManagementFrameworkScripts/loginhook.sh\",\n \"/Library/Application Support/JAMF/ManagementFrameworkScripts/logouthook.sh\",\n \"/Library/Application Support/JAMF/ManagementFrameworkScripts/loginhook.sh\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"5d0265bf-dea9-41a9-92ad-48a8dcd05080","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/5d1d6907-0747-4d5d-9b24-e4a18853dc0a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/5d1d6907-0747-4d5d-9b24-e4a18853dc0a.json new file mode 100644 index 0000000000000..6079382eaeb73 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/5d1d6907-0747-4d5d-9b24-e4a18853dc0a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"5d1d6907-0747-4d5d-9b24-e4a18853dc0a","versions":[{"name":"Suspicious Execution via Scheduled Task v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution of a suspicious program via scheduled tasks by looking at process lineage and command line usage.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate scheduled tasks running third party software."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n /* Schedule service cmdline on Win10+ */\n process.parent.name : \"svchost.exe\" and process.parent.args : \"Schedule\" and\n /* add suspicious programs here */\n process.pe.original_file_name in\n (\n \"cscript.exe\",\n \"wscript.exe\",\n \"PowerShell.EXE\",\n \"Cmd.Exe\",\n \"MSHTA.EXE\",\n \"RUNDLL32.EXE\",\n \"REGSVR32.EXE\",\n \"MSBuild.exe\",\n \"InstallUtil.exe\",\n \"RegAsm.exe\",\n \"RegSvcs.exe\",\n \"msxsl.exe\",\n \"CONTROL.EXE\",\n \"EXPLORER.EXE\",\n \"Microsoft.Workflow.Compiler.exe\",\n \"msiexec.exe\"\n ) and\n /* add suspicious paths here */\n process.args : (\n \"C:\\\\Users\\\\*\",\n \"C:\\\\ProgramData\\\\*\",\n \"C:\\\\Windows\\\\Temp\\\\*\",\n \"C:\\\\Windows\\\\Tasks\\\\*\",\n \"C:\\\\PerfLogs\\\\*\",\n \"C:\\\\Intel\\\\*\",\n \"C:\\\\Windows\\\\Debug\\\\*\",\n \"C:\\\\HP\\\\*\") and\n\n not (process.name : \"cmd.exe\" and process.args : \"?:\\\\*.bat\" and process.working_directory : \"?:\\\\Windows\\\\System32\\\\\") and\n not (process.name : \"cscript.exe\" and process.args : \"?:\\\\Windows\\\\system32\\\\calluxxprovider.vbs\") and\n not (process.name : \"powershell.exe\" and process.args : (\"-File\", \"-PSConsoleFile\") and user.id : \"S-1-5-18\") and\n not (process.name : \"msiexec.exe\" and user.id : \"S-1-5-18\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"process.working_directory","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious Execution via Scheduled Task v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution of a suspicious program via scheduled tasks by looking at process lineage and command line usage.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate scheduled tasks running third party software."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n /* Schedule service cmdline on Win10+ */\n process.parent.name : \"svchost.exe\" and process.parent.args : \"Schedule\" and\n /* add suspicious programs here */\n process.pe.original_file_name in\n (\n \"cscript.exe\",\n \"wscript.exe\",\n \"PowerShell.EXE\",\n \"Cmd.Exe\",\n \"MSHTA.EXE\",\n \"RUNDLL32.EXE\",\n \"REGSVR32.EXE\",\n \"MSBuild.exe\",\n \"InstallUtil.exe\",\n \"RegAsm.exe\",\n \"RegSvcs.exe\",\n \"msxsl.exe\",\n \"CONTROL.EXE\",\n \"EXPLORER.EXE\",\n \"Microsoft.Workflow.Compiler.exe\",\n \"msiexec.exe\"\n ) and\n /* add suspicious paths here */\n process.args : (\n \"C:\\\\Users\\\\*\",\n \"C:\\\\ProgramData\\\\*\",\n \"C:\\\\Windows\\\\Temp\\\\*\",\n \"C:\\\\Windows\\\\Tasks\\\\*\",\n \"C:\\\\PerfLogs\\\\*\",\n \"C:\\\\Intel\\\\*\",\n \"C:\\\\Windows\\\\Debug\\\\*\",\n \"C:\\\\HP\\\\*\") and\n\n not (process.name : \"cmd.exe\" and process.args : \"?:\\\\*.bat\" and process.working_directory : \"?:\\\\Windows\\\\System32\\\\\") and\n not (process.name : \"cscript.exe\" and process.args : \"?:\\\\Windows\\\\system32\\\\calluxxprovider.vbs\") and\n not (process.name : \"powershell.exe\" and process.args : (\"-File\", \"-PSConsoleFile\") and user.id : \"S-1-5-18\") and\n not (process.name : \"msiexec.exe\" and user.id : \"S-1-5-18\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"process.working_directory","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious Execution via Scheduled Task v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution of a suspicious program via scheduled tasks by looking at process lineage and command line usage.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate scheduled tasks running third party software."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n /* Schedule service cmdline on Win10+ */\n process.parent.name : \"svchost.exe\" and process.parent.args : \"Schedule\" and\n /* add suspicious programs here */\n process.pe.original_file_name in\n (\n \"cscript.exe\",\n \"wscript.exe\",\n \"PowerShell.EXE\",\n \"Cmd.Exe\",\n \"MSHTA.EXE\",\n \"RUNDLL32.EXE\",\n \"REGSVR32.EXE\",\n \"MSBuild.exe\",\n \"InstallUtil.exe\",\n \"RegAsm.exe\",\n \"RegSvcs.exe\",\n \"msxsl.exe\",\n \"CONTROL.EXE\",\n \"EXPLORER.EXE\",\n \"Microsoft.Workflow.Compiler.exe\",\n \"msiexec.exe\"\n ) and\n /* add suspicious paths here */\n process.args : (\n \"C:\\\\Users\\\\*\",\n \"C:\\\\ProgramData\\\\*\",\n \"C:\\\\Windows\\\\Temp\\\\*\",\n \"C:\\\\Windows\\\\Tasks\\\\*\",\n \"C:\\\\PerfLogs\\\\*\",\n \"C:\\\\Intel\\\\*\",\n \"C:\\\\Windows\\\\Debug\\\\*\",\n \"C:\\\\HP\\\\*\") and\n\n not (process.name : \"cmd.exe\" and process.args : \"?:\\\\*.bat\" and process.working_directory : \"?:\\\\Windows\\\\System32\\\\\") and\n not (process.name : \"cscript.exe\" and process.args : \"?:\\\\Windows\\\\system32\\\\calluxxprovider.vbs\") and\n not (process.name : \"powershell.exe\" and process.args : (\"-File\", \"-PSConsoleFile\") and user.id : \"S-1-5-18\") and\n not (process.name : \"msiexec.exe\" and user.id : \"S-1-5-18\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"process.working_directory","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"5d1d6907-0747-4d5d-9b24-e4a18853dc0a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/5d9f8cfc-0d03-443e-a167-2b0597ce0965.json b/fleet-packages/detection-rules-composite/kibana/security_rule/5d9f8cfc-0d03-443e-a167-2b0597ce0965.json new file mode 100644 index 0000000000000..529c8a810f279 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/5d9f8cfc-0d03-443e-a167-2b0597ce0965.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"5d9f8cfc-0d03-443e-a167-2b0597ce0965","versions":[{"name":"Suspicious Automator Workflows Execution v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of the Automator Workflows process followed by a network connection from it's XPC service. Adversaries may drop a custom workflow template that hosts malicious JavaScript for Automation (JXA) code as an alternative to using osascript.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/persistent-jxa-66e1c3cd1cf5"],"tags":["Elastic","Host","macOS","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"sequence by host.id with maxspan=30s\n [process where event.type in (\"start\", \"process_started\") and process.name == \"automator\"]\n [network where process.name:\"com.apple.automator.runner\"]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Suspicious Automator Workflows Execution v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of the Automator Workflows process followed by a network connection from it's XPC service. Adversaries may drop a custom workflow template that hosts malicious JavaScript for Automation (JXA) code as an alternative to using osascript.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/persistent-jxa-66e1c3cd1cf5"],"tags":["Elastic","Host","macOS","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"sequence by host.id with maxspan=30s\n [process where event.type in (\"start\", \"process_started\") and process.name == \"automator\"]\n [network where process.name:\"com.apple.automator.runner\"]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Suspicious Automator Workflows Execution v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of the Automator Workflows process followed by a network connection from it's XPC service. Adversaries may drop a custom workflow template that hosts malicious JavaScript for Automation (JXA) code as an alternative to using osascript.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/persistent-jxa-66e1c3cd1cf5"],"tags":["Elastic","Host","macOS","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"sequence by host.id with maxspan=30s\n [process where event.type in (\"start\", \"process_started\") and process.name == \"automator\"]\n [network where process.name:\"com.apple.automator.runner\"]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"5d9f8cfc-0d03-443e-a167-2b0597ce0965","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/5e161522-2545-11ed-ac47-f661ea17fbce.json b/fleet-packages/detection-rules-composite/kibana/security_rule/5e161522-2545-11ed-ac47-f661ea17fbce.json new file mode 100644 index 0000000000000..681231bd26af2 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/5e161522-2545-11ed-ac47-f661ea17fbce.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"5e161522-2545-11ed-ac47-f661ea17fbce","versions":[{"name":"Google Workspace 2SV Policy Disabled v2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Google Workspace admins may setup 2-step verification (2SV) to add an extra layer of security to user accounts by asking users to verify their identity when they use login credentials. Admins have the ability to enforce 2SV from the admin console as well as the methods acceptable for verification and enrollment period. 2SV requires enablement on admin accounts prior to it being enabled for users within organization units. Adversaries may disable 2SV to lower the security requirements to access a valid account.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrators may remove 2-step verification (2SV) temporarily for testing or during maintenance. If 2SV was previously enabled, it is not common to disable this policy for extended periods of time."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/9176657?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:\"2sv_disable\"\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Google Workspace 2SV Policy Disabled v2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Google Workspace admins may setup 2-step verification (2SV) to add an extra layer of security to user accounts by asking users to verify their identity when they use login credentials. Admins have the ability to enforce 2SV from the admin console as well as the methods acceptable for verification and enrollment period. 2SV requires enablement on admin accounts prior to it being enabled for users within organization units. Adversaries may disable 2SV to lower the security requirements to access a valid account.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrators may remove 2-step verification (2SV) temporarily for testing or during maintenance. If 2SV was previously enabled, it is not common to disable this policy for extended periods of time."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/9176657?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:\"2sv_disable\"\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Google Workspace 2SV Policy Disabled v2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Google Workspace admins may setup 2-step verification (2SV) to add an extra layer of security to user accounts by asking users to verify their identity when they use login credentials. Admins have the ability to enforce 2SV from the admin console as well as the methods acceptable for verification and enrollment period. 2SV requires enablement on admin accounts prior to it being enabled for users within organization units. Adversaries may disable 2SV to lower the security requirements to access a valid account.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrators may remove 2-step verification (2SV) temporarily for testing or during maintenance. If 2SV was previously enabled, it is not common to disable this policy for extended periods of time."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/9176657?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:\"2sv_disable\"\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"5e161522-2545-11ed-ac47-f661ea17fbce","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/5e552599-ddec-4e14-bad1-28aa42404388.json b/fleet-packages/detection-rules-composite/kibana/security_rule/5e552599-ddec-4e14-bad1-28aa42404388.json new file mode 100644 index 0000000000000..2ca3c031e32fb --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/5e552599-ddec-4e14-bad1-28aa42404388.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"5e552599-ddec-4e14-bad1-28aa42404388","versions":[{"name":"Microsoft 365 Teams Guest Access Enabled v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when guest access is enabled in Microsoft Teams. Guest access in Teams allows people outside the organization to access teams and channels. An adversary may enable guest access to maintain persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Teams guest access may be enabled by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/skype/get-csteamsclientconfiguration?view=skype-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:(SkypeForBusiness or MicrosoftTeams) and\nevent.category:web and event.action:\"Set-CsTeamsClientConfiguration\" and\no365.audit.Parameters.AllowGuestUser:True and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Parameters.AllowGuestUser","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Teams Guest Access Enabled v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when guest access is enabled in Microsoft Teams. Guest access in Teams allows people outside the organization to access teams and channels. An adversary may enable guest access to maintain persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Teams guest access may be enabled by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/skype/get-csteamsclientconfiguration?view=skype-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:(SkypeForBusiness or MicrosoftTeams) and\nevent.category:web and event.action:\"Set-CsTeamsClientConfiguration\" and\no365.audit.Parameters.AllowGuestUser:True and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Parameters.AllowGuestUser","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Teams Guest Access Enabled v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when guest access is enabled in Microsoft Teams. Guest access in Teams allows people outside the organization to access teams and channels. An adversary may enable guest access to maintain persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Teams guest access may be enabled by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/skype/get-csteamsclientconfiguration?view=skype-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:(SkypeForBusiness or MicrosoftTeams) and\nevent.category:web and event.action:\"Set-CsTeamsClientConfiguration\" and\no365.audit.Parameters.AllowGuestUser:True and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Parameters.AllowGuestUser","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"5e552599-ddec-4e14-bad1-28aa42404388","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/60884af6-f553-4a6c-af13-300047455491.json b/fleet-packages/detection-rules-composite/kibana/security_rule/60884af6-f553-4a6c-af13-300047455491.json new file mode 100644 index 0000000000000..6fef13f6d544b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/60884af6-f553-4a6c-af13-300047455491.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"60884af6-f553-4a6c-af13-300047455491","versions":[{"name":"Azure Command Execution on Virtual Machine v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies command execution on a virtual machine (VM) in Azure. A Virtual Machine Contributor role lets you manage virtual machines, but not access them, nor access the virtual network or storage account they’re connected to. However, commands can be run via PowerShell on the VM, which execute as System. Other roles, such as certain Administrator roles may be able to execute commands on a VM as well.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Command execution on a virtual machine may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Command execution from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://adsecurity.org/?p=4277","https://posts.specterops.io/attacking-azure-azure-ad-and-introducing-powerzure-ca70b330511a","https://docs.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#virtual-machine-contributor"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.COMPUTE/VIRTUALMACHINES/RUNCOMMAND/ACTION\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Command Execution on Virtual Machine v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies command execution on a virtual machine (VM) in Azure. A Virtual Machine Contributor role lets you manage virtual machines, but not access them, nor access the virtual network or storage account they’re connected to. However, commands can be run via PowerShell on the VM, which execute as System. Other roles, such as certain Administrator roles may be able to execute commands on a VM as well.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Command execution on a virtual machine may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Command execution from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://adsecurity.org/?p=4277","https://posts.specterops.io/attacking-azure-azure-ad-and-introducing-powerzure-ca70b330511a","https://docs.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#virtual-machine-contributor"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.COMPUTE/VIRTUALMACHINES/RUNCOMMAND/ACTION\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Command Execution on Virtual Machine v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies command execution on a virtual machine (VM) in Azure. A Virtual Machine Contributor role lets you manage virtual machines, but not access them, nor access the virtual network or storage account they’re connected to. However, commands can be run via PowerShell on the VM, which execute as System. Other roles, such as certain Administrator roles may be able to execute commands on a VM as well.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Command execution on a virtual machine may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Command execution from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://adsecurity.org/?p=4277","https://posts.specterops.io/attacking-azure-azure-ad-and-introducing-powerzure-ca70b330511a","https://docs.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#virtual-machine-contributor"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.COMPUTE/VIRTUALMACHINES/RUNCOMMAND/ACTION\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"60884af6-f553-4a6c-af13-300047455491","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/60b6b72f-0fbc-47e7-9895-9ba7627a8b50.json b/fleet-packages/detection-rules-composite/kibana/security_rule/60b6b72f-0fbc-47e7-9895-9ba7627a8b50.json new file mode 100644 index 0000000000000..4ac9df79f2cf2 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/60b6b72f-0fbc-47e7-9895-9ba7627a8b50.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"60b6b72f-0fbc-47e7-9895-9ba7627a8b50","versions":[{"name":"Azure Service Principal Addition v103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new service principal is added in Azure. An application, hosted service, or automated tool that accesses or modifies resources needs an identity created. This identity is known as a service principal. For security reasons, it's always recommended to use service principals with automated tools rather than allowing them to log in with a user identity.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Azure Service Principal Addition\n\nService Principals are identities used by applications, services, and automation tools to access specific resources.\nThey grant specific access based on the assigned API permissions. Most organizations that work a lot with Azure AD make\nuse of service principals. Whenever an application is registered, it automatically creates an application object and a\nservice principal in an Azure AD tenant.\n\nThis rule looks for the addition of service principals. This behavior may enable attackers to impersonate legitimate\nservice principals to camouflage their activities among noisy automations/apps.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Consider the source IP address and geolocation for the user who issued the command. Do they look normal for the user?\n- Consider the time of day. If the user is a human, not a program or script, did the activity take place during a normal\ntime of day?\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Examine the account's commands, API calls, and data management actions in the last 24 hours.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\nIf this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and device conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A service principal may be created by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Service principal additions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://msrc-blog.microsoft.com/2020/12/13/customer-guidance-on-recent-nation-state-cyber-attacks/","https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.001","name":"Application Access Token","reference":"https://attack.mitre.org/techniques/T1550/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Add service principal\" and event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Service Principal Addition v103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new service principal is added in Azure. An application, hosted service, or automated tool that accesses or modifies resources needs an identity created. This identity is known as a service principal. For security reasons, it's always recommended to use service principals with automated tools rather than allowing them to log in with a user identity.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Azure Service Principal Addition\n\nService Principals are identities used by applications, services, and automation tools to access specific resources.\nThey grant specific access based on the assigned API permissions. Most organizations that work a lot with Azure AD make\nuse of service principals. Whenever an application is registered, it automatically creates an application object and a\nservice principal in an Azure AD tenant.\n\nThis rule looks for the addition of service principals. This behavior may enable attackers to impersonate legitimate\nservice principals to camouflage their activities among noisy automations/apps.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Consider the source IP address and geolocation for the user who issued the command. Do they look normal for the user?\n- Consider the time of day. If the user is a human, not a program or script, did the activity take place during a normal\ntime of day?\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Examine the account's commands, API calls, and data management actions in the last 24 hours.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\nIf this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and device conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A service principal may be created by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Service principal additions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://msrc-blog.microsoft.com/2020/12/13/customer-guidance-on-recent-nation-state-cyber-attacks/","https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.001","name":"Application Access Token","reference":"https://attack.mitre.org/techniques/T1550/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Add service principal\" and event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Service Principal Addition v103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new service principal is added in Azure. An application, hosted service, or automated tool that accesses or modifies resources needs an identity created. This identity is known as a service principal. For security reasons, it's always recommended to use service principals with automated tools rather than allowing them to log in with a user identity.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Azure Service Principal Addition\n\nService Principals are identities used by applications, services, and automation tools to access specific resources.\nThey grant specific access based on the assigned API permissions. Most organizations that work a lot with Azure AD make\nuse of service principals. Whenever an application is registered, it automatically creates an application object and a\nservice principal in an Azure AD tenant.\n\nThis rule looks for the addition of service principals. This behavior may enable attackers to impersonate legitimate\nservice principals to camouflage their activities among noisy automations/apps.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Consider the source IP address and geolocation for the user who issued the command. Do they look normal for the user?\n- Consider the time of day. If the user is a human, not a program or script, did the activity take place during a normal\ntime of day?\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Examine the account's commands, API calls, and data management actions in the last 24 hours.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\nIf this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and device conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A service principal may be created by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Service principal additions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://msrc-blog.microsoft.com/2020/12/13/customer-guidance-on-recent-nation-state-cyber-attacks/","https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.001","name":"Application Access Token","reference":"https://attack.mitre.org/techniques/T1550/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Add service principal\" and event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"60b6b72f-0fbc-47e7-9895-9ba7627a8b50","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/60f3adec-1df9-4104-9c75-b97d9f078b25.json b/fleet-packages/detection-rules-composite/kibana/security_rule/60f3adec-1df9-4104-9c75-b97d9f078b25.json new file mode 100644 index 0000000000000..6247b998dd283 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/60f3adec-1df9-4104-9c75-b97d9f078b25.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"60f3adec-1df9-4104-9c75-b97d9f078b25","versions":[{"name":"Microsoft 365 Exchange DLP Policy Removed v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Data Loss Prevention (DLP) policy is removed in Microsoft 365. An adversary may remove a DLP policy to evade existing DLP monitoring.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A DLP policy may be removed by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-dlppolicy?view=exchange-ps","https://docs.microsoft.com/en-us/microsoft-365/compliance/data-loss-prevention-policies?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Remove-DlpPolicy\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Exchange DLP Policy Removed v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Data Loss Prevention (DLP) policy is removed in Microsoft 365. An adversary may remove a DLP policy to evade existing DLP monitoring.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A DLP policy may be removed by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-dlppolicy?view=exchange-ps","https://docs.microsoft.com/en-us/microsoft-365/compliance/data-loss-prevention-policies?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Remove-DlpPolicy\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Exchange DLP Policy Removed v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Data Loss Prevention (DLP) policy is removed in Microsoft 365. An adversary may remove a DLP policy to evade existing DLP monitoring.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A DLP policy may be removed by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-dlppolicy?view=exchange-ps","https://docs.microsoft.com/en-us/microsoft-365/compliance/data-loss-prevention-policies?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Remove-DlpPolicy\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"60f3adec-1df9-4104-9c75-b97d9f078b25","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/610949a1-312f-4e04-bb55-3a79b8c95267.json b/fleet-packages/detection-rules-composite/kibana/security_rule/610949a1-312f-4e04-bb55-3a79b8c95267.json new file mode 100644 index 0000000000000..5f0a3ddee7ff0 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/610949a1-312f-4e04-bb55-3a79b8c95267.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"610949a1-312f-4e04-bb55-3a79b8c95267","versions":[{"name":"Unusual Process Network Connection v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies network activity from unexpected system applications. This may indicate adversarial activity as these applications are often leveraged by adversaries to execute code and evade detection.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Process Network Connection\n\nThis rule identifies network activity from unexpected system utilities and applications. These applications are commonly\nabused by attackers to execute code, evade detections, and bypass security protections.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate the target host that the process is communicating with.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where (process.name : \"Microsoft.Workflow.Compiler.exe\" or\n process.name : \"bginfo.exe\" or\n process.name : \"cdb.exe\" or\n process.name : \"cmstp.exe\" or\n process.name : \"csi.exe\" or\n process.name : \"dnx.exe\" or\n process.name : \"fsi.exe\" or\n process.name : \"ieexec.exe\" or\n process.name : \"iexpress.exe\" or\n process.name : \"odbcconf.exe\" or\n process.name : \"rcsi.exe\" or\n process.name : \"xwizard.exe\") and\n event.type == \"start\"]\n [network where (process.name : \"Microsoft.Workflow.Compiler.exe\" or\n process.name : \"bginfo.exe\" or\n process.name : \"cdb.exe\" or\n process.name : \"cmstp.exe\" or\n process.name : \"csi.exe\" or\n process.name : \"dnx.exe\" or\n process.name : \"fsi.exe\" or\n process.name : \"ieexec.exe\" or\n process.name : \"iexpress.exe\" or\n process.name : \"odbcconf.exe\" or\n process.name : \"rcsi.exe\" or\n process.name : \"xwizard.exe\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Unusual Process Network Connection v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies network activity from unexpected system applications. This may indicate adversarial activity as these applications are often leveraged by adversaries to execute code and evade detection.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Process Network Connection\n\nThis rule identifies network activity from unexpected system utilities and applications. These applications are commonly\nabused by attackers to execute code, evade detections, and bypass security protections.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate the target host that the process is communicating with.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where (process.name : \"Microsoft.Workflow.Compiler.exe\" or\n process.name : \"bginfo.exe\" or\n process.name : \"cdb.exe\" or\n process.name : \"cmstp.exe\" or\n process.name : \"csi.exe\" or\n process.name : \"dnx.exe\" or\n process.name : \"fsi.exe\" or\n process.name : \"ieexec.exe\" or\n process.name : \"iexpress.exe\" or\n process.name : \"odbcconf.exe\" or\n process.name : \"rcsi.exe\" or\n process.name : \"xwizard.exe\") and\n event.type == \"start\"]\n [network where (process.name : \"Microsoft.Workflow.Compiler.exe\" or\n process.name : \"bginfo.exe\" or\n process.name : \"cdb.exe\" or\n process.name : \"cmstp.exe\" or\n process.name : \"csi.exe\" or\n process.name : \"dnx.exe\" or\n process.name : \"fsi.exe\" or\n process.name : \"ieexec.exe\" or\n process.name : \"iexpress.exe\" or\n process.name : \"odbcconf.exe\" or\n process.name : \"rcsi.exe\" or\n process.name : \"xwizard.exe\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Unusual Process Network Connection v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies network activity from unexpected system applications. This may indicate adversarial activity as these applications are often leveraged by adversaries to execute code and evade detection.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Process Network Connection\n\nThis rule identifies network activity from unexpected system utilities and applications. These applications are commonly\nabused by attackers to execute code, evade detections, and bypass security protections.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate the target host that the process is communicating with.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where (process.name : \"Microsoft.Workflow.Compiler.exe\" or\n process.name : \"bginfo.exe\" or\n process.name : \"cdb.exe\" or\n process.name : \"cmstp.exe\" or\n process.name : \"csi.exe\" or\n process.name : \"dnx.exe\" or\n process.name : \"fsi.exe\" or\n process.name : \"ieexec.exe\" or\n process.name : \"iexpress.exe\" or\n process.name : \"odbcconf.exe\" or\n process.name : \"rcsi.exe\" or\n process.name : \"xwizard.exe\") and\n event.type == \"start\"]\n [network where (process.name : \"Microsoft.Workflow.Compiler.exe\" or\n process.name : \"bginfo.exe\" or\n process.name : \"cdb.exe\" or\n process.name : \"cmstp.exe\" or\n process.name : \"csi.exe\" or\n process.name : \"dnx.exe\" or\n process.name : \"fsi.exe\" or\n process.name : \"ieexec.exe\" or\n process.name : \"iexpress.exe\" or\n process.name : \"odbcconf.exe\" or\n process.name : \"rcsi.exe\" or\n process.name : \"xwizard.exe\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"610949a1-312f-4e04-bb55-3a79b8c95267","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/61ac3638-40a3-44b2-855a-985636ca985e.json b/fleet-packages/detection-rules-composite/kibana/security_rule/61ac3638-40a3-44b2-855a-985636ca985e.json new file mode 100644 index 0000000000000..9812f42f1d3e6 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/61ac3638-40a3-44b2-855a-985636ca985e.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"61ac3638-40a3-44b2-855a-985636ca985e","versions":[{"name":"PowerShell Suspicious Discovery Related Windows API Functions v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects the use of discovery-related Windows API functions in PowerShell Scripts. Attackers can use these functions to perform various situational awareness related activities, like enumerating users, shares, sessions, domain trusts, groups, etc.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Suspicious Discovery Related Windows API Functions\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can use PowerShell to interact with the Win32 API to bypass command line based detections, using libraries\nlike PSReflect or Get-ProcAddress Cmdlet.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Check for additional PowerShell and command-line logs that indicate that imported functions were run.\n\n### False positive analysis\n\n- Discovery activities themselves are not inherently malicious if occurring in isolation, as long as the script does not\ncontain other capabilities, and there are no other alerts related to the user or host; such alerts can be dismissed.\nHowever, analysts should keep in mind that this is not a common way of getting information, making it suspicious.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate PowerShell scripts that make use of these functions."],"from":"now-9m","references":["https://github.com/BC-SECURITY/Empire/blob/9259e5106986847d2bb770c4289c0c0f1adf2344/data/module_source/situational_awareness/network/powerview.ps1#L21413","https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1135","name":"Network Share Discovery","reference":"https://attack.mitre.org/techniques/T1135/"},{"id":"T1069","name":"Permission Groups Discovery","reference":"https://attack.mitre.org/techniques/T1069/","subtechnique":[{"id":"T1069.001","name":"Local Groups","reference":"https://attack.mitre.org/techniques/T1069/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]},{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n NetShareEnum or\n NetWkstaUserEnum or\n NetSessionEnum or\n NetLocalGroupEnum or\n NetLocalGroupGetMembers or\n DsGetSiteName or\n DsEnumerateDomainTrusts or\n WTSEnumerateSessionsEx or\n WTSQuerySessionInformation or\n LsaGetLogonSessionData or\n QueryServiceObjectSecurity\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},{"name":"PowerShell Suspicious Discovery Related Windows API Functions v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects the use of discovery-related Windows API functions in PowerShell Scripts. Attackers can use these functions to perform various situational awareness related activities, like enumerating users, shares, sessions, domain trusts, groups, etc.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Suspicious Discovery Related Windows API Functions\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can use PowerShell to interact with the Win32 API to bypass command line based detections, using libraries\nlike PSReflect or Get-ProcAddress Cmdlet.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Check for additional PowerShell and command-line logs that indicate that imported functions were run.\n\n### False positive analysis\n\n- Discovery activities themselves are not inherently malicious if occurring in isolation, as long as the script does not\ncontain other capabilities, and there are no other alerts related to the user or host; such alerts can be dismissed.\nHowever, analysts should keep in mind that this is not a common way of getting information, making it suspicious.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate PowerShell scripts that make use of these functions."],"from":"now-9m","references":["https://github.com/BC-SECURITY/Empire/blob/9259e5106986847d2bb770c4289c0c0f1adf2344/data/module_source/situational_awareness/network/powerview.ps1#L21413","https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1135","name":"Network Share Discovery","reference":"https://attack.mitre.org/techniques/T1135/"},{"id":"T1069","name":"Permission Groups Discovery","reference":"https://attack.mitre.org/techniques/T1069/","subtechnique":[{"id":"T1069.001","name":"Local Groups","reference":"https://attack.mitre.org/techniques/T1069/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]},{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n NetShareEnum or\n NetWkstaUserEnum or\n NetSessionEnum or\n NetLocalGroupEnum or\n NetLocalGroupGetMembers or\n DsGetSiteName or\n DsEnumerateDomainTrusts or\n WTSEnumerateSessionsEx or\n WTSQuerySessionInformation or\n LsaGetLogonSessionData or\n QueryServiceObjectSecurity\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},{"name":"PowerShell Suspicious Discovery Related Windows API Functions v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects the use of discovery-related Windows API functions in PowerShell Scripts. Attackers can use these functions to perform various situational awareness related activities, like enumerating users, shares, sessions, domain trusts, groups, etc.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Suspicious Discovery Related Windows API Functions\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can use PowerShell to interact with the Win32 API to bypass command line based detections, using libraries\nlike PSReflect or Get-ProcAddress Cmdlet.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Check for additional PowerShell and command-line logs that indicate that imported functions were run.\n\n### False positive analysis\n\n- Discovery activities themselves are not inherently malicious if occurring in isolation, as long as the script does not\ncontain other capabilities, and there are no other alerts related to the user or host; such alerts can be dismissed.\nHowever, analysts should keep in mind that this is not a common way of getting information, making it suspicious.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate PowerShell scripts that make use of these functions."],"from":"now-9m","references":["https://github.com/BC-SECURITY/Empire/blob/9259e5106986847d2bb770c4289c0c0f1adf2344/data/module_source/situational_awareness/network/powerview.ps1#L21413","https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1135","name":"Network Share Discovery","reference":"https://attack.mitre.org/techniques/T1135/"},{"id":"T1069","name":"Permission Groups Discovery","reference":"https://attack.mitre.org/techniques/T1069/","subtechnique":[{"id":"T1069.001","name":"Local Groups","reference":"https://attack.mitre.org/techniques/T1069/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]},{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n NetShareEnum or\n NetWkstaUserEnum or\n NetSessionEnum or\n NetLocalGroupEnum or\n NetLocalGroupGetMembers or\n DsGetSiteName or\n DsEnumerateDomainTrusts or\n WTSEnumerateSessionsEx or\n WTSQuerySessionInformation or\n LsaGetLogonSessionData or\n QueryServiceObjectSecurity\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"}]},"id":"61ac3638-40a3-44b2-855a-985636ca985e","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/61d29caf-6c15-4d1e-9ccb-7ad12ccc0bc7.json b/fleet-packages/detection-rules-composite/kibana/security_rule/61d29caf-6c15-4d1e-9ccb-7ad12ccc0bc7.json new file mode 100644 index 0000000000000..a472de66c36e7 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/61d29caf-6c15-4d1e-9ccb-7ad12ccc0bc7.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"61d29caf-6c15-4d1e-9ccb-7ad12ccc0bc7","versions":[{"name":"AdminSDHolder SDProp Exclusion Added v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a modification on the dsHeuristics attribute on the bit that holds the configuration of groups excluded from the SDProp process. The SDProp compares the permissions on protected objects with those defined on the AdminSDHolder object. If the permissions on any of the protected accounts and groups do not match, the permissions on the protected accounts and groups are reset to match those of the domain's AdminSDHolder object, meaning that groups excluded will remain unchanged. Attackers can abuse this misconfiguration to maintain long-term access to privileged accounts in these groups.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AdminSDHolder SDProp Exclusion Added\n\nThe SDProp process compares the permissions on protected objects with those defined on the AdminSDHolder object. If the\npermissions on any of the protected accounts and groups do not match, it resets the permissions on the protected\naccounts and groups to match those defined in the domain AdminSDHolder object.\n\nThe dSHeuristics is a Unicode string attribute, in which each character in the string represents a heuristic that is\nused to determine the behavior of Active Directory.\n\nAdministrators can use the dSHeuristics attribute to exclude privilege groups from the SDProp process by setting the\n16th bit (dwAdminSDExMask) of the string to a certain value, which represents the group(s):\n\n* For example, to exclude the Account Operators group, an administrator would modify the string, so the 16th character\nis set to 1 (i.e., 0000000001000001).\n\nThe usage of this exclusion can leave the accounts unprotected and facilitate the misconfiguration of privileges for the\nexcluded groups, enabling attackers to add accounts to these groups to maintain long-term persistence with high\nprivileges.\n\nThis rule matches changes of the dsHeuristics object where the 16th bit is set to a value other than zero.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account and system owners and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check the value assigned to the 16th bit of the string on the `winlog.event_data.AttributeValue` field:\n - Account Operators eq 1\n - Server Operators eq 2\n - Print Operators eq 4\n - Backup Operators eq 8\n The field value can range from 0 to f (15). If more than one group is specified, the values will be summed together;\n for example, Backup Operators and Print Operators will set the `c` value on the bit.\n\n### False positive analysis\n\n- While this modification can be done legitimately, it is not a best practice. Any potential benign true positive (B-TP)\nshould be mapped and reviewed by the security team for alternatives as this weakens the security of the privileged group.\n\n### Response and remediation\n\n- The change can be reverted by setting the dwAdminSDExMask (16th bit) to 0 in dSHeuristics.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.cert.ssi.gouv.fr/uploads/guide-ad.html#dsheuristics_bad","https://petri.com/active-directory-security-understanding-adminsdholder-object"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"language":"eql","query":"any where event.action == \"Directory Service Changes\" and\n event.code == \"5136\" and\n winlog.event_data.AttributeLDAPDisplayName : \"dSHeuristics\" and\n length(winlog.event_data.AttributeValue) > 15 and\n winlog.event_data.AttributeValue regex~ \"[0-9]{15}([1-9a-f]).*\"\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeValue","type":"unknown"}],"setup":"The 'Audit Directory Service Changes' logging policy must be configured for (Success).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success)\n```\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"AdminSDHolder SDProp Exclusion Added v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a modification on the dsHeuristics attribute on the bit that holds the configuration of groups excluded from the SDProp process. The SDProp compares the permissions on protected objects with those defined on the AdminSDHolder object. If the permissions on any of the protected accounts and groups do not match, the permissions on the protected accounts and groups are reset to match those of the domain's AdminSDHolder object, meaning that groups excluded will remain unchanged. Attackers can abuse this misconfiguration to maintain long-term access to privileged accounts in these groups.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AdminSDHolder SDProp Exclusion Added\n\nThe SDProp process compares the permissions on protected objects with those defined on the AdminSDHolder object. If the\npermissions on any of the protected accounts and groups do not match, it resets the permissions on the protected\naccounts and groups to match those defined in the domain AdminSDHolder object.\n\nThe dSHeuristics is a Unicode string attribute, in which each character in the string represents a heuristic that is\nused to determine the behavior of Active Directory.\n\nAdministrators can use the dSHeuristics attribute to exclude privilege groups from the SDProp process by setting the\n16th bit (dwAdminSDExMask) of the string to a certain value, which represents the group(s):\n\n* For example, to exclude the Account Operators group, an administrator would modify the string, so the 16th character\nis set to 1 (i.e., 0000000001000001).\n\nThe usage of this exclusion can leave the accounts unprotected and facilitate the misconfiguration of privileges for the\nexcluded groups, enabling attackers to add accounts to these groups to maintain long-term persistence with high\nprivileges.\n\nThis rule matches changes of the dsHeuristics object where the 16th bit is set to a value other than zero.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account and system owners and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check the value assigned to the 16th bit of the string on the `winlog.event_data.AttributeValue` field:\n - Account Operators eq 1\n - Server Operators eq 2\n - Print Operators eq 4\n - Backup Operators eq 8\n The field value can range from 0 to f (15). If more than one group is specified, the values will be summed together;\n for example, Backup Operators and Print Operators will set the `c` value on the bit.\n\n### False positive analysis\n\n- While this modification can be done legitimately, it is not a best practice. Any potential benign true positive (B-TP)\nshould be mapped and reviewed by the security team for alternatives as this weakens the security of the privileged group.\n\n### Response and remediation\n\n- The change can be reverted by setting the dwAdminSDExMask (16th bit) to 0 in dSHeuristics.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.cert.ssi.gouv.fr/uploads/guide-ad.html#dsheuristics_bad","https://petri.com/active-directory-security-understanding-adminsdholder-object"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"language":"eql","query":"any where event.action == \"Directory Service Changes\" and\n event.code == \"5136\" and\n winlog.event_data.AttributeLDAPDisplayName : \"dSHeuristics\" and\n length(winlog.event_data.AttributeValue) > 15 and\n winlog.event_data.AttributeValue regex~ \"[0-9]{15}([1-9a-f]).*\"\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeValue","type":"unknown"}],"setup":"The 'Audit Directory Service Changes' logging policy must be configured for (Success).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success)\n```\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"AdminSDHolder SDProp Exclusion Added v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a modification on the dsHeuristics attribute on the bit that holds the configuration of groups excluded from the SDProp process. The SDProp compares the permissions on protected objects with those defined on the AdminSDHolder object. If the permissions on any of the protected accounts and groups do not match, the permissions on the protected accounts and groups are reset to match those of the domain's AdminSDHolder object, meaning that groups excluded will remain unchanged. Attackers can abuse this misconfiguration to maintain long-term access to privileged accounts in these groups.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AdminSDHolder SDProp Exclusion Added\n\nThe SDProp process compares the permissions on protected objects with those defined on the AdminSDHolder object. If the\npermissions on any of the protected accounts and groups do not match, it resets the permissions on the protected\naccounts and groups to match those defined in the domain AdminSDHolder object.\n\nThe dSHeuristics is a Unicode string attribute, in which each character in the string represents a heuristic that is\nused to determine the behavior of Active Directory.\n\nAdministrators can use the dSHeuristics attribute to exclude privilege groups from the SDProp process by setting the\n16th bit (dwAdminSDExMask) of the string to a certain value, which represents the group(s):\n\n* For example, to exclude the Account Operators group, an administrator would modify the string, so the 16th character\nis set to 1 (i.e., 0000000001000001).\n\nThe usage of this exclusion can leave the accounts unprotected and facilitate the misconfiguration of privileges for the\nexcluded groups, enabling attackers to add accounts to these groups to maintain long-term persistence with high\nprivileges.\n\nThis rule matches changes of the dsHeuristics object where the 16th bit is set to a value other than zero.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account and system owners and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check the value assigned to the 16th bit of the string on the `winlog.event_data.AttributeValue` field:\n - Account Operators eq 1\n - Server Operators eq 2\n - Print Operators eq 4\n - Backup Operators eq 8\n The field value can range from 0 to f (15). If more than one group is specified, the values will be summed together;\n for example, Backup Operators and Print Operators will set the `c` value on the bit.\n\n### False positive analysis\n\n- While this modification can be done legitimately, it is not a best practice. Any potential benign true positive (B-TP)\nshould be mapped and reviewed by the security team for alternatives as this weakens the security of the privileged group.\n\n### Response and remediation\n\n- The change can be reverted by setting the dwAdminSDExMask (16th bit) to 0 in dSHeuristics.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.cert.ssi.gouv.fr/uploads/guide-ad.html#dsheuristics_bad","https://petri.com/active-directory-security-understanding-adminsdholder-object"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"language":"eql","query":"any where event.action == \"Directory Service Changes\" and\n event.code == \"5136\" and\n winlog.event_data.AttributeLDAPDisplayName : \"dSHeuristics\" and\n length(winlog.event_data.AttributeValue) > 15 and\n winlog.event_data.AttributeValue regex~ \"[0-9]{15}([1-9a-f]).*\"\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeValue","type":"unknown"}],"setup":"The 'Audit Directory Service Changes' logging policy must be configured for (Success).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success)\n```\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"61d29caf-6c15-4d1e-9ccb-7ad12ccc0bc7","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/622ecb68-fa81-4601-90b5-f8cd661e4520.json b/fleet-packages/detection-rules-composite/kibana/security_rule/622ecb68-fa81-4601-90b5-f8cd661e4520.json new file mode 100644 index 0000000000000..2fc7282f2a81e --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/622ecb68-fa81-4601-90b5-f8cd661e4520.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"622ecb68-fa81-4601-90b5-f8cd661e4520","versions":[{"name":"Incoming DCOM Lateral Movement via MSHTA v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of Distributed Component Object Model (DCOM) to execute commands from a remote host, which are launched via the HTA Application COM Object. This behavior may indicate an attacker abusing a DCOM application to move laterally while attempting to evade detection.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://codewhitesec.blogspot.com/2018/07/lethalhta.html"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.003","name":"Distributed Component Object Model","reference":"https://attack.mitre.org/techniques/T1021/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.005","name":"Mshta","reference":"https://attack.mitre.org/techniques/T1218/005/"}]}]}],"language":"eql","query":"sequence with maxspan=1m\n [process where event.type == \"start\" and\n process.name : \"mshta.exe\" and process.args : \"-Embedding\"\n ] by host.id, process.entity_id\n [network where event.type == \"start\" and process.name : \"mshta.exe\" and\n network.direction : (\"incoming\", \"ingress\") and network.transport == \"tcp\" and\n source.port > 49151 and destination.port > 49151 and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ] by host.id, process.entity_id\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]},{"name":"Incoming DCOM Lateral Movement via MSHTA v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of Distributed Component Object Model (DCOM) to execute commands from a remote host, which are launched via the HTA Application COM Object. This behavior may indicate an attacker abusing a DCOM application to move laterally while attempting to evade detection.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://codewhitesec.blogspot.com/2018/07/lethalhta.html"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.003","name":"Distributed Component Object Model","reference":"https://attack.mitre.org/techniques/T1021/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.005","name":"Mshta","reference":"https://attack.mitre.org/techniques/T1218/005/"}]}]}],"language":"eql","query":"sequence with maxspan=1m\n [process where event.type == \"start\" and\n process.name : \"mshta.exe\" and process.args : \"-Embedding\"\n ] by host.id, process.entity_id\n [network where event.type == \"start\" and process.name : \"mshta.exe\" and\n network.direction : (\"incoming\", \"ingress\") and network.transport == \"tcp\" and\n source.port > 49151 and destination.port > 49151 and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ] by host.id, process.entity_id\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]},{"name":"Incoming DCOM Lateral Movement via MSHTA v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of Distributed Component Object Model (DCOM) to execute commands from a remote host, which are launched via the HTA Application COM Object. This behavior may indicate an attacker abusing a DCOM application to move laterally while attempting to evade detection.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://codewhitesec.blogspot.com/2018/07/lethalhta.html"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.003","name":"Distributed Component Object Model","reference":"https://attack.mitre.org/techniques/T1021/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.005","name":"Mshta","reference":"https://attack.mitre.org/techniques/T1218/005/"}]}]}],"language":"eql","query":"sequence with maxspan=1m\n [process where event.type == \"start\" and\n process.name : \"mshta.exe\" and process.args : \"-Embedding\"\n ] by host.id, process.entity_id\n [network where event.type == \"start\" and process.name : \"mshta.exe\" and\n network.direction : (\"incoming\", \"ingress\") and network.transport == \"tcp\" and\n source.port > 49151 and destination.port > 49151 and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ] by host.id, process.entity_id\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]}]},"id":"622ecb68-fa81-4601-90b5-f8cd661e4520","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/62a70f6f-3c37-43df-a556-f64fa475fba2.json b/fleet-packages/detection-rules-composite/kibana/security_rule/62a70f6f-3c37-43df-a556-f64fa475fba2.json new file mode 100644 index 0000000000000..16d85a32d49c0 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/62a70f6f-3c37-43df-a556-f64fa475fba2.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"62a70f6f-3c37-43df-a556-f64fa475fba2","versions":[{"name":"Account Configured with Never-Expiring Password v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the creation and modification of an account with the \"Don't Expire Password\" option Enabled. Attackers can abuse this misconfiguration to persist in the domain and maintain long-term access using compromised accounts with this property.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Account Configured with Never-Expiring Password\n\nActive Directory provides a setting that prevents users' passwords from expiring. Enabling this setting is bad practice and can expose\nenvironments to vulnerabilities that weaken security posture, especially when these accounts are privileged.\n\nThe setting is usually configured so a user account can act as a service account. Attackers can abuse these accounts to\npersist in the domain and maintain long-term access using compromised accounts with a never-expiring password set.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/source host during the past 48 hours.\n- Inspect the account for suspicious or abnormal behaviors in the alert timeframe.\n\n### False positive analysis\n\n- This activity should not happen legitimately. The security team should address any potential benign true positive\n(B-TP), as this configuration can put the user and the domain at risk.\n- Using user accounts as service accounts is a bad security practice and should not be allowed in the domain. The\nsecurity team should map and monitor potential benign true positives (B-TPs), especially if the account is privileged.\nFor cases in which user accounts cannot be avoided, Microsoft provides the Group Managed Service Accounts (gMSA) feature,\nwhich ensures that the account password is robust and changed regularly and automatically.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Reset the password of the account and update its password settings.\n- Search for other occurrences on the domain.\n - Using the [Active Directory PowerShell module](https://docs.microsoft.com/en-us/powershell/module/activedirectory/get-aduser):\n - `get-aduser -filter { passwordNeverExpires -eq $true -and enabled -eq $true } | ft`\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts, if\nany, are identified. Reset passwords for these accounts and other potentially compromised credentials, such as email,\nbusiness systems, and web services.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["User accounts can be used as service accounts and have their password set never to expire. This is a bad security practice that exposes the account to Credential Access attacks. For cases in which user accounts cannot be avoided, Microsoft provides the Group Managed Service Accounts (gMSA) feature, which ensures that the account password is robust and changed regularly and automatically."],"from":"now-9m","references":["https://www.cert.ssi.gouv.fr/uploads/guide-ad.html#dont_expire","https://blog.menasec.net/2019/02/threat-hunting-26-persistent-password.html"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"modified-user-account\" and event.code:\"4738\" and message:\"'Don't Expire Password' - Enabled\" and not user.id:\"S-1-5-18\"\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"message","type":"match_only_text"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"Account Configured with Never-Expiring Password v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the creation and modification of an account with the \"Don't Expire Password\" option Enabled. Attackers can abuse this misconfiguration to persist in the domain and maintain long-term access using compromised accounts with this property.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Account Configured with Never-Expiring Password\n\nActive Directory provides a setting that prevents users' passwords from expiring. Enabling this setting is bad practice and can expose\nenvironments to vulnerabilities that weaken security posture, especially when these accounts are privileged.\n\nThe setting is usually configured so a user account can act as a service account. Attackers can abuse these accounts to\npersist in the domain and maintain long-term access using compromised accounts with a never-expiring password set.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/source host during the past 48 hours.\n- Inspect the account for suspicious or abnormal behaviors in the alert timeframe.\n\n### False positive analysis\n\n- This activity should not happen legitimately. The security team should address any potential benign true positive\n(B-TP), as this configuration can put the user and the domain at risk.\n- Using user accounts as service accounts is a bad security practice and should not be allowed in the domain. The\nsecurity team should map and monitor potential benign true positives (B-TPs), especially if the account is privileged.\nFor cases in which user accounts cannot be avoided, Microsoft provides the Group Managed Service Accounts (gMSA) feature,\nwhich ensures that the account password is robust and changed regularly and automatically.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Reset the password of the account and update its password settings.\n- Search for other occurrences on the domain.\n - Using the [Active Directory PowerShell module](https://docs.microsoft.com/en-us/powershell/module/activedirectory/get-aduser):\n - `get-aduser -filter { passwordNeverExpires -eq $true -and enabled -eq $true } | ft`\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts, if\nany, are identified. Reset passwords for these accounts and other potentially compromised credentials, such as email,\nbusiness systems, and web services.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["User accounts can be used as service accounts and have their password set never to expire. This is a bad security practice that exposes the account to Credential Access attacks. For cases in which user accounts cannot be avoided, Microsoft provides the Group Managed Service Accounts (gMSA) feature, which ensures that the account password is robust and changed regularly and automatically."],"from":"now-9m","references":["https://www.cert.ssi.gouv.fr/uploads/guide-ad.html#dont_expire","https://blog.menasec.net/2019/02/threat-hunting-26-persistent-password.html"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"modified-user-account\" and event.code:\"4738\" and message:\"'Don't Expire Password' - Enabled\" and not user.id:\"S-1-5-18\"\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"message","type":"match_only_text"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"Account Configured with Never-Expiring Password v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the creation and modification of an account with the \"Don't Expire Password\" option Enabled. Attackers can abuse this misconfiguration to persist in the domain and maintain long-term access using compromised accounts with this property.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Account Configured with Never-Expiring Password\n\nActive Directory provides a setting that prevents users' passwords from expiring. Enabling this setting is bad practice and can expose\nenvironments to vulnerabilities that weaken security posture, especially when these accounts are privileged.\n\nThe setting is usually configured so a user account can act as a service account. Attackers can abuse these accounts to\npersist in the domain and maintain long-term access using compromised accounts with a never-expiring password set.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/source host during the past 48 hours.\n- Inspect the account for suspicious or abnormal behaviors in the alert timeframe.\n\n### False positive analysis\n\n- This activity should not happen legitimately. The security team should address any potential benign true positive\n(B-TP), as this configuration can put the user and the domain at risk.\n- Using user accounts as service accounts is a bad security practice and should not be allowed in the domain. The\nsecurity team should map and monitor potential benign true positives (B-TPs), especially if the account is privileged.\nFor cases in which user accounts cannot be avoided, Microsoft provides the Group Managed Service Accounts (gMSA) feature,\nwhich ensures that the account password is robust and changed regularly and automatically.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Reset the password of the account and update its password settings.\n- Search for other occurrences on the domain.\n - Using the [Active Directory PowerShell module](https://docs.microsoft.com/en-us/powershell/module/activedirectory/get-aduser):\n - `get-aduser -filter { passwordNeverExpires -eq $true -and enabled -eq $true } | ft`\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts, if\nany, are identified. Reset passwords for these accounts and other potentially compromised credentials, such as email,\nbusiness systems, and web services.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["User accounts can be used as service accounts and have their password set never to expire. This is a bad security practice that exposes the account to Credential Access attacks. For cases in which user accounts cannot be avoided, Microsoft provides the Group Managed Service Accounts (gMSA) feature, which ensures that the account password is robust and changed regularly and automatically."],"from":"now-9m","references":["https://www.cert.ssi.gouv.fr/uploads/guide-ad.html#dont_expire","https://blog.menasec.net/2019/02/threat-hunting-26-persistent-password.html"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"modified-user-account\" and event.code:\"4738\" and message:\"'Don't Expire Password' - Enabled\" and not user.id:\"S-1-5-18\"\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"message","type":"match_only_text"},{"ecs":true,"name":"user.id","type":"keyword"}]}]},"id":"62a70f6f-3c37-43df-a556-f64fa475fba2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/63c05204-339a-11ed-a261-0242ac120002.json b/fleet-packages/detection-rules-composite/kibana/security_rule/63c05204-339a-11ed-a261-0242ac120002.json new file mode 100644 index 0000000000000..59863e3a19673 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/63c05204-339a-11ed-a261-0242ac120002.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"63c05204-339a-11ed-a261-0242ac120002","versions":[{"name":"Kubernetes Suspicious Assignment of Controller Service Account v3.0.0","rule_version":"3.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects a request to attach a controller service account to an existing or new pod running in the kube-system namespace. By default, controllers running as part of the API Server utilize admin-equivalent service accounts hosted in the kube-system namespace. Controller service accounts aren't normally assigned to running pods and could indicate adversary behavior within the cluster. An attacker that can create or modify pods or pod controllers in the kube-system namespace, can assign one of these admin-equivalent service accounts to a pod and abuse their powerful token to escalate privileges and gain complete cluster control.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Controller service accounts aren't normally assigned to running pods, this is abnormal behavior with very few legitimate use-cases and should result in very few false positives."],"references":["https://www.paloaltonetworks.com/apps/pan/public/downloadResource?pagePath=/content/pan/en_US/resources/whitepapers/kubernetes-privilege-escalation-excessive-permissions-in-popular-platforms"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.001","name":"Default Accounts","reference":"https://attack.mitre.org/techniques/T1078/001/"}]}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\"\n and kubernetes.audit.verb : \"create\" \n and kubernetes.audit.objectRef.resource : \"pods\"\n and kubernetes.audit.objectRef.namespace : \"kube-system\"\n and kubernetes.audit.requestObject.spec.serviceAccountName:*controller\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.namespace","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.serviceAccountName","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},{"name":"Kubernetes Suspicious Assignment of Controller Service Account v3.0.1","rule_version":"3.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects a request to attach a controller service account to an existing or new pod running in the kube-system namespace. By default, controllers running as part of the API Server utilize admin-equivalent service accounts hosted in the kube-system namespace. Controller service accounts aren't normally assigned to running pods and could indicate adversary behavior within the cluster. An attacker that can create or modify pods or pod controllers in the kube-system namespace, can assign one of these admin-equivalent service accounts to a pod and abuse their powerful token to escalate privileges and gain complete cluster control.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Controller service accounts aren't normally assigned to running pods, this is abnormal behavior with very few legitimate use-cases and should result in very few false positives."],"references":["https://www.paloaltonetworks.com/apps/pan/public/downloadResource?pagePath=/content/pan/en_US/resources/whitepapers/kubernetes-privilege-escalation-excessive-permissions-in-popular-platforms"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.001","name":"Default Accounts","reference":"https://attack.mitre.org/techniques/T1078/001/"}]}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\"\n and kubernetes.audit.verb : \"create\" \n and kubernetes.audit.objectRef.resource : \"pods\"\n and kubernetes.audit.objectRef.namespace : \"kube-system\"\n and kubernetes.audit.requestObject.spec.serviceAccountName:*controller\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.namespace","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.serviceAccountName","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},{"name":"Kubernetes Suspicious Assignment of Controller Service Account v3.0.2","rule_version":"3.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects a request to attach a controller service account to an existing or new pod running in the kube-system namespace. By default, controllers running as part of the API Server utilize admin-equivalent service accounts hosted in the kube-system namespace. Controller service accounts aren't normally assigned to running pods and could indicate adversary behavior within the cluster. An attacker that can create or modify pods or pod controllers in the kube-system namespace, can assign one of these admin-equivalent service accounts to a pod and abuse their powerful token to escalate privileges and gain complete cluster control.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Controller service accounts aren't normally assigned to running pods, this is abnormal behavior with very few legitimate use-cases and should result in very few false positives."],"references":["https://www.paloaltonetworks.com/apps/pan/public/downloadResource?pagePath=/content/pan/en_US/resources/whitepapers/kubernetes-privilege-escalation-excessive-permissions-in-popular-platforms"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.001","name":"Default Accounts","reference":"https://attack.mitre.org/techniques/T1078/001/"}]}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\"\n and kubernetes.audit.verb : \"create\" \n and kubernetes.audit.objectRef.resource : \"pods\"\n and kubernetes.audit.objectRef.namespace : \"kube-system\"\n and kubernetes.audit.requestObject.spec.serviceAccountName:*controller\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.namespace","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.serviceAccountName","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."}]},"id":"63c05204-339a-11ed-a261-0242ac120002","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/63c056a0-339a-11ed-a261-0242ac120002.json b/fleet-packages/detection-rules-composite/kibana/security_rule/63c056a0-339a-11ed-a261-0242ac120002.json new file mode 100644 index 0000000000000..d282881662744 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/63c056a0-339a-11ed-a261-0242ac120002.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"63c056a0-339a-11ed-a261-0242ac120002","versions":[{"name":"Kubernetes Denied Service Account Request v2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects when a service account makes an unauthorized request for resources from the API server. Service accounts follow a very predictable pattern of behavior. A service account should never send an unauthorized request to the API server. This behavior is likely an indicator of compromise or of a problem within the cluster. An adversary may have gained access to credentials/tokens and this could be an attempt to access or create resources to facilitate further movement or execution within the cluster.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Unauthorized requests from service accounts are highly abnormal and more indicative of human behavior or a serious problem within the cluster. This behavior should be investigated further."],"references":["https://research.nccgroup.com/2021/11/10/detection-engineering-for-kubernetes-clusters/#part3-kubernetes-detections","https://kubernetes.io/docs/reference/access-authn-authz/authentication/#service-account-tokens"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1613","name":"Container and Resource Discovery","reference":"https://attack.mitre.org/techniques/T1613/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset: \"kubernetes.audit_logs\" \n and kubernetes.audit.user.username: system\\:serviceaccount\\:* \n and kubernetes.audit.annotations.authorization_k8s_io/decision: \"forbid\" \n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.user.username","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},{"name":"Kubernetes Denied Service Account Request v2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects when a service account makes an unauthorized request for resources from the API server. Service accounts follow a very predictable pattern of behavior. A service account should never send an unauthorized request to the API server. This behavior is likely an indicator of compromise or of a problem within the cluster. An adversary may have gained access to credentials/tokens and this could be an attempt to access or create resources to facilitate further movement or execution within the cluster.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Unauthorized requests from service accounts are highly abnormal and more indicative of human behavior or a serious problem within the cluster. This behavior should be investigated further."],"references":["https://research.nccgroup.com/2021/11/10/detection-engineering-for-kubernetes-clusters/#part3-kubernetes-detections","https://kubernetes.io/docs/reference/access-authn-authz/authentication/#service-account-tokens"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1613","name":"Container and Resource Discovery","reference":"https://attack.mitre.org/techniques/T1613/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset: \"kubernetes.audit_logs\" \n and kubernetes.audit.user.username: system\\:serviceaccount\\:* \n and kubernetes.audit.annotations.authorization_k8s_io/decision: \"forbid\" \n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.user.username","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},{"name":"Kubernetes Denied Service Account Request v2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects when a service account makes an unauthorized request for resources from the API server. Service accounts follow a very predictable pattern of behavior. A service account should never send an unauthorized request to the API server. This behavior is likely an indicator of compromise or of a problem within the cluster. An adversary may have gained access to credentials/tokens and this could be an attempt to access or create resources to facilitate further movement or execution within the cluster.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Unauthorized requests from service accounts are highly abnormal and more indicative of human behavior or a serious problem within the cluster. This behavior should be investigated further."],"references":["https://research.nccgroup.com/2021/11/10/detection-engineering-for-kubernetes-clusters/#part3-kubernetes-detections","https://kubernetes.io/docs/reference/access-authn-authz/authentication/#service-account-tokens"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1613","name":"Container and Resource Discovery","reference":"https://attack.mitre.org/techniques/T1613/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset: \"kubernetes.audit_logs\" \n and kubernetes.audit.user.username: system\\:serviceaccount\\:* \n and kubernetes.audit.annotations.authorization_k8s_io/decision: \"forbid\" \n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.user.username","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."}]},"id":"63c056a0-339a-11ed-a261-0242ac120002","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/63c057cc-339a-11ed-a261-0242ac120002.json b/fleet-packages/detection-rules-composite/kibana/security_rule/63c057cc-339a-11ed-a261-0242ac120002.json new file mode 100644 index 0000000000000..ba41691e91e3d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/63c057cc-339a-11ed-a261-0242ac120002.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"63c057cc-339a-11ed-a261-0242ac120002","versions":[{"name":"Kubernetes Anonymous Request Authorized v2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects when an unauthenticated user request is authorized within the cluster. Attackers may attempt to use anonymous accounts to gain initial access to the cluster or to avoid attribution of their activities within the cluster. This rule excludes the /healthz, /livez and /readyz endpoints which are commonly accessed anonymously.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Anonymous access to the API server is a dangerous setting enabled by default. Common anonymous connections (e.g., health checks) have been excluded from this rule. All other instances of authorized anonymous requests should be investigated."],"references":["https://media.defense.gov/2022/Aug/29/2003066362/-1/-1/0/CTR_KUBERNETES_HARDENING_GUIDANCE_1.2_20220829.PDF"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Initial Access","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.001","name":"Default Accounts","reference":"https://attack.mitre.org/techniques/T1078/001/"}]}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and (kubernetes.audit.user.username:(\"system:anonymous\" or \"system:unauthenticated\") or not kubernetes.audit.user.username:*)\n and not kubernetes.audit.objectRef.resource:(\"healthz\" or \"livez\" or \"readyz\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.user.username","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},{"name":"Kubernetes Anonymous Request Authorized v2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects when an unauthenticated user request is authorized within the cluster. Attackers may attempt to use anonymous accounts to gain initial access to the cluster or to avoid attribution of their activities within the cluster. This rule excludes the /healthz, /livez and /readyz endpoints which are commonly accessed anonymously.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Anonymous access to the API server is a dangerous setting enabled by default. Common anonymous connections (e.g., health checks) have been excluded from this rule. All other instances of authorized anonymous requests should be investigated."],"references":["https://media.defense.gov/2022/Aug/29/2003066362/-1/-1/0/CTR_KUBERNETES_HARDENING_GUIDANCE_1.2_20220829.PDF"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Initial Access","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.001","name":"Default Accounts","reference":"https://attack.mitre.org/techniques/T1078/001/"}]}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and (kubernetes.audit.user.username:(\"system:anonymous\" or \"system:unauthenticated\") or not kubernetes.audit.user.username:*)\n and not kubernetes.audit.objectRef.resource:(\"healthz\" or \"livez\" or \"readyz\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.user.username","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},{"name":"Kubernetes Anonymous Request Authorized v2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects when an unauthenticated user request is authorized within the cluster. Attackers may attempt to use anonymous accounts to gain initial access to the cluster or to avoid attribution of their activities within the cluster. This rule excludes the /healthz, /livez and /readyz endpoints which are commonly accessed anonymously.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Anonymous access to the API server is a dangerous setting enabled by default. Common anonymous connections (e.g., health checks) have been excluded from this rule. All other instances of authorized anonymous requests should be investigated."],"references":["https://media.defense.gov/2022/Aug/29/2003066362/-1/-1/0/CTR_KUBERNETES_HARDENING_GUIDANCE_1.2_20220829.PDF"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Initial Access","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.001","name":"Default Accounts","reference":"https://attack.mitre.org/techniques/T1078/001/"}]}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and (kubernetes.audit.user.username:(\"system:anonymous\" or \"system:unauthenticated\") or not kubernetes.audit.user.username:*)\n and not kubernetes.audit.objectRef.resource:(\"healthz\" or \"livez\" or \"readyz\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.user.username","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."}]},"id":"63c057cc-339a-11ed-a261-0242ac120002","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/63e65ec3-43b1-45b0-8f2d-45b34291dc44.json b/fleet-packages/detection-rules-composite/kibana/security_rule/63e65ec3-43b1-45b0-8f2d-45b34291dc44.json new file mode 100644 index 0000000000000..aa6e5c36c77e3 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/63e65ec3-43b1-45b0-8f2d-45b34291dc44.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"63e65ec3-43b1-45b0-8f2d-45b34291dc44","versions":[{"name":"Network Connection via Signed Binary v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Binaries signed with trusted digital certificates can execute on Windows systems protected by digital signature validation. Adversaries may use these binaries to 'live off the land' and execute malicious files that could bypass application allowlists and signature validation.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]}],"language":"eql","query":"sequence by process.entity_id\n [process where (process.name : \"expand.exe\" or process.name : \"extrac32.exe\" or\n process.name : \"ieexec.exe\" or process.name : \"makecab.exe\") and\n event.type == \"start\"]\n [network where (process.name : \"expand.exe\" or process.name : \"extrac32.exe\" or\n process.name : \"ieexec.exe\" or process.name : \"makecab.exe\") and\n not cidrmatch(destination.ip,\n \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\", \"192.0.0.0/29\", \"192.0.0.8/32\",\n \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\",\n \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\", \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Network Connection via Signed Binary v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Binaries signed with trusted digital certificates can execute on Windows systems protected by digital signature validation. Adversaries may use these binaries to 'live off the land' and execute malicious files that could bypass application allowlists and signature validation.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]}],"language":"eql","query":"sequence by process.entity_id\n [process where (process.name : \"expand.exe\" or process.name : \"extrac32.exe\" or\n process.name : \"ieexec.exe\" or process.name : \"makecab.exe\") and\n event.type == \"start\"]\n [network where (process.name : \"expand.exe\" or process.name : \"extrac32.exe\" or\n process.name : \"ieexec.exe\" or process.name : \"makecab.exe\") and\n not cidrmatch(destination.ip,\n \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\", \"192.0.0.0/29\", \"192.0.0.8/32\",\n \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\",\n \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\", \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Network Connection via Signed Binary v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Binaries signed with trusted digital certificates can execute on Windows systems protected by digital signature validation. Adversaries may use these binaries to 'live off the land' and execute malicious files that could bypass application allowlists and signature validation.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]}],"language":"eql","query":"sequence by process.entity_id\n [process where (process.name : \"expand.exe\" or process.name : \"extrac32.exe\" or\n process.name : \"ieexec.exe\" or process.name : \"makecab.exe\") and\n event.type == \"start\"]\n [network where (process.name : \"expand.exe\" or process.name : \"extrac32.exe\" or\n process.name : \"ieexec.exe\" or process.name : \"makecab.exe\") and\n not cidrmatch(destination.ip,\n \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\", \"192.0.0.0/29\", \"192.0.0.8/32\",\n \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\",\n \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\", \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"63e65ec3-43b1-45b0-8f2d-45b34291dc44","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/647fc812-7996-4795-8869-9c4ea595fe88.json b/fleet-packages/detection-rules-composite/kibana/security_rule/647fc812-7996-4795-8869-9c4ea595fe88.json new file mode 100644 index 0000000000000..1f00baeb35fb3 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/647fc812-7996-4795-8869-9c4ea595fe88.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"647fc812-7996-4795-8869-9c4ea595fe88","versions":[{"name":"Anomalous Process For a Linux Population v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Searches for rare processes running on multiple Linux hosts in an entire fleet or network. This reduces the detection of false positives since automated maintenance processes usually only run occasionally on a single machine but are common to all or many hosts in a fleet.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Linux Process\nDetection alerts from this rule indicate the presence of a Linux process that is rare and unusual for all of the monitored Linux hosts for which Auditbeat data is available. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is this program part of an expected workflow for the user who ran this program on this host?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Linux","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_anomalous_process_all_hosts"],"type":"machine_learning"},{"name":"Anomalous Process For a Linux Population v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Searches for rare processes running on multiple Linux hosts in an entire fleet or network. This reduces the detection of false positives since automated maintenance processes usually only run occasionally on a single machine but are common to all or many hosts in a fleet.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Linux Process\nDetection alerts from this rule indicate the presence of a Linux process that is rare and unusual for all of the monitored Linux hosts for which Auditbeat data is available. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is this program part of an expected workflow for the user who ran this program on this host?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Linux","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_anomalous_process_all_hosts"],"type":"machine_learning"},{"name":"Anomalous Process For a Linux Population v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Searches for rare processes running on multiple Linux hosts in an entire fleet or network. This reduces the detection of false positives since automated maintenance processes usually only run occasionally on a single machine but are common to all or many hosts in a fleet.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Linux Process\nDetection alerts from this rule indicate the presence of a Linux process that is rare and unusual for all of the monitored Linux hosts for which Auditbeat data is available. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is this program part of an expected workflow for the user who ran this program on this host?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Linux","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_anomalous_process_all_hosts"],"type":"machine_learning"}]},"id":"647fc812-7996-4795-8869-9c4ea595fe88","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/6482255d-f468-45ea-a5b3-d3a7de1331ae.json b/fleet-packages/detection-rules-composite/kibana/security_rule/6482255d-f468-45ea-a5b3-d3a7de1331ae.json new file mode 100644 index 0000000000000..443202922b3ee --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/6482255d-f468-45ea-a5b3-d3a7de1331ae.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"6482255d-f468-45ea-a5b3-d3a7de1331ae","versions":[{"name":"Modification of Safari Settings via Defaults Command v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies changes to the Safari configuration using the built-in defaults command. Adversaries may attempt to enable or disable certain Safari settings, such as enabling JavaScript from Apple Events to ease in the hijacking of the users browser.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://objectivebythesea.com/v2/talks/OBTS_v2_Zohar.pdf"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and\n process.name:defaults and process.args:\n (com.apple.Safari and write and not\n (\n UniversalSearchEnabled or\n SuppressSearchSuggestions or\n WebKitTabToLinksPreferenceKey or\n ShowFullURLInSmartSearchField or\n com.apple.Safari.ContentPageGroupIdentifier.WebKit2TabsToLinks\n )\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Modification of Safari Settings via Defaults Command v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies changes to the Safari configuration using the built-in defaults command. Adversaries may attempt to enable or disable certain Safari settings, such as enabling JavaScript from Apple Events to ease in the hijacking of the users browser.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://objectivebythesea.com/v2/talks/OBTS_v2_Zohar.pdf"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and\n process.name:defaults and process.args:\n (com.apple.Safari and write and not\n (\n UniversalSearchEnabled or\n SuppressSearchSuggestions or\n WebKitTabToLinksPreferenceKey or\n ShowFullURLInSmartSearchField or\n com.apple.Safari.ContentPageGroupIdentifier.WebKit2TabsToLinks\n )\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Modification of Safari Settings via Defaults Command v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies changes to the Safari configuration using the built-in defaults command. Adversaries may attempt to enable or disable certain Safari settings, such as enabling JavaScript from Apple Events to ease in the hijacking of the users browser.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://objectivebythesea.com/v2/talks/OBTS_v2_Zohar.pdf"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and\n process.name:defaults and process.args:\n (com.apple.Safari and write and not\n (\n UniversalSearchEnabled or\n SuppressSearchSuggestions or\n WebKitTabToLinksPreferenceKey or\n ShowFullURLInSmartSearchField or\n com.apple.Safari.ContentPageGroupIdentifier.WebKit2TabsToLinks\n )\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"6482255d-f468-45ea-a5b3-d3a7de1331ae","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/65f9bccd-510b-40df-8263-334f03174fed.json b/fleet-packages/detection-rules-composite/kibana/security_rule/65f9bccd-510b-40df-8263-334f03174fed.json new file mode 100644 index 0000000000000..7b8d6d4da0c2a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/65f9bccd-510b-40df-8263-334f03174fed.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"65f9bccd-510b-40df-8263-334f03174fed","versions":[{"name":"Kubernetes Exposed Service Created With Type NodePort v200.0.0","rule_version":"200.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects an attempt to create or modify a service as type NodePort. The NodePort service allows a user to externally expose a set of labeled pods to the internet. This creates an open port on every worker node in the cluster that has a pod for that service. When external traffic is received on that open port, it directs it to the specific pod through the service representing it. A malicious user can configure a service as type Nodeport in order to intercept traffic from other pods or nodes, bypassing firewalls and other network security measures configured for load balancers within a cluster. This creates a direct method of communication between the cluster and the outside world, which could be used for more malicious behavior and certainly widens the attack surface of your cluster.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Developers may have a legitimate use for NodePorts. For frontend parts of an application you may want to expose a Service onto an external IP address without using cloud specific Loadbalancers. NodePort can be used to expose the Service on each Node's IP at a static port (the NodePort). You'll be able to contact the NodePort Service from outside the cluster, by requesting :. NodePort unlike Loadbalancers, allow the freedom to set up your own load balancing solution, configure environments that aren't fully supported by Kubernetes, or even to expose one or more node's IPs directly."],"references":["https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types","https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport","https://www.tigera.io/blog/new-vulnerability-exposes-kubernetes-to-man-in-the-middle-attacks-heres-how-to-mitigate/"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1133","name":"External Remote Services","reference":"https://attack.mitre.org/techniques/T1133/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.objectRef.resource:\"services\" \n and kubernetes.audit.verb:(\"create\" or \"update\" or \"patch\") \n and kubernetes.audit.requestObject.spec.type:\"NodePort\"\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.type","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},{"name":"Kubernetes Exposed Service Created With Type NodePort v200.0.1","rule_version":"200.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects an attempt to create or modify a service as type NodePort. The NodePort service allows a user to externally expose a set of labeled pods to the internet. This creates an open port on every worker node in the cluster that has a pod for that service. When external traffic is received on that open port, it directs it to the specific pod through the service representing it. A malicious user can configure a service as type Nodeport in order to intercept traffic from other pods or nodes, bypassing firewalls and other network security measures configured for load balancers within a cluster. This creates a direct method of communication between the cluster and the outside world, which could be used for more malicious behavior and certainly widens the attack surface of your cluster.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Developers may have a legitimate use for NodePorts. For frontend parts of an application you may want to expose a Service onto an external IP address without using cloud specific Loadbalancers. NodePort can be used to expose the Service on each Node's IP at a static port (the NodePort). You'll be able to contact the NodePort Service from outside the cluster, by requesting :. NodePort unlike Loadbalancers, allow the freedom to set up your own load balancing solution, configure environments that aren't fully supported by Kubernetes, or even to expose one or more node's IPs directly."],"references":["https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types","https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport","https://www.tigera.io/blog/new-vulnerability-exposes-kubernetes-to-man-in-the-middle-attacks-heres-how-to-mitigate/"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1133","name":"External Remote Services","reference":"https://attack.mitre.org/techniques/T1133/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.objectRef.resource:\"services\" \n and kubernetes.audit.verb:(\"create\" or \"update\" or \"patch\") \n and kubernetes.audit.requestObject.spec.type:\"NodePort\"\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.type","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},{"name":"Kubernetes Exposed Service Created With Type NodePort v200.0.2","rule_version":"200.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects an attempt to create or modify a service as type NodePort. The NodePort service allows a user to externally expose a set of labeled pods to the internet. This creates an open port on every worker node in the cluster that has a pod for that service. When external traffic is received on that open port, it directs it to the specific pod through the service representing it. A malicious user can configure a service as type Nodeport in order to intercept traffic from other pods or nodes, bypassing firewalls and other network security measures configured for load balancers within a cluster. This creates a direct method of communication between the cluster and the outside world, which could be used for more malicious behavior and certainly widens the attack surface of your cluster.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Developers may have a legitimate use for NodePorts. For frontend parts of an application you may want to expose a Service onto an external IP address without using cloud specific Loadbalancers. NodePort can be used to expose the Service on each Node's IP at a static port (the NodePort). You'll be able to contact the NodePort Service from outside the cluster, by requesting :. NodePort unlike Loadbalancers, allow the freedom to set up your own load balancing solution, configure environments that aren't fully supported by Kubernetes, or even to expose one or more node's IPs directly."],"references":["https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types","https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport","https://www.tigera.io/blog/new-vulnerability-exposes-kubernetes-to-man-in-the-middle-attacks-heres-how-to-mitigate/"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1133","name":"External Remote Services","reference":"https://attack.mitre.org/techniques/T1133/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.objectRef.resource:\"services\" \n and kubernetes.audit.verb:(\"create\" or \"update\" or \"patch\") \n and kubernetes.audit.requestObject.spec.type:\"NodePort\"\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.type","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."}]},"id":"65f9bccd-510b-40df-8263-334f03174fed","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/661545b4-1a90-4f45-85ce-2ebd7c6a15d0.json b/fleet-packages/detection-rules-composite/kibana/security_rule/661545b4-1a90-4f45-85ce-2ebd7c6a15d0.json new file mode 100644 index 0000000000000..5147be71c268b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/661545b4-1a90-4f45-85ce-2ebd7c6a15d0.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"661545b4-1a90-4f45-85ce-2ebd7c6a15d0","versions":[{"name":"Attempt to Mount SMB Share via Command Line v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of macOS built-in commands to mount a Server Message Block (SMB) network share. Adversaries may use valid accounts to interact with a remote network share using SMB.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.freebsd.org/cgi/man.cgi?mount_smbfs","https://ss64.com/osx/mount.html"],"tags":["Elastic","Host","macOS","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n (\n process.name : \"mount_smbfs\" or\n (process.name : \"open\" and process.args : \"smb://*\") or\n (process.name : \"mount\" and process.args : \"smbfs\") or\n (process.name : \"osascript\" and process.command_line : \"osascript*mount volume*smb://*\")\n ) and\n not process.parent.executable : \"/Applications/Google Drive.app/Contents/MacOS/Google Drive\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Attempt to Mount SMB Share via Command Line v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of macOS built-in commands to mount a Server Message Block (SMB) network share. Adversaries may use valid accounts to interact with a remote network share using SMB.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.freebsd.org/cgi/man.cgi?mount_smbfs","https://ss64.com/osx/mount.html"],"tags":["Elastic","Host","macOS","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n (\n process.name : \"mount_smbfs\" or\n (process.name : \"open\" and process.args : \"smb://*\") or\n (process.name : \"mount\" and process.args : \"smbfs\") or\n (process.name : \"osascript\" and process.command_line : \"osascript*mount volume*smb://*\")\n ) and\n not process.parent.executable : \"/Applications/Google Drive.app/Contents/MacOS/Google Drive\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Attempt to Mount SMB Share via Command Line v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of macOS built-in commands to mount a Server Message Block (SMB) network share. Adversaries may use valid accounts to interact with a remote network share using SMB.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.freebsd.org/cgi/man.cgi?mount_smbfs","https://ss64.com/osx/mount.html"],"tags":["Elastic","Host","macOS","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n (\n process.name : \"mount_smbfs\" or\n (process.name : \"open\" and process.args : \"smb://*\") or\n (process.name : \"mount\" and process.args : \"smbfs\") or\n (process.name : \"osascript\" and process.command_line : \"osascript*mount volume*smb://*\")\n ) and\n not process.parent.executable : \"/Applications/Google Drive.app/Contents/MacOS/Google Drive\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"661545b4-1a90-4f45-85ce-2ebd7c6a15d0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/665e7a4f-c58e-4fc6-bc83-87a7572670ac.json b/fleet-packages/detection-rules-composite/kibana/security_rule/665e7a4f-c58e-4fc6-bc83-87a7572670ac.json new file mode 100644 index 0000000000000..0ffe0845c1a04 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/665e7a4f-c58e-4fc6-bc83-87a7572670ac.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"665e7a4f-c58e-4fc6-bc83-87a7572670ac","versions":[{"name":"WebServer Access Logs Deleted v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of WebServer access logs. This may indicate an attempt to evade detection or destroy forensic evidence on a system.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Windows","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/"}]}],"language":"eql","query":"file where event.type == \"deletion\" and\n file.path : (\"C:\\\\inetpub\\\\logs\\\\LogFiles\\\\*.log\",\n \"/var/log/apache*/access.log\",\n \"/etc/httpd/logs/access_log\",\n \"/var/log/httpd/access_log\",\n \"/var/www/*/logs/access.log\")\n","type":"eql","index":["auditbeat-*","winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"WebServer Access Logs Deleted v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of WebServer access logs. This may indicate an attempt to evade detection or destroy forensic evidence on a system.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Windows","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/"}]}],"language":"eql","query":"file where event.type == \"deletion\" and\n file.path : (\"C:\\\\inetpub\\\\logs\\\\LogFiles\\\\*.log\",\n \"/var/log/apache*/access.log\",\n \"/etc/httpd/logs/access_log\",\n \"/var/log/httpd/access_log\",\n \"/var/www/*/logs/access.log\")\n","type":"eql","index":["auditbeat-*","winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"WebServer Access Logs Deleted v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of WebServer access logs. This may indicate an attempt to evade detection or destroy forensic evidence on a system.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Windows","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/"}]}],"language":"eql","query":"file where event.type == \"deletion\" and\n file.path : (\"C:\\\\inetpub\\\\logs\\\\LogFiles\\\\*.log\",\n \"/var/log/apache*/access.log\",\n \"/etc/httpd/logs/access_log\",\n \"/var/log/httpd/access_log\",\n \"/var/www/*/logs/access.log\")\n","type":"eql","index":["auditbeat-*","winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"665e7a4f-c58e-4fc6-bc83-87a7572670ac","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/66883649-f908-4a5b-a1e0-54090a1d3a32.json b/fleet-packages/detection-rules-composite/kibana/security_rule/66883649-f908-4a5b-a1e0-54090a1d3a32.json new file mode 100644 index 0000000000000..2f7680d639b70 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/66883649-f908-4a5b-a1e0-54090a1d3a32.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"66883649-f908-4a5b-a1e0-54090a1d3a32","versions":[{"name":"Connection to Commonly Abused Web Services v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may implement command and control (C2) communications that use common web services to hide their activity. This attack technique is typically targeted at an organization and uses web services common to the victim network, which allows the adversary to blend into legitimate traffic activity. These popular services are typically targeted since they have most likely been used before compromise, which helps malicious traffic blend in.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Connection to Commonly Abused Web Services\n\nAdversaries may use an existing, legitimate external Web service as a means for relaying data to/from a compromised\nsystem. Popular websites and social media acting as a mechanism for C2 may give a significant amount of cover due to the\nlikelihood that hosts within a network are already communicating with them prior to a compromise.\n\nThis rule looks for processes outside known legitimate program locations communicating with a list of services that can\nbe abused for exfiltration or command and control.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Verify whether the digital signature exists in the executable.\n- Identify the operation type (upload, download, tunneling, etc.).\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This rule has a high chance to produce false positives because it detects communication with legitimate services. Noisy\nfalse positives can be added as exceptions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1102","name":"Web Service","reference":"https://attack.mitre.org/techniques/T1102/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1567","name":"Exfiltration Over Web Service","reference":"https://attack.mitre.org/techniques/T1567/","subtechnique":[{"id":"T1567.001","name":"Exfiltration to Code Repository","reference":"https://attack.mitre.org/techniques/T1567/001/"},{"id":"T1567.002","name":"Exfiltration to Cloud Storage","reference":"https://attack.mitre.org/techniques/T1567/002/"}]}]}],"language":"eql","query":"network where network.protocol == \"dns\" and\n process.name != null and user.id not in (\"S-1-5-18\", \"S-1-5-19\", \"S-1-5-20\") and\n /* Add new WebSvc domains here */\n dns.question.name :\n (\n \"raw.githubusercontent.*\",\n \"*.pastebin.*\",\n \"*drive.google.*\",\n \"*docs.live.*\",\n \"*api.dropboxapi.*\",\n \"*dropboxusercontent.*\",\n \"*onedrive.*\",\n \"*4shared.*\",\n \"*.file.io\",\n \"*filebin.net\",\n \"*slack-files.com\",\n \"*ghostbin.*\",\n \"*ngrok.*\",\n \"*portmap.*\",\n \"*serveo.net\",\n \"*localtunnel.me\",\n \"*pagekite.me\",\n \"*localxpose.io\",\n \"*notabug.org\",\n \"rawcdn.githack.*\",\n \"paste.nrecom.net\",\n \"zerobin.net\",\n \"controlc.com\",\n \"requestbin.net\",\n \"cdn.discordapp.com\",\n \"discordapp.com\",\n \"discord.com\",\n \"script.google.com\",\n \"script.googleusercontent.com\"\n ) and\n /* Insert noisy false positives here */\n not process.executable :\n (\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\WWAHost.exe\",\n \"?:\\\\Windows\\\\System32\\\\smartscreen.exe\",\n \"?:\\\\Windows\\\\System32\\\\MicrosoftEdgeCP.exe\",\n \"?:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\Platform\\\\*\\\\MsMpEng.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Programs\\\\Fiddler\\\\Fiddler.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Programs\\\\Microsoft VS Code\\\\Code.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Microsoft\\\\OneDrive\\\\OneDrive.exe\",\n \"?:\\\\Windows\\\\system32\\\\mobsync.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\mobsync.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Discord\\\\app-*\\\\Discord.exe\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"dns.question.name","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"Connection to Commonly Abused Web Services v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may implement command and control (C2) communications that use common web services to hide their activity. This attack technique is typically targeted at an organization and uses web services common to the victim network, which allows the adversary to blend into legitimate traffic activity. These popular services are typically targeted since they have most likely been used before compromise, which helps malicious traffic blend in.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Connection to Commonly Abused Web Services\n\nAdversaries may use an existing, legitimate external Web service as a means for relaying data to/from a compromised\nsystem. Popular websites and social media acting as a mechanism for C2 may give a significant amount of cover due to the\nlikelihood that hosts within a network are already communicating with them prior to a compromise.\n\nThis rule looks for processes outside known legitimate program locations communicating with a list of services that can\nbe abused for exfiltration or command and control.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Verify whether the digital signature exists in the executable.\n- Identify the operation type (upload, download, tunneling, etc.).\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This rule has a high chance to produce false positives because it detects communication with legitimate services. Noisy\nfalse positives can be added as exceptions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1102","name":"Web Service","reference":"https://attack.mitre.org/techniques/T1102/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1567","name":"Exfiltration Over Web Service","reference":"https://attack.mitre.org/techniques/T1567/","subtechnique":[{"id":"T1567.001","name":"Exfiltration to Code Repository","reference":"https://attack.mitre.org/techniques/T1567/001/"},{"id":"T1567.002","name":"Exfiltration to Cloud Storage","reference":"https://attack.mitre.org/techniques/T1567/002/"}]}]}],"language":"eql","query":"network where network.protocol == \"dns\" and\n process.name != null and user.id not in (\"S-1-5-18\", \"S-1-5-19\", \"S-1-5-20\") and\n /* Add new WebSvc domains here */\n dns.question.name :\n (\n \"raw.githubusercontent.*\",\n \"*.pastebin.*\",\n \"*drive.google.*\",\n \"*docs.live.*\",\n \"*api.dropboxapi.*\",\n \"*dropboxusercontent.*\",\n \"*onedrive.*\",\n \"*4shared.*\",\n \"*.file.io\",\n \"*filebin.net\",\n \"*slack-files.com\",\n \"*ghostbin.*\",\n \"*ngrok.*\",\n \"*portmap.*\",\n \"*serveo.net\",\n \"*localtunnel.me\",\n \"*pagekite.me\",\n \"*localxpose.io\",\n \"*notabug.org\",\n \"rawcdn.githack.*\",\n \"paste.nrecom.net\",\n \"zerobin.net\",\n \"controlc.com\",\n \"requestbin.net\",\n \"cdn.discordapp.com\",\n \"discordapp.com\",\n \"discord.com\",\n \"script.google.com\",\n \"script.googleusercontent.com\"\n ) and\n /* Insert noisy false positives here */\n not process.executable :\n (\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\WWAHost.exe\",\n \"?:\\\\Windows\\\\System32\\\\smartscreen.exe\",\n \"?:\\\\Windows\\\\System32\\\\MicrosoftEdgeCP.exe\",\n \"?:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\Platform\\\\*\\\\MsMpEng.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Programs\\\\Fiddler\\\\Fiddler.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Programs\\\\Microsoft VS Code\\\\Code.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Microsoft\\\\OneDrive\\\\OneDrive.exe\",\n \"?:\\\\Windows\\\\system32\\\\mobsync.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\mobsync.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Discord\\\\app-*\\\\Discord.exe\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"dns.question.name","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"Connection to Commonly Abused Web Services v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may implement command and control (C2) communications that use common web services to hide their activity. This attack technique is typically targeted at an organization and uses web services common to the victim network, which allows the adversary to blend into legitimate traffic activity. These popular services are typically targeted since they have most likely been used before compromise, which helps malicious traffic blend in.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Connection to Commonly Abused Web Services\n\nAdversaries may use an existing, legitimate external Web service as a means for relaying data to/from a compromised\nsystem. Popular websites and social media acting as a mechanism for C2 may give a significant amount of cover due to the\nlikelihood that hosts within a network are already communicating with them prior to a compromise.\n\nThis rule looks for processes outside known legitimate program locations communicating with a list of services that can\nbe abused for exfiltration or command and control.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Verify whether the digital signature exists in the executable.\n- Identify the operation type (upload, download, tunneling, etc.).\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This rule has a high chance to produce false positives because it detects communication with legitimate services. Noisy\nfalse positives can be added as exceptions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1102","name":"Web Service","reference":"https://attack.mitre.org/techniques/T1102/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1567","name":"Exfiltration Over Web Service","reference":"https://attack.mitre.org/techniques/T1567/","subtechnique":[{"id":"T1567.001","name":"Exfiltration to Code Repository","reference":"https://attack.mitre.org/techniques/T1567/001/"},{"id":"T1567.002","name":"Exfiltration to Cloud Storage","reference":"https://attack.mitre.org/techniques/T1567/002/"}]}]}],"language":"eql","query":"network where network.protocol == \"dns\" and\n process.name != null and user.id not in (\"S-1-5-18\", \"S-1-5-19\", \"S-1-5-20\") and\n /* Add new WebSvc domains here */\n dns.question.name :\n (\n \"raw.githubusercontent.*\",\n \"*.pastebin.*\",\n \"*drive.google.*\",\n \"*docs.live.*\",\n \"*api.dropboxapi.*\",\n \"*dropboxusercontent.*\",\n \"*onedrive.*\",\n \"*4shared.*\",\n \"*.file.io\",\n \"*filebin.net\",\n \"*slack-files.com\",\n \"*ghostbin.*\",\n \"*ngrok.*\",\n \"*portmap.*\",\n \"*serveo.net\",\n \"*localtunnel.me\",\n \"*pagekite.me\",\n \"*localxpose.io\",\n \"*notabug.org\",\n \"rawcdn.githack.*\",\n \"paste.nrecom.net\",\n \"zerobin.net\",\n \"controlc.com\",\n \"requestbin.net\",\n \"cdn.discordapp.com\",\n \"discordapp.com\",\n \"discord.com\",\n \"script.google.com\",\n \"script.googleusercontent.com\"\n ) and\n /* Insert noisy false positives here */\n not process.executable :\n (\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\WWAHost.exe\",\n \"?:\\\\Windows\\\\System32\\\\smartscreen.exe\",\n \"?:\\\\Windows\\\\System32\\\\MicrosoftEdgeCP.exe\",\n \"?:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\Platform\\\\*\\\\MsMpEng.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Programs\\\\Fiddler\\\\Fiddler.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Programs\\\\Microsoft VS Code\\\\Code.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Microsoft\\\\OneDrive\\\\OneDrive.exe\",\n \"?:\\\\Windows\\\\system32\\\\mobsync.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\mobsync.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Discord\\\\app-*\\\\Discord.exe\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"dns.question.name","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]}]},"id":"66883649-f908-4a5b-a1e0-54090a1d3a32","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/66da12b1-ac83-40eb-814c-07ed1d82b7b9.json b/fleet-packages/detection-rules-composite/kibana/security_rule/66da12b1-ac83-40eb-814c-07ed1d82b7b9.json new file mode 100644 index 0000000000000..2a1912498a83c --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/66da12b1-ac83-40eb-814c-07ed1d82b7b9.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"66da12b1-ac83-40eb-814c-07ed1d82b7b9","versions":[{"name":"Suspicious macOS MS Office Child Process v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious child processes of frequently targeted Microsoft Office applications (Word, PowerPoint, and Excel). These child processes are often launched during exploitation of Office applications or by documents with malicious macros.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.malwarebytes.com/cybercrime/2017/02/microsoft-office-macro-malware-targets-macs/"],"tags":["Elastic","Host","macOS","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.parent.name:(\"Microsoft Word\", \"Microsoft PowerPoint\", \"Microsoft Excel\") and\n process.name:\n (\n \"bash\",\n \"dash\",\n \"sh\",\n \"tcsh\",\n \"csh\",\n \"zsh\",\n \"ksh\",\n \"fish\",\n \"python*\",\n \"perl*\",\n \"php*\",\n \"osascript\",\n \"pwsh\",\n \"curl\",\n \"wget\",\n \"cp\",\n \"mv\",\n \"base64\",\n \"launchctl\"\n ) and\n /* noisy false positives related to product version discovery and office errors reporting */\n not process.args:\n (\n \"ProductVersion\",\n \"hw.model\",\n \"ioreg\",\n \"ProductName\",\n \"ProductUserVisibleVersion\",\n \"ProductBuildVersion\",\n \"/Library/Application Support/Microsoft/MERP*/Microsoft Error Reporting.app/Contents/MacOS/Microsoft Error Reporting\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},{"name":"Suspicious macOS MS Office Child Process v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious child processes of frequently targeted Microsoft Office applications (Word, PowerPoint, and Excel). These child processes are often launched during exploitation of Office applications or by documents with malicious macros.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.malwarebytes.com/cybercrime/2017/02/microsoft-office-macro-malware-targets-macs/"],"tags":["Elastic","Host","macOS","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.parent.name:(\"Microsoft Word\", \"Microsoft PowerPoint\", \"Microsoft Excel\") and\n process.name:\n (\n \"bash\",\n \"dash\",\n \"sh\",\n \"tcsh\",\n \"csh\",\n \"zsh\",\n \"ksh\",\n \"fish\",\n \"python*\",\n \"perl*\",\n \"php*\",\n \"osascript\",\n \"pwsh\",\n \"curl\",\n \"wget\",\n \"cp\",\n \"mv\",\n \"base64\",\n \"launchctl\"\n ) and\n /* noisy false positives related to product version discovery and office errors reporting */\n not process.args:\n (\n \"ProductVersion\",\n \"hw.model\",\n \"ioreg\",\n \"ProductName\",\n \"ProductUserVisibleVersion\",\n \"ProductBuildVersion\",\n \"/Library/Application Support/Microsoft/MERP*/Microsoft Error Reporting.app/Contents/MacOS/Microsoft Error Reporting\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},{"name":"Suspicious macOS MS Office Child Process v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious child processes of frequently targeted Microsoft Office applications (Word, PowerPoint, and Excel). These child processes are often launched during exploitation of Office applications or by documents with malicious macros.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.malwarebytes.com/cybercrime/2017/02/microsoft-office-macro-malware-targets-macs/"],"tags":["Elastic","Host","macOS","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.parent.name:(\"Microsoft Word\", \"Microsoft PowerPoint\", \"Microsoft Excel\") and\n process.name:\n (\n \"bash\",\n \"dash\",\n \"sh\",\n \"tcsh\",\n \"csh\",\n \"zsh\",\n \"ksh\",\n \"fish\",\n \"python*\",\n \"perl*\",\n \"php*\",\n \"osascript\",\n \"pwsh\",\n \"curl\",\n \"wget\",\n \"cp\",\n \"mv\",\n \"base64\",\n \"launchctl\"\n ) and\n /* noisy false positives related to product version discovery and office errors reporting */\n not process.args:\n (\n \"ProductVersion\",\n \"hw.model\",\n \"ioreg\",\n \"ProductName\",\n \"ProductUserVisibleVersion\",\n \"ProductBuildVersion\",\n \"/Library/Application Support/Microsoft/MERP*/Microsoft Error Reporting.app/Contents/MacOS/Microsoft Error Reporting\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]}]},"id":"66da12b1-ac83-40eb-814c-07ed1d82b7b9","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/670b3b5a-35e5-42db-bd36-6c5b9b4b7313.json b/fleet-packages/detection-rules-composite/kibana/security_rule/670b3b5a-35e5-42db-bd36-6c5b9b4b7313.json new file mode 100644 index 0000000000000..031b366a4f5c3 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/670b3b5a-35e5-42db-bd36-6c5b9b4b7313.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"670b3b5a-35e5-42db-bd36-6c5b9b4b7313","versions":[{"name":"Modification of the msPKIAccountCredentials v1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identify the modification of the msPKIAccountCredentials attribute in an Active Directory User Object. Attackers can abuse the credentials roaming feature to overwrite an arbitrary file for privilege escalation. ms-PKI-AccountCredentials contains binary large objects (BLOBs) of encrypted credential objects from the credential manager store, private keys, certificates, and certificate requests.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.mandiant.com/resources/blog/apt29-windows-credential-roaming","https://social.technet.microsoft.com/wiki/contents/articles/11483.windows-credential-roaming.aspx","https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-5136"],"tags":["Elastic","Host","Windows","Threat Detection","Active Directory","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"Directory Service Changes\" and event.code:\"5136\" and\n winlog.event_data.AttributeLDAPDisplayName:\"msPKIAccountCredentials\" and winlog.event_data.OperationType:\"%%14674\" and\n not winlog.event_data.SubjectUserSid : \"S-1-5-18\"\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.OperationType","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectUserSid","type":"keyword"}],"setup":"The 'Audit Directory Service Changes' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```\n\nThe above policy does not cover User objects, so we need to set up an AuditRule using https://github.com/OTRF/Set-AuditRule.\nAs this specifies the msDS-KeyCredentialLink Attribute GUID, it is expected to be low noise.\n\n```\nSet-AuditRule -AdObjectPath 'AD:\\CN=Users,DC=Domain,DC=com' -WellKnownSidType WorldSid -Rights WriteProperty -InheritanceFlags Children -AttributeGUID 5b47d60f-6090-40b2-9f37-2a4de88f3063 -AuditFlags Success\n```"},{"name":"Modification of the msPKIAccountCredentials v1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identify the modification of the msPKIAccountCredentials attribute in an Active Directory User Object. Attackers can abuse the credentials roaming feature to overwrite an arbitrary file for privilege escalation. ms-PKI-AccountCredentials contains binary large objects (BLOBs) of encrypted credential objects from the credential manager store, private keys, certificates, and certificate requests.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.mandiant.com/resources/blog/apt29-windows-credential-roaming","https://social.technet.microsoft.com/wiki/contents/articles/11483.windows-credential-roaming.aspx","https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-5136"],"tags":["Elastic","Host","Windows","Threat Detection","Active Directory","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"Directory Service Changes\" and event.code:\"5136\" and\n winlog.event_data.AttributeLDAPDisplayName:\"msPKIAccountCredentials\" and winlog.event_data.OperationType:\"%%14674\" and\n not winlog.event_data.SubjectUserSid : \"S-1-5-18\"\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.OperationType","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectUserSid","type":"keyword"}],"setup":"The 'Audit Directory Service Changes' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```\n\nThe above policy does not cover User objects, so we need to set up an AuditRule using https://github.com/OTRF/Set-AuditRule.\nAs this specifies the msDS-KeyCredentialLink Attribute GUID, it is expected to be low noise.\n\n```\nSet-AuditRule -AdObjectPath 'AD:\\CN=Users,DC=Domain,DC=com' -WellKnownSidType WorldSid -Rights WriteProperty -InheritanceFlags Children -AttributeGUID 5b47d60f-6090-40b2-9f37-2a4de88f3063 -AuditFlags Success\n```"},{"name":"Modification of the msPKIAccountCredentials v1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identify the modification of the msPKIAccountCredentials attribute in an Active Directory User Object. Attackers can abuse the credentials roaming feature to overwrite an arbitrary file for privilege escalation. ms-PKI-AccountCredentials contains binary large objects (BLOBs) of encrypted credential objects from the credential manager store, private keys, certificates, and certificate requests.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.mandiant.com/resources/blog/apt29-windows-credential-roaming","https://social.technet.microsoft.com/wiki/contents/articles/11483.windows-credential-roaming.aspx","https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-5136"],"tags":["Elastic","Host","Windows","Threat Detection","Active Directory","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"Directory Service Changes\" and event.code:\"5136\" and\n winlog.event_data.AttributeLDAPDisplayName:\"msPKIAccountCredentials\" and winlog.event_data.OperationType:\"%%14674\" and\n not winlog.event_data.SubjectUserSid : \"S-1-5-18\"\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.OperationType","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectUserSid","type":"keyword"}],"setup":"The 'Audit Directory Service Changes' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```\n\nThe above policy does not cover User objects, so we need to set up an AuditRule using https://github.com/OTRF/Set-AuditRule.\nAs this specifies the msDS-KeyCredentialLink Attribute GUID, it is expected to be low noise.\n\n```\nSet-AuditRule -AdObjectPath 'AD:\\CN=Users,DC=Domain,DC=com' -WellKnownSidType WorldSid -Rights WriteProperty -InheritanceFlags Children -AttributeGUID 5b47d60f-6090-40b2-9f37-2a4de88f3063 -AuditFlags Success\n```"}]},"id":"670b3b5a-35e5-42db-bd36-6c5b9b4b7313","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/6731fbf2-8f28-49ed-9ab9-9a918ceb5a45.json b/fleet-packages/detection-rules-composite/kibana/security_rule/6731fbf2-8f28-49ed-9ab9-9a918ceb5a45.json new file mode 100644 index 0000000000000..c44a493805f6e --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/6731fbf2-8f28-49ed-9ab9-9a918ceb5a45.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"6731fbf2-8f28-49ed-9ab9-9a918ceb5a45","versions":[{"name":"Attempt to Modify an Okta Policy v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to modify an Okta policy. An adversary may attempt to modify an Okta policy in order to weaken an organization's security controls. For example, an adversary may attempt to modify an Okta multi-factor authentication (MFA) policy in order to weaken the authentication requirements for user accounts.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Okta policies are regularly modified in your organization."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.lifecycle.update\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Modify an Okta Policy v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to modify an Okta policy. An adversary may attempt to modify an Okta policy in order to weaken an organization's security controls. For example, an adversary may attempt to modify an Okta multi-factor authentication (MFA) policy in order to weaken the authentication requirements for user accounts.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Okta policies are regularly modified in your organization."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.lifecycle.update\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Modify an Okta Policy v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to modify an Okta policy. An adversary may attempt to modify an Okta policy in order to weaken an organization's security controls. For example, an adversary may attempt to modify an Okta multi-factor authentication (MFA) policy in order to weaken the authentication requirements for user accounts.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Okta policies are regularly modified in your organization."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.lifecycle.update\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"6731fbf2-8f28-49ed-9ab9-9a918ceb5a45","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/675239ea-c1bc-4467-a6d3-b9e2cc7f676d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/675239ea-c1bc-4467-a6d3-b9e2cc7f676d.json new file mode 100644 index 0000000000000..0567c25c6bb13 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/675239ea-c1bc-4467-a6d3-b9e2cc7f676d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"675239ea-c1bc-4467-a6d3-b9e2cc7f676d","versions":[{"name":"O365 Mailbox Audit Logging Bypass v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the occurrence of mailbox audit bypass associations. The mailbox audit is responsible for logging specified mailbox events (like accessing a folder or a message or permanently deleting a message). However, actions taken by some authorized accounts, such as accounts used by third-party tools or accounts used for lawful monitoring, can create a large number of mailbox audit log entries and may not be of interest to your organization. Because of this, administrators can create bypass associations, allowing certain accounts to perform their tasks without being logged. Attackers can abuse this allowlist mechanism to conceal actions taken, as the mailbox audit will log no activity done by the account.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate allowlisting of noisy accounts"],"from":"now-30m","references":["https://twitter.com/misconfig/status/1476144066807140355"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.action:Set-MailboxAuditBypassAssociation and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"O365 Mailbox Audit Logging Bypass v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the occurrence of mailbox audit bypass associations. The mailbox audit is responsible for logging specified mailbox events (like accessing a folder or a message or permanently deleting a message). However, actions taken by some authorized accounts, such as accounts used by third-party tools or accounts used for lawful monitoring, can create a large number of mailbox audit log entries and may not be of interest to your organization. Because of this, administrators can create bypass associations, allowing certain accounts to perform their tasks without being logged. Attackers can abuse this allowlist mechanism to conceal actions taken, as the mailbox audit will log no activity done by the account.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate allowlisting of noisy accounts"],"from":"now-30m","references":["https://twitter.com/misconfig/status/1476144066807140355"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.action:Set-MailboxAuditBypassAssociation and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"O365 Mailbox Audit Logging Bypass v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the occurrence of mailbox audit bypass associations. The mailbox audit is responsible for logging specified mailbox events (like accessing a folder or a message or permanently deleting a message). However, actions taken by some authorized accounts, such as accounts used by third-party tools or accounts used for lawful monitoring, can create a large number of mailbox audit log entries and may not be of interest to your organization. Because of this, administrators can create bypass associations, allowing certain accounts to perform their tasks without being logged. Attackers can abuse this allowlist mechanism to conceal actions taken, as the mailbox audit will log no activity done by the account.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate allowlisting of noisy accounts"],"from":"now-30m","references":["https://twitter.com/misconfig/status/1476144066807140355"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.action:Set-MailboxAuditBypassAssociation and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"675239ea-c1bc-4467-a6d3-b9e2cc7f676d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/676cff2b-450b-4cf1-8ed2-c0c58a4a2dd7.json b/fleet-packages/detection-rules-composite/kibana/security_rule/676cff2b-450b-4cf1-8ed2-c0c58a4a2dd7.json new file mode 100644 index 0000000000000..f817c015d28c8 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/676cff2b-450b-4cf1-8ed2-c0c58a4a2dd7.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"676cff2b-450b-4cf1-8ed2-c0c58a4a2dd7","versions":[{"name":"Attempt to Revoke Okta API Token v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to revoke an Okta API token. An adversary may attempt to revoke or delete an Okta API token to disrupt an organization's business operations.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If the behavior of revoking Okta API tokens is expected, consider adding exceptions to this rule to filter false positives."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:system.api_token.revoke\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Revoke Okta API Token v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to revoke an Okta API token. An adversary may attempt to revoke or delete an Okta API token to disrupt an organization's business operations.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If the behavior of revoking Okta API tokens is expected, consider adding exceptions to this rule to filter false positives."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:system.api_token.revoke\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Revoke Okta API Token v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to revoke an Okta API token. An adversary may attempt to revoke or delete an Okta API token to disrupt an organization's business operations.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If the behavior of revoking Okta API tokens is expected, consider adding exceptions to this rule to filter false positives."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:system.api_token.revoke\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"676cff2b-450b-4cf1-8ed2-c0c58a4a2dd7","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/67f8443a-4ff3-4a70-916d-3cfa3ae9f02b.json b/fleet-packages/detection-rules-composite/kibana/security_rule/67f8443a-4ff3-4a70-916d-3cfa3ae9f02b.json new file mode 100644 index 0000000000000..ec069d15ad2b1 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/67f8443a-4ff3-4a70-916d-3cfa3ae9f02b.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"67f8443a-4ff3-4a70-916d-3cfa3ae9f02b","versions":[{"name":"High Number of Process Terminations v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule identifies a high number (10) of process terminations via pkill from the same host within a short time period.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating High Number of Process Terminations\n\nAttackers can kill processes for a variety of purposes. For example, they can kill process associated\nwith business applications and databases to release the lock on files used by these applications so they may be\nencrypted,or stop security and backup solutions, etc.\n\nThis rule identifies a high number (10) of process terminations via pkill from the same\nhost within a short time period.\n\n#### Possible investigation steps\n\nDetection alerts from this rule indicate High Number of Process Terminations from the same host\nHere are some possible avenues of investigation:\n- Examine the entry point to the host and user in action via the Analyse View.\n - Identify the session entry leader and session user\n- Examine the contents of session leading to the process termination(s) via the Session View.\n - Examine the command execution pattern in the session, which may lead to suspricous activities\n- Examine the process killed during the malicious execution\n - Identify imment threat to the system from the process killed\n - Take necessary incident response actions to respawn necessary process\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further destructive behavior, which is commonly associated with this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system or restore it to the operational state.\n- If any other destructive action was identified on the host, it is recommended to prioritize the investigation and look\nfor ransomware preparation and execution activities.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"query":"event.category:process and event.type:start and process.name:\"pkill\" and process.args:\"-f\"\n","threshold":{"field":["host.id"],"value":10},"type":"threshold","index":["logs-endpoint.events.*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"High Number of Process Terminations v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule identifies a high number (10) of process terminations via pkill from the same host within a short time period.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating High Number of Process Terminations\n\nAttackers can kill processes for a variety of purposes. For example, they can kill process associated\nwith business applications and databases to release the lock on files used by these applications so they may be\nencrypted,or stop security and backup solutions, etc.\n\nThis rule identifies a high number (10) of process terminations via pkill from the same\nhost within a short time period.\n\n#### Possible investigation steps\n\nDetection alerts from this rule indicate High Number of Process Terminations from the same host\nHere are some possible avenues of investigation:\n- Examine the entry point to the host and user in action via the Analyse View.\n - Identify the session entry leader and session user\n- Examine the contents of session leading to the process termination(s) via the Session View.\n - Examine the command execution pattern in the session, which may lead to suspricous activities\n- Examine the process killed during the malicious execution\n - Identify imment threat to the system from the process killed\n - Take necessary incident response actions to respawn necessary process\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further destructive behavior, which is commonly associated with this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system or restore it to the operational state.\n- If any other destructive action was identified on the host, it is recommended to prioritize the investigation and look\nfor ransomware preparation and execution activities.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"query":"event.category:process and event.type:start and process.name:\"pkill\" and process.args:\"-f\"\n","threshold":{"field":["host.id"],"value":10},"type":"threshold","index":["logs-endpoint.events.*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"High Number of Process Terminations v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule identifies a high number (10) of process terminations via pkill from the same host within a short time period.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating High Number of Process Terminations\n\nAttackers can kill processes for a variety of purposes. For example, they can kill process associated\nwith business applications and databases to release the lock on files used by these applications so they may be\nencrypted,or stop security and backup solutions, etc.\n\nThis rule identifies a high number (10) of process terminations via pkill from the same\nhost within a short time period.\n\n#### Possible investigation steps\n\nDetection alerts from this rule indicate High Number of Process Terminations from the same host\nHere are some possible avenues of investigation:\n- Examine the entry point to the host and user in action via the Analyse View.\n - Identify the session entry leader and session user\n- Examine the contents of session leading to the process termination(s) via the Session View.\n - Examine the command execution pattern in the session, which may lead to suspricous activities\n- Examine the process killed during the malicious execution\n - Identify imment threat to the system from the process killed\n - Take necessary incident response actions to respawn necessary process\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further destructive behavior, which is commonly associated with this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system or restore it to the operational state.\n- If any other destructive action was identified on the host, it is recommended to prioritize the investigation and look\nfor ransomware preparation and execution activities.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"query":"event.category:process and event.type:start and process.name:\"pkill\" and process.args:\"-f\"\n","threshold":{"field":["host.id"],"value":10},"type":"threshold","index":["logs-endpoint.events.*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"67f8443a-4ff3-4a70-916d-3cfa3ae9f02b","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/6839c821-011d-43bd-bd5b-acff00257226.json b/fleet-packages/detection-rules-composite/kibana/security_rule/6839c821-011d-43bd-bd5b-acff00257226.json new file mode 100644 index 0000000000000..51c086f8a47a5 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/6839c821-011d-43bd-bd5b-acff00257226.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"6839c821-011d-43bd-bd5b-acff00257226","versions":[{"name":"Image File Execution Options Injection v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The Debugger and SilentProcessExit registry keys can allow an adversary to intercept the execution of files, causing a different process to be executed. This functionality can be abused by an adversary to establish persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://oddvar.moe/2018/04/10/persistence-using-globalflags-in-image-file-execution-options-hidden-from-autoruns-exe/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.012","name":"Image File Execution Options Injection","reference":"https://attack.mitre.org/techniques/T1546/012/"}]}]}],"language":"eql","query":"registry where length(registry.data.strings) > 0 and\n registry.path : (\"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Image File Execution Options\\\\*.exe\\\\Debugger\",\n \"HKLM\\\\SOFTWARE\\\\WOW6432Node\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Image File Execution Options\\\\*\\\\Debugger\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\SilentProcessExit\\\\*\\\\MonitorProcess\",\n \"HKLM\\\\SOFTWARE\\\\WOW6432Node\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\SilentProcessExit\\\\*\\\\MonitorProcess\") and\n /* add FPs here */\n not registry.data.strings regex~ (\"\"\"C:\\\\Program Files( \\(x86\\))?\\\\ThinKiosk\\\\thinkiosk\\.exe\"\"\", \"\"\".*\\\\PSAppDeployToolkit\\\\.*\"\"\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},{"name":"Image File Execution Options Injection v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The Debugger and SilentProcessExit registry keys can allow an adversary to intercept the execution of files, causing a different process to be executed. This functionality can be abused by an adversary to establish persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://oddvar.moe/2018/04/10/persistence-using-globalflags-in-image-file-execution-options-hidden-from-autoruns-exe/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.012","name":"Image File Execution Options Injection","reference":"https://attack.mitre.org/techniques/T1546/012/"}]}]}],"language":"eql","query":"registry where length(registry.data.strings) > 0 and\n registry.path : (\"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Image File Execution Options\\\\*.exe\\\\Debugger\",\n \"HKLM\\\\SOFTWARE\\\\WOW6432Node\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Image File Execution Options\\\\*\\\\Debugger\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\SilentProcessExit\\\\*\\\\MonitorProcess\",\n \"HKLM\\\\SOFTWARE\\\\WOW6432Node\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\SilentProcessExit\\\\*\\\\MonitorProcess\") and\n /* add FPs here */\n not registry.data.strings regex~ (\"\"\"C:\\\\Program Files( \\(x86\\))?\\\\ThinKiosk\\\\thinkiosk\\.exe\"\"\", \"\"\".*\\\\PSAppDeployToolkit\\\\.*\"\"\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},{"name":"Image File Execution Options Injection v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The Debugger and SilentProcessExit registry keys can allow an adversary to intercept the execution of files, causing a different process to be executed. This functionality can be abused by an adversary to establish persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://oddvar.moe/2018/04/10/persistence-using-globalflags-in-image-file-execution-options-hidden-from-autoruns-exe/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.012","name":"Image File Execution Options Injection","reference":"https://attack.mitre.org/techniques/T1546/012/"}]}]}],"language":"eql","query":"registry where length(registry.data.strings) > 0 and\n registry.path : (\"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Image File Execution Options\\\\*.exe\\\\Debugger\",\n \"HKLM\\\\SOFTWARE\\\\WOW6432Node\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Image File Execution Options\\\\*\\\\Debugger\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\SilentProcessExit\\\\*\\\\MonitorProcess\",\n \"HKLM\\\\SOFTWARE\\\\WOW6432Node\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\SilentProcessExit\\\\*\\\\MonitorProcess\") and\n /* add FPs here */\n not registry.data.strings regex~ (\"\"\"C:\\\\Program Files( \\(x86\\))?\\\\ThinKiosk\\\\thinkiosk\\.exe\"\"\", \"\"\".*\\\\PSAppDeployToolkit\\\\.*\"\"\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]}]},"id":"6839c821-011d-43bd-bd5b-acff00257226","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/684554fc-0777-47ce-8c9b-3d01f198d7f8.json b/fleet-packages/detection-rules-composite/kibana/security_rule/684554fc-0777-47ce-8c9b-3d01f198d7f8.json new file mode 100644 index 0000000000000..e4b2db56b3652 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/684554fc-0777-47ce-8c9b-3d01f198d7f8.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"684554fc-0777-47ce-8c9b-3d01f198d7f8","versions":[{"name":"New or Modified Federation Domain v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a new or modified federation domain, which can be used to create a trust between O365 and an external identity provider.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-accepteddomain?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/remove-federateddomain?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/new-accepteddomain?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/add-federateddomain?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/set-accepteddomain?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/msonline/set-msoldomainfederationsettings?view=azureadps-1.0"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1484","name":"Domain Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/","subtechnique":[{"id":"T1484.002","name":"Domain Trust Modification","reference":"https://attack.mitre.org/techniques/T1484/002/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:(\"Set-AcceptedDomain\" or\n\"Set-MsolDomainFederationSettings\" or \"Add-FederatedDomain\" or \"New-AcceptedDomain\" or \"Remove-AcceptedDomain\" or \"Remove-FederatedDomain\") and\nevent.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"New or Modified Federation Domain v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a new or modified federation domain, which can be used to create a trust between O365 and an external identity provider.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-accepteddomain?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/remove-federateddomain?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/new-accepteddomain?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/add-federateddomain?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/set-accepteddomain?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/msonline/set-msoldomainfederationsettings?view=azureadps-1.0"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1484","name":"Domain Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/","subtechnique":[{"id":"T1484.002","name":"Domain Trust Modification","reference":"https://attack.mitre.org/techniques/T1484/002/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:(\"Set-AcceptedDomain\" or\n\"Set-MsolDomainFederationSettings\" or \"Add-FederatedDomain\" or \"New-AcceptedDomain\" or \"Remove-AcceptedDomain\" or \"Remove-FederatedDomain\") and\nevent.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"New or Modified Federation Domain v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a new or modified federation domain, which can be used to create a trust between O365 and an external identity provider.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-accepteddomain?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/remove-federateddomain?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/new-accepteddomain?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/add-federateddomain?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/set-accepteddomain?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/msonline/set-msoldomainfederationsettings?view=azureadps-1.0"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1484","name":"Domain Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/","subtechnique":[{"id":"T1484.002","name":"Domain Trust Modification","reference":"https://attack.mitre.org/techniques/T1484/002/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:(\"Set-AcceptedDomain\" or\n\"Set-MsolDomainFederationSettings\" or \"Add-FederatedDomain\" or \"New-AcceptedDomain\" or \"Remove-AcceptedDomain\" or \"Remove-FederatedDomain\") and\nevent.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"684554fc-0777-47ce-8c9b-3d01f198d7f8","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/6885d2ae-e008-4762-b98a-e8e1cd3a81e9.json b/fleet-packages/detection-rules-composite/kibana/security_rule/6885d2ae-e008-4762-b98a-e8e1cd3a81e9.json new file mode 100644 index 0000000000000..2852e2c2ebbe3 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/6885d2ae-e008-4762-b98a-e8e1cd3a81e9.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"6885d2ae-e008-4762-b98a-e8e1cd3a81e9","versions":[{"name":"Threat Detected by Okta ThreatInsight v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when Okta ThreatInsight identifies a request from a malicious IP address. Investigating requests from IP addresses identified as malicious by Okta ThreatInsight can help security teams monitor for and respond to credential based attacks against their organization, such as brute force and password spraying attacks.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:security.threat.detected\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Threat Detected by Okta ThreatInsight v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when Okta ThreatInsight identifies a request from a malicious IP address. Investigating requests from IP addresses identified as malicious by Okta ThreatInsight can help security teams monitor for and respond to credential based attacks against their organization, such as brute force and password spraying attacks.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:security.threat.detected\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Threat Detected by Okta ThreatInsight v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when Okta ThreatInsight identifies a request from a malicious IP address. Investigating requests from IP addresses identified as malicious by Okta ThreatInsight can help security teams monitor for and respond to credential based attacks against their organization, such as brute force and password spraying attacks.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:security.threat.detected\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"6885d2ae-e008-4762-b98a-e8e1cd3a81e9","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/68921d85-d0dc-48b3-865f-43291ca2c4f2.json b/fleet-packages/detection-rules-composite/kibana/security_rule/68921d85-d0dc-48b3-865f-43291ca2c4f2.json new file mode 100644 index 0000000000000..56461e5f2b335 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/68921d85-d0dc-48b3-865f-43291ca2c4f2.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"68921d85-d0dc-48b3-865f-43291ca2c4f2","versions":[{"name":"Persistence via TelemetryController Scheduled Task Hijack v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the successful hijack of Microsoft Compatibility Appraiser scheduled task to establish persistence with an integrity level of system.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.trustedsec.com/blog/abusing-windows-telemetry-for-persistence/?utm_content=131234033&utm_medium=social&utm_source=twitter&hss_channel=tw-403811306"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"CompatTelRunner.exe\" and process.args : \"-cv*\" and\n not process.name : (\"conhost.exe\",\n \"DeviceCensus.exe\",\n \"CompatTelRunner.exe\",\n \"DismHost.exe\",\n \"rundll32.exe\",\n \"powershell.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Persistence via TelemetryController Scheduled Task Hijack v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the successful hijack of Microsoft Compatibility Appraiser scheduled task to establish persistence with an integrity level of system.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.trustedsec.com/blog/abusing-windows-telemetry-for-persistence/?utm_content=131234033&utm_medium=social&utm_source=twitter&hss_channel=tw-403811306"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"CompatTelRunner.exe\" and process.args : \"-cv*\" and\n not process.name : (\"conhost.exe\",\n \"DeviceCensus.exe\",\n \"CompatTelRunner.exe\",\n \"DismHost.exe\",\n \"rundll32.exe\",\n \"powershell.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Persistence via TelemetryController Scheduled Task Hijack v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the successful hijack of Microsoft Compatibility Appraiser scheduled task to establish persistence with an integrity level of system.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.trustedsec.com/blog/abusing-windows-telemetry-for-persistence/?utm_content=131234033&utm_medium=social&utm_source=twitter&hss_channel=tw-403811306"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"CompatTelRunner.exe\" and process.args : \"-cv*\" and\n not process.name : (\"conhost.exe\",\n \"DeviceCensus.exe\",\n \"CompatTelRunner.exe\",\n \"DismHost.exe\",\n \"rundll32.exe\",\n \"powershell.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"68921d85-d0dc-48b3-865f-43291ca2c4f2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/68994a6c-c7ba-4e82-b476-26a26877adf6.json b/fleet-packages/detection-rules-composite/kibana/security_rule/68994a6c-c7ba-4e82-b476-26a26877adf6.json new file mode 100644 index 0000000000000..5322051f36cdb --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/68994a6c-c7ba-4e82-b476-26a26877adf6.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"68994a6c-c7ba-4e82-b476-26a26877adf6","versions":[{"name":"Google Workspace Admin Role Assigned to a User v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Assigning the administrative role to a user will grant them access to the Google Admin console and grant them administrator privileges which allow them to access and manage various resources and applications. An adversary may create a new administrator account for persistence or apply the admin role to an existing user to carry out further intrusion efforts. Users with super-admin privileges can bypass single-sign on if enabled in Google Workspace.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Google Workspace admin role assignments may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/172176?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.003","name":"Additional Cloud Roles","reference":"https://attack.mitre.org/techniques/T1098/003/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.category:\"iam\" and event.action:\"ASSIGN_ROLE\"\n and google_workspace.event.type:\"DELEGATED_ADMIN_SETTINGS\" and google_workspace.admin.role.name : *_ADMIN_ROLE\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.role.name","type":"keyword"},{"ecs":false,"name":"google_workspace.event.type","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Google Workspace Admin Role Assigned to a User v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Assigning the administrative role to a user will grant them access to the Google Admin console and grant them administrator privileges which allow them to access and manage various resources and applications. An adversary may create a new administrator account for persistence or apply the admin role to an existing user to carry out further intrusion efforts. Users with super-admin privileges can bypass single-sign on if enabled in Google Workspace.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Google Workspace admin role assignments may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/172176?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.003","name":"Additional Cloud Roles","reference":"https://attack.mitre.org/techniques/T1098/003/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.category:\"iam\" and event.action:\"ASSIGN_ROLE\"\n and google_workspace.event.type:\"DELEGATED_ADMIN_SETTINGS\" and google_workspace.admin.role.name : *_ADMIN_ROLE\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.role.name","type":"keyword"},{"ecs":false,"name":"google_workspace.event.type","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Google Workspace Admin Role Assigned to a User v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Assigning the administrative role to a user will grant them access to the Google Admin console and grant them administrator privileges which allow them to access and manage various resources and applications. An adversary may create a new administrator account for persistence or apply the admin role to an existing user to carry out further intrusion efforts. Users with super-admin privileges can bypass single-sign on if enabled in Google Workspace.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Google Workspace admin role assignments may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/172176?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.003","name":"Additional Cloud Roles","reference":"https://attack.mitre.org/techniques/T1098/003/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.category:\"iam\" and event.action:\"ASSIGN_ROLE\"\n and google_workspace.event.type:\"DELEGATED_ADMIN_SETTINGS\" and google_workspace.admin.role.name : *_ADMIN_ROLE\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.role.name","type":"keyword"},{"ecs":false,"name":"google_workspace.event.type","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"68994a6c-c7ba-4e82-b476-26a26877adf6","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/689b9d57-e4d5-4357-ad17-9c334609d79a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/689b9d57-e4d5-4357-ad17-9c334609d79a.json new file mode 100644 index 0000000000000..855f8e68da875 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/689b9d57-e4d5-4357-ad17-9c334609d79a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"689b9d57-e4d5-4357-ad17-9c334609d79a","versions":[{"name":"Scheduled Task Created by a Windows Script v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A scheduled task was created by a Windows script via cscript.exe, wscript.exe or powershell.exe. This can be abused by an adversary to establish persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\nDecode the base64 encoded Tasks Actions registry value to investigate the task's configured action.","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan = 30s\n [any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : \"taskschd.dll\" or file.name : \"taskschd.dll\") and\n process.name : (\"cscript.exe\", \"wscript.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\")]\n [registry where registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Schedule\\\\TaskCache\\\\Tasks\\\\*\\\\Actions\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}]},{"name":"Scheduled Task Created by a Windows Script v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A scheduled task was created by a Windows script via cscript.exe, wscript.exe or powershell.exe. This can be abused by an adversary to establish persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\nDecode the base64 encoded Tasks Actions registry value to investigate the task's configured action.","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan = 30s\n [any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : \"taskschd.dll\" or file.name : \"taskschd.dll\") and\n process.name : (\"cscript.exe\", \"wscript.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\")]\n [registry where registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Schedule\\\\TaskCache\\\\Tasks\\\\*\\\\Actions\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}]},{"name":"Scheduled Task Created by a Windows Script v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A scheduled task was created by a Windows script via cscript.exe, wscript.exe or powershell.exe. This can be abused by an adversary to establish persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\nDecode the base64 encoded Tasks Actions registry value to investigate the task's configured action.","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan = 30s\n [any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : \"taskschd.dll\" or file.name : \"taskschd.dll\") and\n process.name : (\"cscript.exe\", \"wscript.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\")]\n [registry where registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Schedule\\\\TaskCache\\\\Tasks\\\\*\\\\Actions\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}]}]},"id":"689b9d57-e4d5-4357-ad17-9c334609d79a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/68a7a5a5-a2fc-4a76-ba9f-26849de881b4.json b/fleet-packages/detection-rules-composite/kibana/security_rule/68a7a5a5-a2fc-4a76-ba9f-26849de881b4.json new file mode 100644 index 0000000000000..b36845d96844b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/68a7a5a5-a2fc-4a76-ba9f-26849de881b4.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"68a7a5a5-a2fc-4a76-ba9f-26849de881b4","versions":[{"name":"AWS CloudWatch Log Group Deletion v103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a specified AWS CloudWatch log group. When a log group is deleted, all the archived log events associated with the log group are also permanently deleted.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudWatch Log Group Deletion\n\nAmazon CloudWatch is a monitoring and observability service that collects monitoring and operational data in the form of\nlogs, metrics, and events for resources and applications. This data can be used to detect anomalous behavior in your environments, set alarms, visualize\nlogs and metrics side by side, take automated actions, troubleshoot issues, and discover insights to keep your\napplications running smoothly.\n\nA log group is a group of log streams that share the same retention, monitoring, and access control settings. You can\ndefine log groups and specify which streams to put into each group. There is no limit on the number of log streams that\ncan belong to one log group.\n\nThis rule looks for the deletion of a log group using the API `DeleteLogGroup` action. Attackers can do this to cover\ntheir tracks and impact security monitoring that relies on these sources.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Investigate the deleted log group's criticality and whether the responsible team is aware of the deletion.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Log group deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/logs/delete-log-group.html","https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteLogGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:logs.amazonaws.com and event.action:DeleteLogGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS CloudWatch Log Group Deletion v103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a specified AWS CloudWatch log group. When a log group is deleted, all the archived log events associated with the log group are also permanently deleted.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudWatch Log Group Deletion\n\nAmazon CloudWatch is a monitoring and observability service that collects monitoring and operational data in the form of\nlogs, metrics, and events for resources and applications. This data can be used to detect anomalous behavior in your environments, set alarms, visualize\nlogs and metrics side by side, take automated actions, troubleshoot issues, and discover insights to keep your\napplications running smoothly.\n\nA log group is a group of log streams that share the same retention, monitoring, and access control settings. You can\ndefine log groups and specify which streams to put into each group. There is no limit on the number of log streams that\ncan belong to one log group.\n\nThis rule looks for the deletion of a log group using the API `DeleteLogGroup` action. Attackers can do this to cover\ntheir tracks and impact security monitoring that relies on these sources.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Investigate the deleted log group's criticality and whether the responsible team is aware of the deletion.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Log group deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/logs/delete-log-group.html","https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteLogGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:logs.amazonaws.com and event.action:DeleteLogGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS CloudWatch Log Group Deletion v103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a specified AWS CloudWatch log group. When a log group is deleted, all the archived log events associated with the log group are also permanently deleted.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudWatch Log Group Deletion\n\nAmazon CloudWatch is a monitoring and observability service that collects monitoring and operational data in the form of\nlogs, metrics, and events for resources and applications. This data can be used to detect anomalous behavior in your environments, set alarms, visualize\nlogs and metrics side by side, take automated actions, troubleshoot issues, and discover insights to keep your\napplications running smoothly.\n\nA log group is a group of log streams that share the same retention, monitoring, and access control settings. You can\ndefine log groups and specify which streams to put into each group. There is no limit on the number of log streams that\ncan belong to one log group.\n\nThis rule looks for the deletion of a log group using the API `DeleteLogGroup` action. Attackers can do this to cover\ntheir tracks and impact security monitoring that relies on these sources.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Investigate the deleted log group's criticality and whether the responsible team is aware of the deletion.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Log group deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/logs/delete-log-group.html","https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteLogGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:logs.amazonaws.com and event.action:DeleteLogGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"68a7a5a5-a2fc-4a76-ba9f-26849de881b4","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/68d56fdc-7ffa-4419-8e95-81641bd6f845.json b/fleet-packages/detection-rules-composite/kibana/security_rule/68d56fdc-7ffa-4419-8e95-81641bd6f845.json new file mode 100644 index 0000000000000..aeb17d73b57e6 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/68d56fdc-7ffa-4419-8e95-81641bd6f845.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"68d56fdc-7ffa-4419-8e95-81641bd6f845","versions":[{"name":"UAC Bypass via ICMLuaUtil Elevated COM Interface v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies User Account Control (UAC) bypass attempts via the ICMLuaUtil Elevated COM interface. Attackers may attempt to bypass UAC to stealthily execute code with elevated permissions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name == \"dllhost.exe\" and\n process.parent.args in (\"/Processid:{3E5FC7F9-9A51-4367-9063-A120244FBEC7}\", \"/Processid:{D2E7041B-2927-42FB-8E9F-7CE93B6DC937}\") and\n process.pe.original_file_name != \"WerFault.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"UAC Bypass via ICMLuaUtil Elevated COM Interface v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies User Account Control (UAC) bypass attempts via the ICMLuaUtil Elevated COM interface. Attackers may attempt to bypass UAC to stealthily execute code with elevated permissions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name == \"dllhost.exe\" and\n process.parent.args in (\"/Processid:{3E5FC7F9-9A51-4367-9063-A120244FBEC7}\", \"/Processid:{D2E7041B-2927-42FB-8E9F-7CE93B6DC937}\") and\n process.pe.original_file_name != \"WerFault.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"UAC Bypass via ICMLuaUtil Elevated COM Interface v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies User Account Control (UAC) bypass attempts via the ICMLuaUtil Elevated COM interface. Attackers may attempt to bypass UAC to stealthily execute code with elevated permissions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name == \"dllhost.exe\" and\n process.parent.args in (\"/Processid:{3E5FC7F9-9A51-4367-9063-A120244FBEC7}\", \"/Processid:{D2E7041B-2927-42FB-8E9F-7CE93B6DC937}\") and\n process.pe.original_file_name != \"WerFault.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"68d56fdc-7ffa-4419-8e95-81641bd6f845","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/6951f15e-533c-4a60-8014-a3c3ab851a1b.json b/fleet-packages/detection-rules-composite/kibana/security_rule/6951f15e-533c-4a60-8014-a3c3ab851a1b.json new file mode 100644 index 0000000000000..ca1a316c499e7 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/6951f15e-533c-4a60-8014-a3c3ab851a1b.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"6951f15e-533c-4a60-8014-a3c3ab851a1b","versions":[{"name":"AWS KMS Customer Managed Key Disabled or Scheduled for Deletion v1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to disable or schedule the deletion of an AWS KMS Customer Managed Key (CMK). Deleting an AWS KMS key is destructive and potentially dangerous. It deletes the key material and all metadata associated with the KMS key and is irreversible. After a KMS key is deleted, the data that was encrypted under that KMS key can no longer be decrypted, which means that data becomes unrecoverable.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Xavier Pich"],"false_positives":["A KMS customer managed key may be disabled or scheduled for deletion by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Key deletions by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/cli/latest/reference/kms/disable-key.html","https://docs.aws.amazon.com/cli/latest/reference/kms/schedule-key-deletion.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:kms.amazonaws.com and event.action:(\"DisableKey\" or \"ScheduleKeyDeletion\") and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS KMS Customer Managed Key Disabled or Scheduled for Deletion v1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to disable or schedule the deletion of an AWS KMS Customer Managed Key (CMK). Deleting an AWS KMS key is destructive and potentially dangerous. It deletes the key material and all metadata associated with the KMS key and is irreversible. After a KMS key is deleted, the data that was encrypted under that KMS key can no longer be decrypted, which means that data becomes unrecoverable.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Xavier Pich"],"false_positives":["A KMS customer managed key may be disabled or scheduled for deletion by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Key deletions by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/cli/latest/reference/kms/disable-key.html","https://docs.aws.amazon.com/cli/latest/reference/kms/schedule-key-deletion.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:kms.amazonaws.com and event.action:(\"DisableKey\" or \"ScheduleKeyDeletion\") and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS KMS Customer Managed Key Disabled or Scheduled for Deletion v1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to disable or schedule the deletion of an AWS KMS Customer Managed Key (CMK). Deleting an AWS KMS key is destructive and potentially dangerous. It deletes the key material and all metadata associated with the KMS key and is irreversible. After a KMS key is deleted, the data that was encrypted under that KMS key can no longer be decrypted, which means that data becomes unrecoverable.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Xavier Pich"],"false_positives":["A KMS customer managed key may be disabled or scheduled for deletion by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Key deletions by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/cli/latest/reference/kms/disable-key.html","https://docs.aws.amazon.com/cli/latest/reference/kms/schedule-key-deletion.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:kms.amazonaws.com and event.action:(\"DisableKey\" or \"ScheduleKeyDeletion\") and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"6951f15e-533c-4a60-8014-a3c3ab851a1b","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/699e9fdb-b77c-4c01-995c-1c15019b9c43.json b/fleet-packages/detection-rules-composite/kibana/security_rule/699e9fdb-b77c-4c01-995c-1c15019b9c43.json new file mode 100644 index 0000000000000..dd83160e0a604 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/699e9fdb-b77c-4c01-995c-1c15019b9c43.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"699e9fdb-b77c-4c01-995c-1c15019b9c43","versions":[{"name":"Threat Intel Filebeat Module (v8.x) Indicator Match v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule is triggered when indicators from the Threat Intel Filebeat module (v8.x) has a match against local file or network observations.","risk_score":99,"severity":"critical","license":"Elastic License v2","note":"## Triage and Analysis\n\n### Investigating Threat Intel Indicator Matches\n\nThreat Intel indicator match rules allow matching from a local observation such as an endpoint event that records a file\nhash with an entry of a file hash stored within the Threat Intel integrations. Matches can also occur on\nan IP address, registry path, URL, or imphash.\n\nThe matches will be based on the incoming last 30 days feed data so it's important to validate the data and review the results by\ninvestigating the associated activity to determine if it requires further investigation.\n\nIf an indicator matches a local observation, the following enriched fields will be generated to identify the indicator, field, and type matched.\n\n- `threat.indicator.matched.atomic` - this identifies the atomic indicator that matched the local observation\n- `threat.indicator.matched.field` - this identifies the indicator field that matched the local observation\n- `threat.indicator.matched.type` - this identifies the indicator type that matched the local observation\n\n#### Possible investigation steps:\n- Investigation should be validated and reviewed based on the data (file hash, registry path, URL, imphash) that was matched\nand by viewing the source of that activity.\n- Consider the history of the indicator that was matched. Has it happened before? Is it happening on multiple machines?\nThese kinds of questions can help understand if the activity is related to legitimate behavior.\n- Consider the user and their role within the company: is this something related to their job or work function?\n\n### False Positive Analysis\n- For any matches found, it's important to consider the initial release date of that indicator. Threat intelligence can\nbe a great tool for augmenting existing security processes, while at the same time it should be understood that threat\nintelligence can represent a specific set of activity observed at a point in time. For example, an IP address\nmay have hosted malware observed in a Dridex campaign months ago, but it's possible that IP has been remediated and\nno longer represents any threat.\n- Adversaries often use legitimate tools as network administrators such as `PsExec` or `AdFind`; these tools often find their\nway into indicator lists creating the potential for false positives.\n- It's possible after large and publicly written campaigns, curious employees might end up going directly to attacker infrastructure and triggering these rules.\n\n### Response and Remediation\n- If suspicious or malicious behavior is observed, take immediate action to isolate activity to prevent further\npost-compromise behavior.\n- One example of a response if a machine matched a command and control IP address would be to add an entry to a network\ndevice such as a firewall or proxy appliance to prevent any outbound activity from leaving that machine.\n- Another example of a response with a malicious file hash match would involve validating if the file was properly quarantined,\nreviewing current running processes for any abnormal activity, and investigating for any other follow-up actions such as persistence or lateral movement.\n","timeline_id":"495ad7a7-316e-4544-8a0f-9c098daee76e","timeline_title":"Generic Threat Match Timeline","author":["Elastic"],"from":"now-65m","interval":"1h","references":["https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-threatintel.html"],"tags":["Elastic","Windows","Elastic Endgame","Network","Continuous Monitoring","SecOps","Monitoring","Investigation Guide"],"query":"file.hash.*:* or file.pe.imphash:* or source.ip:* or destination.ip:* or url.full:* or registry.path:*\n","threat_index":["filebeat-8*"],"threat_mapping":[{"entries":[{"field":"file.hash.md5","type":"mapping","value":"threat.indicator.file.hash.md5"}]},{"entries":[{"field":"file.hash.sha1","type":"mapping","value":"threat.indicator.file.hash.sha1"}]},{"entries":[{"field":"file.hash.sha256","type":"mapping","value":"threat.indicator.file.hash.sha256"}]},{"entries":[{"field":"file.pe.imphash","type":"mapping","value":"threat.indicator.file.pe.imphash"}]},{"entries":[{"field":"source.ip","type":"mapping","value":"threat.indicator.ip"}]},{"entries":[{"field":"destination.ip","type":"mapping","value":"threat.indicator.ip"}]},{"entries":[{"field":"url.full","type":"mapping","value":"threat.indicator.url.full"}]},{"entries":[{"field":"registry.path","type":"mapping","value":"threat.indicator.registry.path"}]}],"threat_query":"@timestamp >= \"now-30d/d\" and event.module:threatintel and (threat.indicator.file.hash.*:* or threat.indicator.file.pe.imphash:* or threat.indicator.ip:* or threat.indicator.registry.path:* or threat.indicator.url.full:*)","type":"threat_match","index":["auditbeat-*","endgame-*","filebeat-*","logs-*","packetbeat-*","winlogbeat-*"],"threat_filters":[{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.module","negate":false,"params":{"query":"threatintel"},"type":"phrase"},"query":{"match_phrase":{"event.module":"threatintel"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.category","negate":false,"params":{"query":"threat"},"type":"phrase"},"query":{"match_phrase":{"event.category":"threat"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.kind","negate":false,"params":{"query":"enrichment"},"type":"phrase"},"query":{"match_phrase":{"event.kind":"enrichment"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.type","negate":false,"params":{"query":"indicator"},"type":"phrase"},"query":{"match_phrase":{"event.type":"indicator"}}}],"threat_indicator_path":"threat.indicator","threat_language":"kuery","language":"kuery","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":false,"name":"file.hash.*","type":"unknown"},{"ecs":true,"name":"file.pe.imphash","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"url.full","type":"wildcard"}]},{"name":"Threat Intel Filebeat Module (v8.x) Indicator Match v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule is triggered when indicators from the Threat Intel Filebeat module (v8.x) has a match against local file or network observations.","risk_score":99,"severity":"critical","license":"Elastic License v2","note":"## Triage and Analysis\n\n### Investigating Threat Intel Indicator Matches\n\nThreat Intel indicator match rules allow matching from a local observation such as an endpoint event that records a file\nhash with an entry of a file hash stored within the Threat Intel integrations. Matches can also occur on\nan IP address, registry path, URL, or imphash.\n\nThe matches will be based on the incoming last 30 days feed data so it's important to validate the data and review the results by\ninvestigating the associated activity to determine if it requires further investigation.\n\nIf an indicator matches a local observation, the following enriched fields will be generated to identify the indicator, field, and type matched.\n\n- `threat.indicator.matched.atomic` - this identifies the atomic indicator that matched the local observation\n- `threat.indicator.matched.field` - this identifies the indicator field that matched the local observation\n- `threat.indicator.matched.type` - this identifies the indicator type that matched the local observation\n\n#### Possible investigation steps:\n- Investigation should be validated and reviewed based on the data (file hash, registry path, URL, imphash) that was matched\nand by viewing the source of that activity.\n- Consider the history of the indicator that was matched. Has it happened before? Is it happening on multiple machines?\nThese kinds of questions can help understand if the activity is related to legitimate behavior.\n- Consider the user and their role within the company: is this something related to their job or work function?\n\n### False Positive Analysis\n- For any matches found, it's important to consider the initial release date of that indicator. Threat intelligence can\nbe a great tool for augmenting existing security processes, while at the same time it should be understood that threat\nintelligence can represent a specific set of activity observed at a point in time. For example, an IP address\nmay have hosted malware observed in a Dridex campaign months ago, but it's possible that IP has been remediated and\nno longer represents any threat.\n- Adversaries often use legitimate tools as network administrators such as `PsExec` or `AdFind`; these tools often find their\nway into indicator lists creating the potential for false positives.\n- It's possible after large and publicly written campaigns, curious employees might end up going directly to attacker infrastructure and triggering these rules.\n\n### Response and Remediation\n- If suspicious or malicious behavior is observed, take immediate action to isolate activity to prevent further\npost-compromise behavior.\n- One example of a response if a machine matched a command and control IP address would be to add an entry to a network\ndevice such as a firewall or proxy appliance to prevent any outbound activity from leaving that machine.\n- Another example of a response with a malicious file hash match would involve validating if the file was properly quarantined,\nreviewing current running processes for any abnormal activity, and investigating for any other follow-up actions such as persistence or lateral movement.\n","timeline_id":"495ad7a7-316e-4544-8a0f-9c098daee76e","timeline_title":"Generic Threat Match Timeline","author":["Elastic"],"from":"now-65m","interval":"1h","references":["https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-threatintel.html"],"tags":["Elastic","Windows","Elastic Endgame","Network","Continuous Monitoring","SecOps","Monitoring","Investigation Guide"],"query":"file.hash.*:* or file.pe.imphash:* or source.ip:* or destination.ip:* or url.full:* or registry.path:*\n","threat_index":["filebeat-8*"],"threat_mapping":[{"entries":[{"field":"file.hash.md5","type":"mapping","value":"threat.indicator.file.hash.md5"}]},{"entries":[{"field":"file.hash.sha1","type":"mapping","value":"threat.indicator.file.hash.sha1"}]},{"entries":[{"field":"file.hash.sha256","type":"mapping","value":"threat.indicator.file.hash.sha256"}]},{"entries":[{"field":"file.pe.imphash","type":"mapping","value":"threat.indicator.file.pe.imphash"}]},{"entries":[{"field":"source.ip","type":"mapping","value":"threat.indicator.ip"}]},{"entries":[{"field":"destination.ip","type":"mapping","value":"threat.indicator.ip"}]},{"entries":[{"field":"url.full","type":"mapping","value":"threat.indicator.url.full"}]},{"entries":[{"field":"registry.path","type":"mapping","value":"threat.indicator.registry.path"}]}],"threat_query":"@timestamp >= \"now-30d/d\" and event.module:threatintel and (threat.indicator.file.hash.*:* or threat.indicator.file.pe.imphash:* or threat.indicator.ip:* or threat.indicator.registry.path:* or threat.indicator.url.full:*)","type":"threat_match","index":["auditbeat-*","endgame-*","filebeat-*","logs-*","packetbeat-*","winlogbeat-*"],"threat_filters":[{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.module","negate":false,"params":{"query":"threatintel"},"type":"phrase"},"query":{"match_phrase":{"event.module":"threatintel"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.category","negate":false,"params":{"query":"threat"},"type":"phrase"},"query":{"match_phrase":{"event.category":"threat"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.kind","negate":false,"params":{"query":"enrichment"},"type":"phrase"},"query":{"match_phrase":{"event.kind":"enrichment"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.type","negate":false,"params":{"query":"indicator"},"type":"phrase"},"query":{"match_phrase":{"event.type":"indicator"}}}],"threat_indicator_path":"threat.indicator","threat_language":"kuery","language":"kuery","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":false,"name":"file.hash.*","type":"unknown"},{"ecs":true,"name":"file.pe.imphash","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"url.full","type":"wildcard"}]},{"name":"Threat Intel Filebeat Module (v8.x) Indicator Match v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule is triggered when indicators from the Threat Intel Filebeat module (v8.x) has a match against local file or network observations.","risk_score":99,"severity":"critical","license":"Elastic License v2","note":"## Triage and Analysis\n\n### Investigating Threat Intel Indicator Matches\n\nThreat Intel indicator match rules allow matching from a local observation such as an endpoint event that records a file\nhash with an entry of a file hash stored within the Threat Intel integrations. Matches can also occur on\nan IP address, registry path, URL, or imphash.\n\nThe matches will be based on the incoming last 30 days feed data so it's important to validate the data and review the results by\ninvestigating the associated activity to determine if it requires further investigation.\n\nIf an indicator matches a local observation, the following enriched fields will be generated to identify the indicator, field, and type matched.\n\n- `threat.indicator.matched.atomic` - this identifies the atomic indicator that matched the local observation\n- `threat.indicator.matched.field` - this identifies the indicator field that matched the local observation\n- `threat.indicator.matched.type` - this identifies the indicator type that matched the local observation\n\n#### Possible investigation steps:\n- Investigation should be validated and reviewed based on the data (file hash, registry path, URL, imphash) that was matched\nand by viewing the source of that activity.\n- Consider the history of the indicator that was matched. Has it happened before? Is it happening on multiple machines?\nThese kinds of questions can help understand if the activity is related to legitimate behavior.\n- Consider the user and their role within the company: is this something related to their job or work function?\n\n### False Positive Analysis\n- For any matches found, it's important to consider the initial release date of that indicator. Threat intelligence can\nbe a great tool for augmenting existing security processes, while at the same time it should be understood that threat\nintelligence can represent a specific set of activity observed at a point in time. For example, an IP address\nmay have hosted malware observed in a Dridex campaign months ago, but it's possible that IP has been remediated and\nno longer represents any threat.\n- Adversaries often use legitimate tools as network administrators such as `PsExec` or `AdFind`; these tools often find their\nway into indicator lists creating the potential for false positives.\n- It's possible after large and publicly written campaigns, curious employees might end up going directly to attacker infrastructure and triggering these rules.\n\n### Response and Remediation\n- If suspicious or malicious behavior is observed, take immediate action to isolate activity to prevent further\npost-compromise behavior.\n- One example of a response if a machine matched a command and control IP address would be to add an entry to a network\ndevice such as a firewall or proxy appliance to prevent any outbound activity from leaving that machine.\n- Another example of a response with a malicious file hash match would involve validating if the file was properly quarantined,\nreviewing current running processes for any abnormal activity, and investigating for any other follow-up actions such as persistence or lateral movement.\n","timeline_id":"495ad7a7-316e-4544-8a0f-9c098daee76e","timeline_title":"Generic Threat Match Timeline","author":["Elastic"],"from":"now-65m","interval":"1h","references":["https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-threatintel.html"],"tags":["Elastic","Windows","Elastic Endgame","Network","Continuous Monitoring","SecOps","Monitoring","Investigation Guide"],"query":"file.hash.*:* or file.pe.imphash:* or source.ip:* or destination.ip:* or url.full:* or registry.path:*\n","threat_index":["filebeat-8*"],"threat_mapping":[{"entries":[{"field":"file.hash.md5","type":"mapping","value":"threat.indicator.file.hash.md5"}]},{"entries":[{"field":"file.hash.sha1","type":"mapping","value":"threat.indicator.file.hash.sha1"}]},{"entries":[{"field":"file.hash.sha256","type":"mapping","value":"threat.indicator.file.hash.sha256"}]},{"entries":[{"field":"file.pe.imphash","type":"mapping","value":"threat.indicator.file.pe.imphash"}]},{"entries":[{"field":"source.ip","type":"mapping","value":"threat.indicator.ip"}]},{"entries":[{"field":"destination.ip","type":"mapping","value":"threat.indicator.ip"}]},{"entries":[{"field":"url.full","type":"mapping","value":"threat.indicator.url.full"}]},{"entries":[{"field":"registry.path","type":"mapping","value":"threat.indicator.registry.path"}]}],"threat_query":"@timestamp >= \"now-30d/d\" and event.module:threatintel and (threat.indicator.file.hash.*:* or threat.indicator.file.pe.imphash:* or threat.indicator.ip:* or threat.indicator.registry.path:* or threat.indicator.url.full:*)","type":"threat_match","index":["auditbeat-*","endgame-*","filebeat-*","logs-*","packetbeat-*","winlogbeat-*"],"threat_filters":[{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.module","negate":false,"params":{"query":"threatintel"},"type":"phrase"},"query":{"match_phrase":{"event.module":"threatintel"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.category","negate":false,"params":{"query":"threat"},"type":"phrase"},"query":{"match_phrase":{"event.category":"threat"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.kind","negate":false,"params":{"query":"enrichment"},"type":"phrase"},"query":{"match_phrase":{"event.kind":"enrichment"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.type","negate":false,"params":{"query":"indicator"},"type":"phrase"},"query":{"match_phrase":{"event.type":"indicator"}}}],"threat_indicator_path":"threat.indicator","threat_language":"kuery","language":"kuery","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":false,"name":"file.hash.*","type":"unknown"},{"ecs":true,"name":"file.pe.imphash","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"url.full","type":"wildcard"}]}]},"id":"699e9fdb-b77c-4c01-995c-1c15019b9c43","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/69c251fb-a5d6-4035-b5ec-40438bd829ff.json b/fleet-packages/detection-rules-composite/kibana/security_rule/69c251fb-a5d6-4035-b5ec-40438bd829ff.json new file mode 100644 index 0000000000000..af4201846085c --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/69c251fb-a5d6-4035-b5ec-40438bd829ff.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"69c251fb-a5d6-4035-b5ec-40438bd829ff","versions":[{"name":"Modification of Boot Configuration v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of bcdedit.exe to delete boot configuration data. This tactic is sometimes used as by malware or an attacker as a destructive technique.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Modification of Boot Configuration\n\nBoot entry parameters, or boot parameters, are optional, system-specific settings that represent configuration options.\nThese are stored in a boot configuration data (BCD) store, and administrators can use utilities like `bcdedit.exe` to\nconfigure these.\n\nThis rule identifies the usage of `bcdedit.exe` to:\n\n- Disable Windows Error Recovery (recoveryenabled).\n- Ignore errors if there is a failed boot, failed shutdown, or failed checkpoint (bootstatuspolicy ignoreallfailures).\n\nThese are common steps in destructive attacks by adversaries leveraging ransomware.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Check if any files on the host machine have been encrypted.\n\n### False positive analysis\n\n- The usage of these options is not inherently malicious. Administrators can modify these configurations to force a\nmachine to boot for troubleshooting or data recovery purposes.\n\n### Related rules\n\n- Deleting Backup Catalogs with Wbadmin - 581add16-df76-42bb-af8e-c979bfb39a59\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If any other destructive action was identified on the host, it is recommended to prioritize the investigation and look\nfor ransomware preparation and execution activities.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"bcdedit.exe\" or process.pe.original_file_name == \"bcdedit.exe\") and\n (\n (process.args : \"/set\" and process.args : \"bootstatuspolicy\" and process.args : \"ignoreallfailures\") or\n (process.args : \"no\" and process.args : \"recoveryenabled\")\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Modification of Boot Configuration v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of bcdedit.exe to delete boot configuration data. This tactic is sometimes used as by malware or an attacker as a destructive technique.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Modification of Boot Configuration\n\nBoot entry parameters, or boot parameters, are optional, system-specific settings that represent configuration options.\nThese are stored in a boot configuration data (BCD) store, and administrators can use utilities like `bcdedit.exe` to\nconfigure these.\n\nThis rule identifies the usage of `bcdedit.exe` to:\n\n- Disable Windows Error Recovery (recoveryenabled).\n- Ignore errors if there is a failed boot, failed shutdown, or failed checkpoint (bootstatuspolicy ignoreallfailures).\n\nThese are common steps in destructive attacks by adversaries leveraging ransomware.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Check if any files on the host machine have been encrypted.\n\n### False positive analysis\n\n- The usage of these options is not inherently malicious. Administrators can modify these configurations to force a\nmachine to boot for troubleshooting or data recovery purposes.\n\n### Related rules\n\n- Deleting Backup Catalogs with Wbadmin - 581add16-df76-42bb-af8e-c979bfb39a59\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If any other destructive action was identified on the host, it is recommended to prioritize the investigation and look\nfor ransomware preparation and execution activities.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"bcdedit.exe\" or process.pe.original_file_name == \"bcdedit.exe\") and\n (\n (process.args : \"/set\" and process.args : \"bootstatuspolicy\" and process.args : \"ignoreallfailures\") or\n (process.args : \"no\" and process.args : \"recoveryenabled\")\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Modification of Boot Configuration v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of bcdedit.exe to delete boot configuration data. This tactic is sometimes used as by malware or an attacker as a destructive technique.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Modification of Boot Configuration\n\nBoot entry parameters, or boot parameters, are optional, system-specific settings that represent configuration options.\nThese are stored in a boot configuration data (BCD) store, and administrators can use utilities like `bcdedit.exe` to\nconfigure these.\n\nThis rule identifies the usage of `bcdedit.exe` to:\n\n- Disable Windows Error Recovery (recoveryenabled).\n- Ignore errors if there is a failed boot, failed shutdown, or failed checkpoint (bootstatuspolicy ignoreallfailures).\n\nThese are common steps in destructive attacks by adversaries leveraging ransomware.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Check if any files on the host machine have been encrypted.\n\n### False positive analysis\n\n- The usage of these options is not inherently malicious. Administrators can modify these configurations to force a\nmachine to boot for troubleshooting or data recovery purposes.\n\n### Related rules\n\n- Deleting Backup Catalogs with Wbadmin - 581add16-df76-42bb-af8e-c979bfb39a59\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If any other destructive action was identified on the host, it is recommended to prioritize the investigation and look\nfor ransomware preparation and execution activities.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"bcdedit.exe\" or process.pe.original_file_name == \"bcdedit.exe\") and\n (\n (process.args : \"/set\" and process.args : \"bootstatuspolicy\" and process.args : \"ignoreallfailures\") or\n (process.args : \"no\" and process.args : \"recoveryenabled\")\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"69c251fb-a5d6-4035-b5ec-40438bd829ff","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/69c420e8-6c9e-4d28-86c0-8a2be2d1e78c.json b/fleet-packages/detection-rules-composite/kibana/security_rule/69c420e8-6c9e-4d28-86c0-8a2be2d1e78c.json new file mode 100644 index 0000000000000..091b9d56564d5 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/69c420e8-6c9e-4d28-86c0-8a2be2d1e78c.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"69c420e8-6c9e-4d28-86c0-8a2be2d1e78c","versions":[{"name":"AWS IAM Password Recovery Requested v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies AWS IAM password recovery requests. An adversary may attempt to gain unauthorized AWS access by abusing password recovery mechanisms.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be requesting changes in your environment. Password reset attempts from unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://www.cadosecurity.com/an-ongoing-aws-phishing-campaign/"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:signin.amazonaws.com and event.action:PasswordRecoveryRequested and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS IAM Password Recovery Requested v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies AWS IAM password recovery requests. An adversary may attempt to gain unauthorized AWS access by abusing password recovery mechanisms.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be requesting changes in your environment. Password reset attempts from unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://www.cadosecurity.com/an-ongoing-aws-phishing-campaign/"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:signin.amazonaws.com and event.action:PasswordRecoveryRequested and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS IAM Password Recovery Requested v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies AWS IAM password recovery requests. An adversary may attempt to gain unauthorized AWS access by abusing password recovery mechanisms.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be requesting changes in your environment. Password reset attempts from unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://www.cadosecurity.com/an-ongoing-aws-phishing-campaign/"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:signin.amazonaws.com and event.action:PasswordRecoveryRequested and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"69c420e8-6c9e-4d28-86c0-8a2be2d1e78c","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/6a8ab9cc-4023-4d17-b5df-1a3e16882ce7.json b/fleet-packages/detection-rules-composite/kibana/security_rule/6a8ab9cc-4023-4d17-b5df-1a3e16882ce7.json new file mode 100644 index 0000000000000..e25dcee9727f1 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/6a8ab9cc-4023-4d17-b5df-1a3e16882ce7.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"6a8ab9cc-4023-4d17-b5df-1a3e16882ce7","versions":[{"name":"Unusual Service Host Child Process - Childless Service v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual child processes of Service Host (svchost.exe) that traditionally do not spawn any child processes. This may indicate a code injection or an equivalent form of exploitation.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Changes to Windows services or a rarely executed child process."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/","subtechnique":[{"id":"T1055.012","name":"Process Hollowing","reference":"https://attack.mitre.org/techniques/T1055/012/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"svchost.exe\" and\n\n /* based on svchost service arguments -s svcname where the service is known to be childless */\n\n process.parent.args : (\"WdiSystemHost\",\"LicenseManager\",\n \"StorSvc\",\"CDPSvc\",\"cdbhsvc\",\"BthAvctpSvc\",\"SstpSvc\",\"WdiServiceHost\",\n \"imgsvc\",\"TrkWks\",\"WpnService\",\"IKEEXT\",\"PolicyAgent\",\"CryptSvc\",\n \"netprofm\",\"ProfSvc\",\"StateRepository\",\"camsvc\",\"LanmanWorkstation\",\n \"NlaSvc\",\"EventLog\",\"hidserv\",\"DisplayEnhancementService\",\"ShellHWDetection\",\n \"AppHostSvc\",\"fhsvc\",\"CscService\",\"PushToInstall\") and\n\n /* unknown FPs can be added here */\n\n not process.name : (\"WerFault.exe\",\"WerFaultSecure.exe\",\"wermgr.exe\") and\n not (process.executable : \"?:\\\\Windows\\\\System32\\\\RelPost.exe\" and process.parent.args : \"WdiSystemHost\") and\n not (process.name : \"rundll32.exe\" and\n process.args : \"?:\\\\WINDOWS\\\\System32\\\\winethc.dll,ForceProxyDetectionOnNextRun\" and process.parent.args : \"WdiServiceHost\") and\n not (process.executable : (\"?:\\\\Program Files\\\\*\", \"?:\\\\Program Files (x86)\\\\*\", \"?:\\\\Windows\\\\System32\\\\Kodak\\\\kds_i4x50\\\\lib\\\\lexexe.exe\") and\n process.parent.args : \"imgsvc\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Unusual Service Host Child Process - Childless Service v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual child processes of Service Host (svchost.exe) that traditionally do not spawn any child processes. This may indicate a code injection or an equivalent form of exploitation.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Changes to Windows services or a rarely executed child process."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/","subtechnique":[{"id":"T1055.012","name":"Process Hollowing","reference":"https://attack.mitre.org/techniques/T1055/012/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"svchost.exe\" and\n\n /* based on svchost service arguments -s svcname where the service is known to be childless */\n\n process.parent.args : (\"WdiSystemHost\",\"LicenseManager\",\n \"StorSvc\",\"CDPSvc\",\"cdbhsvc\",\"BthAvctpSvc\",\"SstpSvc\",\"WdiServiceHost\",\n \"imgsvc\",\"TrkWks\",\"WpnService\",\"IKEEXT\",\"PolicyAgent\",\"CryptSvc\",\n \"netprofm\",\"ProfSvc\",\"StateRepository\",\"camsvc\",\"LanmanWorkstation\",\n \"NlaSvc\",\"EventLog\",\"hidserv\",\"DisplayEnhancementService\",\"ShellHWDetection\",\n \"AppHostSvc\",\"fhsvc\",\"CscService\",\"PushToInstall\") and\n\n /* unknown FPs can be added here */\n\n not process.name : (\"WerFault.exe\",\"WerFaultSecure.exe\",\"wermgr.exe\") and\n not (process.executable : \"?:\\\\Windows\\\\System32\\\\RelPost.exe\" and process.parent.args : \"WdiSystemHost\") and\n not (process.name : \"rundll32.exe\" and\n process.args : \"?:\\\\WINDOWS\\\\System32\\\\winethc.dll,ForceProxyDetectionOnNextRun\" and process.parent.args : \"WdiServiceHost\") and\n not (process.executable : (\"?:\\\\Program Files\\\\*\", \"?:\\\\Program Files (x86)\\\\*\", \"?:\\\\Windows\\\\System32\\\\Kodak\\\\kds_i4x50\\\\lib\\\\lexexe.exe\") and\n process.parent.args : \"imgsvc\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Unusual Service Host Child Process - Childless Service v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual child processes of Service Host (svchost.exe) that traditionally do not spawn any child processes. This may indicate a code injection or an equivalent form of exploitation.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Changes to Windows services or a rarely executed child process."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/","subtechnique":[{"id":"T1055.012","name":"Process Hollowing","reference":"https://attack.mitre.org/techniques/T1055/012/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"svchost.exe\" and\n\n /* based on svchost service arguments -s svcname where the service is known to be childless */\n\n process.parent.args : (\"WdiSystemHost\",\"LicenseManager\",\n \"StorSvc\",\"CDPSvc\",\"cdbhsvc\",\"BthAvctpSvc\",\"SstpSvc\",\"WdiServiceHost\",\n \"imgsvc\",\"TrkWks\",\"WpnService\",\"IKEEXT\",\"PolicyAgent\",\"CryptSvc\",\n \"netprofm\",\"ProfSvc\",\"StateRepository\",\"camsvc\",\"LanmanWorkstation\",\n \"NlaSvc\",\"EventLog\",\"hidserv\",\"DisplayEnhancementService\",\"ShellHWDetection\",\n \"AppHostSvc\",\"fhsvc\",\"CscService\",\"PushToInstall\") and\n\n /* unknown FPs can be added here */\n\n not process.name : (\"WerFault.exe\",\"WerFaultSecure.exe\",\"wermgr.exe\") and\n not (process.executable : \"?:\\\\Windows\\\\System32\\\\RelPost.exe\" and process.parent.args : \"WdiSystemHost\") and\n not (process.name : \"rundll32.exe\" and\n process.args : \"?:\\\\WINDOWS\\\\System32\\\\winethc.dll,ForceProxyDetectionOnNextRun\" and process.parent.args : \"WdiServiceHost\") and\n not (process.executable : (\"?:\\\\Program Files\\\\*\", \"?:\\\\Program Files (x86)\\\\*\", \"?:\\\\Windows\\\\System32\\\\Kodak\\\\kds_i4x50\\\\lib\\\\lexexe.exe\") and\n process.parent.args : \"imgsvc\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"6a8ab9cc-4023-4d17-b5df-1a3e16882ce7","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/6aace640-e631-4870-ba8e-5fdda09325db.json b/fleet-packages/detection-rules-composite/kibana/security_rule/6aace640-e631-4870-ba8e-5fdda09325db.json new file mode 100644 index 0000000000000..c1511307e42d9 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/6aace640-e631-4870-ba8e-5fdda09325db.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"6aace640-e631-4870-ba8e-5fdda09325db","versions":[{"name":"Exporting Exchange Mailbox via PowerShell v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the Exchange PowerShell cmdlet, New-MailBoxExportRequest, to export the contents of a primary mailbox or archive to a .pst file. Adversaries may target user email to collect sensitive information.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Exporting Exchange Mailbox via PowerShell\n\nThe `New-MailBoxExportRequest` cmdlet is used to begin the process of exporting contents of a primary mailbox or archive\nto a .pst file. Note that this is done on a per-mailbox basis and this cmdlet is available only in on-premises Exchange.\n\nAttackers can abuse this functionality in preparation for exfiltrating contents, which is likely to contain sensitive\nand strategic data.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate the export operation:\n - Identify the user account that performed the action and whether it should perform this kind of action.\n - Contact the account owner and confirm whether they are aware of this activity.\n - Check if this operation was approved and performed according to the organization's change management policy.\n - Retrieve the operation status and use the `Get-MailboxExportRequest` cmdlet to review previous requests.\n - By default, no group in Exchange has the privilege to import or export mailboxes. Investigate administrators that\n assigned the \"Mailbox Import Export\" privilege for abnormal activity.\n- Investigate if there is a significant quantity of export requests in the alert timeframe. This operation is done on\na per-mailbox basis and can be part of a mass export.\n- If the operation was completed successfully:\n - Check if the file is on the path specified in the command.\n - Investigate if the file was compressed, archived, or retrieved by the attacker for exfiltration.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity\nand it is done with proper approval.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the involved host is not the Exchange server, isolate the host to prevent further post-compromise behavior.\n- Use the `Remove-MailboxExportRequest` cmdlet to remove fully or partially completed export requests.\n- Prioritize cases that involve personally identifiable information (PII) or other classified data.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Review the privileges of users with the \"Mailbox Import Export\" privilege to ensure that the least privilege principle\nis being followed.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate exchange system administration activity."],"from":"now-9m","references":["https://www.volexity.com/blog/2020/12/14/dark-halo-leverages-solarwinds-compromise-to-breach-organizations/","https://docs.microsoft.com/en-us/powershell/module/exchange/new-mailboxexportrequest?view=exchange-ps"],"tags":["Elastic","Host","Windows","Threat Detection","Collection","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1005","name":"Data from Local System","reference":"https://attack.mitre.org/techniques/T1005/"},{"id":"T1114","name":"Email Collection","reference":"https://attack.mitre.org/techniques/T1114/","subtechnique":[{"id":"T1114.002","name":"Remote Email Collection","reference":"https://attack.mitre.org/techniques/T1114/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name: (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and process.args : \"New-MailboxExportRequest*\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Exporting Exchange Mailbox via PowerShell v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the Exchange PowerShell cmdlet, New-MailBoxExportRequest, to export the contents of a primary mailbox or archive to a .pst file. Adversaries may target user email to collect sensitive information.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Exporting Exchange Mailbox via PowerShell\n\nThe `New-MailBoxExportRequest` cmdlet is used to begin the process of exporting contents of a primary mailbox or archive\nto a .pst file. Note that this is done on a per-mailbox basis and this cmdlet is available only in on-premises Exchange.\n\nAttackers can abuse this functionality in preparation for exfiltrating contents, which is likely to contain sensitive\nand strategic data.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate the export operation:\n - Identify the user account that performed the action and whether it should perform this kind of action.\n - Contact the account owner and confirm whether they are aware of this activity.\n - Check if this operation was approved and performed according to the organization's change management policy.\n - Retrieve the operation status and use the `Get-MailboxExportRequest` cmdlet to review previous requests.\n - By default, no group in Exchange has the privilege to import or export mailboxes. Investigate administrators that\n assigned the \"Mailbox Import Export\" privilege for abnormal activity.\n- Investigate if there is a significant quantity of export requests in the alert timeframe. This operation is done on\na per-mailbox basis and can be part of a mass export.\n- If the operation was completed successfully:\n - Check if the file is on the path specified in the command.\n - Investigate if the file was compressed, archived, or retrieved by the attacker for exfiltration.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity\nand it is done with proper approval.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the involved host is not the Exchange server, isolate the host to prevent further post-compromise behavior.\n- Use the `Remove-MailboxExportRequest` cmdlet to remove fully or partially completed export requests.\n- Prioritize cases that involve personally identifiable information (PII) or other classified data.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Review the privileges of users with the \"Mailbox Import Export\" privilege to ensure that the least privilege principle\nis being followed.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate exchange system administration activity."],"from":"now-9m","references":["https://www.volexity.com/blog/2020/12/14/dark-halo-leverages-solarwinds-compromise-to-breach-organizations/","https://docs.microsoft.com/en-us/powershell/module/exchange/new-mailboxexportrequest?view=exchange-ps"],"tags":["Elastic","Host","Windows","Threat Detection","Collection","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1005","name":"Data from Local System","reference":"https://attack.mitre.org/techniques/T1005/"},{"id":"T1114","name":"Email Collection","reference":"https://attack.mitre.org/techniques/T1114/","subtechnique":[{"id":"T1114.002","name":"Remote Email Collection","reference":"https://attack.mitre.org/techniques/T1114/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name: (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and process.args : \"New-MailboxExportRequest*\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Exporting Exchange Mailbox via PowerShell v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the Exchange PowerShell cmdlet, New-MailBoxExportRequest, to export the contents of a primary mailbox or archive to a .pst file. Adversaries may target user email to collect sensitive information.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Exporting Exchange Mailbox via PowerShell\n\nThe `New-MailBoxExportRequest` cmdlet is used to begin the process of exporting contents of a primary mailbox or archive\nto a .pst file. Note that this is done on a per-mailbox basis and this cmdlet is available only in on-premises Exchange.\n\nAttackers can abuse this functionality in preparation for exfiltrating contents, which is likely to contain sensitive\nand strategic data.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate the export operation:\n - Identify the user account that performed the action and whether it should perform this kind of action.\n - Contact the account owner and confirm whether they are aware of this activity.\n - Check if this operation was approved and performed according to the organization's change management policy.\n - Retrieve the operation status and use the `Get-MailboxExportRequest` cmdlet to review previous requests.\n - By default, no group in Exchange has the privilege to import or export mailboxes. Investigate administrators that\n assigned the \"Mailbox Import Export\" privilege for abnormal activity.\n- Investigate if there is a significant quantity of export requests in the alert timeframe. This operation is done on\na per-mailbox basis and can be part of a mass export.\n- If the operation was completed successfully:\n - Check if the file is on the path specified in the command.\n - Investigate if the file was compressed, archived, or retrieved by the attacker for exfiltration.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity\nand it is done with proper approval.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the involved host is not the Exchange server, isolate the host to prevent further post-compromise behavior.\n- Use the `Remove-MailboxExportRequest` cmdlet to remove fully or partially completed export requests.\n- Prioritize cases that involve personally identifiable information (PII) or other classified data.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Review the privileges of users with the \"Mailbox Import Export\" privilege to ensure that the least privilege principle\nis being followed.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate exchange system administration activity."],"from":"now-9m","references":["https://www.volexity.com/blog/2020/12/14/dark-halo-leverages-solarwinds-compromise-to-breach-organizations/","https://docs.microsoft.com/en-us/powershell/module/exchange/new-mailboxexportrequest?view=exchange-ps"],"tags":["Elastic","Host","Windows","Threat Detection","Collection","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1005","name":"Data from Local System","reference":"https://attack.mitre.org/techniques/T1005/"},{"id":"T1114","name":"Email Collection","reference":"https://attack.mitre.org/techniques/T1114/","subtechnique":[{"id":"T1114.002","name":"Remote Email Collection","reference":"https://attack.mitre.org/techniques/T1114/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name: (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and process.args : \"New-MailboxExportRequest*\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"6aace640-e631-4870-ba8e-5fdda09325db","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/6b84d470-9036-4cc0-a27c-6d90bbfe81ab.json b/fleet-packages/detection-rules-composite/kibana/security_rule/6b84d470-9036-4cc0-a27c-6d90bbfe81ab.json new file mode 100644 index 0000000000000..29baf568aef8a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/6b84d470-9036-4cc0-a27c-6d90bbfe81ab.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"6b84d470-9036-4cc0-a27c-6d90bbfe81ab","versions":[{"name":"Sensitive Files Compression v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of a compression utility to collect known files containing sensitive information, such as credentials and system configurations.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.trendmicro.com/en_ca/research/20/l/teamtnt-now-deploying-ddos-capable-irc-bot-tntbotinger.html"],"tags":["Elastic","Host","Linux","Threat Detection","Collection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.001","name":"Credentials In Files","reference":"https://attack.mitre.org/techniques/T1552/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1560","name":"Archive Collected Data","reference":"https://attack.mitre.org/techniques/T1560/","subtechnique":[{"id":"T1560.001","name":"Archive via Utility","reference":"https://attack.mitre.org/techniques/T1560/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and\n process.name:(zip or tar or gzip or hdiutil or 7z) and\n process.args:\n (\n /root/.ssh/id_rsa or\n /root/.ssh/id_rsa.pub or\n /root/.ssh/id_ed25519 or\n /root/.ssh/id_ed25519.pub or\n /root/.ssh/authorized_keys or\n /root/.ssh/authorized_keys2 or\n /root/.ssh/known_hosts or\n /root/.bash_history or\n /etc/hosts or\n /home/*/.ssh/id_rsa or\n /home/*/.ssh/id_rsa.pub or\n /home/*/.ssh/id_ed25519 or\n /home/*/.ssh/id_ed25519.pub or\n /home/*/.ssh/authorized_keys or\n /home/*/.ssh/authorized_keys2 or\n /home/*/.ssh/known_hosts or\n /home/*/.bash_history or\n /root/.aws/credentials or\n /root/.aws/config or\n /home/*/.aws/credentials or\n /home/*/.aws/config or\n /root/.docker/config.json or\n /home/*/.docker/config.json or\n /etc/group or\n /etc/passwd or\n /etc/shadow or\n /etc/gshadow\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Sensitive Files Compression v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of a compression utility to collect known files containing sensitive information, such as credentials and system configurations.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.trendmicro.com/en_ca/research/20/l/teamtnt-now-deploying-ddos-capable-irc-bot-tntbotinger.html"],"tags":["Elastic","Host","Linux","Threat Detection","Collection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.001","name":"Credentials In Files","reference":"https://attack.mitre.org/techniques/T1552/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1560","name":"Archive Collected Data","reference":"https://attack.mitre.org/techniques/T1560/","subtechnique":[{"id":"T1560.001","name":"Archive via Utility","reference":"https://attack.mitre.org/techniques/T1560/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and\n process.name:(zip or tar or gzip or hdiutil or 7z) and\n process.args:\n (\n /root/.ssh/id_rsa or\n /root/.ssh/id_rsa.pub or\n /root/.ssh/id_ed25519 or\n /root/.ssh/id_ed25519.pub or\n /root/.ssh/authorized_keys or\n /root/.ssh/authorized_keys2 or\n /root/.ssh/known_hosts or\n /root/.bash_history or\n /etc/hosts or\n /home/*/.ssh/id_rsa or\n /home/*/.ssh/id_rsa.pub or\n /home/*/.ssh/id_ed25519 or\n /home/*/.ssh/id_ed25519.pub or\n /home/*/.ssh/authorized_keys or\n /home/*/.ssh/authorized_keys2 or\n /home/*/.ssh/known_hosts or\n /home/*/.bash_history or\n /root/.aws/credentials or\n /root/.aws/config or\n /home/*/.aws/credentials or\n /home/*/.aws/config or\n /root/.docker/config.json or\n /home/*/.docker/config.json or\n /etc/group or\n /etc/passwd or\n /etc/shadow or\n /etc/gshadow\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Sensitive Files Compression v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of a compression utility to collect known files containing sensitive information, such as credentials and system configurations.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.trendmicro.com/en_ca/research/20/l/teamtnt-now-deploying-ddos-capable-irc-bot-tntbotinger.html"],"tags":["Elastic","Host","Linux","Threat Detection","Collection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.001","name":"Credentials In Files","reference":"https://attack.mitre.org/techniques/T1552/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1560","name":"Archive Collected Data","reference":"https://attack.mitre.org/techniques/T1560/","subtechnique":[{"id":"T1560.001","name":"Archive via Utility","reference":"https://attack.mitre.org/techniques/T1560/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and\n process.name:(zip or tar or gzip or hdiutil or 7z) and\n process.args:\n (\n /root/.ssh/id_rsa or\n /root/.ssh/id_rsa.pub or\n /root/.ssh/id_ed25519 or\n /root/.ssh/id_ed25519.pub or\n /root/.ssh/authorized_keys or\n /root/.ssh/authorized_keys2 or\n /root/.ssh/known_hosts or\n /root/.bash_history or\n /etc/hosts or\n /home/*/.ssh/id_rsa or\n /home/*/.ssh/id_rsa.pub or\n /home/*/.ssh/id_ed25519 or\n /home/*/.ssh/id_ed25519.pub or\n /home/*/.ssh/authorized_keys or\n /home/*/.ssh/authorized_keys2 or\n /home/*/.ssh/known_hosts or\n /home/*/.bash_history or\n /root/.aws/credentials or\n /root/.aws/config or\n /home/*/.aws/credentials or\n /home/*/.aws/config or\n /root/.docker/config.json or\n /home/*/.docker/config.json or\n /etc/group or\n /etc/passwd or\n /etc/shadow or\n /etc/gshadow\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"6b84d470-9036-4cc0-a27c-6d90bbfe81ab","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/6bed021a-0afb-461c-acbe-ffdb9574d3f3.json b/fleet-packages/detection-rules-composite/kibana/security_rule/6bed021a-0afb-461c-acbe-ffdb9574d3f3.json new file mode 100644 index 0000000000000..11fc83dce1313 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/6bed021a-0afb-461c-acbe-ffdb9574d3f3.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"6bed021a-0afb-461c-acbe-ffdb9574d3f3","versions":[{"name":"Remote Computer Account DnsHostName Update v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the remote update to a computer account's DnsHostName attribute. If the new value set is a valid domain controller DNS hostname and the subject computer name is not a domain controller, then it's highly likely a preparation step to exploit CVE-2022-26923 in an attempt to elevate privileges from a standard domain user to domain admin privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://research.ifcr.dk/certifried-active-directory-domain-privilege-escalation-cve-2022-26923-9e098fe298f4","https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2022-26923"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Active Directory"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"},{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.002","name":"Domain Accounts","reference":"https://attack.mitre.org/techniques/T1078/002/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=5m\n\n [authentication where event.action == \"logged-in\" and\n winlog.logon.type == \"Network\" and event.outcome == \"success\" and\n not user.name == \"ANONYMOUS LOGON\" and not winlog.event_data.SubjectUserName : \"*$\" and\n not user.domain == \"NT AUTHORITY\" and source.ip != \"127.0.0.1\" and source.ip !=\"::1\"] by winlog.event_data.TargetLogonId\n\n [iam where event.action == \"changed-computer-account\" and\n\n /* if DnsHostName value equal a DC DNS hostname then it's highly suspicious */\n winlog.event_data.DnsHostName : \"??*\" and \n \n /* exclude FPs where DnsHostName starts with the ComputerName that was changed */\n not startswith~(winlog.event_data.DnsHostName, substring(winlog.event_data.TargetUserName, 0, length(winlog.event_data.TargetUserName) - 1))\n ] by winlog.event_data.SubjectLogonId\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.DnsHostName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.SubjectUserName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetUserName","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}]},{"name":"Remote Computer Account DnsHostName Update v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the remote update to a computer account's DnsHostName attribute. If the new value set is a valid domain controller DNS hostname and the subject computer name is not a domain controller, then it's highly likely a preparation step to exploit CVE-2022-26923 in an attempt to elevate privileges from a standard domain user to domain admin privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://research.ifcr.dk/certifried-active-directory-domain-privilege-escalation-cve-2022-26923-9e098fe298f4","https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2022-26923"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Active Directory"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"},{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.002","name":"Domain Accounts","reference":"https://attack.mitre.org/techniques/T1078/002/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=5m\n\n [authentication where event.action == \"logged-in\" and\n winlog.logon.type == \"Network\" and event.outcome == \"success\" and\n not user.name == \"ANONYMOUS LOGON\" and not winlog.event_data.SubjectUserName : \"*$\" and\n not user.domain == \"NT AUTHORITY\" and source.ip != \"127.0.0.1\" and source.ip !=\"::1\"] by winlog.event_data.TargetLogonId\n\n [iam where event.action == \"changed-computer-account\" and\n\n /* if DnsHostName value equal a DC DNS hostname then it's highly suspicious */\n winlog.event_data.DnsHostName : \"??*\" and \n \n /* exclude FPs where DnsHostName starts with the ComputerName that was changed */\n not startswith~(winlog.event_data.DnsHostName, substring(winlog.event_data.TargetUserName, 0, length(winlog.event_data.TargetUserName) - 1))\n ] by winlog.event_data.SubjectLogonId\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.DnsHostName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.SubjectUserName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetUserName","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}]},{"name":"Remote Computer Account DnsHostName Update v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the remote update to a computer account's DnsHostName attribute. If the new value set is a valid domain controller DNS hostname and the subject computer name is not a domain controller, then it's highly likely a preparation step to exploit CVE-2022-26923 in an attempt to elevate privileges from a standard domain user to domain admin privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://research.ifcr.dk/certifried-active-directory-domain-privilege-escalation-cve-2022-26923-9e098fe298f4","https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2022-26923"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Active Directory"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"},{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.002","name":"Domain Accounts","reference":"https://attack.mitre.org/techniques/T1078/002/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=5m\n\n [authentication where event.action == \"logged-in\" and\n winlog.logon.type == \"Network\" and event.outcome == \"success\" and\n not user.name == \"ANONYMOUS LOGON\" and not winlog.event_data.SubjectUserName : \"*$\" and\n not user.domain == \"NT AUTHORITY\" and source.ip != \"127.0.0.1\" and source.ip !=\"::1\"] by winlog.event_data.TargetLogonId\n\n [iam where event.action == \"changed-computer-account\" and\n\n /* if DnsHostName value equal a DC DNS hostname then it's highly suspicious */\n winlog.event_data.DnsHostName : \"??*\" and \n \n /* exclude FPs where DnsHostName starts with the ComputerName that was changed */\n not startswith~(winlog.event_data.DnsHostName, substring(winlog.event_data.TargetUserName, 0, length(winlog.event_data.TargetUserName) - 1))\n ] by winlog.event_data.SubjectLogonId\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.DnsHostName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.SubjectUserName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetUserName","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}]}]},"id":"6bed021a-0afb-461c-acbe-ffdb9574d3f3","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/6cd1779c-560f-4b68-a8f1-11009b27fe63.json b/fleet-packages/detection-rules-composite/kibana/security_rule/6cd1779c-560f-4b68-a8f1-11009b27fe63.json new file mode 100644 index 0000000000000..0a59a89486139 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/6cd1779c-560f-4b68-a8f1-11009b27fe63.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"6cd1779c-560f-4b68-a8f1-11009b27fe63","versions":[{"name":"Microsoft Exchange Server UM Writing Suspicious Files v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious files being written by the Microsoft Exchange Server Unified Messaging (UM) service. This activity has been observed exploiting CVE-2021-26858.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\nPositive hits can be checked against the established Microsoft [baselines](https://github.com/microsoft/CSS-Exchange/tree/main/Security/Baselines).\n\nMicrosoft highly recommends that the best course of action is patching, but this may not protect already compromised systems\nfrom existing intrusions. Other tools for detecting and mitigating can be found within their Exchange support\n[repository](https://github.com/microsoft/CSS-Exchange/tree/main/Security)","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Files generated during installation will generate a lot of noise, so the rule should only be enabled after the fact.","This rule was tuned using the following baseline: https://raw.githubusercontent.com/microsoft/CSS-Exchange/main/Security/Baselines/baseline_15.2.792.5.csv from Microsoft. Depending on version, consult https://github.com/microsoft/CSS-Exchange/tree/main/Security/Baselines to help determine normalcy."],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2021/03/02/hafnium-targeting-exchange-servers","https://www.volexity.com/blog/2021/03/02/active-exploitation-of-microsoft-exchange-zero-day-vulnerabilities"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"language":"eql","query":"file where event.type == \"creation\" and\n process.name : (\"UMWorkerProcess.exe\", \"umservice.exe\") and\n file.extension : (\"php\", \"jsp\", \"js\", \"aspx\", \"asmx\", \"asax\", \"cfm\", \"shtml\") and\n (\n file.path : \"?:\\\\inetpub\\\\wwwroot\\\\aspnet_client\\\\*\" or\n\n (file.path : \"?:\\\\*\\\\Microsoft\\\\Exchange Server*\\\\FrontEnd\\\\HttpProxy\\\\owa\\\\auth\\\\*\" and\n not (file.path : \"?:\\\\*\\\\Microsoft\\\\Exchange Server*\\\\FrontEnd\\\\HttpProxy\\\\owa\\\\auth\\\\version\\\\*\" or\n file.name : (\"errorFE.aspx\", \"expiredpassword.aspx\", \"frowny.aspx\", \"GetIdToken.htm\", \"logoff.aspx\",\n \"logon.aspx\", \"OutlookCN.aspx\", \"RedirSuiteServiceProxy.aspx\", \"signout.aspx\"))) or\n\n (file.path : \"?:\\\\*\\\\Microsoft\\\\Exchange Server*\\\\FrontEnd\\\\HttpProxy\\\\ecp\\\\auth\\\\*\" and\n not file.name : \"TimeoutLogoff.aspx\")\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Microsoft Exchange Server UM Writing Suspicious Files v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious files being written by the Microsoft Exchange Server Unified Messaging (UM) service. This activity has been observed exploiting CVE-2021-26858.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\nPositive hits can be checked against the established Microsoft [baselines](https://github.com/microsoft/CSS-Exchange/tree/main/Security/Baselines).\n\nMicrosoft highly recommends that the best course of action is patching, but this may not protect already compromised systems\nfrom existing intrusions. Other tools for detecting and mitigating can be found within their Exchange support\n[repository](https://github.com/microsoft/CSS-Exchange/tree/main/Security)","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Files generated during installation will generate a lot of noise, so the rule should only be enabled after the fact.","This rule was tuned using the following baseline: https://raw.githubusercontent.com/microsoft/CSS-Exchange/main/Security/Baselines/baseline_15.2.792.5.csv from Microsoft. Depending on version, consult https://github.com/microsoft/CSS-Exchange/tree/main/Security/Baselines to help determine normalcy."],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2021/03/02/hafnium-targeting-exchange-servers","https://www.volexity.com/blog/2021/03/02/active-exploitation-of-microsoft-exchange-zero-day-vulnerabilities"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"language":"eql","query":"file where event.type == \"creation\" and\n process.name : (\"UMWorkerProcess.exe\", \"umservice.exe\") and\n file.extension : (\"php\", \"jsp\", \"js\", \"aspx\", \"asmx\", \"asax\", \"cfm\", \"shtml\") and\n (\n file.path : \"?:\\\\inetpub\\\\wwwroot\\\\aspnet_client\\\\*\" or\n\n (file.path : \"?:\\\\*\\\\Microsoft\\\\Exchange Server*\\\\FrontEnd\\\\HttpProxy\\\\owa\\\\auth\\\\*\" and\n not (file.path : \"?:\\\\*\\\\Microsoft\\\\Exchange Server*\\\\FrontEnd\\\\HttpProxy\\\\owa\\\\auth\\\\version\\\\*\" or\n file.name : (\"errorFE.aspx\", \"expiredpassword.aspx\", \"frowny.aspx\", \"GetIdToken.htm\", \"logoff.aspx\",\n \"logon.aspx\", \"OutlookCN.aspx\", \"RedirSuiteServiceProxy.aspx\", \"signout.aspx\"))) or\n\n (file.path : \"?:\\\\*\\\\Microsoft\\\\Exchange Server*\\\\FrontEnd\\\\HttpProxy\\\\ecp\\\\auth\\\\*\" and\n not file.name : \"TimeoutLogoff.aspx\")\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Microsoft Exchange Server UM Writing Suspicious Files v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious files being written by the Microsoft Exchange Server Unified Messaging (UM) service. This activity has been observed exploiting CVE-2021-26858.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\nPositive hits can be checked against the established Microsoft [baselines](https://github.com/microsoft/CSS-Exchange/tree/main/Security/Baselines).\n\nMicrosoft highly recommends that the best course of action is patching, but this may not protect already compromised systems\nfrom existing intrusions. Other tools for detecting and mitigating can be found within their Exchange support\n[repository](https://github.com/microsoft/CSS-Exchange/tree/main/Security)","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Files generated during installation will generate a lot of noise, so the rule should only be enabled after the fact.","This rule was tuned using the following baseline: https://raw.githubusercontent.com/microsoft/CSS-Exchange/main/Security/Baselines/baseline_15.2.792.5.csv from Microsoft. Depending on version, consult https://github.com/microsoft/CSS-Exchange/tree/main/Security/Baselines to help determine normalcy."],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2021/03/02/hafnium-targeting-exchange-servers","https://www.volexity.com/blog/2021/03/02/active-exploitation-of-microsoft-exchange-zero-day-vulnerabilities"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"language":"eql","query":"file where event.type == \"creation\" and\n process.name : (\"UMWorkerProcess.exe\", \"umservice.exe\") and\n file.extension : (\"php\", \"jsp\", \"js\", \"aspx\", \"asmx\", \"asax\", \"cfm\", \"shtml\") and\n (\n file.path : \"?:\\\\inetpub\\\\wwwroot\\\\aspnet_client\\\\*\" or\n\n (file.path : \"?:\\\\*\\\\Microsoft\\\\Exchange Server*\\\\FrontEnd\\\\HttpProxy\\\\owa\\\\auth\\\\*\" and\n not (file.path : \"?:\\\\*\\\\Microsoft\\\\Exchange Server*\\\\FrontEnd\\\\HttpProxy\\\\owa\\\\auth\\\\version\\\\*\" or\n file.name : (\"errorFE.aspx\", \"expiredpassword.aspx\", \"frowny.aspx\", \"GetIdToken.htm\", \"logoff.aspx\",\n \"logon.aspx\", \"OutlookCN.aspx\", \"RedirSuiteServiceProxy.aspx\", \"signout.aspx\"))) or\n\n (file.path : \"?:\\\\*\\\\Microsoft\\\\Exchange Server*\\\\FrontEnd\\\\HttpProxy\\\\ecp\\\\auth\\\\*\" and\n not file.name : \"TimeoutLogoff.aspx\")\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"6cd1779c-560f-4b68-a8f1-11009b27fe63","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/6d448b96-c922-4adb-b51c-b767f1ea5b76.json b/fleet-packages/detection-rules-composite/kibana/security_rule/6d448b96-c922-4adb-b51c-b767f1ea5b76.json new file mode 100644 index 0000000000000..9b0d342cb3ace --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/6d448b96-c922-4adb-b51c-b767f1ea5b76.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"6d448b96-c922-4adb-b51c-b767f1ea5b76","versions":[{"name":"Unusual Process For a Windows Host v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies rare processes that do not usually run on individual hosts, which can indicate execution of unauthorized services, malware, or persistence mechanisms. Processes are considered rare when they only run occasionally as compared with other processes running on the host.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Windows Process\n\nSearching for abnormal Windows processes is a good methodology to find potentially malicious activity within a network.\nUnderstanding what is commonly run within an environment and developing baselines for legitimate activity can help\nuncover potential malware and suspicious behaviors.\n\n#### Possible investigation steps:\n- Consider the user as identified by the `user.name` field. Is this program part of an expected workflow for the user who ran this program on this host?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process metadata like the values of the Company, Description and Product fields which may indicate whether the program is associated with an expected software vendor or package.\n- Examine arguments and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.\n- Consider the same for the parent process. If the parent process is a legitimate system utility or service, this could be related to software updates or system management. If the parent process is something user-facing like an Office application, this process could be more suspicious.\n- If you have file hash values in the event data, and you suspect malware, you can optionally run a search for the file hash to see if the file is identified as malware by anti-malware tools.\n\n### False Positive Analysis\n- Validate the unusual Windows process is not related to new benign software installation activity. If related to\nlegitimate software, this can be done by leveraging the exception workflow in the Kibana Security App or Elasticsearch\nAPI to tune this rule to your environment.\n- Try to understand the context of the execution by thinking about the user, machine, or business purpose. It's possible that a small number of endpoints\nsuch as servers that have very unique software that might appear to be unusual, but satisfy a specific business need.\n\n### Related Rules\n- Anomalous Windows Process Creation\n- Unusual Windows Path Activity\n- Unusual Windows Process Calling the Metadata Service\n\n### Response and Remediation\n- This rule is related to process execution events and should be immediately reviewed and investigated to determine if malicious.\n- Based on validation and if malicious, the impacted machine should be isolated and analyzed to determine other post-compromise\nbehavior such as setting up persistence or performing lateral movement.\n- Look into preventive measures such as Windows Defender Application Control and AppLocker to gain better control on\nwhat is allowed to run on Windows infrastructure.\n","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_rare_process_by_host_windows"],"type":"machine_learning"},{"name":"Unusual Process For a Windows Host v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies rare processes that do not usually run on individual hosts, which can indicate execution of unauthorized services, malware, or persistence mechanisms. Processes are considered rare when they only run occasionally as compared with other processes running on the host.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Windows Process\n\nSearching for abnormal Windows processes is a good methodology to find potentially malicious activity within a network.\nUnderstanding what is commonly run within an environment and developing baselines for legitimate activity can help\nuncover potential malware and suspicious behaviors.\n\n#### Possible investigation steps:\n- Consider the user as identified by the `user.name` field. Is this program part of an expected workflow for the user who ran this program on this host?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process metadata like the values of the Company, Description and Product fields which may indicate whether the program is associated with an expected software vendor or package.\n- Examine arguments and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.\n- Consider the same for the parent process. If the parent process is a legitimate system utility or service, this could be related to software updates or system management. If the parent process is something user-facing like an Office application, this process could be more suspicious.\n- If you have file hash values in the event data, and you suspect malware, you can optionally run a search for the file hash to see if the file is identified as malware by anti-malware tools.\n\n### False Positive Analysis\n- Validate the unusual Windows process is not related to new benign software installation activity. If related to\nlegitimate software, this can be done by leveraging the exception workflow in the Kibana Security App or Elasticsearch\nAPI to tune this rule to your environment.\n- Try to understand the context of the execution by thinking about the user, machine, or business purpose. It's possible that a small number of endpoints\nsuch as servers that have very unique software that might appear to be unusual, but satisfy a specific business need.\n\n### Related Rules\n- Anomalous Windows Process Creation\n- Unusual Windows Path Activity\n- Unusual Windows Process Calling the Metadata Service\n\n### Response and Remediation\n- This rule is related to process execution events and should be immediately reviewed and investigated to determine if malicious.\n- Based on validation and if malicious, the impacted machine should be isolated and analyzed to determine other post-compromise\nbehavior such as setting up persistence or performing lateral movement.\n- Look into preventive measures such as Windows Defender Application Control and AppLocker to gain better control on\nwhat is allowed to run on Windows infrastructure.\n","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_rare_process_by_host_windows"],"type":"machine_learning"},{"name":"Unusual Process For a Windows Host v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies rare processes that do not usually run on individual hosts, which can indicate execution of unauthorized services, malware, or persistence mechanisms. Processes are considered rare when they only run occasionally as compared with other processes running on the host.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Windows Process\n\nSearching for abnormal Windows processes is a good methodology to find potentially malicious activity within a network.\nUnderstanding what is commonly run within an environment and developing baselines for legitimate activity can help\nuncover potential malware and suspicious behaviors.\n\n#### Possible investigation steps:\n- Consider the user as identified by the `user.name` field. Is this program part of an expected workflow for the user who ran this program on this host?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process metadata like the values of the Company, Description and Product fields which may indicate whether the program is associated with an expected software vendor or package.\n- Examine arguments and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.\n- Consider the same for the parent process. If the parent process is a legitimate system utility or service, this could be related to software updates or system management. If the parent process is something user-facing like an Office application, this process could be more suspicious.\n- If you have file hash values in the event data, and you suspect malware, you can optionally run a search for the file hash to see if the file is identified as malware by anti-malware tools.\n\n### False Positive Analysis\n- Validate the unusual Windows process is not related to new benign software installation activity. If related to\nlegitimate software, this can be done by leveraging the exception workflow in the Kibana Security App or Elasticsearch\nAPI to tune this rule to your environment.\n- Try to understand the context of the execution by thinking about the user, machine, or business purpose. It's possible that a small number of endpoints\nsuch as servers that have very unique software that might appear to be unusual, but satisfy a specific business need.\n\n### Related Rules\n- Anomalous Windows Process Creation\n- Unusual Windows Path Activity\n- Unusual Windows Process Calling the Metadata Service\n\n### Response and Remediation\n- This rule is related to process execution events and should be immediately reviewed and investigated to determine if malicious.\n- Based on validation and if malicious, the impacted machine should be isolated and analyzed to determine other post-compromise\nbehavior such as setting up persistence or performing lateral movement.\n- Look into preventive measures such as Windows Defender Application Control and AppLocker to gain better control on\nwhat is allowed to run on Windows infrastructure.\n","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_rare_process_by_host_windows"],"type":"machine_learning"}]},"id":"6d448b96-c922-4adb-b51c-b767f1ea5b76","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/6e40d56f-5c0e-4ac6-aece-bee96645b172.json b/fleet-packages/detection-rules-composite/kibana/security_rule/6e40d56f-5c0e-4ac6-aece-bee96645b172.json new file mode 100644 index 0000000000000..521a89a424a9a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/6e40d56f-5c0e-4ac6-aece-bee96645b172.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"6e40d56f-5c0e-4ac6-aece-bee96645b172","versions":[{"name":"Anomalous Process For a Windows Population v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Searches for rare processes running on multiple hosts in an entire fleet or network. This reduces the detection of false positives since automated maintenance processes usually only run occasionally on a single machine but are common to all or many hosts in a fleet.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Windows Process\nDetection alerts from this rule indicate the presence of a Windows process that is rare and unusual for all of the Windows hosts for which Winlogbeat data is available. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is this program part of an expected workflow for the user who ran this program on this host?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process metadata like the values of the Company, Description and Product fields which may indicate whether the program is associated with an expected software vendor or package.\n- Examine arguments and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.\n- Consider the same for the parent process. If the parent process is a legitimate system utility or service, this could be related to software updates or system management. If the parent process is something user-facing like an Office application, this process could be more suspicious.\n- If you have file hash values in the event data, and you suspect malware, you can optionally run a search for the file hash to see if the file is identified as malware by anti-malware tools. ","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_process_all_hosts"],"type":"machine_learning"},{"name":"Anomalous Process For a Windows Population v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Searches for rare processes running on multiple hosts in an entire fleet or network. This reduces the detection of false positives since automated maintenance processes usually only run occasionally on a single machine but are common to all or many hosts in a fleet.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Windows Process\nDetection alerts from this rule indicate the presence of a Windows process that is rare and unusual for all of the Windows hosts for which Winlogbeat data is available. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is this program part of an expected workflow for the user who ran this program on this host?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process metadata like the values of the Company, Description and Product fields which may indicate whether the program is associated with an expected software vendor or package.\n- Examine arguments and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.\n- Consider the same for the parent process. If the parent process is a legitimate system utility or service, this could be related to software updates or system management. If the parent process is something user-facing like an Office application, this process could be more suspicious.\n- If you have file hash values in the event data, and you suspect malware, you can optionally run a search for the file hash to see if the file is identified as malware by anti-malware tools. ","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_process_all_hosts"],"type":"machine_learning"},{"name":"Anomalous Process For a Windows Population v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Searches for rare processes running on multiple hosts in an entire fleet or network. This reduces the detection of false positives since automated maintenance processes usually only run occasionally on a single machine but are common to all or many hosts in a fleet.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Windows Process\nDetection alerts from this rule indicate the presence of a Windows process that is rare and unusual for all of the Windows hosts for which Winlogbeat data is available. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is this program part of an expected workflow for the user who ran this program on this host?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process metadata like the values of the Company, Description and Product fields which may indicate whether the program is associated with an expected software vendor or package.\n- Examine arguments and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.\n- Consider the same for the parent process. If the parent process is a legitimate system utility or service, this could be related to software updates or system management. If the parent process is something user-facing like an Office application, this process could be more suspicious.\n- If you have file hash values in the event data, and you suspect malware, you can optionally run a search for the file hash to see if the file is identified as malware by anti-malware tools. ","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_process_all_hosts"],"type":"machine_learning"}]},"id":"6e40d56f-5c0e-4ac6-aece-bee96645b172","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/6e9130a5-9be6-48e5-943a-9628bfc74b18.json b/fleet-packages/detection-rules-composite/kibana/security_rule/6e9130a5-9be6-48e5-943a-9628bfc74b18.json new file mode 100644 index 0000000000000..1fe11cfc19d60 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/6e9130a5-9be6-48e5-943a-9628bfc74b18.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"6e9130a5-9be6-48e5-943a-9628bfc74b18","versions":[{"name":"AdminSDHolder Backdoor v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects modifications in the AdminSDHolder object. Attackers can abuse the SDProp process to implement a persistent backdoor in Active Directory. SDProp compares the permissions on protected objects with those defined on the AdminSDHolder object. If the permissions on any of the protected accounts and groups do not match, the permissions on the protected accounts and groups are reset to match those of the domain's AdminSDHolder object, regaining their Administrative Privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://adsecurity.org/?p=1906","https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/appendix-c--protected-accounts-and-groups-in-active-directory#adminsdholder"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Active Directory"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"Directory Service Changes\" and event.code:5136 and winlog.event_data.ObjectDN:CN=AdminSDHolder,CN=System*\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.ObjectDN","type":"unknown"}]},{"name":"AdminSDHolder Backdoor v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects modifications in the AdminSDHolder object. Attackers can abuse the SDProp process to implement a persistent backdoor in Active Directory. SDProp compares the permissions on protected objects with those defined on the AdminSDHolder object. If the permissions on any of the protected accounts and groups do not match, the permissions on the protected accounts and groups are reset to match those of the domain's AdminSDHolder object, regaining their Administrative Privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://adsecurity.org/?p=1906","https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/appendix-c--protected-accounts-and-groups-in-active-directory#adminsdholder"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Active Directory"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"Directory Service Changes\" and event.code:5136 and winlog.event_data.ObjectDN:CN=AdminSDHolder,CN=System*\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.ObjectDN","type":"unknown"}]},{"name":"AdminSDHolder Backdoor v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects modifications in the AdminSDHolder object. Attackers can abuse the SDProp process to implement a persistent backdoor in Active Directory. SDProp compares the permissions on protected objects with those defined on the AdminSDHolder object. If the permissions on any of the protected accounts and groups do not match, the permissions on the protected accounts and groups are reset to match those of the domain's AdminSDHolder object, regaining their Administrative Privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://adsecurity.org/?p=1906","https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/appendix-c--protected-accounts-and-groups-in-active-directory#adminsdholder"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Active Directory"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"Directory Service Changes\" and event.code:5136 and winlog.event_data.ObjectDN:CN=AdminSDHolder,CN=System*\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.ObjectDN","type":"unknown"}]}]},"id":"6e9130a5-9be6-48e5-943a-9628bfc74b18","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/6e9b351e-a531-4bdc-b73e-7034d6eed7ff.json b/fleet-packages/detection-rules-composite/kibana/security_rule/6e9b351e-a531-4bdc-b73e-7034d6eed7ff.json new file mode 100644 index 0000000000000..4eceb9b66bb3e --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/6e9b351e-a531-4bdc-b73e-7034d6eed7ff.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"6e9b351e-a531-4bdc-b73e-7034d6eed7ff","versions":[{"name":"Enumeration of Users or Groups via Built-in Commands v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of macOS built-in commands related to account or group enumeration. Adversaries may use account and group information to orient themselves before deciding how to act.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","macOS","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1069","name":"Permission Groups Discovery","reference":"https://attack.mitre.org/techniques/T1069/"},{"id":"T1087","name":"Account Discovery","reference":"https://attack.mitre.org/techniques/T1087/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n (\n process.name : (\"ldapsearch\", \"dsmemberutil\") or\n (process.name : \"dscl\" and\n process.args : (\"read\", \"-read\", \"list\", \"-list\", \"ls\", \"search\", \"-search\") and\n process.args : (\"/Active Directory/*\", \"/Users*\", \"/Groups*\"))\n\t) and\n not process.parent.executable : (\"/Applications/NoMAD.app/Contents/MacOS/NoMAD\",\n \"/Applications/ZoomPresence.app/Contents/MacOS/ZoomPresence\",\n \"/Applications/Sourcetree.app/Contents/MacOS/Sourcetree\",\n \"/Library/Application Support/JAMF/Jamf.app/Contents/MacOS/JamfDaemon.app/Contents/MacOS/JamfDaemon\",\n \"/Applications/Jamf Connect.app/Contents/MacOS/Jamf Connect\",\n \"/usr/local/jamf/bin/jamf\",\n \"/Library/Application Support/AirWatch/hubd\",\n \"/opt/jc/bin/jumpcloud-agent\",\n \"/Applications/ESET Endpoint Antivirus.app/Contents/MacOS/esets_daemon\",\n \"/Applications/ESET Endpoint Security.app/Contents/MacOS/esets_daemon\",\n \"/Library/PrivilegedHelperTools/com.fortinet.forticlient.uninstall_helper\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Enumeration of Users or Groups via Built-in Commands v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of macOS built-in commands related to account or group enumeration. Adversaries may use account and group information to orient themselves before deciding how to act.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","macOS","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1069","name":"Permission Groups Discovery","reference":"https://attack.mitre.org/techniques/T1069/"},{"id":"T1087","name":"Account Discovery","reference":"https://attack.mitre.org/techniques/T1087/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n (\n process.name : (\"ldapsearch\", \"dsmemberutil\") or\n (process.name : \"dscl\" and\n process.args : (\"read\", \"-read\", \"list\", \"-list\", \"ls\", \"search\", \"-search\") and\n process.args : (\"/Active Directory/*\", \"/Users*\", \"/Groups*\"))\n\t) and\n not process.parent.executable : (\"/Applications/NoMAD.app/Contents/MacOS/NoMAD\",\n \"/Applications/ZoomPresence.app/Contents/MacOS/ZoomPresence\",\n \"/Applications/Sourcetree.app/Contents/MacOS/Sourcetree\",\n \"/Library/Application Support/JAMF/Jamf.app/Contents/MacOS/JamfDaemon.app/Contents/MacOS/JamfDaemon\",\n \"/Applications/Jamf Connect.app/Contents/MacOS/Jamf Connect\",\n \"/usr/local/jamf/bin/jamf\",\n \"/Library/Application Support/AirWatch/hubd\",\n \"/opt/jc/bin/jumpcloud-agent\",\n \"/Applications/ESET Endpoint Antivirus.app/Contents/MacOS/esets_daemon\",\n \"/Applications/ESET Endpoint Security.app/Contents/MacOS/esets_daemon\",\n \"/Library/PrivilegedHelperTools/com.fortinet.forticlient.uninstall_helper\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Enumeration of Users or Groups via Built-in Commands v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of macOS built-in commands related to account or group enumeration. Adversaries may use account and group information to orient themselves before deciding how to act.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","macOS","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1069","name":"Permission Groups Discovery","reference":"https://attack.mitre.org/techniques/T1069/"},{"id":"T1087","name":"Account Discovery","reference":"https://attack.mitre.org/techniques/T1087/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n (\n process.name : (\"ldapsearch\", \"dsmemberutil\") or\n (process.name : \"dscl\" and\n process.args : (\"read\", \"-read\", \"list\", \"-list\", \"ls\", \"search\", \"-search\") and\n process.args : (\"/Active Directory/*\", \"/Users*\", \"/Groups*\"))\n\t) and\n not process.parent.executable : (\"/Applications/NoMAD.app/Contents/MacOS/NoMAD\",\n \"/Applications/ZoomPresence.app/Contents/MacOS/ZoomPresence\",\n \"/Applications/Sourcetree.app/Contents/MacOS/Sourcetree\",\n \"/Library/Application Support/JAMF/Jamf.app/Contents/MacOS/JamfDaemon.app/Contents/MacOS/JamfDaemon\",\n \"/Applications/Jamf Connect.app/Contents/MacOS/Jamf Connect\",\n \"/usr/local/jamf/bin/jamf\",\n \"/Library/Application Support/AirWatch/hubd\",\n \"/opt/jc/bin/jumpcloud-agent\",\n \"/Applications/ESET Endpoint Antivirus.app/Contents/MacOS/esets_daemon\",\n \"/Applications/ESET Endpoint Security.app/Contents/MacOS/esets_daemon\",\n \"/Library/PrivilegedHelperTools/com.fortinet.forticlient.uninstall_helper\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"6e9b351e-a531-4bdc-b73e-7034d6eed7ff","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/6ea41894-66c3-4df7-ad6b-2c5074eb3df8.json b/fleet-packages/detection-rules-composite/kibana/security_rule/6ea41894-66c3-4df7-ad6b-2c5074eb3df8.json new file mode 100644 index 0000000000000..60186b82444ca --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/6ea41894-66c3-4df7-ad6b-2c5074eb3df8.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"6ea41894-66c3-4df7-ad6b-2c5074eb3df8","versions":[{"name":"Potential Windows Error Manager Masquerading v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious instances of the Windows Error Reporting process (WerFault.exe or Wermgr.exe) with matching command-line and process executable values performing outgoing network connections. This may be indicative of a masquerading attempt to evade suspicious child process behavior detections.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Legit Application Crash with rare Werfault commandline value"],"from":"now-9m","references":["https://twitter.com/SBousseaden/status/1235533224337641473","https://www.hexacorn.com/blog/2019/09/20/werfault-command-line-switches-v0-1/","https://app.any.run/tasks/26051d84-b68e-4afb-8a9a-76921a271b81/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan = 5s\n [process where event.type:\"start\" and process.name : (\"wermgr.exe\", \"WerFault.exe\") and process.args_count == 1]\n [network where process.name : (\"wermgr.exe\", \"WerFault.exe\") and network.protocol != \"dns\" and\n network.direction : (\"outgoing\", \"egress\") and destination.ip !=\"::1\" and destination.ip !=\"127.0.0.1\"\n ]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Potential Windows Error Manager Masquerading v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious instances of the Windows Error Reporting process (WerFault.exe or Wermgr.exe) with matching command-line and process executable values performing outgoing network connections. This may be indicative of a masquerading attempt to evade suspicious child process behavior detections.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Legit Application Crash with rare Werfault commandline value"],"from":"now-9m","references":["https://twitter.com/SBousseaden/status/1235533224337641473","https://www.hexacorn.com/blog/2019/09/20/werfault-command-line-switches-v0-1/","https://app.any.run/tasks/26051d84-b68e-4afb-8a9a-76921a271b81/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan = 5s\n [process where event.type:\"start\" and process.name : (\"wermgr.exe\", \"WerFault.exe\") and process.args_count == 1]\n [network where process.name : (\"wermgr.exe\", \"WerFault.exe\") and network.protocol != \"dns\" and\n network.direction : (\"outgoing\", \"egress\") and destination.ip !=\"::1\" and destination.ip !=\"127.0.0.1\"\n ]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Potential Windows Error Manager Masquerading v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious instances of the Windows Error Reporting process (WerFault.exe or Wermgr.exe) with matching command-line and process executable values performing outgoing network connections. This may be indicative of a masquerading attempt to evade suspicious child process behavior detections.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Legit Application Crash with rare Werfault commandline value"],"from":"now-9m","references":["https://twitter.com/SBousseaden/status/1235533224337641473","https://www.hexacorn.com/blog/2019/09/20/werfault-command-line-switches-v0-1/","https://app.any.run/tasks/26051d84-b68e-4afb-8a9a-76921a271b81/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan = 5s\n [process where event.type:\"start\" and process.name : (\"wermgr.exe\", \"WerFault.exe\") and process.args_count == 1]\n [network where process.name : (\"wermgr.exe\", \"WerFault.exe\") and network.protocol != \"dns\" and\n network.direction : (\"outgoing\", \"egress\") and destination.ip !=\"::1\" and destination.ip !=\"127.0.0.1\"\n ]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"6ea41894-66c3-4df7-ad6b-2c5074eb3df8","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/6ea55c81-e2ba-42f2-a134-bccf857ba922.json b/fleet-packages/detection-rules-composite/kibana/security_rule/6ea55c81-e2ba-42f2-a134-bccf857ba922.json new file mode 100644 index 0000000000000..7aa57832375a3 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/6ea55c81-e2ba-42f2-a134-bccf857ba922.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"6ea55c81-e2ba-42f2-a134-bccf857ba922","versions":[{"name":"Security Software Discovery using WMIC v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of Windows Management Instrumentation Command (WMIC) to discover certain System Security Settings such as AntiVirus or Host Firewall details.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Security Software Discovery using WMIC\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `wmic` utility with arguments compatible to the enumeration of the security\nsoftware installed on the host. Attackers can use this information to decide whether or not to infect a system, disable\nprotections, use bypasses, etc.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1518","name":"Software Discovery","reference":"https://attack.mitre.org/techniques/T1518/","subtechnique":[{"id":"T1518.001","name":"Security Software Discovery","reference":"https://attack.mitre.org/techniques/T1518/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name:\"wmic.exe\" or process.pe.original_file_name:\"wmic.exe\") and\n process.args:\"/namespace:\\\\\\\\root\\\\SecurityCenter2\" and process.args:\"Get\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Security Software Discovery using WMIC v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of Windows Management Instrumentation Command (WMIC) to discover certain System Security Settings such as AntiVirus or Host Firewall details.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Security Software Discovery using WMIC\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `wmic` utility with arguments compatible to the enumeration of the security\nsoftware installed on the host. Attackers can use this information to decide whether or not to infect a system, disable\nprotections, use bypasses, etc.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1518","name":"Software Discovery","reference":"https://attack.mitre.org/techniques/T1518/","subtechnique":[{"id":"T1518.001","name":"Security Software Discovery","reference":"https://attack.mitre.org/techniques/T1518/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name:\"wmic.exe\" or process.pe.original_file_name:\"wmic.exe\") and\n process.args:\"/namespace:\\\\\\\\root\\\\SecurityCenter2\" and process.args:\"Get\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Security Software Discovery using WMIC v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of Windows Management Instrumentation Command (WMIC) to discover certain System Security Settings such as AntiVirus or Host Firewall details.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Security Software Discovery using WMIC\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `wmic` utility with arguments compatible to the enumeration of the security\nsoftware installed on the host. Attackers can use this information to decide whether or not to infect a system, disable\nprotections, use bypasses, etc.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1518","name":"Software Discovery","reference":"https://attack.mitre.org/techniques/T1518/","subtechnique":[{"id":"T1518.001","name":"Security Software Discovery","reference":"https://attack.mitre.org/techniques/T1518/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name:\"wmic.exe\" or process.pe.original_file_name:\"wmic.exe\") and\n process.args:\"/namespace:\\\\\\\\root\\\\SecurityCenter2\" and process.args:\"Get\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"6ea55c81-e2ba-42f2-a134-bccf857ba922","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/6f435062-b7fc-4af9-acea-5b1ead65c5a5.json b/fleet-packages/detection-rules-composite/kibana/security_rule/6f435062-b7fc-4af9-acea-5b1ead65c5a5.json new file mode 100644 index 0000000000000..d8d14cbaf5f9f --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/6f435062-b7fc-4af9-acea-5b1ead65c5a5.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"6f435062-b7fc-4af9-acea-5b1ead65c5a5","versions":[{"name":"Google Workspace Role Modified v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a custom admin role or its permissions are modified. An adversary may modify a custom admin role in order to elevate the permissions of other user accounts and persist in their target’s environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Google Workspace admin roles may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/2406043?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:(ADD_PRIVILEGE or UPDATE_ROLE)\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Google Workspace Role Modified v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a custom admin role or its permissions are modified. An adversary may modify a custom admin role in order to elevate the permissions of other user accounts and persist in their target’s environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Google Workspace admin roles may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/2406043?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:(ADD_PRIVILEGE or UPDATE_ROLE)\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Google Workspace Role Modified v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a custom admin role or its permissions are modified. An adversary may modify a custom admin role in order to elevate the permissions of other user accounts and persist in their target’s environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Google Workspace admin roles may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/2406043?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:(ADD_PRIVILEGE or UPDATE_ROLE)\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"6f435062-b7fc-4af9-acea-5b1ead65c5a5","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/7024e2a0-315d-4334-bb1a-441c593e16ab.json b/fleet-packages/detection-rules-composite/kibana/security_rule/7024e2a0-315d-4334-bb1a-441c593e16ab.json new file mode 100644 index 0000000000000..987621b3f5ae1 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/7024e2a0-315d-4334-bb1a-441c593e16ab.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"7024e2a0-315d-4334-bb1a-441c593e16ab","versions":[{"name":"AWS CloudTrail Log Deleted v103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an AWS log trail. An adversary may delete trails in an attempt to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudTrail Log Deleted\n\nAmazon CloudTrail is a service that enables governance, compliance, operational auditing, and risk auditing of your\nAmazon Web Services account. With CloudTrail, you can log, continuously monitor, and retain account activity related to\nactions across your Amazon Web Services infrastructure. CloudTrail provides event history of your Amazon Web Services\naccount activity, including actions taken through the Amazon Management Console, Amazon SDKs, command line tools, and\nother Amazon Web Services services. This event history simplifies security analysis, resource change tracking, and\ntroubleshooting.\n\nThis rule identifies the deletion of an AWS log trail using the API `DeleteTrail` action. Attackers can do this to\ncover their tracks and impact security monitoring that relies on this source.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Investigate the deleted log trail's criticality and whether the responsible team is aware of the deletion.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trail deletions may be made by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Trail deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_DeleteTrail.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudtrail/delete-trail.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:DeleteTrail and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS CloudTrail Log Deleted v103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an AWS log trail. An adversary may delete trails in an attempt to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudTrail Log Deleted\n\nAmazon CloudTrail is a service that enables governance, compliance, operational auditing, and risk auditing of your\nAmazon Web Services account. With CloudTrail, you can log, continuously monitor, and retain account activity related to\nactions across your Amazon Web Services infrastructure. CloudTrail provides event history of your Amazon Web Services\naccount activity, including actions taken through the Amazon Management Console, Amazon SDKs, command line tools, and\nother Amazon Web Services services. This event history simplifies security analysis, resource change tracking, and\ntroubleshooting.\n\nThis rule identifies the deletion of an AWS log trail using the API `DeleteTrail` action. Attackers can do this to\ncover their tracks and impact security monitoring that relies on this source.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Investigate the deleted log trail's criticality and whether the responsible team is aware of the deletion.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trail deletions may be made by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Trail deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_DeleteTrail.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudtrail/delete-trail.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:DeleteTrail and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS CloudTrail Log Deleted v103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an AWS log trail. An adversary may delete trails in an attempt to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudTrail Log Deleted\n\nAmazon CloudTrail is a service that enables governance, compliance, operational auditing, and risk auditing of your\nAmazon Web Services account. With CloudTrail, you can log, continuously monitor, and retain account activity related to\nactions across your Amazon Web Services infrastructure. CloudTrail provides event history of your Amazon Web Services\naccount activity, including actions taken through the Amazon Management Console, Amazon SDKs, command line tools, and\nother Amazon Web Services services. This event history simplifies security analysis, resource change tracking, and\ntroubleshooting.\n\nThis rule identifies the deletion of an AWS log trail using the API `DeleteTrail` action. Attackers can do this to\ncover their tracks and impact security monitoring that relies on this source.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Investigate the deleted log trail's criticality and whether the responsible team is aware of the deletion.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trail deletions may be made by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Trail deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_DeleteTrail.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudtrail/delete-trail.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:DeleteTrail and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"7024e2a0-315d-4334-bb1a-441c593e16ab","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/7024e2a0-315d-4334-bb1a-552d604f27bc.json b/fleet-packages/detection-rules-composite/kibana/security_rule/7024e2a0-315d-4334-bb1a-552d604f27bc.json new file mode 100644 index 0000000000000..f7bc13a2d3b5f --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/7024e2a0-315d-4334-bb1a-552d604f27bc.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"7024e2a0-315d-4334-bb1a-552d604f27bc","versions":[{"name":"AWS Config Resource Deletion v103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to delete an AWS Config Service resource. An adversary may tamper with Config services in order to reduce visibility into the security posture of an account and / or its workload instances.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS Config Resource Deletion\n\nAWS Config provides a detailed view of the configuration of AWS resources in your AWS account. This includes how the\nresources are related to one another and how they were configured in the past so that you can see how the configurations\nand relationships change over time.\n\nThis rule looks for the deletion of AWS Config resources using various API actions. Attackers can do this to cover their\ntracks and impact security monitoring that relies on these sources.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Identify the AWS resource that was involved and its criticality, ownership, and role in the environment. Also investigate\nif the resource is security-related.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Privileged IAM users with security responsibilities may be expected to make changes to the Config service in order to align with local security policies and requirements. Automation, orchestration, and security tools may also make changes to the Config service, where they are used to automate setup or configuration of AWS accounts. Other kinds of user or service contexts do not commonly make changes to this service."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/config/latest/developerguide/how-does-config-work.html","https://docs.aws.amazon.com/config/latest/APIReference/API_Operations.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:config.amazonaws.com and\n event.action:(DeleteConfigRule or DeleteOrganizationConfigRule or DeleteConfigurationAggregator or\n DeleteConfigurationRecorder or DeleteConformancePack or DeleteOrganizationConformancePack or\n DeleteDeliveryChannel or DeleteRemediationConfiguration or DeleteRetentionConfiguration)\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Config Resource Deletion v103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to delete an AWS Config Service resource. An adversary may tamper with Config services in order to reduce visibility into the security posture of an account and / or its workload instances.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS Config Resource Deletion\n\nAWS Config provides a detailed view of the configuration of AWS resources in your AWS account. This includes how the\nresources are related to one another and how they were configured in the past so that you can see how the configurations\nand relationships change over time.\n\nThis rule looks for the deletion of AWS Config resources using various API actions. Attackers can do this to cover their\ntracks and impact security monitoring that relies on these sources.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Identify the AWS resource that was involved and its criticality, ownership, and role in the environment. Also investigate\nif the resource is security-related.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Privileged IAM users with security responsibilities may be expected to make changes to the Config service in order to align with local security policies and requirements. Automation, orchestration, and security tools may also make changes to the Config service, where they are used to automate setup or configuration of AWS accounts. Other kinds of user or service contexts do not commonly make changes to this service."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/config/latest/developerguide/how-does-config-work.html","https://docs.aws.amazon.com/config/latest/APIReference/API_Operations.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:config.amazonaws.com and\n event.action:(DeleteConfigRule or DeleteOrganizationConfigRule or DeleteConfigurationAggregator or\n DeleteConfigurationRecorder or DeleteConformancePack or DeleteOrganizationConformancePack or\n DeleteDeliveryChannel or DeleteRemediationConfiguration or DeleteRetentionConfiguration)\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Config Resource Deletion v103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to delete an AWS Config Service resource. An adversary may tamper with Config services in order to reduce visibility into the security posture of an account and / or its workload instances.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS Config Resource Deletion\n\nAWS Config provides a detailed view of the configuration of AWS resources in your AWS account. This includes how the\nresources are related to one another and how they were configured in the past so that you can see how the configurations\nand relationships change over time.\n\nThis rule looks for the deletion of AWS Config resources using various API actions. Attackers can do this to cover their\ntracks and impact security monitoring that relies on these sources.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Identify the AWS resource that was involved and its criticality, ownership, and role in the environment. Also investigate\nif the resource is security-related.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Privileged IAM users with security responsibilities may be expected to make changes to the Config service in order to align with local security policies and requirements. Automation, orchestration, and security tools may also make changes to the Config service, where they are used to automate setup or configuration of AWS accounts. Other kinds of user or service contexts do not commonly make changes to this service."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/config/latest/developerguide/how-does-config-work.html","https://docs.aws.amazon.com/config/latest/APIReference/API_Operations.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:config.amazonaws.com and\n event.action:(DeleteConfigRule or DeleteOrganizationConfigRule or DeleteConfigurationAggregator or\n DeleteConfigurationRecorder or DeleteConformancePack or DeleteOrganizationConformancePack or\n DeleteDeliveryChannel or DeleteRemediationConfiguration or DeleteRetentionConfiguration)\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"7024e2a0-315d-4334-bb1a-552d604f27bc","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/70d12c9c-0dbd-4a1a-bc44-1467502c9cf6.json b/fleet-packages/detection-rules-composite/kibana/security_rule/70d12c9c-0dbd-4a1a-bc44-1467502c9cf6.json new file mode 100644 index 0000000000000..801f93680db1b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/70d12c9c-0dbd-4a1a-bc44-1467502c9cf6.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"70d12c9c-0dbd-4a1a-bc44-1467502c9cf6","versions":[{"name":"Persistence via WMI Standard Registry Provider v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the Windows Management Instrumentation StdRegProv (registry provider) to modify commonly abused registry locations for persistence.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/previous-versions/windows/desktop/regprov/stdregprov","https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-1"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]},{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1047","name":"Windows Management Instrumentation","reference":"https://attack.mitre.org/techniques/T1047/"}]}],"language":"eql","query":"registry where\n registry.data.strings != null and process.name : \"WmiPrvSe.exe\" and\n registry.path : (\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\WOW6432Node\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnce\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnceEx\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnce\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnceEx\\\\*\",\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\ServiceDLL\",\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\ImagePath\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\\\\*\",\n \"HKEY_USERS\\\\*\\\\Environment\\\\UserInitMprLogonScript\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\Load\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\Shell\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logoff\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logon\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Shutdown\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Startup\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Ctf\\\\LangBarAddin\\\\*\\\\FilePath\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Exec\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Command Processor\\\\Autorun\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},{"name":"Persistence via WMI Standard Registry Provider v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the Windows Management Instrumentation StdRegProv (registry provider) to modify commonly abused registry locations for persistence.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/previous-versions/windows/desktop/regprov/stdregprov","https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-1"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]},{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1047","name":"Windows Management Instrumentation","reference":"https://attack.mitre.org/techniques/T1047/"}]}],"language":"eql","query":"registry where\n registry.data.strings != null and process.name : \"WmiPrvSe.exe\" and\n registry.path : (\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\WOW6432Node\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnce\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnceEx\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnce\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnceEx\\\\*\",\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\ServiceDLL\",\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\ImagePath\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\\\\*\",\n \"HKEY_USERS\\\\*\\\\Environment\\\\UserInitMprLogonScript\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\Load\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\Shell\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logoff\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logon\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Shutdown\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Startup\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Ctf\\\\LangBarAddin\\\\*\\\\FilePath\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Exec\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Command Processor\\\\Autorun\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},{"name":"Persistence via WMI Standard Registry Provider v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the Windows Management Instrumentation StdRegProv (registry provider) to modify commonly abused registry locations for persistence.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/previous-versions/windows/desktop/regprov/stdregprov","https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-1"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]},{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1047","name":"Windows Management Instrumentation","reference":"https://attack.mitre.org/techniques/T1047/"}]}],"language":"eql","query":"registry where\n registry.data.strings != null and process.name : \"WmiPrvSe.exe\" and\n registry.path : (\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\WOW6432Node\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnce\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnceEx\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnce\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnceEx\\\\*\",\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\ServiceDLL\",\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\ImagePath\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\\\\*\",\n \"HKEY_USERS\\\\*\\\\Environment\\\\UserInitMprLogonScript\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\Load\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\Shell\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logoff\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logon\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Shutdown\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Startup\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Ctf\\\\LangBarAddin\\\\*\\\\FilePath\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Exec\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Command Processor\\\\Autorun\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]}]},"id":"70d12c9c-0dbd-4a1a-bc44-1467502c9cf6","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/70fa1af4-27fd-4f26-bd03-50b6af6b9e24.json b/fleet-packages/detection-rules-composite/kibana/security_rule/70fa1af4-27fd-4f26-bd03-50b6af6b9e24.json new file mode 100644 index 0000000000000..49ec073d53963 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/70fa1af4-27fd-4f26-bd03-50b6af6b9e24.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"70fa1af4-27fd-4f26-bd03-50b6af6b9e24","versions":[{"name":"Attempt to Unload Elastic Endpoint Security Kernel Extension v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to unload the Elastic Endpoint Security kernel extension via the kextunload command.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.006","name":"Kernel Modules and Extensions","reference":"https://attack.mitre.org/techniques/T1547/006/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:kextunload and process.args:(\"/System/Library/Extensions/EndpointSecurity.kext\" or \"EndpointSecurity.kext\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Attempt to Unload Elastic Endpoint Security Kernel Extension v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to unload the Elastic Endpoint Security kernel extension via the kextunload command.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.006","name":"Kernel Modules and Extensions","reference":"https://attack.mitre.org/techniques/T1547/006/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:kextunload and process.args:(\"/System/Library/Extensions/EndpointSecurity.kext\" or \"EndpointSecurity.kext\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Attempt to Unload Elastic Endpoint Security Kernel Extension v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to unload the Elastic Endpoint Security kernel extension via the kextunload command.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.006","name":"Kernel Modules and Extensions","reference":"https://attack.mitre.org/techniques/T1547/006/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:kextunload and process.args:(\"/System/Library/Extensions/EndpointSecurity.kext\" or \"EndpointSecurity.kext\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"70fa1af4-27fd-4f26-bd03-50b6af6b9e24","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/7164081a-3930-11ed-a261-0242ac120002.json b/fleet-packages/detection-rules-composite/kibana/security_rule/7164081a-3930-11ed-a261-0242ac120002.json new file mode 100644 index 0000000000000..f7c8d6f2408d9 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/7164081a-3930-11ed-a261-0242ac120002.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"7164081a-3930-11ed-a261-0242ac120002","versions":[{"name":"Kubernetes Container Created with Excessive Linux Capabilities v1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects a container deployed with one or more dangerously permissive Linux capabilities. An attacker with the ability to deploy a container with added capabilities could use this for further execution, lateral movement, or privilege escalation within a cluster. The capabilities detected in this rule have been used in container escapes to the host machine.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Kubernetes Container Created with Excessive Linux Capabilities\n\nLinux capabilities were designed to divide root privileges into smaller units. Each capability grants a thread just enough power to perform specific privileged tasks. In Kubernetes, containers are given a set of default capabilities that can be dropped or added to at the time of creation. Added capabilities entitle containers in a pod with additional privileges that can be used to change\ncore processes, change network settings of a cluster, or directly access the underlying host. The following have been used in container escape techniques:\n\nBPF - Allow creating BPF maps, loading BPF Type Format (BTF) data, retrieve JITed code of BPF programs, and more. \nDAC_READ_SEARCH - Bypass file read permission checks and directory read and execute permission checks. \nNET_ADMIN - Perform various network-related operations. \nSYS_ADMIN - Perform a range of system administration operations. \nSYS_BOOT - Use reboot(2) and kexec_load(2), reboot and load a new kernel for later execution. \nSYS_MODULE - Load and unload kernel modules. \nSYS_PTRACE - Trace arbitrary processes using ptrace(2).\nSYS_RAWIO - Perform I/O port operations (iopl(2) and ioperm(2)). \nSYSLOG - Perform privileged syslog(2) operations.\n\n### False positive analysis\n\n- While these capabilities are not included by default in containers, some legitimate images may need to add them. This rule leaves space for the exception of trusted container images. To add an exception, add the trusted container image name to the query field, kubernetes.audit.requestObject.spec.containers.image.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some container images require the addition of privileged capabilities. This rule leaves space for the exception of trusted container images. To add an exception, add the trusted container image name to the query field, kubernetes.audit.requestObject.spec.containers.image."],"references":["https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-capabilities-for-a-container","https://0xn3va.gitbook.io/cheat-sheets/container/escaping/excessive-capabilities","https://man7.org/linux/man-pages/man7/capabilities.7.html","https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset: kubernetes.audit_logs \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\"\n and kubernetes.audit.verb: create \n and kubernetes.audit.objectRef.resource: pods \n and kubernetes.audit.requestObject.spec.containers.securityContext.capabilities.add: (\"BPF\" or \"DAC_READ_SEARCH\" or \"NET_ADMIN\" or \"SYS_ADMIN\" or \"SYS_BOOT\" or \"SYS_MODULE\" or \"SYS_PTRACE\" or \"SYS_RAWIO\" or \"SYSLOG\") \n and not kubernetes.audit.requestObject.spec.containers.image : (\"docker.elastic.co/beats/elastic-agent:8.4.0\" or \"rancher/klipper-lb:v0.3.5\" or \"\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.securityContext.capabilities.add","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},{"name":"Kubernetes Container Created with Excessive Linux Capabilities v1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects a container deployed with one or more dangerously permissive Linux capabilities. An attacker with the ability to deploy a container with added capabilities could use this for further execution, lateral movement, or privilege escalation within a cluster. The capabilities detected in this rule have been used in container escapes to the host machine.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Kubernetes Container Created with Excessive Linux Capabilities\n\nLinux capabilities were designed to divide root privileges into smaller units. Each capability grants a thread just enough power to perform specific privileged tasks. In Kubernetes, containers are given a set of default capabilities that can be dropped or added to at the time of creation. Added capabilities entitle containers in a pod with additional privileges that can be used to change\ncore processes, change network settings of a cluster, or directly access the underlying host. The following have been used in container escape techniques:\n\nBPF - Allow creating BPF maps, loading BPF Type Format (BTF) data, retrieve JITed code of BPF programs, and more. \nDAC_READ_SEARCH - Bypass file read permission checks and directory read and execute permission checks. \nNET_ADMIN - Perform various network-related operations. \nSYS_ADMIN - Perform a range of system administration operations. \nSYS_BOOT - Use reboot(2) and kexec_load(2), reboot and load a new kernel for later execution. \nSYS_MODULE - Load and unload kernel modules. \nSYS_PTRACE - Trace arbitrary processes using ptrace(2).\nSYS_RAWIO - Perform I/O port operations (iopl(2) and ioperm(2)). \nSYSLOG - Perform privileged syslog(2) operations.\n\n### False positive analysis\n\n- While these capabilities are not included by default in containers, some legitimate images may need to add them. This rule leaves space for the exception of trusted container images. To add an exception, add the trusted container image name to the query field, kubernetes.audit.requestObject.spec.containers.image.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some container images require the addition of privileged capabilities. This rule leaves space for the exception of trusted container images. To add an exception, add the trusted container image name to the query field, kubernetes.audit.requestObject.spec.containers.image."],"references":["https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-capabilities-for-a-container","https://0xn3va.gitbook.io/cheat-sheets/container/escaping/excessive-capabilities","https://man7.org/linux/man-pages/man7/capabilities.7.html","https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset: kubernetes.audit_logs \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\"\n and kubernetes.audit.verb: create \n and kubernetes.audit.objectRef.resource: pods \n and kubernetes.audit.requestObject.spec.containers.securityContext.capabilities.add: (\"BPF\" or \"DAC_READ_SEARCH\" or \"NET_ADMIN\" or \"SYS_ADMIN\" or \"SYS_BOOT\" or \"SYS_MODULE\" or \"SYS_PTRACE\" or \"SYS_RAWIO\" or \"SYSLOG\") \n and not kubernetes.audit.requestObject.spec.containers.image : (\"docker.elastic.co/beats/elastic-agent:8.4.0\" or \"rancher/klipper-lb:v0.3.5\" or \"\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.securityContext.capabilities.add","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},{"name":"Kubernetes Container Created with Excessive Linux Capabilities v1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects a container deployed with one or more dangerously permissive Linux capabilities. An attacker with the ability to deploy a container with added capabilities could use this for further execution, lateral movement, or privilege escalation within a cluster. The capabilities detected in this rule have been used in container escapes to the host machine.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Kubernetes Container Created with Excessive Linux Capabilities\n\nLinux capabilities were designed to divide root privileges into smaller units. Each capability grants a thread just enough power to perform specific privileged tasks. In Kubernetes, containers are given a set of default capabilities that can be dropped or added to at the time of creation. Added capabilities entitle containers in a pod with additional privileges that can be used to change\ncore processes, change network settings of a cluster, or directly access the underlying host. The following have been used in container escape techniques:\n\nBPF - Allow creating BPF maps, loading BPF Type Format (BTF) data, retrieve JITed code of BPF programs, and more. \nDAC_READ_SEARCH - Bypass file read permission checks and directory read and execute permission checks. \nNET_ADMIN - Perform various network-related operations. \nSYS_ADMIN - Perform a range of system administration operations. \nSYS_BOOT - Use reboot(2) and kexec_load(2), reboot and load a new kernel for later execution. \nSYS_MODULE - Load and unload kernel modules. \nSYS_PTRACE - Trace arbitrary processes using ptrace(2).\nSYS_RAWIO - Perform I/O port operations (iopl(2) and ioperm(2)). \nSYSLOG - Perform privileged syslog(2) operations.\n\n### False positive analysis\n\n- While these capabilities are not included by default in containers, some legitimate images may need to add them. This rule leaves space for the exception of trusted container images. To add an exception, add the trusted container image name to the query field, kubernetes.audit.requestObject.spec.containers.image.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some container images require the addition of privileged capabilities. This rule leaves space for the exception of trusted container images. To add an exception, add the trusted container image name to the query field, kubernetes.audit.requestObject.spec.containers.image."],"references":["https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-capabilities-for-a-container","https://0xn3va.gitbook.io/cheat-sheets/container/escaping/excessive-capabilities","https://man7.org/linux/man-pages/man7/capabilities.7.html","https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset: kubernetes.audit_logs \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\"\n and kubernetes.audit.verb: create \n and kubernetes.audit.objectRef.resource: pods \n and kubernetes.audit.requestObject.spec.containers.securityContext.capabilities.add: (\"BPF\" or \"DAC_READ_SEARCH\" or \"NET_ADMIN\" or \"SYS_ADMIN\" or \"SYS_BOOT\" or \"SYS_MODULE\" or \"SYS_PTRACE\" or \"SYS_RAWIO\" or \"SYSLOG\") \n and not kubernetes.audit.requestObject.spec.containers.image : (\"docker.elastic.co/beats/elastic-agent:8.4.0\" or \"rancher/klipper-lb:v0.3.5\" or \"\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.securityContext.capabilities.add","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."}]},"id":"7164081a-3930-11ed-a261-0242ac120002","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/717f82c2-7741-4f9b-85b8-d06aeb853f4f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/717f82c2-7741-4f9b-85b8-d06aeb853f4f.json new file mode 100644 index 0000000000000..60f270e51ca6d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/717f82c2-7741-4f9b-85b8-d06aeb853f4f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"717f82c2-7741-4f9b-85b8-d06aeb853f4f","versions":[{"name":"Modification of Dynamic Linker Preload Shared Object v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modification of the dynamic linker preload shared object (ld.so.preload). Adversaries may execute malicious payloads by hijacking the dynamic linker used to load libraries.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.anomali.com/blog/rocke-evolves-its-arsenal-with-a-new-malware-family-written-in-golang"],"tags":["Elastic","Host","Linux","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.006","name":"Dynamic Linker Hijacking","reference":"https://attack.mitre.org/techniques/T1574/006/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and not event.type:deletion and file.path:/etc/ld.so.preload\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}]},{"name":"Modification of Dynamic Linker Preload Shared Object v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modification of the dynamic linker preload shared object (ld.so.preload). Adversaries may execute malicious payloads by hijacking the dynamic linker used to load libraries.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.anomali.com/blog/rocke-evolves-its-arsenal-with-a-new-malware-family-written-in-golang"],"tags":["Elastic","Host","Linux","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.006","name":"Dynamic Linker Hijacking","reference":"https://attack.mitre.org/techniques/T1574/006/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and not event.type:deletion and file.path:/etc/ld.so.preload\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}]},{"name":"Modification of Dynamic Linker Preload Shared Object v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modification of the dynamic linker preload shared object (ld.so.preload). Adversaries may execute malicious payloads by hijacking the dynamic linker used to load libraries.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.anomali.com/blog/rocke-evolves-its-arsenal-with-a-new-malware-family-written-in-golang"],"tags":["Elastic","Host","Linux","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.006","name":"Dynamic Linker Hijacking","reference":"https://attack.mitre.org/techniques/T1574/006/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and not event.type:deletion and file.path:/etc/ld.so.preload\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}]}]},"id":"717f82c2-7741-4f9b-85b8-d06aeb853f4f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/71bccb61-e19b-452f-b104-79a60e546a95.json b/fleet-packages/detection-rules-composite/kibana/security_rule/71bccb61-e19b-452f-b104-79a60e546a95.json new file mode 100644 index 0000000000000..f5c2cf4eaa99e --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/71bccb61-e19b-452f-b104-79a60e546a95.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"71bccb61-e19b-452f-b104-79a60e546a95","versions":[{"name":"Unusual File Creation - Alternate Data Stream v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious creation of Alternate Data Streams on highly targeted files. This is uncommon for legitimate files and sometimes done by adversaries to hide malware.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual File Creation - Alternate Data Stream\n\nAlternate Data Streams (ADS) are file attributes only found on the NTFS file system. In this file system, files are\nbuilt up from a couple of attributes; one of them is $Data, also known as the data attribute.\n\nThe regular data stream, also referred to as the unnamed data stream since the name string of this attribute is empty,\ncontains the data inside the file. So any data stream that has a name is considered an alternate data stream.\n\nAttackers can abuse these alternate data streams to hide malicious files, string payloads, etc. This rule detects the\ncreation of alternate data streams on highly targeted file types.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Retrieve the contents of the alternate data stream, and analyze it for potential maliciousness. Analysts can use the\nfollowing PowerShell cmdlet to accomplish this:\n - `Get-Content -file C:\\Path\\To\\file.exe -stream ADSname`\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination\nof process executable and file conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.004","name":"NTFS File Attributes","reference":"https://attack.mitre.org/techniques/T1564/004/"}]}]}],"language":"eql","query":"file where event.type == \"creation\" and\n\n file.path : \"C:\\\\*:*\" and\n not file.path : \"C:\\\\*:zone.identifier*\" and\n\n not process.executable :\n (\"?:\\\\windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Windows\\\\System32\\\\inetsrv\\\\w3wp.exe\",\n \"?:\\\\Windows\\\\explorer.exe\",\n \"?:\\\\Windows\\\\System32\\\\sihost.exe\",\n \"?:\\\\Windows\\\\System32\\\\PickerHost.exe\",\n \"?:\\\\Windows\\\\System32\\\\SearchProtocolHost.exe\",\n \"?:\\\\Program Files (x86)\\\\Dropbox\\\\Client\\\\Dropbox.exe\",\n \"?:\\\\Program Files\\\\Rivet Networks\\\\SmartByte\\\\SmartByteNetworkService.exe\",\n \"?:\\\\Program Files (x86)\\\\Microsoft\\\\Edge\\\\Application\\\\msedge.exe\",\n \"?:\\\\Program Files\\\\ExpressConnect\\\\ExpressConnectNetworkService.exe\",\n \"?:\\\\Program Files (x86)\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n \"?:\\\\Program Files\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n \"?:\\\\Program Files\\\\Mozilla Firefox\\\\firefox.exe\") and\n\n file.extension :\n (\n \"pdf\",\n \"dll\",\n \"png\",\n \"exe\",\n \"dat\",\n \"com\",\n \"bat\",\n \"cmd\",\n \"sys\",\n \"vbs\",\n \"ps1\",\n \"hta\",\n \"txt\",\n \"vbe\",\n \"js\",\n \"wsh\",\n \"docx\",\n \"doc\",\n \"xlsx\",\n \"xls\",\n \"pptx\",\n \"ppt\",\n \"rtf\",\n \"gif\",\n \"jpg\",\n \"png\",\n \"bmp\",\n \"img\",\n \"iso\"\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Unusual File Creation - Alternate Data Stream v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious creation of Alternate Data Streams on highly targeted files. This is uncommon for legitimate files and sometimes done by adversaries to hide malware.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual File Creation - Alternate Data Stream\n\nAlternate Data Streams (ADS) are file attributes only found on the NTFS file system. In this file system, files are\nbuilt up from a couple of attributes; one of them is $Data, also known as the data attribute.\n\nThe regular data stream, also referred to as the unnamed data stream since the name string of this attribute is empty,\ncontains the data inside the file. So any data stream that has a name is considered an alternate data stream.\n\nAttackers can abuse these alternate data streams to hide malicious files, string payloads, etc. This rule detects the\ncreation of alternate data streams on highly targeted file types.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Retrieve the contents of the alternate data stream, and analyze it for potential maliciousness. Analysts can use the\nfollowing PowerShell cmdlet to accomplish this:\n - `Get-Content -file C:\\Path\\To\\file.exe -stream ADSname`\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination\nof process executable and file conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.004","name":"NTFS File Attributes","reference":"https://attack.mitre.org/techniques/T1564/004/"}]}]}],"language":"eql","query":"file where event.type == \"creation\" and\n\n file.path : \"C:\\\\*:*\" and\n not file.path : \"C:\\\\*:zone.identifier*\" and\n\n not process.executable :\n (\"?:\\\\windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Windows\\\\System32\\\\inetsrv\\\\w3wp.exe\",\n \"?:\\\\Windows\\\\explorer.exe\",\n \"?:\\\\Windows\\\\System32\\\\sihost.exe\",\n \"?:\\\\Windows\\\\System32\\\\PickerHost.exe\",\n \"?:\\\\Windows\\\\System32\\\\SearchProtocolHost.exe\",\n \"?:\\\\Program Files (x86)\\\\Dropbox\\\\Client\\\\Dropbox.exe\",\n \"?:\\\\Program Files\\\\Rivet Networks\\\\SmartByte\\\\SmartByteNetworkService.exe\",\n \"?:\\\\Program Files (x86)\\\\Microsoft\\\\Edge\\\\Application\\\\msedge.exe\",\n \"?:\\\\Program Files\\\\ExpressConnect\\\\ExpressConnectNetworkService.exe\",\n \"?:\\\\Program Files (x86)\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n \"?:\\\\Program Files\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n \"?:\\\\Program Files\\\\Mozilla Firefox\\\\firefox.exe\") and\n\n file.extension :\n (\n \"pdf\",\n \"dll\",\n \"png\",\n \"exe\",\n \"dat\",\n \"com\",\n \"bat\",\n \"cmd\",\n \"sys\",\n \"vbs\",\n \"ps1\",\n \"hta\",\n \"txt\",\n \"vbe\",\n \"js\",\n \"wsh\",\n \"docx\",\n \"doc\",\n \"xlsx\",\n \"xls\",\n \"pptx\",\n \"ppt\",\n \"rtf\",\n \"gif\",\n \"jpg\",\n \"png\",\n \"bmp\",\n \"img\",\n \"iso\"\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Unusual File Creation - Alternate Data Stream v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious creation of Alternate Data Streams on highly targeted files. This is uncommon for legitimate files and sometimes done by adversaries to hide malware.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual File Creation - Alternate Data Stream\n\nAlternate Data Streams (ADS) are file attributes only found on the NTFS file system. In this file system, files are\nbuilt up from a couple of attributes; one of them is $Data, also known as the data attribute.\n\nThe regular data stream, also referred to as the unnamed data stream since the name string of this attribute is empty,\ncontains the data inside the file. So any data stream that has a name is considered an alternate data stream.\n\nAttackers can abuse these alternate data streams to hide malicious files, string payloads, etc. This rule detects the\ncreation of alternate data streams on highly targeted file types.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Retrieve the contents of the alternate data stream, and analyze it for potential maliciousness. Analysts can use the\nfollowing PowerShell cmdlet to accomplish this:\n - `Get-Content -file C:\\Path\\To\\file.exe -stream ADSname`\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination\nof process executable and file conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.004","name":"NTFS File Attributes","reference":"https://attack.mitre.org/techniques/T1564/004/"}]}]}],"language":"eql","query":"file where event.type == \"creation\" and\n\n file.path : \"C:\\\\*:*\" and\n not file.path : \"C:\\\\*:zone.identifier*\" and\n\n not process.executable :\n (\"?:\\\\windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Windows\\\\System32\\\\inetsrv\\\\w3wp.exe\",\n \"?:\\\\Windows\\\\explorer.exe\",\n \"?:\\\\Windows\\\\System32\\\\sihost.exe\",\n \"?:\\\\Windows\\\\System32\\\\PickerHost.exe\",\n \"?:\\\\Windows\\\\System32\\\\SearchProtocolHost.exe\",\n \"?:\\\\Program Files (x86)\\\\Dropbox\\\\Client\\\\Dropbox.exe\",\n \"?:\\\\Program Files\\\\Rivet Networks\\\\SmartByte\\\\SmartByteNetworkService.exe\",\n \"?:\\\\Program Files (x86)\\\\Microsoft\\\\Edge\\\\Application\\\\msedge.exe\",\n \"?:\\\\Program Files\\\\ExpressConnect\\\\ExpressConnectNetworkService.exe\",\n \"?:\\\\Program Files (x86)\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n \"?:\\\\Program Files\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n \"?:\\\\Program Files\\\\Mozilla Firefox\\\\firefox.exe\") and\n\n file.extension :\n (\n \"pdf\",\n \"dll\",\n \"png\",\n \"exe\",\n \"dat\",\n \"com\",\n \"bat\",\n \"cmd\",\n \"sys\",\n \"vbs\",\n \"ps1\",\n \"hta\",\n \"txt\",\n \"vbe\",\n \"js\",\n \"wsh\",\n \"docx\",\n \"doc\",\n \"xlsx\",\n \"xls\",\n \"pptx\",\n \"ppt\",\n \"rtf\",\n \"gif\",\n \"jpg\",\n \"png\",\n \"bmp\",\n \"img\",\n \"iso\"\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"71bccb61-e19b-452f-b104-79a60e546a95","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/71c5cb27-eca5-4151-bb47-64bc3f883270.json b/fleet-packages/detection-rules-composite/kibana/security_rule/71c5cb27-eca5-4151-bb47-64bc3f883270.json new file mode 100644 index 0000000000000..4fd68ffe53745 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/71c5cb27-eca5-4151-bb47-64bc3f883270.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"71c5cb27-eca5-4151-bb47-64bc3f883270","versions":[{"name":"Suspicious RDP ActiveX Client Loaded v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious Image Loading of the Remote Desktop Services ActiveX Client (mstscax), this may indicate the presence of RDP lateral movement capability.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/revisiting-remote-desktop-lateral-movement-8fb905cb46c3"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : \"mstscax.dll\" or file.name : \"mstscax.dll\") and\n /* depending on noise in your env add here extra paths */\n process.executable :\n (\n \"C:\\\\Windows\\\\*\",\n \"C:\\\\Users\\\\Public\\\\*\",\n \"C:\\\\Users\\\\Default\\\\*\",\n \"C:\\\\Intel\\\\*\",\n \"C:\\\\PerfLogs\\\\*\",\n \"C:\\\\ProgramData\\\\*\",\n \"\\\\Device\\\\Mup\\\\*\",\n \"\\\\\\\\*\"\n ) and\n /* add here FPs */\n not process.executable : (\"C:\\\\Windows\\\\System32\\\\mstsc.exe\", \"C:\\\\Windows\\\\SysWOW64\\\\mstsc.exe\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious RDP ActiveX Client Loaded v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious Image Loading of the Remote Desktop Services ActiveX Client (mstscax), this may indicate the presence of RDP lateral movement capability.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/revisiting-remote-desktop-lateral-movement-8fb905cb46c3"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : \"mstscax.dll\" or file.name : \"mstscax.dll\") and\n /* depending on noise in your env add here extra paths */\n process.executable :\n (\n \"C:\\\\Windows\\\\*\",\n \"C:\\\\Users\\\\Public\\\\*\",\n \"C:\\\\Users\\\\Default\\\\*\",\n \"C:\\\\Intel\\\\*\",\n \"C:\\\\PerfLogs\\\\*\",\n \"C:\\\\ProgramData\\\\*\",\n \"\\\\Device\\\\Mup\\\\*\",\n \"\\\\\\\\*\"\n ) and\n /* add here FPs */\n not process.executable : (\"C:\\\\Windows\\\\System32\\\\mstsc.exe\", \"C:\\\\Windows\\\\SysWOW64\\\\mstsc.exe\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious RDP ActiveX Client Loaded v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious Image Loading of the Remote Desktop Services ActiveX Client (mstscax), this may indicate the presence of RDP lateral movement capability.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/revisiting-remote-desktop-lateral-movement-8fb905cb46c3"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : \"mstscax.dll\" or file.name : \"mstscax.dll\") and\n /* depending on noise in your env add here extra paths */\n process.executable :\n (\n \"C:\\\\Windows\\\\*\",\n \"C:\\\\Users\\\\Public\\\\*\",\n \"C:\\\\Users\\\\Default\\\\*\",\n \"C:\\\\Intel\\\\*\",\n \"C:\\\\PerfLogs\\\\*\",\n \"C:\\\\ProgramData\\\\*\",\n \"\\\\Device\\\\Mup\\\\*\",\n \"\\\\\\\\*\"\n ) and\n /* add here FPs */\n not process.executable : (\"C:\\\\Windows\\\\System32\\\\mstsc.exe\", \"C:\\\\Windows\\\\SysWOW64\\\\mstsc.exe\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"71c5cb27-eca5-4151-bb47-64bc3f883270","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/721999d0-7ab2-44bf-b328-6e63367b9b29.json b/fleet-packages/detection-rules-composite/kibana/security_rule/721999d0-7ab2-44bf-b328-6e63367b9b29.json new file mode 100644 index 0000000000000..1ce01f53b01ec --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/721999d0-7ab2-44bf-b328-6e63367b9b29.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"721999d0-7ab2-44bf-b328-6e63367b9b29","versions":[{"name":"Microsoft 365 Potential ransomware activity v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when Microsoft Cloud App Security reports that a user has uploaded files to the cloud that might be infected with ransomware.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["If Cloud App Security identifies, for example, a high rate of file uploads or file deletion activities it may represent an adverse encryption process."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/cloud-app-security/anomaly-detection-policy","https://docs.microsoft.com/en-us/cloud-app-security/policy-template-reference"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1486","name":"Data Encrypted for Impact","reference":"https://attack.mitre.org/techniques/T1486/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:SecurityComplianceCenter and event.category:web and event.action:\"Potential ransomware activity\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Potential ransomware activity v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when Microsoft Cloud App Security reports that a user has uploaded files to the cloud that might be infected with ransomware.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["If Cloud App Security identifies, for example, a high rate of file uploads or file deletion activities it may represent an adverse encryption process."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/cloud-app-security/anomaly-detection-policy","https://docs.microsoft.com/en-us/cloud-app-security/policy-template-reference"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1486","name":"Data Encrypted for Impact","reference":"https://attack.mitre.org/techniques/T1486/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:SecurityComplianceCenter and event.category:web and event.action:\"Potential ransomware activity\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Potential ransomware activity v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when Microsoft Cloud App Security reports that a user has uploaded files to the cloud that might be infected with ransomware.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["If Cloud App Security identifies, for example, a high rate of file uploads or file deletion activities it may represent an adverse encryption process."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/cloud-app-security/anomaly-detection-policy","https://docs.microsoft.com/en-us/cloud-app-security/policy-template-reference"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1486","name":"Data Encrypted for Impact","reference":"https://attack.mitre.org/techniques/T1486/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:SecurityComplianceCenter and event.category:web and event.action:\"Potential ransomware activity\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"721999d0-7ab2-44bf-b328-6e63367b9b29","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/729aa18d-06a6-41c7-b175-b65b739b1181.json b/fleet-packages/detection-rules-composite/kibana/security_rule/729aa18d-06a6-41c7-b175-b65b739b1181.json new file mode 100644 index 0000000000000..3beef4b773b28 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/729aa18d-06a6-41c7-b175-b65b739b1181.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"729aa18d-06a6-41c7-b175-b65b739b1181","versions":[{"name":"Attempt to Reset MFA Factors for an Okta User Account v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to reset an Okta user's enrolled multi-factor authentication (MFA) factors. An adversary may attempt to reset the MFA factors for an Okta user's account in order to register new MFA factors and abuse the account to blend in with normal activity in the victim's environment.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if the MFA factors for Okta user accounts are regularly reset in your organization."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.mfa.factor.reset_all\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Reset MFA Factors for an Okta User Account v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to reset an Okta user's enrolled multi-factor authentication (MFA) factors. An adversary may attempt to reset the MFA factors for an Okta user's account in order to register new MFA factors and abuse the account to blend in with normal activity in the victim's environment.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if the MFA factors for Okta user accounts are regularly reset in your organization."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.mfa.factor.reset_all\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Reset MFA Factors for an Okta User Account v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to reset an Okta user's enrolled multi-factor authentication (MFA) factors. An adversary may attempt to reset the MFA factors for an Okta user's account in order to register new MFA factors and abuse the account to blend in with normal activity in the victim's environment.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if the MFA factors for Okta user accounts are regularly reset in your organization."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.mfa.factor.reset_all\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"729aa18d-06a6-41c7-b175-b65b739b1181","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/7405ddf1-6c8e-41ce-818f-48bea6bcaed8.json b/fleet-packages/detection-rules-composite/kibana/security_rule/7405ddf1-6c8e-41ce-818f-48bea6bcaed8.json new file mode 100644 index 0000000000000..521ef33624ab9 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/7405ddf1-6c8e-41ce-818f-48bea6bcaed8.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"7405ddf1-6c8e-41ce-818f-48bea6bcaed8","versions":[{"name":"Potential Modification of Accessibility Binaries v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Windows contains accessibility features that may be launched with a key combination before a user has logged in. An adversary can modify the way these programs are launched to get a command prompt or backdoor without logging in to the system.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Modification of Accessibility Binaries\n\nAdversaries may establish persistence and/or elevate privileges by executing malicious content triggered by\naccessibility features. Windows contains accessibility features that may be launched with a key combination before a\nuser has logged in (ex: when the user is on the Windows logon screen). An adversary can modify the way these programs\nare launched to get a command prompt or backdoor without logging in to the system.\n\nMore details can be found [here](https://attack.mitre.org/techniques/T1546/008/).\n\nThis rule looks for the execution of supposed accessibility binaries that don't match any of the accessibility features\nbinaries' original file names, which is likely a custom binary deployed by the attacker.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account and system owners and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity should not happen legitimately. The security team should address any potential benign true positive\n(B-TP), as this configuration can put the user and the domain at risk.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/blog/practical-security-engineering-stateful-detection"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.008","name":"Accessibility Features","reference":"https://attack.mitre.org/techniques/T1546/008/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.008","name":"Accessibility Features","reference":"https://attack.mitre.org/techniques/T1546/008/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"Utilman.exe\", \"winlogon.exe\") and user.name == \"SYSTEM\" and\n process.args :\n (\n \"C:\\\\Windows\\\\System32\\\\osk.exe\",\n \"C:\\\\Windows\\\\System32\\\\Magnify.exe\",\n \"C:\\\\Windows\\\\System32\\\\Narrator.exe\",\n \"C:\\\\Windows\\\\System32\\\\Sethc.exe\",\n \"utilman.exe\",\n \"ATBroker.exe\",\n \"DisplaySwitch.exe\",\n \"sethc.exe\"\n )\n and not process.pe.original_file_name in\n (\n \"osk.exe\",\n \"sethc.exe\",\n \"utilman2.exe\",\n \"DisplaySwitch.exe\",\n \"ATBroker.exe\",\n \"ScreenMagnifier.exe\",\n \"SR.exe\",\n \"Narrator.exe\",\n \"magnify.exe\",\n \"MAGNIFY.EXE\"\n )\n\n/* uncomment once in winlogbeat to avoid bypass with rogue process with matching pe original file name */\n/* and process.code_signature.subject_name == \"Microsoft Windows\" and process.code_signature.status == \"trusted\" */\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Modification of Accessibility Binaries v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Windows contains accessibility features that may be launched with a key combination before a user has logged in. An adversary can modify the way these programs are launched to get a command prompt or backdoor without logging in to the system.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Modification of Accessibility Binaries\n\nAdversaries may establish persistence and/or elevate privileges by executing malicious content triggered by\naccessibility features. Windows contains accessibility features that may be launched with a key combination before a\nuser has logged in (ex: when the user is on the Windows logon screen). An adversary can modify the way these programs\nare launched to get a command prompt or backdoor without logging in to the system.\n\nMore details can be found [here](https://attack.mitre.org/techniques/T1546/008/).\n\nThis rule looks for the execution of supposed accessibility binaries that don't match any of the accessibility features\nbinaries' original file names, which is likely a custom binary deployed by the attacker.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account and system owners and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity should not happen legitimately. The security team should address any potential benign true positive\n(B-TP), as this configuration can put the user and the domain at risk.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/blog/practical-security-engineering-stateful-detection"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.008","name":"Accessibility Features","reference":"https://attack.mitre.org/techniques/T1546/008/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.008","name":"Accessibility Features","reference":"https://attack.mitre.org/techniques/T1546/008/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"Utilman.exe\", \"winlogon.exe\") and user.name == \"SYSTEM\" and\n process.args :\n (\n \"C:\\\\Windows\\\\System32\\\\osk.exe\",\n \"C:\\\\Windows\\\\System32\\\\Magnify.exe\",\n \"C:\\\\Windows\\\\System32\\\\Narrator.exe\",\n \"C:\\\\Windows\\\\System32\\\\Sethc.exe\",\n \"utilman.exe\",\n \"ATBroker.exe\",\n \"DisplaySwitch.exe\",\n \"sethc.exe\"\n )\n and not process.pe.original_file_name in\n (\n \"osk.exe\",\n \"sethc.exe\",\n \"utilman2.exe\",\n \"DisplaySwitch.exe\",\n \"ATBroker.exe\",\n \"ScreenMagnifier.exe\",\n \"SR.exe\",\n \"Narrator.exe\",\n \"magnify.exe\",\n \"MAGNIFY.EXE\"\n )\n\n/* uncomment once in winlogbeat to avoid bypass with rogue process with matching pe original file name */\n/* and process.code_signature.subject_name == \"Microsoft Windows\" and process.code_signature.status == \"trusted\" */\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Modification of Accessibility Binaries v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Windows contains accessibility features that may be launched with a key combination before a user has logged in. An adversary can modify the way these programs are launched to get a command prompt or backdoor without logging in to the system.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Modification of Accessibility Binaries\n\nAdversaries may establish persistence and/or elevate privileges by executing malicious content triggered by\naccessibility features. Windows contains accessibility features that may be launched with a key combination before a\nuser has logged in (ex: when the user is on the Windows logon screen). An adversary can modify the way these programs\nare launched to get a command prompt or backdoor without logging in to the system.\n\nMore details can be found [here](https://attack.mitre.org/techniques/T1546/008/).\n\nThis rule looks for the execution of supposed accessibility binaries that don't match any of the accessibility features\nbinaries' original file names, which is likely a custom binary deployed by the attacker.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account and system owners and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity should not happen legitimately. The security team should address any potential benign true positive\n(B-TP), as this configuration can put the user and the domain at risk.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/blog/practical-security-engineering-stateful-detection"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.008","name":"Accessibility Features","reference":"https://attack.mitre.org/techniques/T1546/008/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.008","name":"Accessibility Features","reference":"https://attack.mitre.org/techniques/T1546/008/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"Utilman.exe\", \"winlogon.exe\") and user.name == \"SYSTEM\" and\n process.args :\n (\n \"C:\\\\Windows\\\\System32\\\\osk.exe\",\n \"C:\\\\Windows\\\\System32\\\\Magnify.exe\",\n \"C:\\\\Windows\\\\System32\\\\Narrator.exe\",\n \"C:\\\\Windows\\\\System32\\\\Sethc.exe\",\n \"utilman.exe\",\n \"ATBroker.exe\",\n \"DisplaySwitch.exe\",\n \"sethc.exe\"\n )\n and not process.pe.original_file_name in\n (\n \"osk.exe\",\n \"sethc.exe\",\n \"utilman2.exe\",\n \"DisplaySwitch.exe\",\n \"ATBroker.exe\",\n \"ScreenMagnifier.exe\",\n \"SR.exe\",\n \"Narrator.exe\",\n \"magnify.exe\",\n \"MAGNIFY.EXE\"\n )\n\n/* uncomment once in winlogbeat to avoid bypass with rogue process with matching pe original file name */\n/* and process.code_signature.subject_name == \"Microsoft Windows\" and process.code_signature.status == \"trusted\" */\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"7405ddf1-6c8e-41ce-818f-48bea6bcaed8","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/7453e19e-3dbf-4e4e-9ae0-33d6c6ed15e1.json b/fleet-packages/detection-rules-composite/kibana/security_rule/7453e19e-3dbf-4e4e-9ae0-33d6c6ed15e1.json new file mode 100644 index 0000000000000..1c163e71e0d9a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/7453e19e-3dbf-4e4e-9ae0-33d6c6ed15e1.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"7453e19e-3dbf-4e4e-9ae0-33d6c6ed15e1","versions":[{"name":"Modification of Environment Variable via Launchctl v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to an environment variable using the built-in launchctl command. Adversaries may execute their own malicious payloads by hijacking certain environment variables to load arbitrary libraries or bypass certain restrictions.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/rapid7/metasploit-framework/blob/master//modules/post/osx/escalate/tccbypass.rb"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.007","name":"Path Interception by PATH Environment Variable","reference":"https://attack.mitre.org/techniques/T1574/007/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and\n process.name:launchctl and\n process.args:(setenv and not (JAVA*_HOME or\n RUNTIME_JAVA_HOME or\n DBUS_LAUNCHD_SESSION_BUS_SOCKET or\n ANT_HOME or\n LG_WEBOS_TV_SDK_HOME or\n WEBOS_CLI_TV or\n EDEN_ENV)\n ) and\n not process.parent.executable:(\"/Applications/NoMachine.app/Contents/Frameworks/bin/nxserver.bin\" or\n \"/usr/local/bin/kr\" or\n \"/Applications/NoMachine.app/Contents/Frameworks/bin/nxserver.bin\" or\n \"/Applications/IntelliJ IDEA CE.app/Contents/jbr/Contents/Home/lib/jspawnhelper\") and\n not process.args : \"*.vmoptions\"\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},{"name":"Modification of Environment Variable via Launchctl v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to an environment variable using the built-in launchctl command. Adversaries may execute their own malicious payloads by hijacking certain environment variables to load arbitrary libraries or bypass certain restrictions.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/rapid7/metasploit-framework/blob/master//modules/post/osx/escalate/tccbypass.rb"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.007","name":"Path Interception by PATH Environment Variable","reference":"https://attack.mitre.org/techniques/T1574/007/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and\n process.name:launchctl and\n process.args:(setenv and not (JAVA*_HOME or\n RUNTIME_JAVA_HOME or\n DBUS_LAUNCHD_SESSION_BUS_SOCKET or\n ANT_HOME or\n LG_WEBOS_TV_SDK_HOME or\n WEBOS_CLI_TV or\n EDEN_ENV)\n ) and\n not process.parent.executable:(\"/Applications/NoMachine.app/Contents/Frameworks/bin/nxserver.bin\" or\n \"/usr/local/bin/kr\" or\n \"/Applications/NoMachine.app/Contents/Frameworks/bin/nxserver.bin\" or\n \"/Applications/IntelliJ IDEA CE.app/Contents/jbr/Contents/Home/lib/jspawnhelper\") and\n not process.args : \"*.vmoptions\"\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},{"name":"Modification of Environment Variable via Launchctl v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to an environment variable using the built-in launchctl command. Adversaries may execute their own malicious payloads by hijacking certain environment variables to load arbitrary libraries or bypass certain restrictions.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/rapid7/metasploit-framework/blob/master//modules/post/osx/escalate/tccbypass.rb"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.007","name":"Path Interception by PATH Environment Variable","reference":"https://attack.mitre.org/techniques/T1574/007/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and\n process.name:launchctl and\n process.args:(setenv and not (JAVA*_HOME or\n RUNTIME_JAVA_HOME or\n DBUS_LAUNCHD_SESSION_BUS_SOCKET or\n ANT_HOME or\n LG_WEBOS_TV_SDK_HOME or\n WEBOS_CLI_TV or\n EDEN_ENV)\n ) and\n not process.parent.executable:(\"/Applications/NoMachine.app/Contents/Frameworks/bin/nxserver.bin\" or\n \"/usr/local/bin/kr\" or\n \"/Applications/NoMachine.app/Contents/Frameworks/bin/nxserver.bin\" or\n \"/Applications/IntelliJ IDEA CE.app/Contents/jbr/Contents/Home/lib/jspawnhelper\") and\n not process.args : \"*.vmoptions\"\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]}]},"id":"7453e19e-3dbf-4e4e-9ae0-33d6c6ed15e1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/745b0119-0560-43ba-860a-7235dd8cee8d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/745b0119-0560-43ba-860a-7235dd8cee8d.json new file mode 100644 index 0000000000000..9d900f932278d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/745b0119-0560-43ba-860a-7235dd8cee8d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"745b0119-0560-43ba-860a-7235dd8cee8d","versions":[{"name":"Unusual Hour for a User to Logon v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a user logging in at a time of day that is unusual for the user. This can be due to credentialed access via a compromised account when the user and the threat actor are in different time zones. In addition, unauthorized user activity often takes place during non-business hours.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Users working late, or logging in from unusual time zones while traveling, may trigger this rule."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_rare_hour_for_a_user","type":"machine_learning"},{"name":"Unusual Hour for a User to Logon v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a user logging in at a time of day that is unusual for the user. This can be due to credentialed access via a compromised account when the user and the threat actor are in different time zones. In addition, unauthorized user activity often takes place during non-business hours.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Users working late, or logging in from unusual time zones while traveling, may trigger this rule."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_rare_hour_for_a_user","type":"machine_learning"},{"name":"Unusual Hour for a User to Logon v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a user logging in at a time of day that is unusual for the user. This can be due to credentialed access via a compromised account when the user and the threat actor are in different time zones. In addition, unauthorized user activity often takes place during non-business hours.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Users working late, or logging in from unusual time zones while traveling, may trigger this rule."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_rare_hour_for_a_user","type":"machine_learning"}]},"id":"745b0119-0560-43ba-860a-7235dd8cee8d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/746edc4c-c54c-49c6-97a1-651223819448.json b/fleet-packages/detection-rules-composite/kibana/security_rule/746edc4c-c54c-49c6-97a1-651223819448.json new file mode 100644 index 0000000000000..cac9650e3e32e --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/746edc4c-c54c-49c6-97a1-651223819448.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"746edc4c-c54c-49c6-97a1-651223819448","versions":[{"name":"Unusual DNS Activity v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a rare and unusual DNS query that indicate network activity with unusual DNS domains. This can be due to initial access, persistence, command-and-control, or exfiltration activity. For example, when a user clicks on a link in a phishing email or opens a malicious document, a request may be sent to download and run a payload from an uncommon domain. When malware is already running, it may send requests to an uncommon DNS domain the malware uses for command-and-control communication.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert. Network activity that occurs rarely, in small quantities, can trigger this alert. Possible examples are browsing technical support or vendor networks sparsely. A user who visits a new or unique web destination may trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.004","name":"DNS","reference":"https://attack.mitre.org/techniques/T1071/004/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":"packetbeat_rare_dns_question","type":"machine_learning"},{"name":"Unusual DNS Activity v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a rare and unusual DNS query that indicate network activity with unusual DNS domains. This can be due to initial access, persistence, command-and-control, or exfiltration activity. For example, when a user clicks on a link in a phishing email or opens a malicious document, a request may be sent to download and run a payload from an uncommon domain. When malware is already running, it may send requests to an uncommon DNS domain the malware uses for command-and-control communication.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert. Network activity that occurs rarely, in small quantities, can trigger this alert. Possible examples are browsing technical support or vendor networks sparsely. A user who visits a new or unique web destination may trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.004","name":"DNS","reference":"https://attack.mitre.org/techniques/T1071/004/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":"packetbeat_rare_dns_question","type":"machine_learning"},{"name":"Unusual DNS Activity v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a rare and unusual DNS query that indicate network activity with unusual DNS domains. This can be due to initial access, persistence, command-and-control, or exfiltration activity. For example, when a user clicks on a link in a phishing email or opens a malicious document, a request may be sent to download and run a payload from an uncommon domain. When malware is already running, it may send requests to an uncommon DNS domain the malware uses for command-and-control communication.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert. Network activity that occurs rarely, in small quantities, can trigger this alert. Possible examples are browsing technical support or vendor networks sparsely. A user who visits a new or unique web destination may trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.004","name":"DNS","reference":"https://attack.mitre.org/techniques/T1071/004/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":"packetbeat_rare_dns_question","type":"machine_learning"}]},"id":"746edc4c-c54c-49c6-97a1-651223819448","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/75ee75d8-c180-481c-ba88-ee50129a6aef.json b/fleet-packages/detection-rules-composite/kibana/security_rule/75ee75d8-c180-481c-ba88-ee50129a6aef.json new file mode 100644 index 0000000000000..15ac9438c110b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/75ee75d8-c180-481c-ba88-ee50129a6aef.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"75ee75d8-c180-481c-ba88-ee50129a6aef","versions":[{"name":"Web Application Suspicious Activity: Unauthorized Method v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A request to a web application returned a 405 response, which indicates the web application declined to process the request because the HTTP method is not allowed for the resource.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Security scans and tests may result in these errors. Misconfigured or buggy applications may produce large numbers of these errors. If the source is unexpected, the user unauthorized, or the request unusual, these may indicate suspicious or malicious activity."],"references":["https://en.wikipedia.org/wiki/HTTP_405"],"tags":["Elastic","APM"],"type":"query","index":["apm-*-transaction*","traces-apm*"],"language":"kuery","query":"http.response.status_code:405\n","required_fields":[{"ecs":true,"name":"http.response.status_code","type":"long"}]},{"name":"Web Application Suspicious Activity: Unauthorized Method v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A request to a web application returned a 405 response, which indicates the web application declined to process the request because the HTTP method is not allowed for the resource.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Security scans and tests may result in these errors. Misconfigured or buggy applications may produce large numbers of these errors. If the source is unexpected, the user unauthorized, or the request unusual, these may indicate suspicious or malicious activity."],"references":["https://en.wikipedia.org/wiki/HTTP_405"],"tags":["Elastic","APM"],"type":"query","index":["apm-*-transaction*","traces-apm*"],"language":"kuery","query":"http.response.status_code:405\n","required_fields":[{"ecs":true,"name":"http.response.status_code","type":"long"}]},{"name":"Web Application Suspicious Activity: Unauthorized Method v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A request to a web application returned a 405 response, which indicates the web application declined to process the request because the HTTP method is not allowed for the resource.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Security scans and tests may result in these errors. Misconfigured or buggy applications may produce large numbers of these errors. If the source is unexpected, the user unauthorized, or the request unusual, these may indicate suspicious or malicious activity."],"references":["https://en.wikipedia.org/wiki/HTTP_405"],"tags":["Elastic","APM"],"type":"query","index":["apm-*-transaction*","traces-apm*"],"language":"kuery","query":"http.response.status_code:405\n","required_fields":[{"ecs":true,"name":"http.response.status_code","type":"long"}]}]},"id":"75ee75d8-c180-481c-ba88-ee50129a6aef","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/76152ca1-71d0-4003-9e37-0983e12832da.json b/fleet-packages/detection-rules-composite/kibana/security_rule/76152ca1-71d0-4003-9e37-0983e12832da.json new file mode 100644 index 0000000000000..db7cf821839d1 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/76152ca1-71d0-4003-9e37-0983e12832da.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"76152ca1-71d0-4003-9e37-0983e12832da","versions":[{"name":"Potential Privilege Escalation via Sudoers File Modification v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A sudoers file specifies the commands users or groups can run and from which terminals. Adversaries can take advantage of these configurations to execute commands as other users or spawn processes with higher privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.003","name":"Sudo and Sudo Caching","reference":"https://attack.mitre.org/techniques/T1548/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and process.args:(echo and *NOPASSWD*ALL*)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},{"name":"Potential Privilege Escalation via Sudoers File Modification v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A sudoers file specifies the commands users or groups can run and from which terminals. Adversaries can take advantage of these configurations to execute commands as other users or spawn processes with higher privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.003","name":"Sudo and Sudo Caching","reference":"https://attack.mitre.org/techniques/T1548/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and process.args:(echo and *NOPASSWD*ALL*)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},{"name":"Potential Privilege Escalation via Sudoers File Modification v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A sudoers file specifies the commands users or groups can run and from which terminals. Adversaries can take advantage of these configurations to execute commands as other users or spawn processes with higher privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.003","name":"Sudo and Sudo Caching","reference":"https://attack.mitre.org/techniques/T1548/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and process.args:(echo and *NOPASSWD*ALL*)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]}]},"id":"76152ca1-71d0-4003-9e37-0983e12832da","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/764c8437-a581-4537-8060-1fdb0e92c92d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/764c8437-a581-4537-8060-1fdb0e92c92d.json new file mode 100644 index 0000000000000..7d88dee254aa6 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/764c8437-a581-4537-8060-1fdb0e92c92d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"764c8437-a581-4537-8060-1fdb0e92c92d","versions":[{"name":"Kubernetes Pod Created With HostIPC v200.0.0","rule_version":"200.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects an attempt to create or modify a pod using the host IPC namespace. This gives access to data used by any pod that also use the hosts IPC namespace. If any process on the host or any processes in a pod uses the hosts inter-process communication mechanisms (shared memory, semaphore arrays, message queues, etc.), an attacker can read/write to those same mechanisms. They may look for files in /dev/shm or use ipcs to check for any IPC facilities being used.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator or developer may want to use a pod that runs as root and shares the host's IPC, Network, and PID namespaces for debugging purposes. If something is going wrong in the cluster and there is no easy way to SSH onto the host nodes directly, a privileged pod of this nature can be useful for viewing things like iptable rules and network namespaces from the host's perspective. Add exceptions for trusted container images using the query field \"kubernetes.audit.requestObject.spec.container.image\""],"references":["https://research.nccgroup.com/2021/11/10/detection-engineering-for-kubernetes-clusters/#part3-kubernetes-detections","https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces","https://bishopfox.com/blog/kubernetes-pod-privilege-escalation"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.objectRef.resource:\"pods\" \n and kubernetes.audit.verb:(\"create\" or \"update\" or \"patch\") \n and kubernetes.audit.requestObject.spec.hostIPC:true\n and not kubernetes.audit.requestObject.spec.containers.image: (\"docker.elastic.co/beats/elastic-agent:8.4.0\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.hostIPC","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},{"name":"Kubernetes Pod Created With HostIPC v200.0.1","rule_version":"200.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects an attempt to create or modify a pod using the host IPC namespace. This gives access to data used by any pod that also use the hosts IPC namespace. If any process on the host or any processes in a pod uses the hosts inter-process communication mechanisms (shared memory, semaphore arrays, message queues, etc.), an attacker can read/write to those same mechanisms. They may look for files in /dev/shm or use ipcs to check for any IPC facilities being used.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator or developer may want to use a pod that runs as root and shares the host's IPC, Network, and PID namespaces for debugging purposes. If something is going wrong in the cluster and there is no easy way to SSH onto the host nodes directly, a privileged pod of this nature can be useful for viewing things like iptable rules and network namespaces from the host's perspective. Add exceptions for trusted container images using the query field \"kubernetes.audit.requestObject.spec.container.image\""],"references":["https://research.nccgroup.com/2021/11/10/detection-engineering-for-kubernetes-clusters/#part3-kubernetes-detections","https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces","https://bishopfox.com/blog/kubernetes-pod-privilege-escalation"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.objectRef.resource:\"pods\" \n and kubernetes.audit.verb:(\"create\" or \"update\" or \"patch\") \n and kubernetes.audit.requestObject.spec.hostIPC:true\n and not kubernetes.audit.requestObject.spec.containers.image: (\"docker.elastic.co/beats/elastic-agent:8.4.0\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.hostIPC","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},{"name":"Kubernetes Pod Created With HostIPC v200.0.2","rule_version":"200.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects an attempt to create or modify a pod using the host IPC namespace. This gives access to data used by any pod that also use the hosts IPC namespace. If any process on the host or any processes in a pod uses the hosts inter-process communication mechanisms (shared memory, semaphore arrays, message queues, etc.), an attacker can read/write to those same mechanisms. They may look for files in /dev/shm or use ipcs to check for any IPC facilities being used.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator or developer may want to use a pod that runs as root and shares the host's IPC, Network, and PID namespaces for debugging purposes. If something is going wrong in the cluster and there is no easy way to SSH onto the host nodes directly, a privileged pod of this nature can be useful for viewing things like iptable rules and network namespaces from the host's perspective. Add exceptions for trusted container images using the query field \"kubernetes.audit.requestObject.spec.container.image\""],"references":["https://research.nccgroup.com/2021/11/10/detection-engineering-for-kubernetes-clusters/#part3-kubernetes-detections","https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces","https://bishopfox.com/blog/kubernetes-pod-privilege-escalation"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.objectRef.resource:\"pods\" \n and kubernetes.audit.verb:(\"create\" or \"update\" or \"patch\") \n and kubernetes.audit.requestObject.spec.hostIPC:true\n and not kubernetes.audit.requestObject.spec.containers.image: (\"docker.elastic.co/beats/elastic-agent:8.4.0\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.hostIPC","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."}]},"id":"764c8437-a581-4537-8060-1fdb0e92c92d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/764c9fcd-4c4c-41e6-a0c7-d6c46c2eff66.json b/fleet-packages/detection-rules-composite/kibana/security_rule/764c9fcd-4c4c-41e6-a0c7-d6c46c2eff66.json new file mode 100644 index 0000000000000..ed337428dafe4 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/764c9fcd-4c4c-41e6-a0c7-d6c46c2eff66.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"764c9fcd-4c4c-41e6-a0c7-d6c46c2eff66","versions":[{"name":"Access to a Sensitive LDAP Attribute v1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identify access to sensitive Active Directory object attributes that contains credentials and decryption keys such as unixUserPassword, ms-PKI-AccountCredentials and msPKI-CredentialRoamingTokens.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"The 'Audit Directory Service Changes' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.mandiant.com/resources/blog/apt29-windows-credential-roaming","https://social.technet.microsoft.com/wiki/contents/articles/11483.windows-credential-roaming.aspx","https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-5136"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Active Directory"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"any where event.action == \"Directory Service Access\" and event.code == \"4662\" and\n\n not winlog.event_data.SubjectUserSid : \"S-1-5-18\" and\n\n winlog.event_data.Properties : (\n /* unixUserPassword */\n \"*612cb747-c0e8-4f92-9221-fdd5f15b550d*\",\n\n /* ms-PKI-AccountCredentials */\n \"*b8dfa744-31dc-4ef1-ac7c-84baf7ef9da7*\",\n\n /* ms-PKI-DPAPIMasterKeys */\n \"*b3f93023-9239-4f7c-b99c-6745d87adbc2*\",\n\n /* msPKI-CredentialRoamingTokens */\n \"*b7ff5a38-0818-42b0-8110-d3d154c97f24*\"\n )\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.Properties","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectUserSid","type":"keyword"}],"setup":""},{"name":"Access to a Sensitive LDAP Attribute v1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identify access to sensitive Active Directory object attributes that contains credentials and decryption keys such as unixUserPassword, ms-PKI-AccountCredentials and msPKI-CredentialRoamingTokens.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"The 'Audit Directory Service Changes' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.mandiant.com/resources/blog/apt29-windows-credential-roaming","https://social.technet.microsoft.com/wiki/contents/articles/11483.windows-credential-roaming.aspx","https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-5136"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Active Directory"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"any where event.action == \"Directory Service Access\" and event.code == \"4662\" and\n\n not winlog.event_data.SubjectUserSid : \"S-1-5-18\" and\n\n winlog.event_data.Properties : (\n /* unixUserPassword */\n \"*612cb747-c0e8-4f92-9221-fdd5f15b550d*\",\n\n /* ms-PKI-AccountCredentials */\n \"*b8dfa744-31dc-4ef1-ac7c-84baf7ef9da7*\",\n\n /* ms-PKI-DPAPIMasterKeys */\n \"*b3f93023-9239-4f7c-b99c-6745d87adbc2*\",\n\n /* msPKI-CredentialRoamingTokens */\n \"*b7ff5a38-0818-42b0-8110-d3d154c97f24*\"\n )\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.Properties","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectUserSid","type":"keyword"}],"setup":""},{"name":"Access to a Sensitive LDAP Attribute v1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identify access to sensitive Active Directory object attributes that contains credentials and decryption keys such as unixUserPassword, ms-PKI-AccountCredentials and msPKI-CredentialRoamingTokens.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"The 'Audit Directory Service Changes' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.mandiant.com/resources/blog/apt29-windows-credential-roaming","https://social.technet.microsoft.com/wiki/contents/articles/11483.windows-credential-roaming.aspx","https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-5136"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Active Directory"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"any where event.action == \"Directory Service Access\" and event.code == \"4662\" and\n\n not winlog.event_data.SubjectUserSid : \"S-1-5-18\" and\n\n winlog.event_data.Properties : (\n /* unixUserPassword */\n \"*612cb747-c0e8-4f92-9221-fdd5f15b550d*\",\n\n /* ms-PKI-AccountCredentials */\n \"*b8dfa744-31dc-4ef1-ac7c-84baf7ef9da7*\",\n\n /* ms-PKI-DPAPIMasterKeys */\n \"*b3f93023-9239-4f7c-b99c-6745d87adbc2*\",\n\n /* msPKI-CredentialRoamingTokens */\n \"*b7ff5a38-0818-42b0-8110-d3d154c97f24*\"\n )\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.Properties","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectUserSid","type":"keyword"}],"setup":""}]},"id":"764c9fcd-4c4c-41e6-a0c7-d6c46c2eff66","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/766d3f91-3f12-448c-b65f-20123e9e9e8c.json b/fleet-packages/detection-rules-composite/kibana/security_rule/766d3f91-3f12-448c-b65f-20123e9e9e8c.json new file mode 100644 index 0000000000000..598979ded5223 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/766d3f91-3f12-448c-b65f-20123e9e9e8c.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"766d3f91-3f12-448c-b65f-20123e9e9e8c","versions":[{"name":"Creation of Hidden Shared Object File v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a hidden shared object (.so) file. Users can mark specific files as hidden simply by putting a \".\" as the first character in the file or folder name. Adversaries can use this to their advantage to hide files and folders on the system for persistence and defense evasion.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.001","name":"Hidden Files and Directories","reference":"https://attack.mitre.org/techniques/T1564/001/"}]}]}],"language":"eql","query":"file where event.action : \"creation\" and file.extension == \"so\" and file.name : \".*.so\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Creation of Hidden Shared Object File v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a hidden shared object (.so) file. Users can mark specific files as hidden simply by putting a \".\" as the first character in the file or folder name. Adversaries can use this to their advantage to hide files and folders on the system for persistence and defense evasion.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.001","name":"Hidden Files and Directories","reference":"https://attack.mitre.org/techniques/T1564/001/"}]}]}],"language":"eql","query":"file where event.action : \"creation\" and file.extension == \"so\" and file.name : \".*.so\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Creation of Hidden Shared Object File v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a hidden shared object (.so) file. Users can mark specific files as hidden simply by putting a \".\" as the first character in the file or folder name. Adversaries can use this to their advantage to hide files and folders on the system for persistence and defense evasion.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.001","name":"Hidden Files and Directories","reference":"https://attack.mitre.org/techniques/T1564/001/"}]}]}],"language":"eql","query":"file where event.action : \"creation\" and file.extension == \"so\" and file.name : \".*.so\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"766d3f91-3f12-448c-b65f-20123e9e9e8c","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/76ddb638-abf7-42d5-be22-4a70b0bf7241.json b/fleet-packages/detection-rules-composite/kibana/security_rule/76ddb638-abf7-42d5-be22-4a70b0bf7241.json new file mode 100644 index 0000000000000..764476c105122 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/76ddb638-abf7-42d5-be22-4a70b0bf7241.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"76ddb638-abf7-42d5-be22-4a70b0bf7241","versions":[{"name":"Privilege Escalation via Rogue Named Pipe Impersonation v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a privilege escalation attempt via rogue named pipe impersonation. An adversary may abuse this technique by masquerading as a known named pipe and manipulating a privileged process to connect to it.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"Named Pipe Creation Events need to be enabled within the Sysmon configuration by including the following settings:\n`condition equal \"contains\" and keyword equal \"pipe\"`\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://itm4n.github.io/printspoofer-abusing-impersonate-privileges/","https://github.com/zcgonvh/EfsPotato","https://twitter.com/SBousseaden/status/1429530155291193354"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"language":"eql","query":"file where event.action : \"Pipe Created*\" and\n /* normal sysmon named pipe creation events truncate the pipe keyword */\n file.name : \"\\\\*\\\\Pipe\\\\*\"\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"}],"setup":"Named Pipe Creation Events need to be enabled within the Sysmon configuration by including the following settings:\n`condition equal "contains" and keyword equal "pipe"`\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Privilege Escalation via Rogue Named Pipe Impersonation v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a privilege escalation attempt via rogue named pipe impersonation. An adversary may abuse this technique by masquerading as a known named pipe and manipulating a privileged process to connect to it.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"Named Pipe Creation Events need to be enabled within the Sysmon configuration by including the following settings:\n`condition equal \"contains\" and keyword equal \"pipe\"`\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://itm4n.github.io/printspoofer-abusing-impersonate-privileges/","https://github.com/zcgonvh/EfsPotato","https://twitter.com/SBousseaden/status/1429530155291193354"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"language":"eql","query":"file where event.action : \"Pipe Created*\" and\n /* normal sysmon named pipe creation events truncate the pipe keyword */\n file.name : \"\\\\*\\\\Pipe\\\\*\"\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"}],"setup":"Named Pipe Creation Events need to be enabled within the Sysmon configuration by including the following settings:\n`condition equal "contains" and keyword equal "pipe"`\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Privilege Escalation via Rogue Named Pipe Impersonation v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a privilege escalation attempt via rogue named pipe impersonation. An adversary may abuse this technique by masquerading as a known named pipe and manipulating a privileged process to connect to it.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"Named Pipe Creation Events need to be enabled within the Sysmon configuration by including the following settings:\n`condition equal \"contains\" and keyword equal \"pipe\"`\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://itm4n.github.io/printspoofer-abusing-impersonate-privileges/","https://github.com/zcgonvh/EfsPotato","https://twitter.com/SBousseaden/status/1429530155291193354"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"language":"eql","query":"file where event.action : \"Pipe Created*\" and\n /* normal sysmon named pipe creation events truncate the pipe keyword */\n file.name : \"\\\\*\\\\Pipe\\\\*\"\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"}],"setup":"Named Pipe Creation Events need to be enabled within the Sysmon configuration by including the following settings:\n`condition equal "contains" and keyword equal "pipe"`\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"76ddb638-abf7-42d5-be22-4a70b0bf7241","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/76fd43b7-3480-4dd9-8ad7-8bd36bfad92f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/76fd43b7-3480-4dd9-8ad7-8bd36bfad92f.json new file mode 100644 index 0000000000000..e12891505dc42 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/76fd43b7-3480-4dd9-8ad7-8bd36bfad92f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"76fd43b7-3480-4dd9-8ad7-8bd36bfad92f","versions":[{"name":"Potential Remote Desktop Tunneling Detected v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential use of an SSH utility to establish RDP over a reverse SSH Tunnel. This can be used by attackers to enable routing of network packets that would otherwise not reach their intended destination.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Remote Desktop Tunneling Detected\n\nProtocol Tunneling is a mechanism that involves explicitly encapsulating a protocol within another for various use cases,\nranging from providing an outer layer of encryption (similar to a VPN) to enabling traffic that network appliances would\nfilter to reach their destination.\n\nAttackers may tunnel Remote Desktop Protocol (RDP) traffic through other protocols like Secure Shell (SSH) to bypass network restrictions that block incoming RDP\nconnections but may be more permissive to other protocols.\n\nThis rule looks for command lines involving the `3389` port, which RDP uses by default and options commonly associated\nwith tools that perform tunneling.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account and system owners and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine network data to determine if the host communicated with external servers using the tunnel.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n- Investigate the command line for the execution of programs that are unrelated to tunneling, like Remote Desktop clients.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Take the necessary actions to disable the tunneling, which can be a process kill, service deletion, registry key\nmodification, etc. Inspect the host to learn which method was used and to determine a response for the case.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.netspi.com/how-to-access-rdp-over-a-reverse-ssh-tunnel/"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1572","name":"Protocol Tunneling","reference":"https://attack.mitre.org/techniques/T1572/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n /* RDP port and usual SSH tunneling related switches in command line */\n process.args : \"*:3389\" and\n process.args : (\"-L\", \"-P\", \"-R\", \"-pw\", \"-ssh\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Remote Desktop Tunneling Detected v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential use of an SSH utility to establish RDP over a reverse SSH Tunnel. This can be used by attackers to enable routing of network packets that would otherwise not reach their intended destination.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Remote Desktop Tunneling Detected\n\nProtocol Tunneling is a mechanism that involves explicitly encapsulating a protocol within another for various use cases,\nranging from providing an outer layer of encryption (similar to a VPN) to enabling traffic that network appliances would\nfilter to reach their destination.\n\nAttackers may tunnel Remote Desktop Protocol (RDP) traffic through other protocols like Secure Shell (SSH) to bypass network restrictions that block incoming RDP\nconnections but may be more permissive to other protocols.\n\nThis rule looks for command lines involving the `3389` port, which RDP uses by default and options commonly associated\nwith tools that perform tunneling.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account and system owners and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine network data to determine if the host communicated with external servers using the tunnel.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n- Investigate the command line for the execution of programs that are unrelated to tunneling, like Remote Desktop clients.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Take the necessary actions to disable the tunneling, which can be a process kill, service deletion, registry key\nmodification, etc. Inspect the host to learn which method was used and to determine a response for the case.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.netspi.com/how-to-access-rdp-over-a-reverse-ssh-tunnel/"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1572","name":"Protocol Tunneling","reference":"https://attack.mitre.org/techniques/T1572/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n /* RDP port and usual SSH tunneling related switches in command line */\n process.args : \"*:3389\" and\n process.args : (\"-L\", \"-P\", \"-R\", \"-pw\", \"-ssh\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Remote Desktop Tunneling Detected v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential use of an SSH utility to establish RDP over a reverse SSH Tunnel. This can be used by attackers to enable routing of network packets that would otherwise not reach their intended destination.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Remote Desktop Tunneling Detected\n\nProtocol Tunneling is a mechanism that involves explicitly encapsulating a protocol within another for various use cases,\nranging from providing an outer layer of encryption (similar to a VPN) to enabling traffic that network appliances would\nfilter to reach their destination.\n\nAttackers may tunnel Remote Desktop Protocol (RDP) traffic through other protocols like Secure Shell (SSH) to bypass network restrictions that block incoming RDP\nconnections but may be more permissive to other protocols.\n\nThis rule looks for command lines involving the `3389` port, which RDP uses by default and options commonly associated\nwith tools that perform tunneling.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account and system owners and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine network data to determine if the host communicated with external servers using the tunnel.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n- Investigate the command line for the execution of programs that are unrelated to tunneling, like Remote Desktop clients.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Take the necessary actions to disable the tunneling, which can be a process kill, service deletion, registry key\nmodification, etc. Inspect the host to learn which method was used and to determine a response for the case.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.netspi.com/how-to-access-rdp-over-a-reverse-ssh-tunnel/"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1572","name":"Protocol Tunneling","reference":"https://attack.mitre.org/techniques/T1572/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n /* RDP port and usual SSH tunneling related switches in command line */\n process.args : \"*:3389\" and\n process.args : (\"-L\", \"-P\", \"-R\", \"-pw\", \"-ssh\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"76fd43b7-3480-4dd9-8ad7-8bd36bfad92f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/770e0c4d-b998-41e5-a62e-c7901fd7f470.json b/fleet-packages/detection-rules-composite/kibana/security_rule/770e0c4d-b998-41e5-a62e-c7901fd7f470.json new file mode 100644 index 0000000000000..98058858f6e68 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/770e0c4d-b998-41e5-a62e-c7901fd7f470.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"770e0c4d-b998-41e5-a62e-c7901fd7f470","versions":[{"name":"Enumeration Command Spawned via WMIPrvSE v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies native Windows host and network enumeration commands spawned by the Windows Management Instrumentation Provider Service (WMIPrvSE).","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1047","name":"Windows Management Instrumentation","reference":"https://attack.mitre.org/techniques/T1047/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1018","name":"Remote System Discovery","reference":"https://attack.mitre.org/techniques/T1018/"},{"id":"T1087","name":"Account Discovery","reference":"https://attack.mitre.org/techniques/T1087/"},{"id":"T1518","name":"Software Discovery","reference":"https://attack.mitre.org/techniques/T1518/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name:\n (\n \"arp.exe\",\n \"dsquery.exe\",\n \"dsget.exe\",\n \"gpresult.exe\",\n \"hostname.exe\",\n \"ipconfig.exe\",\n \"nbtstat.exe\",\n \"net.exe\",\n \"net1.exe\",\n \"netsh.exe\",\n \"netstat.exe\",\n \"nltest.exe\",\n \"ping.exe\",\n \"qprocess.exe\",\n \"quser.exe\",\n \"qwinsta.exe\",\n \"reg.exe\",\n \"sc.exe\",\n \"systeminfo.exe\",\n \"tasklist.exe\",\n \"tracert.exe\",\n \"whoami.exe\"\n ) and\n process.parent.name:\"wmiprvse.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Enumeration Command Spawned via WMIPrvSE v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies native Windows host and network enumeration commands spawned by the Windows Management Instrumentation Provider Service (WMIPrvSE).","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1047","name":"Windows Management Instrumentation","reference":"https://attack.mitre.org/techniques/T1047/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1018","name":"Remote System Discovery","reference":"https://attack.mitre.org/techniques/T1018/"},{"id":"T1087","name":"Account Discovery","reference":"https://attack.mitre.org/techniques/T1087/"},{"id":"T1518","name":"Software Discovery","reference":"https://attack.mitre.org/techniques/T1518/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name:\n (\n \"arp.exe\",\n \"dsquery.exe\",\n \"dsget.exe\",\n \"gpresult.exe\",\n \"hostname.exe\",\n \"ipconfig.exe\",\n \"nbtstat.exe\",\n \"net.exe\",\n \"net1.exe\",\n \"netsh.exe\",\n \"netstat.exe\",\n \"nltest.exe\",\n \"ping.exe\",\n \"qprocess.exe\",\n \"quser.exe\",\n \"qwinsta.exe\",\n \"reg.exe\",\n \"sc.exe\",\n \"systeminfo.exe\",\n \"tasklist.exe\",\n \"tracert.exe\",\n \"whoami.exe\"\n ) and\n process.parent.name:\"wmiprvse.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Enumeration Command Spawned via WMIPrvSE v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies native Windows host and network enumeration commands spawned by the Windows Management Instrumentation Provider Service (WMIPrvSE).","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1047","name":"Windows Management Instrumentation","reference":"https://attack.mitre.org/techniques/T1047/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1018","name":"Remote System Discovery","reference":"https://attack.mitre.org/techniques/T1018/"},{"id":"T1087","name":"Account Discovery","reference":"https://attack.mitre.org/techniques/T1087/"},{"id":"T1518","name":"Software Discovery","reference":"https://attack.mitre.org/techniques/T1518/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name:\n (\n \"arp.exe\",\n \"dsquery.exe\",\n \"dsget.exe\",\n \"gpresult.exe\",\n \"hostname.exe\",\n \"ipconfig.exe\",\n \"nbtstat.exe\",\n \"net.exe\",\n \"net1.exe\",\n \"netsh.exe\",\n \"netstat.exe\",\n \"nltest.exe\",\n \"ping.exe\",\n \"qprocess.exe\",\n \"quser.exe\",\n \"qwinsta.exe\",\n \"reg.exe\",\n \"sc.exe\",\n \"systeminfo.exe\",\n \"tasklist.exe\",\n \"tracert.exe\",\n \"whoami.exe\"\n ) and\n process.parent.name:\"wmiprvse.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"770e0c4d-b998-41e5-a62e-c7901fd7f470","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/774f5e28-7b75-4a58-b94e-41bf060fdd86.json b/fleet-packages/detection-rules-composite/kibana/security_rule/774f5e28-7b75-4a58-b94e-41bf060fdd86.json new file mode 100644 index 0000000000000..5373389321cd7 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/774f5e28-7b75-4a58-b94e-41bf060fdd86.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"774f5e28-7b75-4a58-b94e-41bf060fdd86","versions":[{"name":"User Added as Owner for Azure Application v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user is added as an owner for an Azure application. An adversary may add a user account as an owner for an Azure application in order to grant additional permissions and modify the application's configuration using another account.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Add owner to application\" and event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"User Added as Owner for Azure Application v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user is added as an owner for an Azure application. An adversary may add a user account as an owner for an Azure application in order to grant additional permissions and modify the application's configuration using another account.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Add owner to application\" and event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"User Added as Owner for Azure Application v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user is added as an owner for an Azure application. An adversary may add a user account as an owner for an Azure application in order to grant additional permissions and modify the application's configuration using another account.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Add owner to application\" and event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"774f5e28-7b75-4a58-b94e-41bf060fdd86","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/77a3c3df-8ec4-4da4-b758-878f551dee69.json b/fleet-packages/detection-rules-composite/kibana/security_rule/77a3c3df-8ec4-4da4-b758-878f551dee69.json new file mode 100644 index 0000000000000..5789c83662356 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/77a3c3df-8ec4-4da4-b758-878f551dee69.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"77a3c3df-8ec4-4da4-b758-878f551dee69","versions":[{"name":"Adversary Behavior - Detected - Elastic Endgame v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected an Adversary Behavior. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame"],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and (event.action:behavior_protection_event or endgame.event_subtype_full:behavior_protection_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Adversary Behavior - Detected - Elastic Endgame v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected an Adversary Behavior. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame"],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and (event.action:behavior_protection_event or endgame.event_subtype_full:behavior_protection_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Adversary Behavior - Detected - Elastic Endgame v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected an Adversary Behavior. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame"],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and (event.action:behavior_protection_event or endgame.event_subtype_full:behavior_protection_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]}]},"id":"77a3c3df-8ec4-4da4-b758-878f551dee69","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/785a404b-75aa-4ffd-8be5-3334a5a544dd.json b/fleet-packages/detection-rules-composite/kibana/security_rule/785a404b-75aa-4ffd-8be5-3334a5a544dd.json new file mode 100644 index 0000000000000..3f74d3b671e44 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/785a404b-75aa-4ffd-8be5-3334a5a544dd.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"785a404b-75aa-4ffd-8be5-3334a5a544dd","versions":[{"name":"Application Added to Google Workspace Domain v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a Google marketplace application is added to the Google Workspace domain. An adversary may add a malicious application to an organization’s Google Workspace domain in order to maintain a presence in their target’s organization and steal data.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Applications can be added to a Google Workspace domain by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/6328701?hl=en#"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:ADD_APPLICATION\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Application Added to Google Workspace Domain v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a Google marketplace application is added to the Google Workspace domain. An adversary may add a malicious application to an organization’s Google Workspace domain in order to maintain a presence in their target’s organization and steal data.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Applications can be added to a Google Workspace domain by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/6328701?hl=en#"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:ADD_APPLICATION\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Application Added to Google Workspace Domain v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a Google marketplace application is added to the Google Workspace domain. An adversary may add a malicious application to an organization’s Google Workspace domain in order to maintain a presence in their target’s organization and steal data.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Applications can be added to a Google Workspace domain by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/6328701?hl=en#"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:ADD_APPLICATION\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"785a404b-75aa-4ffd-8be5-3334a5a544dd","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/7882cebf-6cf1-4de3-9662-213aa13e8b80.json b/fleet-packages/detection-rules-composite/kibana/security_rule/7882cebf-6cf1-4de3-9662-213aa13e8b80.json new file mode 100644 index 0000000000000..ec22b1b1f8b38 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/7882cebf-6cf1-4de3-9662-213aa13e8b80.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"7882cebf-6cf1-4de3-9662-213aa13e8b80","versions":[{"name":"Azure Privilege Identity Management Role Modified v103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Azure Active Directory (AD) Privileged Identity Management (PIM) is a service that enables you to manage, control, and monitor access to important resources in an organization. PIM can be used to manage the built-in Azure resource roles such as Global Administrator and Application Administrator. An adversary may add a user to a PIM role in order to maintain persistence in their target's environment or modify a PIM role to weaken their target's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Azure Privilege Identity Management Role Modified\n\nAzure Active Directory (AD) Privileged Identity Management (PIM) is a service that enables you to manage, control, and\nmonitor access to important resources in an organization. PIM can be used to manage the built-in Azure resource roles\nsuch as Global Administrator and Application Administrator.\n\nThis rule identifies the update of PIM role settings, which can indicate that an attacker has already gained enough\naccess to modify role assignment settings.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Consider the source IP address and geolocation for the user who issued the command. Do they look normal for the user?\n- Consider the time of day. If the user is a human, not a program or script, did the activity take place during a normal\ntime of day?\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Examine the account's commands, API calls, and data management actions in the last 24 hours.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this activity didn't follow your organization's change management policies, it should be reviewed by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Restore the PIM roles to the desired state.\n- Consider enabling multi-factor authentication for users.\n- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/privileged-identity-management/pim-resource-roles-assign-roles","https://docs.microsoft.com/en-us/azure/active-directory/privileged-identity-management/pim-configure"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Update role setting in PIM\" and event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Privilege Identity Management Role Modified v103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Azure Active Directory (AD) Privileged Identity Management (PIM) is a service that enables you to manage, control, and monitor access to important resources in an organization. PIM can be used to manage the built-in Azure resource roles such as Global Administrator and Application Administrator. An adversary may add a user to a PIM role in order to maintain persistence in their target's environment or modify a PIM role to weaken their target's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Azure Privilege Identity Management Role Modified\n\nAzure Active Directory (AD) Privileged Identity Management (PIM) is a service that enables you to manage, control, and\nmonitor access to important resources in an organization. PIM can be used to manage the built-in Azure resource roles\nsuch as Global Administrator and Application Administrator.\n\nThis rule identifies the update of PIM role settings, which can indicate that an attacker has already gained enough\naccess to modify role assignment settings.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Consider the source IP address and geolocation for the user who issued the command. Do they look normal for the user?\n- Consider the time of day. If the user is a human, not a program or script, did the activity take place during a normal\ntime of day?\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Examine the account's commands, API calls, and data management actions in the last 24 hours.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this activity didn't follow your organization's change management policies, it should be reviewed by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Restore the PIM roles to the desired state.\n- Consider enabling multi-factor authentication for users.\n- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/privileged-identity-management/pim-resource-roles-assign-roles","https://docs.microsoft.com/en-us/azure/active-directory/privileged-identity-management/pim-configure"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Update role setting in PIM\" and event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Privilege Identity Management Role Modified v103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Azure Active Directory (AD) Privileged Identity Management (PIM) is a service that enables you to manage, control, and monitor access to important resources in an organization. PIM can be used to manage the built-in Azure resource roles such as Global Administrator and Application Administrator. An adversary may add a user to a PIM role in order to maintain persistence in their target's environment or modify a PIM role to weaken their target's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Azure Privilege Identity Management Role Modified\n\nAzure Active Directory (AD) Privileged Identity Management (PIM) is a service that enables you to manage, control, and\nmonitor access to important resources in an organization. PIM can be used to manage the built-in Azure resource roles\nsuch as Global Administrator and Application Administrator.\n\nThis rule identifies the update of PIM role settings, which can indicate that an attacker has already gained enough\naccess to modify role assignment settings.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Consider the source IP address and geolocation for the user who issued the command. Do they look normal for the user?\n- Consider the time of day. If the user is a human, not a program or script, did the activity take place during a normal\ntime of day?\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Examine the account's commands, API calls, and data management actions in the last 24 hours.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this activity didn't follow your organization's change management policies, it should be reviewed by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Restore the PIM roles to the desired state.\n- Consider enabling multi-factor authentication for users.\n- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/privileged-identity-management/pim-resource-roles-assign-roles","https://docs.microsoft.com/en-us/azure/active-directory/privileged-identity-management/pim-configure"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Update role setting in PIM\" and event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"7882cebf-6cf1-4de3-9662-213aa13e8b80","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/78d3d8d9-b476-451d-a9e0-7a5addd70670.json b/fleet-packages/detection-rules-composite/kibana/security_rule/78d3d8d9-b476-451d-a9e0-7a5addd70670.json new file mode 100644 index 0000000000000..0c0ecee5f9ddc --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/78d3d8d9-b476-451d-a9e0-7a5addd70670.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"78d3d8d9-b476-451d-a9e0-7a5addd70670","versions":[{"name":"Spike in AWS Error Messages v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a significant spike in the rate of a particular error in the CloudTrail messages. Spikes in error messages may accompany attempts at privilege escalation, lateral movement, or discovery.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Spike in AWS Error Messages\n\nCloudTrail logging provides visibility on actions taken within an AWS environment. By monitoring these events and\nunderstanding what is considered normal behavior within an organization, you can spot suspicious or malicious activity\nwhen deviations occur.\n\nThis rule uses a machine learning job to detect a significant spike in the rate of a particular error in the CloudTrail\nmessages. Spikes in error messages may accompany attempts at privilege escalation, lateral movement, or discovery.\n\n#### Possible investigation steps\n\n- Examine the history of the error. If the error only manifested recently, it might be related to recent changes in an\nautomation module or script. You can find the error in the `aws.cloudtrail.error_code field` field.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, or network administrator activity.\n- Examine the request parameters. These may indicate the source of the program or the nature of the task being performed\nwhen the error occurred.\n - Check whether the error is related to unsuccessful attempts to enumerate or access objects, data, or secrets.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Contact the account owner and confirm whether they are aware of this activity if suspicious.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- Examine the history of the command. If the command only manifested recently, it might be part of a new automation\nmodule or script. If it has a consistent cadence (for example, it appears in small numbers on a weekly or monthly cadence),\nit might be part of a housekeeping or maintenance process. You can find the command in the `event.action field` field.\n- The adoption of new services or the addition of new functionality to scripts may generate false positives.\n\n### Related Rules\n\n- Unusual City For an AWS Command - 809b70d3-e2c3-455e-af1b-2626a5a1a276\n- Unusual Country For an AWS Command - dca28dee-c999-400f-b640-50a081cc0fd1\n- Unusual AWS Command for a User - ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1\n- Rare AWS Error Code - 19de8096-e2b0-4bd8-80c9-34a820813fff\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"false_positives":["Spikes in error message activity can also be due to bugs in cloud automation scripts or workflows; changes to cloud automation scripts or workflows; adoption of new services; changes in the way services are used; or changes to IAM privileges."],"from":"now-60m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Cloud","AWS","ML","Investigation Guide"],"anomaly_threshold":50,"machine_learning_job_id":"high_distinct_count_error_message","type":"machine_learning","related_integrations":[],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Spike in AWS Error Messages v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a significant spike in the rate of a particular error in the CloudTrail messages. Spikes in error messages may accompany attempts at privilege escalation, lateral movement, or discovery.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Spike in AWS Error Messages\n\nCloudTrail logging provides visibility on actions taken within an AWS environment. By monitoring these events and\nunderstanding what is considered normal behavior within an organization, you can spot suspicious or malicious activity\nwhen deviations occur.\n\nThis rule uses a machine learning job to detect a significant spike in the rate of a particular error in the CloudTrail\nmessages. Spikes in error messages may accompany attempts at privilege escalation, lateral movement, or discovery.\n\n#### Possible investigation steps\n\n- Examine the history of the error. If the error only manifested recently, it might be related to recent changes in an\nautomation module or script. You can find the error in the `aws.cloudtrail.error_code field` field.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, or network administrator activity.\n- Examine the request parameters. These may indicate the source of the program or the nature of the task being performed\nwhen the error occurred.\n - Check whether the error is related to unsuccessful attempts to enumerate or access objects, data, or secrets.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Contact the account owner and confirm whether they are aware of this activity if suspicious.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- Examine the history of the command. If the command only manifested recently, it might be part of a new automation\nmodule or script. If it has a consistent cadence (for example, it appears in small numbers on a weekly or monthly cadence),\nit might be part of a housekeeping or maintenance process. You can find the command in the `event.action field` field.\n- The adoption of new services or the addition of new functionality to scripts may generate false positives.\n\n### Related Rules\n\n- Unusual City For an AWS Command - 809b70d3-e2c3-455e-af1b-2626a5a1a276\n- Unusual Country For an AWS Command - dca28dee-c999-400f-b640-50a081cc0fd1\n- Unusual AWS Command for a User - ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1\n- Rare AWS Error Code - 19de8096-e2b0-4bd8-80c9-34a820813fff\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"false_positives":["Spikes in error message activity can also be due to bugs in cloud automation scripts or workflows; changes to cloud automation scripts or workflows; adoption of new services; changes in the way services are used; or changes to IAM privileges."],"from":"now-60m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Cloud","AWS","ML","Investigation Guide"],"anomaly_threshold":50,"machine_learning_job_id":"high_distinct_count_error_message","type":"machine_learning","related_integrations":[],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Spike in AWS Error Messages v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a significant spike in the rate of a particular error in the CloudTrail messages. Spikes in error messages may accompany attempts at privilege escalation, lateral movement, or discovery.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Spike in AWS Error Messages\n\nCloudTrail logging provides visibility on actions taken within an AWS environment. By monitoring these events and\nunderstanding what is considered normal behavior within an organization, you can spot suspicious or malicious activity\nwhen deviations occur.\n\nThis rule uses a machine learning job to detect a significant spike in the rate of a particular error in the CloudTrail\nmessages. Spikes in error messages may accompany attempts at privilege escalation, lateral movement, or discovery.\n\n#### Possible investigation steps\n\n- Examine the history of the error. If the error only manifested recently, it might be related to recent changes in an\nautomation module or script. You can find the error in the `aws.cloudtrail.error_code field` field.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, or network administrator activity.\n- Examine the request parameters. These may indicate the source of the program or the nature of the task being performed\nwhen the error occurred.\n - Check whether the error is related to unsuccessful attempts to enumerate or access objects, data, or secrets.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Contact the account owner and confirm whether they are aware of this activity if suspicious.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- Examine the history of the command. If the command only manifested recently, it might be part of a new automation\nmodule or script. If it has a consistent cadence (for example, it appears in small numbers on a weekly or monthly cadence),\nit might be part of a housekeeping or maintenance process. You can find the command in the `event.action field` field.\n- The adoption of new services or the addition of new functionality to scripts may generate false positives.\n\n### Related Rules\n\n- Unusual City For an AWS Command - 809b70d3-e2c3-455e-af1b-2626a5a1a276\n- Unusual Country For an AWS Command - dca28dee-c999-400f-b640-50a081cc0fd1\n- Unusual AWS Command for a User - ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1\n- Rare AWS Error Code - 19de8096-e2b0-4bd8-80c9-34a820813fff\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"false_positives":["Spikes in error message activity can also be due to bugs in cloud automation scripts or workflows; changes to cloud automation scripts or workflows; adoption of new services; changes in the way services are used; or changes to IAM privileges."],"from":"now-60m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Cloud","AWS","ML","Investigation Guide"],"anomaly_threshold":50,"machine_learning_job_id":"high_distinct_count_error_message","type":"machine_learning","related_integrations":[],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"78d3d8d9-b476-451d-a9e0-7a5addd70670","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/792dd7a6-7e00-4a0a-8a9a-a7c24720b5ec.json b/fleet-packages/detection-rules-composite/kibana/security_rule/792dd7a6-7e00-4a0a-8a9a-a7c24720b5ec.json new file mode 100644 index 0000000000000..1efeec8668d25 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/792dd7a6-7e00-4a0a-8a9a-a7c24720b5ec.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"792dd7a6-7e00-4a0a-8a9a-a7c24720b5ec","versions":[{"name":"Azure Key Vault Modified v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to a Key Vault in Azure. The Key Vault is a service that safeguards encryption keys and secrets like certificates, connection strings, and passwords. Because this data is sensitive and business critical, access to key vaults should be secured to allow only authorized applications and users.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Key vault modifications may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Key vault modifications from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/key-vault/general/basic-concepts","https://docs.microsoft.com/en-us/azure/key-vault/general/secure-your-key-vault","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Data Protection"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.001","name":"Credentials In Files","reference":"https://attack.mitre.org/techniques/T1552/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.KEYVAULT/VAULTS/WRITE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Key Vault Modified v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to a Key Vault in Azure. The Key Vault is a service that safeguards encryption keys and secrets like certificates, connection strings, and passwords. Because this data is sensitive and business critical, access to key vaults should be secured to allow only authorized applications and users.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Key vault modifications may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Key vault modifications from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/key-vault/general/basic-concepts","https://docs.microsoft.com/en-us/azure/key-vault/general/secure-your-key-vault","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Data Protection"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.001","name":"Credentials In Files","reference":"https://attack.mitre.org/techniques/T1552/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.KEYVAULT/VAULTS/WRITE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Key Vault Modified v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to a Key Vault in Azure. The Key Vault is a service that safeguards encryption keys and secrets like certificates, connection strings, and passwords. Because this data is sensitive and business critical, access to key vaults should be secured to allow only authorized applications and users.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Key vault modifications may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Key vault modifications from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/key-vault/general/basic-concepts","https://docs.microsoft.com/en-us/azure/key-vault/general/secure-your-key-vault","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Data Protection"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.001","name":"Credentials In Files","reference":"https://attack.mitre.org/techniques/T1552/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.KEYVAULT/VAULTS/WRITE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"792dd7a6-7e00-4a0a-8a9a-a7c24720b5ec","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/79f97b31-480e-4e63-a7f4-ede42bf2c6de.json b/fleet-packages/detection-rules-composite/kibana/security_rule/79f97b31-480e-4e63-a7f4-ede42bf2c6de.json new file mode 100644 index 0000000000000..9e63ea9f8ffc9 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/79f97b31-480e-4e63-a7f4-ede42bf2c6de.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"79f97b31-480e-4e63-a7f4-ede42bf2c6de","versions":[{"name":"Potential Shadow Credentials added to AD Object v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identify the modification of the msDS-KeyCredentialLink attribute in an Active Directory Computer or User Object. Attackers can abuse control over the object and create a key pair, append to raw public key in the attribute, and obtain persistent and stealthy access to the target user or computer object.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Modifications in the msDS-KeyCredentialLink attribute can be done legitimately by the Azure AD Connect synchronization account or the ADFS service account. These accounts can be added as Exceptions."],"from":"now-9m","references":["https://posts.specterops.io/shadow-credentials-abusing-key-trust-account-mapping-for-takeover-8ee1a53566ab","https://www.thehacker.recipes/ad/movement/kerberos/shadow-credentials","https://github.com/OTRF/Set-AuditRule","https://cyberstoph.org/posts/2022/03/detecting-shadow-credentials/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Active Directory"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"Directory Service Changes\" and event.code:\"5136\" and\n winlog.event_data.AttributeLDAPDisplayName:\"msDS-KeyCredentialLink\" and winlog.event_data.AttributeValue :B\\:828*\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeValue","type":"unknown"}],"setup":"The 'Audit Directory Service Changes' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```\n\nThe above policy does not cover User objects, so we need to set up an AuditRule using https://github.com/OTRF/Set-AuditRule.\nAs this specifies the msDS-KeyCredentialLink Attribute GUID, it is expected to be low noise.\n\n```\nSet-AuditRule -AdObjectPath 'AD:\\CN=Users,DC=Domain,DC=com' -WellKnownSidType WorldSid -Rights WriteProperty -InheritanceFlags Children -AttributeGUID 5b47d60f-6090-40b2-9f37-2a4de88f3063 -AuditFlags Success\n```"},{"name":"Potential Shadow Credentials added to AD Object v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identify the modification of the msDS-KeyCredentialLink attribute in an Active Directory Computer or User Object. Attackers can abuse control over the object and create a key pair, append to raw public key in the attribute, and obtain persistent and stealthy access to the target user or computer object.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Modifications in the msDS-KeyCredentialLink attribute can be done legitimately by the Azure AD Connect synchronization account or the ADFS service account. These accounts can be added as Exceptions."],"from":"now-9m","references":["https://posts.specterops.io/shadow-credentials-abusing-key-trust-account-mapping-for-takeover-8ee1a53566ab","https://www.thehacker.recipes/ad/movement/kerberos/shadow-credentials","https://github.com/OTRF/Set-AuditRule","https://cyberstoph.org/posts/2022/03/detecting-shadow-credentials/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Active Directory"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"Directory Service Changes\" and event.code:\"5136\" and\n winlog.event_data.AttributeLDAPDisplayName:\"msDS-KeyCredentialLink\" and winlog.event_data.AttributeValue :B\\:828*\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeValue","type":"unknown"}],"setup":"The 'Audit Directory Service Changes' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```\n\nThe above policy does not cover User objects, so we need to set up an AuditRule using https://github.com/OTRF/Set-AuditRule.\nAs this specifies the msDS-KeyCredentialLink Attribute GUID, it is expected to be low noise.\n\n```\nSet-AuditRule -AdObjectPath 'AD:\\CN=Users,DC=Domain,DC=com' -WellKnownSidType WorldSid -Rights WriteProperty -InheritanceFlags Children -AttributeGUID 5b47d60f-6090-40b2-9f37-2a4de88f3063 -AuditFlags Success\n```"},{"name":"Potential Shadow Credentials added to AD Object v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identify the modification of the msDS-KeyCredentialLink attribute in an Active Directory Computer or User Object. Attackers can abuse control over the object and create a key pair, append to raw public key in the attribute, and obtain persistent and stealthy access to the target user or computer object.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Modifications in the msDS-KeyCredentialLink attribute can be done legitimately by the Azure AD Connect synchronization account or the ADFS service account. These accounts can be added as Exceptions."],"from":"now-9m","references":["https://posts.specterops.io/shadow-credentials-abusing-key-trust-account-mapping-for-takeover-8ee1a53566ab","https://www.thehacker.recipes/ad/movement/kerberos/shadow-credentials","https://github.com/OTRF/Set-AuditRule","https://cyberstoph.org/posts/2022/03/detecting-shadow-credentials/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Active Directory"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"Directory Service Changes\" and event.code:\"5136\" and\n winlog.event_data.AttributeLDAPDisplayName:\"msDS-KeyCredentialLink\" and winlog.event_data.AttributeValue :B\\:828*\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeValue","type":"unknown"}],"setup":"The 'Audit Directory Service Changes' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```\n\nThe above policy does not cover User objects, so we need to set up an AuditRule using https://github.com/OTRF/Set-AuditRule.\nAs this specifies the msDS-KeyCredentialLink Attribute GUID, it is expected to be low noise.\n\n```\nSet-AuditRule -AdObjectPath 'AD:\\CN=Users,DC=Domain,DC=com' -WellKnownSidType WorldSid -Rights WriteProperty -InheritanceFlags Children -AttributeGUID 5b47d60f-6090-40b2-9f37-2a4de88f3063 -AuditFlags Success\n```"}]},"id":"79f97b31-480e-4e63-a7f4-ede42bf2c6de","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/7b3da11a-60a2-412e-8aa7-011e1eb9ed47.json b/fleet-packages/detection-rules-composite/kibana/security_rule/7b3da11a-60a2-412e-8aa7-011e1eb9ed47.json new file mode 100644 index 0000000000000..e6da2f7f30950 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/7b3da11a-60a2-412e-8aa7-011e1eb9ed47.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"7b3da11a-60a2-412e-8aa7-011e1eb9ed47","versions":[{"name":"AWS ElastiCache Security Group Created v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an ElastiCache security group has been created.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["A ElastiCache security group may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Security group creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheSecurityGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:elasticache.amazonaws.com and event.action:\"Create Cache Security Group\" and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS ElastiCache Security Group Created v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an ElastiCache security group has been created.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["A ElastiCache security group may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Security group creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheSecurityGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:elasticache.amazonaws.com and event.action:\"Create Cache Security Group\" and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS ElastiCache Security Group Created v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an ElastiCache security group has been created.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["A ElastiCache security group may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Security group creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheSecurityGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:elasticache.amazonaws.com and event.action:\"Create Cache Security Group\" and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"7b3da11a-60a2-412e-8aa7-011e1eb9ed47","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/7b8bfc26-81d2-435e-965c-d722ee397ef1.json b/fleet-packages/detection-rules-composite/kibana/security_rule/7b8bfc26-81d2-435e-965c-d722ee397ef1.json new file mode 100644 index 0000000000000..1a919a419205f --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/7b8bfc26-81d2-435e-965c-d722ee397ef1.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"7b8bfc26-81d2-435e-965c-d722ee397ef1","versions":[{"name":"Windows Network Enumeration v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to enumerate hosts in a network using the built-in Windows net.exe tool.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Network Enumeration\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `net` utility to enumerate servers in the environment that hosts shared drives\nor printers. This information is useful to attackers as they can identify targets for lateral movements and search for\nvaluable shared data.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1018","name":"Remote System Discovery","reference":"https://attack.mitre.org/techniques/T1018/"},{"id":"T1135","name":"Network Share Discovery","reference":"https://attack.mitre.org/techniques/T1135/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n ((process.name : \"net.exe\" or process.pe.original_file_name == \"net.exe\") or\n ((process.name : \"net1.exe\" or process.pe.original_file_name == \"net1.exe\") and\n not process.parent.name : \"net.exe\")) and\n (process.args : \"view\" or (process.args : \"time\" and process.args : \"\\\\\\\\*\"))\n\n\n /* expand when ancestry is available\n and not descendant of [process where event.type == \"start\" and process.name : \"cmd.exe\" and\n ((process.parent.name : \"userinit.exe\") or\n (process.parent.name : \"gpscript.exe\") or\n (process.parent.name : \"explorer.exe\" and\n process.args : \"C:\\\\*\\\\Start Menu\\\\Programs\\\\Startup\\\\*.bat*\"))]\n */\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Windows Network Enumeration v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to enumerate hosts in a network using the built-in Windows net.exe tool.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Network Enumeration\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `net` utility to enumerate servers in the environment that hosts shared drives\nor printers. This information is useful to attackers as they can identify targets for lateral movements and search for\nvaluable shared data.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1018","name":"Remote System Discovery","reference":"https://attack.mitre.org/techniques/T1018/"},{"id":"T1135","name":"Network Share Discovery","reference":"https://attack.mitre.org/techniques/T1135/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n ((process.name : \"net.exe\" or process.pe.original_file_name == \"net.exe\") or\n ((process.name : \"net1.exe\" or process.pe.original_file_name == \"net1.exe\") and\n not process.parent.name : \"net.exe\")) and\n (process.args : \"view\" or (process.args : \"time\" and process.args : \"\\\\\\\\*\"))\n\n\n /* expand when ancestry is available\n and not descendant of [process where event.type == \"start\" and process.name : \"cmd.exe\" and\n ((process.parent.name : \"userinit.exe\") or\n (process.parent.name : \"gpscript.exe\") or\n (process.parent.name : \"explorer.exe\" and\n process.args : \"C:\\\\*\\\\Start Menu\\\\Programs\\\\Startup\\\\*.bat*\"))]\n */\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Windows Network Enumeration v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to enumerate hosts in a network using the built-in Windows net.exe tool.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Network Enumeration\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `net` utility to enumerate servers in the environment that hosts shared drives\nor printers. This information is useful to attackers as they can identify targets for lateral movements and search for\nvaluable shared data.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1018","name":"Remote System Discovery","reference":"https://attack.mitre.org/techniques/T1018/"},{"id":"T1135","name":"Network Share Discovery","reference":"https://attack.mitre.org/techniques/T1135/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n ((process.name : \"net.exe\" or process.pe.original_file_name == \"net.exe\") or\n ((process.name : \"net1.exe\" or process.pe.original_file_name == \"net1.exe\") and\n not process.parent.name : \"net.exe\")) and\n (process.args : \"view\" or (process.args : \"time\" and process.args : \"\\\\\\\\*\"))\n\n\n /* expand when ancestry is available\n and not descendant of [process where event.type == \"start\" and process.name : \"cmd.exe\" and\n ((process.parent.name : \"userinit.exe\") or\n (process.parent.name : \"gpscript.exe\") or\n (process.parent.name : \"explorer.exe\" and\n process.args : \"C:\\\\*\\\\Start Menu\\\\Programs\\\\Startup\\\\*.bat*\"))]\n */\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"7b8bfc26-81d2-435e-965c-d722ee397ef1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/7ba58110-ae13-439b-8192-357b0fcfa9d7.json b/fleet-packages/detection-rules-composite/kibana/security_rule/7ba58110-ae13-439b-8192-357b0fcfa9d7.json new file mode 100644 index 0000000000000..fbf91d851f94f --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/7ba58110-ae13-439b-8192-357b0fcfa9d7.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"7ba58110-ae13-439b-8192-357b0fcfa9d7","versions":[{"name":"Suspicious LSASS Access via MalSecLogon v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious access to LSASS handle from a call trace pointing to seclogon.dll and with a suspicious access rights value. This may indicate an attempt to leak an LSASS handle via abusing the Secondary Logon service in preparation for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://splintercod3.blogspot.com/p/the-hidden-side-of-seclogon-part-3.html"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"process where event.code == \"10\" and\n winlog.event_data.TargetImage : \"?:\\\\WINDOWS\\\\system32\\\\lsass.exe\" and\n\n /* seclogon service accessing lsass */\n winlog.event_data.CallTrace : \"*seclogon.dll*\" and process.name : \"svchost.exe\" and\n\n /* PROCESS_CREATE_PROCESS & PROCESS_DUP_HANDLE & PROCESS_QUERY_INFORMATION */\n winlog.event_data.GrantedAccess == \"0x14c0\"\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallTrace","type":"unknown"},{"ecs":false,"name":"winlog.event_data.GrantedAccess","type":"unknown"},{"ecs":false,"name":"winlog.event_data.TargetImage","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious LSASS Access via MalSecLogon v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious access to LSASS handle from a call trace pointing to seclogon.dll and with a suspicious access rights value. This may indicate an attempt to leak an LSASS handle via abusing the Secondary Logon service in preparation for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://splintercod3.blogspot.com/p/the-hidden-side-of-seclogon-part-3.html"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"process where event.code == \"10\" and\n winlog.event_data.TargetImage : \"?:\\\\WINDOWS\\\\system32\\\\lsass.exe\" and\n\n /* seclogon service accessing lsass */\n winlog.event_data.CallTrace : \"*seclogon.dll*\" and process.name : \"svchost.exe\" and\n\n /* PROCESS_CREATE_PROCESS & PROCESS_DUP_HANDLE & PROCESS_QUERY_INFORMATION */\n winlog.event_data.GrantedAccess == \"0x14c0\"\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallTrace","type":"unknown"},{"ecs":false,"name":"winlog.event_data.GrantedAccess","type":"unknown"},{"ecs":false,"name":"winlog.event_data.TargetImage","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious LSASS Access via MalSecLogon v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious access to LSASS handle from a call trace pointing to seclogon.dll and with a suspicious access rights value. This may indicate an attempt to leak an LSASS handle via abusing the Secondary Logon service in preparation for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://splintercod3.blogspot.com/p/the-hidden-side-of-seclogon-part-3.html"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"process where event.code == \"10\" and\n winlog.event_data.TargetImage : \"?:\\\\WINDOWS\\\\system32\\\\lsass.exe\" and\n\n /* seclogon service accessing lsass */\n winlog.event_data.CallTrace : \"*seclogon.dll*\" and process.name : \"svchost.exe\" and\n\n /* PROCESS_CREATE_PROCESS & PROCESS_DUP_HANDLE & PROCESS_QUERY_INFORMATION */\n winlog.event_data.GrantedAccess == \"0x14c0\"\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallTrace","type":"unknown"},{"ecs":false,"name":"winlog.event_data.GrantedAccess","type":"unknown"},{"ecs":false,"name":"winlog.event_data.TargetImage","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"7ba58110-ae13-439b-8192-357b0fcfa9d7","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/7bcbb3ac-e533-41ad-a612-d6c3bf666aba.json b/fleet-packages/detection-rules-composite/kibana/security_rule/7bcbb3ac-e533-41ad-a612-d6c3bf666aba.json new file mode 100644 index 0000000000000..e386e14aaf14d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/7bcbb3ac-e533-41ad-a612-d6c3bf666aba.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"7bcbb3ac-e533-41ad-a612-d6c3bf666aba","versions":[{"name":"Tampering of Bash Command-Line History v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may attempt to clear or disable the Bash command-line history in an attempt to evade detection or forensic investigations.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.003","name":"Clear Command History","reference":"https://attack.mitre.org/techniques/T1070/003/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n (\n ((process.args : (\"rm\", \"echo\") or\n (process.args : \"ln\" and process.args : \"-sf\" and process.args : \"/dev/null\") or\n (process.args : \"truncate\" and process.args : \"-s0\"))\n and process.args : (\".bash_history\", \"/root/.bash_history\", \"/home/*/.bash_history\",\"/Users/.bash_history\", \"/Users/*/.bash_history\",\n \".zsh_history\", \"/root/.zsh_history\", \"/home/*/.zsh_history\", \"/Users/.zsh_history\", \"/Users/*/.zsh_history\")) or\n (process.name : \"history\" and process.args : \"-c\") or\n (process.args : \"export\" and process.args : (\"HISTFILE=/dev/null\", \"HISTFILESIZE=0\")) or\n (process.args : \"unset\" and process.args : \"HISTFILE\") or\n (process.args : \"set\" and process.args : \"history\" and process.args : \"+o\")\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Tampering of Bash Command-Line History v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may attempt to clear or disable the Bash command-line history in an attempt to evade detection or forensic investigations.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.003","name":"Clear Command History","reference":"https://attack.mitre.org/techniques/T1070/003/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n (\n ((process.args : (\"rm\", \"echo\") or\n (process.args : \"ln\" and process.args : \"-sf\" and process.args : \"/dev/null\") or\n (process.args : \"truncate\" and process.args : \"-s0\"))\n and process.args : (\".bash_history\", \"/root/.bash_history\", \"/home/*/.bash_history\",\"/Users/.bash_history\", \"/Users/*/.bash_history\",\n \".zsh_history\", \"/root/.zsh_history\", \"/home/*/.zsh_history\", \"/Users/.zsh_history\", \"/Users/*/.zsh_history\")) or\n (process.name : \"history\" and process.args : \"-c\") or\n (process.args : \"export\" and process.args : (\"HISTFILE=/dev/null\", \"HISTFILESIZE=0\")) or\n (process.args : \"unset\" and process.args : \"HISTFILE\") or\n (process.args : \"set\" and process.args : \"history\" and process.args : \"+o\")\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Tampering of Bash Command-Line History v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may attempt to clear or disable the Bash command-line history in an attempt to evade detection or forensic investigations.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.003","name":"Clear Command History","reference":"https://attack.mitre.org/techniques/T1070/003/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n (\n ((process.args : (\"rm\", \"echo\") or\n (process.args : \"ln\" and process.args : \"-sf\" and process.args : \"/dev/null\") or\n (process.args : \"truncate\" and process.args : \"-s0\"))\n and process.args : (\".bash_history\", \"/root/.bash_history\", \"/home/*/.bash_history\",\"/Users/.bash_history\", \"/Users/*/.bash_history\",\n \".zsh_history\", \"/root/.zsh_history\", \"/home/*/.zsh_history\", \"/Users/.zsh_history\", \"/Users/*/.zsh_history\")) or\n (process.name : \"history\" and process.args : \"-c\") or\n (process.args : \"export\" and process.args : (\"HISTFILE=/dev/null\", \"HISTFILESIZE=0\")) or\n (process.args : \"unset\" and process.args : \"HISTFILE\") or\n (process.args : \"set\" and process.args : \"history\" and process.args : \"+o\")\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"7bcbb3ac-e533-41ad-a612-d6c3bf666aba","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/7caa8e60-2df0-11ed-b814-f661ea17fbce.json b/fleet-packages/detection-rules-composite/kibana/security_rule/7caa8e60-2df0-11ed-b814-f661ea17fbce.json new file mode 100644 index 0000000000000..722afeaebf34b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/7caa8e60-2df0-11ed-b814-f661ea17fbce.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"7caa8e60-2df0-11ed-b814-f661ea17fbce","versions":[{"name":"Google Workspace Bitlocker Setting Disabled v2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Google Workspace administrators whom manage Windows devices and have Windows device management enabled may also enable BitLocker drive encryption to mitigate unauthorized data access on lost or stolen computers. Adversaries with valid account access may disable BitLocker to access sensitive data on an endpoint added to Google Workspace device management.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrators may temporarily disabled Bitlocker on managed devices for maintenance, testing or to resolve potential endpoint conflicts."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/9176657?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:\"CHANGE_APPLICATION_SETTING\" and event.category:(iam or configuration)\n and google_workspace.admin.new_value:\"Disabled\" and google_workspace.admin.setting.name:BitLocker*\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.setting.name","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Google Workspace Bitlocker Setting Disabled v2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Google Workspace administrators whom manage Windows devices and have Windows device management enabled may also enable BitLocker drive encryption to mitigate unauthorized data access on lost or stolen computers. Adversaries with valid account access may disable BitLocker to access sensitive data on an endpoint added to Google Workspace device management.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrators may temporarily disabled Bitlocker on managed devices for maintenance, testing or to resolve potential endpoint conflicts."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/9176657?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:\"CHANGE_APPLICATION_SETTING\" and event.category:(iam or configuration)\n and google_workspace.admin.new_value:\"Disabled\" and google_workspace.admin.setting.name:BitLocker*\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.setting.name","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Google Workspace Bitlocker Setting Disabled v2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Google Workspace administrators whom manage Windows devices and have Windows device management enabled may also enable BitLocker drive encryption to mitigate unauthorized data access on lost or stolen computers. Adversaries with valid account access may disable BitLocker to access sensitive data on an endpoint added to Google Workspace device management.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrators may temporarily disabled Bitlocker on managed devices for maintenance, testing or to resolve potential endpoint conflicts."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/9176657?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:\"CHANGE_APPLICATION_SETTING\" and event.category:(iam or configuration)\n and google_workspace.admin.new_value:\"Disabled\" and google_workspace.admin.setting.name:BitLocker*\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.setting.name","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"7caa8e60-2df0-11ed-b814-f661ea17fbce","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/7ceb2216-47dd-4e64-9433-cddc99727623.json b/fleet-packages/detection-rules-composite/kibana/security_rule/7ceb2216-47dd-4e64-9433-cddc99727623.json new file mode 100644 index 0000000000000..0d03a3b0493a9 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/7ceb2216-47dd-4e64-9433-cddc99727623.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"7ceb2216-47dd-4e64-9433-cddc99727623","versions":[{"name":"GCP Service Account Creation v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new service account is created in Google Cloud Platform (GCP). A service account is a special type of account used by an application or a virtual machine (VM) instance, not a person. Applications use service accounts to make authorized API calls, authorized as either the service account itself, or as G Suite or Cloud Identity users through domain-wide delegation. If service accounts are not tracked and managed properly, they can present a security risk. An adversary may create a new service account to use during their operations in order to avoid using a standard user account and attempt to evade detection.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Service accounts can be created by system administrators. Verify that the behavior was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/iam/docs/service-accounts"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.CreateServiceAccount and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Service Account Creation v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new service account is created in Google Cloud Platform (GCP). A service account is a special type of account used by an application or a virtual machine (VM) instance, not a person. Applications use service accounts to make authorized API calls, authorized as either the service account itself, or as G Suite or Cloud Identity users through domain-wide delegation. If service accounts are not tracked and managed properly, they can present a security risk. An adversary may create a new service account to use during their operations in order to avoid using a standard user account and attempt to evade detection.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Service accounts can be created by system administrators. Verify that the behavior was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/iam/docs/service-accounts"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.CreateServiceAccount and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Service Account Creation v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new service account is created in Google Cloud Platform (GCP). A service account is a special type of account used by an application or a virtual machine (VM) instance, not a person. Applications use service accounts to make authorized API calls, authorized as either the service account itself, or as G Suite or Cloud Identity users through domain-wide delegation. If service accounts are not tracked and managed properly, they can present a security risk. An adversary may create a new service account to use during their operations in order to avoid using a standard user account and attempt to evade detection.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Service accounts can be created by system administrators. Verify that the behavior was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/iam/docs/service-accounts"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.CreateServiceAccount and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"7ceb2216-47dd-4e64-9433-cddc99727623","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/7f370d54-c0eb-4270-ac5a-9a6020585dc6.json b/fleet-packages/detection-rules-composite/kibana/security_rule/7f370d54-c0eb-4270-ac5a-9a6020585dc6.json new file mode 100644 index 0000000000000..bf1d77fe38ca9 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/7f370d54-c0eb-4270-ac5a-9a6020585dc6.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"7f370d54-c0eb-4270-ac5a-9a6020585dc6","versions":[{"name":"Suspicious WMIC XSL Script Execution v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies WMIC allowlist bypass techniques by alerting on suspicious execution of scripts. When WMIC loads scripting libraries it may be indicative of an allowlist bypass.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1220","name":"XSL Script Processing","reference":"https://attack.mitre.org/techniques/T1220/"}]}],"language":"eql","query":"sequence by process.entity_id with maxspan = 2m\n[process where event.type == \"start\" and\n (process.name : \"WMIC.exe\" or process.pe.original_file_name : \"wmic.exe\") and\n process.args : (\"format*:*\", \"/format*:*\", \"*-format*:*\") and\n not process.command_line : \"* /format:table *\"]\n[any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : (\"jscript.dll\", \"vbscript.dll\") or file.name : (\"jscript.dll\", \"vbscript.dll\"))]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}]},{"name":"Suspicious WMIC XSL Script Execution v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies WMIC allowlist bypass techniques by alerting on suspicious execution of scripts. When WMIC loads scripting libraries it may be indicative of an allowlist bypass.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1220","name":"XSL Script Processing","reference":"https://attack.mitre.org/techniques/T1220/"}]}],"language":"eql","query":"sequence by process.entity_id with maxspan = 2m\n[process where event.type == \"start\" and\n (process.name : \"WMIC.exe\" or process.pe.original_file_name : \"wmic.exe\") and\n process.args : (\"format*:*\", \"/format*:*\", \"*-format*:*\") and\n not process.command_line : \"* /format:table *\"]\n[any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : (\"jscript.dll\", \"vbscript.dll\") or file.name : (\"jscript.dll\", \"vbscript.dll\"))]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}]},{"name":"Suspicious WMIC XSL Script Execution v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies WMIC allowlist bypass techniques by alerting on suspicious execution of scripts. When WMIC loads scripting libraries it may be indicative of an allowlist bypass.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1220","name":"XSL Script Processing","reference":"https://attack.mitre.org/techniques/T1220/"}]}],"language":"eql","query":"sequence by process.entity_id with maxspan = 2m\n[process where event.type == \"start\" and\n (process.name : \"WMIC.exe\" or process.pe.original_file_name : \"wmic.exe\") and\n process.args : (\"format*:*\", \"/format*:*\", \"*-format*:*\") and\n not process.command_line : \"* /format:table *\"]\n[any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : (\"jscript.dll\", \"vbscript.dll\") or file.name : (\"jscript.dll\", \"vbscript.dll\"))]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}]}]},"id":"7f370d54-c0eb-4270-ac5a-9a6020585dc6","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/809b70d3-e2c3-455e-af1b-2626a5a1a276.json b/fleet-packages/detection-rules-composite/kibana/security_rule/809b70d3-e2c3-455e-af1b-2626a5a1a276.json new file mode 100644 index 0000000000000..0a0268ebe61a7 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/809b70d3-e2c3-455e-af1b-2626a5a1a276.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"809b70d3-e2c3-455e-af1b-2626a5a1a276","versions":[{"name":"Unusual City For an AWS Command v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected AWS command activity that, while not inherently suspicious or abnormal, is sourcing from a geolocation (city) that is unusual for the command. This can be the result of compromised credentials or keys being used by a threat actor in a different geography than the authorized user(s).","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual City For an AWS Command\n\nCloudTrail logging provides visibility on actions taken within an AWS environment. By monitoring these events and\nunderstanding what is considered normal behavior within an organization, you can spot suspicious or malicious activity\nwhen deviations occur.\n\nThis rule uses a machine learning job to detect an AWS API command that while not inherently suspicious or abnormal, is\nsourcing from a geolocation (city) that is unusual for the command. This can be the result of compromised credentials or\nkeys used by a threat actor in a different geography than the authorized user(s).\n\nDetection alerts from this rule indicate an AWS API command or method call that is rare and unusual for the geolocation\nof the source IP address.\n\n#### Possible investigation steps\n\n- Identify the user account involved and the action performed. Verify whether it should perform this kind of action.\n - Examine the user identity in the `aws.cloudtrail.user_identity.arn` field and the access key ID in the\n `aws.cloudtrail.user_identity.access_key_id` field, which can help identify the precise user context.\n - The user agent details in the `user_agent.original` field may also indicate what kind of a client made the request.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, or network administrator activity.\n- Examine the request parameters. These might indicate the source of the program or the nature of its tasks.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Contact the account owner and confirm whether they are aware of this activity if suspicious.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- False positives can occur if activity is coming from new employees based in a city with no previous history in AWS.\n- Examine the history of the command. If the command only manifested recently, it might be part of a new automation\nmodule or script. If it has a consistent cadence (for example, it appears in small numbers on a weekly or monthly cadence),\nit might be part of a housekeeping or maintenance process. You can find the command in the `event.action field` field.\n\n### Related Rules\n\n- Unusual Country For an AWS Command - dca28dee-c999-400f-b640-50a081cc0fd1\n- Unusual AWS Command for a User - ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1\n- Rare AWS Error Code - 19de8096-e2b0-4bd8-80c9-34a820813fff\n- Spike in AWS Error Messages - 78d3d8d9-b476-451d-a9e0-7a5addd70670\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"false_positives":["New or unusual command and user geolocation activity can be due to manual troubleshooting or reconfiguration; changes in cloud automation scripts or workflows; adoption of new services; expansion into new regions; increased adoption of work from home policies; or users who travel frequently."],"from":"now-2h","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Cloud","AWS","ML","Investigation Guide"],"anomaly_threshold":50,"machine_learning_job_id":"rare_method_for_a_city","type":"machine_learning","related_integrations":[],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Unusual City For an AWS Command v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected AWS command activity that, while not inherently suspicious or abnormal, is sourcing from a geolocation (city) that is unusual for the command. This can be the result of compromised credentials or keys being used by a threat actor in a different geography than the authorized user(s).","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual City For an AWS Command\n\nCloudTrail logging provides visibility on actions taken within an AWS environment. By monitoring these events and\nunderstanding what is considered normal behavior within an organization, you can spot suspicious or malicious activity\nwhen deviations occur.\n\nThis rule uses a machine learning job to detect an AWS API command that while not inherently suspicious or abnormal, is\nsourcing from a geolocation (city) that is unusual for the command. This can be the result of compromised credentials or\nkeys used by a threat actor in a different geography than the authorized user(s).\n\nDetection alerts from this rule indicate an AWS API command or method call that is rare and unusual for the geolocation\nof the source IP address.\n\n#### Possible investigation steps\n\n- Identify the user account involved and the action performed. Verify whether it should perform this kind of action.\n - Examine the user identity in the `aws.cloudtrail.user_identity.arn` field and the access key ID in the\n `aws.cloudtrail.user_identity.access_key_id` field, which can help identify the precise user context.\n - The user agent details in the `user_agent.original` field may also indicate what kind of a client made the request.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, or network administrator activity.\n- Examine the request parameters. These might indicate the source of the program or the nature of its tasks.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Contact the account owner and confirm whether they are aware of this activity if suspicious.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- False positives can occur if activity is coming from new employees based in a city with no previous history in AWS.\n- Examine the history of the command. If the command only manifested recently, it might be part of a new automation\nmodule or script. If it has a consistent cadence (for example, it appears in small numbers on a weekly or monthly cadence),\nit might be part of a housekeeping or maintenance process. You can find the command in the `event.action field` field.\n\n### Related Rules\n\n- Unusual Country For an AWS Command - dca28dee-c999-400f-b640-50a081cc0fd1\n- Unusual AWS Command for a User - ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1\n- Rare AWS Error Code - 19de8096-e2b0-4bd8-80c9-34a820813fff\n- Spike in AWS Error Messages - 78d3d8d9-b476-451d-a9e0-7a5addd70670\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"false_positives":["New or unusual command and user geolocation activity can be due to manual troubleshooting or reconfiguration; changes in cloud automation scripts or workflows; adoption of new services; expansion into new regions; increased adoption of work from home policies; or users who travel frequently."],"from":"now-2h","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Cloud","AWS","ML","Investigation Guide"],"anomaly_threshold":50,"machine_learning_job_id":"rare_method_for_a_city","type":"machine_learning","related_integrations":[],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Unusual City For an AWS Command v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected AWS command activity that, while not inherently suspicious or abnormal, is sourcing from a geolocation (city) that is unusual for the command. This can be the result of compromised credentials or keys being used by a threat actor in a different geography than the authorized user(s).","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual City For an AWS Command\n\nCloudTrail logging provides visibility on actions taken within an AWS environment. By monitoring these events and\nunderstanding what is considered normal behavior within an organization, you can spot suspicious or malicious activity\nwhen deviations occur.\n\nThis rule uses a machine learning job to detect an AWS API command that while not inherently suspicious or abnormal, is\nsourcing from a geolocation (city) that is unusual for the command. This can be the result of compromised credentials or\nkeys used by a threat actor in a different geography than the authorized user(s).\n\nDetection alerts from this rule indicate an AWS API command or method call that is rare and unusual for the geolocation\nof the source IP address.\n\n#### Possible investigation steps\n\n- Identify the user account involved and the action performed. Verify whether it should perform this kind of action.\n - Examine the user identity in the `aws.cloudtrail.user_identity.arn` field and the access key ID in the\n `aws.cloudtrail.user_identity.access_key_id` field, which can help identify the precise user context.\n - The user agent details in the `user_agent.original` field may also indicate what kind of a client made the request.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, or network administrator activity.\n- Examine the request parameters. These might indicate the source of the program or the nature of its tasks.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Contact the account owner and confirm whether they are aware of this activity if suspicious.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- False positives can occur if activity is coming from new employees based in a city with no previous history in AWS.\n- Examine the history of the command. If the command only manifested recently, it might be part of a new automation\nmodule or script. If it has a consistent cadence (for example, it appears in small numbers on a weekly or monthly cadence),\nit might be part of a housekeeping or maintenance process. You can find the command in the `event.action field` field.\n\n### Related Rules\n\n- Unusual Country For an AWS Command - dca28dee-c999-400f-b640-50a081cc0fd1\n- Unusual AWS Command for a User - ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1\n- Rare AWS Error Code - 19de8096-e2b0-4bd8-80c9-34a820813fff\n- Spike in AWS Error Messages - 78d3d8d9-b476-451d-a9e0-7a5addd70670\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"false_positives":["New or unusual command and user geolocation activity can be due to manual troubleshooting or reconfiguration; changes in cloud automation scripts or workflows; adoption of new services; expansion into new regions; increased adoption of work from home policies; or users who travel frequently."],"from":"now-2h","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Cloud","AWS","ML","Investigation Guide"],"anomaly_threshold":50,"machine_learning_job_id":"rare_method_for_a_city","type":"machine_learning","related_integrations":[],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"809b70d3-e2c3-455e-af1b-2626a5a1a276","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/80c52164-c82a-402c-9964-852533d58be1.json b/fleet-packages/detection-rules-composite/kibana/security_rule/80c52164-c82a-402c-9964-852533d58be1.json new file mode 100644 index 0000000000000..b12cdb64a3b23 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/80c52164-c82a-402c-9964-852533d58be1.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"80c52164-c82a-402c-9964-852533d58be1","versions":[{"name":"Process Injection - Detected - Elastic Endgame v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected Process Injection. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:kernel_shellcode_event or endgame.event_subtype_full:kernel_shellcode_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Process Injection - Detected - Elastic Endgame v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected Process Injection. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:kernel_shellcode_event or endgame.event_subtype_full:kernel_shellcode_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Process Injection - Detected - Elastic Endgame v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected Process Injection. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:kernel_shellcode_event or endgame.event_subtype_full:kernel_shellcode_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]}]},"id":"80c52164-c82a-402c-9964-852533d58be1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/818e23e6-2094-4f0e-8c01-22d30f3506c6.json b/fleet-packages/detection-rules-composite/kibana/security_rule/818e23e6-2094-4f0e-8c01-22d30f3506c6.json new file mode 100644 index 0000000000000..4a2c88876859d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/818e23e6-2094-4f0e-8c01-22d30f3506c6.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"818e23e6-2094-4f0e-8c01-22d30f3506c6","versions":[{"name":"PowerShell Script Block Logging Disabled v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to disable PowerShell Script Block Logging via registry modification. Attackers may disable this logging to conceal their activities in the host and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Script Block Logging Disabled\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks, making\nit available in various environments and creating an attractive way for attackers to execute code.\n\nPowerShell Script Block Logging is a feature of PowerShell that records the content of all script blocks that it\nprocesses, giving defenders visibility of PowerShell scripts and sequences of executed commands.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check whether it makes sense for the user to use PowerShell to complete tasks.\n- Investigate if PowerShell scripts were run after logging was disabled.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- PowerShell Suspicious Discovery Related Windows API Functions - 61ac3638-40a3-44b2-855a-985636ca985e\n- PowerShell Keylogging Script - bd2c86a0-8b61-4457-ab38-96943984e889\n- PowerShell Suspicious Script with Audio Capture Capabilities - 2f2f4939-0b34-40c2-a0a3-844eb7889f43\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n- Suspicious .NET Reflection via PowerShell - e26f042e-c590-4e82-8e05-41e81bd822ad\n- PowerShell Suspicious Payload Encoded and Compressed - 81fe9dc6-a2d7-4192-a2d8-eed98afc766a\n- PowerShell Suspicious Script with Screenshot Capabilities - 959a7353-1129-4aa7-9084-30746b256a70\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://admx.help/?Category=Windows_10_2016&Policy=Microsoft.Policies.PowerShell::EnableScriptBlockLogging"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.002","name":"Disable Windows Event Logging","reference":"https://attack.mitre.org/techniques/T1562/002/"}]}]}],"language":"eql","query":"registry where event.type == \"change\" and\n registry.path : (\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\PowerShell\\\\ScriptBlockLogging\\\\EnableScriptBlockLogging\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\PowerShell\\\\ScriptBlockLogging\\\\EnableScriptBlockLogging\"\n ) and registry.data.strings : (\"0\", \"0x00000000\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"PowerShell Script Block Logging Disabled v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to disable PowerShell Script Block Logging via registry modification. Attackers may disable this logging to conceal their activities in the host and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Script Block Logging Disabled\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks, making\nit available in various environments and creating an attractive way for attackers to execute code.\n\nPowerShell Script Block Logging is a feature of PowerShell that records the content of all script blocks that it\nprocesses, giving defenders visibility of PowerShell scripts and sequences of executed commands.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check whether it makes sense for the user to use PowerShell to complete tasks.\n- Investigate if PowerShell scripts were run after logging was disabled.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- PowerShell Suspicious Discovery Related Windows API Functions - 61ac3638-40a3-44b2-855a-985636ca985e\n- PowerShell Keylogging Script - bd2c86a0-8b61-4457-ab38-96943984e889\n- PowerShell Suspicious Script with Audio Capture Capabilities - 2f2f4939-0b34-40c2-a0a3-844eb7889f43\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n- Suspicious .NET Reflection via PowerShell - e26f042e-c590-4e82-8e05-41e81bd822ad\n- PowerShell Suspicious Payload Encoded and Compressed - 81fe9dc6-a2d7-4192-a2d8-eed98afc766a\n- PowerShell Suspicious Script with Screenshot Capabilities - 959a7353-1129-4aa7-9084-30746b256a70\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://admx.help/?Category=Windows_10_2016&Policy=Microsoft.Policies.PowerShell::EnableScriptBlockLogging"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.002","name":"Disable Windows Event Logging","reference":"https://attack.mitre.org/techniques/T1562/002/"}]}]}],"language":"eql","query":"registry where event.type == \"change\" and\n registry.path : (\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\PowerShell\\\\ScriptBlockLogging\\\\EnableScriptBlockLogging\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\PowerShell\\\\ScriptBlockLogging\\\\EnableScriptBlockLogging\"\n ) and registry.data.strings : (\"0\", \"0x00000000\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"PowerShell Script Block Logging Disabled v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to disable PowerShell Script Block Logging via registry modification. Attackers may disable this logging to conceal their activities in the host and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Script Block Logging Disabled\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks, making\nit available in various environments and creating an attractive way for attackers to execute code.\n\nPowerShell Script Block Logging is a feature of PowerShell that records the content of all script blocks that it\nprocesses, giving defenders visibility of PowerShell scripts and sequences of executed commands.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check whether it makes sense for the user to use PowerShell to complete tasks.\n- Investigate if PowerShell scripts were run after logging was disabled.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- PowerShell Suspicious Discovery Related Windows API Functions - 61ac3638-40a3-44b2-855a-985636ca985e\n- PowerShell Keylogging Script - bd2c86a0-8b61-4457-ab38-96943984e889\n- PowerShell Suspicious Script with Audio Capture Capabilities - 2f2f4939-0b34-40c2-a0a3-844eb7889f43\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n- Suspicious .NET Reflection via PowerShell - e26f042e-c590-4e82-8e05-41e81bd822ad\n- PowerShell Suspicious Payload Encoded and Compressed - 81fe9dc6-a2d7-4192-a2d8-eed98afc766a\n- PowerShell Suspicious Script with Screenshot Capabilities - 959a7353-1129-4aa7-9084-30746b256a70\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://admx.help/?Category=Windows_10_2016&Policy=Microsoft.Policies.PowerShell::EnableScriptBlockLogging"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.002","name":"Disable Windows Event Logging","reference":"https://attack.mitre.org/techniques/T1562/002/"}]}]}],"language":"eql","query":"registry where event.type == \"change\" and\n registry.path : (\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\PowerShell\\\\ScriptBlockLogging\\\\EnableScriptBlockLogging\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\PowerShell\\\\ScriptBlockLogging\\\\EnableScriptBlockLogging\"\n ) and registry.data.strings : (\"0\", \"0x00000000\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"818e23e6-2094-4f0e-8c01-22d30f3506c6","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/81fe9dc6-a2d7-4192-a2d8-eed98afc766a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/81fe9dc6-a2d7-4192-a2d8-eed98afc766a.json new file mode 100644 index 0000000000000..5bb35047c9cbd --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/81fe9dc6-a2d7-4192-a2d8-eed98afc766a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"81fe9dc6-a2d7-4192-a2d8-eed98afc766a","versions":[{"name":"PowerShell Suspicious Payload Encoded and Compressed v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of .NET functionality for decompression and base64 decoding combined in PowerShell scripts, which malware and security tools heavily use to deobfuscate payloads and load them directly in memory to bypass defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Suspicious Payload Encoded and Compressed\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can embed compressed and encoded payloads in scripts to load directly into the memory without touching the\ndisk. This strategy can circumvent string and file-based security protections.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the script using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately outside engineering or IT business units. As long as the analyst did\nnot identify malware or suspicious activity related to the user or host, this alert can be dismissed.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n- Suspicious .NET Reflection via PowerShell - e26f042e-c590-4e82-8e05-41e81bd822ad\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate PowerShell Scripts which makes use of compression and encoding."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1140","name":"Deobfuscate/Decode Files or Information","reference":"https://attack.mitre.org/techniques/T1140/"},{"id":"T1027","name":"Obfuscated Files or Information","reference":"https://attack.mitre.org/techniques/T1027/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n (\n \"System.IO.Compression.DeflateStream\" or\n \"System.IO.Compression.GzipStream\" or\n \"IO.Compression.DeflateStream\" or\n \"IO.Compression.GzipStream\"\n ) and\n FromBase64String\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},{"name":"PowerShell Suspicious Payload Encoded and Compressed v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of .NET functionality for decompression and base64 decoding combined in PowerShell scripts, which malware and security tools heavily use to deobfuscate payloads and load them directly in memory to bypass defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Suspicious Payload Encoded and Compressed\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can embed compressed and encoded payloads in scripts to load directly into the memory without touching the\ndisk. This strategy can circumvent string and file-based security protections.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the script using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately outside engineering or IT business units. As long as the analyst did\nnot identify malware or suspicious activity related to the user or host, this alert can be dismissed.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n- Suspicious .NET Reflection via PowerShell - e26f042e-c590-4e82-8e05-41e81bd822ad\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate PowerShell Scripts which makes use of compression and encoding."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1140","name":"Deobfuscate/Decode Files or Information","reference":"https://attack.mitre.org/techniques/T1140/"},{"id":"T1027","name":"Obfuscated Files or Information","reference":"https://attack.mitre.org/techniques/T1027/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n (\n \"System.IO.Compression.DeflateStream\" or\n \"System.IO.Compression.GzipStream\" or\n \"IO.Compression.DeflateStream\" or\n \"IO.Compression.GzipStream\"\n ) and\n FromBase64String\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},{"name":"PowerShell Suspicious Payload Encoded and Compressed v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of .NET functionality for decompression and base64 decoding combined in PowerShell scripts, which malware and security tools heavily use to deobfuscate payloads and load them directly in memory to bypass defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Suspicious Payload Encoded and Compressed\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can embed compressed and encoded payloads in scripts to load directly into the memory without touching the\ndisk. This strategy can circumvent string and file-based security protections.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the script using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately outside engineering or IT business units. As long as the analyst did\nnot identify malware or suspicious activity related to the user or host, this alert can be dismissed.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n- Suspicious .NET Reflection via PowerShell - e26f042e-c590-4e82-8e05-41e81bd822ad\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate PowerShell Scripts which makes use of compression and encoding."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1140","name":"Deobfuscate/Decode Files or Information","reference":"https://attack.mitre.org/techniques/T1140/"},{"id":"T1027","name":"Obfuscated Files or Information","reference":"https://attack.mitre.org/techniques/T1027/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n (\n \"System.IO.Compression.DeflateStream\" or\n \"System.IO.Compression.GzipStream\" or\n \"IO.Compression.DeflateStream\" or\n \"IO.Compression.GzipStream\"\n ) and\n FromBase64String\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"}]},"id":"81fe9dc6-a2d7-4192-a2d8-eed98afc766a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/81ff45f8-f8c2-4e28-992e-5a0e8d98e0fe.json b/fleet-packages/detection-rules-composite/kibana/security_rule/81ff45f8-f8c2-4e28-992e-5a0e8d98e0fe.json new file mode 100644 index 0000000000000..50e7fd7ededa8 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/81ff45f8-f8c2-4e28-992e-5a0e8d98e0fe.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"81ff45f8-f8c2-4e28-992e-5a0e8d98e0fe","versions":[{"name":"Temporarily Scheduled Task Creation v2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Indicates the creation and deletion of a scheduled task within a short time interval. Adversaries can use these to proxy malicious execution via the schedule service and perform clean up.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4698"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"sequence by host.id, winlog.event_data.TaskName with maxspan=5m\n [iam where event.action == \"scheduled-task-created\" and not user.name : \"*$\"]\n [iam where event.action == \"scheduled-task-deleted\" and not user.name : \"*$\"]\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TaskName","type":"unknown"}]},{"name":"Temporarily Scheduled Task Creation v2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Indicates the creation and deletion of a scheduled task within a short time interval. Adversaries can use these to proxy malicious execution via the schedule service and perform clean up.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4698"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"sequence by host.id, winlog.event_data.TaskName with maxspan=5m\n [iam where event.action == \"scheduled-task-created\" and not user.name : \"*$\"]\n [iam where event.action == \"scheduled-task-deleted\" and not user.name : \"*$\"]\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TaskName","type":"unknown"}]},{"name":"Temporarily Scheduled Task Creation v2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Indicates the creation and deletion of a scheduled task within a short time interval. Adversaries can use these to proxy malicious execution via the schedule service and perform clean up.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4698"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"sequence by host.id, winlog.event_data.TaskName with maxspan=5m\n [iam where event.action == \"scheduled-task-created\" and not user.name : \"*$\"]\n [iam where event.action == \"scheduled-task-deleted\" and not user.name : \"*$\"]\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TaskName","type":"unknown"}]}]},"id":"81ff45f8-f8c2-4e28-992e-5a0e8d98e0fe","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/827f8d8f-4117-4ae4-b551-f56d54b9da6b.json b/fleet-packages/detection-rules-composite/kibana/security_rule/827f8d8f-4117-4ae4-b551-f56d54b9da6b.json new file mode 100644 index 0000000000000..a372a369e5752 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/827f8d8f-4117-4ae4-b551-f56d54b9da6b.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"827f8d8f-4117-4ae4-b551-f56d54b9da6b","versions":[{"name":"Apple Scripting Execution with Administrator Privileges v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution of the Apple script interpreter (osascript) without a password prompt and with administrator privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://discussions.apple.com/thread/2266150"],"tags":["Elastic","Host","macOS","Threat Detection","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.name : \"osascript\" and\n process.command_line : \"osascript*with administrator privileges\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Apple Scripting Execution with Administrator Privileges v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution of the Apple script interpreter (osascript) without a password prompt and with administrator privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://discussions.apple.com/thread/2266150"],"tags":["Elastic","Host","macOS","Threat Detection","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.name : \"osascript\" and\n process.command_line : \"osascript*with administrator privileges\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Apple Scripting Execution with Administrator Privileges v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution of the Apple script interpreter (osascript) without a password prompt and with administrator privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://discussions.apple.com/thread/2266150"],"tags":["Elastic","Host","macOS","Threat Detection","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.name : \"osascript\" and\n process.command_line : \"osascript*with administrator privileges\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"827f8d8f-4117-4ae4-b551-f56d54b9da6b","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/83a1931d-8136-46fc-b7b9-2db4f639e014.json b/fleet-packages/detection-rules-composite/kibana/security_rule/83a1931d-8136-46fc-b7b9-2db4f639e014.json new file mode 100644 index 0000000000000..ec9014e4ddb0c --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/83a1931d-8136-46fc-b7b9-2db4f639e014.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"83a1931d-8136-46fc-b7b9-2db4f639e014","versions":[{"name":"Azure Kubernetes Pods Deleted v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of Azure Kubernetes Pods. Adversaries may delete a Kubernetes pod to disrupt the normal behavior of the environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Pods may be deleted by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Pods deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkubernetes"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.KUBERNETES/CONNECTEDCLUSTERS/PODS/DELETE\" and\nevent.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Kubernetes Pods Deleted v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of Azure Kubernetes Pods. Adversaries may delete a Kubernetes pod to disrupt the normal behavior of the environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Pods may be deleted by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Pods deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkubernetes"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.KUBERNETES/CONNECTEDCLUSTERS/PODS/DELETE\" and\nevent.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Kubernetes Pods Deleted v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of Azure Kubernetes Pods. Adversaries may delete a Kubernetes pod to disrupt the normal behavior of the environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Pods may be deleted by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Pods deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkubernetes"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.KUBERNETES/CONNECTEDCLUSTERS/PODS/DELETE\" and\nevent.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"83a1931d-8136-46fc-b7b9-2db4f639e014","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/84da2554-e12a-11ec-b896-f661ea17fbcd.json b/fleet-packages/detection-rules-composite/kibana/security_rule/84da2554-e12a-11ec-b896-f661ea17fbcd.json new file mode 100644 index 0000000000000..b5be855036291 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/84da2554-e12a-11ec-b896-f661ea17fbcd.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"84da2554-e12a-11ec-b896-f661ea17fbcd","versions":[{"name":"Enumerating Domain Trusts via NLTEST.EXE v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of nltest.exe for domain trust discovery purposes. Adversaries may use this command-line utility to enumerate domain trusts and gain insight into trust relationships, as well as the state of Domain Controller (DC) replication in a Microsoft Windows NT Domain.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Domain administrators may use this command-line utility for legitimate information gathering purposes, but it is not common for environments with Windows Server 2012 and newer."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/cc731935(v=ws.11)","https://redcanary.com/blog/how-one-hospital-thwarted-a-ryuk-ransomware-outbreak/"],"tags":["Elastic","Host","Windows","Threat Detection","Discovery","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1482","name":"Domain Trust Discovery","reference":"https://attack.mitre.org/techniques/T1482/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"nltest.exe\" and process.args : (\n \"/DCLIST:*\", \"/DCNAME:*\", \"/DSGET*\",\n \"/LSAQUERYFTI:*\", \"/PARENTDOMAIN\",\n \"/DOMAIN_TRUSTS\", \"/BDC_QUERY:*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Enumerating Domain Trusts via NLTEST.EXE v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of nltest.exe for domain trust discovery purposes. Adversaries may use this command-line utility to enumerate domain trusts and gain insight into trust relationships, as well as the state of Domain Controller (DC) replication in a Microsoft Windows NT Domain.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Domain administrators may use this command-line utility for legitimate information gathering purposes, but it is not common for environments with Windows Server 2012 and newer."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/cc731935(v=ws.11)","https://redcanary.com/blog/how-one-hospital-thwarted-a-ryuk-ransomware-outbreak/"],"tags":["Elastic","Host","Windows","Threat Detection","Discovery","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1482","name":"Domain Trust Discovery","reference":"https://attack.mitre.org/techniques/T1482/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"nltest.exe\" and process.args : (\n \"/DCLIST:*\", \"/DCNAME:*\", \"/DSGET*\",\n \"/LSAQUERYFTI:*\", \"/PARENTDOMAIN\",\n \"/DOMAIN_TRUSTS\", \"/BDC_QUERY:*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Enumerating Domain Trusts via NLTEST.EXE v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of nltest.exe for domain trust discovery purposes. Adversaries may use this command-line utility to enumerate domain trusts and gain insight into trust relationships, as well as the state of Domain Controller (DC) replication in a Microsoft Windows NT Domain.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Domain administrators may use this command-line utility for legitimate information gathering purposes, but it is not common for environments with Windows Server 2012 and newer."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/cc731935(v=ws.11)","https://redcanary.com/blog/how-one-hospital-thwarted-a-ryuk-ransomware-outbreak/"],"tags":["Elastic","Host","Windows","Threat Detection","Discovery","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1482","name":"Domain Trust Discovery","reference":"https://attack.mitre.org/techniques/T1482/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"nltest.exe\" and process.args : (\n \"/DCLIST:*\", \"/DCNAME:*\", \"/DSGET*\",\n \"/LSAQUERYFTI:*\", \"/PARENTDOMAIN\",\n \"/DOMAIN_TRUSTS\", \"/BDC_QUERY:*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"84da2554-e12a-11ec-b896-f661ea17fbcd","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/850d901a-2a3c-46c6-8b22-55398a01aad8.json b/fleet-packages/detection-rules-composite/kibana/security_rule/850d901a-2a3c-46c6-8b22-55398a01aad8.json new file mode 100644 index 0000000000000..064d521ad6071 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/850d901a-2a3c-46c6-8b22-55398a01aad8.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"850d901a-2a3c-46c6-8b22-55398a01aad8","versions":[{"name":"Potential Remote Credential Access via Registry v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote access to the registry to potentially dump credential data from the Security Account Manager (SAM) registry hive in preparation for credential access and privileges elevation.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Remote Credential Access via Registry\n\nDumping registry hives is a common way to access credential information. Some hives store credential material,\nsuch as the SAM hive, which stores locally cached credentials (SAM secrets), and the SECURITY hive, which stores domain\ncached credentials (LSA secrets). Dumping these hives in combination with the SYSTEM hive enables the attacker to\ndecrypt these secrets.\n\nAttackers can use tools like secretsdump.py or CrackMapExec to dump the registry hives remotely, and use dumped\ncredentials to access other systems in the domain.\n\n#### Possible investigation steps\n\n- Identify the specifics of the involved assets, such as their role, criticality, and associated users.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Determine the privileges of the compromised accounts.\n- Investigate other alerts associated with the user/source host during the past 48 hours.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (e.g., 4624) to the target\nhost.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently malicious\nmust be monitored by the security team.\n\n### Related rules\n\n- Credential Acquisition via Registry Hive Dumping - a7e7bfa3-088e-4f13-b29e-3986e0e756b8\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine if other hosts were compromised.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Reimage the host operating system or restore the compromised files to clean versions.\n- Ensure that the machine has the latest security updates and is not running unsupported Windows versions.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-9m","references":["https://github.com/SecureAuthCorp/impacket/blob/master/examples/secretsdump.py","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.002","name":"Security Account Manager","reference":"https://attack.mitre.org/techniques/T1003/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by host.id, user.id with maxspan=1m\n [authentication where\n event.outcome == \"success\" and event.action == \"logged-in\" and\n winlog.logon.type == \"Network\" and not user.name == \"ANONYMOUS LOGON\" and\n not user.domain == \"NT AUTHORITY\" and source.ip != \"127.0.0.1\" and source.ip !=\"::1\"]\n [file where event.action == \"creation\" and process.name : \"svchost.exe\" and\n file.Ext.header_bytes : \"72656766*\" and user.id : (\"S-1-5-21-*\", \"S-1-12-1-*\") and file.size >= 30000 and\n not file.path :\n (\"?:\\\\Windows\\\\system32\\\\HKEY_LOCAL_MACHINE_SOFTWARE_Microsoft_*.registry\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Microsoft\\\\Windows\\\\UsrClass.dat.LOG?\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Microsoft\\\\Windows\\\\UsrClass.dat\",\n \"?:\\\\Users\\\\*\\\\ntuser.dat.LOG?\",\n \"?:\\\\Users\\\\*\\\\NTUSER.DAT\")]\n","type":"eql","index":["winlogbeat-*","logs-system.*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":false,"name":"file.Ext.header_bytes","type":"unknown"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"file.size","type":"long"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}],"setup":"This rule uses Elastic Endpoint file creation and system integration events for correlation. Both data should be\ncollected from the host for this detection to work.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Remote Credential Access via Registry v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote access to the registry to potentially dump credential data from the Security Account Manager (SAM) registry hive in preparation for credential access and privileges elevation.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Remote Credential Access via Registry\n\nDumping registry hives is a common way to access credential information. Some hives store credential material,\nsuch as the SAM hive, which stores locally cached credentials (SAM secrets), and the SECURITY hive, which stores domain\ncached credentials (LSA secrets). Dumping these hives in combination with the SYSTEM hive enables the attacker to\ndecrypt these secrets.\n\nAttackers can use tools like secretsdump.py or CrackMapExec to dump the registry hives remotely, and use dumped\ncredentials to access other systems in the domain.\n\n#### Possible investigation steps\n\n- Identify the specifics of the involved assets, such as their role, criticality, and associated users.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Determine the privileges of the compromised accounts.\n- Investigate other alerts associated with the user/source host during the past 48 hours.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (e.g., 4624) to the target\nhost.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently malicious\nmust be monitored by the security team.\n\n### Related rules\n\n- Credential Acquisition via Registry Hive Dumping - a7e7bfa3-088e-4f13-b29e-3986e0e756b8\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine if other hosts were compromised.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Reimage the host operating system or restore the compromised files to clean versions.\n- Ensure that the machine has the latest security updates and is not running unsupported Windows versions.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-9m","references":["https://github.com/SecureAuthCorp/impacket/blob/master/examples/secretsdump.py","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.002","name":"Security Account Manager","reference":"https://attack.mitre.org/techniques/T1003/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by host.id, user.id with maxspan=1m\n [authentication where\n event.outcome == \"success\" and event.action == \"logged-in\" and\n winlog.logon.type == \"Network\" and not user.name == \"ANONYMOUS LOGON\" and\n not user.domain == \"NT AUTHORITY\" and source.ip != \"127.0.0.1\" and source.ip !=\"::1\"]\n [file where event.action == \"creation\" and process.name : \"svchost.exe\" and\n file.Ext.header_bytes : \"72656766*\" and user.id : (\"S-1-5-21-*\", \"S-1-12-1-*\") and file.size >= 30000 and\n not file.path :\n (\"?:\\\\Windows\\\\system32\\\\HKEY_LOCAL_MACHINE_SOFTWARE_Microsoft_*.registry\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Microsoft\\\\Windows\\\\UsrClass.dat.LOG?\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Microsoft\\\\Windows\\\\UsrClass.dat\",\n \"?:\\\\Users\\\\*\\\\ntuser.dat.LOG?\",\n \"?:\\\\Users\\\\*\\\\NTUSER.DAT\")]\n","type":"eql","index":["winlogbeat-*","logs-system.*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":false,"name":"file.Ext.header_bytes","type":"unknown"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"file.size","type":"long"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}],"setup":"This rule uses Elastic Endpoint file creation and system integration events for correlation. Both data should be\ncollected from the host for this detection to work.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Remote Credential Access via Registry v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote access to the registry to potentially dump credential data from the Security Account Manager (SAM) registry hive in preparation for credential access and privileges elevation.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Remote Credential Access via Registry\n\nDumping registry hives is a common way to access credential information. Some hives store credential material,\nsuch as the SAM hive, which stores locally cached credentials (SAM secrets), and the SECURITY hive, which stores domain\ncached credentials (LSA secrets). Dumping these hives in combination with the SYSTEM hive enables the attacker to\ndecrypt these secrets.\n\nAttackers can use tools like secretsdump.py or CrackMapExec to dump the registry hives remotely, and use dumped\ncredentials to access other systems in the domain.\n\n#### Possible investigation steps\n\n- Identify the specifics of the involved assets, such as their role, criticality, and associated users.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Determine the privileges of the compromised accounts.\n- Investigate other alerts associated with the user/source host during the past 48 hours.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (e.g., 4624) to the target\nhost.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently malicious\nmust be monitored by the security team.\n\n### Related rules\n\n- Credential Acquisition via Registry Hive Dumping - a7e7bfa3-088e-4f13-b29e-3986e0e756b8\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine if other hosts were compromised.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Reimage the host operating system or restore the compromised files to clean versions.\n- Ensure that the machine has the latest security updates and is not running unsupported Windows versions.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-9m","references":["https://github.com/SecureAuthCorp/impacket/blob/master/examples/secretsdump.py","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.002","name":"Security Account Manager","reference":"https://attack.mitre.org/techniques/T1003/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by host.id, user.id with maxspan=1m\n [authentication where\n event.outcome == \"success\" and event.action == \"logged-in\" and\n winlog.logon.type == \"Network\" and not user.name == \"ANONYMOUS LOGON\" and\n not user.domain == \"NT AUTHORITY\" and source.ip != \"127.0.0.1\" and source.ip !=\"::1\"]\n [file where event.action == \"creation\" and process.name : \"svchost.exe\" and\n file.Ext.header_bytes : \"72656766*\" and user.id : (\"S-1-5-21-*\", \"S-1-12-1-*\") and file.size >= 30000 and\n not file.path :\n (\"?:\\\\Windows\\\\system32\\\\HKEY_LOCAL_MACHINE_SOFTWARE_Microsoft_*.registry\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Microsoft\\\\Windows\\\\UsrClass.dat.LOG?\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Microsoft\\\\Windows\\\\UsrClass.dat\",\n \"?:\\\\Users\\\\*\\\\ntuser.dat.LOG?\",\n \"?:\\\\Users\\\\*\\\\NTUSER.DAT\")]\n","type":"eql","index":["winlogbeat-*","logs-system.*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":false,"name":"file.Ext.header_bytes","type":"unknown"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"file.size","type":"long"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}],"setup":"This rule uses Elastic Endpoint file creation and system integration events for correlation. Both data should be\ncollected from the host for this detection to work.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"850d901a-2a3c-46c6-8b22-55398a01aad8","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/852c1f19-68e8-43a6-9dce-340771fe1be3.json b/fleet-packages/detection-rules-composite/kibana/security_rule/852c1f19-68e8-43a6-9dce-340771fe1be3.json new file mode 100644 index 0000000000000..00c96846f833e --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/852c1f19-68e8-43a6-9dce-340771fe1be3.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"852c1f19-68e8-43a6-9dce-340771fe1be3","versions":[{"name":"Suspicious PowerShell Engine ImageLoad v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the PowerShell engine being invoked by unexpected processes. Rather than executing PowerShell functionality with powershell.exe, some attackers do this to operate more stealthily.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious PowerShell Engine ImageLoad\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can use PowerShell without having to execute `PowerShell.exe` directly. This technique, often called\n\"PowerShell without PowerShell,\" works by using the underlying System.Management.Automation namespace and can bypass\napplication allowlisting and PowerShell security features.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Retrieve the implementation (DLL, executable, etc.) and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity can happen legitimately. Some vendors have their own PowerShell implementations that are shipped with\nsome products. These benign true positives (B-TPs) can be added as exceptions if necessary after analysis.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"language":"eql","query":"any where (event.category : (\"library\", \"driver\") or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : (\"System.Management.Automation.ni.dll\", \"System.Management.Automation.dll\") or\n file.name : (\"System.Management.Automation.ni.dll\", \"System.Management.Automation.dll\")) and\n\n/* add false positives relevant to your environment here */\nnot process.executable : (\"C:\\\\Windows\\\\System32\\\\RemoteFXvGPUDisablement.exe\", \"C:\\\\Windows\\\\System32\\\\sdiagnhost.exe\") and\nnot process.executable regex~ \"\"\"C:\\\\Program Files( \\(x86\\))?\\\\*\\.exe\"\"\" and\n not process.name :\n (\n \"Altaro.SubAgent.exe\",\n \"AppV_Manage.exe\",\n \"azureadconnect.exe\",\n \"CcmExec.exe\",\n \"configsyncrun.exe\",\n \"choco.exe\",\n \"ctxappvservice.exe\",\n \"DVLS.Console.exe\",\n \"edgetransport.exe\",\n \"exsetup.exe\",\n \"forefrontactivedirectoryconnector.exe\",\n \"InstallUtil.exe\",\n \"JenkinsOnDesktop.exe\",\n \"Microsoft.EnterpriseManagement.ServiceManager.UI.Console.exe\",\n \"mmc.exe\",\n \"mscorsvw.exe\",\n \"msexchangedelivery.exe\",\n \"msexchangefrontendtransport.exe\",\n \"msexchangehmworker.exe\",\n \"msexchangesubmission.exe\",\n \"msiexec.exe\",\n \"MsiExec.exe\",\n \"noderunner.exe\",\n \"NServiceBus.Host.exe\",\n \"NServiceBus.Host32.exe\",\n \"NServiceBus.Hosting.Azure.HostProcess.exe\",\n \"OuiGui.WPF.exe\",\n \"powershell.exe\",\n \"powershell_ise.exe\",\n \"pwsh.exe\",\n \"SCCMCliCtrWPF.exe\",\n \"ScriptEditor.exe\",\n \"ScriptRunner.exe\",\n \"sdiagnhost.exe\",\n \"servermanager.exe\",\n \"setup100.exe\",\n \"ServiceHub.VSDetouredHost.exe\",\n \"SPCAF.Client.exe\",\n \"SPCAF.SettingsEditor.exe\",\n \"SQLPS.exe\",\n \"telemetryservice.exe\",\n \"UMWorkerProcess.exe\",\n \"w3wp.exe\",\n \"wsmprovhost.exe\"\n )\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},{"name":"Suspicious PowerShell Engine ImageLoad v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the PowerShell engine being invoked by unexpected processes. Rather than executing PowerShell functionality with powershell.exe, some attackers do this to operate more stealthily.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious PowerShell Engine ImageLoad\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can use PowerShell without having to execute `PowerShell.exe` directly. This technique, often called\n\"PowerShell without PowerShell,\" works by using the underlying System.Management.Automation namespace and can bypass\napplication allowlisting and PowerShell security features.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Retrieve the implementation (DLL, executable, etc.) and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity can happen legitimately. Some vendors have their own PowerShell implementations that are shipped with\nsome products. These benign true positives (B-TPs) can be added as exceptions if necessary after analysis.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"language":"eql","query":"any where (event.category : (\"library\", \"driver\") or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : (\"System.Management.Automation.ni.dll\", \"System.Management.Automation.dll\") or\n file.name : (\"System.Management.Automation.ni.dll\", \"System.Management.Automation.dll\")) and\n\n/* add false positives relevant to your environment here */\nnot process.executable : (\"C:\\\\Windows\\\\System32\\\\RemoteFXvGPUDisablement.exe\", \"C:\\\\Windows\\\\System32\\\\sdiagnhost.exe\") and\nnot process.executable regex~ \"\"\"C:\\\\Program Files( \\(x86\\))?\\\\*\\.exe\"\"\" and\n not process.name :\n (\n \"Altaro.SubAgent.exe\",\n \"AppV_Manage.exe\",\n \"azureadconnect.exe\",\n \"CcmExec.exe\",\n \"configsyncrun.exe\",\n \"choco.exe\",\n \"ctxappvservice.exe\",\n \"DVLS.Console.exe\",\n \"edgetransport.exe\",\n \"exsetup.exe\",\n \"forefrontactivedirectoryconnector.exe\",\n \"InstallUtil.exe\",\n \"JenkinsOnDesktop.exe\",\n \"Microsoft.EnterpriseManagement.ServiceManager.UI.Console.exe\",\n \"mmc.exe\",\n \"mscorsvw.exe\",\n \"msexchangedelivery.exe\",\n \"msexchangefrontendtransport.exe\",\n \"msexchangehmworker.exe\",\n \"msexchangesubmission.exe\",\n \"msiexec.exe\",\n \"MsiExec.exe\",\n \"noderunner.exe\",\n \"NServiceBus.Host.exe\",\n \"NServiceBus.Host32.exe\",\n \"NServiceBus.Hosting.Azure.HostProcess.exe\",\n \"OuiGui.WPF.exe\",\n \"powershell.exe\",\n \"powershell_ise.exe\",\n \"pwsh.exe\",\n \"SCCMCliCtrWPF.exe\",\n \"ScriptEditor.exe\",\n \"ScriptRunner.exe\",\n \"sdiagnhost.exe\",\n \"servermanager.exe\",\n \"setup100.exe\",\n \"ServiceHub.VSDetouredHost.exe\",\n \"SPCAF.Client.exe\",\n \"SPCAF.SettingsEditor.exe\",\n \"SQLPS.exe\",\n \"telemetryservice.exe\",\n \"UMWorkerProcess.exe\",\n \"w3wp.exe\",\n \"wsmprovhost.exe\"\n )\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},{"name":"Suspicious PowerShell Engine ImageLoad v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the PowerShell engine being invoked by unexpected processes. Rather than executing PowerShell functionality with powershell.exe, some attackers do this to operate more stealthily.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious PowerShell Engine ImageLoad\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can use PowerShell without having to execute `PowerShell.exe` directly. This technique, often called\n\"PowerShell without PowerShell,\" works by using the underlying System.Management.Automation namespace and can bypass\napplication allowlisting and PowerShell security features.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Retrieve the implementation (DLL, executable, etc.) and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity can happen legitimately. Some vendors have their own PowerShell implementations that are shipped with\nsome products. These benign true positives (B-TPs) can be added as exceptions if necessary after analysis.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"language":"eql","query":"any where (event.category : (\"library\", \"driver\") or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : (\"System.Management.Automation.ni.dll\", \"System.Management.Automation.dll\") or\n file.name : (\"System.Management.Automation.ni.dll\", \"System.Management.Automation.dll\")) and\n\n/* add false positives relevant to your environment here */\nnot process.executable : (\"C:\\\\Windows\\\\System32\\\\RemoteFXvGPUDisablement.exe\", \"C:\\\\Windows\\\\System32\\\\sdiagnhost.exe\") and\nnot process.executable regex~ \"\"\"C:\\\\Program Files( \\(x86\\))?\\\\*\\.exe\"\"\" and\n not process.name :\n (\n \"Altaro.SubAgent.exe\",\n \"AppV_Manage.exe\",\n \"azureadconnect.exe\",\n \"CcmExec.exe\",\n \"configsyncrun.exe\",\n \"choco.exe\",\n \"ctxappvservice.exe\",\n \"DVLS.Console.exe\",\n \"edgetransport.exe\",\n \"exsetup.exe\",\n \"forefrontactivedirectoryconnector.exe\",\n \"InstallUtil.exe\",\n \"JenkinsOnDesktop.exe\",\n \"Microsoft.EnterpriseManagement.ServiceManager.UI.Console.exe\",\n \"mmc.exe\",\n \"mscorsvw.exe\",\n \"msexchangedelivery.exe\",\n \"msexchangefrontendtransport.exe\",\n \"msexchangehmworker.exe\",\n \"msexchangesubmission.exe\",\n \"msiexec.exe\",\n \"MsiExec.exe\",\n \"noderunner.exe\",\n \"NServiceBus.Host.exe\",\n \"NServiceBus.Host32.exe\",\n \"NServiceBus.Hosting.Azure.HostProcess.exe\",\n \"OuiGui.WPF.exe\",\n \"powershell.exe\",\n \"powershell_ise.exe\",\n \"pwsh.exe\",\n \"SCCMCliCtrWPF.exe\",\n \"ScriptEditor.exe\",\n \"ScriptRunner.exe\",\n \"sdiagnhost.exe\",\n \"servermanager.exe\",\n \"setup100.exe\",\n \"ServiceHub.VSDetouredHost.exe\",\n \"SPCAF.Client.exe\",\n \"SPCAF.SettingsEditor.exe\",\n \"SQLPS.exe\",\n \"telemetryservice.exe\",\n \"UMWorkerProcess.exe\",\n \"w3wp.exe\",\n \"wsmprovhost.exe\"\n )\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"}]},"id":"852c1f19-68e8-43a6-9dce-340771fe1be3","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/8623535c-1e17-44e1-aa97-7a0699c3037d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/8623535c-1e17-44e1-aa97-7a0699c3037d.json new file mode 100644 index 0000000000000..b6ba54b5a9b73 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/8623535c-1e17-44e1-aa97-7a0699c3037d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"8623535c-1e17-44e1-aa97-7a0699c3037d","versions":[{"name":"AWS EC2 Network Access Control List Deletion v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an Amazon Elastic Compute Cloud (EC2) network access control list (ACL) or one of its ingress/egress entries.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Network ACL's may be deleted by a network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Network ACL deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/delete-network-acl.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteNetworkAcl.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/delete-network-acl-entry.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteNetworkAclEntry.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:(DeleteNetworkAcl or DeleteNetworkAclEntry) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS EC2 Network Access Control List Deletion v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an Amazon Elastic Compute Cloud (EC2) network access control list (ACL) or one of its ingress/egress entries.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Network ACL's may be deleted by a network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Network ACL deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/delete-network-acl.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteNetworkAcl.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/delete-network-acl-entry.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteNetworkAclEntry.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:(DeleteNetworkAcl or DeleteNetworkAclEntry) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS EC2 Network Access Control List Deletion v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an Amazon Elastic Compute Cloud (EC2) network access control list (ACL) or one of its ingress/egress entries.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Network ACL's may be deleted by a network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Network ACL deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/delete-network-acl.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteNetworkAcl.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/delete-network-acl-entry.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteNetworkAclEntry.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:(DeleteNetworkAcl or DeleteNetworkAclEntry) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"8623535c-1e17-44e1-aa97-7a0699c3037d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/863cdf31-7fd3-41cf-a185-681237ea277b.json b/fleet-packages/detection-rules-composite/kibana/security_rule/863cdf31-7fd3-41cf-a185-681237ea277b.json new file mode 100644 index 0000000000000..46dc16665f643 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/863cdf31-7fd3-41cf-a185-681237ea277b.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"863cdf31-7fd3-41cf-a185-681237ea277b","versions":[{"name":"AWS RDS Security Group Deletion v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an Amazon Relational Database Service (RDS) Security group.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["An RDS security group deletion may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Security group deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBSecurityGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:DeleteDBSecurityGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS RDS Security Group Deletion v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an Amazon Relational Database Service (RDS) Security group.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["An RDS security group deletion may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Security group deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBSecurityGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:DeleteDBSecurityGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS RDS Security Group Deletion v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an Amazon Relational Database Service (RDS) Security group.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["An RDS security group deletion may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Security group deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBSecurityGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:DeleteDBSecurityGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"863cdf31-7fd3-41cf-a185-681237ea277b","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/867616ec-41e5-4edc-ada2-ab13ab45de8a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/867616ec-41e5-4edc-ada2-ab13ab45de8a.json new file mode 100644 index 0000000000000..8063c1205799a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/867616ec-41e5-4edc-ada2-ab13ab45de8a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"867616ec-41e5-4edc-ada2-ab13ab45de8a","versions":[{"name":"AWS IAM Group Deletion v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a specified AWS Identity and Access Management (IAM) resource group. Deleting a resource group does not delete resources that are members of the group; it only deletes the group structure.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A resource group may be deleted by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Resource group deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/delete-group.html","https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:DeleteGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS IAM Group Deletion v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a specified AWS Identity and Access Management (IAM) resource group. Deleting a resource group does not delete resources that are members of the group; it only deletes the group structure.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A resource group may be deleted by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Resource group deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/delete-group.html","https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:DeleteGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS IAM Group Deletion v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a specified AWS Identity and Access Management (IAM) resource group. Deleting a resource group does not delete resources that are members of the group; it only deletes the group structure.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A resource group may be deleted by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Resource group deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/delete-group.html","https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:DeleteGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"867616ec-41e5-4edc-ada2-ab13ab45de8a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/870aecc0-cea4-4110-af3f-e02e9b373655.json b/fleet-packages/detection-rules-composite/kibana/security_rule/870aecc0-cea4-4110-af3f-e02e9b373655.json new file mode 100644 index 0000000000000..bb2ab1dae2d21 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/870aecc0-cea4-4110-af3f-e02e9b373655.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"870aecc0-cea4-4110-af3f-e02e9b373655","versions":[{"name":"Security Software Discovery via Grep v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the grep command to discover known third-party macOS and Linux security tools, such as Antivirus or Host Firewall details.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Security Software Discovery via Grep\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `grep` utility with arguments compatible to the enumeration of the security\nsoftware installed on the host. Attackers can use this information to decide whether or not to infect a system, disable\nprotections, use bypasses, etc.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence and whether they are located in expected locations.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, file modifications, and any\nspawned child processes.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Endpoint Security installers, updaters and post installation verification scripts."],"from":"now-9m","tags":["Elastic","Host","macOS","Linux","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1518","name":"Software Discovery","reference":"https://attack.mitre.org/techniques/T1518/","subtechnique":[{"id":"T1518.001","name":"Security Software Discovery","reference":"https://attack.mitre.org/techniques/T1518/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\nprocess.name : \"grep\" and user.id != \"0\" and\n not process.parent.executable : \"/Library/Application Support/*\" and\n process.args :\n (\"Little Snitch*\",\n \"Avast*\",\n \"Avira*\",\n \"ESET*\",\n \"BlockBlock*\",\n \"360Sec*\",\n \"LuLu*\",\n \"KnockKnock*\",\n \"kav\",\n \"KIS\",\n \"RTProtectionDaemon*\",\n \"Malware*\",\n \"VShieldScanner*\",\n \"WebProtection*\",\n \"webinspectord*\",\n \"McAfee*\",\n \"isecespd*\",\n \"macmnsvc*\",\n \"masvc*\",\n \"kesl*\",\n \"avscan*\",\n \"guard*\",\n \"rtvscand*\",\n \"symcfgd*\",\n \"scmdaemon*\",\n \"symantec*\",\n \"sophos*\",\n \"osquery*\",\n \"elastic-endpoint*\"\n ) and\n not (process.args : \"Avast\" and process.args : \"Passwords\")\n","type":"eql","index":["logs-endpoint.events.*","auditbeat-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Security Software Discovery via Grep v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the grep command to discover known third-party macOS and Linux security tools, such as Antivirus or Host Firewall details.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Security Software Discovery via Grep\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `grep` utility with arguments compatible to the enumeration of the security\nsoftware installed on the host. Attackers can use this information to decide whether or not to infect a system, disable\nprotections, use bypasses, etc.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence and whether they are located in expected locations.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, file modifications, and any\nspawned child processes.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Endpoint Security installers, updaters and post installation verification scripts."],"from":"now-9m","tags":["Elastic","Host","macOS","Linux","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1518","name":"Software Discovery","reference":"https://attack.mitre.org/techniques/T1518/","subtechnique":[{"id":"T1518.001","name":"Security Software Discovery","reference":"https://attack.mitre.org/techniques/T1518/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\nprocess.name : \"grep\" and user.id != \"0\" and\n not process.parent.executable : \"/Library/Application Support/*\" and\n process.args :\n (\"Little Snitch*\",\n \"Avast*\",\n \"Avira*\",\n \"ESET*\",\n \"BlockBlock*\",\n \"360Sec*\",\n \"LuLu*\",\n \"KnockKnock*\",\n \"kav\",\n \"KIS\",\n \"RTProtectionDaemon*\",\n \"Malware*\",\n \"VShieldScanner*\",\n \"WebProtection*\",\n \"webinspectord*\",\n \"McAfee*\",\n \"isecespd*\",\n \"macmnsvc*\",\n \"masvc*\",\n \"kesl*\",\n \"avscan*\",\n \"guard*\",\n \"rtvscand*\",\n \"symcfgd*\",\n \"scmdaemon*\",\n \"symantec*\",\n \"sophos*\",\n \"osquery*\",\n \"elastic-endpoint*\"\n ) and\n not (process.args : \"Avast\" and process.args : \"Passwords\")\n","type":"eql","index":["logs-endpoint.events.*","auditbeat-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Security Software Discovery via Grep v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the grep command to discover known third-party macOS and Linux security tools, such as Antivirus or Host Firewall details.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Security Software Discovery via Grep\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `grep` utility with arguments compatible to the enumeration of the security\nsoftware installed on the host. Attackers can use this information to decide whether or not to infect a system, disable\nprotections, use bypasses, etc.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence and whether they are located in expected locations.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, file modifications, and any\nspawned child processes.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Endpoint Security installers, updaters and post installation verification scripts."],"from":"now-9m","tags":["Elastic","Host","macOS","Linux","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1518","name":"Software Discovery","reference":"https://attack.mitre.org/techniques/T1518/","subtechnique":[{"id":"T1518.001","name":"Security Software Discovery","reference":"https://attack.mitre.org/techniques/T1518/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\nprocess.name : \"grep\" and user.id != \"0\" and\n not process.parent.executable : \"/Library/Application Support/*\" and\n process.args :\n (\"Little Snitch*\",\n \"Avast*\",\n \"Avira*\",\n \"ESET*\",\n \"BlockBlock*\",\n \"360Sec*\",\n \"LuLu*\",\n \"KnockKnock*\",\n \"kav\",\n \"KIS\",\n \"RTProtectionDaemon*\",\n \"Malware*\",\n \"VShieldScanner*\",\n \"WebProtection*\",\n \"webinspectord*\",\n \"McAfee*\",\n \"isecespd*\",\n \"macmnsvc*\",\n \"masvc*\",\n \"kesl*\",\n \"avscan*\",\n \"guard*\",\n \"rtvscand*\",\n \"symcfgd*\",\n \"scmdaemon*\",\n \"symantec*\",\n \"sophos*\",\n \"osquery*\",\n \"elastic-endpoint*\"\n ) and\n not (process.args : \"Avast\" and process.args : \"Passwords\")\n","type":"eql","index":["logs-endpoint.events.*","auditbeat-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"870aecc0-cea4-4110-af3f-e02e9b373655","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/871ea072-1b71-4def-b016-6278b505138d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/871ea072-1b71-4def-b016-6278b505138d.json new file mode 100644 index 0000000000000..8107522d5b665 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/871ea072-1b71-4def-b016-6278b505138d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"871ea072-1b71-4def-b016-6278b505138d","versions":[{"name":"Enumeration of Administrator Accounts v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies instances of lower privilege accounts enumerating Administrator accounts or groups using built-in Windows tools.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Enumeration of Administrator Accounts\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `net` and `wmic` utilities to enumerate administrator-related users or groups\nin the domain and local machine scope. Attackers can use this information to plan their next steps of the attack, such\nas mapping targets for credential compromise and other post-exploitation activities.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Related rules\n\n- AdFind Command Activity - eda499b8-a073-4e35-9733-22ec71f57f3a\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1069","name":"Permission Groups Discovery","reference":"https://attack.mitre.org/techniques/T1069/","subtechnique":[{"id":"T1069.002","name":"Domain Groups","reference":"https://attack.mitre.org/techniques/T1069/002/"}]},{"id":"T1087","name":"Account Discovery","reference":"https://attack.mitre.org/techniques/T1087/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (((process.name : \"net.exe\" or process.pe.original_file_name == \"net.exe\") or\n ((process.name : \"net1.exe\" or process.pe.original_file_name == \"net1.exe\") and\n not process.parent.name : \"net.exe\")) and\n process.args : (\"group\", \"user\", \"localgroup\") and\n process.args : (\"admin\", \"Domain Admins\", \"Remote Desktop Users\", \"Enterprise Admins\", \"Organization Management\") and\n not process.args : \"/add\")\n\n or\n\n ((process.name : \"wmic.exe\" or process.pe.original_file_name == \"wmic.exe\") and\n process.args : (\"group\", \"useraccount\"))\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Enumeration of Administrator Accounts v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies instances of lower privilege accounts enumerating Administrator accounts or groups using built-in Windows tools.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Enumeration of Administrator Accounts\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `net` and `wmic` utilities to enumerate administrator-related users or groups\nin the domain and local machine scope. Attackers can use this information to plan their next steps of the attack, such\nas mapping targets for credential compromise and other post-exploitation activities.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Related rules\n\n- AdFind Command Activity - eda499b8-a073-4e35-9733-22ec71f57f3a\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1069","name":"Permission Groups Discovery","reference":"https://attack.mitre.org/techniques/T1069/","subtechnique":[{"id":"T1069.002","name":"Domain Groups","reference":"https://attack.mitre.org/techniques/T1069/002/"}]},{"id":"T1087","name":"Account Discovery","reference":"https://attack.mitre.org/techniques/T1087/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (((process.name : \"net.exe\" or process.pe.original_file_name == \"net.exe\") or\n ((process.name : \"net1.exe\" or process.pe.original_file_name == \"net1.exe\") and\n not process.parent.name : \"net.exe\")) and\n process.args : (\"group\", \"user\", \"localgroup\") and\n process.args : (\"admin\", \"Domain Admins\", \"Remote Desktop Users\", \"Enterprise Admins\", \"Organization Management\") and\n not process.args : \"/add\")\n\n or\n\n ((process.name : \"wmic.exe\" or process.pe.original_file_name == \"wmic.exe\") and\n process.args : (\"group\", \"useraccount\"))\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Enumeration of Administrator Accounts v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies instances of lower privilege accounts enumerating Administrator accounts or groups using built-in Windows tools.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Enumeration of Administrator Accounts\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `net` and `wmic` utilities to enumerate administrator-related users or groups\nin the domain and local machine scope. Attackers can use this information to plan their next steps of the attack, such\nas mapping targets for credential compromise and other post-exploitation activities.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Related rules\n\n- AdFind Command Activity - eda499b8-a073-4e35-9733-22ec71f57f3a\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1069","name":"Permission Groups Discovery","reference":"https://attack.mitre.org/techniques/T1069/","subtechnique":[{"id":"T1069.002","name":"Domain Groups","reference":"https://attack.mitre.org/techniques/T1069/002/"}]},{"id":"T1087","name":"Account Discovery","reference":"https://attack.mitre.org/techniques/T1087/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (((process.name : \"net.exe\" or process.pe.original_file_name == \"net.exe\") or\n ((process.name : \"net1.exe\" or process.pe.original_file_name == \"net1.exe\") and\n not process.parent.name : \"net.exe\")) and\n process.args : (\"group\", \"user\", \"localgroup\") and\n process.args : (\"admin\", \"Domain Admins\", \"Remote Desktop Users\", \"Enterprise Admins\", \"Organization Management\") and\n not process.args : \"/add\")\n\n or\n\n ((process.name : \"wmic.exe\" or process.pe.original_file_name == \"wmic.exe\") and\n process.args : (\"group\", \"useraccount\"))\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"871ea072-1b71-4def-b016-6278b505138d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/87594192-4539-4bc4-8543-23bc3d5bd2b4.json b/fleet-packages/detection-rules-composite/kibana/security_rule/87594192-4539-4bc4-8543-23bc3d5bd2b4.json new file mode 100644 index 0000000000000..0ec4e125ecb0b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/87594192-4539-4bc4-8543-23bc3d5bd2b4.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"87594192-4539-4bc4-8543-23bc3d5bd2b4","versions":[{"name":"AWS EventBridge Rule Disabled or Deleted v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user has disabled or deleted an EventBridge rule. This activity can result in an unintended loss of visibility in applications or a break in the flow with other AWS services.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["EventBridge Rules could be deleted or disabled by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. EventBridge Rules being deleted or disabled by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-20m","references":["https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_DeleteRule.html","https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_DisableRule.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:eventbridge.amazonaws.com and event.action:(DeleteRule or DisableRule) and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS EventBridge Rule Disabled or Deleted v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user has disabled or deleted an EventBridge rule. This activity can result in an unintended loss of visibility in applications or a break in the flow with other AWS services.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["EventBridge Rules could be deleted or disabled by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. EventBridge Rules being deleted or disabled by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-20m","references":["https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_DeleteRule.html","https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_DisableRule.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:eventbridge.amazonaws.com and event.action:(DeleteRule or DisableRule) and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS EventBridge Rule Disabled or Deleted v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user has disabled or deleted an EventBridge rule. This activity can result in an unintended loss of visibility in applications or a break in the flow with other AWS services.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["EventBridge Rules could be deleted or disabled by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. EventBridge Rules being deleted or disabled by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-20m","references":["https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_DeleteRule.html","https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_DisableRule.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:eventbridge.amazonaws.com and event.action:(DeleteRule or DisableRule) and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"87594192-4539-4bc4-8543-23bc3d5bd2b4","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/88671231-6626-4e1b-abb7-6e361a171fbb.json b/fleet-packages/detection-rules-composite/kibana/security_rule/88671231-6626-4e1b-abb7-6e361a171fbb.json new file mode 100644 index 0000000000000..742cf283e160e --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/88671231-6626-4e1b-abb7-6e361a171fbb.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"88671231-6626-4e1b-abb7-6e361a171fbb","versions":[{"name":"Microsoft 365 Global Administrator Role Assigned v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"In Azure Active Directory (Azure AD), permissions to manage resources are assigned using roles. The Global Administrator is a role that enables users to have access to all administrative features in Azure AD and services that use Azure AD identities like the Microsoft 365 Defender portal, the Microsoft 365 compliance center, Exchange, SharePoint Online, and Skype for Business Online. Attackers can add users as Global Administrators to maintain access and manage all subscriptions and their settings and resources.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/roles/permissions-reference#global-administrator"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.003","name":"Additional Cloud Roles","reference":"https://attack.mitre.org/techniques/T1098/003/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.code:\"AzureActiveDirectory\" and event.action:\"Add member to role.\" and\no365.audit.ModifiedProperties.Role_DisplayName.NewValue:\"Global Administrator\"\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"o365.audit.ModifiedProperties.Role_DisplayName.NewValue","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Global Administrator Role Assigned v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"In Azure Active Directory (Azure AD), permissions to manage resources are assigned using roles. The Global Administrator is a role that enables users to have access to all administrative features in Azure AD and services that use Azure AD identities like the Microsoft 365 Defender portal, the Microsoft 365 compliance center, Exchange, SharePoint Online, and Skype for Business Online. Attackers can add users as Global Administrators to maintain access and manage all subscriptions and their settings and resources.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/roles/permissions-reference#global-administrator"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.003","name":"Additional Cloud Roles","reference":"https://attack.mitre.org/techniques/T1098/003/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.code:\"AzureActiveDirectory\" and event.action:\"Add member to role.\" and\no365.audit.ModifiedProperties.Role_DisplayName.NewValue:\"Global Administrator\"\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"o365.audit.ModifiedProperties.Role_DisplayName.NewValue","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Global Administrator Role Assigned v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"In Azure Active Directory (Azure AD), permissions to manage resources are assigned using roles. The Global Administrator is a role that enables users to have access to all administrative features in Azure AD and services that use Azure AD identities like the Microsoft 365 Defender portal, the Microsoft 365 compliance center, Exchange, SharePoint Online, and Skype for Business Online. Attackers can add users as Global Administrators to maintain access and manage all subscriptions and their settings and resources.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/roles/permissions-reference#global-administrator"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.003","name":"Additional Cloud Roles","reference":"https://attack.mitre.org/techniques/T1098/003/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.code:\"AzureActiveDirectory\" and event.action:\"Add member to role.\" and\no365.audit.ModifiedProperties.Role_DisplayName.NewValue:\"Global Administrator\"\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"o365.audit.ModifiedProperties.Role_DisplayName.NewValue","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"88671231-6626-4e1b-abb7-6e361a171fbb","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/88817a33-60d3-411f-ba79-7c905d865b2a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/88817a33-60d3-411f-ba79-7c905d865b2a.json new file mode 100644 index 0000000000000..84c26a8fc2abb --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/88817a33-60d3-411f-ba79-7c905d865b2a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"88817a33-60d3-411f-ba79-7c905d865b2a","versions":[{"name":"Sublime Plugin or Application Script Modification v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may create or modify the Sublime application plugins or scripts to execute a malicious payload each time the Sublime application is started.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/persistent-jxa-66e1c3cd1cf5"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1554","name":"Compromise Client Software Binary","reference":"https://attack.mitre.org/techniques/T1554/"}]}],"language":"eql","query":"file where event.type in (\"change\", \"creation\") and file.extension : \"py\" and\n file.path :\n (\n \"/Users/*/Library/Application Support/Sublime Text*/Packages/*.py\",\n \"/Applications/Sublime Text.app/Contents/MacOS/sublime.py\"\n ) and\n not process.executable :\n (\n \"/Applications/Sublime Text*.app/Contents/*\",\n \"/usr/local/Cellar/git/*/bin/git\",\n \"/Library/Developer/CommandLineTools/usr/bin/git\",\n \"/usr/libexec/xpcproxy\",\n \"/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/Resources/DesktopServicesHelper\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Sublime Plugin or Application Script Modification v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may create or modify the Sublime application plugins or scripts to execute a malicious payload each time the Sublime application is started.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/persistent-jxa-66e1c3cd1cf5"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1554","name":"Compromise Client Software Binary","reference":"https://attack.mitre.org/techniques/T1554/"}]}],"language":"eql","query":"file where event.type in (\"change\", \"creation\") and file.extension : \"py\" and\n file.path :\n (\n \"/Users/*/Library/Application Support/Sublime Text*/Packages/*.py\",\n \"/Applications/Sublime Text.app/Contents/MacOS/sublime.py\"\n ) and\n not process.executable :\n (\n \"/Applications/Sublime Text*.app/Contents/*\",\n \"/usr/local/Cellar/git/*/bin/git\",\n \"/Library/Developer/CommandLineTools/usr/bin/git\",\n \"/usr/libexec/xpcproxy\",\n \"/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/Resources/DesktopServicesHelper\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Sublime Plugin or Application Script Modification v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may create or modify the Sublime application plugins or scripts to execute a malicious payload each time the Sublime application is started.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/persistent-jxa-66e1c3cd1cf5"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1554","name":"Compromise Client Software Binary","reference":"https://attack.mitre.org/techniques/T1554/"}]}],"language":"eql","query":"file where event.type in (\"change\", \"creation\") and file.extension : \"py\" and\n file.path :\n (\n \"/Users/*/Library/Application Support/Sublime Text*/Packages/*.py\",\n \"/Applications/Sublime Text.app/Contents/MacOS/sublime.py\"\n ) and\n not process.executable :\n (\n \"/Applications/Sublime Text*.app/Contents/*\",\n \"/usr/local/Cellar/git/*/bin/git\",\n \"/Library/Developer/CommandLineTools/usr/bin/git\",\n \"/usr/libexec/xpcproxy\",\n \"/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/Resources/DesktopServicesHelper\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"88817a33-60d3-411f-ba79-7c905d865b2a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/891cb88e-441a-4c3e-be2d-120d99fe7b0d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/891cb88e-441a-4c3e-be2d-120d99fe7b0d.json new file mode 100644 index 0000000000000..f561f1e8e50c2 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/891cb88e-441a-4c3e-be2d-120d99fe7b0d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"891cb88e-441a-4c3e-be2d-120d99fe7b0d","versions":[{"name":"Suspicious WMI Image Load from MS Office v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious image load (wmiutils.dll) from Microsoft Office processes. This behavior may indicate adversarial activity where child processes are spawned via Windows Management Instrumentation (WMI). This technique can be used to execute code and evade traditional parent/child processes spawned from Microsoft Office products.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://medium.com/threatpunter/detecting-adversary-tradecraft-with-image-load-event-logging-and-eql-8de93338c16"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1047","name":"Windows Management Instrumentation","reference":"https://attack.mitre.org/techniques/T1047/"}]}],"language":"eql","query":"any where\n (event.category : (\"library\", \"driver\") or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n process.name : (\"WINWORD.EXE\", \"EXCEL.EXE\", \"POWERPNT.EXE\", \"MSPUB.EXE\", \"MSACCESS.EXE\") and\n (dll.name : \"wmiutils.dll\" or file.name : \"wmiutils.dll\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious WMI Image Load from MS Office v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious image load (wmiutils.dll) from Microsoft Office processes. This behavior may indicate adversarial activity where child processes are spawned via Windows Management Instrumentation (WMI). This technique can be used to execute code and evade traditional parent/child processes spawned from Microsoft Office products.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://medium.com/threatpunter/detecting-adversary-tradecraft-with-image-load-event-logging-and-eql-8de93338c16"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1047","name":"Windows Management Instrumentation","reference":"https://attack.mitre.org/techniques/T1047/"}]}],"language":"eql","query":"any where\n (event.category : (\"library\", \"driver\") or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n process.name : (\"WINWORD.EXE\", \"EXCEL.EXE\", \"POWERPNT.EXE\", \"MSPUB.EXE\", \"MSACCESS.EXE\") and\n (dll.name : \"wmiutils.dll\" or file.name : \"wmiutils.dll\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious WMI Image Load from MS Office v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious image load (wmiutils.dll) from Microsoft Office processes. This behavior may indicate adversarial activity where child processes are spawned via Windows Management Instrumentation (WMI). This technique can be used to execute code and evade traditional parent/child processes spawned from Microsoft Office products.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://medium.com/threatpunter/detecting-adversary-tradecraft-with-image-load-event-logging-and-eql-8de93338c16"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1047","name":"Windows Management Instrumentation","reference":"https://attack.mitre.org/techniques/T1047/"}]}],"language":"eql","query":"any where\n (event.category : (\"library\", \"driver\") or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n process.name : (\"WINWORD.EXE\", \"EXCEL.EXE\", \"POWERPNT.EXE\", \"MSPUB.EXE\", \"MSACCESS.EXE\") and\n (dll.name : \"wmiutils.dll\" or file.name : \"wmiutils.dll\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"891cb88e-441a-4c3e-be2d-120d99fe7b0d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/897dc6b5-b39f-432a-8d75-d3730d50c782.json b/fleet-packages/detection-rules-composite/kibana/security_rule/897dc6b5-b39f-432a-8d75-d3730d50c782.json new file mode 100644 index 0000000000000..aea217180fa6a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/897dc6b5-b39f-432a-8d75-d3730d50c782.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"897dc6b5-b39f-432a-8d75-d3730d50c782","versions":[{"name":"Kerberos Traffic from Unusual Process v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies network connections to the standard Kerberos port from an unusual process. On Windows, the only process that normally performs Kerberos traffic from a domain joined host is lsass.exe.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Kerberos Traffic from Unusual Process\n\nKerberos is the default authentication protocol in Active Directory, designed to provide strong authentication for\nclient/server applications by using secret-key cryptography.\n\nDomain-joined hosts usually perform Kerberos traffic using the `lsass.exe` process. This rule detects the occurrence of\ntraffic on the Kerberos port (88) by processes other than `lsass.exe` to detect the unusual request and usage of\nKerberos tickets.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check if the Destination IP is related to a Domain Controller.\n- Review event ID 4769 for suspicious ticket requests.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This rule uses a Kerberos-related port but does not identify the protocol used on that port. HTTP traffic on a\nnon-standard port or destination IP address unrelated to Domain controllers can create false positives.\n- Exceptions can be added for noisy/frequent connections.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n - Ticket requests can be used to investigate potentially compromised accounts.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["HTTP traffic on a non standard port. Verify that the destination IP address is not related to a Domain Controller."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/"}]}],"language":"eql","query":"network where event.type == \"start\" and network.direction : (\"outgoing\", \"egress\") and\n destination.port == 88 and source.port >= 49152 and\n not process.executable :\n (\"?:\\\\Windows\\\\System32\\\\lsass.exe\",\n \"System\",\n \"\\\\device\\\\harddiskvolume?\\\\windows\\\\system32\\\\lsass.exe\",\n \"?:\\\\Program Files\\\\rapid7\\\\nexpose\\\\nse\\\\.DLLCACHE\\\\nseserv.exe\",\n \"?:\\\\Program Files (x86)\\\\GFI\\\\LanGuard 12 Agent\\\\lnsscomm.exe\",\n \"?:\\\\Program Files (x86)\\\\SuperScan\\\\scanner.exe\",\n \"?:\\\\Program Files (x86)\\\\Nmap\\\\nmap.exe\",\n \"\\\\device\\\\harddiskvolume?\\\\program files (x86)\\\\nmap\\\\nmap.exe\") and\n destination.address !=\"127.0.0.1\" and destination.address !=\"::1\" and\n /* insert false positives here */\n not process.name in (\"swi_fc.exe\", \"fsIPcam.exe\", \"IPCamera.exe\", \"MicrosoftEdgeCP.exe\", \"MicrosoftEdge.exe\", \"iexplore.exe\", \"chrome.exe\", \"msedge.exe\", \"opera.exe\", \"firefox.exe\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.address","type":"keyword"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"source.port","type":"long"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Kerberos Traffic from Unusual Process v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies network connections to the standard Kerberos port from an unusual process. On Windows, the only process that normally performs Kerberos traffic from a domain joined host is lsass.exe.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Kerberos Traffic from Unusual Process\n\nKerberos is the default authentication protocol in Active Directory, designed to provide strong authentication for\nclient/server applications by using secret-key cryptography.\n\nDomain-joined hosts usually perform Kerberos traffic using the `lsass.exe` process. This rule detects the occurrence of\ntraffic on the Kerberos port (88) by processes other than `lsass.exe` to detect the unusual request and usage of\nKerberos tickets.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check if the Destination IP is related to a Domain Controller.\n- Review event ID 4769 for suspicious ticket requests.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This rule uses a Kerberos-related port but does not identify the protocol used on that port. HTTP traffic on a\nnon-standard port or destination IP address unrelated to Domain controllers can create false positives.\n- Exceptions can be added for noisy/frequent connections.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n - Ticket requests can be used to investigate potentially compromised accounts.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["HTTP traffic on a non standard port. Verify that the destination IP address is not related to a Domain Controller."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/"}]}],"language":"eql","query":"network where event.type == \"start\" and network.direction : (\"outgoing\", \"egress\") and\n destination.port == 88 and source.port >= 49152 and\n not process.executable :\n (\"?:\\\\Windows\\\\System32\\\\lsass.exe\",\n \"System\",\n \"\\\\device\\\\harddiskvolume?\\\\windows\\\\system32\\\\lsass.exe\",\n \"?:\\\\Program Files\\\\rapid7\\\\nexpose\\\\nse\\\\.DLLCACHE\\\\nseserv.exe\",\n \"?:\\\\Program Files (x86)\\\\GFI\\\\LanGuard 12 Agent\\\\lnsscomm.exe\",\n \"?:\\\\Program Files (x86)\\\\SuperScan\\\\scanner.exe\",\n \"?:\\\\Program Files (x86)\\\\Nmap\\\\nmap.exe\",\n \"\\\\device\\\\harddiskvolume?\\\\program files (x86)\\\\nmap\\\\nmap.exe\") and\n destination.address !=\"127.0.0.1\" and destination.address !=\"::1\" and\n /* insert false positives here */\n not process.name in (\"swi_fc.exe\", \"fsIPcam.exe\", \"IPCamera.exe\", \"MicrosoftEdgeCP.exe\", \"MicrosoftEdge.exe\", \"iexplore.exe\", \"chrome.exe\", \"msedge.exe\", \"opera.exe\", \"firefox.exe\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.address","type":"keyword"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"source.port","type":"long"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Kerberos Traffic from Unusual Process v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies network connections to the standard Kerberos port from an unusual process. On Windows, the only process that normally performs Kerberos traffic from a domain joined host is lsass.exe.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Kerberos Traffic from Unusual Process\n\nKerberos is the default authentication protocol in Active Directory, designed to provide strong authentication for\nclient/server applications by using secret-key cryptography.\n\nDomain-joined hosts usually perform Kerberos traffic using the `lsass.exe` process. This rule detects the occurrence of\ntraffic on the Kerberos port (88) by processes other than `lsass.exe` to detect the unusual request and usage of\nKerberos tickets.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check if the Destination IP is related to a Domain Controller.\n- Review event ID 4769 for suspicious ticket requests.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This rule uses a Kerberos-related port but does not identify the protocol used on that port. HTTP traffic on a\nnon-standard port or destination IP address unrelated to Domain controllers can create false positives.\n- Exceptions can be added for noisy/frequent connections.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n - Ticket requests can be used to investigate potentially compromised accounts.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["HTTP traffic on a non standard port. Verify that the destination IP address is not related to a Domain Controller."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/"}]}],"language":"eql","query":"network where event.type == \"start\" and network.direction : (\"outgoing\", \"egress\") and\n destination.port == 88 and source.port >= 49152 and\n not process.executable :\n (\"?:\\\\Windows\\\\System32\\\\lsass.exe\",\n \"System\",\n \"\\\\device\\\\harddiskvolume?\\\\windows\\\\system32\\\\lsass.exe\",\n \"?:\\\\Program Files\\\\rapid7\\\\nexpose\\\\nse\\\\.DLLCACHE\\\\nseserv.exe\",\n \"?:\\\\Program Files (x86)\\\\GFI\\\\LanGuard 12 Agent\\\\lnsscomm.exe\",\n \"?:\\\\Program Files (x86)\\\\SuperScan\\\\scanner.exe\",\n \"?:\\\\Program Files (x86)\\\\Nmap\\\\nmap.exe\",\n \"\\\\device\\\\harddiskvolume?\\\\program files (x86)\\\\nmap\\\\nmap.exe\") and\n destination.address !=\"127.0.0.1\" and destination.address !=\"::1\" and\n /* insert false positives here */\n not process.name in (\"swi_fc.exe\", \"fsIPcam.exe\", \"IPCamera.exe\", \"MicrosoftEdgeCP.exe\", \"MicrosoftEdge.exe\", \"iexplore.exe\", \"chrome.exe\", \"msedge.exe\", \"opera.exe\", \"firefox.exe\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.address","type":"keyword"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"source.port","type":"long"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"897dc6b5-b39f-432a-8d75-d3730d50c782","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/89f9a4b0-9f8f-4ee0-8823-c4751a6d6696.json b/fleet-packages/detection-rules-composite/kibana/security_rule/89f9a4b0-9f8f-4ee0-8823-c4751a6d6696.json new file mode 100644 index 0000000000000..cc06e478f3a83 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/89f9a4b0-9f8f-4ee0-8823-c4751a6d6696.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"89f9a4b0-9f8f-4ee0-8823-c4751a6d6696","versions":[{"name":"Command Prompt Network Connection v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies cmd.exe making a network connection. Adversaries could abuse cmd.exe to download or execute malware from a remote URL.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Administrators may use the command prompt for regular administrative tasks. It's important to baseline your environment for network connections being made from the command prompt to determine any abnormal use of this tool."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"cmd.exe\" and event.type == \"start\"]\n [network where process.name : \"cmd.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\",\n \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\",\n \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Command Prompt Network Connection v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies cmd.exe making a network connection. Adversaries could abuse cmd.exe to download or execute malware from a remote URL.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Administrators may use the command prompt for regular administrative tasks. It's important to baseline your environment for network connections being made from the command prompt to determine any abnormal use of this tool."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"cmd.exe\" and event.type == \"start\"]\n [network where process.name : \"cmd.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\",\n \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\",\n \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Command Prompt Network Connection v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies cmd.exe making a network connection. Adversaries could abuse cmd.exe to download or execute malware from a remote URL.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Administrators may use the command prompt for regular administrative tasks. It's important to baseline your environment for network connections being made from the command prompt to determine any abnormal use of this tool."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"cmd.exe\" and event.type == \"start\"]\n [network where process.name : \"cmd.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\",\n \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\",\n \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"89f9a4b0-9f8f-4ee0-8823-c4751a6d6696","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/89fa6cb7-6b53-4de2-b604-648488841ab8.json b/fleet-packages/detection-rules-composite/kibana/security_rule/89fa6cb7-6b53-4de2-b604-648488841ab8.json new file mode 100644 index 0000000000000..b3c6301c0cd83 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/89fa6cb7-6b53-4de2-b604-648488841ab8.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"89fa6cb7-6b53-4de2-b604-648488841ab8","versions":[{"name":"Persistence via DirectoryService Plugin Modification v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of a DirectoryService PlugIns (dsplug) file. The DirectoryService daemon launches on each system boot and automatically reloads after crash. It scans and executes bundles that are located in the DirectoryServices PlugIns folder and can be abused by adversaries to maintain persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.chichou.me/2019/11/21/two-macos-persistence-tricks-abusing-plugins/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and not event.type:deletion and\n file.path:/Library/DirectoryServices/PlugIns/*.dsplug\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}]},{"name":"Persistence via DirectoryService Plugin Modification v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of a DirectoryService PlugIns (dsplug) file. The DirectoryService daemon launches on each system boot and automatically reloads after crash. It scans and executes bundles that are located in the DirectoryServices PlugIns folder and can be abused by adversaries to maintain persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.chichou.me/2019/11/21/two-macos-persistence-tricks-abusing-plugins/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and not event.type:deletion and\n file.path:/Library/DirectoryServices/PlugIns/*.dsplug\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}]},{"name":"Persistence via DirectoryService Plugin Modification v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of a DirectoryService PlugIns (dsplug) file. The DirectoryService daemon launches on each system boot and automatically reloads after crash. It scans and executes bundles that are located in the DirectoryServices PlugIns folder and can be abused by adversaries to maintain persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.chichou.me/2019/11/21/two-macos-persistence-tricks-abusing-plugins/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and not event.type:deletion and\n file.path:/Library/DirectoryServices/PlugIns/*.dsplug\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}]}]},"id":"89fa6cb7-6b53-4de2-b604-648488841ab8","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/8a1b0278-0f9a-487d-96bd-d4833298e87a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/8a1b0278-0f9a-487d-96bd-d4833298e87a.json new file mode 100644 index 0000000000000..a439e0e1926a4 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/8a1b0278-0f9a-487d-96bd-d4833298e87a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"8a1b0278-0f9a-487d-96bd-d4833298e87a","versions":[{"name":"Setuid / Setgid Bit Set via chmod v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary may add the setuid or setgid bit to a file or directory in order to run a file with the privileges of the owning user or group. An adversary can take advantage of this to either do a shell escape or exploit a vulnerability in an application with the setuid or setgid bit to get code running in a different user’s context. Additionally, adversaries can use this mechanism on their own malware to make sure they're able to execute in elevated contexts in the future.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Linux","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.001","name":"Setuid and Setgid","reference":"https://attack.mitre.org/techniques/T1548/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"lucene","query":"event.category:process AND event.type:(start OR process_started) AND\n process.name:chmod AND process.args:(\"+s\" OR \"u+s\" OR /4[0-9]{3}/ OR g+s OR /2[0-9]{3}/) AND\n NOT process.args:\n (\n /.*\\/Applications\\/VirtualBox.app\\/.+/ OR\n /\\/usr\\/local\\/lib\\/python.+/ OR\n /\\/var\\/folders\\/.+\\/FP.*nstallHelper/ OR\n /\\/Library\\/Filesystems\\/.+/ OR\n /\\/usr\\/lib\\/virtualbox\\/.+/ OR\n /\\/Library\\/Application.*/ OR\n \"/run/postgresql\" OR\n \"/var/crash\" OR\n \"/var/run/postgresql\" OR\n /\\/usr\\/bin\\/.+/ OR /\\/usr\\/local\\/share\\/.+/ OR\n /\\/Applications\\/.+/ OR /\\/usr\\/libexec\\/.+/ OR\n \"/var/metrics\" OR /\\/var\\/lib\\/dpkg\\/.+/ OR\n /\\/run\\/log\\/journal\\/.*/ OR\n \\/Users\\/*\\/.minikube\\/bin\\/docker-machine-driver-hyperkit\n ) AND\n NOT process.parent.executable:\n (\n /\\/var\\/lib\\/docker\\/.+/ OR\n \"/System/Library/PrivateFrameworks/PackageKit.framework/Versions/A/XPCServices/package_script_service.xpc/Contents/MacOS/package_script_service\" OR\n \"/var/lib/dpkg/info/whoopsie.postinst\"\n )\n"},{"name":"Setuid / Setgid Bit Set via chmod v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary may add the setuid or setgid bit to a file or directory in order to run a file with the privileges of the owning user or group. An adversary can take advantage of this to either do a shell escape or exploit a vulnerability in an application with the setuid or setgid bit to get code running in a different user’s context. Additionally, adversaries can use this mechanism on their own malware to make sure they're able to execute in elevated contexts in the future.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Linux","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.001","name":"Setuid and Setgid","reference":"https://attack.mitre.org/techniques/T1548/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"lucene","query":"event.category:process AND event.type:(start OR process_started) AND\n process.name:chmod AND process.args:(\"+s\" OR \"u+s\" OR /4[0-9]{3}/ OR g+s OR /2[0-9]{3}/) AND\n NOT process.args:\n (\n /.*\\/Applications\\/VirtualBox.app\\/.+/ OR\n /\\/usr\\/local\\/lib\\/python.+/ OR\n /\\/var\\/folders\\/.+\\/FP.*nstallHelper/ OR\n /\\/Library\\/Filesystems\\/.+/ OR\n /\\/usr\\/lib\\/virtualbox\\/.+/ OR\n /\\/Library\\/Application.*/ OR\n \"/run/postgresql\" OR\n \"/var/crash\" OR\n \"/var/run/postgresql\" OR\n /\\/usr\\/bin\\/.+/ OR /\\/usr\\/local\\/share\\/.+/ OR\n /\\/Applications\\/.+/ OR /\\/usr\\/libexec\\/.+/ OR\n \"/var/metrics\" OR /\\/var\\/lib\\/dpkg\\/.+/ OR\n /\\/run\\/log\\/journal\\/.*/ OR\n \\/Users\\/*\\/.minikube\\/bin\\/docker-machine-driver-hyperkit\n ) AND\n NOT process.parent.executable:\n (\n /\\/var\\/lib\\/docker\\/.+/ OR\n \"/System/Library/PrivateFrameworks/PackageKit.framework/Versions/A/XPCServices/package_script_service.xpc/Contents/MacOS/package_script_service\" OR\n \"/var/lib/dpkg/info/whoopsie.postinst\"\n )\n"},{"name":"Setuid / Setgid Bit Set via chmod v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary may add the setuid or setgid bit to a file or directory in order to run a file with the privileges of the owning user or group. An adversary can take advantage of this to either do a shell escape or exploit a vulnerability in an application with the setuid or setgid bit to get code running in a different user’s context. Additionally, adversaries can use this mechanism on their own malware to make sure they're able to execute in elevated contexts in the future.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Linux","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.001","name":"Setuid and Setgid","reference":"https://attack.mitre.org/techniques/T1548/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"lucene","query":"event.category:process AND event.type:(start OR process_started) AND\n process.name:chmod AND process.args:(\"+s\" OR \"u+s\" OR /4[0-9]{3}/ OR g+s OR /2[0-9]{3}/) AND\n NOT process.args:\n (\n /.*\\/Applications\\/VirtualBox.app\\/.+/ OR\n /\\/usr\\/local\\/lib\\/python.+/ OR\n /\\/var\\/folders\\/.+\\/FP.*nstallHelper/ OR\n /\\/Library\\/Filesystems\\/.+/ OR\n /\\/usr\\/lib\\/virtualbox\\/.+/ OR\n /\\/Library\\/Application.*/ OR\n \"/run/postgresql\" OR\n \"/var/crash\" OR\n \"/var/run/postgresql\" OR\n /\\/usr\\/bin\\/.+/ OR /\\/usr\\/local\\/share\\/.+/ OR\n /\\/Applications\\/.+/ OR /\\/usr\\/libexec\\/.+/ OR\n \"/var/metrics\" OR /\\/var\\/lib\\/dpkg\\/.+/ OR\n /\\/run\\/log\\/journal\\/.*/ OR\n \\/Users\\/*\\/.minikube\\/bin\\/docker-machine-driver-hyperkit\n ) AND\n NOT process.parent.executable:\n (\n /\\/var\\/lib\\/docker\\/.+/ OR\n \"/System/Library/PrivateFrameworks/PackageKit.framework/Versions/A/XPCServices/package_script_service.xpc/Contents/MacOS/package_script_service\" OR\n \"/var/lib/dpkg/info/whoopsie.postinst\"\n )\n"}]},"id":"8a1b0278-0f9a-487d-96bd-d4833298e87a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/8a1d4831-3ce6-4859-9891-28931fa6101d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/8a1d4831-3ce6-4859-9891-28931fa6101d.json new file mode 100644 index 0000000000000..12e8b460b8dea --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/8a1d4831-3ce6-4859-9891-28931fa6101d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"8a1d4831-3ce6-4859-9891-28931fa6101d","versions":[{"name":"Suspicious Execution from a Mounted Device v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a script interpreter or signed binary is launched via a non-standard working directory. An attacker may use this technique to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2021/05/27/new-sophisticated-email-based-attack-from-nobelium/","https://www.volexity.com/blog/2021/05/27/suspected-apt29-operation-launches-election-fraud-themed-phishing-campaigns/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.005","name":"Mshta","reference":"https://attack.mitre.org/techniques/T1218/005/"},{"id":"T1218.010","name":"Regsvr32","reference":"https://attack.mitre.org/techniques/T1218/010/"},{"id":"T1218.011","name":"Rundll32","reference":"https://attack.mitre.org/techniques/T1218/011/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.executable : \"C:\\\\*\" and\n (process.working_directory : \"?:\\\\\" and not process.working_directory: \"C:\\\\\") and\n process.parent.name : \"explorer.exe\" and\n process.name : (\"rundll32.exe\", \"mshta.exe\", \"powershell.exe\", \"pwsh.exe\", \"cmd.exe\", \"regsvr32.exe\",\n \"cscript.exe\", \"wscript.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.working_directory","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious Execution from a Mounted Device v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a script interpreter or signed binary is launched via a non-standard working directory. An attacker may use this technique to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2021/05/27/new-sophisticated-email-based-attack-from-nobelium/","https://www.volexity.com/blog/2021/05/27/suspected-apt29-operation-launches-election-fraud-themed-phishing-campaigns/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.005","name":"Mshta","reference":"https://attack.mitre.org/techniques/T1218/005/"},{"id":"T1218.010","name":"Regsvr32","reference":"https://attack.mitre.org/techniques/T1218/010/"},{"id":"T1218.011","name":"Rundll32","reference":"https://attack.mitre.org/techniques/T1218/011/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.executable : \"C:\\\\*\" and\n (process.working_directory : \"?:\\\\\" and not process.working_directory: \"C:\\\\\") and\n process.parent.name : \"explorer.exe\" and\n process.name : (\"rundll32.exe\", \"mshta.exe\", \"powershell.exe\", \"pwsh.exe\", \"cmd.exe\", \"regsvr32.exe\",\n \"cscript.exe\", \"wscript.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.working_directory","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious Execution from a Mounted Device v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a script interpreter or signed binary is launched via a non-standard working directory. An attacker may use this technique to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2021/05/27/new-sophisticated-email-based-attack-from-nobelium/","https://www.volexity.com/blog/2021/05/27/suspected-apt29-operation-launches-election-fraud-themed-phishing-campaigns/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.005","name":"Mshta","reference":"https://attack.mitre.org/techniques/T1218/005/"},{"id":"T1218.010","name":"Regsvr32","reference":"https://attack.mitre.org/techniques/T1218/010/"},{"id":"T1218.011","name":"Rundll32","reference":"https://attack.mitre.org/techniques/T1218/011/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.executable : \"C:\\\\*\" and\n (process.working_directory : \"?:\\\\\" and not process.working_directory: \"C:\\\\\") and\n process.parent.name : \"explorer.exe\" and\n process.name : (\"rundll32.exe\", \"mshta.exe\", \"powershell.exe\", \"pwsh.exe\", \"cmd.exe\", \"regsvr32.exe\",\n \"cscript.exe\", \"wscript.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.working_directory","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"8a1d4831-3ce6-4859-9891-28931fa6101d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/8a5c1e5f-ad63-481e-b53a-ef959230f7f1.json b/fleet-packages/detection-rules-composite/kibana/security_rule/8a5c1e5f-ad63-481e-b53a-ef959230f7f1.json new file mode 100644 index 0000000000000..bf271a254d74a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/8a5c1e5f-ad63-481e-b53a-ef959230f7f1.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"8a5c1e5f-ad63-481e-b53a-ef959230f7f1","versions":[{"name":"Attempt to Deactivate an Okta Network Zone v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to deactivate an Okta network zone. Okta network zones can be configured to limit or restrict access to a network based on IP addresses or geolocations. An adversary may attempt to modify, delete, or deactivate an Okta network zone in order to remove or weaken an organization's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if your organization's Okta network zones are regularly modified."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/network/network-zones.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Network Security","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:zone.deactivate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Deactivate an Okta Network Zone v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to deactivate an Okta network zone. Okta network zones can be configured to limit or restrict access to a network based on IP addresses or geolocations. An adversary may attempt to modify, delete, or deactivate an Okta network zone in order to remove or weaken an organization's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if your organization's Okta network zones are regularly modified."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/network/network-zones.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Network Security","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:zone.deactivate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Deactivate an Okta Network Zone v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to deactivate an Okta network zone. Okta network zones can be configured to limit or restrict access to a network based on IP addresses or geolocations. An adversary may attempt to modify, delete, or deactivate an Okta network zone in order to remove or weaken an organization's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if your organization's Okta network zones are regularly modified."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/network/network-zones.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Network Security","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:zone.deactivate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"8a5c1e5f-ad63-481e-b53a-ef959230f7f1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/8acb7614-1d92-4359-bfcf-478b6d9de150.json b/fleet-packages/detection-rules-composite/kibana/security_rule/8acb7614-1d92-4359-bfcf-478b6d9de150.json new file mode 100644 index 0000000000000..871f521c99ffe --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/8acb7614-1d92-4359-bfcf-478b6d9de150.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"8acb7614-1d92-4359-bfcf-478b6d9de150","versions":[{"name":"Suspicious JAVA Child Process v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious child processes of the Java interpreter process. This may indicate an attempt to execute a malicious JAR file or an exploitation attempt via a JAVA specific vulnerability.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Java Child Process\n\nThis rule identifies a suspicious child process of the Java interpreter process. It may indicate an attempt to execute\na malicious JAR file or an exploitation attempt via a Java specific vulnerability.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence and whether they are located in expected locations.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, file modifications, and any\nspawned child processes.\n- Examine the command line to determine if the command executed is potentially harmful or malicious.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination\nof process and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.lunasec.io/docs/blog/log4j-zero-day/","https://github.com/christophetd/log4shell-vulnerable-app","https://www.blackhat.com/docs/us-16/materials/us-16-Munoz-A-Journey-From-JNDI-LDAP-Manipulation-To-RCE.pdf","https://www.elastic.co/security-labs/detecting-log4j2-with-elastic-security","https://www.elastic.co/security-labs/analysis-of-log4shell-cve-2021-45046"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.007","name":"JavaScript","reference":"https://attack.mitre.org/techniques/T1059/007/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.parent.name : \"java\" and\n process.name : (\"sh\", \"bash\", \"dash\", \"ksh\", \"tcsh\", \"zsh\", \"curl\", \"wget\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious JAVA Child Process v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious child processes of the Java interpreter process. This may indicate an attempt to execute a malicious JAR file or an exploitation attempt via a JAVA specific vulnerability.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Java Child Process\n\nThis rule identifies a suspicious child process of the Java interpreter process. It may indicate an attempt to execute\na malicious JAR file or an exploitation attempt via a Java specific vulnerability.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence and whether they are located in expected locations.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, file modifications, and any\nspawned child processes.\n- Examine the command line to determine if the command executed is potentially harmful or malicious.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination\nof process and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.lunasec.io/docs/blog/log4j-zero-day/","https://github.com/christophetd/log4shell-vulnerable-app","https://www.blackhat.com/docs/us-16/materials/us-16-Munoz-A-Journey-From-JNDI-LDAP-Manipulation-To-RCE.pdf","https://www.elastic.co/security-labs/detecting-log4j2-with-elastic-security","https://www.elastic.co/security-labs/analysis-of-log4shell-cve-2021-45046"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.007","name":"JavaScript","reference":"https://attack.mitre.org/techniques/T1059/007/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.parent.name : \"java\" and\n process.name : (\"sh\", \"bash\", \"dash\", \"ksh\", \"tcsh\", \"zsh\", \"curl\", \"wget\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious JAVA Child Process v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious child processes of the Java interpreter process. This may indicate an attempt to execute a malicious JAR file or an exploitation attempt via a JAVA specific vulnerability.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Java Child Process\n\nThis rule identifies a suspicious child process of the Java interpreter process. It may indicate an attempt to execute\na malicious JAR file or an exploitation attempt via a Java specific vulnerability.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence and whether they are located in expected locations.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, file modifications, and any\nspawned child processes.\n- Examine the command line to determine if the command executed is potentially harmful or malicious.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination\nof process and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.lunasec.io/docs/blog/log4j-zero-day/","https://github.com/christophetd/log4shell-vulnerable-app","https://www.blackhat.com/docs/us-16/materials/us-16-Munoz-A-Journey-From-JNDI-LDAP-Manipulation-To-RCE.pdf","https://www.elastic.co/security-labs/detecting-log4j2-with-elastic-security","https://www.elastic.co/security-labs/analysis-of-log4shell-cve-2021-45046"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.007","name":"JavaScript","reference":"https://attack.mitre.org/techniques/T1059/007/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.parent.name : \"java\" and\n process.name : (\"sh\", \"bash\", \"dash\", \"ksh\", \"tcsh\", \"zsh\", \"curl\", \"wget\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"8acb7614-1d92-4359-bfcf-478b6d9de150","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/8b2b3a62-a598-4293-bc14-3d5fa22bb98f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/8b2b3a62-a598-4293-bc14-3d5fa22bb98f.json new file mode 100644 index 0000000000000..14784fe5e8cbf --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/8b2b3a62-a598-4293-bc14-3d5fa22bb98f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"8b2b3a62-a598-4293-bc14-3d5fa22bb98f","versions":[{"name":"Executable File Creation with Multiple Extensions v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Masquerading can allow an adversary to evade defenses and better blend in with the environment. One way it occurs is when the name or location of a file is manipulated as a means of tricking a user into executing what they think is a benign file type but is actually executable code.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.007","name":"Double File Extension","reference":"https://attack.mitre.org/techniques/T1036/007/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1204","name":"User Execution","reference":"https://attack.mitre.org/techniques/T1204/","subtechnique":[{"id":"T1204.002","name":"Malicious File","reference":"https://attack.mitre.org/techniques/T1204/002/"}]}]}],"language":"eql","query":"file where event.type == \"creation\" and file.extension : \"exe\" and\n file.name regex~ \"\"\".*\\.(vbs|vbe|bat|js|cmd|wsh|ps1|pdf|docx?|xlsx?|pptx?|txt|rtf|gif|jpg|png|bmp|hta|txt|img|iso)\\.exe\"\"\" and\n not (process.executable : (\"?:\\\\Windows\\\\System32\\\\msiexec.exe\", \"C:\\\\Users\\\\*\\\\QGIS_SCCM\\\\Files\\\\QGIS-OSGeo4W-*-Setup-x86_64.exe\") and\n file.path : \"?:\\\\Program Files\\\\QGIS *\\\\apps\\\\grass\\\\*.exe\") and\n not process.executable : (\"/bin/sh\", \"/usr/sbin/MailScanner\", \"/usr/bin/perl\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Executable File Creation with Multiple Extensions v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Masquerading can allow an adversary to evade defenses and better blend in with the environment. One way it occurs is when the name or location of a file is manipulated as a means of tricking a user into executing what they think is a benign file type but is actually executable code.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.007","name":"Double File Extension","reference":"https://attack.mitre.org/techniques/T1036/007/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1204","name":"User Execution","reference":"https://attack.mitre.org/techniques/T1204/","subtechnique":[{"id":"T1204.002","name":"Malicious File","reference":"https://attack.mitre.org/techniques/T1204/002/"}]}]}],"language":"eql","query":"file where event.type == \"creation\" and file.extension : \"exe\" and\n file.name regex~ \"\"\".*\\.(vbs|vbe|bat|js|cmd|wsh|ps1|pdf|docx?|xlsx?|pptx?|txt|rtf|gif|jpg|png|bmp|hta|txt|img|iso)\\.exe\"\"\" and\n not (process.executable : (\"?:\\\\Windows\\\\System32\\\\msiexec.exe\", \"C:\\\\Users\\\\*\\\\QGIS_SCCM\\\\Files\\\\QGIS-OSGeo4W-*-Setup-x86_64.exe\") and\n file.path : \"?:\\\\Program Files\\\\QGIS *\\\\apps\\\\grass\\\\*.exe\") and\n not process.executable : (\"/bin/sh\", \"/usr/sbin/MailScanner\", \"/usr/bin/perl\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Executable File Creation with Multiple Extensions v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Masquerading can allow an adversary to evade defenses and better blend in with the environment. One way it occurs is when the name or location of a file is manipulated as a means of tricking a user into executing what they think is a benign file type but is actually executable code.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.007","name":"Double File Extension","reference":"https://attack.mitre.org/techniques/T1036/007/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1204","name":"User Execution","reference":"https://attack.mitre.org/techniques/T1204/","subtechnique":[{"id":"T1204.002","name":"Malicious File","reference":"https://attack.mitre.org/techniques/T1204/002/"}]}]}],"language":"eql","query":"file where event.type == \"creation\" and file.extension : \"exe\" and\n file.name regex~ \"\"\".*\\.(vbs|vbe|bat|js|cmd|wsh|ps1|pdf|docx?|xlsx?|pptx?|txt|rtf|gif|jpg|png|bmp|hta|txt|img|iso)\\.exe\"\"\" and\n not (process.executable : (\"?:\\\\Windows\\\\System32\\\\msiexec.exe\", \"C:\\\\Users\\\\*\\\\QGIS_SCCM\\\\Files\\\\QGIS-OSGeo4W-*-Setup-x86_64.exe\") and\n file.path : \"?:\\\\Program Files\\\\QGIS *\\\\apps\\\\grass\\\\*.exe\") and\n not process.executable : (\"/bin/sh\", \"/usr/sbin/MailScanner\", \"/usr/bin/perl\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"8b2b3a62-a598-4293-bc14-3d5fa22bb98f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/8b4f0816-6a65-4630-86a6-c21c179c0d09.json b/fleet-packages/detection-rules-composite/kibana/security_rule/8b4f0816-6a65-4630-86a6-c21c179c0d09.json new file mode 100644 index 0000000000000..74dde02ece41b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/8b4f0816-6a65-4630-86a6-c21c179c0d09.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"8b4f0816-6a65-4630-86a6-c21c179c0d09","versions":[{"name":"Enable Host Network Discovery via Netsh v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the netsh.exe program to enable host discovery via the network. Attackers can use this command-line tool to weaken the host firewall settings.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Enable Host Network Discovery via Netsh\n\nThe Windows Defender Firewall is a native component that provides host-based, two-way network traffic filtering for a\ndevice and blocks unauthorized network traffic flowing into or out of the local device.\n\nAttackers can enable Network Discovery on the Windows firewall to find other systems present in the same network. Systems\nwith this setting enabled will communicate with other systems using broadcast messages, which can be used to identify\ntargets for lateral movement. This rule looks for the setup of this setting using the netsh utility.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity\nand there are justifications for this configuration.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Disable Network Discovery:\n - Using netsh: `netsh advfirewall firewall set rule group=\"Network Discovery\" new enable=No`\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Host Windows Firewall planned system administration changes."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.004","name":"Disable or Modify System Firewall","reference":"https://attack.mitre.org/techniques/T1562/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\nprocess.name : \"netsh.exe\" and\nprocess.args : (\"firewall\", \"advfirewall\") and process.args : \"group=Network Discovery\" and process.args : \"enable=Yes\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Enable Host Network Discovery via Netsh v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the netsh.exe program to enable host discovery via the network. Attackers can use this command-line tool to weaken the host firewall settings.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Enable Host Network Discovery via Netsh\n\nThe Windows Defender Firewall is a native component that provides host-based, two-way network traffic filtering for a\ndevice and blocks unauthorized network traffic flowing into or out of the local device.\n\nAttackers can enable Network Discovery on the Windows firewall to find other systems present in the same network. Systems\nwith this setting enabled will communicate with other systems using broadcast messages, which can be used to identify\ntargets for lateral movement. This rule looks for the setup of this setting using the netsh utility.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity\nand there are justifications for this configuration.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Disable Network Discovery:\n - Using netsh: `netsh advfirewall firewall set rule group=\"Network Discovery\" new enable=No`\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Host Windows Firewall planned system administration changes."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.004","name":"Disable or Modify System Firewall","reference":"https://attack.mitre.org/techniques/T1562/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\nprocess.name : \"netsh.exe\" and\nprocess.args : (\"firewall\", \"advfirewall\") and process.args : \"group=Network Discovery\" and process.args : \"enable=Yes\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Enable Host Network Discovery via Netsh v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the netsh.exe program to enable host discovery via the network. Attackers can use this command-line tool to weaken the host firewall settings.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Enable Host Network Discovery via Netsh\n\nThe Windows Defender Firewall is a native component that provides host-based, two-way network traffic filtering for a\ndevice and blocks unauthorized network traffic flowing into or out of the local device.\n\nAttackers can enable Network Discovery on the Windows firewall to find other systems present in the same network. Systems\nwith this setting enabled will communicate with other systems using broadcast messages, which can be used to identify\ntargets for lateral movement. This rule looks for the setup of this setting using the netsh utility.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity\nand there are justifications for this configuration.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Disable Network Discovery:\n - Using netsh: `netsh advfirewall firewall set rule group=\"Network Discovery\" new enable=No`\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Host Windows Firewall planned system administration changes."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.004","name":"Disable or Modify System Firewall","reference":"https://attack.mitre.org/techniques/T1562/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\nprocess.name : \"netsh.exe\" and\nprocess.args : (\"firewall\", \"advfirewall\") and process.args : \"group=Network Discovery\" and process.args : \"enable=Yes\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"8b4f0816-6a65-4630-86a6-c21c179c0d09","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/8b64d36a-1307-4b2e-a77b-a0027e4d27c8.json b/fleet-packages/detection-rules-composite/kibana/security_rule/8b64d36a-1307-4b2e-a77b-a0027e4d27c8.json new file mode 100644 index 0000000000000..e3ad52515b0d0 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/8b64d36a-1307-4b2e-a77b-a0027e4d27c8.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"8b64d36a-1307-4b2e-a77b-a0027e4d27c8","versions":[{"name":"Azure Kubernetes Events Deleted v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when events are deleted in Azure Kubernetes. Kubernetes events are objects that log any state changes. Example events are a container creation, an image pull, or a pod scheduling on a node. An adversary may delete events in Azure Kubernetes in an attempt to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Events deletions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Events deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkubernetes"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.KUBERNETES/CONNECTEDCLUSTERS/EVENTS.K8S.IO/EVENTS/DELETE\" and\nevent.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Kubernetes Events Deleted v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when events are deleted in Azure Kubernetes. Kubernetes events are objects that log any state changes. Example events are a container creation, an image pull, or a pod scheduling on a node. An adversary may delete events in Azure Kubernetes in an attempt to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Events deletions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Events deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkubernetes"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.KUBERNETES/CONNECTEDCLUSTERS/EVENTS.K8S.IO/EVENTS/DELETE\" and\nevent.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Kubernetes Events Deleted v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when events are deleted in Azure Kubernetes. Kubernetes events are objects that log any state changes. Example events are a container creation, an image pull, or a pod scheduling on a node. An adversary may delete events in Azure Kubernetes in an attempt to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Events deletions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Events deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkubernetes"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.KUBERNETES/CONNECTEDCLUSTERS/EVENTS.K8S.IO/EVENTS/DELETE\" and\nevent.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"8b64d36a-1307-4b2e-a77b-a0027e4d27c8","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/8c1bdde8-4204-45c0-9e0c-c85ca3902488.json b/fleet-packages/detection-rules-composite/kibana/security_rule/8c1bdde8-4204-45c0-9e0c-c85ca3902488.json new file mode 100644 index 0000000000000..074748f8cc588 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/8c1bdde8-4204-45c0-9e0c-c85ca3902488.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"8c1bdde8-4204-45c0-9e0c-c85ca3902488","versions":[{"name":"RDP (Remote Desktop Protocol) from the Internet v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of RDP traffic from the Internet. RDP is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.","risk_score":47,"severity":"medium","license":"Elastic License v2","timeline_id":"300afc76-072d-4261-864d-4149714bf3f1","timeline_title":"Comprehensive Network Timeline","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some network security policies allow RDP directly from the Internet but usage that is unfamiliar to server or network owners can be unexpected and suspicious. RDP services may be exposed directly to the Internet in some networks such as cloud environments. In such cases, only RDP gateways, bastions or jump servers may be expected expose RDP directly to the Internet and can be exempted from this rule. RDP may be required by some work-flows such as remote access and support for specialized software products and servers. Such work-flows are usually known and not unexpected."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and (destination.port:3389 or event.dataset:zeek.rdp) and\n not source.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n ) and\n destination.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},{"name":"RDP (Remote Desktop Protocol) from the Internet v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of RDP traffic from the Internet. RDP is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.","risk_score":47,"severity":"medium","license":"Elastic License v2","timeline_id":"300afc76-072d-4261-864d-4149714bf3f1","timeline_title":"Comprehensive Network Timeline","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some network security policies allow RDP directly from the Internet but usage that is unfamiliar to server or network owners can be unexpected and suspicious. RDP services may be exposed directly to the Internet in some networks such as cloud environments. In such cases, only RDP gateways, bastions or jump servers may be expected expose RDP directly to the Internet and can be exempted from this rule. RDP may be required by some work-flows such as remote access and support for specialized software products and servers. Such work-flows are usually known and not unexpected."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and (destination.port:3389 or event.dataset:zeek.rdp) and\n not source.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n ) and\n destination.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},{"name":"RDP (Remote Desktop Protocol) from the Internet v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of RDP traffic from the Internet. RDP is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.","risk_score":47,"severity":"medium","license":"Elastic License v2","timeline_id":"300afc76-072d-4261-864d-4149714bf3f1","timeline_title":"Comprehensive Network Timeline","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some network security policies allow RDP directly from the Internet but usage that is unfamiliar to server or network owners can be unexpected and suspicious. RDP services may be exposed directly to the Internet in some networks such as cloud environments. In such cases, only RDP gateways, bastions or jump servers may be expected expose RDP directly to the Internet and can be exempted from this rule. RDP may be required by some work-flows such as remote access and support for specialized software products and servers. Such work-flows are usually known and not unexpected."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and (destination.port:3389 or event.dataset:zeek.rdp) and\n not source.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n ) and\n destination.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]}]},"id":"8c1bdde8-4204-45c0-9e0c-c85ca3902488","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45.json b/fleet-packages/detection-rules-composite/kibana/security_rule/8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45.json new file mode 100644 index 0000000000000..da6499c0e9de1 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45","versions":[{"name":"Unusual Child Process of dns.exe v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an unexpected process spawning from dns.exe, the process responsible for Windows DNS server services, which may indicate activity related to remote code execution or other forms of exploitation.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Child Process of dns.exe\n\nSIGRed (CVE-2020-1350) is a wormable, critical vulnerability in the Windows DNS server that affects Windows Server\nversions 2003 to 2019 and can be triggered by a malicious DNS response. Because the service is running in elevated\nprivileges (SYSTEM), an attacker that successfully exploits it is granted Domain Administrator rights. This can\neffectively compromise the entire corporate infrastructure.\n\nThis rule looks for unusual children of the `dns.exe` process, which can indicate the exploitation of the SIGRed or a\nsimilar remote code execution vulnerability in the DNS server.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes.\n - Any suspicious or abnormal child process spawned from dns.exe should be carefully reviewed and investigated. It's\n impossible to predict what an adversary may deploy as the follow-on process after the exploit, but built-in\n discovery/enumeration utilities should be top of mind (`whoami.exe`, `netstat.exe`, `systeminfo.exe`, `tasklist.exe`).\n - Built-in Windows programs that contain capabilities used to download and execute additional payloads should also be\n considered. This is not an exhaustive list, but ideal candidates to start out would be: `mshta.exe`, `powershell.exe`,\n `regsvr32.exe`, `rundll32.exe`, `wscript.exe`, `wmic.exe`.\n - If a denial-of-service (DoS) exploit is successful and DNS Server service crashes, be mindful of potential child processes related to\n `werfault.exe` occurring.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Investigate other alerts associated with the host during the past 48 hours.\n- Check whether the server is vulnerable to CVE-2020-1350.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system or restore the compromised server to a clean state.\n- Install the latest patches on systems that run Microsoft DNS Server.\n- Consider the implementation of a patch management system, such as the Windows Server Update Services (WSUS).\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Werfault.exe will legitimately spawn when dns.exe crashes, but the DNS service is very stable and so this is a low occurring event. Denial of Service (DoS) attempts by intentionally crashing the service will also cause werfault.exe to spawn."],"from":"now-9m","references":["https://research.checkpoint.com/2020/resolving-your-way-into-domain-admin-exploiting-a-17-year-old-bug-in-windows-dns-servers/","https://msrc-blog.microsoft.com/2020/07/14/july-2020-security-update-cve-2020-1350-vulnerability-in-windows-domain-name-system-dns-server/","https://github.com/maxpl0it/CVE-2020-1350-DoS","https://www.elastic.co/security-labs/detection-rules-for-sigred-vulnerability"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1133","name":"External Remote Services","reference":"https://attack.mitre.org/techniques/T1133/"}]}],"language":"eql","query":"process where event.type == \"start\" and process.parent.name : \"dns.exe\" and\n not process.name : \"conhost.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Unusual Child Process of dns.exe v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an unexpected process spawning from dns.exe, the process responsible for Windows DNS server services, which may indicate activity related to remote code execution or other forms of exploitation.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Child Process of dns.exe\n\nSIGRed (CVE-2020-1350) is a wormable, critical vulnerability in the Windows DNS server that affects Windows Server\nversions 2003 to 2019 and can be triggered by a malicious DNS response. Because the service is running in elevated\nprivileges (SYSTEM), an attacker that successfully exploits it is granted Domain Administrator rights. This can\neffectively compromise the entire corporate infrastructure.\n\nThis rule looks for unusual children of the `dns.exe` process, which can indicate the exploitation of the SIGRed or a\nsimilar remote code execution vulnerability in the DNS server.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes.\n - Any suspicious or abnormal child process spawned from dns.exe should be carefully reviewed and investigated. It's\n impossible to predict what an adversary may deploy as the follow-on process after the exploit, but built-in\n discovery/enumeration utilities should be top of mind (`whoami.exe`, `netstat.exe`, `systeminfo.exe`, `tasklist.exe`).\n - Built-in Windows programs that contain capabilities used to download and execute additional payloads should also be\n considered. This is not an exhaustive list, but ideal candidates to start out would be: `mshta.exe`, `powershell.exe`,\n `regsvr32.exe`, `rundll32.exe`, `wscript.exe`, `wmic.exe`.\n - If a denial-of-service (DoS) exploit is successful and DNS Server service crashes, be mindful of potential child processes related to\n `werfault.exe` occurring.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Investigate other alerts associated with the host during the past 48 hours.\n- Check whether the server is vulnerable to CVE-2020-1350.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system or restore the compromised server to a clean state.\n- Install the latest patches on systems that run Microsoft DNS Server.\n- Consider the implementation of a patch management system, such as the Windows Server Update Services (WSUS).\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Werfault.exe will legitimately spawn when dns.exe crashes, but the DNS service is very stable and so this is a low occurring event. Denial of Service (DoS) attempts by intentionally crashing the service will also cause werfault.exe to spawn."],"from":"now-9m","references":["https://research.checkpoint.com/2020/resolving-your-way-into-domain-admin-exploiting-a-17-year-old-bug-in-windows-dns-servers/","https://msrc-blog.microsoft.com/2020/07/14/july-2020-security-update-cve-2020-1350-vulnerability-in-windows-domain-name-system-dns-server/","https://github.com/maxpl0it/CVE-2020-1350-DoS","https://www.elastic.co/security-labs/detection-rules-for-sigred-vulnerability"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1133","name":"External Remote Services","reference":"https://attack.mitre.org/techniques/T1133/"}]}],"language":"eql","query":"process where event.type == \"start\" and process.parent.name : \"dns.exe\" and\n not process.name : \"conhost.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Unusual Child Process of dns.exe v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an unexpected process spawning from dns.exe, the process responsible for Windows DNS server services, which may indicate activity related to remote code execution or other forms of exploitation.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Child Process of dns.exe\n\nSIGRed (CVE-2020-1350) is a wormable, critical vulnerability in the Windows DNS server that affects Windows Server\nversions 2003 to 2019 and can be triggered by a malicious DNS response. Because the service is running in elevated\nprivileges (SYSTEM), an attacker that successfully exploits it is granted Domain Administrator rights. This can\neffectively compromise the entire corporate infrastructure.\n\nThis rule looks for unusual children of the `dns.exe` process, which can indicate the exploitation of the SIGRed or a\nsimilar remote code execution vulnerability in the DNS server.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes.\n - Any suspicious or abnormal child process spawned from dns.exe should be carefully reviewed and investigated. It's\n impossible to predict what an adversary may deploy as the follow-on process after the exploit, but built-in\n discovery/enumeration utilities should be top of mind (`whoami.exe`, `netstat.exe`, `systeminfo.exe`, `tasklist.exe`).\n - Built-in Windows programs that contain capabilities used to download and execute additional payloads should also be\n considered. This is not an exhaustive list, but ideal candidates to start out would be: `mshta.exe`, `powershell.exe`,\n `regsvr32.exe`, `rundll32.exe`, `wscript.exe`, `wmic.exe`.\n - If a denial-of-service (DoS) exploit is successful and DNS Server service crashes, be mindful of potential child processes related to\n `werfault.exe` occurring.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Investigate other alerts associated with the host during the past 48 hours.\n- Check whether the server is vulnerable to CVE-2020-1350.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system or restore the compromised server to a clean state.\n- Install the latest patches on systems that run Microsoft DNS Server.\n- Consider the implementation of a patch management system, such as the Windows Server Update Services (WSUS).\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Werfault.exe will legitimately spawn when dns.exe crashes, but the DNS service is very stable and so this is a low occurring event. Denial of Service (DoS) attempts by intentionally crashing the service will also cause werfault.exe to spawn."],"from":"now-9m","references":["https://research.checkpoint.com/2020/resolving-your-way-into-domain-admin-exploiting-a-17-year-old-bug-in-windows-dns-servers/","https://msrc-blog.microsoft.com/2020/07/14/july-2020-security-update-cve-2020-1350-vulnerability-in-windows-domain-name-system-dns-server/","https://github.com/maxpl0it/CVE-2020-1350-DoS","https://www.elastic.co/security-labs/detection-rules-for-sigred-vulnerability"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1133","name":"External Remote Services","reference":"https://attack.mitre.org/techniques/T1133/"}]}],"language":"eql","query":"process where event.type == \"start\" and process.parent.name : \"dns.exe\" and\n not process.name : \"conhost.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/8c81e506-6e82-4884-9b9a-75d3d252f967.json b/fleet-packages/detection-rules-composite/kibana/security_rule/8c81e506-6e82-4884-9b9a-75d3d252f967.json new file mode 100644 index 0000000000000..ae15f1cfac592 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/8c81e506-6e82-4884-9b9a-75d3d252f967.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"8c81e506-6e82-4884-9b9a-75d3d252f967","versions":[{"name":"Potential SharpRDP Behavior v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential behavior of SharpRDP, which is a tool that can be used to perform authenticated command execution against a remote target via Remote Desktop Protocol (RDP) for the purposes of lateral movement.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/revisiting-remote-desktop-lateral-movement-8fb905cb46c3","https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES/blob/master/Lateral%20Movement/LM_sysmon_3_12_13_1_SharpRDP.evtx"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.001","name":"Remote Desktop Protocol","reference":"https://attack.mitre.org/techniques/T1021/001/"}]}]}],"language":"eql","query":"/* Incoming RDP followed by a new RunMRU string value set to cmd, powershell, taskmgr or tsclient, followed by process execution within 1m */\n\nsequence by host.id with maxspan=1m\n [network where event.type == \"start\" and process.name : \"svchost.exe\" and destination.port == 3389 and\n network.direction : (\"incoming\", \"ingress\") and network.transport == \"tcp\" and\n source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ]\n\n [registry where process.name : \"explorer.exe\" and\n registry.path : (\"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\RunMRU\\\\*\") and\n registry.data.strings : (\"cmd.exe*\", \"powershell.exe*\", \"taskmgr*\", \"\\\\\\\\tsclient\\\\*.exe\\\\*\")\n ]\n\n [process where event.type == \"start\" and\n (process.parent.name : (\"cmd.exe\", \"powershell.exe\", \"taskmgr.exe\") or process.args : (\"\\\\\\\\tsclient\\\\*.exe\")) and\n not process.name : \"conhost.exe\"\n ]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},{"name":"Potential SharpRDP Behavior v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential behavior of SharpRDP, which is a tool that can be used to perform authenticated command execution against a remote target via Remote Desktop Protocol (RDP) for the purposes of lateral movement.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/revisiting-remote-desktop-lateral-movement-8fb905cb46c3","https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES/blob/master/Lateral%20Movement/LM_sysmon_3_12_13_1_SharpRDP.evtx"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.001","name":"Remote Desktop Protocol","reference":"https://attack.mitre.org/techniques/T1021/001/"}]}]}],"language":"eql","query":"/* Incoming RDP followed by a new RunMRU string value set to cmd, powershell, taskmgr or tsclient, followed by process execution within 1m */\n\nsequence by host.id with maxspan=1m\n [network where event.type == \"start\" and process.name : \"svchost.exe\" and destination.port == 3389 and\n network.direction : (\"incoming\", \"ingress\") and network.transport == \"tcp\" and\n source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ]\n\n [registry where process.name : \"explorer.exe\" and\n registry.path : (\"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\RunMRU\\\\*\") and\n registry.data.strings : (\"cmd.exe*\", \"powershell.exe*\", \"taskmgr*\", \"\\\\\\\\tsclient\\\\*.exe\\\\*\")\n ]\n\n [process where event.type == \"start\" and\n (process.parent.name : (\"cmd.exe\", \"powershell.exe\", \"taskmgr.exe\") or process.args : (\"\\\\\\\\tsclient\\\\*.exe\")) and\n not process.name : \"conhost.exe\"\n ]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},{"name":"Potential SharpRDP Behavior v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential behavior of SharpRDP, which is a tool that can be used to perform authenticated command execution against a remote target via Remote Desktop Protocol (RDP) for the purposes of lateral movement.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/revisiting-remote-desktop-lateral-movement-8fb905cb46c3","https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES/blob/master/Lateral%20Movement/LM_sysmon_3_12_13_1_SharpRDP.evtx"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.001","name":"Remote Desktop Protocol","reference":"https://attack.mitre.org/techniques/T1021/001/"}]}]}],"language":"eql","query":"/* Incoming RDP followed by a new RunMRU string value set to cmd, powershell, taskmgr or tsclient, followed by process execution within 1m */\n\nsequence by host.id with maxspan=1m\n [network where event.type == \"start\" and process.name : \"svchost.exe\" and destination.port == 3389 and\n network.direction : (\"incoming\", \"ingress\") and network.transport == \"tcp\" and\n source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ]\n\n [registry where process.name : \"explorer.exe\" and\n registry.path : (\"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\RunMRU\\\\*\") and\n registry.data.strings : (\"cmd.exe*\", \"powershell.exe*\", \"taskmgr*\", \"\\\\\\\\tsclient\\\\*.exe\\\\*\")\n ]\n\n [process where event.type == \"start\" and\n (process.parent.name : (\"cmd.exe\", \"powershell.exe\", \"taskmgr.exe\") or process.args : (\"\\\\\\\\tsclient\\\\*.exe\")) and\n not process.name : \"conhost.exe\"\n ]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]}]},"id":"8c81e506-6e82-4884-9b9a-75d3d252f967","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/8cb4f625-7743-4dfb-ae1b-ad92be9df7bd.json b/fleet-packages/detection-rules-composite/kibana/security_rule/8cb4f625-7743-4dfb-ae1b-ad92be9df7bd.json new file mode 100644 index 0000000000000..cf29f4ec0a88d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/8cb4f625-7743-4dfb-ae1b-ad92be9df7bd.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"8cb4f625-7743-4dfb-ae1b-ad92be9df7bd","versions":[{"name":"Ransomware - Detected - Elastic Endgame v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected ransomware. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":99,"severity":"critical","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame"],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:ransomware_event or endgame.event_subtype_full:ransomware_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Ransomware - Detected - Elastic Endgame v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected ransomware. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":99,"severity":"critical","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame"],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:ransomware_event or endgame.event_subtype_full:ransomware_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Ransomware - Detected - Elastic Endgame v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected ransomware. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":99,"severity":"critical","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame"],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:ransomware_event or endgame.event_subtype_full:ransomware_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]}]},"id":"8cb4f625-7743-4dfb-ae1b-ad92be9df7bd","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/8cb84371-d053-4f4f-bce0-c74990e28f28.json b/fleet-packages/detection-rules-composite/kibana/security_rule/8cb84371-d053-4f4f-bce0-c74990e28f28.json new file mode 100644 index 0000000000000..a398fb0198acf --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/8cb84371-d053-4f4f-bce0-c74990e28f28.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"8cb84371-d053-4f4f-bce0-c74990e28f28","versions":[{"name":"Potential SSH Password Guessing v1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple SSH login failures followed by a successful one from the same source address. Adversaries can attempt to login into multiple users with a common or known password to gain access to accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential SSH Password Guessing Attack\n\nThe rule identifies consecutive SSH login failures followed by a successful login from the same source IP address to the\nsame target host indicating a successful attempt of brute force password guessing.\n\n#### Possible investigation steps\n\n- Investigate the login failure user name(s).\n- Investigate the source IP address of the failed ssh login attempt(s).\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Infrastructure or availability issue.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Ensure active session(s) on the host(s) are terminated as the attacker could have gained initial\naccess to the system(s).\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified.\n- Reset passwords for these accounts and other potentially compromised credentials.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip, user.name with maxspan=3s\n [authentication where event.action in (\"ssh_login\", \"user_login\") and\n event.outcome == \"failure\" and source.ip != null and source.ip != \"0.0.0.0\" and source.ip != \"::\" ] with runs=2\n\n [authentication where event.action in (\"ssh_login\", \"user_login\") and\n event.outcome == \"success\" and source.ip != null and source.ip != \"0.0.0.0\" and source.ip != \"::\" ]\n","type":"eql","index":["auditbeat-*","logs-system.auth-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.name","type":"keyword"}]},{"name":"Potential SSH Password Guessing v1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple SSH login failures followed by a successful one from the same source address. Adversaries can attempt to login into multiple users with a common or known password to gain access to accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential SSH Password Guessing Attack\n\nThe rule identifies consecutive SSH login failures followed by a successful login from the same source IP address to the\nsame target host indicating a successful attempt of brute force password guessing.\n\n#### Possible investigation steps\n\n- Investigate the login failure user name(s).\n- Investigate the source IP address of the failed ssh login attempt(s).\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Infrastructure or availability issue.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Ensure active session(s) on the host(s) are terminated as the attacker could have gained initial\naccess to the system(s).\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified.\n- Reset passwords for these accounts and other potentially compromised credentials.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip, user.name with maxspan=3s\n [authentication where event.action in (\"ssh_login\", \"user_login\") and\n event.outcome == \"failure\" and source.ip != null and source.ip != \"0.0.0.0\" and source.ip != \"::\" ] with runs=2\n\n [authentication where event.action in (\"ssh_login\", \"user_login\") and\n event.outcome == \"success\" and source.ip != null and source.ip != \"0.0.0.0\" and source.ip != \"::\" ]\n","type":"eql","index":["auditbeat-*","logs-system.auth-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.name","type":"keyword"}]},{"name":"Potential SSH Password Guessing v1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple SSH login failures followed by a successful one from the same source address. Adversaries can attempt to login into multiple users with a common or known password to gain access to accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential SSH Password Guessing Attack\n\nThe rule identifies consecutive SSH login failures followed by a successful login from the same source IP address to the\nsame target host indicating a successful attempt of brute force password guessing.\n\n#### Possible investigation steps\n\n- Investigate the login failure user name(s).\n- Investigate the source IP address of the failed ssh login attempt(s).\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Infrastructure or availability issue.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Ensure active session(s) on the host(s) are terminated as the attacker could have gained initial\naccess to the system(s).\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified.\n- Reset passwords for these accounts and other potentially compromised credentials.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip, user.name with maxspan=3s\n [authentication where event.action in (\"ssh_login\", \"user_login\") and\n event.outcome == \"failure\" and source.ip != null and source.ip != \"0.0.0.0\" and source.ip != \"::\" ] with runs=2\n\n [authentication where event.action in (\"ssh_login\", \"user_login\") and\n event.outcome == \"success\" and source.ip != null and source.ip != \"0.0.0.0\" and source.ip != \"::\" ]\n","type":"eql","index":["auditbeat-*","logs-system.auth-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.name","type":"keyword"}]}]},"id":"8cb84371-d053-4f4f-bce0-c74990e28f28","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/8da41fc9-7735-4b24-9cc6-c78dfc9fc9c9.json b/fleet-packages/detection-rules-composite/kibana/security_rule/8da41fc9-7735-4b24-9cc6-c78dfc9fc9c9.json new file mode 100644 index 0000000000000..511b3809009a3 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/8da41fc9-7735-4b24-9cc6-c78dfc9fc9c9.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"8da41fc9-7735-4b24-9cc6-c78dfc9fc9c9","versions":[{"name":"Potential Privilege Escalation via PKEXEC v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an attempt to exploit a local privilege escalation in polkit pkexec (CVE-2021-4034) via unsecure environment variable injection. Successful exploitation allows an unprivileged user to escalate to the root user.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://seclists.org/oss-sec/2022/q1/80","https://haxx.in/files/blasty-vs-pkexec.c"],"tags":["Elastic","Host","Linux","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.007","name":"Path Interception by PATH Environment Variable","reference":"https://attack.mitre.org/techniques/T1574/007/"}]}]}],"language":"eql","query":"file where file.path : \"/*GCONV_PATH*\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"file.path","type":"keyword"}]},{"name":"Potential Privilege Escalation via PKEXEC v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an attempt to exploit a local privilege escalation in polkit pkexec (CVE-2021-4034) via unsecure environment variable injection. Successful exploitation allows an unprivileged user to escalate to the root user.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://seclists.org/oss-sec/2022/q1/80","https://haxx.in/files/blasty-vs-pkexec.c"],"tags":["Elastic","Host","Linux","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.007","name":"Path Interception by PATH Environment Variable","reference":"https://attack.mitre.org/techniques/T1574/007/"}]}]}],"language":"eql","query":"file where file.path : \"/*GCONV_PATH*\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"file.path","type":"keyword"}]},{"name":"Potential Privilege Escalation via PKEXEC v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an attempt to exploit a local privilege escalation in polkit pkexec (CVE-2021-4034) via unsecure environment variable injection. Successful exploitation allows an unprivileged user to escalate to the root user.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://seclists.org/oss-sec/2022/q1/80","https://haxx.in/files/blasty-vs-pkexec.c"],"tags":["Elastic","Host","Linux","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.007","name":"Path Interception by PATH Environment Variable","reference":"https://attack.mitre.org/techniques/T1574/007/"}]}]}],"language":"eql","query":"file where file.path : \"/*GCONV_PATH*\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"file.path","type":"keyword"}]}]},"id":"8da41fc9-7735-4b24-9cc6-c78dfc9fc9c9","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/8ddab73b-3d15-4e5d-9413-47f05553c1d7.json b/fleet-packages/detection-rules-composite/kibana/security_rule/8ddab73b-3d15-4e5d-9413-47f05553c1d7.json new file mode 100644 index 0000000000000..211de56b97ab7 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/8ddab73b-3d15-4e5d-9413-47f05553c1d7.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"8ddab73b-3d15-4e5d-9413-47f05553c1d7","versions":[{"name":"Azure Automation Runbook Deleted v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Azure Automation runbook is deleted. An adversary may delete an Azure Automation runbook in order to disrupt their target's automated business operations or to remove a malicious runbook for defense evasion.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://powerzure.readthedocs.io/en/latest/Functions/operational.html#create-backdoor","https://github.com/hausec/PowerZure","https://posts.specterops.io/attacking-azure-azure-ad-and-introducing-powerzure-ca70b330511a","https://azure.microsoft.com/en-in/blog/azure-automation-runbook-management/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and\n azure.activitylogs.operation_name:\"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/RUNBOOKS/DELETE\" and\n event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Automation Runbook Deleted v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Azure Automation runbook is deleted. An adversary may delete an Azure Automation runbook in order to disrupt their target's automated business operations or to remove a malicious runbook for defense evasion.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://powerzure.readthedocs.io/en/latest/Functions/operational.html#create-backdoor","https://github.com/hausec/PowerZure","https://posts.specterops.io/attacking-azure-azure-ad-and-introducing-powerzure-ca70b330511a","https://azure.microsoft.com/en-in/blog/azure-automation-runbook-management/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and\n azure.activitylogs.operation_name:\"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/RUNBOOKS/DELETE\" and\n event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Automation Runbook Deleted v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Azure Automation runbook is deleted. An adversary may delete an Azure Automation runbook in order to disrupt their target's automated business operations or to remove a malicious runbook for defense evasion.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://powerzure.readthedocs.io/en/latest/Functions/operational.html#create-backdoor","https://github.com/hausec/PowerZure","https://posts.specterops.io/attacking-azure-azure-ad-and-introducing-powerzure-ca70b330511a","https://azure.microsoft.com/en-in/blog/azure-automation-runbook-management/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and\n azure.activitylogs.operation_name:\"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/RUNBOOKS/DELETE\" and\n event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"8ddab73b-3d15-4e5d-9413-47f05553c1d7","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/8f3e91c7-d791-4704-80a1-42c160d7aa27.json b/fleet-packages/detection-rules-composite/kibana/security_rule/8f3e91c7-d791-4704-80a1-42c160d7aa27.json new file mode 100644 index 0000000000000..3bb5cd6613cd1 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/8f3e91c7-d791-4704-80a1-42c160d7aa27.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"8f3e91c7-d791-4704-80a1-42c160d7aa27","versions":[{"name":"Potential Port Monitor or Print Processor Registration Abuse v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies port monitor and print processor registry modifications. Adversaries may abuse port monitor and print processors to run malicious DLLs during system boot that will be executed as SYSTEM for privilege escalation and/or persistence, if permissions allow writing a fully-qualified pathname for that DLL.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.welivesecurity.com/2020/05/21/no-game-over-winnti-group/"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.010","name":"Port Monitors","reference":"https://attack.mitre.org/techniques/T1547/010/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.010","name":"Port Monitors","reference":"https://attack.mitre.org/techniques/T1547/010/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n registry.path : (\"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Print\\\\Monitors\\\\*\",\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Print\\\\Environments\\\\Windows*\\\\Print Processors\\\\*\") and\n registry.data.strings : \"*.dll\" and\n /* exclude SYSTEM SID - look for changes by non-SYSTEM user */\n not user.id : \"S-1-5-18\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"Potential Port Monitor or Print Processor Registration Abuse v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies port monitor and print processor registry modifications. Adversaries may abuse port monitor and print processors to run malicious DLLs during system boot that will be executed as SYSTEM for privilege escalation and/or persistence, if permissions allow writing a fully-qualified pathname for that DLL.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.welivesecurity.com/2020/05/21/no-game-over-winnti-group/"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.010","name":"Port Monitors","reference":"https://attack.mitre.org/techniques/T1547/010/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.010","name":"Port Monitors","reference":"https://attack.mitre.org/techniques/T1547/010/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n registry.path : (\"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Print\\\\Monitors\\\\*\",\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Print\\\\Environments\\\\Windows*\\\\Print Processors\\\\*\") and\n registry.data.strings : \"*.dll\" and\n /* exclude SYSTEM SID - look for changes by non-SYSTEM user */\n not user.id : \"S-1-5-18\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"Potential Port Monitor or Print Processor Registration Abuse v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies port monitor and print processor registry modifications. Adversaries may abuse port monitor and print processors to run malicious DLLs during system boot that will be executed as SYSTEM for privilege escalation and/or persistence, if permissions allow writing a fully-qualified pathname for that DLL.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.welivesecurity.com/2020/05/21/no-game-over-winnti-group/"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.010","name":"Port Monitors","reference":"https://attack.mitre.org/techniques/T1547/010/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.010","name":"Port Monitors","reference":"https://attack.mitre.org/techniques/T1547/010/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n registry.path : (\"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Print\\\\Monitors\\\\*\",\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Print\\\\Environments\\\\Windows*\\\\Print Processors\\\\*\") and\n registry.data.strings : \"*.dll\" and\n /* exclude SYSTEM SID - look for changes by non-SYSTEM user */\n not user.id : \"S-1-5-18\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]}]},"id":"8f3e91c7-d791-4704-80a1-42c160d7aa27","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/8f919d4b-a5af-47ca-a594-6be59cd924a4.json b/fleet-packages/detection-rules-composite/kibana/security_rule/8f919d4b-a5af-47ca-a594-6be59cd924a4.json new file mode 100644 index 0000000000000..e9818f59a754d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/8f919d4b-a5af-47ca-a594-6be59cd924a4.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"8f919d4b-a5af-47ca-a594-6be59cd924a4","versions":[{"name":"Incoming DCOM Lateral Movement with ShellBrowserWindow or ShellWindows v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of Distributed Component Object Model (DCOM) to run commands from a remote host, which are launched via the ShellBrowserWindow or ShellWindows Application COM Object. This behavior may indicate an attacker abusing a DCOM application to stealthily move laterally.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.003","name":"Distributed Component Object Model","reference":"https://attack.mitre.org/techniques/T1021/003/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=5s\n [network where event.type == \"start\" and process.name : \"explorer.exe\" and\n network.direction : (\"incoming\", \"ingress\") and network.transport == \"tcp\" and\n source.port > 49151 and destination.port > 49151 and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ] by process.entity_id\n [process where event.type == \"start\" and\n process.parent.name : \"explorer.exe\"\n ] by process.parent.entity_id\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]},{"name":"Incoming DCOM Lateral Movement with ShellBrowserWindow or ShellWindows v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of Distributed Component Object Model (DCOM) to run commands from a remote host, which are launched via the ShellBrowserWindow or ShellWindows Application COM Object. This behavior may indicate an attacker abusing a DCOM application to stealthily move laterally.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.003","name":"Distributed Component Object Model","reference":"https://attack.mitre.org/techniques/T1021/003/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=5s\n [network where event.type == \"start\" and process.name : \"explorer.exe\" and\n network.direction : (\"incoming\", \"ingress\") and network.transport == \"tcp\" and\n source.port > 49151 and destination.port > 49151 and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ] by process.entity_id\n [process where event.type == \"start\" and\n process.parent.name : \"explorer.exe\"\n ] by process.parent.entity_id\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]},{"name":"Incoming DCOM Lateral Movement with ShellBrowserWindow or ShellWindows v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of Distributed Component Object Model (DCOM) to run commands from a remote host, which are launched via the ShellBrowserWindow or ShellWindows Application COM Object. This behavior may indicate an attacker abusing a DCOM application to stealthily move laterally.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.003","name":"Distributed Component Object Model","reference":"https://attack.mitre.org/techniques/T1021/003/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=5s\n [network where event.type == \"start\" and process.name : \"explorer.exe\" and\n network.direction : (\"incoming\", \"ingress\") and network.transport == \"tcp\" and\n source.port > 49151 and destination.port > 49151 and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ] by process.entity_id\n [process where event.type == \"start\" and\n process.parent.name : \"explorer.exe\"\n ] by process.parent.entity_id\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]}]},"id":"8f919d4b-a5af-47ca-a594-6be59cd924a4","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/8fb75dda-c47a-4e34-8ecd-34facf7aad13.json b/fleet-packages/detection-rules-composite/kibana/security_rule/8fb75dda-c47a-4e34-8ecd-34facf7aad13.json new file mode 100644 index 0000000000000..6caf50d125ed8 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/8fb75dda-c47a-4e34-8ecd-34facf7aad13.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"8fb75dda-c47a-4e34-8ecd-34facf7aad13","versions":[{"name":"GCP Service Account Deletion v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a service account is deleted in Google Cloud Platform (GCP). A service account is a special type of account used by an application or a virtual machine (VM) instance, not a person. Applications use service accounts to make authorized API calls, authorized as either the service account itself, or as G Suite or Cloud Identity users through domain-wide delegation. An adversary may delete a service account in order to disrupt their target's business operations.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Service accounts may be deleted by system administrators. Verify that the behavior was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/iam/docs/service-accounts"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.DeleteServiceAccount and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Service Account Deletion v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a service account is deleted in Google Cloud Platform (GCP). A service account is a special type of account used by an application or a virtual machine (VM) instance, not a person. Applications use service accounts to make authorized API calls, authorized as either the service account itself, or as G Suite or Cloud Identity users through domain-wide delegation. An adversary may delete a service account in order to disrupt their target's business operations.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Service accounts may be deleted by system administrators. Verify that the behavior was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/iam/docs/service-accounts"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.DeleteServiceAccount and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Service Account Deletion v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a service account is deleted in Google Cloud Platform (GCP). A service account is a special type of account used by an application or a virtual machine (VM) instance, not a person. Applications use service accounts to make authorized API calls, authorized as either the service account itself, or as G Suite or Cloud Identity users through domain-wide delegation. An adversary may delete a service account in order to disrupt their target's business operations.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Service accounts may be deleted by system administrators. Verify that the behavior was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/iam/docs/service-accounts"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.DeleteServiceAccount and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"8fb75dda-c47a-4e34-8ecd-34facf7aad13","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/90169566-2260-4824-b8e4-8615c3b4ed52.json b/fleet-packages/detection-rules-composite/kibana/security_rule/90169566-2260-4824-b8e4-8615c3b4ed52.json new file mode 100644 index 0000000000000..1004ad504aa85 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/90169566-2260-4824-b8e4-8615c3b4ed52.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"90169566-2260-4824-b8e4-8615c3b4ed52","versions":[{"name":"Hping Process Activity v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Hping ran on a Linux host. Hping is a FOSS command-line packet analyzer and has the ability to construct network packets for a wide variety of network security testing applications, including scanning and firewall auditing.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Normal use of hping is uncommon apart from security testing and research. Use by non-security engineers is very uncommon."],"from":"now-9m","references":["https://en.wikipedia.org/wiki/Hping"],"tags":["Elastic","Host","Linux","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:(hping or hping2 or hping3)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Hping Process Activity v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Hping ran on a Linux host. Hping is a FOSS command-line packet analyzer and has the ability to construct network packets for a wide variety of network security testing applications, including scanning and firewall auditing.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Normal use of hping is uncommon apart from security testing and research. Use by non-security engineers is very uncommon."],"from":"now-9m","references":["https://en.wikipedia.org/wiki/Hping"],"tags":["Elastic","Host","Linux","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:(hping or hping2 or hping3)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Hping Process Activity v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Hping ran on a Linux host. Hping is a FOSS command-line packet analyzer and has the ability to construct network packets for a wide variety of network security testing applications, including scanning and firewall auditing.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Normal use of hping is uncommon apart from security testing and research. Use by non-security engineers is very uncommon."],"from":"now-9m","references":["https://en.wikipedia.org/wiki/Hping"],"tags":["Elastic","Host","Linux","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:(hping or hping2 or hping3)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"90169566-2260-4824-b8e4-8615c3b4ed52","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/9055ece6-2689-4224-a0e0-b04881e1f8ad.json b/fleet-packages/detection-rules-composite/kibana/security_rule/9055ece6-2689-4224-a0e0-b04881e1f8ad.json new file mode 100644 index 0000000000000..90ad0ac8fcfa8 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/9055ece6-2689-4224-a0e0-b04881e1f8ad.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"9055ece6-2689-4224-a0e0-b04881e1f8ad","versions":[{"name":"AWS Deletion of RDS Instance or Cluster v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an Amazon Relational Database Service (RDS) Aurora database cluster, global database cluster, or database instance.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Clusters or instances may be deleted by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Cluster or instance deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/delete-db-cluster.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBCluster.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/delete-global-cluster.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteGlobalCluster.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/delete-db-instance.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBInstance.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:(DeleteDBCluster or DeleteGlobalCluster or DeleteDBInstance)\nand event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Deletion of RDS Instance or Cluster v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an Amazon Relational Database Service (RDS) Aurora database cluster, global database cluster, or database instance.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Clusters or instances may be deleted by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Cluster or instance deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/delete-db-cluster.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBCluster.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/delete-global-cluster.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteGlobalCluster.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/delete-db-instance.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBInstance.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:(DeleteDBCluster or DeleteGlobalCluster or DeleteDBInstance)\nand event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Deletion of RDS Instance or Cluster v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an Amazon Relational Database Service (RDS) Aurora database cluster, global database cluster, or database instance.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Clusters or instances may be deleted by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Cluster or instance deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/delete-db-cluster.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBCluster.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/delete-global-cluster.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteGlobalCluster.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/delete-db-instance.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBInstance.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:(DeleteDBCluster or DeleteGlobalCluster or DeleteDBInstance)\nand event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"9055ece6-2689-4224-a0e0-b04881e1f8ad","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/9092cd6c-650f-4fa3-8a8a-28256c7489c9.json b/fleet-packages/detection-rules-composite/kibana/security_rule/9092cd6c-650f-4fa3-8a8a-28256c7489c9.json new file mode 100644 index 0000000000000..8ba26317ec54b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/9092cd6c-650f-4fa3-8a8a-28256c7489c9.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"9092cd6c-650f-4fa3-8a8a-28256c7489c9","versions":[{"name":"Keychain Password Retrieval via Command Line v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may collect keychain storage data from a system to in order to acquire credentials. Keychains are the built-in way for macOS to keep track of users' passwords and credentials for many services and features, including Wi-Fi and website passwords, secure notes, certificates, and Kerberos.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Applications for password management."],"from":"now-9m","references":["https://www.netmeister.org/blog/keychain-passwords.html","https://github.com/priyankchheda/chrome_password_grabber/blob/master/chrome.py","https://ss64.com/osx/security.html","https://www.intezer.com/blog/research/operation-electrorat-attacker-creates-fake-companies-to-drain-your-crypto-wallets/"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.001","name":"Keychain","reference":"https://attack.mitre.org/techniques/T1555/001/"}]},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.003","name":"Credentials from Web Browsers","reference":"https://attack.mitre.org/techniques/T1555/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"security\" and process.args : \"-wa\" and process.args : (\"find-generic-password\", \"find-internet-password\") and\n process.args : (\"Chrome*\", \"Chromium\", \"Opera\", \"Safari*\", \"Brave\", \"Microsoft Edge\", \"Edge\", \"Firefox*\") and\n not process.parent.executable : \"/Applications/Keeper Password Manager.app/Contents/Frameworks/Keeper Password Manager Helper*/Contents/MacOS/Keeper Password Manager Helper*\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Keychain Password Retrieval via Command Line v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may collect keychain storage data from a system to in order to acquire credentials. Keychains are the built-in way for macOS to keep track of users' passwords and credentials for many services and features, including Wi-Fi and website passwords, secure notes, certificates, and Kerberos.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Applications for password management."],"from":"now-9m","references":["https://www.netmeister.org/blog/keychain-passwords.html","https://github.com/priyankchheda/chrome_password_grabber/blob/master/chrome.py","https://ss64.com/osx/security.html","https://www.intezer.com/blog/research/operation-electrorat-attacker-creates-fake-companies-to-drain-your-crypto-wallets/"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.001","name":"Keychain","reference":"https://attack.mitre.org/techniques/T1555/001/"}]},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.003","name":"Credentials from Web Browsers","reference":"https://attack.mitre.org/techniques/T1555/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"security\" and process.args : \"-wa\" and process.args : (\"find-generic-password\", \"find-internet-password\") and\n process.args : (\"Chrome*\", \"Chromium\", \"Opera\", \"Safari*\", \"Brave\", \"Microsoft Edge\", \"Edge\", \"Firefox*\") and\n not process.parent.executable : \"/Applications/Keeper Password Manager.app/Contents/Frameworks/Keeper Password Manager Helper*/Contents/MacOS/Keeper Password Manager Helper*\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Keychain Password Retrieval via Command Line v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may collect keychain storage data from a system to in order to acquire credentials. Keychains are the built-in way for macOS to keep track of users' passwords and credentials for many services and features, including Wi-Fi and website passwords, secure notes, certificates, and Kerberos.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Applications for password management."],"from":"now-9m","references":["https://www.netmeister.org/blog/keychain-passwords.html","https://github.com/priyankchheda/chrome_password_grabber/blob/master/chrome.py","https://ss64.com/osx/security.html","https://www.intezer.com/blog/research/operation-electrorat-attacker-creates-fake-companies-to-drain-your-crypto-wallets/"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.001","name":"Keychain","reference":"https://attack.mitre.org/techniques/T1555/001/"}]},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.003","name":"Credentials from Web Browsers","reference":"https://attack.mitre.org/techniques/T1555/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"security\" and process.args : \"-wa\" and process.args : (\"find-generic-password\", \"find-internet-password\") and\n process.args : (\"Chrome*\", \"Chromium\", \"Opera\", \"Safari*\", \"Brave\", \"Microsoft Edge\", \"Edge\", \"Firefox*\") and\n not process.parent.executable : \"/Applications/Keeper Password Manager.app/Contents/Frameworks/Keeper Password Manager Helper*/Contents/MacOS/Keeper Password Manager Helper*\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"9092cd6c-650f-4fa3-8a8a-28256c7489c9","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/9180ffdf-f3d0-4db3-bf66-7a14bcff71b8.json b/fleet-packages/detection-rules-composite/kibana/security_rule/9180ffdf-f3d0-4db3-bf66-7a14bcff71b8.json new file mode 100644 index 0000000000000..bc03721639669 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/9180ffdf-f3d0-4db3-bf66-7a14bcff71b8.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"9180ffdf-f3d0-4db3-bf66-7a14bcff71b8","versions":[{"name":"GCP Virtual Private Cloud Route Creation v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a virtual private cloud (VPC) route is created in Google Cloud Platform (GCP). Google Cloud routes define the paths that network traffic takes from a virtual machine (VM) instance to other destinations. These destinations can be inside a Google VPC network or outside it. An adversary may create a route in order to impact the flow of network traffic in their target's cloud environment.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Virtual Private Cloud routes may be created by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/routes","https://cloud.google.com/vpc/docs/using-routes"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:(v*.compute.routes.insert or \"beta.compute.routes.insert\")\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Virtual Private Cloud Route Creation v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a virtual private cloud (VPC) route is created in Google Cloud Platform (GCP). Google Cloud routes define the paths that network traffic takes from a virtual machine (VM) instance to other destinations. These destinations can be inside a Google VPC network or outside it. An adversary may create a route in order to impact the flow of network traffic in their target's cloud environment.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Virtual Private Cloud routes may be created by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/routes","https://cloud.google.com/vpc/docs/using-routes"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:(v*.compute.routes.insert or \"beta.compute.routes.insert\")\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Virtual Private Cloud Route Creation v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a virtual private cloud (VPC) route is created in Google Cloud Platform (GCP). Google Cloud routes define the paths that network traffic takes from a virtual machine (VM) instance to other destinations. These destinations can be inside a Google VPC network or outside it. An adversary may create a route in order to impact the flow of network traffic in their target's cloud environment.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Virtual Private Cloud routes may be created by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/routes","https://cloud.google.com/vpc/docs/using-routes"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:(v*.compute.routes.insert or \"beta.compute.routes.insert\")\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"9180ffdf-f3d0-4db3-bf66-7a14bcff71b8","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/91d04cd4-47a9-4334-ab14-084abe274d49.json b/fleet-packages/detection-rules-composite/kibana/security_rule/91d04cd4-47a9-4334-ab14-084abe274d49.json new file mode 100644 index 0000000000000..258ba0bba6603 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/91d04cd4-47a9-4334-ab14-084abe274d49.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"91d04cd4-47a9-4334-ab14-084abe274d49","versions":[{"name":"AWS WAF Access Control List Deletion v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a specified AWS Web Application Firewall (WAF) access control list.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Firewall ACL's may be deleted by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Web ACL deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/waf-regional/delete-web-acl.html","https://docs.aws.amazon.com/waf/latest/APIReference/API_wafRegional_DeleteWebACL.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.action:DeleteWebACL and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS WAF Access Control List Deletion v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a specified AWS Web Application Firewall (WAF) access control list.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Firewall ACL's may be deleted by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Web ACL deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/waf-regional/delete-web-acl.html","https://docs.aws.amazon.com/waf/latest/APIReference/API_wafRegional_DeleteWebACL.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.action:DeleteWebACL and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS WAF Access Control List Deletion v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a specified AWS Web Application Firewall (WAF) access control list.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Firewall ACL's may be deleted by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Web ACL deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/waf-regional/delete-web-acl.html","https://docs.aws.amazon.com/waf/latest/APIReference/API_wafRegional_DeleteWebACL.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.action:DeleteWebACL and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"91d04cd4-47a9-4334-ab14-084abe274d49","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/91f02f01-969f-4167-8d77-07827ac4cee0.json b/fleet-packages/detection-rules-composite/kibana/security_rule/91f02f01-969f-4167-8d77-07827ac4cee0.json new file mode 100644 index 0000000000000..7df55e551fc3d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/91f02f01-969f-4167-8d77-07827ac4cee0.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"91f02f01-969f-4167-8d77-07827ac4cee0","versions":[{"name":"Unusual Web User Agent v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a rare and unusual user agent indicating web browsing activity by an unusual process other than a web browser. This can be due to persistence, command-and-control, or exfiltration activity. Uncommon user agents coming from remote sources to local destinations are often the result of scanners, bots, and web scrapers, which are part of common Internet background traffic. Much of this is noise, but more targeted attacks on websites using tools like Burp or SQLmap can sometimes be discovered by spotting uncommon user agents. Uncommon user agents in traffic from local sources to remote destinations can be any number of things, including harmless programs like weather monitoring or stock-trading programs. However, uncommon user agents from local sources can also be due to malware or scanning activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Web activity that is uncommon, like security scans, may trigger this alert and may need to be excluded. A new or rarely used program that calls web services may trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.001","name":"Web Protocols","reference":"https://attack.mitre.org/techniques/T1071/001/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":"packetbeat_rare_user_agent","type":"machine_learning"},{"name":"Unusual Web User Agent v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a rare and unusual user agent indicating web browsing activity by an unusual process other than a web browser. This can be due to persistence, command-and-control, or exfiltration activity. Uncommon user agents coming from remote sources to local destinations are often the result of scanners, bots, and web scrapers, which are part of common Internet background traffic. Much of this is noise, but more targeted attacks on websites using tools like Burp or SQLmap can sometimes be discovered by spotting uncommon user agents. Uncommon user agents in traffic from local sources to remote destinations can be any number of things, including harmless programs like weather monitoring or stock-trading programs. However, uncommon user agents from local sources can also be due to malware or scanning activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Web activity that is uncommon, like security scans, may trigger this alert and may need to be excluded. A new or rarely used program that calls web services may trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.001","name":"Web Protocols","reference":"https://attack.mitre.org/techniques/T1071/001/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":"packetbeat_rare_user_agent","type":"machine_learning"},{"name":"Unusual Web User Agent v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a rare and unusual user agent indicating web browsing activity by an unusual process other than a web browser. This can be due to persistence, command-and-control, or exfiltration activity. Uncommon user agents coming from remote sources to local destinations are often the result of scanners, bots, and web scrapers, which are part of common Internet background traffic. Much of this is noise, but more targeted attacks on websites using tools like Burp or SQLmap can sometimes be discovered by spotting uncommon user agents. Uncommon user agents in traffic from local sources to remote destinations can be any number of things, including harmless programs like weather monitoring or stock-trading programs. However, uncommon user agents from local sources can also be due to malware or scanning activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Web activity that is uncommon, like security scans, may trigger this alert and may need to be excluded. A new or rarely used program that calls web services may trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.001","name":"Web Protocols","reference":"https://attack.mitre.org/techniques/T1071/001/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":"packetbeat_rare_user_agent","type":"machine_learning"}]},"id":"91f02f01-969f-4167-8d77-07827ac4cee0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/91f02f01-969f-4167-8f55-07827ac3acc9.json b/fleet-packages/detection-rules-composite/kibana/security_rule/91f02f01-969f-4167-8f55-07827ac3acc9.json new file mode 100644 index 0000000000000..ece5e58f2d684 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/91f02f01-969f-4167-8f55-07827ac3acc9.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"91f02f01-969f-4167-8f55-07827ac3acc9","versions":[{"name":"Unusual Web Request v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a rare and unusual URL that indicates unusual web browsing activity. This can be due to initial access, persistence, command-and-control, or exfiltration activity. For example, in a strategic web compromise or watering hole attack, when a trusted website is compromised to target a particular sector or organization, targeted users may receive emails with uncommon URLs for trusted websites. These URLs can be used to download and run a payload. When malware is already running, it may send requests to uncommon URLs on trusted websites the malware uses for command-and-control communication. When rare URLs are observed being requested for a local web server by a remote source, these can be due to web scanning, enumeration or attack traffic, or they can be due to bots and web scrapers which are part of common Internet background traffic.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Web activity that occurs rarely in small quantities can trigger this alert. Possible examples are browsing technical support or vendor URLs that are used very sparsely. A user who visits a new and unique web destination may trigger this alert when the activity is sparse. Web applications that generate URLs unique to a transaction may trigger this when they are used sparsely. Web domains can be excluded in cases such as these."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.001","name":"Web Protocols","reference":"https://attack.mitre.org/techniques/T1071/001/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":"packetbeat_rare_urls","type":"machine_learning"},{"name":"Unusual Web Request v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a rare and unusual URL that indicates unusual web browsing activity. This can be due to initial access, persistence, command-and-control, or exfiltration activity. For example, in a strategic web compromise or watering hole attack, when a trusted website is compromised to target a particular sector or organization, targeted users may receive emails with uncommon URLs for trusted websites. These URLs can be used to download and run a payload. When malware is already running, it may send requests to uncommon URLs on trusted websites the malware uses for command-and-control communication. When rare URLs are observed being requested for a local web server by a remote source, these can be due to web scanning, enumeration or attack traffic, or they can be due to bots and web scrapers which are part of common Internet background traffic.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Web activity that occurs rarely in small quantities can trigger this alert. Possible examples are browsing technical support or vendor URLs that are used very sparsely. A user who visits a new and unique web destination may trigger this alert when the activity is sparse. Web applications that generate URLs unique to a transaction may trigger this when they are used sparsely. Web domains can be excluded in cases such as these."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.001","name":"Web Protocols","reference":"https://attack.mitre.org/techniques/T1071/001/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":"packetbeat_rare_urls","type":"machine_learning"},{"name":"Unusual Web Request v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a rare and unusual URL that indicates unusual web browsing activity. This can be due to initial access, persistence, command-and-control, or exfiltration activity. For example, in a strategic web compromise or watering hole attack, when a trusted website is compromised to target a particular sector or organization, targeted users may receive emails with uncommon URLs for trusted websites. These URLs can be used to download and run a payload. When malware is already running, it may send requests to uncommon URLs on trusted websites the malware uses for command-and-control communication. When rare URLs are observed being requested for a local web server by a remote source, these can be due to web scanning, enumeration or attack traffic, or they can be due to bots and web scrapers which are part of common Internet background traffic.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Web activity that occurs rarely in small quantities can trigger this alert. Possible examples are browsing technical support or vendor URLs that are used very sparsely. A user who visits a new and unique web destination may trigger this alert when the activity is sparse. Web applications that generate URLs unique to a transaction may trigger this when they are used sparsely. Web domains can be excluded in cases such as these."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.001","name":"Web Protocols","reference":"https://attack.mitre.org/techniques/T1071/001/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":"packetbeat_rare_urls","type":"machine_learning"}]},"id":"91f02f01-969f-4167-8f55-07827ac3acc9","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/91f02f01-969f-4167-8f66-07827ac3bdd9.json b/fleet-packages/detection-rules-composite/kibana/security_rule/91f02f01-969f-4167-8f66-07827ac3bdd9.json new file mode 100644 index 0000000000000..437d6bc028ac1 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/91f02f01-969f-4167-8f66-07827ac3bdd9.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"91f02f01-969f-4167-8f66-07827ac3bdd9","versions":[{"name":"DNS Tunneling v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected unusually large numbers of DNS queries for a single top-level DNS domain, which is often used for DNS tunneling. DNS tunneling can be used for command-and-control, persistence, or data exfiltration activity. For example, dnscat tends to generate many DNS questions for a top-level domain as it uses the DNS protocol to tunnel data.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["DNS domains that use large numbers of child domains, such as software or content distribution networks, can trigger this alert and such parent domains can be excluded."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1572","name":"Protocol Tunneling","reference":"https://attack.mitre.org/techniques/T1572/"}]}],"anomaly_threshold":50,"machine_learning_job_id":"packetbeat_dns_tunneling","type":"machine_learning"},{"name":"DNS Tunneling v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected unusually large numbers of DNS queries for a single top-level DNS domain, which is often used for DNS tunneling. DNS tunneling can be used for command-and-control, persistence, or data exfiltration activity. For example, dnscat tends to generate many DNS questions for a top-level domain as it uses the DNS protocol to tunnel data.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["DNS domains that use large numbers of child domains, such as software or content distribution networks, can trigger this alert and such parent domains can be excluded."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1572","name":"Protocol Tunneling","reference":"https://attack.mitre.org/techniques/T1572/"}]}],"anomaly_threshold":50,"machine_learning_job_id":"packetbeat_dns_tunneling","type":"machine_learning"},{"name":"DNS Tunneling v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected unusually large numbers of DNS queries for a single top-level DNS domain, which is often used for DNS tunneling. DNS tunneling can be used for command-and-control, persistence, or data exfiltration activity. For example, dnscat tends to generate many DNS questions for a top-level domain as it uses the DNS protocol to tunnel data.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["DNS domains that use large numbers of child domains, such as software or content distribution networks, can trigger this alert and such parent domains can be excluded."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1572","name":"Protocol Tunneling","reference":"https://attack.mitre.org/techniques/T1572/"}]}],"anomaly_threshold":50,"machine_learning_job_id":"packetbeat_dns_tunneling","type":"machine_learning"}]},"id":"91f02f01-969f-4167-8f66-07827ac3bdd9","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/92a6faf5-78ec-4e25-bea1-73bacc9b59d9.json b/fleet-packages/detection-rules-composite/kibana/security_rule/92a6faf5-78ec-4e25-bea1-73bacc9b59d9.json new file mode 100644 index 0000000000000..2eebe8107e198 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/92a6faf5-78ec-4e25-bea1-73bacc9b59d9.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"92a6faf5-78ec-4e25-bea1-73bacc9b59d9","versions":[{"name":"A scheduled task was created v2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Indicates the creation of a scheduled task using Windows event logs. Adversaries can use these to establish persistence, move laterally, and/or escalate privileges.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4698"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"iam where event.action == \"scheduled-task-created\" and\n\n /* excluding tasks created by the computer account */\n not user.name : \"*$\" and\n\n /* TaskContent is not parsed, exclude by full taskname noisy ones */\n not winlog.event_data.TaskName :\n (\"\\\\OneDrive Standalone Update Task-S-1-5-21*\",\n \"\\\\OneDrive Standalone Update Task-S-1-12-1-*\",\n \"\\\\Hewlett-Packard\\\\HP Web Products Detection\",\n \"\\\\Hewlett-Packard\\\\HPDeviceCheck\")\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TaskName","type":"unknown"}]},{"name":"A scheduled task was created v2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Indicates the creation of a scheduled task using Windows event logs. Adversaries can use these to establish persistence, move laterally, and/or escalate privileges.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4698"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"iam where event.action == \"scheduled-task-created\" and\n\n /* excluding tasks created by the computer account */\n not user.name : \"*$\" and\n\n /* TaskContent is not parsed, exclude by full taskname noisy ones */\n not winlog.event_data.TaskName :\n (\"\\\\OneDrive Standalone Update Task-S-1-5-21*\",\n \"\\\\OneDrive Standalone Update Task-S-1-12-1-*\",\n \"\\\\Hewlett-Packard\\\\HP Web Products Detection\",\n \"\\\\Hewlett-Packard\\\\HPDeviceCheck\")\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TaskName","type":"unknown"}]},{"name":"A scheduled task was created v2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Indicates the creation of a scheduled task using Windows event logs. Adversaries can use these to establish persistence, move laterally, and/or escalate privileges.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4698"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"iam where event.action == \"scheduled-task-created\" and\n\n /* excluding tasks created by the computer account */\n not user.name : \"*$\" and\n\n /* TaskContent is not parsed, exclude by full taskname noisy ones */\n not winlog.event_data.TaskName :\n (\"\\\\OneDrive Standalone Update Task-S-1-5-21*\",\n \"\\\\OneDrive Standalone Update Task-S-1-12-1-*\",\n \"\\\\Hewlett-Packard\\\\HP Web Products Detection\",\n \"\\\\Hewlett-Packard\\\\HPDeviceCheck\")\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TaskName","type":"unknown"}]}]},"id":"92a6faf5-78ec-4e25-bea1-73bacc9b59d9","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/93075852-b0f5-4b8b-89c3-a226efae5726.json b/fleet-packages/detection-rules-composite/kibana/security_rule/93075852-b0f5-4b8b-89c3-a226efae5726.json new file mode 100644 index 0000000000000..822da67161926 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/93075852-b0f5-4b8b-89c3-a226efae5726.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"93075852-b0f5-4b8b-89c3-a226efae5726","versions":[{"name":"AWS Security Token Service (STS) AssumeRole Usage v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of AssumeRole. AssumeRole returns a set of temporary security credentials that can be used to access AWS resources. An adversary could use those credentials to move laterally and escalate privileges.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Automated processes that use Terraform may lead to false positives."],"references":["https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.001","name":"Application Access Token","reference":"https://attack.mitre.org/techniques/T1550/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:sts.amazonaws.com and event.action:AssumedRole and\naws.cloudtrail.user_identity.session_context.session_issuer.type:Role and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.user_identity.session_context.session_issuer.type","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Security Token Service (STS) AssumeRole Usage v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of AssumeRole. AssumeRole returns a set of temporary security credentials that can be used to access AWS resources. An adversary could use those credentials to move laterally and escalate privileges.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Automated processes that use Terraform may lead to false positives."],"references":["https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.001","name":"Application Access Token","reference":"https://attack.mitre.org/techniques/T1550/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:sts.amazonaws.com and event.action:AssumedRole and\naws.cloudtrail.user_identity.session_context.session_issuer.type:Role and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.user_identity.session_context.session_issuer.type","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Security Token Service (STS) AssumeRole Usage v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of AssumeRole. AssumeRole returns a set of temporary security credentials that can be used to access AWS resources. An adversary could use those credentials to move laterally and escalate privileges.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Automated processes that use Terraform may lead to false positives."],"references":["https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.001","name":"Application Access Token","reference":"https://attack.mitre.org/techniques/T1550/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:sts.amazonaws.com and event.action:AssumedRole and\naws.cloudtrail.user_identity.session_context.session_issuer.type:Role and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.user_identity.session_context.session_issuer.type","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"93075852-b0f5-4b8b-89c3-a226efae5726","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/931e25a5-0f5e-4ae0-ba0d-9e94eff7e3a4.json b/fleet-packages/detection-rules-composite/kibana/security_rule/931e25a5-0f5e-4ae0-ba0d-9e94eff7e3a4.json new file mode 100644 index 0000000000000..fe0db646a73c3 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/931e25a5-0f5e-4ae0-ba0d-9e94eff7e3a4.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"931e25a5-0f5e-4ae0-ba0d-9e94eff7e3a4","versions":[{"name":"Sudoers File Modification v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A sudoers file specifies the commands that users or groups can run and from which terminals. Adversaries can take advantage of these configurations to execute commands as other users or spawn processes with higher privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.003","name":"Sudo and Sudo Caching","reference":"https://attack.mitre.org/techniques/T1548/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and event.type:change and file.path:(/etc/sudoers* or /private/etc/sudoers*)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}]},{"name":"Sudoers File Modification v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A sudoers file specifies the commands that users or groups can run and from which terminals. Adversaries can take advantage of these configurations to execute commands as other users or spawn processes with higher privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.003","name":"Sudo and Sudo Caching","reference":"https://attack.mitre.org/techniques/T1548/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and event.type:change and file.path:(/etc/sudoers* or /private/etc/sudoers*)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}]},{"name":"Sudoers File Modification v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A sudoers file specifies the commands that users or groups can run and from which terminals. Adversaries can take advantage of these configurations to execute commands as other users or spawn processes with higher privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.003","name":"Sudo and Sudo Caching","reference":"https://attack.mitre.org/techniques/T1548/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and event.type:change and file.path:(/etc/sudoers* or /private/etc/sudoers*)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}]}]},"id":"931e25a5-0f5e-4ae0-ba0d-9e94eff7e3a4","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/9395fd2c-9947-4472-86ef-4aceb2f7e872.json b/fleet-packages/detection-rules-composite/kibana/security_rule/9395fd2c-9947-4472-86ef-4aceb2f7e872.json new file mode 100644 index 0000000000000..a095ca6052e65 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/9395fd2c-9947-4472-86ef-4aceb2f7e872.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"9395fd2c-9947-4472-86ef-4aceb2f7e872","versions":[{"name":"AWS VPC Flow Logs Deletion v103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of one or more flow logs in AWS Elastic Compute Cloud (EC2). An adversary may delete flow logs in an attempt to evade defenses.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS VPC Flow Logs Deletion\n\nVPC Flow Logs is an AWS feature that enables you to capture information about the IP traffic going to and from network\ninterfaces in your virtual private cloud (VPC). Flow log data can be published to Amazon CloudWatch Logs or Amazon S3.\n\nThis rule identifies the deletion of VPC flow logs using the API `DeleteFlowLogs` action. Attackers can do this to cover\ntheir tracks and impact security monitoring that relies on this source.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n- Administrators may rotate these logs after a certain period as part of their retention policy or after importing them\nto a SIEM.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Flow log deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/delete-flow-logs.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteFlowLogs.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:DeleteFlowLogs and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS VPC Flow Logs Deletion v103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of one or more flow logs in AWS Elastic Compute Cloud (EC2). An adversary may delete flow logs in an attempt to evade defenses.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS VPC Flow Logs Deletion\n\nVPC Flow Logs is an AWS feature that enables you to capture information about the IP traffic going to and from network\ninterfaces in your virtual private cloud (VPC). Flow log data can be published to Amazon CloudWatch Logs or Amazon S3.\n\nThis rule identifies the deletion of VPC flow logs using the API `DeleteFlowLogs` action. Attackers can do this to cover\ntheir tracks and impact security monitoring that relies on this source.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n- Administrators may rotate these logs after a certain period as part of their retention policy or after importing them\nto a SIEM.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Flow log deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/delete-flow-logs.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteFlowLogs.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:DeleteFlowLogs and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS VPC Flow Logs Deletion v103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of one or more flow logs in AWS Elastic Compute Cloud (EC2). An adversary may delete flow logs in an attempt to evade defenses.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS VPC Flow Logs Deletion\n\nVPC Flow Logs is an AWS feature that enables you to capture information about the IP traffic going to and from network\ninterfaces in your virtual private cloud (VPC). Flow log data can be published to Amazon CloudWatch Logs or Amazon S3.\n\nThis rule identifies the deletion of VPC flow logs using the API `DeleteFlowLogs` action. Attackers can do this to cover\ntheir tracks and impact security monitoring that relies on this source.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n- Administrators may rotate these logs after a certain period as part of their retention policy or after importing them\nto a SIEM.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Flow log deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/delete-flow-logs.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteFlowLogs.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:DeleteFlowLogs and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"9395fd2c-9947-4472-86ef-4aceb2f7e872","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/93b22c0a-06a0-4131-b830-b10d5e166ff4.json b/fleet-packages/detection-rules-composite/kibana/security_rule/93b22c0a-06a0-4131-b830-b10d5e166ff4.json new file mode 100644 index 0000000000000..36f775c2ab1f1 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/93b22c0a-06a0-4131-b830-b10d5e166ff4.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"93b22c0a-06a0-4131-b830-b10d5e166ff4","versions":[{"name":"Suspicious SolarWinds Child Process v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A suspicious SolarWinds child process was detected, which may indicate an attempt to execute malicious programs.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted SolarWinds child processes, verify process details such as network connections and file writes."],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2020/12/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor.html","https://github.com/mandiant/sunburst_countermeasures/blob/main/rules/SUNBURST/hxioc/SUNBURST%20SUSPICIOUS%20CHILD%20PROCESSES%20(METHODOLOGY).ioc"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1195","name":"Supply Chain Compromise","reference":"https://attack.mitre.org/techniques/T1195/","subtechnique":[{"id":"T1195.002","name":"Compromise Software Supply Chain","reference":"https://attack.mitre.org/techniques/T1195/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name: (\"SolarWinds.BusinessLayerHost.exe\", \"SolarWinds.BusinessLayerHostx64.exe\") and\n not process.name : (\n \"APMServiceControl*.exe\",\n \"ExportToPDFCmd*.Exe\",\n \"SolarWinds.Credentials.Orion.WebApi*.exe\",\n \"SolarWinds.Orion.Topology.Calculator*.exe\",\n \"Database-Maint.exe\",\n \"SolarWinds.Orion.ApiPoller.Service.exe\",\n \"WerFault.exe\",\n \"WerMgr.exe\",\n \"SolarWinds.BusinessLayerHost.exe\",\n \"SolarWinds.BusinessLayerHostx64.exe\") and\n not process.executable : (\"?:\\\\Windows\\\\SysWOW64\\\\ARP.EXE\", \"?:\\\\Windows\\\\SysWOW64\\\\lodctr.exe\", \"?:\\\\Windows\\\\SysWOW64\\\\unlodctr.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious SolarWinds Child Process v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A suspicious SolarWinds child process was detected, which may indicate an attempt to execute malicious programs.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted SolarWinds child processes, verify process details such as network connections and file writes."],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2020/12/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor.html","https://github.com/mandiant/sunburst_countermeasures/blob/main/rules/SUNBURST/hxioc/SUNBURST%20SUSPICIOUS%20CHILD%20PROCESSES%20(METHODOLOGY).ioc"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1195","name":"Supply Chain Compromise","reference":"https://attack.mitre.org/techniques/T1195/","subtechnique":[{"id":"T1195.002","name":"Compromise Software Supply Chain","reference":"https://attack.mitre.org/techniques/T1195/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name: (\"SolarWinds.BusinessLayerHost.exe\", \"SolarWinds.BusinessLayerHostx64.exe\") and\n not process.name : (\n \"APMServiceControl*.exe\",\n \"ExportToPDFCmd*.Exe\",\n \"SolarWinds.Credentials.Orion.WebApi*.exe\",\n \"SolarWinds.Orion.Topology.Calculator*.exe\",\n \"Database-Maint.exe\",\n \"SolarWinds.Orion.ApiPoller.Service.exe\",\n \"WerFault.exe\",\n \"WerMgr.exe\",\n \"SolarWinds.BusinessLayerHost.exe\",\n \"SolarWinds.BusinessLayerHostx64.exe\") and\n not process.executable : (\"?:\\\\Windows\\\\SysWOW64\\\\ARP.EXE\", \"?:\\\\Windows\\\\SysWOW64\\\\lodctr.exe\", \"?:\\\\Windows\\\\SysWOW64\\\\unlodctr.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious SolarWinds Child Process v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A suspicious SolarWinds child process was detected, which may indicate an attempt to execute malicious programs.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted SolarWinds child processes, verify process details such as network connections and file writes."],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2020/12/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor.html","https://github.com/mandiant/sunburst_countermeasures/blob/main/rules/SUNBURST/hxioc/SUNBURST%20SUSPICIOUS%20CHILD%20PROCESSES%20(METHODOLOGY).ioc"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1195","name":"Supply Chain Compromise","reference":"https://attack.mitre.org/techniques/T1195/","subtechnique":[{"id":"T1195.002","name":"Compromise Software Supply Chain","reference":"https://attack.mitre.org/techniques/T1195/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name: (\"SolarWinds.BusinessLayerHost.exe\", \"SolarWinds.BusinessLayerHostx64.exe\") and\n not process.name : (\n \"APMServiceControl*.exe\",\n \"ExportToPDFCmd*.Exe\",\n \"SolarWinds.Credentials.Orion.WebApi*.exe\",\n \"SolarWinds.Orion.Topology.Calculator*.exe\",\n \"Database-Maint.exe\",\n \"SolarWinds.Orion.ApiPoller.Service.exe\",\n \"WerFault.exe\",\n \"WerMgr.exe\",\n \"SolarWinds.BusinessLayerHost.exe\",\n \"SolarWinds.BusinessLayerHostx64.exe\") and\n not process.executable : (\"?:\\\\Windows\\\\SysWOW64\\\\ARP.EXE\", \"?:\\\\Windows\\\\SysWOW64\\\\lodctr.exe\", \"?:\\\\Windows\\\\SysWOW64\\\\unlodctr.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"93b22c0a-06a0-4131-b830-b10d5e166ff4","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/93c1ce76-494c-4f01-8167-35edfb52f7b1.json b/fleet-packages/detection-rules-composite/kibana/security_rule/93c1ce76-494c-4f01-8167-35edfb52f7b1.json new file mode 100644 index 0000000000000..727b593325614 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/93c1ce76-494c-4f01-8167-35edfb52f7b1.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"93c1ce76-494c-4f01-8167-35edfb52f7b1","versions":[{"name":"Encoded Executable Stored in the Registry v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies registry write modifications to hide an encoded portable executable. This could be indicative of adversary defense evasion by avoiding the storing of malicious content directly on disk.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1140","name":"Deobfuscate/Decode Files or Information","reference":"https://attack.mitre.org/techniques/T1140/"},{"id":"T1112","name":"Modify Registry","reference":"https://attack.mitre.org/techniques/T1112/"}]}],"language":"eql","query":"registry where\n/* update here with encoding combinations */\n registry.data.strings : \"TVqQAAMAAAAEAAAA*\"\n","type":"eql","index":["logs-endpoint.events.*","endgame-*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"}]},{"name":"Encoded Executable Stored in the Registry v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies registry write modifications to hide an encoded portable executable. This could be indicative of adversary defense evasion by avoiding the storing of malicious content directly on disk.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1140","name":"Deobfuscate/Decode Files or Information","reference":"https://attack.mitre.org/techniques/T1140/"},{"id":"T1112","name":"Modify Registry","reference":"https://attack.mitre.org/techniques/T1112/"}]}],"language":"eql","query":"registry where\n/* update here with encoding combinations */\n registry.data.strings : \"TVqQAAMAAAAEAAAA*\"\n","type":"eql","index":["logs-endpoint.events.*","endgame-*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"}]},{"name":"Encoded Executable Stored in the Registry v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies registry write modifications to hide an encoded portable executable. This could be indicative of adversary defense evasion by avoiding the storing of malicious content directly on disk.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1140","name":"Deobfuscate/Decode Files or Information","reference":"https://attack.mitre.org/techniques/T1140/"},{"id":"T1112","name":"Modify Registry","reference":"https://attack.mitre.org/techniques/T1112/"}]}],"language":"eql","query":"registry where\n/* update here with encoding combinations */\n registry.data.strings : \"TVqQAAMAAAAEAAAA*\"\n","type":"eql","index":["logs-endpoint.events.*","endgame-*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"}]}]},"id":"93c1ce76-494c-4f01-8167-35edfb52f7b1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/93e63c3e-4154-4fc6-9f86-b411e0987bbf.json b/fleet-packages/detection-rules-composite/kibana/security_rule/93e63c3e-4154-4fc6-9f86-b411e0987bbf.json new file mode 100644 index 0000000000000..c7a1caf530b42 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/93e63c3e-4154-4fc6-9f86-b411e0987bbf.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"93e63c3e-4154-4fc6-9f86-b411e0987bbf","versions":[{"name":"Google Workspace Admin Role Deletion v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a custom admin role is deleted. An adversary may delete a custom admin role in order to impact the permissions or capabilities of system administrators.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Google Workspace admin roles may be deleted by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/2406043?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:DELETE_ROLE\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Google Workspace Admin Role Deletion v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a custom admin role is deleted. An adversary may delete a custom admin role in order to impact the permissions or capabilities of system administrators.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Google Workspace admin roles may be deleted by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/2406043?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:DELETE_ROLE\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Google Workspace Admin Role Deletion v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a custom admin role is deleted. An adversary may delete a custom admin role in order to impact the permissions or capabilities of system administrators.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Google Workspace admin roles may be deleted by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/2406043?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:DELETE_ROLE\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"93e63c3e-4154-4fc6-9f86-b411e0987bbf","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/93f47b6f-5728-4004-ba00-625083b3dcb0.json b/fleet-packages/detection-rules-composite/kibana/security_rule/93f47b6f-5728-4004-ba00-625083b3dcb0.json new file mode 100644 index 0000000000000..b07c0e614bd6a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/93f47b6f-5728-4004-ba00-625083b3dcb0.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"93f47b6f-5728-4004-ba00-625083b3dcb0","versions":[{"name":"Modification of Standard Authentication Module or Configuration v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may modify the standard authentication module for persistence via patching the normal authorization process or modifying the login configuration to allow unauthorized access or elevate privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted system module updates or allowed Pluggable Authentication Module (PAM) daemon configuration changes."],"from":"now-9m","references":["https://github.com/zephrax/linux-pam-backdoor","https://github.com/eurialo/pambd","http://0x90909090.blogspot.com/2016/06/creating-backdoor-in-pam-in-5-line-of.html","https://www.trendmicro.com/en_us/research/19/i/skidmap-linux-malware-uses-rootkit-capabilities-to-hide-cryptocurrency-mining-payload.html"],"tags":["Elastic","Host","macOS","Linux","Threat Detection","Credential Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and event.type:change and\n (file.name:pam_*.so or file.path:(/etc/pam.d/* or /private/etc/pam.d/*)) and\n process.executable:\n (* and\n not\n (\n /bin/yum or\n \"/usr/sbin/pam-auth-update\" or\n /usr/libexec/packagekitd or\n /usr/bin/dpkg or\n /usr/bin/vim or\n /usr/libexec/xpcproxy or\n /usr/bin/bsdtar or\n /usr/local/bin/brew or\n /usr/bin/rsync or\n /usr/bin/yum or\n /var/lib/docker/*/bin/yum or\n /var/lib/docker/*/bin/dpkg or\n ./merged/var/lib/docker/*/bin/dpkg or\n \"/System/Library/PrivateFrameworks/PackageKit.framework/Versions/A/XPCServices/package_script_service.xpc/Contents/MacOS/package_script_service\"\n )\n ) and\n not file.path:\n (\n /tmp/snap.rootfs_*/pam_*.so or\n /tmp/newroot/lib/*/pam_*.so or\n /private/var/folders/*/T/com.apple.fileprovider.ArchiveService/TemporaryItems/*/lib/security/pam_*.so or\n /tmp/newroot/usr/lib64/security/pam_*.so\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},{"name":"Modification of Standard Authentication Module or Configuration v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may modify the standard authentication module for persistence via patching the normal authorization process or modifying the login configuration to allow unauthorized access or elevate privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted system module updates or allowed Pluggable Authentication Module (PAM) daemon configuration changes."],"from":"now-9m","references":["https://github.com/zephrax/linux-pam-backdoor","https://github.com/eurialo/pambd","http://0x90909090.blogspot.com/2016/06/creating-backdoor-in-pam-in-5-line-of.html","https://www.trendmicro.com/en_us/research/19/i/skidmap-linux-malware-uses-rootkit-capabilities-to-hide-cryptocurrency-mining-payload.html"],"tags":["Elastic","Host","macOS","Linux","Threat Detection","Credential Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and event.type:change and\n (file.name:pam_*.so or file.path:(/etc/pam.d/* or /private/etc/pam.d/*)) and\n process.executable:\n (* and\n not\n (\n /bin/yum or\n \"/usr/sbin/pam-auth-update\" or\n /usr/libexec/packagekitd or\n /usr/bin/dpkg or\n /usr/bin/vim or\n /usr/libexec/xpcproxy or\n /usr/bin/bsdtar or\n /usr/local/bin/brew or\n /usr/bin/rsync or\n /usr/bin/yum or\n /var/lib/docker/*/bin/yum or\n /var/lib/docker/*/bin/dpkg or\n ./merged/var/lib/docker/*/bin/dpkg or\n \"/System/Library/PrivateFrameworks/PackageKit.framework/Versions/A/XPCServices/package_script_service.xpc/Contents/MacOS/package_script_service\"\n )\n ) and\n not file.path:\n (\n /tmp/snap.rootfs_*/pam_*.so or\n /tmp/newroot/lib/*/pam_*.so or\n /private/var/folders/*/T/com.apple.fileprovider.ArchiveService/TemporaryItems/*/lib/security/pam_*.so or\n /tmp/newroot/usr/lib64/security/pam_*.so\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},{"name":"Modification of Standard Authentication Module or Configuration v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may modify the standard authentication module for persistence via patching the normal authorization process or modifying the login configuration to allow unauthorized access or elevate privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted system module updates or allowed Pluggable Authentication Module (PAM) daemon configuration changes."],"from":"now-9m","references":["https://github.com/zephrax/linux-pam-backdoor","https://github.com/eurialo/pambd","http://0x90909090.blogspot.com/2016/06/creating-backdoor-in-pam-in-5-line-of.html","https://www.trendmicro.com/en_us/research/19/i/skidmap-linux-malware-uses-rootkit-capabilities-to-hide-cryptocurrency-mining-payload.html"],"tags":["Elastic","Host","macOS","Linux","Threat Detection","Credential Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and event.type:change and\n (file.name:pam_*.so or file.path:(/etc/pam.d/* or /private/etc/pam.d/*)) and\n process.executable:\n (* and\n not\n (\n /bin/yum or\n \"/usr/sbin/pam-auth-update\" or\n /usr/libexec/packagekitd or\n /usr/bin/dpkg or\n /usr/bin/vim or\n /usr/libexec/xpcproxy or\n /usr/bin/bsdtar or\n /usr/local/bin/brew or\n /usr/bin/rsync or\n /usr/bin/yum or\n /var/lib/docker/*/bin/yum or\n /var/lib/docker/*/bin/dpkg or\n ./merged/var/lib/docker/*/bin/dpkg or\n \"/System/Library/PrivateFrameworks/PackageKit.framework/Versions/A/XPCServices/package_script_service.xpc/Contents/MacOS/package_script_service\"\n )\n ) and\n not file.path:\n (\n /tmp/snap.rootfs_*/pam_*.so or\n /tmp/newroot/lib/*/pam_*.so or\n /private/var/folders/*/T/com.apple.fileprovider.ArchiveService/TemporaryItems/*/lib/security/pam_*.so or\n /tmp/newroot/usr/lib64/security/pam_*.so\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]}]},"id":"93f47b6f-5728-4004-ba00-625083b3dcb0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/9510add4-3392-11ed-bd01-f661ea17fbce.json b/fleet-packages/detection-rules-composite/kibana/security_rule/9510add4-3392-11ed-bd01-f661ea17fbce.json new file mode 100644 index 0000000000000..f5895bb7632bd --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/9510add4-3392-11ed-bd01-f661ea17fbce.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"9510add4-3392-11ed-bd01-f661ea17fbce","versions":[{"name":"Google Workspace Custom Gmail Route Created or Modified v2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a custom Gmail route is added or modified in Google Workspace. Adversaries can add a custom e-mail route for outbound mail to route these e-mails to their own inbox of choice for data gathering. This allows adversaries to capture sensitive information from e-mail and potential attachments, such as invoices or payment documents. By default, all email from current Google Workspace users with accounts are routed through a domain's mail server for inbound and outbound mail.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrators may create custom email routes in Google Workspace based on organizational policies, administrative preference or for security purposes regarding spam."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/2685650?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Collection"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1114","name":"Email Collection","reference":"https://attack.mitre.org/techniques/T1114/","subtechnique":[{"id":"T1114.003","name":"Email Forwarding Rule","reference":"https://attack.mitre.org/techniques/T1114/003/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:(\"CREATE_GMAIL_SETTING\" or \"CHANGE_GMAIL_SETTING\")\n and google_workspace.event.type:\"EMAIL_SETTINGS\" and google_workspace.admin.setting.name:(\"EMAIL_ROUTE\" or \"MESSAGE_SECURITY_RULE\")\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.setting.name","type":"keyword"},{"ecs":false,"name":"google_workspace.event.type","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Google Workspace Custom Gmail Route Created or Modified v2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a custom Gmail route is added or modified in Google Workspace. Adversaries can add a custom e-mail route for outbound mail to route these e-mails to their own inbox of choice for data gathering. This allows adversaries to capture sensitive information from e-mail and potential attachments, such as invoices or payment documents. By default, all email from current Google Workspace users with accounts are routed through a domain's mail server for inbound and outbound mail.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrators may create custom email routes in Google Workspace based on organizational policies, administrative preference or for security purposes regarding spam."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/2685650?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Collection"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1114","name":"Email Collection","reference":"https://attack.mitre.org/techniques/T1114/","subtechnique":[{"id":"T1114.003","name":"Email Forwarding Rule","reference":"https://attack.mitre.org/techniques/T1114/003/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:(\"CREATE_GMAIL_SETTING\" or \"CHANGE_GMAIL_SETTING\")\n and google_workspace.event.type:\"EMAIL_SETTINGS\" and google_workspace.admin.setting.name:(\"EMAIL_ROUTE\" or \"MESSAGE_SECURITY_RULE\")\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.setting.name","type":"keyword"},{"ecs":false,"name":"google_workspace.event.type","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Google Workspace Custom Gmail Route Created or Modified v2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a custom Gmail route is added or modified in Google Workspace. Adversaries can add a custom e-mail route for outbound mail to route these e-mails to their own inbox of choice for data gathering. This allows adversaries to capture sensitive information from e-mail and potential attachments, such as invoices or payment documents. By default, all email from current Google Workspace users with accounts are routed through a domain's mail server for inbound and outbound mail.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrators may create custom email routes in Google Workspace based on organizational policies, administrative preference or for security purposes regarding spam."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/2685650?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Collection"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1114","name":"Email Collection","reference":"https://attack.mitre.org/techniques/T1114/","subtechnique":[{"id":"T1114.003","name":"Email Forwarding Rule","reference":"https://attack.mitre.org/techniques/T1114/003/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:(\"CREATE_GMAIL_SETTING\" or \"CHANGE_GMAIL_SETTING\")\n and google_workspace.event.type:\"EMAIL_SETTINGS\" and google_workspace.admin.setting.name:(\"EMAIL_ROUTE\" or \"MESSAGE_SECURITY_RULE\")\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.setting.name","type":"keyword"},{"ecs":false,"name":"google_workspace.event.type","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"9510add4-3392-11ed-bd01-f661ea17fbce","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/954ee7c8-5437-49ae-b2d6-2960883898e9.json b/fleet-packages/detection-rules-composite/kibana/security_rule/954ee7c8-5437-49ae-b2d6-2960883898e9.json new file mode 100644 index 0000000000000..7dd0ad5004d6e --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/954ee7c8-5437-49ae-b2d6-2960883898e9.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"954ee7c8-5437-49ae-b2d6-2960883898e9","versions":[{"name":"Remote Scheduled Task Creation v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote scheduled task creations on a target host. This could be indicative of adversary lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote Scheduled Task Creation\n\n[Scheduled tasks](https://docs.microsoft.com/en-us/windows/win32/taskschd/about-the-task-scheduler) are a great mechanism\nfor persistence and program execution. These features can be used remotely for a variety of legitimate reasons, but at\nthe same time used by malware and adversaries. When investigating scheduled tasks that were set up remotely, one of the\nfirst steps should be to determine the original intent behind the configuration and to verify if the activity is tied to\nbenign behavior such as software installation or any kind of network administrator work. One objective for these alerts\nis to understand the configured action within the scheduled task. This is captured within the registry event data for\nthis rule and can be base64 decoded to view the value.\n\n#### Possible investigation steps\n\n- Review the base64 encoded tasks actions registry value to investigate the task configured action.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate software\ninstallations.\n- Further examination should include review of host-based artifacts and network logs from around when the scheduled task\nwas created, on both the source and target machines.\n\n### False positive analysis\n\n- There is a high possibility of benign activity tied to the creation of remote scheduled tasks as it is a general feature\nwithin Windows and used for legitimate purposes for a wide range of activity. Any kind of context should be found to\nfurther understand the source of the activity and determine the intent based on the scheduled task's contents.\n\n### Related rules\n\n- Service Command Lateral Movement - d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc\n- Remotely Started Services via RPC - aa9a274d-6b53-424d-ac5e-cb8ca4251650\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Remove scheduled task and any other related artifacts.\n- Review privileged account management and user account management settings. Consider implementing group policy object (GPO) policies to further\nrestrict activity, or configuring settings that only allow administrators to create remote scheduled tasks.\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"/* Task Scheduler service incoming connection followed by TaskCache registry modification */\n\nsequence by host.id, process.entity_id with maxspan = 1m\n [network where process.name : \"svchost.exe\" and\n network.direction : (\"incoming\", \"ingress\") and source.port >= 49152 and destination.port >= 49152 and\n source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ]\n [registry where registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Schedule\\\\TaskCache\\\\Tasks\\\\*\\\\Actions\"]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]},{"name":"Remote Scheduled Task Creation v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote scheduled task creations on a target host. This could be indicative of adversary lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote Scheduled Task Creation\n\n[Scheduled tasks](https://docs.microsoft.com/en-us/windows/win32/taskschd/about-the-task-scheduler) are a great mechanism\nfor persistence and program execution. These features can be used remotely for a variety of legitimate reasons, but at\nthe same time used by malware and adversaries. When investigating scheduled tasks that were set up remotely, one of the\nfirst steps should be to determine the original intent behind the configuration and to verify if the activity is tied to\nbenign behavior such as software installation or any kind of network administrator work. One objective for these alerts\nis to understand the configured action within the scheduled task. This is captured within the registry event data for\nthis rule and can be base64 decoded to view the value.\n\n#### Possible investigation steps\n\n- Review the base64 encoded tasks actions registry value to investigate the task configured action.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate software\ninstallations.\n- Further examination should include review of host-based artifacts and network logs from around when the scheduled task\nwas created, on both the source and target machines.\n\n### False positive analysis\n\n- There is a high possibility of benign activity tied to the creation of remote scheduled tasks as it is a general feature\nwithin Windows and used for legitimate purposes for a wide range of activity. Any kind of context should be found to\nfurther understand the source of the activity and determine the intent based on the scheduled task's contents.\n\n### Related rules\n\n- Service Command Lateral Movement - d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc\n- Remotely Started Services via RPC - aa9a274d-6b53-424d-ac5e-cb8ca4251650\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Remove scheduled task and any other related artifacts.\n- Review privileged account management and user account management settings. Consider implementing group policy object (GPO) policies to further\nrestrict activity, or configuring settings that only allow administrators to create remote scheduled tasks.\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"/* Task Scheduler service incoming connection followed by TaskCache registry modification */\n\nsequence by host.id, process.entity_id with maxspan = 1m\n [network where process.name : \"svchost.exe\" and\n network.direction : (\"incoming\", \"ingress\") and source.port >= 49152 and destination.port >= 49152 and\n source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ]\n [registry where registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Schedule\\\\TaskCache\\\\Tasks\\\\*\\\\Actions\"]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]},{"name":"Remote Scheduled Task Creation v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote scheduled task creations on a target host. This could be indicative of adversary lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote Scheduled Task Creation\n\n[Scheduled tasks](https://docs.microsoft.com/en-us/windows/win32/taskschd/about-the-task-scheduler) are a great mechanism\nfor persistence and program execution. These features can be used remotely for a variety of legitimate reasons, but at\nthe same time used by malware and adversaries. When investigating scheduled tasks that were set up remotely, one of the\nfirst steps should be to determine the original intent behind the configuration and to verify if the activity is tied to\nbenign behavior such as software installation or any kind of network administrator work. One objective for these alerts\nis to understand the configured action within the scheduled task. This is captured within the registry event data for\nthis rule and can be base64 decoded to view the value.\n\n#### Possible investigation steps\n\n- Review the base64 encoded tasks actions registry value to investigate the task configured action.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate software\ninstallations.\n- Further examination should include review of host-based artifacts and network logs from around when the scheduled task\nwas created, on both the source and target machines.\n\n### False positive analysis\n\n- There is a high possibility of benign activity tied to the creation of remote scheduled tasks as it is a general feature\nwithin Windows and used for legitimate purposes for a wide range of activity. Any kind of context should be found to\nfurther understand the source of the activity and determine the intent based on the scheduled task's contents.\n\n### Related rules\n\n- Service Command Lateral Movement - d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc\n- Remotely Started Services via RPC - aa9a274d-6b53-424d-ac5e-cb8ca4251650\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Remove scheduled task and any other related artifacts.\n- Review privileged account management and user account management settings. Consider implementing group policy object (GPO) policies to further\nrestrict activity, or configuring settings that only allow administrators to create remote scheduled tasks.\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"/* Task Scheduler service incoming connection followed by TaskCache registry modification */\n\nsequence by host.id, process.entity_id with maxspan = 1m\n [network where process.name : \"svchost.exe\" and\n network.direction : (\"incoming\", \"ingress\") and source.port >= 49152 and destination.port >= 49152 and\n source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ]\n [registry where registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Schedule\\\\TaskCache\\\\Tasks\\\\*\\\\Actions\"]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]}]},"id":"954ee7c8-5437-49ae-b2d6-2960883898e9","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/959a7353-1129-4aa7-9084-30746b256a70.json b/fleet-packages/detection-rules-composite/kibana/security_rule/959a7353-1129-4aa7-9084-30746b256a70.json new file mode 100644 index 0000000000000..47d649286938e --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/959a7353-1129-4aa7-9084-30746b256a70.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"959a7353-1129-4aa7-9084-30746b256a70","versions":[{"name":"PowerShell Suspicious Script with Screenshot Capabilities v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects PowerShell scripts that can take screenshots, which is a common feature in post-exploitation kits and remote access tools (RATs).","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Suspicious Script with Screenshot Capabilities\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks, which makes\nit available for use in various environments and creates an attractive way for attackers to execute code.\n\nAttackers can abuse PowerShell capabilities and take screen captures of desktops to gather information over the course\nof an operation.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Investigate if the script stores the captured data locally.\n- Investigate if the script contains exfiltration capabilities and the destination of this exfiltration.\n- Assess network data to determine if the host communicated with the exfiltration server.\n\n### False positive analysis\n\n- Regular users do not have a business justification for using scripting utilities to take screenshots, which makes false\npositives unlikely. In the case of authorized benign true positives (B-TPs), exceptions can be added.\n\n### Related rules\n\n- PowerShell Keylogging Script - bd2c86a0-8b61-4457-ab38-96943984e889\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/dotnet/api/system.drawing.graphics.copyfromscreen"],"tags":["Elastic","Host","Windows","Threat Detection","Collection","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1113","name":"Screen Capture","reference":"https://attack.mitre.org/techniques/T1113/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n CopyFromScreen and\n (\"System.Drawing.Bitmap\" or \"Drawing.Bitmap\")\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},{"name":"PowerShell Suspicious Script with Screenshot Capabilities v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects PowerShell scripts that can take screenshots, which is a common feature in post-exploitation kits and remote access tools (RATs).","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Suspicious Script with Screenshot Capabilities\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks, which makes\nit available for use in various environments and creates an attractive way for attackers to execute code.\n\nAttackers can abuse PowerShell capabilities and take screen captures of desktops to gather information over the course\nof an operation.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Investigate if the script stores the captured data locally.\n- Investigate if the script contains exfiltration capabilities and the destination of this exfiltration.\n- Assess network data to determine if the host communicated with the exfiltration server.\n\n### False positive analysis\n\n- Regular users do not have a business justification for using scripting utilities to take screenshots, which makes false\npositives unlikely. In the case of authorized benign true positives (B-TPs), exceptions can be added.\n\n### Related rules\n\n- PowerShell Keylogging Script - bd2c86a0-8b61-4457-ab38-96943984e889\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/dotnet/api/system.drawing.graphics.copyfromscreen"],"tags":["Elastic","Host","Windows","Threat Detection","Collection","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1113","name":"Screen Capture","reference":"https://attack.mitre.org/techniques/T1113/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n CopyFromScreen and\n (\"System.Drawing.Bitmap\" or \"Drawing.Bitmap\")\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},{"name":"PowerShell Suspicious Script with Screenshot Capabilities v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects PowerShell scripts that can take screenshots, which is a common feature in post-exploitation kits and remote access tools (RATs).","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Suspicious Script with Screenshot Capabilities\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks, which makes\nit available for use in various environments and creates an attractive way for attackers to execute code.\n\nAttackers can abuse PowerShell capabilities and take screen captures of desktops to gather information over the course\nof an operation.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Investigate if the script stores the captured data locally.\n- Investigate if the script contains exfiltration capabilities and the destination of this exfiltration.\n- Assess network data to determine if the host communicated with the exfiltration server.\n\n### False positive analysis\n\n- Regular users do not have a business justification for using scripting utilities to take screenshots, which makes false\npositives unlikely. In the case of authorized benign true positives (B-TPs), exceptions can be added.\n\n### Related rules\n\n- PowerShell Keylogging Script - bd2c86a0-8b61-4457-ab38-96943984e889\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/dotnet/api/system.drawing.graphics.copyfromscreen"],"tags":["Elastic","Host","Windows","Threat Detection","Collection","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1113","name":"Screen Capture","reference":"https://attack.mitre.org/techniques/T1113/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n CopyFromScreen and\n (\"System.Drawing.Bitmap\" or \"Drawing.Bitmap\")\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"}]},"id":"959a7353-1129-4aa7-9084-30746b256a70","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/968ccab9-da51-4a87-9ce2-d3c9782fd759.json b/fleet-packages/detection-rules-composite/kibana/security_rule/968ccab9-da51-4a87-9ce2-d3c9782fd759.json new file mode 100644 index 0000000000000..b94afb3feef9d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/968ccab9-da51-4a87-9ce2-d3c9782fd759.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"968ccab9-da51-4a87-9ce2-d3c9782fd759","versions":[{"name":"File made Immutable by Chattr v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects a file being made immutable using the chattr binary. Making a file immutable means it cannot be deleted or renamed, no link can be created to this file, most of the file's metadata can not be modified, and the file can not be opened in write mode. Threat actors will commonly utilize this to prevent tampering or modification of their malicious files or any system files they have modified for purposes of persistence (e.g .ssh, /etc/passwd, etc.).","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1222","name":"File and Directory Permissions Modification","reference":"https://attack.mitre.org/techniques/T1222/","subtechnique":[{"id":"T1222.002","name":"Linux and Mac File and Directory Permissions Modification","reference":"https://attack.mitre.org/techniques/T1222/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and user.name == \"root\" and process.executable : \"/usr/bin/chattr\" and process.args : (\"-*i*\", \"+*i*\") and not process.parent.executable: \"/lib/systemd/systemd\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"File made Immutable by Chattr v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects a file being made immutable using the chattr binary. Making a file immutable means it cannot be deleted or renamed, no link can be created to this file, most of the file's metadata can not be modified, and the file can not be opened in write mode. Threat actors will commonly utilize this to prevent tampering or modification of their malicious files or any system files they have modified for purposes of persistence (e.g .ssh, /etc/passwd, etc.).","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1222","name":"File and Directory Permissions Modification","reference":"https://attack.mitre.org/techniques/T1222/","subtechnique":[{"id":"T1222.002","name":"Linux and Mac File and Directory Permissions Modification","reference":"https://attack.mitre.org/techniques/T1222/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and user.name == \"root\" and process.executable : \"/usr/bin/chattr\" and process.args : (\"-*i*\", \"+*i*\") and not process.parent.executable: \"/lib/systemd/systemd\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"File made Immutable by Chattr v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects a file being made immutable using the chattr binary. Making a file immutable means it cannot be deleted or renamed, no link can be created to this file, most of the file's metadata can not be modified, and the file can not be opened in write mode. Threat actors will commonly utilize this to prevent tampering or modification of their malicious files or any system files they have modified for purposes of persistence (e.g .ssh, /etc/passwd, etc.).","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1222","name":"File and Directory Permissions Modification","reference":"https://attack.mitre.org/techniques/T1222/","subtechnique":[{"id":"T1222.002","name":"Linux and Mac File and Directory Permissions Modification","reference":"https://attack.mitre.org/techniques/T1222/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and user.name == \"root\" and process.executable : \"/usr/bin/chattr\" and process.args : (\"-*i*\", \"+*i*\") and not process.parent.executable: \"/lib/systemd/systemd\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"968ccab9-da51-4a87-9ce2-d3c9782fd759","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/96b9f4ea-0e8c-435b-8d53-2096e75fcac5.json b/fleet-packages/detection-rules-composite/kibana/security_rule/96b9f4ea-0e8c-435b-8d53-2096e75fcac5.json new file mode 100644 index 0000000000000..2aa4c587b4b05 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/96b9f4ea-0e8c-435b-8d53-2096e75fcac5.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"96b9f4ea-0e8c-435b-8d53-2096e75fcac5","versions":[{"name":"Attempt to Create Okta API Token v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to create an Okta API token. An adversary may create an Okta API token to maintain access to an organization's network while they work to achieve their objectives. An attacker may abuse an API token to execute techniques such as creating user accounts or disabling security rules or policies.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If the behavior of creating Okta API tokens is expected, consider adding exceptions to this rule to filter false positives."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:system.api_token.create\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Create Okta API Token v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to create an Okta API token. An adversary may create an Okta API token to maintain access to an organization's network while they work to achieve their objectives. An attacker may abuse an API token to execute techniques such as creating user accounts or disabling security rules or policies.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If the behavior of creating Okta API tokens is expected, consider adding exceptions to this rule to filter false positives."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:system.api_token.create\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Create Okta API Token v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to create an Okta API token. An adversary may create an Okta API token to maintain access to an organization's network while they work to achieve their objectives. An attacker may abuse an API token to execute techniques such as creating user accounts or disabling security rules or policies.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If the behavior of creating Okta API tokens is expected, consider adding exceptions to this rule to filter false positives."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:system.api_token.create\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"96b9f4ea-0e8c-435b-8d53-2096e75fcac5","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/96e90768-c3b7-4df6-b5d9-6237f8bc36a8.json b/fleet-packages/detection-rules-composite/kibana/security_rule/96e90768-c3b7-4df6-b5d9-6237f8bc36a8.json new file mode 100644 index 0000000000000..1fc1c56da4184 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/96e90768-c3b7-4df6-b5d9-6237f8bc36a8.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"96e90768-c3b7-4df6-b5d9-6237f8bc36a8","versions":[{"name":"Access to Keychain Credentials Directories v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may collect the keychain storage data from a system to acquire credentials. Keychains are the built-in way for macOS to keep track of users' passwords and credentials for many services and features such as WiFi passwords, websites, secure notes and certificates.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://objective-see.com/blog/blog_0x25.html","https://securelist.com/calisto-trojan-for-macos/86543/"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.001","name":"Keychain","reference":"https://attack.mitre.org/techniques/T1555/001/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.args :\n (\n \"/Users/*/Library/Keychains/*\",\n \"/Library/Keychains/*\",\n \"/Network/Library/Keychains/*\",\n \"System.keychain\",\n \"login.keychain-db\",\n \"login.keychain\"\n ) and\n not process.args : (\"find-certificate\",\n \"add-trusted-cert\",\n \"set-keychain-settings\",\n \"delete-certificate\",\n \"/Users/*/Library/Keychains/openvpn.keychain-db\",\n \"show-keychain-info\",\n \"lock-keychain\",\n \"set-key-partition-list\",\n \"import\",\n \"find-identity\") and\n not process.parent.executable :\n (\n \"/Applications/OpenVPN Connect/OpenVPN Connect.app/Contents/MacOS/OpenVPN Connect\",\n \"/Applications/Microsoft Defender.app/Contents/MacOS/wdavdaemon_enterprise.app/Contents/MacOS/wdavdaemon_enterprise\",\n \"/opt/jc/bin/jumpcloud-agent\"\n ) and\n not process.executable : \"/opt/jc/bin/jumpcloud-agent\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Access to Keychain Credentials Directories v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may collect the keychain storage data from a system to acquire credentials. Keychains are the built-in way for macOS to keep track of users' passwords and credentials for many services and features such as WiFi passwords, websites, secure notes and certificates.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://objective-see.com/blog/blog_0x25.html","https://securelist.com/calisto-trojan-for-macos/86543/"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.001","name":"Keychain","reference":"https://attack.mitre.org/techniques/T1555/001/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.args :\n (\n \"/Users/*/Library/Keychains/*\",\n \"/Library/Keychains/*\",\n \"/Network/Library/Keychains/*\",\n \"System.keychain\",\n \"login.keychain-db\",\n \"login.keychain\"\n ) and\n not process.args : (\"find-certificate\",\n \"add-trusted-cert\",\n \"set-keychain-settings\",\n \"delete-certificate\",\n \"/Users/*/Library/Keychains/openvpn.keychain-db\",\n \"show-keychain-info\",\n \"lock-keychain\",\n \"set-key-partition-list\",\n \"import\",\n \"find-identity\") and\n not process.parent.executable :\n (\n \"/Applications/OpenVPN Connect/OpenVPN Connect.app/Contents/MacOS/OpenVPN Connect\",\n \"/Applications/Microsoft Defender.app/Contents/MacOS/wdavdaemon_enterprise.app/Contents/MacOS/wdavdaemon_enterprise\",\n \"/opt/jc/bin/jumpcloud-agent\"\n ) and\n not process.executable : \"/opt/jc/bin/jumpcloud-agent\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Access to Keychain Credentials Directories v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may collect the keychain storage data from a system to acquire credentials. Keychains are the built-in way for macOS to keep track of users' passwords and credentials for many services and features such as WiFi passwords, websites, secure notes and certificates.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://objective-see.com/blog/blog_0x25.html","https://securelist.com/calisto-trojan-for-macos/86543/"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.001","name":"Keychain","reference":"https://attack.mitre.org/techniques/T1555/001/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.args :\n (\n \"/Users/*/Library/Keychains/*\",\n \"/Library/Keychains/*\",\n \"/Network/Library/Keychains/*\",\n \"System.keychain\",\n \"login.keychain-db\",\n \"login.keychain\"\n ) and\n not process.args : (\"find-certificate\",\n \"add-trusted-cert\",\n \"set-keychain-settings\",\n \"delete-certificate\",\n \"/Users/*/Library/Keychains/openvpn.keychain-db\",\n \"show-keychain-info\",\n \"lock-keychain\",\n \"set-key-partition-list\",\n \"import\",\n \"find-identity\") and\n not process.parent.executable :\n (\n \"/Applications/OpenVPN Connect/OpenVPN Connect.app/Contents/MacOS/OpenVPN Connect\",\n \"/Applications/Microsoft Defender.app/Contents/MacOS/wdavdaemon_enterprise.app/Contents/MacOS/wdavdaemon_enterprise\",\n \"/opt/jc/bin/jumpcloud-agent\"\n ) and\n not process.executable : \"/opt/jc/bin/jumpcloud-agent\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"96e90768-c3b7-4df6-b5d9-6237f8bc36a8","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/97020e61-e591-4191-8a3b-2861a2b887cd.json b/fleet-packages/detection-rules-composite/kibana/security_rule/97020e61-e591-4191-8a3b-2861a2b887cd.json new file mode 100644 index 0000000000000..a347f52dc65e9 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/97020e61-e591-4191-8a3b-2861a2b887cd.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"97020e61-e591-4191-8a3b-2861a2b887cd","versions":[{"name":"SeDebugPrivilege Enabled by a Suspicious Process v1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a process running as SYSTEM and impersonating a Windows core binary privileges. Adversaries may create a new process with a different token to escalate privileges and bypass access controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4703","https://blog.palantir.com/windows-privilege-abuse-auditing-detection-and-defense-3078a403d74e"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"language":"eql","query":"any where event.provider: \"Microsoft-Windows-Security-Auditing\" and\n event.action : \"Token Right Adjusted Events\" and\n\n winlog.event_data.EnabledPrivilegeList : \"SeDebugPrivilege\" and\n\n /* exclude processes with System Integrity */\n not winlog.event_data.SubjectUserSid : (\"S-1-5-18\", \"S-1-5-19\", \"S-1-5-20\") and\n\n not winlog.event_data.ProcessName :\n (\"?:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\System32\\\\lsass.exe\",\n \"?:\\\\Windows\\\\WinSxS\\\\*\",\n \"?:\\\\Program Files\\\\*\",\n \"?:\\\\Program Files (x86)\\\\*\",\n \"?:\\\\Windows\\\\System32\\\\MRT.exe\",\n \"?:\\\\Windows\\\\System32\\\\cleanmgr.exe\",\n \"?:\\\\Windows\\\\System32\\\\taskhostw.exe\",\n \"?:\\\\Windows\\\\System32\\\\mmc.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\*-*\\\\DismHost.exe\",\n \"?:\\\\Windows\\\\System32\\\\auditpol.exe\",\n \"?:\\\\Windows\\\\System32\\\\wbem\\\\WmiPrvSe.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\wbem\\\\WmiPrvSe.exe\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"winlog.event_data.EnabledPrivilegeList","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ProcessName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.SubjectUserSid","type":"keyword"}],"setup":"Windows Event 4703 logs Token Privileges changes and need to be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDetailed Tracking >\nToken Right Adjusted Events (Success)\n```"},{"name":"SeDebugPrivilege Enabled by a Suspicious Process v1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a process running as SYSTEM and impersonating a Windows core binary privileges. Adversaries may create a new process with a different token to escalate privileges and bypass access controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4703","https://blog.palantir.com/windows-privilege-abuse-auditing-detection-and-defense-3078a403d74e"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"language":"eql","query":"any where event.provider: \"Microsoft-Windows-Security-Auditing\" and\n event.action : \"Token Right Adjusted Events\" and\n\n winlog.event_data.EnabledPrivilegeList : \"SeDebugPrivilege\" and\n\n /* exclude processes with System Integrity */\n not winlog.event_data.SubjectUserSid : (\"S-1-5-18\", \"S-1-5-19\", \"S-1-5-20\") and\n\n not winlog.event_data.ProcessName :\n (\"?:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\System32\\\\lsass.exe\",\n \"?:\\\\Windows\\\\WinSxS\\\\*\",\n \"?:\\\\Program Files\\\\*\",\n \"?:\\\\Program Files (x86)\\\\*\",\n \"?:\\\\Windows\\\\System32\\\\MRT.exe\",\n \"?:\\\\Windows\\\\System32\\\\cleanmgr.exe\",\n \"?:\\\\Windows\\\\System32\\\\taskhostw.exe\",\n \"?:\\\\Windows\\\\System32\\\\mmc.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\*-*\\\\DismHost.exe\",\n \"?:\\\\Windows\\\\System32\\\\auditpol.exe\",\n \"?:\\\\Windows\\\\System32\\\\wbem\\\\WmiPrvSe.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\wbem\\\\WmiPrvSe.exe\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"winlog.event_data.EnabledPrivilegeList","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ProcessName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.SubjectUserSid","type":"keyword"}],"setup":"Windows Event 4703 logs Token Privileges changes and need to be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDetailed Tracking >\nToken Right Adjusted Events (Success)\n```"},{"name":"SeDebugPrivilege Enabled by a Suspicious Process v1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a process running as SYSTEM and impersonating a Windows core binary privileges. Adversaries may create a new process with a different token to escalate privileges and bypass access controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4703","https://blog.palantir.com/windows-privilege-abuse-auditing-detection-and-defense-3078a403d74e"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"language":"eql","query":"any where event.provider: \"Microsoft-Windows-Security-Auditing\" and\n event.action : \"Token Right Adjusted Events\" and\n\n winlog.event_data.EnabledPrivilegeList : \"SeDebugPrivilege\" and\n\n /* exclude processes with System Integrity */\n not winlog.event_data.SubjectUserSid : (\"S-1-5-18\", \"S-1-5-19\", \"S-1-5-20\") and\n\n not winlog.event_data.ProcessName :\n (\"?:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\System32\\\\lsass.exe\",\n \"?:\\\\Windows\\\\WinSxS\\\\*\",\n \"?:\\\\Program Files\\\\*\",\n \"?:\\\\Program Files (x86)\\\\*\",\n \"?:\\\\Windows\\\\System32\\\\MRT.exe\",\n \"?:\\\\Windows\\\\System32\\\\cleanmgr.exe\",\n \"?:\\\\Windows\\\\System32\\\\taskhostw.exe\",\n \"?:\\\\Windows\\\\System32\\\\mmc.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\*-*\\\\DismHost.exe\",\n \"?:\\\\Windows\\\\System32\\\\auditpol.exe\",\n \"?:\\\\Windows\\\\System32\\\\wbem\\\\WmiPrvSe.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\wbem\\\\WmiPrvSe.exe\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"winlog.event_data.EnabledPrivilegeList","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ProcessName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.SubjectUserSid","type":"keyword"}],"setup":"Windows Event 4703 logs Token Privileges changes and need to be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDetailed Tracking >\nToken Right Adjusted Events (Success)\n```"}]},"id":"97020e61-e591-4191-8a3b-2861a2b887cd","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/97314185-2568-4561-ae81-f3e480e5e695.json b/fleet-packages/detection-rules-composite/kibana/security_rule/97314185-2568-4561-ae81-f3e480e5e695.json new file mode 100644 index 0000000000000..1a07319e5a9f4 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/97314185-2568-4561-ae81-f3e480e5e695.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"97314185-2568-4561-ae81-f3e480e5e695","versions":[{"name":"Microsoft 365 Exchange Anti-Phish Rule Modification v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the modification of an anti-phishing rule in Microsoft 365. By default, Microsoft 365 includes built-in features that help protect users from phishing attacks. Anti-phishing rules increase this protection by refining settings to better detect and prevent attacks.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An anti-phishing rule may be deleted by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-antiphishrule?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/disable-antiphishrule?view=exchange-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:(\"Remove-AntiPhishRule\" or \"Disable-AntiPhishRule\") and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Exchange Anti-Phish Rule Modification v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the modification of an anti-phishing rule in Microsoft 365. By default, Microsoft 365 includes built-in features that help protect users from phishing attacks. Anti-phishing rules increase this protection by refining settings to better detect and prevent attacks.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An anti-phishing rule may be deleted by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-antiphishrule?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/disable-antiphishrule?view=exchange-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:(\"Remove-AntiPhishRule\" or \"Disable-AntiPhishRule\") and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Exchange Anti-Phish Rule Modification v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the modification of an anti-phishing rule in Microsoft 365. By default, Microsoft 365 includes built-in features that help protect users from phishing attacks. Anti-phishing rules increase this protection by refining settings to better detect and prevent attacks.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An anti-phishing rule may be deleted by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-antiphishrule?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/disable-antiphishrule?view=exchange-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:(\"Remove-AntiPhishRule\" or \"Disable-AntiPhishRule\") and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"97314185-2568-4561-ae81-f3e480e5e695","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/97359fd8-757d-4b1d-9af1-ef29e4a8680e.json b/fleet-packages/detection-rules-composite/kibana/security_rule/97359fd8-757d-4b1d-9af1-ef29e4a8680e.json new file mode 100644 index 0000000000000..496ae3745dcec --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/97359fd8-757d-4b1d-9af1-ef29e4a8680e.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"97359fd8-757d-4b1d-9af1-ef29e4a8680e","versions":[{"name":"GCP Storage Bucket Configuration Modification v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when the configuration is modified for a storage bucket in Google Cloud Platform (GCP). An adversary may modify the configuration of a storage bucket in order to weaken the security controls of their target's environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Storage bucket configuration may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/storage/docs/key-terms#buckets"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1578","name":"Modify Cloud Compute Infrastructure","reference":"https://attack.mitre.org/techniques/T1578/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:\"storage.buckets.update\" and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Storage Bucket Configuration Modification v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when the configuration is modified for a storage bucket in Google Cloud Platform (GCP). An adversary may modify the configuration of a storage bucket in order to weaken the security controls of their target's environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Storage bucket configuration may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/storage/docs/key-terms#buckets"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1578","name":"Modify Cloud Compute Infrastructure","reference":"https://attack.mitre.org/techniques/T1578/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:\"storage.buckets.update\" and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Storage Bucket Configuration Modification v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when the configuration is modified for a storage bucket in Google Cloud Platform (GCP). An adversary may modify the configuration of a storage bucket in order to weaken the security controls of their target's environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Storage bucket configuration may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/storage/docs/key-terms#buckets"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1578","name":"Modify Cloud Compute Infrastructure","reference":"https://attack.mitre.org/techniques/T1578/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:\"storage.buckets.update\" and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"97359fd8-757d-4b1d-9af1-ef29e4a8680e","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/979729e7-0c52-4c4c-b71e-88103304a79f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/979729e7-0c52-4c4c-b71e-88103304a79f.json new file mode 100644 index 0000000000000..a5f877365a3e4 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/979729e7-0c52-4c4c-b71e-88103304a79f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"979729e7-0c52-4c4c-b71e-88103304a79f","versions":[{"name":"AWS SAML Activity v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when SAML activity has occurred in AWS. An adversary could manipulate SAML to maintain access to the target.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["SAML Provider could be updated by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. SAML Provider updates by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateSAMLProvider.html","https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.001","name":"Application Access Token","reference":"https://attack.mitre.org/techniques/T1550/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:(iam.amazonaws.com or sts.amazonaws.com) and event.action:(Assumerolewithsaml or\nUpdateSAMLProvider) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS SAML Activity v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when SAML activity has occurred in AWS. An adversary could manipulate SAML to maintain access to the target.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["SAML Provider could be updated by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. SAML Provider updates by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateSAMLProvider.html","https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.001","name":"Application Access Token","reference":"https://attack.mitre.org/techniques/T1550/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:(iam.amazonaws.com or sts.amazonaws.com) and event.action:(Assumerolewithsaml or\nUpdateSAMLProvider) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS SAML Activity v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when SAML activity has occurred in AWS. An adversary could manipulate SAML to maintain access to the target.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["SAML Provider could be updated by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. SAML Provider updates by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateSAMLProvider.html","https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.001","name":"Application Access Token","reference":"https://attack.mitre.org/techniques/T1550/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:(iam.amazonaws.com or sts.amazonaws.com) and event.action:(Assumerolewithsaml or\nUpdateSAMLProvider) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"979729e7-0c52-4c4c-b71e-88103304a79f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/97a8e584-fd3b-421f-9b9d-9c9d9e57e9d7.json b/fleet-packages/detection-rules-composite/kibana/security_rule/97a8e584-fd3b-421f-9b9d-9c9d9e57e9d7.json new file mode 100644 index 0000000000000..d4066d956fd34 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/97a8e584-fd3b-421f-9b9d-9c9d9e57e9d7.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"97a8e584-fd3b-421f-9b9d-9c9d9e57e9d7","versions":[{"name":"Potential Abuse of Repeated MFA Push Notifications v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when an attacker abuses the Multi-Factor authentication mechanism by repeatedly issuing login requests until the user eventually accepts the Okta push notification. An adversary may attempt to bypass the Okta MFA policies configured for an organization to obtain unauthorized access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic"],"references":["https://www.mandiant.com/resources/russian-targeting-gov-business","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"language":"eql","query":"sequence by user.email with maxspan=10m\n [any where event.module == \"okta\" and event.action == \"user.mfa.okta_verify.deny_push\"]\n [any where event.module == \"okta\" and event.action == \"user.mfa.okta_verify.deny_push\"]\n [any where event.module == \"okta\" and event.action == \"user.authentication.sso\"]\n","type":"eql","index":["filebeat-*","logs-okta*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"},{"ecs":true,"name":"user.email","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Potential Abuse of Repeated MFA Push Notifications v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when an attacker abuses the Multi-Factor authentication mechanism by repeatedly issuing login requests until the user eventually accepts the Okta push notification. An adversary may attempt to bypass the Okta MFA policies configured for an organization to obtain unauthorized access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic"],"references":["https://www.mandiant.com/resources/russian-targeting-gov-business","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"language":"eql","query":"sequence by user.email with maxspan=10m\n [any where event.module == \"okta\" and event.action == \"user.mfa.okta_verify.deny_push\"]\n [any where event.module == \"okta\" and event.action == \"user.mfa.okta_verify.deny_push\"]\n [any where event.module == \"okta\" and event.action == \"user.authentication.sso\"]\n","type":"eql","index":["filebeat-*","logs-okta*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"},{"ecs":true,"name":"user.email","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Potential Abuse of Repeated MFA Push Notifications v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when an attacker abuses the Multi-Factor authentication mechanism by repeatedly issuing login requests until the user eventually accepts the Okta push notification. An adversary may attempt to bypass the Okta MFA policies configured for an organization to obtain unauthorized access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic"],"references":["https://www.mandiant.com/resources/russian-targeting-gov-business","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"language":"eql","query":"sequence by user.email with maxspan=10m\n [any where event.module == \"okta\" and event.action == \"user.mfa.okta_verify.deny_push\"]\n [any where event.module == \"okta\" and event.action == \"user.mfa.okta_verify.deny_push\"]\n [any where event.module == \"okta\" and event.action == \"user.authentication.sso\"]\n","type":"eql","index":["filebeat-*","logs-okta*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"},{"ecs":true,"name":"user.email","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"97a8e584-fd3b-421f-9b9d-9c9d9e57e9d7","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/97aba1ef-6034-4bd3-8c1a-1e0996b27afa.json b/fleet-packages/detection-rules-composite/kibana/security_rule/97aba1ef-6034-4bd3-8c1a-1e0996b27afa.json new file mode 100644 index 0000000000000..f806be0deaab4 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/97aba1ef-6034-4bd3-8c1a-1e0996b27afa.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"97aba1ef-6034-4bd3-8c1a-1e0996b27afa","versions":[{"name":"Suspicious Zoom Child Process v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A suspicious Zoom child process was detected, which may indicate an attempt to run unnoticed. Verify process details such as command line, network connections, file writes and associated file signature details as well.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"},{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"Zoom.exe\" and process.name : (\"cmd.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious Zoom Child Process v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A suspicious Zoom child process was detected, which may indicate an attempt to run unnoticed. Verify process details such as command line, network connections, file writes and associated file signature details as well.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"},{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"Zoom.exe\" and process.name : (\"cmd.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious Zoom Child Process v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A suspicious Zoom child process was detected, which may indicate an attempt to run unnoticed. Verify process details such as command line, network connections, file writes and associated file signature details as well.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"},{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"Zoom.exe\" and process.name : (\"cmd.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"97aba1ef-6034-4bd3-8c1a-1e0996b27afa","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/97fc44d3-8dae-4019-ae83-298c3015600f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/97fc44d3-8dae-4019-ae83-298c3015600f.json new file mode 100644 index 0000000000000..5829bcc1d7d85 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/97fc44d3-8dae-4019-ae83-298c3015600f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"97fc44d3-8dae-4019-ae83-298c3015600f","versions":[{"name":"Startup or Run Key Registry Modification v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies run key or startup key registry modifications. In order to survive reboots and other system interrupts, attackers will modify run keys within the registry or leverage startup folder items as a form of persistence.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Startup or Run Key Registry Modification\n\nAdversaries may achieve persistence by referencing a program with a registry run key. Adding an entry to the run keys\nin the registry will cause the program referenced to be executed when a user logs in. These programs will executed\nunder the context of the user and will have the account's permissions. This rule looks for this behavior by monitoring\na range of registry run keys.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- There is a high possibility of benign legitimate programs being added to registry run keys. This activity could be\nbased on new software installations, patches, or any kind of network administrator related activity. Before undertaking\nfurther investigation, verify that this activity is not benign.\n\n### Related rules\n\n- Suspicious Startup Shell Folder Modification - c8b150f0-0164-475b-a75e-74b47800a9ff\n- Persistent Scripts in the Startup Directory - f7c4dc5a-a58d-491d-9f14-9b66507121c0\n- Startup Folder Persistence via Unsigned Process - 2fba96c0-ade5-4bce-b92f-a5df2509da3f\n- Startup Persistence by a Suspicious Process - 440e2db4-bc7f-4c96-a068-65b78da59bde\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timeline_id":"3e47ef71-ebfc-4520-975c-cb27fc090799","timeline_title":"Comprehensive Registry Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"registry where registry.data.strings != null and\n registry.path : (\n /* Machine Hive */\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnce\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnceEx\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\\\\*\",\n /* Users Hive */\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnce\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnceEx\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\\\\*\"\n ) and\n /* add common legitimate changes without being too restrictive as this is one of the most abused AESPs */\n not registry.data.strings : \"ctfmon.exe /n\" and\n not (registry.value : \"Application Restart #*\" and process.name : \"csrss.exe\") and\n user.id not in (\"S-1-5-18\", \"S-1-5-19\", \"S-1-5-20\") and\n not registry.data.strings : (\"?:\\\\Program Files\\\\*.exe\", \"?:\\\\Program Files (x86)\\\\*.exe\") and\n not process.executable : (\"?:\\\\Windows\\\\System32\\\\msiexec.exe\", \"?:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\") and\n not (process.name : \"OneDriveSetup.exe\" and\n registry.value : (\"Delete Cached Standalone Update Binary\", \"Delete Cached Update Binary\", \"amd64\", \"Uninstall *\") and\n registry.data.strings : \"?:\\\\Windows\\\\system32\\\\cmd.exe /q /c * \\\"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Microsoft\\\\OneDrive\\\\*\\\"\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"registry.value","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"Startup or Run Key Registry Modification v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies run key or startup key registry modifications. In order to survive reboots and other system interrupts, attackers will modify run keys within the registry or leverage startup folder items as a form of persistence.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Startup or Run Key Registry Modification\n\nAdversaries may achieve persistence by referencing a program with a registry run key. Adding an entry to the run keys\nin the registry will cause the program referenced to be executed when a user logs in. These programs will executed\nunder the context of the user and will have the account's permissions. This rule looks for this behavior by monitoring\na range of registry run keys.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- There is a high possibility of benign legitimate programs being added to registry run keys. This activity could be\nbased on new software installations, patches, or any kind of network administrator related activity. Before undertaking\nfurther investigation, verify that this activity is not benign.\n\n### Related rules\n\n- Suspicious Startup Shell Folder Modification - c8b150f0-0164-475b-a75e-74b47800a9ff\n- Persistent Scripts in the Startup Directory - f7c4dc5a-a58d-491d-9f14-9b66507121c0\n- Startup Folder Persistence via Unsigned Process - 2fba96c0-ade5-4bce-b92f-a5df2509da3f\n- Startup Persistence by a Suspicious Process - 440e2db4-bc7f-4c96-a068-65b78da59bde\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timeline_id":"3e47ef71-ebfc-4520-975c-cb27fc090799","timeline_title":"Comprehensive Registry Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"registry where registry.data.strings != null and\n registry.path : (\n /* Machine Hive */\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnce\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnceEx\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\\\\*\",\n /* Users Hive */\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnce\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnceEx\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\\\\*\"\n ) and\n /* add common legitimate changes without being too restrictive as this is one of the most abused AESPs */\n not registry.data.strings : \"ctfmon.exe /n\" and\n not (registry.value : \"Application Restart #*\" and process.name : \"csrss.exe\") and\n user.id not in (\"S-1-5-18\", \"S-1-5-19\", \"S-1-5-20\") and\n not registry.data.strings : (\"?:\\\\Program Files\\\\*.exe\", \"?:\\\\Program Files (x86)\\\\*.exe\") and\n not process.executable : (\"?:\\\\Windows\\\\System32\\\\msiexec.exe\", \"?:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\") and\n not (process.name : \"OneDriveSetup.exe\" and\n registry.value : (\"Delete Cached Standalone Update Binary\", \"Delete Cached Update Binary\", \"amd64\", \"Uninstall *\") and\n registry.data.strings : \"?:\\\\Windows\\\\system32\\\\cmd.exe /q /c * \\\"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Microsoft\\\\OneDrive\\\\*\\\"\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"registry.value","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"Startup or Run Key Registry Modification v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies run key or startup key registry modifications. In order to survive reboots and other system interrupts, attackers will modify run keys within the registry or leverage startup folder items as a form of persistence.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Startup or Run Key Registry Modification\n\nAdversaries may achieve persistence by referencing a program with a registry run key. Adding an entry to the run keys\nin the registry will cause the program referenced to be executed when a user logs in. These programs will executed\nunder the context of the user and will have the account's permissions. This rule looks for this behavior by monitoring\na range of registry run keys.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- There is a high possibility of benign legitimate programs being added to registry run keys. This activity could be\nbased on new software installations, patches, or any kind of network administrator related activity. Before undertaking\nfurther investigation, verify that this activity is not benign.\n\n### Related rules\n\n- Suspicious Startup Shell Folder Modification - c8b150f0-0164-475b-a75e-74b47800a9ff\n- Persistent Scripts in the Startup Directory - f7c4dc5a-a58d-491d-9f14-9b66507121c0\n- Startup Folder Persistence via Unsigned Process - 2fba96c0-ade5-4bce-b92f-a5df2509da3f\n- Startup Persistence by a Suspicious Process - 440e2db4-bc7f-4c96-a068-65b78da59bde\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timeline_id":"3e47ef71-ebfc-4520-975c-cb27fc090799","timeline_title":"Comprehensive Registry Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"registry where registry.data.strings != null and\n registry.path : (\n /* Machine Hive */\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnce\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnceEx\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\\\\*\",\n /* Users Hive */\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnce\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnceEx\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\\\\*\"\n ) and\n /* add common legitimate changes without being too restrictive as this is one of the most abused AESPs */\n not registry.data.strings : \"ctfmon.exe /n\" and\n not (registry.value : \"Application Restart #*\" and process.name : \"csrss.exe\") and\n user.id not in (\"S-1-5-18\", \"S-1-5-19\", \"S-1-5-20\") and\n not registry.data.strings : (\"?:\\\\Program Files\\\\*.exe\", \"?:\\\\Program Files (x86)\\\\*.exe\") and\n not process.executable : (\"?:\\\\Windows\\\\System32\\\\msiexec.exe\", \"?:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\") and\n not (process.name : \"OneDriveSetup.exe\" and\n registry.value : (\"Delete Cached Standalone Update Binary\", \"Delete Cached Update Binary\", \"amd64\", \"Uninstall *\") and\n registry.data.strings : \"?:\\\\Windows\\\\system32\\\\cmd.exe /q /c * \\\"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Microsoft\\\\OneDrive\\\\*\\\"\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"registry.value","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]}]},"id":"97fc44d3-8dae-4019-ae83-298c3015600f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/9890ee61-d061-403d-9bf6-64934c51f638.json b/fleet-packages/detection-rules-composite/kibana/security_rule/9890ee61-d061-403d-9bf6-64934c51f638.json new file mode 100644 index 0000000000000..f4690b18572ec --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/9890ee61-d061-403d-9bf6-64934c51f638.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"9890ee61-d061-403d-9bf6-64934c51f638","versions":[{"name":"GCP IAM Service Account Key Deletion v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an Identity and Access Management (IAM) service account key in Google Cloud Platform (GCP). Each service account is associated with two sets of public/private RSA key pairs that are used to authenticate. If a key is deleted, the application will no longer be able to access Google Cloud resources using that key. A security best practice is to rotate your service account keys regularly.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Service account key deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Key deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/iam/docs/service-accounts","https://cloud.google.com/iam/docs/creating-managing-service-account-keys"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.DeleteServiceAccountKey and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP IAM Service Account Key Deletion v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an Identity and Access Management (IAM) service account key in Google Cloud Platform (GCP). Each service account is associated with two sets of public/private RSA key pairs that are used to authenticate. If a key is deleted, the application will no longer be able to access Google Cloud resources using that key. A security best practice is to rotate your service account keys regularly.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Service account key deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Key deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/iam/docs/service-accounts","https://cloud.google.com/iam/docs/creating-managing-service-account-keys"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.DeleteServiceAccountKey and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP IAM Service Account Key Deletion v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an Identity and Access Management (IAM) service account key in Google Cloud Platform (GCP). Each service account is associated with two sets of public/private RSA key pairs that are used to authenticate. If a key is deleted, the application will no longer be able to access Google Cloud resources using that key. A security best practice is to rotate your service account keys regularly.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Service account key deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Key deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/iam/docs/service-accounts","https://cloud.google.com/iam/docs/creating-managing-service-account-keys"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.DeleteServiceAccountKey and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"9890ee61-d061-403d-9bf6-64934c51f638","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/98995807-5b09-4e37-8a54-5cae5dc932d7.json b/fleet-packages/detection-rules-composite/kibana/security_rule/98995807-5b09-4e37-8a54-5cae5dc932d7.json new file mode 100644 index 0000000000000..c3ff2a1a0b272 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/98995807-5b09-4e37-8a54-5cae5dc932d7.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"98995807-5b09-4e37-8a54-5cae5dc932d7","versions":[{"name":"Microsoft 365 Exchange Management Group Role Assignment v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new role is assigned to a management group in Microsoft 365. An adversary may attempt to add a role in order to maintain persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A new role may be assigned to a management group by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/new-managementroleassignment?view=exchange-ps","https://docs.microsoft.com/en-us/microsoft-365/admin/add-users/about-admin-roles?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"New-ManagementRoleAssignment\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Exchange Management Group Role Assignment v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new role is assigned to a management group in Microsoft 365. An adversary may attempt to add a role in order to maintain persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A new role may be assigned to a management group by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/new-managementroleassignment?view=exchange-ps","https://docs.microsoft.com/en-us/microsoft-365/admin/add-users/about-admin-roles?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"New-ManagementRoleAssignment\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Exchange Management Group Role Assignment v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new role is assigned to a management group in Microsoft 365. An adversary may attempt to add a role in order to maintain persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A new role may be assigned to a management group by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/new-managementroleassignment?view=exchange-ps","https://docs.microsoft.com/en-us/microsoft-365/admin/add-users/about-admin-roles?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"New-ManagementRoleAssignment\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"98995807-5b09-4e37-8a54-5cae5dc932d7","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/98fd7407-0bd5-5817-cda0-3fcc33113a56.json b/fleet-packages/detection-rules-composite/kibana/security_rule/98fd7407-0bd5-5817-cda0-3fcc33113a56.json new file mode 100644 index 0000000000000..51bfd9b1f1671 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/98fd7407-0bd5-5817-cda0-3fcc33113a56.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"98fd7407-0bd5-5817-cda0-3fcc33113a56","versions":[{"name":"AWS EC2 Snapshot Activity v103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An attempt was made to modify AWS EC2 snapshot attributes. Snapshots are sometimes shared by threat actors in order to exfiltrate bulk data from an EC2 fleet. If the permissions were modified, verify the snapshot was not shared with an unauthorized or unexpected AWS account.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS EC2 Snapshot Activity\n\nAmazon EC2 snapshots are a mechanism to create point-in-time references to data that reside in storage volumes. System\nadministrators commonly use this for backup operations and data recovery.\n\nThis rule looks for the modification of snapshot attributes using the API `ModifySnapshotAttribute` action. This can be\nused to share snapshots with unauthorized third parties, giving others access to all the data on the snapshot.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Search for dry run attempts against the resource ID of the snapshot from other user accounts within CloudTrail.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences involving other users.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Check if the shared permissions of the snapshot were modified to `Public` or include unknown account IDs.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["IAM users may occasionally share EC2 snapshots with another AWS account belonging to the same organization. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/modify-snapshot-attribute.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifySnapshotAttribute.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility","Exfiltration","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:ModifySnapshotAttribute\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS EC2 Snapshot Activity v103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An attempt was made to modify AWS EC2 snapshot attributes. Snapshots are sometimes shared by threat actors in order to exfiltrate bulk data from an EC2 fleet. If the permissions were modified, verify the snapshot was not shared with an unauthorized or unexpected AWS account.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS EC2 Snapshot Activity\n\nAmazon EC2 snapshots are a mechanism to create point-in-time references to data that reside in storage volumes. System\nadministrators commonly use this for backup operations and data recovery.\n\nThis rule looks for the modification of snapshot attributes using the API `ModifySnapshotAttribute` action. This can be\nused to share snapshots with unauthorized third parties, giving others access to all the data on the snapshot.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Search for dry run attempts against the resource ID of the snapshot from other user accounts within CloudTrail.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences involving other users.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Check if the shared permissions of the snapshot were modified to `Public` or include unknown account IDs.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["IAM users may occasionally share EC2 snapshots with another AWS account belonging to the same organization. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/modify-snapshot-attribute.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifySnapshotAttribute.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility","Exfiltration","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:ModifySnapshotAttribute\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS EC2 Snapshot Activity v103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An attempt was made to modify AWS EC2 snapshot attributes. Snapshots are sometimes shared by threat actors in order to exfiltrate bulk data from an EC2 fleet. If the permissions were modified, verify the snapshot was not shared with an unauthorized or unexpected AWS account.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS EC2 Snapshot Activity\n\nAmazon EC2 snapshots are a mechanism to create point-in-time references to data that reside in storage volumes. System\nadministrators commonly use this for backup operations and data recovery.\n\nThis rule looks for the modification of snapshot attributes using the API `ModifySnapshotAttribute` action. This can be\nused to share snapshots with unauthorized third parties, giving others access to all the data on the snapshot.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Search for dry run attempts against the resource ID of the snapshot from other user accounts within CloudTrail.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences involving other users.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Check if the shared permissions of the snapshot were modified to `Public` or include unknown account IDs.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["IAM users may occasionally share EC2 snapshots with another AWS account belonging to the same organization. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/modify-snapshot-attribute.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifySnapshotAttribute.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility","Exfiltration","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:ModifySnapshotAttribute\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"98fd7407-0bd5-5817-cda0-3fcc33113a56","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/990838aa-a953-4f3e-b3cb-6ddf7584de9e.json b/fleet-packages/detection-rules-composite/kibana/security_rule/990838aa-a953-4f3e-b3cb-6ddf7584de9e.json new file mode 100644 index 0000000000000..df8054028475f --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/990838aa-a953-4f3e-b3cb-6ddf7584de9e.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"990838aa-a953-4f3e-b3cb-6ddf7584de9e","versions":[{"name":"Process Injection - Prevented - Elastic Endgame v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented Process Injection. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:kernel_shellcode_event or endgame.event_subtype_full:kernel_shellcode_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Process Injection - Prevented - Elastic Endgame v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented Process Injection. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:kernel_shellcode_event or endgame.event_subtype_full:kernel_shellcode_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Process Injection - Prevented - Elastic Endgame v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented Process Injection. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:kernel_shellcode_event or endgame.event_subtype_full:kernel_shellcode_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]}]},"id":"990838aa-a953-4f3e-b3cb-6ddf7584de9e","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/99239e7d-b0d4-46e3-8609-acafcf99f68c.json b/fleet-packages/detection-rules-composite/kibana/security_rule/99239e7d-b0d4-46e3-8609-acafcf99f68c.json new file mode 100644 index 0000000000000..38b2659751511 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/99239e7d-b0d4-46e3-8609-acafcf99f68c.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"99239e7d-b0d4-46e3-8609-acafcf99f68c","versions":[{"name":"MacOS Installer Package Spawns Network Event v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the execution of a MacOS installer package with an abnormal child process (e.g bash) followed immediately by a network connection via a suspicious process (e.g curl). Threat actors will build and distribute malicious MacOS installer packages, which have a .pkg extension, many times imitating valid software in order to persuade and infect their victims often using the package files (e.g pre/post install scripts etc.) to download additional tools or malicious software. If this rule fires it should indicate the installation of a malicious or suspicious package.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Custom organization-specific macOS packages that use .pkg files to run cURL could trigger this rule. If known behavior is causing false positives, it can be excluded from the rule."],"from":"now-9m","references":["https://redcanary.com/blog/clipping-silver-sparrows-wings","https://posts.specterops.io/introducing-mystikal-4fbd2f7ae520","https://github.com/D00MFist/Mystikal"],"tags":["Elastic","Host","macOS","Threat Detection","Execution","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.007","name":"JavaScript","reference":"https://attack.mitre.org/techniques/T1059/007/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.001","name":"Web Protocols","reference":"https://attack.mitre.org/techniques/T1071/001/"}]}]}],"language":"eql","query":"sequence by host.id, user.id with maxspan=30s\n[process where event.type == \"start\" and event.action == \"exec\" and process.parent.name : (\"installer\", \"package_script_service\") and process.name : (\"bash\", \"sh\", \"zsh\", \"python\", \"osascript\", \"tclsh*\")]\n[network where event.type == \"start\" and process.name : (\"curl\", \"osascript\", \"wget\", \"python\")]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"MacOS Installer Package Spawns Network Event v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the execution of a MacOS installer package with an abnormal child process (e.g bash) followed immediately by a network connection via a suspicious process (e.g curl). Threat actors will build and distribute malicious MacOS installer packages, which have a .pkg extension, many times imitating valid software in order to persuade and infect their victims often using the package files (e.g pre/post install scripts etc.) to download additional tools or malicious software. If this rule fires it should indicate the installation of a malicious or suspicious package.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Custom organization-specific macOS packages that use .pkg files to run cURL could trigger this rule. If known behavior is causing false positives, it can be excluded from the rule."],"from":"now-9m","references":["https://redcanary.com/blog/clipping-silver-sparrows-wings","https://posts.specterops.io/introducing-mystikal-4fbd2f7ae520","https://github.com/D00MFist/Mystikal"],"tags":["Elastic","Host","macOS","Threat Detection","Execution","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.007","name":"JavaScript","reference":"https://attack.mitre.org/techniques/T1059/007/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.001","name":"Web Protocols","reference":"https://attack.mitre.org/techniques/T1071/001/"}]}]}],"language":"eql","query":"sequence by host.id, user.id with maxspan=30s\n[process where event.type == \"start\" and event.action == \"exec\" and process.parent.name : (\"installer\", \"package_script_service\") and process.name : (\"bash\", \"sh\", \"zsh\", \"python\", \"osascript\", \"tclsh*\")]\n[network where event.type == \"start\" and process.name : (\"curl\", \"osascript\", \"wget\", \"python\")]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"MacOS Installer Package Spawns Network Event v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the execution of a MacOS installer package with an abnormal child process (e.g bash) followed immediately by a network connection via a suspicious process (e.g curl). Threat actors will build and distribute malicious MacOS installer packages, which have a .pkg extension, many times imitating valid software in order to persuade and infect their victims often using the package files (e.g pre/post install scripts etc.) to download additional tools or malicious software. If this rule fires it should indicate the installation of a malicious or suspicious package.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Custom organization-specific macOS packages that use .pkg files to run cURL could trigger this rule. If known behavior is causing false positives, it can be excluded from the rule."],"from":"now-9m","references":["https://redcanary.com/blog/clipping-silver-sparrows-wings","https://posts.specterops.io/introducing-mystikal-4fbd2f7ae520","https://github.com/D00MFist/Mystikal"],"tags":["Elastic","Host","macOS","Threat Detection","Execution","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.007","name":"JavaScript","reference":"https://attack.mitre.org/techniques/T1059/007/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.001","name":"Web Protocols","reference":"https://attack.mitre.org/techniques/T1071/001/"}]}]}],"language":"eql","query":"sequence by host.id, user.id with maxspan=30s\n[process where event.type == \"start\" and event.action == \"exec\" and process.parent.name : (\"installer\", \"package_script_service\") and process.name : (\"bash\", \"sh\", \"zsh\", \"python\", \"osascript\", \"tclsh*\")]\n[network where event.type == \"start\" and process.name : (\"curl\", \"osascript\", \"wget\", \"python\")]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]}]},"id":"99239e7d-b0d4-46e3-8609-acafcf99f68c","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/9960432d-9b26-409f-972b-839a959e79e2.json b/fleet-packages/detection-rules-composite/kibana/security_rule/9960432d-9b26-409f-972b-839a959e79e2.json new file mode 100644 index 0000000000000..45d315e662fe5 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/9960432d-9b26-409f-972b-839a959e79e2.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"9960432d-9b26-409f-972b-839a959e79e2","versions":[{"name":"Potential Credential Access via LSASS Memory Dump v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious access to LSASS handle from a call trace pointing to DBGHelp.dll or DBGCore.dll, which both export the MiniDumpWriteDump method that can be used to dump LSASS memory content in preparation for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.ired.team/offensive-security/credential-access-and-credential-dumping/dump-credentials-from-lsass-process-without-mimikatz","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"process where event.code == \"10\" and\n winlog.event_data.TargetImage : \"?:\\\\WINDOWS\\\\system32\\\\lsass.exe\" and\n\n /* DLLs exporting MiniDumpWriteDump API to create an lsass mdmp*/\n winlog.event_data.CallTrace : (\"*dbghelp*\", \"*dbgcore*\") and\n\n /* case of lsass crashing */\n not process.executable : (\"?:\\\\Windows\\\\System32\\\\WerFault.exe\", \"?:\\\\Windows\\\\System32\\\\WerFaultSecure.exe\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallTrace","type":"unknown"},{"ecs":false,"name":"winlog.event_data.TargetImage","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Credential Access via LSASS Memory Dump v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious access to LSASS handle from a call trace pointing to DBGHelp.dll or DBGCore.dll, which both export the MiniDumpWriteDump method that can be used to dump LSASS memory content in preparation for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.ired.team/offensive-security/credential-access-and-credential-dumping/dump-credentials-from-lsass-process-without-mimikatz","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"process where event.code == \"10\" and\n winlog.event_data.TargetImage : \"?:\\\\WINDOWS\\\\system32\\\\lsass.exe\" and\n\n /* DLLs exporting MiniDumpWriteDump API to create an lsass mdmp*/\n winlog.event_data.CallTrace : (\"*dbghelp*\", \"*dbgcore*\") and\n\n /* case of lsass crashing */\n not process.executable : (\"?:\\\\Windows\\\\System32\\\\WerFault.exe\", \"?:\\\\Windows\\\\System32\\\\WerFaultSecure.exe\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallTrace","type":"unknown"},{"ecs":false,"name":"winlog.event_data.TargetImage","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Credential Access via LSASS Memory Dump v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious access to LSASS handle from a call trace pointing to DBGHelp.dll or DBGCore.dll, which both export the MiniDumpWriteDump method that can be used to dump LSASS memory content in preparation for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.ired.team/offensive-security/credential-access-and-credential-dumping/dump-credentials-from-lsass-process-without-mimikatz","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"process where event.code == \"10\" and\n winlog.event_data.TargetImage : \"?:\\\\WINDOWS\\\\system32\\\\lsass.exe\" and\n\n /* DLLs exporting MiniDumpWriteDump API to create an lsass mdmp*/\n winlog.event_data.CallTrace : (\"*dbghelp*\", \"*dbgcore*\") and\n\n /* case of lsass crashing */\n not process.executable : (\"?:\\\\Windows\\\\System32\\\\WerFault.exe\", \"?:\\\\Windows\\\\System32\\\\WerFaultSecure.exe\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallTrace","type":"unknown"},{"ecs":false,"name":"winlog.event_data.TargetImage","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"9960432d-9b26-409f-972b-839a959e79e2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/99dcf974-6587-4f65-9252-d866a3fdfd9c.json b/fleet-packages/detection-rules-composite/kibana/security_rule/99dcf974-6587-4f65-9252-d866a3fdfd9c.json new file mode 100644 index 0000000000000..222676f9e9d7a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/99dcf974-6587-4f65-9252-d866a3fdfd9c.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"99dcf974-6587-4f65-9252-d866a3fdfd9c","versions":[{"name":"Spike in Failed Logon Events v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job found an unusually large spike in authentication failure events. This can be due to password spraying, user enumeration or brute force activity and may be a precursor to account takeover or credentialed access.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A misconfigured service account can trigger this alert. A password change on an account used by an email client can trigger this alert. Security test cycles that include brute force or password spraying activities may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_high_count_logon_fails","type":"machine_learning"},{"name":"Spike in Failed Logon Events v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job found an unusually large spike in authentication failure events. This can be due to password spraying, user enumeration or brute force activity and may be a precursor to account takeover or credentialed access.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A misconfigured service account can trigger this alert. A password change on an account used by an email client can trigger this alert. Security test cycles that include brute force or password spraying activities may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_high_count_logon_fails","type":"machine_learning"},{"name":"Spike in Failed Logon Events v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job found an unusually large spike in authentication failure events. This can be due to password spraying, user enumeration or brute force activity and may be a precursor to account takeover or credentialed access.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A misconfigured service account can trigger this alert. A password change on an account used by an email client can trigger this alert. Security test cycles that include brute force or password spraying activities may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_high_count_logon_fails","type":"machine_learning"}]},"id":"99dcf974-6587-4f65-9252-d866a3fdfd9c","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/9a1a2dae-0b5f-4c3d-8305-a268d404c306.json b/fleet-packages/detection-rules-composite/kibana/security_rule/9a1a2dae-0b5f-4c3d-8305-a268d404c306.json new file mode 100644 index 0000000000000..de8ff324725a3 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/9a1a2dae-0b5f-4c3d-8305-a268d404c306.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"9a1a2dae-0b5f-4c3d-8305-a268d404c306","versions":[{"name":"Endpoint Security v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Generates a detection alert each time an Elastic Endpoint Security alert is received. Enabling this rule allows you to immediately begin investigating your Endpoint alerts.","risk_score":47,"severity":"medium","license":"Elastic License v2","rule_name_override":"message","timestamp_override":"event.ingested","author":["Elastic"],"enabled":true,"exceptions_list":[{"id":"endpoint_list","list_id":"endpoint_list","namespace_type":"agnostic","type":"endpoint"}],"from":"now-10m","max_signals":10000,"risk_score_mapping":[{"field":"event.risk_score","operator":"equals","value":""}],"severity_mapping":[{"field":"event.severity","operator":"equals","severity":"low","value":"21"},{"field":"event.severity","operator":"equals","severity":"medium","value":"47"},{"field":"event.severity","operator":"equals","severity":"high","value":"73"},{"field":"event.severity","operator":"equals","severity":"critical","value":"99"}],"tags":["Elastic","Endpoint Security"],"type":"query","index":["logs-endpoint.alerts-*"],"language":"kuery","query":"event.kind:alert and event.module:(endpoint and not endgame)\n","required_fields":[{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Endpoint Security v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Generates a detection alert each time an Elastic Endpoint Security alert is received. Enabling this rule allows you to immediately begin investigating your Endpoint alerts.","risk_score":47,"severity":"medium","license":"Elastic License v2","rule_name_override":"message","timestamp_override":"event.ingested","author":["Elastic"],"enabled":true,"exceptions_list":[{"id":"endpoint_list","list_id":"endpoint_list","namespace_type":"agnostic","type":"endpoint"}],"from":"now-10m","max_signals":10000,"risk_score_mapping":[{"field":"event.risk_score","operator":"equals","value":""}],"severity_mapping":[{"field":"event.severity","operator":"equals","severity":"low","value":"21"},{"field":"event.severity","operator":"equals","severity":"medium","value":"47"},{"field":"event.severity","operator":"equals","severity":"high","value":"73"},{"field":"event.severity","operator":"equals","severity":"critical","value":"99"}],"tags":["Elastic","Endpoint Security"],"type":"query","index":["logs-endpoint.alerts-*"],"language":"kuery","query":"event.kind:alert and event.module:(endpoint and not endgame)\n","required_fields":[{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Endpoint Security v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Generates a detection alert each time an Elastic Endpoint Security alert is received. Enabling this rule allows you to immediately begin investigating your Endpoint alerts.","risk_score":47,"severity":"medium","license":"Elastic License v2","rule_name_override":"message","timestamp_override":"event.ingested","author":["Elastic"],"enabled":true,"exceptions_list":[{"id":"endpoint_list","list_id":"endpoint_list","namespace_type":"agnostic","type":"endpoint"}],"from":"now-10m","max_signals":10000,"risk_score_mapping":[{"field":"event.risk_score","operator":"equals","value":""}],"severity_mapping":[{"field":"event.severity","operator":"equals","severity":"low","value":"21"},{"field":"event.severity","operator":"equals","severity":"medium","value":"47"},{"field":"event.severity","operator":"equals","severity":"high","value":"73"},{"field":"event.severity","operator":"equals","severity":"critical","value":"99"}],"tags":["Elastic","Endpoint Security"],"type":"query","index":["logs-endpoint.alerts-*"],"language":"kuery","query":"event.kind:alert and event.module:(endpoint and not endgame)\n","required_fields":[{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]}]},"id":"9a1a2dae-0b5f-4c3d-8305-a268d404c306","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/9a3a3689-8ed1-4cdb-83fb-9506db54c61f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/9a3a3689-8ed1-4cdb-83fb-9506db54c61f.json new file mode 100644 index 0000000000000..2f30c12a770b6 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/9a3a3689-8ed1-4cdb-83fb-9506db54c61f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"9a3a3689-8ed1-4cdb-83fb-9506db54c61f","versions":[{"name":"Potential Shadow File Read via Command Line Utilities v2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies access to the /etc/shadow file via the commandline using standard system utilities. After elevating privileges to root, threat actors may attempt to read or dump this file in order to gain valid credentials. They may utilize these to move laterally undetected and access additional resources.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.cyberciti.biz/faq/unix-linux-password-cracking-john-the-ripper/"],"tags":["Elastic","Host","Linux","Threat Detection","Privilege Escalation","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.008","name":"/etc/passwd and /etc/shadow","reference":"https://attack.mitre.org/techniques/T1003/008/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and event.action == \"exec\" and user.name == \"root\" \n and (process.args : \"/etc/shadow\" or (process.working_directory: \"/etc\" and process.args: \"shadow\"))\n and not process.executable: \n (\"/usr/bin/tar\", \n \"/bin/tar\", \n \"/usr/bin/gzip\", \n \"/bin/gzip\", \n \"/usr/bin/zip\", \n \"/bin/zip\", \n \"/usr/bin/stat\", \n \"/bin/stat\", \n \"/usr/bin/cmp\", \n \"/bin/cmp\", \n \"/usr/bin/sudo\", \n \"/bin/sudo\", \n \"/usr/bin/find\", \n \"/bin/find\", \n \"/usr/bin/ls\", \n \"/bin/ls\", \n \"/usr/bin/uniq\", \n \"/bin/uniq\", \n \"/usr/bin/unzip\", \n \"/bin/unzip\") \n and not process.parent.executable: \"/bin/dracut\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"process.working_directory","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},{"name":"Potential Shadow File Read via Command Line Utilities v2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies access to the /etc/shadow file via the commandline using standard system utilities. After elevating privileges to root, threat actors may attempt to read or dump this file in order to gain valid credentials. They may utilize these to move laterally undetected and access additional resources.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.cyberciti.biz/faq/unix-linux-password-cracking-john-the-ripper/"],"tags":["Elastic","Host","Linux","Threat Detection","Privilege Escalation","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.008","name":"/etc/passwd and /etc/shadow","reference":"https://attack.mitre.org/techniques/T1003/008/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and event.action == \"exec\" and user.name == \"root\" \n and (process.args : \"/etc/shadow\" or (process.working_directory: \"/etc\" and process.args: \"shadow\"))\n and not process.executable: \n (\"/usr/bin/tar\", \n \"/bin/tar\", \n \"/usr/bin/gzip\", \n \"/bin/gzip\", \n \"/usr/bin/zip\", \n \"/bin/zip\", \n \"/usr/bin/stat\", \n \"/bin/stat\", \n \"/usr/bin/cmp\", \n \"/bin/cmp\", \n \"/usr/bin/sudo\", \n \"/bin/sudo\", \n \"/usr/bin/find\", \n \"/bin/find\", \n \"/usr/bin/ls\", \n \"/bin/ls\", \n \"/usr/bin/uniq\", \n \"/bin/uniq\", \n \"/usr/bin/unzip\", \n \"/bin/unzip\") \n and not process.parent.executable: \"/bin/dracut\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"process.working_directory","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},{"name":"Potential Shadow File Read via Command Line Utilities v2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies access to the /etc/shadow file via the commandline using standard system utilities. After elevating privileges to root, threat actors may attempt to read or dump this file in order to gain valid credentials. They may utilize these to move laterally undetected and access additional resources.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.cyberciti.biz/faq/unix-linux-password-cracking-john-the-ripper/"],"tags":["Elastic","Host","Linux","Threat Detection","Privilege Escalation","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.008","name":"/etc/passwd and /etc/shadow","reference":"https://attack.mitre.org/techniques/T1003/008/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and event.action == \"exec\" and user.name == \"root\" \n and (process.args : \"/etc/shadow\" or (process.working_directory: \"/etc\" and process.args: \"shadow\"))\n and not process.executable: \n (\"/usr/bin/tar\", \n \"/bin/tar\", \n \"/usr/bin/gzip\", \n \"/bin/gzip\", \n \"/usr/bin/zip\", \n \"/bin/zip\", \n \"/usr/bin/stat\", \n \"/bin/stat\", \n \"/usr/bin/cmp\", \n \"/bin/cmp\", \n \"/usr/bin/sudo\", \n \"/bin/sudo\", \n \"/usr/bin/find\", \n \"/bin/find\", \n \"/usr/bin/ls\", \n \"/bin/ls\", \n \"/usr/bin/uniq\", \n \"/bin/uniq\", \n \"/usr/bin/unzip\", \n \"/bin/unzip\") \n and not process.parent.executable: \"/bin/dracut\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"process.working_directory","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]}]},"id":"9a3a3689-8ed1-4cdb-83fb-9506db54c61f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/9a5b4e31-6cde-4295-9ff7-6be1b8567e1b.json b/fleet-packages/detection-rules-composite/kibana/security_rule/9a5b4e31-6cde-4295-9ff7-6be1b8567e1b.json new file mode 100644 index 0000000000000..de88a78b8d683 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/9a5b4e31-6cde-4295-9ff7-6be1b8567e1b.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"9a5b4e31-6cde-4295-9ff7-6be1b8567e1b","versions":[{"name":"Suspicious Explorer Child Process v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious Windows explorer child process. Explorer.exe can be abused to launch malicious scripts or executables from a trusted parent process.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"},{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (\n process.name : (\"cscript.exe\", \"wscript.exe\", \"powershell.exe\", \"rundll32.exe\", \"cmd.exe\", \"mshta.exe\", \"regsvr32.exe\") or\n process.pe.original_file_name in (\"cscript.exe\", \"wscript.exe\", \"PowerShell.EXE\", \"RUNDLL32.EXE\", \"Cmd.Exe\", \"MSHTA.EXE\", \"REGSVR32.EXE\")\n ) and\n /* Explorer started via DCOM */\n process.parent.name : \"explorer.exe\" and process.parent.args : \"-Embedding\" and\n not process.parent.args:\n (\n /* Noisy CLSID_SeparateSingleProcessExplorerHost Explorer COM Class IDs */\n \"/factory,{5BD95610-9434-43C2-886C-57852CC8A120}\",\n \"/factory,{ceff45ee-c862-41de-aee2-a022c81eda92}\"\n )\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious Explorer Child Process v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious Windows explorer child process. Explorer.exe can be abused to launch malicious scripts or executables from a trusted parent process.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"},{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (\n process.name : (\"cscript.exe\", \"wscript.exe\", \"powershell.exe\", \"rundll32.exe\", \"cmd.exe\", \"mshta.exe\", \"regsvr32.exe\") or\n process.pe.original_file_name in (\"cscript.exe\", \"wscript.exe\", \"PowerShell.EXE\", \"RUNDLL32.EXE\", \"Cmd.Exe\", \"MSHTA.EXE\", \"REGSVR32.EXE\")\n ) and\n /* Explorer started via DCOM */\n process.parent.name : \"explorer.exe\" and process.parent.args : \"-Embedding\" and\n not process.parent.args:\n (\n /* Noisy CLSID_SeparateSingleProcessExplorerHost Explorer COM Class IDs */\n \"/factory,{5BD95610-9434-43C2-886C-57852CC8A120}\",\n \"/factory,{ceff45ee-c862-41de-aee2-a022c81eda92}\"\n )\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious Explorer Child Process v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious Windows explorer child process. Explorer.exe can be abused to launch malicious scripts or executables from a trusted parent process.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"},{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (\n process.name : (\"cscript.exe\", \"wscript.exe\", \"powershell.exe\", \"rundll32.exe\", \"cmd.exe\", \"mshta.exe\", \"regsvr32.exe\") or\n process.pe.original_file_name in (\"cscript.exe\", \"wscript.exe\", \"PowerShell.EXE\", \"RUNDLL32.EXE\", \"Cmd.Exe\", \"MSHTA.EXE\", \"REGSVR32.EXE\")\n ) and\n /* Explorer started via DCOM */\n process.parent.name : \"explorer.exe\" and process.parent.args : \"-Embedding\" and\n not process.parent.args:\n (\n /* Noisy CLSID_SeparateSingleProcessExplorerHost Explorer COM Class IDs */\n \"/factory,{5BD95610-9434-43C2-886C-57852CC8A120}\",\n \"/factory,{ceff45ee-c862-41de-aee2-a022c81eda92}\"\n )\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"9a5b4e31-6cde-4295-9ff7-6be1b8567e1b","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/9aa0e1f6-52ce-42e1-abb3-09657cee2698.json b/fleet-packages/detection-rules-composite/kibana/security_rule/9aa0e1f6-52ce-42e1-abb3-09657cee2698.json new file mode 100644 index 0000000000000..aca4a12661f46 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/9aa0e1f6-52ce-42e1-abb3-09657cee2698.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"9aa0e1f6-52ce-42e1-abb3-09657cee2698","versions":[{"name":"Scheduled Tasks AT Command Enabled v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to enable the Windows scheduled tasks AT command via the registry. Attackers may use this method to move laterally or persist locally. The AT command has been deprecated since Windows 8 and Windows Server 2012, but still exists for backwards compatibility.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-scheduledjob"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"registry where\n registry.path : (\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Schedule\\\\Configuration\\\\EnableAt\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Schedule\\\\Configuration\\\\EnableAt\"\n ) and registry.data.strings : (\"1\", \"0x00000001\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Scheduled Tasks AT Command Enabled v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to enable the Windows scheduled tasks AT command via the registry. Attackers may use this method to move laterally or persist locally. The AT command has been deprecated since Windows 8 and Windows Server 2012, but still exists for backwards compatibility.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-scheduledjob"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"registry where\n registry.path : (\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Schedule\\\\Configuration\\\\EnableAt\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Schedule\\\\Configuration\\\\EnableAt\"\n ) and registry.data.strings : (\"1\", \"0x00000001\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Scheduled Tasks AT Command Enabled v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to enable the Windows scheduled tasks AT command via the registry. Attackers may use this method to move laterally or persist locally. The AT command has been deprecated since Windows 8 and Windows Server 2012, but still exists for backwards compatibility.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-scheduledjob"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"registry where\n registry.path : (\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Schedule\\\\Configuration\\\\EnableAt\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Schedule\\\\Configuration\\\\EnableAt\"\n ) and registry.data.strings : (\"1\", \"0x00000001\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"9aa0e1f6-52ce-42e1-abb3-09657cee2698","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/9b6813a1-daf1-457e-b0e6-0bb4e55b8a4c.json b/fleet-packages/detection-rules-composite/kibana/security_rule/9b6813a1-daf1-457e-b0e6-0bb4e55b8a4c.json new file mode 100644 index 0000000000000..0eb0eae4af0e9 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/9b6813a1-daf1-457e-b0e6-0bb4e55b8a4c.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"9b6813a1-daf1-457e-b0e6-0bb4e55b8a4c","versions":[{"name":"Persistence via WMI Event Subscription v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary can use Windows Management Instrumentation (WMI) to install event filters, providers, consumers, and bindings that execute code when a defined event occurs. Adversaries may use the capabilities of WMI to subscribe to an event and execute arbitrary code when that event occurs, providing persistence on a system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-1"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.003","name":"Windows Management Instrumentation Event Subscription","reference":"https://attack.mitre.org/techniques/T1546/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"wmic.exe\" or process.pe.original_file_name == \"wmic.exe\") and\n process.args : \"create\" and\n process.args : (\"ActiveScriptEventConsumer\", \"CommandLineEventConsumer\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Persistence via WMI Event Subscription v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary can use Windows Management Instrumentation (WMI) to install event filters, providers, consumers, and bindings that execute code when a defined event occurs. Adversaries may use the capabilities of WMI to subscribe to an event and execute arbitrary code when that event occurs, providing persistence on a system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-1"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.003","name":"Windows Management Instrumentation Event Subscription","reference":"https://attack.mitre.org/techniques/T1546/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"wmic.exe\" or process.pe.original_file_name == \"wmic.exe\") and\n process.args : \"create\" and\n process.args : (\"ActiveScriptEventConsumer\", \"CommandLineEventConsumer\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Persistence via WMI Event Subscription v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary can use Windows Management Instrumentation (WMI) to install event filters, providers, consumers, and bindings that execute code when a defined event occurs. Adversaries may use the capabilities of WMI to subscribe to an event and execute arbitrary code when that event occurs, providing persistence on a system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-1"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.003","name":"Windows Management Instrumentation Event Subscription","reference":"https://attack.mitre.org/techniques/T1546/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"wmic.exe\" or process.pe.original_file_name == \"wmic.exe\") and\n process.args : \"create\" and\n process.args : (\"ActiveScriptEventConsumer\", \"CommandLineEventConsumer\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"9b6813a1-daf1-457e-b0e6-0bb4e55b8a4c","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/9c260313-c811-4ec8-ab89-8f6530e0246c.json b/fleet-packages/detection-rules-composite/kibana/security_rule/9c260313-c811-4ec8-ab89-8f6530e0246c.json new file mode 100644 index 0000000000000..930496e5022e0 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/9c260313-c811-4ec8-ab89-8f6530e0246c.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"9c260313-c811-4ec8-ab89-8f6530e0246c","versions":[{"name":"Hosts File Modified v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The hosts file on endpoints is used to control manual IP address to hostname resolutions. The hosts file is the first point of lookup for DNS hostname resolution so if adversaries can modify the endpoint hosts file, they can route traffic to malicious infrastructure. This rule detects modifications to the hosts file on Microsoft Windows, Linux (Ubuntu or RHEL) and macOS systems.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Hosts File Modified\n\nOperating systems use the hosts file to map a connection between an IP address and domain names before going to domain\nname servers. Attackers can abuse this mechanism to route traffic to malicious infrastructure or disrupt security that\ndepends on server communications. For example, Russian threat actors modified this file on a domain controller to\nredirect Duo MFA calls to localhost instead of the Duo server, which prevented the MFA service from contacting its\nserver to validate MFA login. This effectively disabled MFA for active domain accounts because the default policy of Duo\nfor Windows is to \"Fail open\" if the MFA server is unreachable. This can happen in any MFA implementation and is not\nexclusive to Duo. Find more details in this [CISA Alert](https://www.cisa.gov/uscert/ncas/alerts/aa22-074a).\n\nThis rule identifies modifications in the hosts file across multiple operating systems using process creation events for\nLinux and file events in Windows and macOS.\n\n#### Possible investigation steps\n\n- Identify the specifics of the involved assets, such as role, criticality, and associated users.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the changes to the hosts file by comparing it against file backups, volume shadow copies, and other restoration\nmechanisms.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity\nand the configuration was justified.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Consider isolating the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Review the privileges of the administrator account that performed the action.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timeline_id":"4d4c0b59-ea83-483f-b8c1-8c360ee53c5c","timeline_title":"Comprehensive File Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/guide/en/beats/auditbeat/current/auditbeat-reference-yml.html"],"tags":["Elastic","Host","Linux","Windows","macOS","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1565","name":"Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/","subtechnique":[{"id":"T1565.001","name":"Stored Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/001/"}]}]}],"language":"eql","query":"any where\n\n /* file events for creation; file change events are not captured by some of the included sources for linux and so may\n miss this, which is the purpose of the process + command line args logic below */\n (\n event.category == \"file\" and event.type in (\"change\", \"creation\") and\n file.path : (\"/private/etc/hosts\", \"/etc/hosts\", \"?:\\\\Windows\\\\System32\\\\drivers\\\\etc\\\\hosts\")\n )\n or\n\n /* process events for change targeting linux only */\n (\n event.category == \"process\" and event.type in (\"start\") and\n process.name in (\"nano\", \"vim\", \"vi\", \"emacs\", \"echo\", \"sed\") and\n process.args : (\"/etc/hosts\")\n )\n","type":"eql","index":["auditbeat-*","winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"For Windows systems using Auditbeat, this rule requires adding `C:/Windows/System32/drivers/etc` as an additional path in the 'file_integrity' module of auditbeat.yml.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Hosts File Modified v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The hosts file on endpoints is used to control manual IP address to hostname resolutions. The hosts file is the first point of lookup for DNS hostname resolution so if adversaries can modify the endpoint hosts file, they can route traffic to malicious infrastructure. This rule detects modifications to the hosts file on Microsoft Windows, Linux (Ubuntu or RHEL) and macOS systems.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Hosts File Modified\n\nOperating systems use the hosts file to map a connection between an IP address and domain names before going to domain\nname servers. Attackers can abuse this mechanism to route traffic to malicious infrastructure or disrupt security that\ndepends on server communications. For example, Russian threat actors modified this file on a domain controller to\nredirect Duo MFA calls to localhost instead of the Duo server, which prevented the MFA service from contacting its\nserver to validate MFA login. This effectively disabled MFA for active domain accounts because the default policy of Duo\nfor Windows is to \"Fail open\" if the MFA server is unreachable. This can happen in any MFA implementation and is not\nexclusive to Duo. Find more details in this [CISA Alert](https://www.cisa.gov/uscert/ncas/alerts/aa22-074a).\n\nThis rule identifies modifications in the hosts file across multiple operating systems using process creation events for\nLinux and file events in Windows and macOS.\n\n#### Possible investigation steps\n\n- Identify the specifics of the involved assets, such as role, criticality, and associated users.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the changes to the hosts file by comparing it against file backups, volume shadow copies, and other restoration\nmechanisms.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity\nand the configuration was justified.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Consider isolating the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Review the privileges of the administrator account that performed the action.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timeline_id":"4d4c0b59-ea83-483f-b8c1-8c360ee53c5c","timeline_title":"Comprehensive File Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/guide/en/beats/auditbeat/current/auditbeat-reference-yml.html"],"tags":["Elastic","Host","Linux","Windows","macOS","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1565","name":"Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/","subtechnique":[{"id":"T1565.001","name":"Stored Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/001/"}]}]}],"language":"eql","query":"any where\n\n /* file events for creation; file change events are not captured by some of the included sources for linux and so may\n miss this, which is the purpose of the process + command line args logic below */\n (\n event.category == \"file\" and event.type in (\"change\", \"creation\") and\n file.path : (\"/private/etc/hosts\", \"/etc/hosts\", \"?:\\\\Windows\\\\System32\\\\drivers\\\\etc\\\\hosts\")\n )\n or\n\n /* process events for change targeting linux only */\n (\n event.category == \"process\" and event.type in (\"start\") and\n process.name in (\"nano\", \"vim\", \"vi\", \"emacs\", \"echo\", \"sed\") and\n process.args : (\"/etc/hosts\")\n )\n","type":"eql","index":["auditbeat-*","winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"For Windows systems using Auditbeat, this rule requires adding `C:/Windows/System32/drivers/etc` as an additional path in the 'file_integrity' module of auditbeat.yml.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Hosts File Modified v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The hosts file on endpoints is used to control manual IP address to hostname resolutions. The hosts file is the first point of lookup for DNS hostname resolution so if adversaries can modify the endpoint hosts file, they can route traffic to malicious infrastructure. This rule detects modifications to the hosts file on Microsoft Windows, Linux (Ubuntu or RHEL) and macOS systems.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Hosts File Modified\n\nOperating systems use the hosts file to map a connection between an IP address and domain names before going to domain\nname servers. Attackers can abuse this mechanism to route traffic to malicious infrastructure or disrupt security that\ndepends on server communications. For example, Russian threat actors modified this file on a domain controller to\nredirect Duo MFA calls to localhost instead of the Duo server, which prevented the MFA service from contacting its\nserver to validate MFA login. This effectively disabled MFA for active domain accounts because the default policy of Duo\nfor Windows is to \"Fail open\" if the MFA server is unreachable. This can happen in any MFA implementation and is not\nexclusive to Duo. Find more details in this [CISA Alert](https://www.cisa.gov/uscert/ncas/alerts/aa22-074a).\n\nThis rule identifies modifications in the hosts file across multiple operating systems using process creation events for\nLinux and file events in Windows and macOS.\n\n#### Possible investigation steps\n\n- Identify the specifics of the involved assets, such as role, criticality, and associated users.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the changes to the hosts file by comparing it against file backups, volume shadow copies, and other restoration\nmechanisms.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity\nand the configuration was justified.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Consider isolating the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Review the privileges of the administrator account that performed the action.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timeline_id":"4d4c0b59-ea83-483f-b8c1-8c360ee53c5c","timeline_title":"Comprehensive File Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/guide/en/beats/auditbeat/current/auditbeat-reference-yml.html"],"tags":["Elastic","Host","Linux","Windows","macOS","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1565","name":"Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/","subtechnique":[{"id":"T1565.001","name":"Stored Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/001/"}]}]}],"language":"eql","query":"any where\n\n /* file events for creation; file change events are not captured by some of the included sources for linux and so may\n miss this, which is the purpose of the process + command line args logic below */\n (\n event.category == \"file\" and event.type in (\"change\", \"creation\") and\n file.path : (\"/private/etc/hosts\", \"/etc/hosts\", \"?:\\\\Windows\\\\System32\\\\drivers\\\\etc\\\\hosts\")\n )\n or\n\n /* process events for change targeting linux only */\n (\n event.category == \"process\" and event.type in (\"start\") and\n process.name in (\"nano\", \"vim\", \"vi\", \"emacs\", \"echo\", \"sed\") and\n process.args : (\"/etc/hosts\")\n )\n","type":"eql","index":["auditbeat-*","winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"For Windows systems using Auditbeat, this rule requires adding `C:/Windows/System32/drivers/etc` as an additional path in the 'file_integrity' module of auditbeat.yml.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"9c260313-c811-4ec8-ab89-8f6530e0246c","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/9c865691-5599-447a-bac9-b3f2df5f9a9d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/9c865691-5599-447a-bac9-b3f2df5f9a9d.json new file mode 100644 index 0000000000000..38abdae78c888 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/9c865691-5599-447a-bac9-b3f2df5f9a9d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"9c865691-5599-447a-bac9-b3f2df5f9a9d","versions":[{"name":"Remote Logon followed by Scheduled Task Creation v1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a remote logon followed by a scheduled task creation on the target host. This could be indicative of adversary lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote Scheduled Task Creation\n\n[Scheduled tasks](https://docs.microsoft.com/en-us/windows/win32/taskschd/about-the-task-scheduler) are a great mechanism\nfor persistence and program execution. These features can be used remotely for a variety of legitimate reasons, but at\nthe same time used by malware and adversaries. When investigating scheduled tasks that were set up remotely, one of the\nfirst steps should be to determine the original intent behind the configuration and to verify if the activity is tied to\nbenign behavior such as software installation or any kind of network administrator work. One objective for these alerts\nis to understand the configured action within the scheduled task. This is captured within the registry event data for\nthis rule and can be base64 decoded to view the value.\n\n#### Possible investigation steps\n\n- Review the TaskContent value to investigate the task configured action.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate software\ninstallations.\n- Further examination should include review of host-based artifacts and network logs from around when the scheduled task\nwas created, on both the source and target machines.\n\n### False positive analysis\n\n- There is a high possibility of benign activity tied to the creation of remote scheduled tasks as it is a general feature\nwithin Windows and used for legitimate purposes for a wide range of activity. Any kind of context should be found to\nfurther understand the source of the activity and determine the intent based on the scheduled task's contents.\n\n### Related rules\n\n- Service Command Lateral Movement - d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc\n- Remotely Started Services via RPC - aa9a274d-6b53-424d-ac5e-cb8ca4251650\n- Remote Scheduled Task Creation - 954ee7c8-5437-49ae-b2d6-2960883898e9\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Remove scheduled task and any other related artifacts.\n- Review privileged account management and user account management settings. Consider implementing group policy object (GPO) policies to further\nrestrict activity, or configuring settings that only allow administrators to create remote scheduled tasks.\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"/* Network Logon followed by Scheduled Task creation */\n\nsequence by host.id with maxspan=1m\n [authentication where event.action == \"logged-in\" and\n winlog.logon.type == \"Network\" and event.outcome == \"success\" and\n not user.name == \"ANONYMOUS LOGON\" and not winlog.event_data.SubjectUserName : \"*$\" and\n not user.domain == \"NT AUTHORITY\" and source.ip != \"127.0.0.1\" and source.ip !=\"::1\"] by winlog.event_data.TargetLogonId\n\n [iam where event.action == \"scheduled-task-created\"] by winlog.event_data.SubjectLogonId\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.SubjectUserName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetLogonId","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}]},{"name":"Remote Logon followed by Scheduled Task Creation v1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a remote logon followed by a scheduled task creation on the target host. This could be indicative of adversary lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote Scheduled Task Creation\n\n[Scheduled tasks](https://docs.microsoft.com/en-us/windows/win32/taskschd/about-the-task-scheduler) are a great mechanism\nfor persistence and program execution. These features can be used remotely for a variety of legitimate reasons, but at\nthe same time used by malware and adversaries. When investigating scheduled tasks that were set up remotely, one of the\nfirst steps should be to determine the original intent behind the configuration and to verify if the activity is tied to\nbenign behavior such as software installation or any kind of network administrator work. One objective for these alerts\nis to understand the configured action within the scheduled task. This is captured within the registry event data for\nthis rule and can be base64 decoded to view the value.\n\n#### Possible investigation steps\n\n- Review the TaskContent value to investigate the task configured action.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate software\ninstallations.\n- Further examination should include review of host-based artifacts and network logs from around when the scheduled task\nwas created, on both the source and target machines.\n\n### False positive analysis\n\n- There is a high possibility of benign activity tied to the creation of remote scheduled tasks as it is a general feature\nwithin Windows and used for legitimate purposes for a wide range of activity. Any kind of context should be found to\nfurther understand the source of the activity and determine the intent based on the scheduled task's contents.\n\n### Related rules\n\n- Service Command Lateral Movement - d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc\n- Remotely Started Services via RPC - aa9a274d-6b53-424d-ac5e-cb8ca4251650\n- Remote Scheduled Task Creation - 954ee7c8-5437-49ae-b2d6-2960883898e9\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Remove scheduled task and any other related artifacts.\n- Review privileged account management and user account management settings. Consider implementing group policy object (GPO) policies to further\nrestrict activity, or configuring settings that only allow administrators to create remote scheduled tasks.\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"/* Network Logon followed by Scheduled Task creation */\n\nsequence by host.id with maxspan=1m\n [authentication where event.action == \"logged-in\" and\n winlog.logon.type == \"Network\" and event.outcome == \"success\" and\n not user.name == \"ANONYMOUS LOGON\" and not winlog.event_data.SubjectUserName : \"*$\" and\n not user.domain == \"NT AUTHORITY\" and source.ip != \"127.0.0.1\" and source.ip !=\"::1\"] by winlog.event_data.TargetLogonId\n\n [iam where event.action == \"scheduled-task-created\"] by winlog.event_data.SubjectLogonId\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.SubjectUserName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetLogonId","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}]},{"name":"Remote Logon followed by Scheduled Task Creation v1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a remote logon followed by a scheduled task creation on the target host. This could be indicative of adversary lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote Scheduled Task Creation\n\n[Scheduled tasks](https://docs.microsoft.com/en-us/windows/win32/taskschd/about-the-task-scheduler) are a great mechanism\nfor persistence and program execution. These features can be used remotely for a variety of legitimate reasons, but at\nthe same time used by malware and adversaries. When investigating scheduled tasks that were set up remotely, one of the\nfirst steps should be to determine the original intent behind the configuration and to verify if the activity is tied to\nbenign behavior such as software installation or any kind of network administrator work. One objective for these alerts\nis to understand the configured action within the scheduled task. This is captured within the registry event data for\nthis rule and can be base64 decoded to view the value.\n\n#### Possible investigation steps\n\n- Review the TaskContent value to investigate the task configured action.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate software\ninstallations.\n- Further examination should include review of host-based artifacts and network logs from around when the scheduled task\nwas created, on both the source and target machines.\n\n### False positive analysis\n\n- There is a high possibility of benign activity tied to the creation of remote scheduled tasks as it is a general feature\nwithin Windows and used for legitimate purposes for a wide range of activity. Any kind of context should be found to\nfurther understand the source of the activity and determine the intent based on the scheduled task's contents.\n\n### Related rules\n\n- Service Command Lateral Movement - d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc\n- Remotely Started Services via RPC - aa9a274d-6b53-424d-ac5e-cb8ca4251650\n- Remote Scheduled Task Creation - 954ee7c8-5437-49ae-b2d6-2960883898e9\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Remove scheduled task and any other related artifacts.\n- Review privileged account management and user account management settings. Consider implementing group policy object (GPO) policies to further\nrestrict activity, or configuring settings that only allow administrators to create remote scheduled tasks.\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"/* Network Logon followed by Scheduled Task creation */\n\nsequence by host.id with maxspan=1m\n [authentication where event.action == \"logged-in\" and\n winlog.logon.type == \"Network\" and event.outcome == \"success\" and\n not user.name == \"ANONYMOUS LOGON\" and not winlog.event_data.SubjectUserName : \"*$\" and\n not user.domain == \"NT AUTHORITY\" and source.ip != \"127.0.0.1\" and source.ip !=\"::1\"] by winlog.event_data.TargetLogonId\n\n [iam where event.action == \"scheduled-task-created\"] by winlog.event_data.SubjectLogonId\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.SubjectUserName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetLogonId","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}]}]},"id":"9c865691-5599-447a-bac9-b3f2df5f9a9d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/9ccf3ce0-0057-440a-91f5-870c6ad39093.json b/fleet-packages/detection-rules-composite/kibana/security_rule/9ccf3ce0-0057-440a-91f5-870c6ad39093.json new file mode 100644 index 0000000000000..621ed91d0c85f --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/9ccf3ce0-0057-440a-91f5-870c6ad39093.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"9ccf3ce0-0057-440a-91f5-870c6ad39093","versions":[{"name":"Command Shell Activity Started via RunDLL32 v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies command shell activity started via RunDLL32, which is commonly abused by attackers to host malicious code.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Microsoft Windows installers leveraging RunDLL32 for installation."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"cmd.exe\", \"powershell.exe\") and\n process.parent.name : \"rundll32.exe\" and process.parent.command_line != null and\n /* common FPs can be added here */\n not process.parent.args : (\"C:\\\\Windows\\\\System32\\\\SHELL32.dll,RunAsNewUser_RunDLL\",\n \"C:\\\\WINDOWS\\\\*.tmp,zzzzInvokeManagedCustomActionOutOfProc\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.command_line","type":"wildcard"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Command Shell Activity Started via RunDLL32 v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies command shell activity started via RunDLL32, which is commonly abused by attackers to host malicious code.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Microsoft Windows installers leveraging RunDLL32 for installation."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"cmd.exe\", \"powershell.exe\") and\n process.parent.name : \"rundll32.exe\" and process.parent.command_line != null and\n /* common FPs can be added here */\n not process.parent.args : (\"C:\\\\Windows\\\\System32\\\\SHELL32.dll,RunAsNewUser_RunDLL\",\n \"C:\\\\WINDOWS\\\\*.tmp,zzzzInvokeManagedCustomActionOutOfProc\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.command_line","type":"wildcard"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Command Shell Activity Started via RunDLL32 v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies command shell activity started via RunDLL32, which is commonly abused by attackers to host malicious code.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Microsoft Windows installers leveraging RunDLL32 for installation."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"cmd.exe\", \"powershell.exe\") and\n process.parent.name : \"rundll32.exe\" and process.parent.command_line != null and\n /* common FPs can be added here */\n not process.parent.args : (\"C:\\\\Windows\\\\System32\\\\SHELL32.dll,RunAsNewUser_RunDLL\",\n \"C:\\\\WINDOWS\\\\*.tmp,zzzzInvokeManagedCustomActionOutOfProc\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.command_line","type":"wildcard"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"9ccf3ce0-0057-440a-91f5-870c6ad39093","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/9cf7a0ae-2404-11ed-ae7d-f661ea17fbce.json b/fleet-packages/detection-rules-composite/kibana/security_rule/9cf7a0ae-2404-11ed-ae7d-f661ea17fbce.json new file mode 100644 index 0000000000000..f1af88f8c9d36 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/9cf7a0ae-2404-11ed-ae7d-f661ea17fbce.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"9cf7a0ae-2404-11ed-ae7d-f661ea17fbce","versions":[{"name":"Google Workspace User Group Access Modified to Allow External Access v2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"User groups in Google Workspace are created to help manage users permissions and access to various resources and applications. The security label is only applied to a group when users within that group are expected to access sensitive data and/or resources so administrators add this label to easily manage security groups better. Adversaries with administrator access may modify a security group to allow external access from members outside the organization. This detection does not capture all modifications to security groups, but only those that could increase the risk associated with them.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["User group access may be modified by an administrator to allow external access for community purposes. Doing so for a user group whom has access to sensitive information or operational resources should be monitored closely."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/9468710?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.003","name":"Additional Cloud Roles","reference":"https://attack.mitre.org/techniques/T1098/003/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:\"CHANGE_GROUP_SETTING\" and event.category:\"iam\"\n and ((google_workspace.admin.setting.name:\"ALLOW_EXTERNAL_MEMBERS\" and google_workspace.admin.new_value:\"true\")\n or (google_workspace.admin.setting.name:\"WHO_CAN_JOIN\" and not (google_workspace.admin.new_value:\"INVITED_CAN_JOIN\"\n or google_workspace.admin.new_value:\"CAN_REQUEST_TO_JOIN\")))\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.setting.name","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Google Workspace User Group Access Modified to Allow External Access v2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"User groups in Google Workspace are created to help manage users permissions and access to various resources and applications. The security label is only applied to a group when users within that group are expected to access sensitive data and/or resources so administrators add this label to easily manage security groups better. Adversaries with administrator access may modify a security group to allow external access from members outside the organization. This detection does not capture all modifications to security groups, but only those that could increase the risk associated with them.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["User group access may be modified by an administrator to allow external access for community purposes. Doing so for a user group whom has access to sensitive information or operational resources should be monitored closely."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/9468710?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.003","name":"Additional Cloud Roles","reference":"https://attack.mitre.org/techniques/T1098/003/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:\"CHANGE_GROUP_SETTING\" and event.category:\"iam\"\n and ((google_workspace.admin.setting.name:\"ALLOW_EXTERNAL_MEMBERS\" and google_workspace.admin.new_value:\"true\")\n or (google_workspace.admin.setting.name:\"WHO_CAN_JOIN\" and not (google_workspace.admin.new_value:\"INVITED_CAN_JOIN\"\n or google_workspace.admin.new_value:\"CAN_REQUEST_TO_JOIN\")))\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.setting.name","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Google Workspace User Group Access Modified to Allow External Access v2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"User groups in Google Workspace are created to help manage users permissions and access to various resources and applications. The security label is only applied to a group when users within that group are expected to access sensitive data and/or resources so administrators add this label to easily manage security groups better. Adversaries with administrator access may modify a security group to allow external access from members outside the organization. This detection does not capture all modifications to security groups, but only those that could increase the risk associated with them.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["User group access may be modified by an administrator to allow external access for community purposes. Doing so for a user group whom has access to sensitive information or operational resources should be monitored closely."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/9468710?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.003","name":"Additional Cloud Roles","reference":"https://attack.mitre.org/techniques/T1098/003/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:\"CHANGE_GROUP_SETTING\" and event.category:\"iam\"\n and ((google_workspace.admin.setting.name:\"ALLOW_EXTERNAL_MEMBERS\" and google_workspace.admin.new_value:\"true\")\n or (google_workspace.admin.setting.name:\"WHO_CAN_JOIN\" and not (google_workspace.admin.new_value:\"INVITED_CAN_JOIN\"\n or google_workspace.admin.new_value:\"CAN_REQUEST_TO_JOIN\")))\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.setting.name","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"9cf7a0ae-2404-11ed-ae7d-f661ea17fbce","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae2.json b/fleet-packages/detection-rules-composite/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae2.json new file mode 100644 index 0000000000000..27b355f91e50a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae2.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae2","versions":[{"name":"Microsoft Build Engine Started by a Script Process v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, was started by a script or the Windows command interpreter. This behavior is unusual and is sometimes used by malicious payloads.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/","subtechnique":[{"id":"T1127.001","name":"MSBuild","reference":"https://attack.mitre.org/techniques/T1127/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"MSBuild.exe\" or process.pe.original_file_name == \"MSBuild.exe\") and\n process.parent.name : (\"cmd.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\", \"cscript.exe\", \"wscript.exe\", \"mshta.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Microsoft Build Engine Started by a Script Process v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, was started by a script or the Windows command interpreter. This behavior is unusual and is sometimes used by malicious payloads.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/","subtechnique":[{"id":"T1127.001","name":"MSBuild","reference":"https://attack.mitre.org/techniques/T1127/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"MSBuild.exe\" or process.pe.original_file_name == \"MSBuild.exe\") and\n process.parent.name : (\"cmd.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\", \"cscript.exe\", \"wscript.exe\", \"mshta.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Microsoft Build Engine Started by a Script Process v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, was started by a script or the Windows command interpreter. This behavior is unusual and is sometimes used by malicious payloads.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/","subtechnique":[{"id":"T1127.001","name":"MSBuild","reference":"https://attack.mitre.org/techniques/T1127/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"MSBuild.exe\" or process.pe.original_file_name == \"MSBuild.exe\") and\n process.parent.name : (\"cmd.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\", \"cscript.exe\", \"wscript.exe\", \"mshta.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae3.json b/fleet-packages/detection-rules-composite/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae3.json new file mode 100644 index 0000000000000..ef9780baedc01 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae3.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae3","versions":[{"name":"Microsoft Build Engine Started by a System Process v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, was started by Explorer or the WMI (Windows Management Instrumentation) subsystem. This behavior is unusual and is sometimes used by malicious payloads.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/","subtechnique":[{"id":"T1127.001","name":"MSBuild","reference":"https://attack.mitre.org/techniques/T1127/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"MSBuild.exe\" and\n process.parent.name : (\"explorer.exe\", \"wmiprvse.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Microsoft Build Engine Started by a System Process v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, was started by Explorer or the WMI (Windows Management Instrumentation) subsystem. This behavior is unusual and is sometimes used by malicious payloads.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/","subtechnique":[{"id":"T1127.001","name":"MSBuild","reference":"https://attack.mitre.org/techniques/T1127/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"MSBuild.exe\" and\n process.parent.name : (\"explorer.exe\", \"wmiprvse.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Microsoft Build Engine Started by a System Process v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, was started by Explorer or the WMI (Windows Management Instrumentation) subsystem. This behavior is unusual and is sometimes used by malicious payloads.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/","subtechnique":[{"id":"T1127.001","name":"MSBuild","reference":"https://attack.mitre.org/techniques/T1127/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"MSBuild.exe\" and\n process.parent.name : (\"explorer.exe\", \"wmiprvse.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae3","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae4.json b/fleet-packages/detection-rules-composite/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae4.json new file mode 100644 index 0000000000000..7fb45bbe430bb --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae4.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae4","versions":[{"name":"Microsoft Build Engine Using an Alternate Name v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, was started after being renamed. This is uncommon behavior and may indicate an attempt to run unnoticed or undetected.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.003","name":"Rename System Utilities","reference":"https://attack.mitre.org/techniques/T1036/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name == \"MSBuild.exe\" and\n not process.name : \"MSBuild.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Microsoft Build Engine Using an Alternate Name v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, was started after being renamed. This is uncommon behavior and may indicate an attempt to run unnoticed or undetected.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.003","name":"Rename System Utilities","reference":"https://attack.mitre.org/techniques/T1036/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name == \"MSBuild.exe\" and\n not process.name : \"MSBuild.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Microsoft Build Engine Using an Alternate Name v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, was started after being renamed. This is uncommon behavior and may indicate an attempt to run unnoticed or undetected.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.003","name":"Rename System Utilities","reference":"https://attack.mitre.org/techniques/T1036/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name == \"MSBuild.exe\" and\n not process.name : \"MSBuild.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae4","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae5.json b/fleet-packages/detection-rules-composite/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae5.json new file mode 100644 index 0000000000000..7012016edc3da --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae5.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae5","versions":[{"name":"Potential Credential Access via Trusted Developer Utility v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, loaded DLLs (dynamically linked libraries) responsible for Windows credential management. This technique is sometimes used for credential dumping.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Credential Access via Trusted Developer Utility\n\nThe Microsoft Build Engine is a platform for building applications. This engine, also known as MSBuild, provides an XML\nschema for a project file that controls how the build platform processes and builds software.\n\nAdversaries can abuse MSBuild to proxy the execution of malicious code. The inline task capability of MSBuild that was\nintroduced in .NET version 4 allows for C# or Visual Basic code to be inserted into an XML project file. MSBuild will\ncompile and execute the inline task. `MSBuild.exe` is a signed Microsoft binary, and the execution of code using it can bypass\napplication control defenses that are configured to allow `MSBuild.exe` execution.\n\nThis rule looks for the MSBuild process loading `vaultcli.dll` or `SAMLib.DLL`, which indicates the execution of\ncredential access activities.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the command line to identify the `.csproj` file location.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (for example, 4624) to the target\nhost after the registry modification.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where event.type == \"start\" and (process.name : \"MSBuild.exe\" or process.pe.original_file_name == \"MSBuild.exe\")]\n [any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : (\"vaultcli.dll\", \"SAMLib.DLL\") or file.name : (\"vaultcli.dll\", \"SAMLib.DLL\"))]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}]},{"name":"Potential Credential Access via Trusted Developer Utility v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, loaded DLLs (dynamically linked libraries) responsible for Windows credential management. This technique is sometimes used for credential dumping.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Credential Access via Trusted Developer Utility\n\nThe Microsoft Build Engine is a platform for building applications. This engine, also known as MSBuild, provides an XML\nschema for a project file that controls how the build platform processes and builds software.\n\nAdversaries can abuse MSBuild to proxy the execution of malicious code. The inline task capability of MSBuild that was\nintroduced in .NET version 4 allows for C# or Visual Basic code to be inserted into an XML project file. MSBuild will\ncompile and execute the inline task. `MSBuild.exe` is a signed Microsoft binary, and the execution of code using it can bypass\napplication control defenses that are configured to allow `MSBuild.exe` execution.\n\nThis rule looks for the MSBuild process loading `vaultcli.dll` or `SAMLib.DLL`, which indicates the execution of\ncredential access activities.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the command line to identify the `.csproj` file location.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (for example, 4624) to the target\nhost after the registry modification.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where event.type == \"start\" and (process.name : \"MSBuild.exe\" or process.pe.original_file_name == \"MSBuild.exe\")]\n [any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : (\"vaultcli.dll\", \"SAMLib.DLL\") or file.name : (\"vaultcli.dll\", \"SAMLib.DLL\"))]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}]},{"name":"Potential Credential Access via Trusted Developer Utility v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, loaded DLLs (dynamically linked libraries) responsible for Windows credential management. This technique is sometimes used for credential dumping.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Credential Access via Trusted Developer Utility\n\nThe Microsoft Build Engine is a platform for building applications. This engine, also known as MSBuild, provides an XML\nschema for a project file that controls how the build platform processes and builds software.\n\nAdversaries can abuse MSBuild to proxy the execution of malicious code. The inline task capability of MSBuild that was\nintroduced in .NET version 4 allows for C# or Visual Basic code to be inserted into an XML project file. MSBuild will\ncompile and execute the inline task. `MSBuild.exe` is a signed Microsoft binary, and the execution of code using it can bypass\napplication control defenses that are configured to allow `MSBuild.exe` execution.\n\nThis rule looks for the MSBuild process loading `vaultcli.dll` or `SAMLib.DLL`, which indicates the execution of\ncredential access activities.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the command line to identify the `.csproj` file location.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (for example, 4624) to the target\nhost after the registry modification.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where event.type == \"start\" and (process.name : \"MSBuild.exe\" or process.pe.original_file_name == \"MSBuild.exe\")]\n [any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : (\"vaultcli.dll\", \"SAMLib.DLL\") or file.name : (\"vaultcli.dll\", \"SAMLib.DLL\"))]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}]}]},"id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae5","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae6.json b/fleet-packages/detection-rules-composite/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae6.json new file mode 100644 index 0000000000000..cfdf2605c0035 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae6.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae6","versions":[{"name":"Microsoft Build Engine Started an Unusual Process v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, started a PowerShell script or the Visual C# Command Line Compiler. This technique is sometimes used to deploy a malicious payload using the Build Engine.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual. If a build system triggers this rule it can be exempted by process, user or host name."],"from":"now-9m","references":["https://blog.talosintelligence.com/2020/02/building-bypass-with-msbuild.html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1027","name":"Obfuscated Files or Information","reference":"https://attack.mitre.org/techniques/T1027/","subtechnique":[{"id":"T1027.004","name":"Compile After Delivery","reference":"https://attack.mitre.org/techniques/T1027/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"MSBuild.exe\" and\n process.name : (\"csc.exe\", \"iexplore.exe\", \"powershell.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Microsoft Build Engine Started an Unusual Process v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, started a PowerShell script or the Visual C# Command Line Compiler. This technique is sometimes used to deploy a malicious payload using the Build Engine.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual. If a build system triggers this rule it can be exempted by process, user or host name."],"from":"now-9m","references":["https://blog.talosintelligence.com/2020/02/building-bypass-with-msbuild.html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1027","name":"Obfuscated Files or Information","reference":"https://attack.mitre.org/techniques/T1027/","subtechnique":[{"id":"T1027.004","name":"Compile After Delivery","reference":"https://attack.mitre.org/techniques/T1027/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"MSBuild.exe\" and\n process.name : (\"csc.exe\", \"iexplore.exe\", \"powershell.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Microsoft Build Engine Started an Unusual Process v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, started a PowerShell script or the Visual C# Command Line Compiler. This technique is sometimes used to deploy a malicious payload using the Build Engine.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual. If a build system triggers this rule it can be exempted by process, user or host name."],"from":"now-9m","references":["https://blog.talosintelligence.com/2020/02/building-bypass-with-msbuild.html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1027","name":"Obfuscated Files or Information","reference":"https://attack.mitre.org/techniques/T1027/","subtechnique":[{"id":"T1027.004","name":"Compile After Delivery","reference":"https://attack.mitre.org/techniques/T1027/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"MSBuild.exe\" and\n process.name : (\"csc.exe\", \"iexplore.exe\", \"powershell.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae6","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae9.json b/fleet-packages/detection-rules-composite/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae9.json new file mode 100644 index 0000000000000..17bcf602ee1e2 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae9.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae9","versions":[{"name":"Process Injection by the Microsoft Build Engine v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, created a thread in another process. This technique is sometimes used to evade detection or elevate privileges.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual."],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"process.name:MSBuild.exe and event.action:\"CreateRemoteThread detected (rule: CreateRemoteThread)\"\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Process Injection by the Microsoft Build Engine v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, created a thread in another process. This technique is sometimes used to evade detection or elevate privileges.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual."],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"process.name:MSBuild.exe and event.action:\"CreateRemoteThread detected (rule: CreateRemoteThread)\"\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Process Injection by the Microsoft Build Engine v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, created a thread in another process. This technique is sometimes used to evade detection or elevate privileges.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual."],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"process.name:MSBuild.exe and event.action:\"CreateRemoteThread detected (rule: CreateRemoteThread)\"\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae9","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/9d19ece6-c20e-481a-90c5-ccca596537de.json b/fleet-packages/detection-rules-composite/kibana/security_rule/9d19ece6-c20e-481a-90c5-ccca596537de.json new file mode 100644 index 0000000000000..150d9a2c5b4ce --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/9d19ece6-c20e-481a-90c5-ccca596537de.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"9d19ece6-c20e-481a-90c5-ccca596537de","versions":[{"name":"LaunchDaemon Creation or Modification and Immediate Loading v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Indicates the creation or modification of a launch daemon, which adversaries may use to repeatedly execute malicious payloads as part of persistence.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Trusted applications persisting via LaunchDaemons"],"from":"now-9m","references":["https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n [file where event.type != \"deletion\" and file.path : (\"/System/Library/LaunchDaemons/*\", \"/Library/LaunchDaemons/*\")]\n [process where event.type in (\"start\", \"process_started\") and process.name == \"launchctl\" and process.args == \"load\"]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"LaunchDaemon Creation or Modification and Immediate Loading v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Indicates the creation or modification of a launch daemon, which adversaries may use to repeatedly execute malicious payloads as part of persistence.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Trusted applications persisting via LaunchDaemons"],"from":"now-9m","references":["https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n [file where event.type != \"deletion\" and file.path : (\"/System/Library/LaunchDaemons/*\", \"/Library/LaunchDaemons/*\")]\n [process where event.type in (\"start\", \"process_started\") and process.name == \"launchctl\" and process.args == \"load\"]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"LaunchDaemon Creation or Modification and Immediate Loading v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Indicates the creation or modification of a launch daemon, which adversaries may use to repeatedly execute malicious payloads as part of persistence.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Trusted applications persisting via LaunchDaemons"],"from":"now-9m","references":["https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n [file where event.type != \"deletion\" and file.path : (\"/System/Library/LaunchDaemons/*\", \"/Library/LaunchDaemons/*\")]\n [process where event.type in (\"start\", \"process_started\") and process.name == \"launchctl\" and process.args == \"load\"]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"9d19ece6-c20e-481a-90c5-ccca596537de","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/9d302377-d226-4e12-b54c-1906b5aec4f6.json b/fleet-packages/detection-rules-composite/kibana/security_rule/9d302377-d226-4e12-b54c-1906b5aec4f6.json new file mode 100644 index 0000000000000..751e10412a798 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/9d302377-d226-4e12-b54c-1906b5aec4f6.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"9d302377-d226-4e12-b54c-1906b5aec4f6","versions":[{"name":"Unusual Linux Process Calling the Metadata Service v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for anomalous access to the metadata service by an unusual process. The metadata service may be targeted in order to harvest credentials or user data scripts containing secrets.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program or one that runs very rarely as part of a monthly or quarterly workflow could trigger this detection rule."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.005","name":"Cloud Instance Metadata API","reference":"https://attack.mitre.org/techniques/T1552/005/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_rare_metadata_process"],"type":"machine_learning"},{"name":"Unusual Linux Process Calling the Metadata Service v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for anomalous access to the metadata service by an unusual process. The metadata service may be targeted in order to harvest credentials or user data scripts containing secrets.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program or one that runs very rarely as part of a monthly or quarterly workflow could trigger this detection rule."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.005","name":"Cloud Instance Metadata API","reference":"https://attack.mitre.org/techniques/T1552/005/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_rare_metadata_process"],"type":"machine_learning"},{"name":"Unusual Linux Process Calling the Metadata Service v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for anomalous access to the metadata service by an unusual process. The metadata service may be targeted in order to harvest credentials or user data scripts containing secrets.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program or one that runs very rarely as part of a monthly or quarterly workflow could trigger this detection rule."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.005","name":"Cloud Instance Metadata API","reference":"https://attack.mitre.org/techniques/T1552/005/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_rare_metadata_process"],"type":"machine_learning"}]},"id":"9d302377-d226-4e12-b54c-1906b5aec4f6","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/9f1c4ca3-44b5-481d-ba42-32dc215a2769.json b/fleet-packages/detection-rules-composite/kibana/security_rule/9f1c4ca3-44b5-481d-ba42-32dc215a2769.json new file mode 100644 index 0000000000000..80b4a9a3a050b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/9f1c4ca3-44b5-481d-ba42-32dc215a2769.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"9f1c4ca3-44b5-481d-ba42-32dc215a2769","versions":[{"name":"Potential Protocol Tunneling via EarthWorm v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of the EarthWorm tunneler. Adversaries may tunnel network communications to and from a victim system within a separate protocol to avoid detection and network filtering, or to enable access to otherwise unreachable systems.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["http://rootkiter.com/EarthWorm/","https://decoded.avast.io/luigicamastra/apt-group-targeting-governmental-agencies-in-east-asia/"],"tags":["Elastic","Host","Linux","Threat Detection","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1572","name":"Protocol Tunneling","reference":"https://attack.mitre.org/techniques/T1572/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.args : \"-s\" and process.args : \"-d\" and process.args : \"rssocks\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Protocol Tunneling via EarthWorm v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of the EarthWorm tunneler. Adversaries may tunnel network communications to and from a victim system within a separate protocol to avoid detection and network filtering, or to enable access to otherwise unreachable systems.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["http://rootkiter.com/EarthWorm/","https://decoded.avast.io/luigicamastra/apt-group-targeting-governmental-agencies-in-east-asia/"],"tags":["Elastic","Host","Linux","Threat Detection","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1572","name":"Protocol Tunneling","reference":"https://attack.mitre.org/techniques/T1572/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.args : \"-s\" and process.args : \"-d\" and process.args : \"rssocks\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Protocol Tunneling via EarthWorm v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of the EarthWorm tunneler. Adversaries may tunnel network communications to and from a victim system within a separate protocol to avoid detection and network filtering, or to enable access to otherwise unreachable systems.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["http://rootkiter.com/EarthWorm/","https://decoded.avast.io/luigicamastra/apt-group-targeting-governmental-agencies-in-east-asia/"],"tags":["Elastic","Host","Linux","Threat Detection","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1572","name":"Protocol Tunneling","reference":"https://attack.mitre.org/techniques/T1572/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.args : \"-s\" and process.args : \"-d\" and process.args : \"rssocks\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"9f1c4ca3-44b5-481d-ba42-32dc215a2769","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/9f962927-1a4f-45f3-a57b-287f2c7029c1.json b/fleet-packages/detection-rules-composite/kibana/security_rule/9f962927-1a4f-45f3-a57b-287f2c7029c1.json new file mode 100644 index 0000000000000..a4dc1c95d32fe --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/9f962927-1a4f-45f3-a57b-287f2c7029c1.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"9f962927-1a4f-45f3-a57b-287f2c7029c1","versions":[{"name":"Potential Credential Access via DCSync v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule identifies when a User Account starts the Active Directory Replication Process. Attackers can use the DCSync technique to get credential information of individual accounts or the entire domain, thus compromising the entire domain.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Credential Access via DCSync\n\nActive Directory replication is the process by which the changes that originate on one domain controller are\nautomatically transferred to other domain controllers that store the same data.\n\nActive Directory data consists of objects that have properties, or attributes. Each object is an instance of an object\nclass, and object classes and their respective attributes are defined in the Active Directory schema. Objects are\ndefined by the values of their attributes, and changes to attribute values must be transferred from the domain\ncontroller on which they occur to every other domain controller that stores a replica of an affected object.\n\nAdversaries can use the DCSync technique that uses Windows Domain Controller's API to simulate the replication process\nfrom a remote domain controller, compromising major credential material such as the Kerberos krbtgt keys used\nlegitimately for tickets creation, but also tickets forging by attackers. This attack requires some extended privileges\nto succeed (DS-Replication-Get-Changes and DS-Replication-Get-Changes-All), which are granted by default to members of\nthe Administrators, Domain Admins, Enterprise Admins, and Domain Controllers groups. Privileged accounts can be abused\nto grant controlled objects the right to DCsync/Replicate.\n\nMore details can be found on [Threat Hunter Playbook](https://threathunterplaybook.com/library/windows/active_directory_replication.html?highlight=dcsync#directory-replication-services-auditing) and [The Hacker Recipes](https://www.thehacker.recipes/ad/movement/credentials/dumping/dcsync).\n\nThis rule monitors for Event ID 4662 (Operation was performed on an Active Directory object) and identifies events that\nuse the access mask 0x100 (Control Access) and properties that contain at least one of the following or their equivalent:\nSchema-Id-GUID (DS-Replication-Get-Changes, DS-Replication-Get-Changes-All, DS-Replication-Get-Changes-In-Filtered-Set).\nIt also filters out events that use computer accounts and also Azure AD Connect MSOL accounts (more details [here](https://techcommunity.microsoft.com/t5/microsoft-defender-for-identity/ad-connect-msol-user-suspected-dcsync-attack/m-p/788028)).\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account and system owners and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Correlate security events 4662 and 4624 (Logon Type 3) by their Logon ID (`winlog.logon.id`) on the Domain Controller\n(DC) that received the replication request. This will tell you where the AD replication request came from, and if it\ncame from another DC or not.\n- Scope which credentials were compromised (for example, whether all accounts were replicated or specific ones).\n\n### False positive analysis\n\n- This activity should not happen legitimately, since replication should be done by Domain Controllers only. Any\npotential benign true positive (B-TP) should be mapped and monitored by the security team. Any account that performs\nthis activity can put the domain at risk for not having the same security standards as computer accounts (which have\nlong, complex, random passwords that change frequently), exposing it to credential cracking attacks (Kerberoasting,\nbrute force, etc.).\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If specific credentials were compromised:\n - Reset the password for these accounts and other potentially compromised credentials, like email, business systems,\n and web services.\n- If the entire domain or the `krbtgt` user were compromised:\n - Activate your incident response plan for total Active Directory compromise which should include, but not be limited\n to, a password reset (twice) of the `krbtgt` user.\n- Investigate how the attacker escalated privileges and identify systems they used to conduct lateral movement. Use this\ninformation to scope ways that the attacker could use to regain access to the environment.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://threathunterplaybook.com/notebooks/windows/06_credential_access/WIN-180815210510.html","https://threathunterplaybook.com/library/windows/active_directory_replication.html?highlight=dcsync#directory-replication-services-auditing","https://github.com/SigmaHQ/sigma/blob/master/rules/windows/builtin/security/win_ad_replication_non_machine_account.yml","https://github.com/atc-project/atomic-threat-coverage/blob/master/Atomic_Threat_Coverage/Logging_Policies/LP_0027_windows_audit_directory_service_access.md","https://attack.stealthbits.com/privilege-escalation-using-mimikatz-dcsync","https://www.thehacker.recipes/ad/movement/credentials/dumping/dcsync"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.006","name":"DCSync","reference":"https://attack.mitre.org/techniques/T1003/006/"}]}]}],"language":"eql","query":"any where event.action == \"Directory Service Access\" and\n event.code == \"4662\" and winlog.event_data.Properties : (\n\n /* Control Access Rights/Permissions Symbol */\n\n \"*DS-Replication-Get-Changes*\",\n \"*DS-Replication-Get-Changes-All*\",\n \"*DS-Replication-Get-Changes-In-Filtered-Set*\",\n\n /* Identifying GUID used in ACE */\n\n \"*1131f6ad-9c07-11d1-f79f-00c04fc2dcd2*\",\n \"*1131f6aa-9c07-11d1-f79f-00c04fc2dcd2*\",\n \"*89e95b76-444d-4c62-991a-0facbeda640c*\")\n\n /* The right to perform an operation controlled by an extended access right. */\n\n and winlog.event_data.AccessMask : \"0x100\" and\n not winlog.event_data.SubjectUserName : (\"*$\", \"MSOL_*\")\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AccessMask","type":"unknown"},{"ecs":false,"name":"winlog.event_data.Properties","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectUserName","type":"keyword"}],"setup":"The 'Audit Directory Service Changes' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Credential Access via DCSync v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule identifies when a User Account starts the Active Directory Replication Process. Attackers can use the DCSync technique to get credential information of individual accounts or the entire domain, thus compromising the entire domain.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Credential Access via DCSync\n\nActive Directory replication is the process by which the changes that originate on one domain controller are\nautomatically transferred to other domain controllers that store the same data.\n\nActive Directory data consists of objects that have properties, or attributes. Each object is an instance of an object\nclass, and object classes and their respective attributes are defined in the Active Directory schema. Objects are\ndefined by the values of their attributes, and changes to attribute values must be transferred from the domain\ncontroller on which they occur to every other domain controller that stores a replica of an affected object.\n\nAdversaries can use the DCSync technique that uses Windows Domain Controller's API to simulate the replication process\nfrom a remote domain controller, compromising major credential material such as the Kerberos krbtgt keys used\nlegitimately for tickets creation, but also tickets forging by attackers. This attack requires some extended privileges\nto succeed (DS-Replication-Get-Changes and DS-Replication-Get-Changes-All), which are granted by default to members of\nthe Administrators, Domain Admins, Enterprise Admins, and Domain Controllers groups. Privileged accounts can be abused\nto grant controlled objects the right to DCsync/Replicate.\n\nMore details can be found on [Threat Hunter Playbook](https://threathunterplaybook.com/library/windows/active_directory_replication.html?highlight=dcsync#directory-replication-services-auditing) and [The Hacker Recipes](https://www.thehacker.recipes/ad/movement/credentials/dumping/dcsync).\n\nThis rule monitors for Event ID 4662 (Operation was performed on an Active Directory object) and identifies events that\nuse the access mask 0x100 (Control Access) and properties that contain at least one of the following or their equivalent:\nSchema-Id-GUID (DS-Replication-Get-Changes, DS-Replication-Get-Changes-All, DS-Replication-Get-Changes-In-Filtered-Set).\nIt also filters out events that use computer accounts and also Azure AD Connect MSOL accounts (more details [here](https://techcommunity.microsoft.com/t5/microsoft-defender-for-identity/ad-connect-msol-user-suspected-dcsync-attack/m-p/788028)).\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account and system owners and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Correlate security events 4662 and 4624 (Logon Type 3) by their Logon ID (`winlog.logon.id`) on the Domain Controller\n(DC) that received the replication request. This will tell you where the AD replication request came from, and if it\ncame from another DC or not.\n- Scope which credentials were compromised (for example, whether all accounts were replicated or specific ones).\n\n### False positive analysis\n\n- This activity should not happen legitimately, since replication should be done by Domain Controllers only. Any\npotential benign true positive (B-TP) should be mapped and monitored by the security team. Any account that performs\nthis activity can put the domain at risk for not having the same security standards as computer accounts (which have\nlong, complex, random passwords that change frequently), exposing it to credential cracking attacks (Kerberoasting,\nbrute force, etc.).\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If specific credentials were compromised:\n - Reset the password for these accounts and other potentially compromised credentials, like email, business systems,\n and web services.\n- If the entire domain or the `krbtgt` user were compromised:\n - Activate your incident response plan for total Active Directory compromise which should include, but not be limited\n to, a password reset (twice) of the `krbtgt` user.\n- Investigate how the attacker escalated privileges and identify systems they used to conduct lateral movement. Use this\ninformation to scope ways that the attacker could use to regain access to the environment.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://threathunterplaybook.com/notebooks/windows/06_credential_access/WIN-180815210510.html","https://threathunterplaybook.com/library/windows/active_directory_replication.html?highlight=dcsync#directory-replication-services-auditing","https://github.com/SigmaHQ/sigma/blob/master/rules/windows/builtin/security/win_ad_replication_non_machine_account.yml","https://github.com/atc-project/atomic-threat-coverage/blob/master/Atomic_Threat_Coverage/Logging_Policies/LP_0027_windows_audit_directory_service_access.md","https://attack.stealthbits.com/privilege-escalation-using-mimikatz-dcsync","https://www.thehacker.recipes/ad/movement/credentials/dumping/dcsync"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.006","name":"DCSync","reference":"https://attack.mitre.org/techniques/T1003/006/"}]}]}],"language":"eql","query":"any where event.action == \"Directory Service Access\" and\n event.code == \"4662\" and winlog.event_data.Properties : (\n\n /* Control Access Rights/Permissions Symbol */\n\n \"*DS-Replication-Get-Changes*\",\n \"*DS-Replication-Get-Changes-All*\",\n \"*DS-Replication-Get-Changes-In-Filtered-Set*\",\n\n /* Identifying GUID used in ACE */\n\n \"*1131f6ad-9c07-11d1-f79f-00c04fc2dcd2*\",\n \"*1131f6aa-9c07-11d1-f79f-00c04fc2dcd2*\",\n \"*89e95b76-444d-4c62-991a-0facbeda640c*\")\n\n /* The right to perform an operation controlled by an extended access right. */\n\n and winlog.event_data.AccessMask : \"0x100\" and\n not winlog.event_data.SubjectUserName : (\"*$\", \"MSOL_*\")\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AccessMask","type":"unknown"},{"ecs":false,"name":"winlog.event_data.Properties","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectUserName","type":"keyword"}],"setup":"The 'Audit Directory Service Changes' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Credential Access via DCSync v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule identifies when a User Account starts the Active Directory Replication Process. Attackers can use the DCSync technique to get credential information of individual accounts or the entire domain, thus compromising the entire domain.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Credential Access via DCSync\n\nActive Directory replication is the process by which the changes that originate on one domain controller are\nautomatically transferred to other domain controllers that store the same data.\n\nActive Directory data consists of objects that have properties, or attributes. Each object is an instance of an object\nclass, and object classes and their respective attributes are defined in the Active Directory schema. Objects are\ndefined by the values of their attributes, and changes to attribute values must be transferred from the domain\ncontroller on which they occur to every other domain controller that stores a replica of an affected object.\n\nAdversaries can use the DCSync technique that uses Windows Domain Controller's API to simulate the replication process\nfrom a remote domain controller, compromising major credential material such as the Kerberos krbtgt keys used\nlegitimately for tickets creation, but also tickets forging by attackers. This attack requires some extended privileges\nto succeed (DS-Replication-Get-Changes and DS-Replication-Get-Changes-All), which are granted by default to members of\nthe Administrators, Domain Admins, Enterprise Admins, and Domain Controllers groups. Privileged accounts can be abused\nto grant controlled objects the right to DCsync/Replicate.\n\nMore details can be found on [Threat Hunter Playbook](https://threathunterplaybook.com/library/windows/active_directory_replication.html?highlight=dcsync#directory-replication-services-auditing) and [The Hacker Recipes](https://www.thehacker.recipes/ad/movement/credentials/dumping/dcsync).\n\nThis rule monitors for Event ID 4662 (Operation was performed on an Active Directory object) and identifies events that\nuse the access mask 0x100 (Control Access) and properties that contain at least one of the following or their equivalent:\nSchema-Id-GUID (DS-Replication-Get-Changes, DS-Replication-Get-Changes-All, DS-Replication-Get-Changes-In-Filtered-Set).\nIt also filters out events that use computer accounts and also Azure AD Connect MSOL accounts (more details [here](https://techcommunity.microsoft.com/t5/microsoft-defender-for-identity/ad-connect-msol-user-suspected-dcsync-attack/m-p/788028)).\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account and system owners and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Correlate security events 4662 and 4624 (Logon Type 3) by their Logon ID (`winlog.logon.id`) on the Domain Controller\n(DC) that received the replication request. This will tell you where the AD replication request came from, and if it\ncame from another DC or not.\n- Scope which credentials were compromised (for example, whether all accounts were replicated or specific ones).\n\n### False positive analysis\n\n- This activity should not happen legitimately, since replication should be done by Domain Controllers only. Any\npotential benign true positive (B-TP) should be mapped and monitored by the security team. Any account that performs\nthis activity can put the domain at risk for not having the same security standards as computer accounts (which have\nlong, complex, random passwords that change frequently), exposing it to credential cracking attacks (Kerberoasting,\nbrute force, etc.).\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If specific credentials were compromised:\n - Reset the password for these accounts and other potentially compromised credentials, like email, business systems,\n and web services.\n- If the entire domain or the `krbtgt` user were compromised:\n - Activate your incident response plan for total Active Directory compromise which should include, but not be limited\n to, a password reset (twice) of the `krbtgt` user.\n- Investigate how the attacker escalated privileges and identify systems they used to conduct lateral movement. Use this\ninformation to scope ways that the attacker could use to regain access to the environment.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://threathunterplaybook.com/notebooks/windows/06_credential_access/WIN-180815210510.html","https://threathunterplaybook.com/library/windows/active_directory_replication.html?highlight=dcsync#directory-replication-services-auditing","https://github.com/SigmaHQ/sigma/blob/master/rules/windows/builtin/security/win_ad_replication_non_machine_account.yml","https://github.com/atc-project/atomic-threat-coverage/blob/master/Atomic_Threat_Coverage/Logging_Policies/LP_0027_windows_audit_directory_service_access.md","https://attack.stealthbits.com/privilege-escalation-using-mimikatz-dcsync","https://www.thehacker.recipes/ad/movement/credentials/dumping/dcsync"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.006","name":"DCSync","reference":"https://attack.mitre.org/techniques/T1003/006/"}]}]}],"language":"eql","query":"any where event.action == \"Directory Service Access\" and\n event.code == \"4662\" and winlog.event_data.Properties : (\n\n /* Control Access Rights/Permissions Symbol */\n\n \"*DS-Replication-Get-Changes*\",\n \"*DS-Replication-Get-Changes-All*\",\n \"*DS-Replication-Get-Changes-In-Filtered-Set*\",\n\n /* Identifying GUID used in ACE */\n\n \"*1131f6ad-9c07-11d1-f79f-00c04fc2dcd2*\",\n \"*1131f6aa-9c07-11d1-f79f-00c04fc2dcd2*\",\n \"*89e95b76-444d-4c62-991a-0facbeda640c*\")\n\n /* The right to perform an operation controlled by an extended access right. */\n\n and winlog.event_data.AccessMask : \"0x100\" and\n not winlog.event_data.SubjectUserName : (\"*$\", \"MSOL_*\")\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AccessMask","type":"unknown"},{"ecs":false,"name":"winlog.event_data.Properties","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectUserName","type":"keyword"}],"setup":"The 'Audit Directory Service Changes' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"9f962927-1a4f-45f3-a57b-287f2c7029c1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/9f9a2a82-93a8-4b1a-8778-1780895626d4.json b/fleet-packages/detection-rules-composite/kibana/security_rule/9f9a2a82-93a8-4b1a-8778-1780895626d4.json new file mode 100644 index 0000000000000..01e9b608fa375 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/9f9a2a82-93a8-4b1a-8778-1780895626d4.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"9f9a2a82-93a8-4b1a-8778-1780895626d4","versions":[{"name":"File Permission Modification in Writable Directory v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies file permission modifications in common writable directories by a non-root user. Adversaries often drop files or payloads into a writable directory and change permissions prior to execution.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain programs or applications may modify files or change ownership in writable directories. These can be exempted by username."],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1222","name":"File and Directory Permissions Modification","reference":"https://attack.mitre.org/techniques/T1222/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:(chmod or chown or chattr or chgrp) and\n process.working_directory:(/tmp or /var/tmp or /dev/shm) and\n not user.name:root\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.working_directory","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},{"name":"File Permission Modification in Writable Directory v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies file permission modifications in common writable directories by a non-root user. Adversaries often drop files or payloads into a writable directory and change permissions prior to execution.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain programs or applications may modify files or change ownership in writable directories. These can be exempted by username."],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1222","name":"File and Directory Permissions Modification","reference":"https://attack.mitre.org/techniques/T1222/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:(chmod or chown or chattr or chgrp) and\n process.working_directory:(/tmp or /var/tmp or /dev/shm) and\n not user.name:root\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.working_directory","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},{"name":"File Permission Modification in Writable Directory v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies file permission modifications in common writable directories by a non-root user. Adversaries often drop files or payloads into a writable directory and change permissions prior to execution.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain programs or applications may modify files or change ownership in writable directories. These can be exempted by username."],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1222","name":"File and Directory Permissions Modification","reference":"https://attack.mitre.org/techniques/T1222/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:(chmod or chown or chattr or chgrp) and\n process.working_directory:(/tmp or /var/tmp or /dev/shm) and\n not user.name:root\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.working_directory","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]}]},"id":"9f9a2a82-93a8-4b1a-8778-1780895626d4","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/a00681e3-9ed6-447c-ab2c-be648821c622.json b/fleet-packages/detection-rules-composite/kibana/security_rule/a00681e3-9ed6-447c-ab2c-be648821c622.json new file mode 100644 index 0000000000000..5b66aafb4642d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/a00681e3-9ed6-447c-ab2c-be648821c622.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"a00681e3-9ed6-447c-ab2c-be648821c622","versions":[{"name":"AWS Access Secret in Secrets Manager v103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary may attempt to access the secrets in secrets manager to steal certificates, credentials, or other sensitive material","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS Access Secret in Secrets Manager\n\nAWS Secrets Manager is a service that enables the replacement of hardcoded credentials in code, including passwords, with\nan API call to Secrets Manager to retrieve the secret programmatically.\n\nThis rule looks for the retrieval of credentials using the API `GetSecretValue` action.\n\n#### Possible investigation steps\n\n- Identify the account and its role in the environment, and inspect the related policy.\n- Identify the applications that should use this account.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Investigate abnormal values in the `user_agent.original` field by comparing them with the intended and authorized usage\nand historical data. Suspicious user agent values include non-SDK, AWS CLI, custom user agents, etc.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences involving other users.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Review IAM permission policies for the user identity and specific secrets accessed.\n- Examine the request parameters. These might indicate the source of the program or the nature of its tasks.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- False positives may occur due to the intended usage of the service. Tuning is needed in order to have higher\nconfidence. Consider adding exceptions — preferably with a combination of user agent and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Rotate secrets or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Nick Jones","Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be using GetSecretString API for the specified SecretId. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html","http://detectioninthe.cloud/credential_access/access_secret_in_secrets_manager/"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Data Protection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1528","name":"Steal Application Access Token","reference":"https://attack.mitre.org/techniques/T1528/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:secretsmanager.amazonaws.com and event.action:GetSecretValue\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Access Secret in Secrets Manager v103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary may attempt to access the secrets in secrets manager to steal certificates, credentials, or other sensitive material","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS Access Secret in Secrets Manager\n\nAWS Secrets Manager is a service that enables the replacement of hardcoded credentials in code, including passwords, with\nan API call to Secrets Manager to retrieve the secret programmatically.\n\nThis rule looks for the retrieval of credentials using the API `GetSecretValue` action.\n\n#### Possible investigation steps\n\n- Identify the account and its role in the environment, and inspect the related policy.\n- Identify the applications that should use this account.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Investigate abnormal values in the `user_agent.original` field by comparing them with the intended and authorized usage\nand historical data. Suspicious user agent values include non-SDK, AWS CLI, custom user agents, etc.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences involving other users.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Review IAM permission policies for the user identity and specific secrets accessed.\n- Examine the request parameters. These might indicate the source of the program or the nature of its tasks.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- False positives may occur due to the intended usage of the service. Tuning is needed in order to have higher\nconfidence. Consider adding exceptions — preferably with a combination of user agent and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Rotate secrets or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Nick Jones","Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be using GetSecretString API for the specified SecretId. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html","http://detectioninthe.cloud/credential_access/access_secret_in_secrets_manager/"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Data Protection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1528","name":"Steal Application Access Token","reference":"https://attack.mitre.org/techniques/T1528/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:secretsmanager.amazonaws.com and event.action:GetSecretValue\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Access Secret in Secrets Manager v103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary may attempt to access the secrets in secrets manager to steal certificates, credentials, or other sensitive material","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS Access Secret in Secrets Manager\n\nAWS Secrets Manager is a service that enables the replacement of hardcoded credentials in code, including passwords, with\nan API call to Secrets Manager to retrieve the secret programmatically.\n\nThis rule looks for the retrieval of credentials using the API `GetSecretValue` action.\n\n#### Possible investigation steps\n\n- Identify the account and its role in the environment, and inspect the related policy.\n- Identify the applications that should use this account.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Investigate abnormal values in the `user_agent.original` field by comparing them with the intended and authorized usage\nand historical data. Suspicious user agent values include non-SDK, AWS CLI, custom user agents, etc.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences involving other users.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Review IAM permission policies for the user identity and specific secrets accessed.\n- Examine the request parameters. These might indicate the source of the program or the nature of its tasks.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- False positives may occur due to the intended usage of the service. Tuning is needed in order to have higher\nconfidence. Consider adding exceptions — preferably with a combination of user agent and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Rotate secrets or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Nick Jones","Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be using GetSecretString API for the specified SecretId. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html","http://detectioninthe.cloud/credential_access/access_secret_in_secrets_manager/"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Data Protection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1528","name":"Steal Application Access Token","reference":"https://attack.mitre.org/techniques/T1528/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:secretsmanager.amazonaws.com and event.action:GetSecretValue\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"a00681e3-9ed6-447c-ab2c-be648821c622","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/a02cb68e-7c93-48d1-93b2-2c39023308eb.json b/fleet-packages/detection-rules-composite/kibana/security_rule/a02cb68e-7c93-48d1-93b2-2c39023308eb.json new file mode 100644 index 0000000000000..2b05eab4bbbea --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/a02cb68e-7c93-48d1-93b2-2c39023308eb.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"a02cb68e-7c93-48d1-93b2-2c39023308eb","versions":[{"name":"A scheduled task was updated v2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Indicates the update of a scheduled task using Windows event logs. Adversaries can use these to establish persistence, by changing the configuration of a legit scheduled task. Some changes such as disabling or enabling a scheduled task are common and may may generate noise.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4698"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"iam where event.action == \"scheduled-task-updated\" and\n\n /* excluding tasks created by the computer account */\n not user.name : \"*$\" and\n not winlog.event_data.TaskName :\n (\"\\\\User_Feed_Synchronization-*\",\n \"\\\\OneDrive Reporting Task-S-1-5-21*\",\n \"\\\\OneDrive Reporting Task-S-1-12-1-*\",\n \"\\\\Hewlett-Packard\\\\HP Web Products Detection\",\n \"\\\\Hewlett-Packard\\\\HPDeviceCheck\")\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TaskName","type":"unknown"}]},{"name":"A scheduled task was updated v2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Indicates the update of a scheduled task using Windows event logs. Adversaries can use these to establish persistence, by changing the configuration of a legit scheduled task. Some changes such as disabling or enabling a scheduled task are common and may may generate noise.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4698"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"iam where event.action == \"scheduled-task-updated\" and\n\n /* excluding tasks created by the computer account */\n not user.name : \"*$\" and\n not winlog.event_data.TaskName :\n (\"\\\\User_Feed_Synchronization-*\",\n \"\\\\OneDrive Reporting Task-S-1-5-21*\",\n \"\\\\OneDrive Reporting Task-S-1-12-1-*\",\n \"\\\\Hewlett-Packard\\\\HP Web Products Detection\",\n \"\\\\Hewlett-Packard\\\\HPDeviceCheck\")\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TaskName","type":"unknown"}]},{"name":"A scheduled task was updated v2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Indicates the update of a scheduled task using Windows event logs. Adversaries can use these to establish persistence, by changing the configuration of a legit scheduled task. Some changes such as disabling or enabling a scheduled task are common and may may generate noise.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4698"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"iam where event.action == \"scheduled-task-updated\" and\n\n /* excluding tasks created by the computer account */\n not user.name : \"*$\" and\n not winlog.event_data.TaskName :\n (\"\\\\User_Feed_Synchronization-*\",\n \"\\\\OneDrive Reporting Task-S-1-5-21*\",\n \"\\\\OneDrive Reporting Task-S-1-12-1-*\",\n \"\\\\Hewlett-Packard\\\\HP Web Products Detection\",\n \"\\\\Hewlett-Packard\\\\HPDeviceCheck\")\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TaskName","type":"unknown"}]}]},"id":"a02cb68e-7c93-48d1-93b2-2c39023308eb","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/a10d3d9d-0f65-48f1-8b25-af175e2594f5.json b/fleet-packages/detection-rules-composite/kibana/security_rule/a10d3d9d-0f65-48f1-8b25-af175e2594f5.json new file mode 100644 index 0000000000000..886776cea0796 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/a10d3d9d-0f65-48f1-8b25-af175e2594f5.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"a10d3d9d-0f65-48f1-8b25-af175e2594f5","versions":[{"name":"GCP Pub/Sub Topic Creation v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a topic in Google Cloud Platform (GCP). In GCP, the publisher-subscriber relationship (Pub/Sub) is an asynchronous messaging service that decouples event-producing and event-processing services. A topic is used to forward messages from publishers to subscribers.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Topic creations may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Topic creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/pubsub/docs/admin"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1530","name":"Data from Cloud Storage Object","reference":"https://attack.mitre.org/techniques/T1530/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.pubsub.v*.Publisher.CreateTopic and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Pub/Sub Topic Creation v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a topic in Google Cloud Platform (GCP). In GCP, the publisher-subscriber relationship (Pub/Sub) is an asynchronous messaging service that decouples event-producing and event-processing services. A topic is used to forward messages from publishers to subscribers.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Topic creations may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Topic creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/pubsub/docs/admin"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1530","name":"Data from Cloud Storage Object","reference":"https://attack.mitre.org/techniques/T1530/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.pubsub.v*.Publisher.CreateTopic and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Pub/Sub Topic Creation v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a topic in Google Cloud Platform (GCP). In GCP, the publisher-subscriber relationship (Pub/Sub) is an asynchronous messaging service that decouples event-producing and event-processing services. A topic is used to forward messages from publishers to subscribers.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Topic creations may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Topic creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/pubsub/docs/admin"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1530","name":"Data from Cloud Storage Object","reference":"https://attack.mitre.org/techniques/T1530/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.pubsub.v*.Publisher.CreateTopic and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"a10d3d9d-0f65-48f1-8b25-af175e2594f5","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/a13167f1-eec2-4015-9631-1fee60406dcf.json b/fleet-packages/detection-rules-composite/kibana/security_rule/a13167f1-eec2-4015-9631-1fee60406dcf.json new file mode 100644 index 0000000000000..3c2030c5108ac --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/a13167f1-eec2-4015-9631-1fee60406dcf.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"a13167f1-eec2-4015-9631-1fee60406dcf","versions":[{"name":"InstallUtil Process Making Network Connections v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies InstallUtil.exe making outbound network connections. This may indicate adversarial activity as InstallUtil is often leveraged by adversaries to execute code and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.004","name":"InstallUtil","reference":"https://attack.mitre.org/techniques/T1218/004/"}]}]}],"language":"eql","query":"/* the benefit of doing this as an eql sequence vs kql is this will limit to alerting only on the first network connection */\n\nsequence by process.entity_id\n [process where event.type == \"start\" and process.name : \"installutil.exe\"]\n [network where process.name : \"installutil.exe\" and network.direction : (\"outgoing\", \"egress\")]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"InstallUtil Process Making Network Connections v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies InstallUtil.exe making outbound network connections. This may indicate adversarial activity as InstallUtil is often leveraged by adversaries to execute code and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.004","name":"InstallUtil","reference":"https://attack.mitre.org/techniques/T1218/004/"}]}]}],"language":"eql","query":"/* the benefit of doing this as an eql sequence vs kql is this will limit to alerting only on the first network connection */\n\nsequence by process.entity_id\n [process where event.type == \"start\" and process.name : \"installutil.exe\"]\n [network where process.name : \"installutil.exe\" and network.direction : (\"outgoing\", \"egress\")]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"InstallUtil Process Making Network Connections v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies InstallUtil.exe making outbound network connections. This may indicate adversarial activity as InstallUtil is often leveraged by adversaries to execute code and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.004","name":"InstallUtil","reference":"https://attack.mitre.org/techniques/T1218/004/"}]}]}],"language":"eql","query":"/* the benefit of doing this as an eql sequence vs kql is this will limit to alerting only on the first network connection */\n\nsequence by process.entity_id\n [process where event.type == \"start\" and process.name : \"installutil.exe\"]\n [network where process.name : \"installutil.exe\" and network.direction : (\"outgoing\", \"egress\")]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"a13167f1-eec2-4015-9631-1fee60406dcf","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/a1329140-8de3-4445-9f87-908fb6d824f4.json b/fleet-packages/detection-rules-composite/kibana/security_rule/a1329140-8de3-4445-9f87-908fb6d824f4.json new file mode 100644 index 0000000000000..2f26862a9f3fb --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/a1329140-8de3-4445-9f87-908fb6d824f4.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"a1329140-8de3-4445-9f87-908fb6d824f4","versions":[{"name":"File Deletion via Shred v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Malware or other files dropped or created on a system by an adversary may leave traces behind as to what was done within a network and how. Adversaries may remove these files over the course of an intrusion to keep their footprint low or remove them at the end as part of the post-intrusion cleanup process.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.004","name":"File Deletion","reference":"https://attack.mitre.org/techniques/T1070/004/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:shred and\n process.args:(\"-u\" or \"--remove\" or \"-z\" or \"--zero\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"File Deletion via Shred v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Malware or other files dropped or created on a system by an adversary may leave traces behind as to what was done within a network and how. Adversaries may remove these files over the course of an intrusion to keep their footprint low or remove them at the end as part of the post-intrusion cleanup process.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.004","name":"File Deletion","reference":"https://attack.mitre.org/techniques/T1070/004/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:shred and\n process.args:(\"-u\" or \"--remove\" or \"-z\" or \"--zero\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"File Deletion via Shred v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Malware or other files dropped or created on a system by an adversary may leave traces behind as to what was done within a network and how. Adversaries may remove these files over the course of an intrusion to keep their footprint low or remove them at the end as part of the post-intrusion cleanup process.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.004","name":"File Deletion","reference":"https://attack.mitre.org/techniques/T1070/004/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:shred and\n process.args:(\"-u\" or \"--remove\" or \"-z\" or \"--zero\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"a1329140-8de3-4445-9f87-908fb6d824f4","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/a16612dd-b30e-4d41-86a0-ebe70974ec00.json b/fleet-packages/detection-rules-composite/kibana/security_rule/a16612dd-b30e-4d41-86a0-ebe70974ec00.json new file mode 100644 index 0000000000000..6108a5f065575 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/a16612dd-b30e-4d41-86a0-ebe70974ec00.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"a16612dd-b30e-4d41-86a0-ebe70974ec00","versions":[{"name":"Potential LSASS Clone Creation via PssCaptureSnapShot v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an LSASS process clone via PssCaptureSnapShot where the parent process is the initial LSASS process instance. This may indicate an attempt to evade detection and dump LSASS memory for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.matteomalvica.com/blog/2019/12/02/win-defender-atp-cred-bypass/","https://medium.com/@Achilles8284/the-birth-of-a-process-part-2-97c6fb9c42a2"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"process where event.code:\"4688\" and\n process.executable : \"?:\\\\Windows\\\\System32\\\\lsass.exe\" and\n process.parent.executable : \"?:\\\\Windows\\\\System32\\\\lsass.exe\"\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"This is meant to run only on datasources using Windows security event 4688 that captures the process clone creation.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential LSASS Clone Creation via PssCaptureSnapShot v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an LSASS process clone via PssCaptureSnapShot where the parent process is the initial LSASS process instance. This may indicate an attempt to evade detection and dump LSASS memory for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.matteomalvica.com/blog/2019/12/02/win-defender-atp-cred-bypass/","https://medium.com/@Achilles8284/the-birth-of-a-process-part-2-97c6fb9c42a2"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"process where event.code:\"4688\" and\n process.executable : \"?:\\\\Windows\\\\System32\\\\lsass.exe\" and\n process.parent.executable : \"?:\\\\Windows\\\\System32\\\\lsass.exe\"\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"This is meant to run only on datasources using Windows security event 4688 that captures the process clone creation.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential LSASS Clone Creation via PssCaptureSnapShot v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an LSASS process clone via PssCaptureSnapShot where the parent process is the initial LSASS process instance. This may indicate an attempt to evade detection and dump LSASS memory for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.matteomalvica.com/blog/2019/12/02/win-defender-atp-cred-bypass/","https://medium.com/@Achilles8284/the-birth-of-a-process-part-2-97c6fb9c42a2"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"process where event.code:\"4688\" and\n process.executable : \"?:\\\\Windows\\\\System32\\\\lsass.exe\" and\n process.parent.executable : \"?:\\\\Windows\\\\System32\\\\lsass.exe\"\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"This is meant to run only on datasources using Windows security event 4688 that captures the process clone creation.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"a16612dd-b30e-4d41-86a0-ebe70974ec00","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/a17bcc91-297b-459b-b5ce-bc7460d8f82a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/a17bcc91-297b-459b-b5ce-bc7460d8f82a.json new file mode 100644 index 0000000000000..56fc82faffdad --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/a17bcc91-297b-459b-b5ce-bc7460d8f82a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"a17bcc91-297b-459b-b5ce-bc7460d8f82a","versions":[{"name":"GCP Virtual Private Cloud Route Deletion v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Virtual Private Cloud (VPC) route is deleted in Google Cloud Platform (GCP). Google Cloud routes define the paths that network traffic takes from a virtual machine (VM) instance to other destinations. These destinations can be inside a Google VPC network or outside it. An adversary may delete a route in order to impact the flow of network traffic in their target's cloud environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Virtual Private Cloud routes may be deleted by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/routes","https://cloud.google.com/vpc/docs/using-routes"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:v*.compute.routes.delete and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Virtual Private Cloud Route Deletion v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Virtual Private Cloud (VPC) route is deleted in Google Cloud Platform (GCP). Google Cloud routes define the paths that network traffic takes from a virtual machine (VM) instance to other destinations. These destinations can be inside a Google VPC network or outside it. An adversary may delete a route in order to impact the flow of network traffic in their target's cloud environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Virtual Private Cloud routes may be deleted by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/routes","https://cloud.google.com/vpc/docs/using-routes"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:v*.compute.routes.delete and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Virtual Private Cloud Route Deletion v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Virtual Private Cloud (VPC) route is deleted in Google Cloud Platform (GCP). Google Cloud routes define the paths that network traffic takes from a virtual machine (VM) instance to other destinations. These destinations can be inside a Google VPC network or outside it. An adversary may delete a route in order to impact the flow of network traffic in their target's cloud environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Virtual Private Cloud routes may be deleted by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/routes","https://cloud.google.com/vpc/docs/using-routes"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:v*.compute.routes.delete and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"a17bcc91-297b-459b-b5ce-bc7460d8f82a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/a1a0375f-22c2-48c0-81a4-7c2d11cc6856.json b/fleet-packages/detection-rules-composite/kibana/security_rule/a1a0375f-22c2-48c0-81a4-7c2d11cc6856.json new file mode 100644 index 0000000000000..b5343d103b88b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/a1a0375f-22c2-48c0-81a4-7c2d11cc6856.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"a1a0375f-22c2-48c0-81a4-7c2d11cc6856","versions":[{"name":"Potential Reverse Shell Activity via Terminal v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a shell process with suspicious arguments which may be indicative of reverse shell activity.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Reverse Shell Activity via Terminal\n\nA reverse shell is a mechanism that's abused to connect back to an attacker-controlled system. It effectively redirects\nthe system's input and output and delivers a fully functional remote shell to the attacker. Even private systems are\nvulnerable since the connection is outgoing. This activity is typically the result of vulnerability exploitation,\nmalware infection, or penetration testing.\n\nThis rule identifies commands that are potentially related to reverse shell activities using shell applications.\n\n#### Possible investigation steps\n\n- Examine the command line and extract the target domain or IP address information.\n - Check if the domain is newly registered or unexpected.\n - Check the reputation of the domain or IP address.\n - Scope other potentially compromised hosts in your environment by mapping hosts that also communicated with the\n domain or IP address.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, file modifications, and any\nspawned child processes.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently\nmalicious must be monitored by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Take actions to terminate processes and connections used by the attacker.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md","https://github.com/WangYihang/Reverse-Shell-Manager","https://www.netsparker.com/blog/web-security/understanding-reverse-shells/"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.name in (\"sh\", \"bash\", \"zsh\", \"dash\", \"zmodload\") and\n process.args : (\"*/dev/tcp/*\", \"*/dev/udp/*\", \"*zsh/net/tcp*\", \"*zsh/net/udp*\") and\n\n /* noisy FPs */\n not (process.parent.name : \"timeout\" and process.executable : \"/var/lib/docker/overlay*\") and\n not process.command_line : (\"*/dev/tcp/sirh_db/*\", \"*/dev/tcp/remoteiot.com/*\", \"*dev/tcp/elk.stag.one/*\", \"*dev/tcp/kafka/*\", \"*/dev/tcp/$0/$1*\", \"*/dev/tcp/127.*\", \"*/dev/udp/127.*\", \"*/dev/tcp/localhost/*\") and\n not process.parent.command_line : \"runc init\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.command_line","type":"wildcard"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Reverse Shell Activity via Terminal v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a shell process with suspicious arguments which may be indicative of reverse shell activity.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Reverse Shell Activity via Terminal\n\nA reverse shell is a mechanism that's abused to connect back to an attacker-controlled system. It effectively redirects\nthe system's input and output and delivers a fully functional remote shell to the attacker. Even private systems are\nvulnerable since the connection is outgoing. This activity is typically the result of vulnerability exploitation,\nmalware infection, or penetration testing.\n\nThis rule identifies commands that are potentially related to reverse shell activities using shell applications.\n\n#### Possible investigation steps\n\n- Examine the command line and extract the target domain or IP address information.\n - Check if the domain is newly registered or unexpected.\n - Check the reputation of the domain or IP address.\n - Scope other potentially compromised hosts in your environment by mapping hosts that also communicated with the\n domain or IP address.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, file modifications, and any\nspawned child processes.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently\nmalicious must be monitored by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Take actions to terminate processes and connections used by the attacker.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md","https://github.com/WangYihang/Reverse-Shell-Manager","https://www.netsparker.com/blog/web-security/understanding-reverse-shells/"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.name in (\"sh\", \"bash\", \"zsh\", \"dash\", \"zmodload\") and\n process.args : (\"*/dev/tcp/*\", \"*/dev/udp/*\", \"*zsh/net/tcp*\", \"*zsh/net/udp*\") and\n\n /* noisy FPs */\n not (process.parent.name : \"timeout\" and process.executable : \"/var/lib/docker/overlay*\") and\n not process.command_line : (\"*/dev/tcp/sirh_db/*\", \"*/dev/tcp/remoteiot.com/*\", \"*dev/tcp/elk.stag.one/*\", \"*dev/tcp/kafka/*\", \"*/dev/tcp/$0/$1*\", \"*/dev/tcp/127.*\", \"*/dev/udp/127.*\", \"*/dev/tcp/localhost/*\") and\n not process.parent.command_line : \"runc init\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.command_line","type":"wildcard"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Reverse Shell Activity via Terminal v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a shell process with suspicious arguments which may be indicative of reverse shell activity.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Reverse Shell Activity via Terminal\n\nA reverse shell is a mechanism that's abused to connect back to an attacker-controlled system. It effectively redirects\nthe system's input and output and delivers a fully functional remote shell to the attacker. Even private systems are\nvulnerable since the connection is outgoing. This activity is typically the result of vulnerability exploitation,\nmalware infection, or penetration testing.\n\nThis rule identifies commands that are potentially related to reverse shell activities using shell applications.\n\n#### Possible investigation steps\n\n- Examine the command line and extract the target domain or IP address information.\n - Check if the domain is newly registered or unexpected.\n - Check the reputation of the domain or IP address.\n - Scope other potentially compromised hosts in your environment by mapping hosts that also communicated with the\n domain or IP address.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, file modifications, and any\nspawned child processes.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently\nmalicious must be monitored by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Take actions to terminate processes and connections used by the attacker.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md","https://github.com/WangYihang/Reverse-Shell-Manager","https://www.netsparker.com/blog/web-security/understanding-reverse-shells/"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.name in (\"sh\", \"bash\", \"zsh\", \"dash\", \"zmodload\") and\n process.args : (\"*/dev/tcp/*\", \"*/dev/udp/*\", \"*zsh/net/tcp*\", \"*zsh/net/udp*\") and\n\n /* noisy FPs */\n not (process.parent.name : \"timeout\" and process.executable : \"/var/lib/docker/overlay*\") and\n not process.command_line : (\"*/dev/tcp/sirh_db/*\", \"*/dev/tcp/remoteiot.com/*\", \"*dev/tcp/elk.stag.one/*\", \"*dev/tcp/kafka/*\", \"*/dev/tcp/$0/$1*\", \"*/dev/tcp/127.*\", \"*/dev/udp/127.*\", \"*/dev/tcp/localhost/*\") and\n not process.parent.command_line : \"runc init\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.command_line","type":"wildcard"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"a1a0375f-22c2-48c0-81a4-7c2d11cc6856","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/a22a09c2-2162-4df0-a356-9aacbeb56a04.json b/fleet-packages/detection-rules-composite/kibana/security_rule/a22a09c2-2162-4df0-a356-9aacbeb56a04.json new file mode 100644 index 0000000000000..45925b9e08786 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/a22a09c2-2162-4df0-a356-9aacbeb56a04.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"a22a09c2-2162-4df0-a356-9aacbeb56a04","versions":[{"name":"DNS-over-HTTPS Enabled via Registry v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user enables DNS-over-HTTPS. This can be used to hide internet activity or the process of exfiltrating data. With this enabled, an organization will lose visibility into data such as query type, response, and originating IP, which are used to determine bad actors.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"from":"now-9m","references":["https://www.tenforums.com/tutorials/151318-how-enable-disable-dns-over-https-doh-microsoft-edge.html","https://chromeenterprise.google/policies/?policy=DnsOverHttpsMode"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n (registry.path : \"*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Edge\\\\BuiltInDnsClientEnabled\" and\n registry.data.strings : \"1\") or\n (registry.path : \"*\\\\SOFTWARE\\\\Google\\\\Chrome\\\\DnsOverHttpsMode\" and\n registry.data.strings : \"secure\") or\n (registry.path : \"*\\\\SOFTWARE\\\\Policies\\\\Mozilla\\\\Firefox\\\\DNSOverHTTPS\" and\n registry.data.strings : \"1\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"DNS-over-HTTPS Enabled via Registry v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user enables DNS-over-HTTPS. This can be used to hide internet activity or the process of exfiltrating data. With this enabled, an organization will lose visibility into data such as query type, response, and originating IP, which are used to determine bad actors.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"from":"now-9m","references":["https://www.tenforums.com/tutorials/151318-how-enable-disable-dns-over-https-doh-microsoft-edge.html","https://chromeenterprise.google/policies/?policy=DnsOverHttpsMode"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n (registry.path : \"*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Edge\\\\BuiltInDnsClientEnabled\" and\n registry.data.strings : \"1\") or\n (registry.path : \"*\\\\SOFTWARE\\\\Google\\\\Chrome\\\\DnsOverHttpsMode\" and\n registry.data.strings : \"secure\") or\n (registry.path : \"*\\\\SOFTWARE\\\\Policies\\\\Mozilla\\\\Firefox\\\\DNSOverHTTPS\" and\n registry.data.strings : \"1\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"DNS-over-HTTPS Enabled via Registry v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user enables DNS-over-HTTPS. This can be used to hide internet activity or the process of exfiltrating data. With this enabled, an organization will lose visibility into data such as query type, response, and originating IP, which are used to determine bad actors.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"from":"now-9m","references":["https://www.tenforums.com/tutorials/151318-how-enable-disable-dns-over-https-doh-microsoft-edge.html","https://chromeenterprise.google/policies/?policy=DnsOverHttpsMode"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n (registry.path : \"*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Edge\\\\BuiltInDnsClientEnabled\" and\n registry.data.strings : \"1\") or\n (registry.path : \"*\\\\SOFTWARE\\\\Google\\\\Chrome\\\\DnsOverHttpsMode\" and\n registry.data.strings : \"secure\") or\n (registry.path : \"*\\\\SOFTWARE\\\\Policies\\\\Mozilla\\\\Firefox\\\\DNSOverHTTPS\" and\n registry.data.strings : \"1\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"a22a09c2-2162-4df0-a356-9aacbeb56a04","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/a2795334-2499-11ed-9e1a-f661ea17fbce.json b/fleet-packages/detection-rules-composite/kibana/security_rule/a2795334-2499-11ed-9e1a-f661ea17fbce.json new file mode 100644 index 0000000000000..30488cb326c05 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/a2795334-2499-11ed-9e1a-f661ea17fbce.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"a2795334-2499-11ed-9e1a-f661ea17fbce","versions":[{"name":"Google Workspace Restrictions for Google Marketplace Modified to Allow Any App v2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when the Google Marketplace restrictions are changed to allow any application for users in Google Workspace. Malicious APKs created by adversaries may be uploaded to the Google marketplace but not installed on devices managed within Google Workspace. Administrators should set restrictions to not allow any application from the marketplace for security reasons. Adversaries may enable any app to be installed and executed on mobile devices within a Google Workspace environment prior to distributing the malicious APK to the end user.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Applications can be added and removed from blocklists by Google Workspace administrators, but they can all be explicitly allowed for users. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/6089179?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:\"CHANGE_APPLICATION_SETTING\" and event.category:(iam or configuration)\n and google_workspace.event.type:\"APPLICATION_SETTINGS\" and google_workspace.admin.application.name:\"Google Workspace Marketplace\"\n and google_workspace.admin.setting.name:\"Apps Access Setting Allowlist access\" and google_workspace.admin.new_value:\"ALLOW_ALL\"\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.application.name","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.setting.name","type":"keyword"},{"ecs":false,"name":"google_workspace.event.type","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Google Workspace Restrictions for Google Marketplace Modified to Allow Any App v2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when the Google Marketplace restrictions are changed to allow any application for users in Google Workspace. Malicious APKs created by adversaries may be uploaded to the Google marketplace but not installed on devices managed within Google Workspace. Administrators should set restrictions to not allow any application from the marketplace for security reasons. Adversaries may enable any app to be installed and executed on mobile devices within a Google Workspace environment prior to distributing the malicious APK to the end user.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Applications can be added and removed from blocklists by Google Workspace administrators, but they can all be explicitly allowed for users. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/6089179?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:\"CHANGE_APPLICATION_SETTING\" and event.category:(iam or configuration)\n and google_workspace.event.type:\"APPLICATION_SETTINGS\" and google_workspace.admin.application.name:\"Google Workspace Marketplace\"\n and google_workspace.admin.setting.name:\"Apps Access Setting Allowlist access\" and google_workspace.admin.new_value:\"ALLOW_ALL\"\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.application.name","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.setting.name","type":"keyword"},{"ecs":false,"name":"google_workspace.event.type","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Google Workspace Restrictions for Google Marketplace Modified to Allow Any App v2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when the Google Marketplace restrictions are changed to allow any application for users in Google Workspace. Malicious APKs created by adversaries may be uploaded to the Google marketplace but not installed on devices managed within Google Workspace. Administrators should set restrictions to not allow any application from the marketplace for security reasons. Adversaries may enable any app to be installed and executed on mobile devices within a Google Workspace environment prior to distributing the malicious APK to the end user.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Applications can be added and removed from blocklists by Google Workspace administrators, but they can all be explicitly allowed for users. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/6089179?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:\"CHANGE_APPLICATION_SETTING\" and event.category:(iam or configuration)\n and google_workspace.event.type:\"APPLICATION_SETTINGS\" and google_workspace.admin.application.name:\"Google Workspace Marketplace\"\n and google_workspace.admin.setting.name:\"Apps Access Setting Allowlist access\" and google_workspace.admin.new_value:\"ALLOW_ALL\"\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.application.name","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.setting.name","type":"keyword"},{"ecs":false,"name":"google_workspace.event.type","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"a2795334-2499-11ed-9e1a-f661ea17fbce","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/a3ea12f3-0d4e-4667-8b44-4230c63f3c75.json b/fleet-packages/detection-rules-composite/kibana/security_rule/a3ea12f3-0d4e-4667-8b44-4230c63f3c75.json new file mode 100644 index 0000000000000..519832e3a5d6f --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/a3ea12f3-0d4e-4667-8b44-4230c63f3c75.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"a3ea12f3-0d4e-4667-8b44-4230c63f3c75","versions":[{"name":"Execution via local SxS Shared Module v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation, change, or deletion of a DLL module within a Windows SxS local folder. Adversaries may abuse shared modules to execute malicious payloads by instructing the Windows module loader to load DLLs from arbitrary local paths.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\nThe SxS DotLocal folder is a legitimate feature that can be abused to hijack standard modules loading order by forcing an executable on the same application.exe.local folder to load a malicious DLL module from the same directory.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-redirection"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1129","name":"Shared Modules","reference":"https://attack.mitre.org/techniques/T1129/"}]}],"language":"eql","query":"file where file.extension : \"dll\" and file.path : \"C:\\\\*\\\\*.exe.local\\\\*.dll\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Execution via local SxS Shared Module v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation, change, or deletion of a DLL module within a Windows SxS local folder. Adversaries may abuse shared modules to execute malicious payloads by instructing the Windows module loader to load DLLs from arbitrary local paths.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\nThe SxS DotLocal folder is a legitimate feature that can be abused to hijack standard modules loading order by forcing an executable on the same application.exe.local folder to load a malicious DLL module from the same directory.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-redirection"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1129","name":"Shared Modules","reference":"https://attack.mitre.org/techniques/T1129/"}]}],"language":"eql","query":"file where file.extension : \"dll\" and file.path : \"C:\\\\*\\\\*.exe.local\\\\*.dll\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Execution via local SxS Shared Module v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation, change, or deletion of a DLL module within a Windows SxS local folder. Adversaries may abuse shared modules to execute malicious payloads by instructing the Windows module loader to load DLLs from arbitrary local paths.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\nThe SxS DotLocal folder is a legitimate feature that can be abused to hijack standard modules loading order by forcing an executable on the same application.exe.local folder to load a malicious DLL module from the same directory.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-redirection"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1129","name":"Shared Modules","reference":"https://attack.mitre.org/techniques/T1129/"}]}],"language":"eql","query":"file where file.extension : \"dll\" and file.path : \"C:\\\\*\\\\*.exe.local\\\\*.dll\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"a3ea12f3-0d4e-4667-8b44-4230c63f3c75","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/a4c7473a-5cb4-4bc1-9d06-e4a75adbc494.json b/fleet-packages/detection-rules-composite/kibana/security_rule/a4c7473a-5cb4-4bc1-9d06-e4a75adbc494.json new file mode 100644 index 0000000000000..6c30a87f9ac16 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/a4c7473a-5cb4-4bc1-9d06-e4a75adbc494.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"a4c7473a-5cb4-4bc1-9d06-e4a75adbc494","versions":[{"name":"Windows Registry File Creation in SMB Share v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of a medium-size registry hive file on a Server Message Block (SMB) share, which may indicate an exfiltration attempt of a previously dumped Security Account Manager (SAM) registry hive for credential extraction on an attacker-controlled system.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Registry File Creation in SMB Share\n\nDumping registry hives is a common way to access credential information. Some hives store credential material, as is the\ncase for the SAM hive, which stores locally cached credentials (SAM secrets), and the SECURITY hive, which stores domain\ncached credentials (LSA secrets). Dumping these hives in combination with the SYSTEM hive enables the attacker to\ndecrypt these secrets.\n\nAttackers can try to evade detection on the host by transferring this data to a system that is not\nmonitored to be parsed and decrypted. This rule identifies the creation or modification of a medium-size registry hive\nfile on an SMB share, which may indicate this kind of exfiltration attempt.\n\n#### Possible investigation steps\n\n- Investigate other alerts associated with the user/source host during the past 48 hours.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Inspect the source host for suspicious or abnormal behaviors in the alert timeframe.\n- Capture the registry file(s) to determine the extent of the credential compromise in an eventual incident response.\n\n### False positive analysis\n\n- Administrators can export registry hives for backup purposes. Check whether the user should be performing this kind of\nactivity and is aware of it.\n\n### Related rules\n\n- Credential Acquisition via Registry Hive Dumping - a7e7bfa3-088e-4f13-b29e-3986e0e756b8\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system and restore compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.002","name":"Security Account Manager","reference":"https://attack.mitre.org/techniques/T1003/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"file where event.type == \"creation\" and\n /* regf file header */\n file.Ext.header_bytes : \"72656766*\" and file.size >= 30000 and\n process.pid == 4 and user.id : (\"S-1-5-21*\", \"S-1-12-1-*\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"file.Ext.header_bytes","type":"unknown"},{"ecs":true,"name":"file.size","type":"long"},{"ecs":true,"name":"process.pid","type":"long"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"Windows Registry File Creation in SMB Share v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of a medium-size registry hive file on a Server Message Block (SMB) share, which may indicate an exfiltration attempt of a previously dumped Security Account Manager (SAM) registry hive for credential extraction on an attacker-controlled system.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Registry File Creation in SMB Share\n\nDumping registry hives is a common way to access credential information. Some hives store credential material, as is the\ncase for the SAM hive, which stores locally cached credentials (SAM secrets), and the SECURITY hive, which stores domain\ncached credentials (LSA secrets). Dumping these hives in combination with the SYSTEM hive enables the attacker to\ndecrypt these secrets.\n\nAttackers can try to evade detection on the host by transferring this data to a system that is not\nmonitored to be parsed and decrypted. This rule identifies the creation or modification of a medium-size registry hive\nfile on an SMB share, which may indicate this kind of exfiltration attempt.\n\n#### Possible investigation steps\n\n- Investigate other alerts associated with the user/source host during the past 48 hours.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Inspect the source host for suspicious or abnormal behaviors in the alert timeframe.\n- Capture the registry file(s) to determine the extent of the credential compromise in an eventual incident response.\n\n### False positive analysis\n\n- Administrators can export registry hives for backup purposes. Check whether the user should be performing this kind of\nactivity and is aware of it.\n\n### Related rules\n\n- Credential Acquisition via Registry Hive Dumping - a7e7bfa3-088e-4f13-b29e-3986e0e756b8\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system and restore compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.002","name":"Security Account Manager","reference":"https://attack.mitre.org/techniques/T1003/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"file where event.type == \"creation\" and\n /* regf file header */\n file.Ext.header_bytes : \"72656766*\" and file.size >= 30000 and\n process.pid == 4 and user.id : (\"S-1-5-21*\", \"S-1-12-1-*\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"file.Ext.header_bytes","type":"unknown"},{"ecs":true,"name":"file.size","type":"long"},{"ecs":true,"name":"process.pid","type":"long"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"Windows Registry File Creation in SMB Share v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of a medium-size registry hive file on a Server Message Block (SMB) share, which may indicate an exfiltration attempt of a previously dumped Security Account Manager (SAM) registry hive for credential extraction on an attacker-controlled system.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Registry File Creation in SMB Share\n\nDumping registry hives is a common way to access credential information. Some hives store credential material, as is the\ncase for the SAM hive, which stores locally cached credentials (SAM secrets), and the SECURITY hive, which stores domain\ncached credentials (LSA secrets). Dumping these hives in combination with the SYSTEM hive enables the attacker to\ndecrypt these secrets.\n\nAttackers can try to evade detection on the host by transferring this data to a system that is not\nmonitored to be parsed and decrypted. This rule identifies the creation or modification of a medium-size registry hive\nfile on an SMB share, which may indicate this kind of exfiltration attempt.\n\n#### Possible investigation steps\n\n- Investigate other alerts associated with the user/source host during the past 48 hours.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Inspect the source host for suspicious or abnormal behaviors in the alert timeframe.\n- Capture the registry file(s) to determine the extent of the credential compromise in an eventual incident response.\n\n### False positive analysis\n\n- Administrators can export registry hives for backup purposes. Check whether the user should be performing this kind of\nactivity and is aware of it.\n\n### Related rules\n\n- Credential Acquisition via Registry Hive Dumping - a7e7bfa3-088e-4f13-b29e-3986e0e756b8\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system and restore compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.002","name":"Security Account Manager","reference":"https://attack.mitre.org/techniques/T1003/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"file where event.type == \"creation\" and\n /* regf file header */\n file.Ext.header_bytes : \"72656766*\" and file.size >= 30000 and\n process.pid == 4 and user.id : (\"S-1-5-21*\", \"S-1-12-1-*\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"file.Ext.header_bytes","type":"unknown"},{"ecs":true,"name":"file.size","type":"long"},{"ecs":true,"name":"process.pid","type":"long"},{"ecs":true,"name":"user.id","type":"keyword"}]}]},"id":"a4c7473a-5cb4-4bc1-9d06-e4a75adbc494","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/a5f0d057-d540-44f5-924d-c6a2ae92f045.json b/fleet-packages/detection-rules-composite/kibana/security_rule/a5f0d057-d540-44f5-924d-c6a2ae92f045.json new file mode 100644 index 0000000000000..bcc585cf8541d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/a5f0d057-d540-44f5-924d-c6a2ae92f045.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"a5f0d057-d540-44f5-924d-c6a2ae92f045","versions":[{"name":"Potential SSH Brute Force Detected on Privileged Account v1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple consecutive login failures targeting a root user account from the same source address and within a short time interval. Adversaries will often brute force login attempts on privileged accounts with a common or known password, in an attempt to gain privileged access to systems.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential SSH Brute Force Attack on Privileged Account\n\nThe rule identifies consecutive SSH login failures targeting a privileged (root) account from the same source IP\naddress to the same target host indicating brute force login attempts.\n\n#### Possible investigation steps\n\n- Investigate the login failure on privileged account(s).\n- Investigate the source IP address of the failed ssh login attempt(s).\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Infrastructure or availability issue.\n\n### Response and remediation\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified.\n- Reset passwords for these accounts and other potentially compromised credentials.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip with maxspan=10s\n [authentication where event.action in (\"ssh_login\", \"user_login\") and\n event.outcome == \"failure\" and source.ip != null and source.ip != \"0.0.0.0\" and\n source.ip != \"::\" and user.name in (\"*root*\" , \"*admin*\")] with runs=3\n","type":"eql","index":["auditbeat-*","logs-system.auth-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.name","type":"keyword"}]},{"name":"Potential SSH Brute Force Detected on Privileged Account v1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple consecutive login failures targeting a root user account from the same source address and within a short time interval. Adversaries will often brute force login attempts on privileged accounts with a common or known password, in an attempt to gain privileged access to systems.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential SSH Brute Force Attack on Privileged Account\n\nThe rule identifies consecutive SSH login failures targeting a privileged (root) account from the same source IP\naddress to the same target host indicating brute force login attempts.\n\n#### Possible investigation steps\n\n- Investigate the login failure on privileged account(s).\n- Investigate the source IP address of the failed ssh login attempt(s).\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Infrastructure or availability issue.\n\n### Response and remediation\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified.\n- Reset passwords for these accounts and other potentially compromised credentials.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip with maxspan=10s\n [authentication where event.action in (\"ssh_login\", \"user_login\") and\n event.outcome == \"failure\" and source.ip != null and source.ip != \"0.0.0.0\" and\n source.ip != \"::\" and user.name in (\"*root*\" , \"*admin*\")] with runs=3\n","type":"eql","index":["auditbeat-*","logs-system.auth-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.name","type":"keyword"}]},{"name":"Potential SSH Brute Force Detected on Privileged Account v1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple consecutive login failures targeting a root user account from the same source address and within a short time interval. Adversaries will often brute force login attempts on privileged accounts with a common or known password, in an attempt to gain privileged access to systems.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential SSH Brute Force Attack on Privileged Account\n\nThe rule identifies consecutive SSH login failures targeting a privileged (root) account from the same source IP\naddress to the same target host indicating brute force login attempts.\n\n#### Possible investigation steps\n\n- Investigate the login failure on privileged account(s).\n- Investigate the source IP address of the failed ssh login attempt(s).\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Infrastructure or availability issue.\n\n### Response and remediation\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified.\n- Reset passwords for these accounts and other potentially compromised credentials.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip with maxspan=10s\n [authentication where event.action in (\"ssh_login\", \"user_login\") and\n event.outcome == \"failure\" and source.ip != null and source.ip != \"0.0.0.0\" and\n source.ip != \"::\" and user.name in (\"*root*\" , \"*admin*\")] with runs=3\n","type":"eql","index":["auditbeat-*","logs-system.auth-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.name","type":"keyword"}]}]},"id":"a5f0d057-d540-44f5-924d-c6a2ae92f045","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/a60326d7-dca7-4fb7-93eb-1ca03a1febbd.json b/fleet-packages/detection-rules-composite/kibana/security_rule/a60326d7-dca7-4fb7-93eb-1ca03a1febbd.json new file mode 100644 index 0000000000000..828424839b826 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/a60326d7-dca7-4fb7-93eb-1ca03a1febbd.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"a60326d7-dca7-4fb7-93eb-1ca03a1febbd","versions":[{"name":"AWS IAM Assume Role Policy Update v103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to modify an AWS IAM Assume Role Policy. An adversary may attempt to modify the AssumeRolePolicy of a misconfigured role in order to gain the privileges of that role.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS IAM Assume Role Policy Update\n\nAn IAM role is an IAM identity that you can create in your account that has specific permissions. An IAM role is similar\nto an IAM user, in that it is an AWS identity with permission policies that determine what the identity can and cannot\ndo in AWS. However, instead of being uniquely associated with one person, a role is intended to be assumable by anyone\nwho needs it. Also, a role does not have standard long-term credentials such as a password or access keys associated\nwith it. Instead, when you assume a role, it provides you with temporary security credentials for your role session.\n\nThe role trust policy is a JSON document in which you define the principals you trust to assume the role. This policy is\na required resource-based policy that is attached to a role in IAM. An attacker may attempt to modify this policy by\nusing the `UpdateAssumeRolePolicy` API action to gain the privileges of that role.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- False positives may occur due to the intended usage of the service. Tuning is needed in order to have higher\nconfidence. Consider adding exceptions — preferably with a combination of the user agent and user ID conditions — to\ncover administrator activities and infrastructure as code tooling.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Use AWS [policy versioning](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-versioning.html) to restore the trust policy to the desired state.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Policy updates from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://labs.bishopfox.com/tech-blog/5-privesc-attack-vectors-in-aws"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:UpdateAssumeRolePolicy and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS IAM Assume Role Policy Update v103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to modify an AWS IAM Assume Role Policy. An adversary may attempt to modify the AssumeRolePolicy of a misconfigured role in order to gain the privileges of that role.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS IAM Assume Role Policy Update\n\nAn IAM role is an IAM identity that you can create in your account that has specific permissions. An IAM role is similar\nto an IAM user, in that it is an AWS identity with permission policies that determine what the identity can and cannot\ndo in AWS. However, instead of being uniquely associated with one person, a role is intended to be assumable by anyone\nwho needs it. Also, a role does not have standard long-term credentials such as a password or access keys associated\nwith it. Instead, when you assume a role, it provides you with temporary security credentials for your role session.\n\nThe role trust policy is a JSON document in which you define the principals you trust to assume the role. This policy is\na required resource-based policy that is attached to a role in IAM. An attacker may attempt to modify this policy by\nusing the `UpdateAssumeRolePolicy` API action to gain the privileges of that role.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- False positives may occur due to the intended usage of the service. Tuning is needed in order to have higher\nconfidence. Consider adding exceptions — preferably with a combination of the user agent and user ID conditions — to\ncover administrator activities and infrastructure as code tooling.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Use AWS [policy versioning](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-versioning.html) to restore the trust policy to the desired state.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Policy updates from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://labs.bishopfox.com/tech-blog/5-privesc-attack-vectors-in-aws"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:UpdateAssumeRolePolicy and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS IAM Assume Role Policy Update v103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to modify an AWS IAM Assume Role Policy. An adversary may attempt to modify the AssumeRolePolicy of a misconfigured role in order to gain the privileges of that role.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS IAM Assume Role Policy Update\n\nAn IAM role is an IAM identity that you can create in your account that has specific permissions. An IAM role is similar\nto an IAM user, in that it is an AWS identity with permission policies that determine what the identity can and cannot\ndo in AWS. However, instead of being uniquely associated with one person, a role is intended to be assumable by anyone\nwho needs it. Also, a role does not have standard long-term credentials such as a password or access keys associated\nwith it. Instead, when you assume a role, it provides you with temporary security credentials for your role session.\n\nThe role trust policy is a JSON document in which you define the principals you trust to assume the role. This policy is\na required resource-based policy that is attached to a role in IAM. An attacker may attempt to modify this policy by\nusing the `UpdateAssumeRolePolicy` API action to gain the privileges of that role.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- False positives may occur due to the intended usage of the service. Tuning is needed in order to have higher\nconfidence. Consider adding exceptions — preferably with a combination of the user agent and user ID conditions — to\ncover administrator activities and infrastructure as code tooling.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Use AWS [policy versioning](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-versioning.html) to restore the trust policy to the desired state.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Policy updates from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://labs.bishopfox.com/tech-blog/5-privesc-attack-vectors-in-aws"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:UpdateAssumeRolePolicy and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"a60326d7-dca7-4fb7-93eb-1ca03a1febbd","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/a605c51a-73ad-406d-bf3a-f24cc41d5c97.json b/fleet-packages/detection-rules-composite/kibana/security_rule/a605c51a-73ad-406d-bf3a-f24cc41d5c97.json new file mode 100644 index 0000000000000..a270e25c4fb6b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/a605c51a-73ad-406d-bf3a-f24cc41d5c97.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"a605c51a-73ad-406d-bf3a-f24cc41d5c97","versions":[{"name":"Azure Active Directory PowerShell Sign-in v103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a sign-in using the Azure Active Directory PowerShell module. PowerShell for Azure Active Directory allows for managing settings from the command line, which is intended for users who are members of an admin role.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Azure Active Directory PowerShell Sign-in\n\nAzure Active Directory PowerShell for Graph (Azure AD PowerShell) is a module IT professionals commonly use to manage\ntheir Azure Active Directory. The cmdlets in the Azure AD PowerShell module enable you to retrieve data from the\ndirectory, create new objects in the directory, update existing objects, remove objects, as well as configure the\ndirectory and its features.\n\nThis rule identifies sign-ins that use the Azure Active Directory PowerShell module, which can indicate unauthorized\naccess if done outside of IT or engineering.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Evaluate whether the user needs to access Azure AD using PowerShell to complete its tasks.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Consider the source IP address and geolocation for the involved user account. Do they look normal?\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate suspicious actions taken by the user using the module, for example, modifications in security settings\nthat weakens the security policy, persistence-related tasks, and data access.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, consider adding IT, Engineering, and other authorized users\nas exceptions — preferably with a combination of user and device conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Sign-ins using PowerShell may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be signing into your environment. Sign-ins from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://msrc-blog.microsoft.com/2020/12/13/customer-guidance-on-recent-nation-state-cyber-attacks/","https://docs.microsoft.com/en-us/microsoft-365/enterprise/connect-to-microsoft-365-powershell?view=o365-worldwide"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.004","name":"Cloud Accounts","reference":"https://attack.mitre.org/techniques/T1078/004/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.signinlogs and\n azure.signinlogs.properties.app_display_name:\"Azure Active Directory PowerShell\" and\n azure.signinlogs.properties.token_issuer_type:AzureAD and event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.signinlogs.properties.app_display_name","type":"keyword"},{"ecs":false,"name":"azure.signinlogs.properties.token_issuer_type","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Active Directory PowerShell Sign-in v103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a sign-in using the Azure Active Directory PowerShell module. PowerShell for Azure Active Directory allows for managing settings from the command line, which is intended for users who are members of an admin role.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Azure Active Directory PowerShell Sign-in\n\nAzure Active Directory PowerShell for Graph (Azure AD PowerShell) is a module IT professionals commonly use to manage\ntheir Azure Active Directory. The cmdlets in the Azure AD PowerShell module enable you to retrieve data from the\ndirectory, create new objects in the directory, update existing objects, remove objects, as well as configure the\ndirectory and its features.\n\nThis rule identifies sign-ins that use the Azure Active Directory PowerShell module, which can indicate unauthorized\naccess if done outside of IT or engineering.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Evaluate whether the user needs to access Azure AD using PowerShell to complete its tasks.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Consider the source IP address and geolocation for the involved user account. Do they look normal?\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate suspicious actions taken by the user using the module, for example, modifications in security settings\nthat weakens the security policy, persistence-related tasks, and data access.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, consider adding IT, Engineering, and other authorized users\nas exceptions — preferably with a combination of user and device conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Sign-ins using PowerShell may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be signing into your environment. Sign-ins from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://msrc-blog.microsoft.com/2020/12/13/customer-guidance-on-recent-nation-state-cyber-attacks/","https://docs.microsoft.com/en-us/microsoft-365/enterprise/connect-to-microsoft-365-powershell?view=o365-worldwide"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.004","name":"Cloud Accounts","reference":"https://attack.mitre.org/techniques/T1078/004/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.signinlogs and\n azure.signinlogs.properties.app_display_name:\"Azure Active Directory PowerShell\" and\n azure.signinlogs.properties.token_issuer_type:AzureAD and event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.signinlogs.properties.app_display_name","type":"keyword"},{"ecs":false,"name":"azure.signinlogs.properties.token_issuer_type","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Active Directory PowerShell Sign-in v103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a sign-in using the Azure Active Directory PowerShell module. PowerShell for Azure Active Directory allows for managing settings from the command line, which is intended for users who are members of an admin role.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Azure Active Directory PowerShell Sign-in\n\nAzure Active Directory PowerShell for Graph (Azure AD PowerShell) is a module IT professionals commonly use to manage\ntheir Azure Active Directory. The cmdlets in the Azure AD PowerShell module enable you to retrieve data from the\ndirectory, create new objects in the directory, update existing objects, remove objects, as well as configure the\ndirectory and its features.\n\nThis rule identifies sign-ins that use the Azure Active Directory PowerShell module, which can indicate unauthorized\naccess if done outside of IT or engineering.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Evaluate whether the user needs to access Azure AD using PowerShell to complete its tasks.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Consider the source IP address and geolocation for the involved user account. Do they look normal?\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate suspicious actions taken by the user using the module, for example, modifications in security settings\nthat weakens the security policy, persistence-related tasks, and data access.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, consider adding IT, Engineering, and other authorized users\nas exceptions — preferably with a combination of user and device conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Sign-ins using PowerShell may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be signing into your environment. Sign-ins from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://msrc-blog.microsoft.com/2020/12/13/customer-guidance-on-recent-nation-state-cyber-attacks/","https://docs.microsoft.com/en-us/microsoft-365/enterprise/connect-to-microsoft-365-powershell?view=o365-worldwide"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.004","name":"Cloud Accounts","reference":"https://attack.mitre.org/techniques/T1078/004/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.signinlogs and\n azure.signinlogs.properties.app_display_name:\"Azure Active Directory PowerShell\" and\n azure.signinlogs.properties.token_issuer_type:AzureAD and event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.signinlogs.properties.app_display_name","type":"keyword"},{"ecs":false,"name":"azure.signinlogs.properties.token_issuer_type","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"a605c51a-73ad-406d-bf3a-f24cc41d5c97","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/a624863f-a70d-417f-a7d2-7a404638d47f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/a624863f-a70d-417f-a7d2-7a404638d47f.json new file mode 100644 index 0000000000000..11f35fd4aef55 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/a624863f-a70d-417f-a7d2-7a404638d47f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"a624863f-a70d-417f-a7d2-7a404638d47f","versions":[{"name":"Suspicious MS Office Child Process v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious child processes of frequently targeted Microsoft Office applications (Word, PowerPoint, Excel). These child processes are often launched during exploitation of Office applications or from documents with malicious macros.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious MS Office Child Process\n\nMicrosoft Office (MS Office) is a suite of applications designed to help with productivity and completing common tasks on a computer.\nYou can create and edit documents containing text and images, work with data in spreadsheets and databases, and create\npresentations and posters. As it is some of the most-used software across companies, MS Office is frequently targeted\nfor initial access. It also has a wide variety of capabilities that attackers can take advantage of.\n\nThis rule looks for suspicious processes spawned by MS Office programs. This is generally the result of the execution of\nmalicious documents.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve MS Office documents received and opened by the user that could cause this behavior. Common locations include,\nbut are not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/blog/vulnerability-summary-follina"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"eqnedt32.exe\", \"excel.exe\", \"fltldr.exe\", \"msaccess.exe\", \"mspub.exe\", \"powerpnt.exe\", \"winword.exe\", \"outlook.exe\") and\n process.name : (\"Microsoft.Workflow.Compiler.exe\", \"arp.exe\", \"atbroker.exe\", \"bginfo.exe\", \"bitsadmin.exe\", \"cdb.exe\", \"certutil.exe\",\n \"cmd.exe\", \"cmstp.exe\", \"control.exe\", \"cscript.exe\", \"csi.exe\", \"dnx.exe\", \"dsget.exe\", \"dsquery.exe\", \"forfiles.exe\",\n \"fsi.exe\", \"ftp.exe\", \"gpresult.exe\", \"hostname.exe\", \"ieexec.exe\", \"iexpress.exe\", \"installutil.exe\", \"ipconfig.exe\",\n \"mshta.exe\", \"msxsl.exe\", \"nbtstat.exe\", \"net.exe\", \"net1.exe\", \"netsh.exe\", \"netstat.exe\", \"nltest.exe\", \"odbcconf.exe\",\n \"ping.exe\", \"powershell.exe\", \"pwsh.exe\", \"qprocess.exe\", \"quser.exe\", \"qwinsta.exe\", \"rcsi.exe\", \"reg.exe\", \"regasm.exe\",\n \"regsvcs.exe\", \"regsvr32.exe\", \"sc.exe\", \"schtasks.exe\", \"systeminfo.exe\", \"tasklist.exe\", \"tracert.exe\", \"whoami.exe\",\n \"wmic.exe\", \"wscript.exe\", \"xwizard.exe\", \"explorer.exe\", \"rundll32.exe\", \"hh.exe\", \"msdt.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious MS Office Child Process v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious child processes of frequently targeted Microsoft Office applications (Word, PowerPoint, Excel). These child processes are often launched during exploitation of Office applications or from documents with malicious macros.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious MS Office Child Process\n\nMicrosoft Office (MS Office) is a suite of applications designed to help with productivity and completing common tasks on a computer.\nYou can create and edit documents containing text and images, work with data in spreadsheets and databases, and create\npresentations and posters. As it is some of the most-used software across companies, MS Office is frequently targeted\nfor initial access. It also has a wide variety of capabilities that attackers can take advantage of.\n\nThis rule looks for suspicious processes spawned by MS Office programs. This is generally the result of the execution of\nmalicious documents.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve MS Office documents received and opened by the user that could cause this behavior. Common locations include,\nbut are not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/blog/vulnerability-summary-follina"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"eqnedt32.exe\", \"excel.exe\", \"fltldr.exe\", \"msaccess.exe\", \"mspub.exe\", \"powerpnt.exe\", \"winword.exe\", \"outlook.exe\") and\n process.name : (\"Microsoft.Workflow.Compiler.exe\", \"arp.exe\", \"atbroker.exe\", \"bginfo.exe\", \"bitsadmin.exe\", \"cdb.exe\", \"certutil.exe\",\n \"cmd.exe\", \"cmstp.exe\", \"control.exe\", \"cscript.exe\", \"csi.exe\", \"dnx.exe\", \"dsget.exe\", \"dsquery.exe\", \"forfiles.exe\",\n \"fsi.exe\", \"ftp.exe\", \"gpresult.exe\", \"hostname.exe\", \"ieexec.exe\", \"iexpress.exe\", \"installutil.exe\", \"ipconfig.exe\",\n \"mshta.exe\", \"msxsl.exe\", \"nbtstat.exe\", \"net.exe\", \"net1.exe\", \"netsh.exe\", \"netstat.exe\", \"nltest.exe\", \"odbcconf.exe\",\n \"ping.exe\", \"powershell.exe\", \"pwsh.exe\", \"qprocess.exe\", \"quser.exe\", \"qwinsta.exe\", \"rcsi.exe\", \"reg.exe\", \"regasm.exe\",\n \"regsvcs.exe\", \"regsvr32.exe\", \"sc.exe\", \"schtasks.exe\", \"systeminfo.exe\", \"tasklist.exe\", \"tracert.exe\", \"whoami.exe\",\n \"wmic.exe\", \"wscript.exe\", \"xwizard.exe\", \"explorer.exe\", \"rundll32.exe\", \"hh.exe\", \"msdt.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious MS Office Child Process v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious child processes of frequently targeted Microsoft Office applications (Word, PowerPoint, Excel). These child processes are often launched during exploitation of Office applications or from documents with malicious macros.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious MS Office Child Process\n\nMicrosoft Office (MS Office) is a suite of applications designed to help with productivity and completing common tasks on a computer.\nYou can create and edit documents containing text and images, work with data in spreadsheets and databases, and create\npresentations and posters. As it is some of the most-used software across companies, MS Office is frequently targeted\nfor initial access. It also has a wide variety of capabilities that attackers can take advantage of.\n\nThis rule looks for suspicious processes spawned by MS Office programs. This is generally the result of the execution of\nmalicious documents.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve MS Office documents received and opened by the user that could cause this behavior. Common locations include,\nbut are not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/blog/vulnerability-summary-follina"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"eqnedt32.exe\", \"excel.exe\", \"fltldr.exe\", \"msaccess.exe\", \"mspub.exe\", \"powerpnt.exe\", \"winword.exe\", \"outlook.exe\") and\n process.name : (\"Microsoft.Workflow.Compiler.exe\", \"arp.exe\", \"atbroker.exe\", \"bginfo.exe\", \"bitsadmin.exe\", \"cdb.exe\", \"certutil.exe\",\n \"cmd.exe\", \"cmstp.exe\", \"control.exe\", \"cscript.exe\", \"csi.exe\", \"dnx.exe\", \"dsget.exe\", \"dsquery.exe\", \"forfiles.exe\",\n \"fsi.exe\", \"ftp.exe\", \"gpresult.exe\", \"hostname.exe\", \"ieexec.exe\", \"iexpress.exe\", \"installutil.exe\", \"ipconfig.exe\",\n \"mshta.exe\", \"msxsl.exe\", \"nbtstat.exe\", \"net.exe\", \"net1.exe\", \"netsh.exe\", \"netstat.exe\", \"nltest.exe\", \"odbcconf.exe\",\n \"ping.exe\", \"powershell.exe\", \"pwsh.exe\", \"qprocess.exe\", \"quser.exe\", \"qwinsta.exe\", \"rcsi.exe\", \"reg.exe\", \"regasm.exe\",\n \"regsvcs.exe\", \"regsvr32.exe\", \"sc.exe\", \"schtasks.exe\", \"systeminfo.exe\", \"tasklist.exe\", \"tracert.exe\", \"whoami.exe\",\n \"wmic.exe\", \"wscript.exe\", \"xwizard.exe\", \"explorer.exe\", \"rundll32.exe\", \"hh.exe\", \"msdt.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"a624863f-a70d-417f-a7d2-7a404638d47f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/a6bf4dd4-743e-4da8-8c03-3ebd753a6c90.json b/fleet-packages/detection-rules-composite/kibana/security_rule/a6bf4dd4-743e-4da8-8c03-3ebd753a6c90.json new file mode 100644 index 0000000000000..492f6c0e59fcc --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/a6bf4dd4-743e-4da8-8c03-3ebd753a6c90.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"a6bf4dd4-743e-4da8-8c03-3ebd753a6c90","versions":[{"name":"Emond Rules Creation or Modification v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of the Event Monitor Daemon (emond) rules. Adversaries may abuse this service by writing a rule to execute commands when a defined event occurs, such as system start up or user authentication.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.xorrior.com/emond-persistence/","https://www.sentinelone.com/blog/how-malware-persists-on-macos/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.014","name":"Emond","reference":"https://attack.mitre.org/techniques/T1546/014/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path : (\"/private/etc/emond.d/rules/*.plist\", \"/etc/emon.d/rules/*.plist\", \"/private/var/db/emondClients/*\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Emond Rules Creation or Modification v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of the Event Monitor Daemon (emond) rules. Adversaries may abuse this service by writing a rule to execute commands when a defined event occurs, such as system start up or user authentication.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.xorrior.com/emond-persistence/","https://www.sentinelone.com/blog/how-malware-persists-on-macos/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.014","name":"Emond","reference":"https://attack.mitre.org/techniques/T1546/014/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path : (\"/private/etc/emond.d/rules/*.plist\", \"/etc/emon.d/rules/*.plist\", \"/private/var/db/emondClients/*\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Emond Rules Creation or Modification v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of the Event Monitor Daemon (emond) rules. Adversaries may abuse this service by writing a rule to execute commands when a defined event occurs, such as system start up or user authentication.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.xorrior.com/emond-persistence/","https://www.sentinelone.com/blog/how-malware-persists-on-macos/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.014","name":"Emond","reference":"https://attack.mitre.org/techniques/T1546/014/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path : (\"/private/etc/emond.d/rules/*.plist\", \"/etc/emon.d/rules/*.plist\", \"/private/var/db/emondClients/*\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"a6bf4dd4-743e-4da8-8c03-3ebd753a6c90","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/a7ccae7b-9d2c-44b2-a061-98e5946971fa.json b/fleet-packages/detection-rules-composite/kibana/security_rule/a7ccae7b-9d2c-44b2-a061-98e5946971fa.json new file mode 100644 index 0000000000000..d0c90a3142517 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/a7ccae7b-9d2c-44b2-a061-98e5946971fa.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"a7ccae7b-9d2c-44b2-a061-98e5946971fa","versions":[{"name":"Suspicious Print Spooler SPL File Created v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to exploit privilege escalation vulnerabilities related to the Print Spooler service including CVE-2020-1048 and CVE-2020-1337.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Print Spooler SPL File Created\n\nPrint Spooler is a Windows service enabled by default in all Windows clients and servers. The service manages print jobs\nby loading printer drivers, receiving files to be printed, queuing them, scheduling, etc.\n\nThe Print Spooler service has some known vulnerabilities that attackers can abuse to escalate privileges to SYSTEM, like\nCVE-2020-1048 and CVE-2020-1337. This rule looks for unusual processes writing SPL files to the location\n`?:\\Windows\\System32\\spool\\PRINTERS\\`, which is an essential step in exploiting these vulnerabilities.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination\nof process executable and file conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Ensure that the machine has the latest security updates and is not running legacy Windows versions.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://safebreach.com/Post/How-we-bypassed-CVE-2020-1048-Patch-and-got-CVE-2020-1337"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.extension : \"spl\" and\n file.path : \"?:\\\\Windows\\\\System32\\\\spool\\\\PRINTERS\\\\*\" and\n not process.name : (\"spoolsv.exe\",\n \"printfilterpipelinesvc.exe\",\n \"PrintIsolationHost.exe\",\n \"splwow64.exe\",\n \"msiexec.exe\",\n \"poqexec.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious Print Spooler SPL File Created v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to exploit privilege escalation vulnerabilities related to the Print Spooler service including CVE-2020-1048 and CVE-2020-1337.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Print Spooler SPL File Created\n\nPrint Spooler is a Windows service enabled by default in all Windows clients and servers. The service manages print jobs\nby loading printer drivers, receiving files to be printed, queuing them, scheduling, etc.\n\nThe Print Spooler service has some known vulnerabilities that attackers can abuse to escalate privileges to SYSTEM, like\nCVE-2020-1048 and CVE-2020-1337. This rule looks for unusual processes writing SPL files to the location\n`?:\\Windows\\System32\\spool\\PRINTERS\\`, which is an essential step in exploiting these vulnerabilities.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination\nof process executable and file conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Ensure that the machine has the latest security updates and is not running legacy Windows versions.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://safebreach.com/Post/How-we-bypassed-CVE-2020-1048-Patch-and-got-CVE-2020-1337"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.extension : \"spl\" and\n file.path : \"?:\\\\Windows\\\\System32\\\\spool\\\\PRINTERS\\\\*\" and\n not process.name : (\"spoolsv.exe\",\n \"printfilterpipelinesvc.exe\",\n \"PrintIsolationHost.exe\",\n \"splwow64.exe\",\n \"msiexec.exe\",\n \"poqexec.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious Print Spooler SPL File Created v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to exploit privilege escalation vulnerabilities related to the Print Spooler service including CVE-2020-1048 and CVE-2020-1337.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Print Spooler SPL File Created\n\nPrint Spooler is a Windows service enabled by default in all Windows clients and servers. The service manages print jobs\nby loading printer drivers, receiving files to be printed, queuing them, scheduling, etc.\n\nThe Print Spooler service has some known vulnerabilities that attackers can abuse to escalate privileges to SYSTEM, like\nCVE-2020-1048 and CVE-2020-1337. This rule looks for unusual processes writing SPL files to the location\n`?:\\Windows\\System32\\spool\\PRINTERS\\`, which is an essential step in exploiting these vulnerabilities.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination\nof process executable and file conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Ensure that the machine has the latest security updates and is not running legacy Windows versions.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://safebreach.com/Post/How-we-bypassed-CVE-2020-1048-Patch-and-got-CVE-2020-1337"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.extension : \"spl\" and\n file.path : \"?:\\\\Windows\\\\System32\\\\spool\\\\PRINTERS\\\\*\" and\n not process.name : (\"spoolsv.exe\",\n \"printfilterpipelinesvc.exe\",\n \"PrintIsolationHost.exe\",\n \"splwow64.exe\",\n \"msiexec.exe\",\n \"poqexec.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"a7ccae7b-9d2c-44b2-a061-98e5946971fa","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/a7e7bfa3-088e-4f13-b29e-3986e0e756b8.json b/fleet-packages/detection-rules-composite/kibana/security_rule/a7e7bfa3-088e-4f13-b29e-3986e0e756b8.json new file mode 100644 index 0000000000000..06f8d23f7f698 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/a7e7bfa3-088e-4f13-b29e-3986e0e756b8.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"a7e7bfa3-088e-4f13-b29e-3986e0e756b8","versions":[{"name":"Credential Acquisition via Registry Hive Dumping v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to export a registry hive which may contain credentials using the Windows reg.exe tool.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Credential Acquisition via Registry Hive Dumping\n\nDumping registry hives is a common way to access credential information as some hives store credential material.\n\nFor example, the SAM hive stores locally cached credentials (SAM Secrets), and the SECURITY hive stores domain cached\ncredentials (LSA secrets).\n\nDumping these hives in combination with the SYSTEM hive enables the attacker to decrypt these secrets.\n\nThis rule identifies the usage of `reg.exe` to dump SECURITY and/or SAM hives, which potentially indicates the\ncompromise of the credentials stored in the host.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate if the credential material was exfiltrated or processed locally by other tools.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (e.g., 4624) to the target\nhost.\n\n### False positive analysis\n\n- Administrators can export registry hives for backup purposes using command line tools like `reg.exe`. Check whether\nthe user is legitamitely performing this kind of activity.\n\n### Related rules\n\n- Registry Hive File Creation via SMB - a4c7473a-5cb4-4bc1-9d06-e4a75adbc494\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system and restore compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://medium.com/threatpunter/detecting-attempts-to-steal-passwords-from-the-registry-7512674487f8","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.002","name":"Security Account Manager","reference":"https://attack.mitre.org/techniques/T1003/002/"},{"id":"T1003.004","name":"LSA Secrets","reference":"https://attack.mitre.org/techniques/T1003/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name == \"reg.exe\" and\n process.args : (\"save\", \"export\") and\n process.args : (\"hklm\\\\sam\", \"hklm\\\\security\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Credential Acquisition via Registry Hive Dumping v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to export a registry hive which may contain credentials using the Windows reg.exe tool.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Credential Acquisition via Registry Hive Dumping\n\nDumping registry hives is a common way to access credential information as some hives store credential material.\n\nFor example, the SAM hive stores locally cached credentials (SAM Secrets), and the SECURITY hive stores domain cached\ncredentials (LSA secrets).\n\nDumping these hives in combination with the SYSTEM hive enables the attacker to decrypt these secrets.\n\nThis rule identifies the usage of `reg.exe` to dump SECURITY and/or SAM hives, which potentially indicates the\ncompromise of the credentials stored in the host.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate if the credential material was exfiltrated or processed locally by other tools.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (e.g., 4624) to the target\nhost.\n\n### False positive analysis\n\n- Administrators can export registry hives for backup purposes using command line tools like `reg.exe`. Check whether\nthe user is legitamitely performing this kind of activity.\n\n### Related rules\n\n- Registry Hive File Creation via SMB - a4c7473a-5cb4-4bc1-9d06-e4a75adbc494\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system and restore compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://medium.com/threatpunter/detecting-attempts-to-steal-passwords-from-the-registry-7512674487f8","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.002","name":"Security Account Manager","reference":"https://attack.mitre.org/techniques/T1003/002/"},{"id":"T1003.004","name":"LSA Secrets","reference":"https://attack.mitre.org/techniques/T1003/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name == \"reg.exe\" and\n process.args : (\"save\", \"export\") and\n process.args : (\"hklm\\\\sam\", \"hklm\\\\security\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Credential Acquisition via Registry Hive Dumping v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to export a registry hive which may contain credentials using the Windows reg.exe tool.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Credential Acquisition via Registry Hive Dumping\n\nDumping registry hives is a common way to access credential information as some hives store credential material.\n\nFor example, the SAM hive stores locally cached credentials (SAM Secrets), and the SECURITY hive stores domain cached\ncredentials (LSA secrets).\n\nDumping these hives in combination with the SYSTEM hive enables the attacker to decrypt these secrets.\n\nThis rule identifies the usage of `reg.exe` to dump SECURITY and/or SAM hives, which potentially indicates the\ncompromise of the credentials stored in the host.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate if the credential material was exfiltrated or processed locally by other tools.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (e.g., 4624) to the target\nhost.\n\n### False positive analysis\n\n- Administrators can export registry hives for backup purposes using command line tools like `reg.exe`. Check whether\nthe user is legitamitely performing this kind of activity.\n\n### Related rules\n\n- Registry Hive File Creation via SMB - a4c7473a-5cb4-4bc1-9d06-e4a75adbc494\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system and restore compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://medium.com/threatpunter/detecting-attempts-to-steal-passwords-from-the-registry-7512674487f8","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.002","name":"Security Account Manager","reference":"https://attack.mitre.org/techniques/T1003/002/"},{"id":"T1003.004","name":"LSA Secrets","reference":"https://attack.mitre.org/techniques/T1003/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name == \"reg.exe\" and\n process.args : (\"save\", \"export\") and\n process.args : (\"hklm\\\\sam\", \"hklm\\\\security\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"a7e7bfa3-088e-4f13-b29e-3986e0e756b8","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/a87a4e42-1d82-44bd-b0bf-d9b7f91fb89e.json b/fleet-packages/detection-rules-composite/kibana/security_rule/a87a4e42-1d82-44bd-b0bf-d9b7f91fb89e.json new file mode 100644 index 0000000000000..c48163424ece6 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/a87a4e42-1d82-44bd-b0bf-d9b7f91fb89e.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"a87a4e42-1d82-44bd-b0bf-d9b7f91fb89e","versions":[{"name":"Web Application Suspicious Activity: POST Request Declined v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A POST request to a web application returned a 403 response, which indicates the web application declined to process the request because the action requested was not allowed.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Security scans and tests may result in these errors. Misconfigured or buggy applications may produce large numbers of these errors. If the source is unexpected, the user unauthorized, or the request unusual, these may indicate suspicious or malicious activity."],"references":["https://en.wikipedia.org/wiki/HTTP_403"],"tags":["Elastic","APM"],"type":"query","index":["apm-*-transaction*","traces-apm*"],"language":"kuery","query":"http.response.status_code:403 and http.request.method:post\n","required_fields":[{"ecs":true,"name":"http.request.method","type":"keyword"},{"ecs":true,"name":"http.response.status_code","type":"long"}]},{"name":"Web Application Suspicious Activity: POST Request Declined v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A POST request to a web application returned a 403 response, which indicates the web application declined to process the request because the action requested was not allowed.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Security scans and tests may result in these errors. Misconfigured or buggy applications may produce large numbers of these errors. If the source is unexpected, the user unauthorized, or the request unusual, these may indicate suspicious or malicious activity."],"references":["https://en.wikipedia.org/wiki/HTTP_403"],"tags":["Elastic","APM"],"type":"query","index":["apm-*-transaction*","traces-apm*"],"language":"kuery","query":"http.response.status_code:403 and http.request.method:post\n","required_fields":[{"ecs":true,"name":"http.request.method","type":"keyword"},{"ecs":true,"name":"http.response.status_code","type":"long"}]},{"name":"Web Application Suspicious Activity: POST Request Declined v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A POST request to a web application returned a 403 response, which indicates the web application declined to process the request because the action requested was not allowed.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Security scans and tests may result in these errors. Misconfigured or buggy applications may produce large numbers of these errors. If the source is unexpected, the user unauthorized, or the request unusual, these may indicate suspicious or malicious activity."],"references":["https://en.wikipedia.org/wiki/HTTP_403"],"tags":["Elastic","APM"],"type":"query","index":["apm-*-transaction*","traces-apm*"],"language":"kuery","query":"http.response.status_code:403 and http.request.method:post\n","required_fields":[{"ecs":true,"name":"http.request.method","type":"keyword"},{"ecs":true,"name":"http.response.status_code","type":"long"}]}]},"id":"a87a4e42-1d82-44bd-b0bf-d9b7f91fb89e","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/a989fa1b-9a11-4dd8-a3e9-f0de9c6eb5f2.json b/fleet-packages/detection-rules-composite/kibana/security_rule/a989fa1b-9a11-4dd8-a3e9-f0de9c6eb5f2.json new file mode 100644 index 0000000000000..b0c587f5b28c7 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/a989fa1b-9a11-4dd8-a3e9-f0de9c6eb5f2.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"a989fa1b-9a11-4dd8-a3e9-f0de9c6eb5f2","versions":[{"name":"Microsoft 365 Exchange Safe Link Policy Disabled v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Safe Link policy is disabled in Microsoft 365. Safe Link policies for Office applications extend phishing protection to documents that contain hyperlinks, even after they have been delivered to a user.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Disabling safe links may be done by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/disable-safelinksrule?view=exchange-ps","https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/atp-safe-links?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Disable-SafeLinksRule\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Exchange Safe Link Policy Disabled v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Safe Link policy is disabled in Microsoft 365. Safe Link policies for Office applications extend phishing protection to documents that contain hyperlinks, even after they have been delivered to a user.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Disabling safe links may be done by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/disable-safelinksrule?view=exchange-ps","https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/atp-safe-links?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Disable-SafeLinksRule\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Exchange Safe Link Policy Disabled v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Safe Link policy is disabled in Microsoft 365. Safe Link policies for Office applications extend phishing protection to documents that contain hyperlinks, even after they have been delivered to a user.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Disabling safe links may be done by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/disable-safelinksrule?view=exchange-ps","https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/atp-safe-links?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Disable-SafeLinksRule\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"a989fa1b-9a11-4dd8-a3e9-f0de9c6eb5f2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/a99f82f5-8e77-4f8b-b3ce-10c0f6afbc73.json b/fleet-packages/detection-rules-composite/kibana/security_rule/a99f82f5-8e77-4f8b-b3ce-10c0f6afbc73.json new file mode 100644 index 0000000000000..88746b5665bc5 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/a99f82f5-8e77-4f8b-b3ce-10c0f6afbc73.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"a99f82f5-8e77-4f8b-b3ce-10c0f6afbc73","versions":[{"name":"Google Workspace Password Policy Modified v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a Google Workspace password policy is modified. An adversary may attempt to modify a password policy in order to weaken an organization’s security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Password policies may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and\n event.action:(CHANGE_APPLICATION_SETTING or CREATE_APPLICATION_SETTING) and\n google_workspace.admin.setting.name:(\n \"Password Management - Enforce strong password\" or\n \"Password Management - Password reset frequency\" or\n \"Password Management - Enable password reuse\" or\n \"Password Management - Enforce password policy at next login\" or\n \"Password Management - Minimum password length\" or\n \"Password Management - Maximum password length\"\n )\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.setting.name","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Google Workspace Password Policy Modified v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a Google Workspace password policy is modified. An adversary may attempt to modify a password policy in order to weaken an organization’s security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Password policies may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and\n event.action:(CHANGE_APPLICATION_SETTING or CREATE_APPLICATION_SETTING) and\n google_workspace.admin.setting.name:(\n \"Password Management - Enforce strong password\" or\n \"Password Management - Password reset frequency\" or\n \"Password Management - Enable password reuse\" or\n \"Password Management - Enforce password policy at next login\" or\n \"Password Management - Minimum password length\" or\n \"Password Management - Maximum password length\"\n )\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.setting.name","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Google Workspace Password Policy Modified v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a Google Workspace password policy is modified. An adversary may attempt to modify a password policy in order to weaken an organization’s security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Password policies may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and\n event.action:(CHANGE_APPLICATION_SETTING or CREATE_APPLICATION_SETTING) and\n google_workspace.admin.setting.name:(\n \"Password Management - Enforce strong password\" or\n \"Password Management - Password reset frequency\" or\n \"Password Management - Enable password reuse\" or\n \"Password Management - Enforce password policy at next login\" or\n \"Password Management - Minimum password length\" or\n \"Password Management - Maximum password length\"\n )\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.setting.name","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"a99f82f5-8e77-4f8b-b3ce-10c0f6afbc73","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/a9b05c3b-b304-4bf9-970d-acdfaef2944c.json b/fleet-packages/detection-rules-composite/kibana/security_rule/a9b05c3b-b304-4bf9-970d-acdfaef2944c.json new file mode 100644 index 0000000000000..3700c7c3629e7 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/a9b05c3b-b304-4bf9-970d-acdfaef2944c.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"a9b05c3b-b304-4bf9-970d-acdfaef2944c","versions":[{"name":"Persistence via Hidden Run Key Detected v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a persistence mechanism that utilizes the NtSetValueKey native API to create a hidden (null terminated) registry key. An adversary may use this method to hide from system utilities such as the Registry Editor (regedit).","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/outflanknl/SharpHide","https://github.com/ewhitehats/InvisiblePersistence/blob/master/InvisibleRegValues_Whitepaper.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"/* Registry Path ends with backslash */\nregistry where /* length(registry.data.strings) > 0 and */\n registry.path : (\"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\\",\n \"HKU\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\\",\n \"HKLM\\\\Software\\\\WOW6432Node\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\\",\n \"HKU\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Persistence via Hidden Run Key Detected v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a persistence mechanism that utilizes the NtSetValueKey native API to create a hidden (null terminated) registry key. An adversary may use this method to hide from system utilities such as the Registry Editor (regedit).","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/outflanknl/SharpHide","https://github.com/ewhitehats/InvisiblePersistence/blob/master/InvisibleRegValues_Whitepaper.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"/* Registry Path ends with backslash */\nregistry where /* length(registry.data.strings) > 0 and */\n registry.path : (\"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\\",\n \"HKU\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\\",\n \"HKLM\\\\Software\\\\WOW6432Node\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\\",\n \"HKU\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Persistence via Hidden Run Key Detected v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a persistence mechanism that utilizes the NtSetValueKey native API to create a hidden (null terminated) registry key. An adversary may use this method to hide from system utilities such as the Registry Editor (regedit).","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/outflanknl/SharpHide","https://github.com/ewhitehats/InvisiblePersistence/blob/master/InvisibleRegValues_Whitepaper.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"/* Registry Path ends with backslash */\nregistry where /* length(registry.data.strings) > 0 and */\n registry.path : (\"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\\",\n \"HKU\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\\",\n \"HKLM\\\\Software\\\\WOW6432Node\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\\",\n \"HKU\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"a9b05c3b-b304-4bf9-970d-acdfaef2944c","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/a9cb3641-ff4b-4cdc-a063-b4b8d02a67c7.json b/fleet-packages/detection-rules-composite/kibana/security_rule/a9cb3641-ff4b-4cdc-a063-b4b8d02a67c7.json new file mode 100644 index 0000000000000..6a899233d5bfc --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/a9cb3641-ff4b-4cdc-a063-b4b8d02a67c7.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"a9cb3641-ff4b-4cdc-a063-b4b8d02a67c7","versions":[{"name":"IPSEC NAT Traversal Port Activity v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects events that could be describing IPSEC NAT Traversal traffic. IPSEC is a VPN technology that allows one system to talk to another using encrypted tunnels. NAT Traversal enables these tunnels to communicate over the Internet where one of the sides is behind a NAT router gateway. This may be common on your network, but this technique is also used by threat actors to avoid detection.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some networks may utilize these protocols but usage that is unfamiliar to local network administrators can be unexpected and suspicious. Because this port is in the ephemeral range, this rule may false under certain conditions, such as when an application server with a public IP address replies to a client which has used a UDP port in the range by coincidence. This is uncommon but such servers can be excluded."],"from":"now-9m","tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:udp and destination.port:4500\n","required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"}]},{"name":"IPSEC NAT Traversal Port Activity v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects events that could be describing IPSEC NAT Traversal traffic. IPSEC is a VPN technology that allows one system to talk to another using encrypted tunnels. NAT Traversal enables these tunnels to communicate over the Internet where one of the sides is behind a NAT router gateway. This may be common on your network, but this technique is also used by threat actors to avoid detection.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some networks may utilize these protocols but usage that is unfamiliar to local network administrators can be unexpected and suspicious. Because this port is in the ephemeral range, this rule may false under certain conditions, such as when an application server with a public IP address replies to a client which has used a UDP port in the range by coincidence. This is uncommon but such servers can be excluded."],"from":"now-9m","tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:udp and destination.port:4500\n","required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"}]},{"name":"IPSEC NAT Traversal Port Activity v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects events that could be describing IPSEC NAT Traversal traffic. IPSEC is a VPN technology that allows one system to talk to another using encrypted tunnels. NAT Traversal enables these tunnels to communicate over the Internet where one of the sides is behind a NAT router gateway. This may be common on your network, but this technique is also used by threat actors to avoid detection.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some networks may utilize these protocols but usage that is unfamiliar to local network administrators can be unexpected and suspicious. Because this port is in the ephemeral range, this rule may false under certain conditions, such as when an application server with a public IP address replies to a client which has used a UDP port in the range by coincidence. This is uncommon but such servers can be excluded."],"from":"now-9m","tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:udp and destination.port:4500\n","required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"}]}]},"id":"a9cb3641-ff4b-4cdc-a063-b4b8d02a67c7","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/aa8007f0-d1df-49ef-8520-407857594827.json b/fleet-packages/detection-rules-composite/kibana/security_rule/aa8007f0-d1df-49ef-8520-407857594827.json new file mode 100644 index 0000000000000..748a434c5341d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/aa8007f0-d1df-49ef-8520-407857594827.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"aa8007f0-d1df-49ef-8520-407857594827","versions":[{"name":"GCP IAM Custom Role Creation v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an Identity and Access Management (IAM) custom role creation in Google Cloud Platform (GCP). Custom roles are user-defined, and allow for the bundling of one or more supported permissions to meet specific needs. Custom roles will not be updated automatically and could lead to privilege creep if not carefully scrutinized.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Custom role creations may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Role creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/iam/docs/understanding-custom-roles"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.CreateRole and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP IAM Custom Role Creation v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an Identity and Access Management (IAM) custom role creation in Google Cloud Platform (GCP). Custom roles are user-defined, and allow for the bundling of one or more supported permissions to meet specific needs. Custom roles will not be updated automatically and could lead to privilege creep if not carefully scrutinized.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Custom role creations may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Role creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/iam/docs/understanding-custom-roles"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.CreateRole and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP IAM Custom Role Creation v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an Identity and Access Management (IAM) custom role creation in Google Cloud Platform (GCP). Custom roles are user-defined, and allow for the bundling of one or more supported permissions to meet specific needs. Custom roles will not be updated automatically and could lead to privilege creep if not carefully scrutinized.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Custom role creations may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Role creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/iam/docs/understanding-custom-roles"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.CreateRole and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"aa8007f0-d1df-49ef-8520-407857594827","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/aa895aea-b69c-4411-b110-8d7599634b30.json b/fleet-packages/detection-rules-composite/kibana/security_rule/aa895aea-b69c-4411-b110-8d7599634b30.json new file mode 100644 index 0000000000000..f72caa09dd91f --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/aa895aea-b69c-4411-b110-8d7599634b30.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"aa895aea-b69c-4411-b110-8d7599634b30","versions":[{"name":"System Log File Deletion v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of sensitive Linux system logs. This may indicate an attempt to evade detection or destroy forensic evidence on a system.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2020/11/live-off-the-land-an-overview-of-unc1945.html"],"tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.002","name":"Clear Linux or Mac System Logs","reference":"https://attack.mitre.org/techniques/T1070/002/"}]}]}],"language":"eql","query":"file where event.type == \"deletion\" and\n file.path :\n (\n \"/var/run/utmp\",\n \"/var/log/wtmp\",\n \"/var/log/btmp\",\n \"/var/log/lastlog\",\n \"/var/log/faillog\",\n \"/var/log/syslog\",\n \"/var/log/messages\",\n \"/var/log/secure\",\n \"/var/log/auth.log\",\n \"/var/log/boot.log\",\n \"/var/log/kern.log\"\n ) and\n not process.name : (\"gzip\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"System Log File Deletion v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of sensitive Linux system logs. This may indicate an attempt to evade detection or destroy forensic evidence on a system.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2020/11/live-off-the-land-an-overview-of-unc1945.html"],"tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.002","name":"Clear Linux or Mac System Logs","reference":"https://attack.mitre.org/techniques/T1070/002/"}]}]}],"language":"eql","query":"file where event.type == \"deletion\" and\n file.path :\n (\n \"/var/run/utmp\",\n \"/var/log/wtmp\",\n \"/var/log/btmp\",\n \"/var/log/lastlog\",\n \"/var/log/faillog\",\n \"/var/log/syslog\",\n \"/var/log/messages\",\n \"/var/log/secure\",\n \"/var/log/auth.log\",\n \"/var/log/boot.log\",\n \"/var/log/kern.log\"\n ) and\n not process.name : (\"gzip\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"System Log File Deletion v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of sensitive Linux system logs. This may indicate an attempt to evade detection or destroy forensic evidence on a system.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2020/11/live-off-the-land-an-overview-of-unc1945.html"],"tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.002","name":"Clear Linux or Mac System Logs","reference":"https://attack.mitre.org/techniques/T1070/002/"}]}]}],"language":"eql","query":"file where event.type == \"deletion\" and\n file.path :\n (\n \"/var/run/utmp\",\n \"/var/log/wtmp\",\n \"/var/log/btmp\",\n \"/var/log/lastlog\",\n \"/var/log/faillog\",\n \"/var/log/syslog\",\n \"/var/log/messages\",\n \"/var/log/secure\",\n \"/var/log/auth.log\",\n \"/var/log/boot.log\",\n \"/var/log/kern.log\"\n ) and\n not process.name : (\"gzip\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"aa895aea-b69c-4411-b110-8d7599634b30","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/aa9a274d-6b53-424d-ac5e-cb8ca4251650.json b/fleet-packages/detection-rules-composite/kibana/security_rule/aa9a274d-6b53-424d-ac5e-cb8ca4251650.json new file mode 100644 index 0000000000000..32f1bf24262b8 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/aa9a274d-6b53-424d-ac5e-cb8ca4251650.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"aa9a274d-6b53-424d-ac5e-cb8ca4251650","versions":[{"name":"Remotely Started Services via RPC v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote execution of Windows services over remote procedure call (RPC). This could be indicative of lateral movement, but will be noisy if commonly done by administrators.\"","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remotely Started Services via RPC\n\nThe Service Control Manager Remote Protocol is a client/server protocol used for configuring and controlling service\nprograms running on a remote computer. A remote service management session begins with the client initiating the\nconnection request to the server. If the server grants the request, the connection is established. The client can then\nmake multiple requests to modify, query the configuration, or start and stop services on the server by using the same\nsession until the session is terminated.\n\nThis rule detects the remote creation or start of a service by correlating a `services.exe` network connection and the\nspawn of a child process.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Review login events (e.g., 4624) in the alert timeframe to identify the account used to perform this action. Use the\n`source.address` field to help identify the source system.\n- Review network events from the source system using the source port identified on the alert and try to identify the\nprogram used to initiate the action.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Validate if the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- Remote management software like SCCM may trigger this rule. If noisy on your environment, consider adding exceptions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-scmr/705b624a-13de-43cc-b8a2-99573da3635f"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence with maxspan=1s\n [network where process.name : \"services.exe\" and\n network.direction : (\"incoming\", \"ingress\") and network.transport == \"tcp\" and\n source.port >= 49152 and destination.port >= 49152 and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ] by host.id, process.entity_id\n\n [process where event.type == \"start\" and process.parent.name : \"services.exe\" and \n not (process.name : \"svchost.exe\" and process.args : \"tiledatamodelsvc\") and\n not (process.name : \"msiexec.exe\" and process.args : \"/V\") and\n not process.executable :\n (\"?:\\\\Windows\\\\ADCR_Agent\\\\adcrsvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\VSSVC.exe\",\n \"?:\\\\Windows\\\\servicing\\\\TrustedInstaller.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Windows\\\\PSEXESVC.EXE\",\n \"?:\\\\Windows\\\\System32\\\\sppsvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\wbem\\\\WmiApSrv.exe\",\n \"?:\\\\WINDOWS\\\\RemoteAuditService.exe\",\n \"?:\\\\Windows\\\\VeeamVssSupport\\\\VeeamGuestHelper.exe\",\n \"?:\\\\Windows\\\\VeeamLogShipper\\\\VeeamLogShipper.exe\",\n \"?:\\\\Windows\\\\CAInvokerService.exe\",\n \"?:\\\\Windows\\\\System32\\\\upfc.exe\",\n \"?:\\\\Windows\\\\AdminArsenal\\\\PDQ*.exe\",\n \"?:\\\\Windows\\\\System32\\\\vds.exe\",\n \"?:\\\\Windows\\\\Veeam\\\\Backup\\\\VeeamDeploymentSvc.exe\",\n \"?:\\\\Windows\\\\ProPatches\\\\Scheduler\\\\STSchedEx.exe\",\n \"?:\\\\Windows\\\\System32\\\\certsrv.exe\",\n \"?:\\\\Windows\\\\eset-remote-install-service.exe\",\n \"?:\\\\Pella Corporation\\\\Pella Order Management\\\\GPAutoSvc.exe\",\n \"?:\\\\Pella Corporation\\\\OSCToGPAutoService\\\\OSCToGPAutoSvc.exe\",\n \"?:\\\\Pella Corporation\\\\Pella Order Management\\\\GPAutoSvc.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\NwxExeSvc\\\\NwxExeSvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\taskhostex.exe\")\n ] by host.id, process.parent.entity_id\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]},{"name":"Remotely Started Services via RPC v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote execution of Windows services over remote procedure call (RPC). This could be indicative of lateral movement, but will be noisy if commonly done by administrators.\"","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remotely Started Services via RPC\n\nThe Service Control Manager Remote Protocol is a client/server protocol used for configuring and controlling service\nprograms running on a remote computer. A remote service management session begins with the client initiating the\nconnection request to the server. If the server grants the request, the connection is established. The client can then\nmake multiple requests to modify, query the configuration, or start and stop services on the server by using the same\nsession until the session is terminated.\n\nThis rule detects the remote creation or start of a service by correlating a `services.exe` network connection and the\nspawn of a child process.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Review login events (e.g., 4624) in the alert timeframe to identify the account used to perform this action. Use the\n`source.address` field to help identify the source system.\n- Review network events from the source system using the source port identified on the alert and try to identify the\nprogram used to initiate the action.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Validate if the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- Remote management software like SCCM may trigger this rule. If noisy on your environment, consider adding exceptions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-scmr/705b624a-13de-43cc-b8a2-99573da3635f"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence with maxspan=1s\n [network where process.name : \"services.exe\" and\n network.direction : (\"incoming\", \"ingress\") and network.transport == \"tcp\" and\n source.port >= 49152 and destination.port >= 49152 and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ] by host.id, process.entity_id\n\n [process where event.type == \"start\" and process.parent.name : \"services.exe\" and \n not (process.name : \"svchost.exe\" and process.args : \"tiledatamodelsvc\") and\n not (process.name : \"msiexec.exe\" and process.args : \"/V\") and\n not process.executable :\n (\"?:\\\\Windows\\\\ADCR_Agent\\\\adcrsvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\VSSVC.exe\",\n \"?:\\\\Windows\\\\servicing\\\\TrustedInstaller.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Windows\\\\PSEXESVC.EXE\",\n \"?:\\\\Windows\\\\System32\\\\sppsvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\wbem\\\\WmiApSrv.exe\",\n \"?:\\\\WINDOWS\\\\RemoteAuditService.exe\",\n \"?:\\\\Windows\\\\VeeamVssSupport\\\\VeeamGuestHelper.exe\",\n \"?:\\\\Windows\\\\VeeamLogShipper\\\\VeeamLogShipper.exe\",\n \"?:\\\\Windows\\\\CAInvokerService.exe\",\n \"?:\\\\Windows\\\\System32\\\\upfc.exe\",\n \"?:\\\\Windows\\\\AdminArsenal\\\\PDQ*.exe\",\n \"?:\\\\Windows\\\\System32\\\\vds.exe\",\n \"?:\\\\Windows\\\\Veeam\\\\Backup\\\\VeeamDeploymentSvc.exe\",\n \"?:\\\\Windows\\\\ProPatches\\\\Scheduler\\\\STSchedEx.exe\",\n \"?:\\\\Windows\\\\System32\\\\certsrv.exe\",\n \"?:\\\\Windows\\\\eset-remote-install-service.exe\",\n \"?:\\\\Pella Corporation\\\\Pella Order Management\\\\GPAutoSvc.exe\",\n \"?:\\\\Pella Corporation\\\\OSCToGPAutoService\\\\OSCToGPAutoSvc.exe\",\n \"?:\\\\Pella Corporation\\\\Pella Order Management\\\\GPAutoSvc.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\NwxExeSvc\\\\NwxExeSvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\taskhostex.exe\")\n ] by host.id, process.parent.entity_id\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]},{"name":"Remotely Started Services via RPC v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote execution of Windows services over remote procedure call (RPC). This could be indicative of lateral movement, but will be noisy if commonly done by administrators.\"","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remotely Started Services via RPC\n\nThe Service Control Manager Remote Protocol is a client/server protocol used for configuring and controlling service\nprograms running on a remote computer. A remote service management session begins with the client initiating the\nconnection request to the server. If the server grants the request, the connection is established. The client can then\nmake multiple requests to modify, query the configuration, or start and stop services on the server by using the same\nsession until the session is terminated.\n\nThis rule detects the remote creation or start of a service by correlating a `services.exe` network connection and the\nspawn of a child process.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Review login events (e.g., 4624) in the alert timeframe to identify the account used to perform this action. Use the\n`source.address` field to help identify the source system.\n- Review network events from the source system using the source port identified on the alert and try to identify the\nprogram used to initiate the action.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Validate if the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- Remote management software like SCCM may trigger this rule. If noisy on your environment, consider adding exceptions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-scmr/705b624a-13de-43cc-b8a2-99573da3635f"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence with maxspan=1s\n [network where process.name : \"services.exe\" and\n network.direction : (\"incoming\", \"ingress\") and network.transport == \"tcp\" and\n source.port >= 49152 and destination.port >= 49152 and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ] by host.id, process.entity_id\n\n [process where event.type == \"start\" and process.parent.name : \"services.exe\" and \n not (process.name : \"svchost.exe\" and process.args : \"tiledatamodelsvc\") and\n not (process.name : \"msiexec.exe\" and process.args : \"/V\") and\n not process.executable :\n (\"?:\\\\Windows\\\\ADCR_Agent\\\\adcrsvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\VSSVC.exe\",\n \"?:\\\\Windows\\\\servicing\\\\TrustedInstaller.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Windows\\\\PSEXESVC.EXE\",\n \"?:\\\\Windows\\\\System32\\\\sppsvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\wbem\\\\WmiApSrv.exe\",\n \"?:\\\\WINDOWS\\\\RemoteAuditService.exe\",\n \"?:\\\\Windows\\\\VeeamVssSupport\\\\VeeamGuestHelper.exe\",\n \"?:\\\\Windows\\\\VeeamLogShipper\\\\VeeamLogShipper.exe\",\n \"?:\\\\Windows\\\\CAInvokerService.exe\",\n \"?:\\\\Windows\\\\System32\\\\upfc.exe\",\n \"?:\\\\Windows\\\\AdminArsenal\\\\PDQ*.exe\",\n \"?:\\\\Windows\\\\System32\\\\vds.exe\",\n \"?:\\\\Windows\\\\Veeam\\\\Backup\\\\VeeamDeploymentSvc.exe\",\n \"?:\\\\Windows\\\\ProPatches\\\\Scheduler\\\\STSchedEx.exe\",\n \"?:\\\\Windows\\\\System32\\\\certsrv.exe\",\n \"?:\\\\Windows\\\\eset-remote-install-service.exe\",\n \"?:\\\\Pella Corporation\\\\Pella Order Management\\\\GPAutoSvc.exe\",\n \"?:\\\\Pella Corporation\\\\OSCToGPAutoService\\\\OSCToGPAutoSvc.exe\",\n \"?:\\\\Pella Corporation\\\\Pella Order Management\\\\GPAutoSvc.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\NwxExeSvc\\\\NwxExeSvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\taskhostex.exe\")\n ] by host.id, process.parent.entity_id\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]}]},"id":"aa9a274d-6b53-424d-ac5e-cb8ca4251650","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/ab75c24b-2502-43a0-bf7c-e60e662c811e.json b/fleet-packages/detection-rules-composite/kibana/security_rule/ab75c24b-2502-43a0-bf7c-e60e662c811e.json new file mode 100644 index 0000000000000..02e3f5b47caae --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/ab75c24b-2502-43a0-bf7c-e60e662c811e.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"ab75c24b-2502-43a0-bf7c-e60e662c811e","versions":[{"name":"Remote Execution via File Shares v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a file that was created by the virtual system process. This may indicate lateral movement via network file shares.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote Execution via File Shares\n\nAdversaries can use network shares to host tooling to support the compromise of other hosts in the environment. These\ntools can include discovery utilities, credential dumpers, malware, etc.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Review adjacent login events (e.g., 4624) in the alert timeframe to identify the account used to perform this action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity can happen legitimately. Consider adding exceptions if it is expected and noisy in your environment.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Review the privileges needed to write to the network share and restrict write access as needed.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://blog.menasec.net/2020/08/new-trick-to-detect-lateral-movement.html"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"sequence with maxspan=1m\n [file where event.type in (\"creation\", \"change\") and process.pid == 4 and file.extension : \"exe\"] by host.id, file.path\n [process where event.type == \"start\"] by host.id, process.executable\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"}]},{"name":"Remote Execution via File Shares v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a file that was created by the virtual system process. This may indicate lateral movement via network file shares.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote Execution via File Shares\n\nAdversaries can use network shares to host tooling to support the compromise of other hosts in the environment. These\ntools can include discovery utilities, credential dumpers, malware, etc.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Review adjacent login events (e.g., 4624) in the alert timeframe to identify the account used to perform this action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity can happen legitimately. Consider adding exceptions if it is expected and noisy in your environment.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Review the privileges needed to write to the network share and restrict write access as needed.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://blog.menasec.net/2020/08/new-trick-to-detect-lateral-movement.html"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"sequence with maxspan=1m\n [file where event.type in (\"creation\", \"change\") and process.pid == 4 and file.extension : \"exe\"] by host.id, file.path\n [process where event.type == \"start\"] by host.id, process.executable\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"}]},{"name":"Remote Execution via File Shares v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a file that was created by the virtual system process. This may indicate lateral movement via network file shares.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote Execution via File Shares\n\nAdversaries can use network shares to host tooling to support the compromise of other hosts in the environment. These\ntools can include discovery utilities, credential dumpers, malware, etc.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Review adjacent login events (e.g., 4624) in the alert timeframe to identify the account used to perform this action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity can happen legitimately. Consider adding exceptions if it is expected and noisy in your environment.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Review the privileges needed to write to the network share and restrict write access as needed.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://blog.menasec.net/2020/08/new-trick-to-detect-lateral-movement.html"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"sequence with maxspan=1m\n [file where event.type in (\"creation\", \"change\") and process.pid == 4 and file.extension : \"exe\"] by host.id, file.path\n [process where event.type == \"start\"] by host.id, process.executable\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"}]}]},"id":"ab75c24b-2502-43a0-bf7c-e60e662c811e","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/abae61a8-c560-4dbd-acca-1e1438bff36b.json b/fleet-packages/detection-rules-composite/kibana/security_rule/abae61a8-c560-4dbd-acca-1e1438bff36b.json new file mode 100644 index 0000000000000..8c03ed75d1c6e --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/abae61a8-c560-4dbd-acca-1e1438bff36b.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"abae61a8-c560-4dbd-acca-1e1438bff36b","versions":[{"name":"Unusual Windows Process Calling the Metadata Service v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for anomalous access to the metadata service by an unusual process. The metadata service may be targeted in order to harvest credentials or user data scripts containing secrets.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program or one that runs very rarely as part of a monthly or quarterly workflow could trigger this detection rule."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Windows","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.005","name":"Cloud Instance Metadata API","reference":"https://attack.mitre.org/techniques/T1552/005/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_rare_metadata_process"],"type":"machine_learning"},{"name":"Unusual Windows Process Calling the Metadata Service v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for anomalous access to the metadata service by an unusual process. The metadata service may be targeted in order to harvest credentials or user data scripts containing secrets.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program or one that runs very rarely as part of a monthly or quarterly workflow could trigger this detection rule."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Windows","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.005","name":"Cloud Instance Metadata API","reference":"https://attack.mitre.org/techniques/T1552/005/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_rare_metadata_process"],"type":"machine_learning"},{"name":"Unusual Windows Process Calling the Metadata Service v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for anomalous access to the metadata service by an unusual process. The metadata service may be targeted in order to harvest credentials or user data scripts containing secrets.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program or one that runs very rarely as part of a monthly or quarterly workflow could trigger this detection rule."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Windows","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.005","name":"Cloud Instance Metadata API","reference":"https://attack.mitre.org/techniques/T1552/005/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_rare_metadata_process"],"type":"machine_learning"}]},"id":"abae61a8-c560-4dbd-acca-1e1438bff36b","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/ac412404-57a5-476f-858f-4e8fbb4f48d8.json b/fleet-packages/detection-rules-composite/kibana/security_rule/ac412404-57a5-476f-858f-4e8fbb4f48d8.json new file mode 100644 index 0000000000000..eb70d9e4bb8af --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/ac412404-57a5-476f-858f-4e8fbb4f48d8.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"ac412404-57a5-476f-858f-4e8fbb4f48d8","versions":[{"name":"Potential Persistence via Login Hook v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of the login window property list (plist). Adversaries may modify plist files to run a program during system boot or user login for persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\nStarting in Mac OS X 10.7 (Lion), users can specify certain applications to be re-opened when a user reboots their machine. This can be abused to establish or maintain persistence on a compromised system.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/D00MFist/PersistentJXA/blob/master/LoginScript.js"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1647","name":"Plist File Modification","reference":"https://attack.mitre.org/techniques/T1647/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:\"file\" and not event.type:\"deletion\" and\n file.name:\"com.apple.loginwindow.plist\" and\n process.name:(* and not (systemmigrationd or DesktopServicesHelper or diskmanagementd or rsync or launchd or cfprefsd or xpcproxy or ManagedClient or MCXCompositor or backupd or \"iMazing Profile Editor\"\n))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Potential Persistence via Login Hook v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of the login window property list (plist). Adversaries may modify plist files to run a program during system boot or user login for persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\nStarting in Mac OS X 10.7 (Lion), users can specify certain applications to be re-opened when a user reboots their machine. This can be abused to establish or maintain persistence on a compromised system.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/D00MFist/PersistentJXA/blob/master/LoginScript.js"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1647","name":"Plist File Modification","reference":"https://attack.mitre.org/techniques/T1647/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:\"file\" and not event.type:\"deletion\" and\n file.name:\"com.apple.loginwindow.plist\" and\n process.name:(* and not (systemmigrationd or DesktopServicesHelper or diskmanagementd or rsync or launchd or cfprefsd or xpcproxy or ManagedClient or MCXCompositor or backupd or \"iMazing Profile Editor\"\n))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Potential Persistence via Login Hook v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of the login window property list (plist). Adversaries may modify plist files to run a program during system boot or user login for persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\nStarting in Mac OS X 10.7 (Lion), users can specify certain applications to be re-opened when a user reboots their machine. This can be abused to establish or maintain persistence on a compromised system.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/D00MFist/PersistentJXA/blob/master/LoginScript.js"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1647","name":"Plist File Modification","reference":"https://attack.mitre.org/techniques/T1647/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:\"file\" and not event.type:\"deletion\" and\n file.name:\"com.apple.loginwindow.plist\" and\n process.name:(* and not (systemmigrationd or DesktopServicesHelper or diskmanagementd or rsync or launchd or cfprefsd or xpcproxy or ManagedClient or MCXCompositor or backupd or \"iMazing Profile Editor\"\n))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"ac412404-57a5-476f-858f-4e8fbb4f48d8","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/ac5012b8-8da8-440b-aaaf-aedafdea2dff.json b/fleet-packages/detection-rules-composite/kibana/security_rule/ac5012b8-8da8-440b-aaaf-aedafdea2dff.json new file mode 100644 index 0000000000000..61fa86a3fca63 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/ac5012b8-8da8-440b-aaaf-aedafdea2dff.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"ac5012b8-8da8-440b-aaaf-aedafdea2dff","versions":[{"name":"Suspicious WerFault Child Process v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A suspicious WerFault child process was detected, which may indicate an attempt to run unnoticed. Verify process details such as command line, network connections, file writes and parent process details as well.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Custom Windows error reporting debugger or applications restarted by WerFault after a crash."],"from":"now-9m","references":["https://www.hexacorn.com/blog/2019/09/19/silentprocessexit-quick-look-under-the-hood/","https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES/blob/master/Persistence/persistence_SilentProcessExit_ImageHijack_sysmon_13_1.evtx","https://blog.menasec.net/2021/01/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"WerFault.exe\" and\n not process.name : (\"cofire.exe\",\n \"psr.exe\",\n \"VsJITDebugger.exe\",\n \"TTTracer.exe\",\n \"rundll32.exe\",\n \"LogiOptionsMgr.exe\") and\n not process.args : (\"/LOADSAVEDWINDOWS\",\n \"/restore\",\n \"RestartByRestartManager*\",\n \"--restarted\",\n \"createdump\",\n \"dontsend\",\n \"/watson\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious WerFault Child Process v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A suspicious WerFault child process was detected, which may indicate an attempt to run unnoticed. Verify process details such as command line, network connections, file writes and parent process details as well.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Custom Windows error reporting debugger or applications restarted by WerFault after a crash."],"from":"now-9m","references":["https://www.hexacorn.com/blog/2019/09/19/silentprocessexit-quick-look-under-the-hood/","https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES/blob/master/Persistence/persistence_SilentProcessExit_ImageHijack_sysmon_13_1.evtx","https://blog.menasec.net/2021/01/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"WerFault.exe\" and\n not process.name : (\"cofire.exe\",\n \"psr.exe\",\n \"VsJITDebugger.exe\",\n \"TTTracer.exe\",\n \"rundll32.exe\",\n \"LogiOptionsMgr.exe\") and\n not process.args : (\"/LOADSAVEDWINDOWS\",\n \"/restore\",\n \"RestartByRestartManager*\",\n \"--restarted\",\n \"createdump\",\n \"dontsend\",\n \"/watson\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious WerFault Child Process v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A suspicious WerFault child process was detected, which may indicate an attempt to run unnoticed. Verify process details such as command line, network connections, file writes and parent process details as well.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Custom Windows error reporting debugger or applications restarted by WerFault after a crash."],"from":"now-9m","references":["https://www.hexacorn.com/blog/2019/09/19/silentprocessexit-quick-look-under-the-hood/","https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES/blob/master/Persistence/persistence_SilentProcessExit_ImageHijack_sysmon_13_1.evtx","https://blog.menasec.net/2021/01/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"WerFault.exe\" and\n not process.name : (\"cofire.exe\",\n \"psr.exe\",\n \"VsJITDebugger.exe\",\n \"TTTracer.exe\",\n \"rundll32.exe\",\n \"LogiOptionsMgr.exe\") and\n not process.args : (\"/LOADSAVEDWINDOWS\",\n \"/restore\",\n \"RestartByRestartManager*\",\n \"--restarted\",\n \"createdump\",\n \"dontsend\",\n \"/watson\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"ac5012b8-8da8-440b-aaaf-aedafdea2dff","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1.json b/fleet-packages/detection-rules-composite/kibana/security_rule/ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1.json new file mode 100644 index 0000000000000..fd344dde803fe --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1","versions":[{"name":"Unusual AWS Command for a User v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an AWS API command that, while not inherently suspicious or abnormal, is being made by a user context that does not normally use the command. This can be the result of compromised credentials or keys as someone uses a valid account to persist, move laterally, or exfiltrate data.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual AWS Command for a User\n\nCloudTrail logging provides visibility on actions taken within an AWS environment. By monitoring these events and\nunderstanding what is considered normal behavior within an organization, you can spot suspicious or malicious activity\nwhen deviations occur.\n\nThis rule uses a machine learning job to detect an AWS API command that while not inherently suspicious or abnormal, is\nbeing made by a user context that does not normally use the command. This can be the result of compromised credentials or\nkeys as someone uses a valid account to persist, move laterally, or exfiltrate data.\n\nDetection alerts from this rule indicate an AWS API command or method call that is rare and unusual for the calling IAM\nuser.\n\n#### Possible investigation steps\n\n- Identify the user account involved and the action performed. Verify whether it should perform this kind of action.\n - Examine the user identity in the `aws.cloudtrail.user_identity.arn` field and the access key ID in the\n `aws.cloudtrail.user_identity.access_key_id` field, which can help identify the precise user context.\n - The user agent details in the `user_agent.original` field may also indicate what kind of a client made the request.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, or network administrator activity.\n- Examine the request parameters. These might indicate the source of the program or the nature of its tasks.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Contact the account owner and confirm whether they are aware of this activity if suspicious.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- Examine the history of the command. If the command only manifested recently, it might be part of a new automation\nmodule or script. If it has a consistent cadence (for example, it appears in small numbers on a weekly or monthly cadence),\nit might be part of a housekeeping or maintenance process. You can find the command in the `event.action field` field.\n\n### Related Rules\n\n- Unusual City For an AWS Command - 809b70d3-e2c3-455e-af1b-2626a5a1a276\n- Unusual Country For an AWS Command - dca28dee-c999-400f-b640-50a081cc0fd1\n- Rare AWS Error Code - 19de8096-e2b0-4bd8-80c9-34a820813fff\n- Spike in AWS Error Messages - 78d3d8d9-b476-451d-a9e0-7a5addd70670\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"false_positives":["New or unusual user command activity can be due to manual troubleshooting or reconfiguration; changes in cloud automation scripts or workflows; adoption of new services; or changes in the way services are used."],"from":"now-2h","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Cloud","AWS","ML","Investigation Guide"],"anomaly_threshold":75,"machine_learning_job_id":"rare_method_for_a_username","type":"machine_learning","related_integrations":[],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Unusual AWS Command for a User v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an AWS API command that, while not inherently suspicious or abnormal, is being made by a user context that does not normally use the command. This can be the result of compromised credentials or keys as someone uses a valid account to persist, move laterally, or exfiltrate data.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual AWS Command for a User\n\nCloudTrail logging provides visibility on actions taken within an AWS environment. By monitoring these events and\nunderstanding what is considered normal behavior within an organization, you can spot suspicious or malicious activity\nwhen deviations occur.\n\nThis rule uses a machine learning job to detect an AWS API command that while not inherently suspicious or abnormal, is\nbeing made by a user context that does not normally use the command. This can be the result of compromised credentials or\nkeys as someone uses a valid account to persist, move laterally, or exfiltrate data.\n\nDetection alerts from this rule indicate an AWS API command or method call that is rare and unusual for the calling IAM\nuser.\n\n#### Possible investigation steps\n\n- Identify the user account involved and the action performed. Verify whether it should perform this kind of action.\n - Examine the user identity in the `aws.cloudtrail.user_identity.arn` field and the access key ID in the\n `aws.cloudtrail.user_identity.access_key_id` field, which can help identify the precise user context.\n - The user agent details in the `user_agent.original` field may also indicate what kind of a client made the request.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, or network administrator activity.\n- Examine the request parameters. These might indicate the source of the program or the nature of its tasks.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Contact the account owner and confirm whether they are aware of this activity if suspicious.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- Examine the history of the command. If the command only manifested recently, it might be part of a new automation\nmodule or script. If it has a consistent cadence (for example, it appears in small numbers on a weekly or monthly cadence),\nit might be part of a housekeeping or maintenance process. You can find the command in the `event.action field` field.\n\n### Related Rules\n\n- Unusual City For an AWS Command - 809b70d3-e2c3-455e-af1b-2626a5a1a276\n- Unusual Country For an AWS Command - dca28dee-c999-400f-b640-50a081cc0fd1\n- Rare AWS Error Code - 19de8096-e2b0-4bd8-80c9-34a820813fff\n- Spike in AWS Error Messages - 78d3d8d9-b476-451d-a9e0-7a5addd70670\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"false_positives":["New or unusual user command activity can be due to manual troubleshooting or reconfiguration; changes in cloud automation scripts or workflows; adoption of new services; or changes in the way services are used."],"from":"now-2h","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Cloud","AWS","ML","Investigation Guide"],"anomaly_threshold":75,"machine_learning_job_id":"rare_method_for_a_username","type":"machine_learning","related_integrations":[],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Unusual AWS Command for a User v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an AWS API command that, while not inherently suspicious or abnormal, is being made by a user context that does not normally use the command. This can be the result of compromised credentials or keys as someone uses a valid account to persist, move laterally, or exfiltrate data.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual AWS Command for a User\n\nCloudTrail logging provides visibility on actions taken within an AWS environment. By monitoring these events and\nunderstanding what is considered normal behavior within an organization, you can spot suspicious or malicious activity\nwhen deviations occur.\n\nThis rule uses a machine learning job to detect an AWS API command that while not inherently suspicious or abnormal, is\nbeing made by a user context that does not normally use the command. This can be the result of compromised credentials or\nkeys as someone uses a valid account to persist, move laterally, or exfiltrate data.\n\nDetection alerts from this rule indicate an AWS API command or method call that is rare and unusual for the calling IAM\nuser.\n\n#### Possible investigation steps\n\n- Identify the user account involved and the action performed. Verify whether it should perform this kind of action.\n - Examine the user identity in the `aws.cloudtrail.user_identity.arn` field and the access key ID in the\n `aws.cloudtrail.user_identity.access_key_id` field, which can help identify the precise user context.\n - The user agent details in the `user_agent.original` field may also indicate what kind of a client made the request.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, or network administrator activity.\n- Examine the request parameters. These might indicate the source of the program or the nature of its tasks.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Contact the account owner and confirm whether they are aware of this activity if suspicious.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- Examine the history of the command. If the command only manifested recently, it might be part of a new automation\nmodule or script. If it has a consistent cadence (for example, it appears in small numbers on a weekly or monthly cadence),\nit might be part of a housekeeping or maintenance process. You can find the command in the `event.action field` field.\n\n### Related Rules\n\n- Unusual City For an AWS Command - 809b70d3-e2c3-455e-af1b-2626a5a1a276\n- Unusual Country For an AWS Command - dca28dee-c999-400f-b640-50a081cc0fd1\n- Rare AWS Error Code - 19de8096-e2b0-4bd8-80c9-34a820813fff\n- Spike in AWS Error Messages - 78d3d8d9-b476-451d-a9e0-7a5addd70670\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"false_positives":["New or unusual user command activity can be due to manual troubleshooting or reconfiguration; changes in cloud automation scripts or workflows; adoption of new services; or changes in the way services are used."],"from":"now-2h","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Cloud","AWS","ML","Investigation Guide"],"anomaly_threshold":75,"machine_learning_job_id":"rare_method_for_a_username","type":"machine_learning","related_integrations":[],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/ac96ceb8-4399-4191-af1d-4feeac1f1f46.json b/fleet-packages/detection-rules-composite/kibana/security_rule/ac96ceb8-4399-4191-af1d-4feeac1f1f46.json new file mode 100644 index 0000000000000..a3484ea399be1 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/ac96ceb8-4399-4191-af1d-4feeac1f1f46.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"ac96ceb8-4399-4191-af1d-4feeac1f1f46","versions":[{"name":"Potential Invoke-Mimikatz PowerShell Script v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Mimikatz is a credential dumper capable of obtaining plaintext Windows account logins and passwords, along with many other features that make it useful for testing the security of networks. This rule detects Invoke-Mimikatz PowerShell script and alike.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Mimikatz PowerShell Activity\n\n[Mimikatz](https://github.com/gentilkiwi/mimikatz) is an open-source tool used to collect, decrypt, and/or use cached\ncredentials. This tool is commonly abused by adversaries during the post-compromise stage where adversaries have gained\nan initial foothold on an endpoint and are looking to elevate privileges and seek out additional authentication objects\nsuch as tokens/hashes/credentials that can then be used to move laterally and pivot across a network.\n\nThis rule looks for PowerShell scripts that load mimikatz in memory, like Invoke-Mimikataz, which are used to dump\ncredentials from the Local Security Authority Subsystem Service (LSASS). Any activity triggered from this rule should be\ntreated with high priority as it typically represents an active adversary.\n\nMore information about Mimikatz components and how to detect/prevent them can be found on [ADSecurity](https://adsecurity.org/?page_id=1821).\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n - Invoke-Mimitakz and alike scripts heavily use other capabilities covered by other detections described in the\n \"Related Rules\" section.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (for example, 4624) to the\ntarget host.\n - Examine network and security events in the environment to identify potential lateral movement using compromised credentials.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n- Suspicious .NET Reflection via PowerShell - e26f042e-c590-4e82-8e05-41e81bd822ad\n- PowerShell Suspicious Payload Encoded and Compressed - 81fe9dc6-a2d7-4192-a2d8-eed98afc766a\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n- Mimikatz Memssp Log File Detected - ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6\n- Modification of WDigest Security Provider - d703a5af-d5b0-43bd-8ddb-7a5d500b7da5\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Validate that cleartext passwords are disabled in memory for use with `WDigest`.\n- Look into preventing access to `LSASS` using capabilities such as LSA protection or antivirus/EDR tools that provide\nthis capability.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://attack.mitre.org/software/S0002/","https://raw.githubusercontent.com/EmpireProject/Empire/master/data/module_source/credentials/Invoke-Mimikatz.ps1","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\npowershell.file.script_block_text:(\n (DumpCreds and\n DumpCerts) or\n \"sekurlsa::logonpasswords\" or\n (\"crypto::certificates\" and\n \"CERT_SYSTEM_STORE_LOCAL_MACHINE\")\n)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},{"name":"Potential Invoke-Mimikatz PowerShell Script v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Mimikatz is a credential dumper capable of obtaining plaintext Windows account logins and passwords, along with many other features that make it useful for testing the security of networks. This rule detects Invoke-Mimikatz PowerShell script and alike.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Mimikatz PowerShell Activity\n\n[Mimikatz](https://github.com/gentilkiwi/mimikatz) is an open-source tool used to collect, decrypt, and/or use cached\ncredentials. This tool is commonly abused by adversaries during the post-compromise stage where adversaries have gained\nan initial foothold on an endpoint and are looking to elevate privileges and seek out additional authentication objects\nsuch as tokens/hashes/credentials that can then be used to move laterally and pivot across a network.\n\nThis rule looks for PowerShell scripts that load mimikatz in memory, like Invoke-Mimikataz, which are used to dump\ncredentials from the Local Security Authority Subsystem Service (LSASS). Any activity triggered from this rule should be\ntreated with high priority as it typically represents an active adversary.\n\nMore information about Mimikatz components and how to detect/prevent them can be found on [ADSecurity](https://adsecurity.org/?page_id=1821).\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n - Invoke-Mimitakz and alike scripts heavily use other capabilities covered by other detections described in the\n \"Related Rules\" section.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (for example, 4624) to the\ntarget host.\n - Examine network and security events in the environment to identify potential lateral movement using compromised credentials.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n- Suspicious .NET Reflection via PowerShell - e26f042e-c590-4e82-8e05-41e81bd822ad\n- PowerShell Suspicious Payload Encoded and Compressed - 81fe9dc6-a2d7-4192-a2d8-eed98afc766a\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n- Mimikatz Memssp Log File Detected - ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6\n- Modification of WDigest Security Provider - d703a5af-d5b0-43bd-8ddb-7a5d500b7da5\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Validate that cleartext passwords are disabled in memory for use with `WDigest`.\n- Look into preventing access to `LSASS` using capabilities such as LSA protection or antivirus/EDR tools that provide\nthis capability.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://attack.mitre.org/software/S0002/","https://raw.githubusercontent.com/EmpireProject/Empire/master/data/module_source/credentials/Invoke-Mimikatz.ps1","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\npowershell.file.script_block_text:(\n (DumpCreds and\n DumpCerts) or\n \"sekurlsa::logonpasswords\" or\n (\"crypto::certificates\" and\n \"CERT_SYSTEM_STORE_LOCAL_MACHINE\")\n)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},{"name":"Potential Invoke-Mimikatz PowerShell Script v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Mimikatz is a credential dumper capable of obtaining plaintext Windows account logins and passwords, along with many other features that make it useful for testing the security of networks. This rule detects Invoke-Mimikatz PowerShell script and alike.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Mimikatz PowerShell Activity\n\n[Mimikatz](https://github.com/gentilkiwi/mimikatz) is an open-source tool used to collect, decrypt, and/or use cached\ncredentials. This tool is commonly abused by adversaries during the post-compromise stage where adversaries have gained\nan initial foothold on an endpoint and are looking to elevate privileges and seek out additional authentication objects\nsuch as tokens/hashes/credentials that can then be used to move laterally and pivot across a network.\n\nThis rule looks for PowerShell scripts that load mimikatz in memory, like Invoke-Mimikataz, which are used to dump\ncredentials from the Local Security Authority Subsystem Service (LSASS). Any activity triggered from this rule should be\ntreated with high priority as it typically represents an active adversary.\n\nMore information about Mimikatz components and how to detect/prevent them can be found on [ADSecurity](https://adsecurity.org/?page_id=1821).\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n - Invoke-Mimitakz and alike scripts heavily use other capabilities covered by other detections described in the\n \"Related Rules\" section.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (for example, 4624) to the\ntarget host.\n - Examine network and security events in the environment to identify potential lateral movement using compromised credentials.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n- Suspicious .NET Reflection via PowerShell - e26f042e-c590-4e82-8e05-41e81bd822ad\n- PowerShell Suspicious Payload Encoded and Compressed - 81fe9dc6-a2d7-4192-a2d8-eed98afc766a\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n- Mimikatz Memssp Log File Detected - ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6\n- Modification of WDigest Security Provider - d703a5af-d5b0-43bd-8ddb-7a5d500b7da5\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Validate that cleartext passwords are disabled in memory for use with `WDigest`.\n- Look into preventing access to `LSASS` using capabilities such as LSA protection or antivirus/EDR tools that provide\nthis capability.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://attack.mitre.org/software/S0002/","https://raw.githubusercontent.com/EmpireProject/Empire/master/data/module_source/credentials/Invoke-Mimikatz.ps1","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\npowershell.file.script_block_text:(\n (DumpCreds and\n DumpCerts) or\n \"sekurlsa::logonpasswords\" or\n (\"crypto::certificates\" and\n \"CERT_SYSTEM_STORE_LOCAL_MACHINE\")\n)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"}]},"id":"ac96ceb8-4399-4191-af1d-4feeac1f1f46","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/acbc8bb9-2486-49a8-8779-45fb5f9a93ee.json b/fleet-packages/detection-rules-composite/kibana/security_rule/acbc8bb9-2486-49a8-8779-45fb5f9a93ee.json new file mode 100644 index 0000000000000..942b1a037adb0 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/acbc8bb9-2486-49a8-8779-45fb5f9a93ee.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"acbc8bb9-2486-49a8-8779-45fb5f9a93ee","versions":[{"name":"Google Workspace API Access Granted via Domain-Wide Delegation of Authority v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a domain-wide delegation of authority is granted to a service account. Domain-wide delegation can be configured to grant third-party and internal applications to access the data of Google Workspace users. An adversary may configure domain-wide delegation to maintain access to their target’s data.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Domain-wide delegation of authority may be granted to service accounts by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://developers.google.com/admin-sdk/directory/v1/guides/delegation"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:AUTHORIZE_API_CLIENT_ACCESS\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Google Workspace API Access Granted via Domain-Wide Delegation of Authority v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a domain-wide delegation of authority is granted to a service account. Domain-wide delegation can be configured to grant third-party and internal applications to access the data of Google Workspace users. An adversary may configure domain-wide delegation to maintain access to their target’s data.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Domain-wide delegation of authority may be granted to service accounts by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://developers.google.com/admin-sdk/directory/v1/guides/delegation"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:AUTHORIZE_API_CLIENT_ACCESS\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Google Workspace API Access Granted via Domain-Wide Delegation of Authority v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a domain-wide delegation of authority is granted to a service account. Domain-wide delegation can be configured to grant third-party and internal applications to access the data of Google Workspace users. An adversary may configure domain-wide delegation to maintain access to their target’s data.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Domain-wide delegation of authority may be granted to service accounts by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://developers.google.com/admin-sdk/directory/v1/guides/delegation"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:AUTHORIZE_API_CLIENT_ACCESS\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"acbc8bb9-2486-49a8-8779-45fb5f9a93ee","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/acd611f3-2b93-47b3-a0a3-7723bcc46f6d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/acd611f3-2b93-47b3-a0a3-7723bcc46f6d.json new file mode 100644 index 0000000000000..140aed06c49ed --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/acd611f3-2b93-47b3-a0a3-7723bcc46f6d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"acd611f3-2b93-47b3-a0a3-7723bcc46f6d","versions":[{"name":"Potential Command and Control via Internet Explorer v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies instances of Internet Explorer (iexplore.exe) being started via the Component Object Model (COM) making unusual network connections. Adversaries could abuse Internet Explorer via COM to avoid suspicious processes making network connections and bypass host-based firewall restrictions.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Processes such as MS Office using IEproxy to render HTML content."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1559","name":"Inter-Process Communication","reference":"https://attack.mitre.org/techniques/T1559/","subtechnique":[{"id":"T1559.001","name":"Component Object Model","reference":"https://attack.mitre.org/techniques/T1559/001/"}]}]}],"language":"eql","query":"sequence by host.id, user.name with maxspan = 5s\n [library where dll.name : \"IEProxy.dll\" and process.name : (\"rundll32.exe\", \"regsvr32.exe\")]\n [process where event.type == \"start\" and process.parent.name : \"iexplore.exe\" and process.parent.args : \"-Embedding\"]\n /* IE started via COM in normal conditions makes few connections, mainly to Microsoft and OCSP related domains, add FPs here */\n [network where network.protocol == \"dns\" and process.name : \"iexplore.exe\" and\n not dns.question.name :\n (\n \"*.microsoft.com\",\n \"*.digicert.com\",\n \"*.msocsp.com\",\n \"*.windowsupdate.com\",\n \"*.bing.com\",\n \"*.identrust.com\",\n \"*.sharepoint.com\",\n \"*.office365.com\",\n \"*.office.com\"\n )\n ] /* with runs=5 */\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"dns.question.name","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},{"name":"Potential Command and Control via Internet Explorer v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies instances of Internet Explorer (iexplore.exe) being started via the Component Object Model (COM) making unusual network connections. Adversaries could abuse Internet Explorer via COM to avoid suspicious processes making network connections and bypass host-based firewall restrictions.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Processes such as MS Office using IEproxy to render HTML content."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1559","name":"Inter-Process Communication","reference":"https://attack.mitre.org/techniques/T1559/","subtechnique":[{"id":"T1559.001","name":"Component Object Model","reference":"https://attack.mitre.org/techniques/T1559/001/"}]}]}],"language":"eql","query":"sequence by host.id, user.name with maxspan = 5s\n [library where dll.name : \"IEProxy.dll\" and process.name : (\"rundll32.exe\", \"regsvr32.exe\")]\n [process where event.type == \"start\" and process.parent.name : \"iexplore.exe\" and process.parent.args : \"-Embedding\"]\n /* IE started via COM in normal conditions makes few connections, mainly to Microsoft and OCSP related domains, add FPs here */\n [network where network.protocol == \"dns\" and process.name : \"iexplore.exe\" and\n not dns.question.name :\n (\n \"*.microsoft.com\",\n \"*.digicert.com\",\n \"*.msocsp.com\",\n \"*.windowsupdate.com\",\n \"*.bing.com\",\n \"*.identrust.com\",\n \"*.sharepoint.com\",\n \"*.office365.com\",\n \"*.office.com\"\n )\n ] /* with runs=5 */\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"dns.question.name","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},{"name":"Potential Command and Control via Internet Explorer v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies instances of Internet Explorer (iexplore.exe) being started via the Component Object Model (COM) making unusual network connections. Adversaries could abuse Internet Explorer via COM to avoid suspicious processes making network connections and bypass host-based firewall restrictions.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Processes such as MS Office using IEproxy to render HTML content."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1559","name":"Inter-Process Communication","reference":"https://attack.mitre.org/techniques/T1559/","subtechnique":[{"id":"T1559.001","name":"Component Object Model","reference":"https://attack.mitre.org/techniques/T1559/001/"}]}]}],"language":"eql","query":"sequence by host.id, user.name with maxspan = 5s\n [library where dll.name : \"IEProxy.dll\" and process.name : (\"rundll32.exe\", \"regsvr32.exe\")]\n [process where event.type == \"start\" and process.parent.name : \"iexplore.exe\" and process.parent.args : \"-Embedding\"]\n /* IE started via COM in normal conditions makes few connections, mainly to Microsoft and OCSP related domains, add FPs here */\n [network where network.protocol == \"dns\" and process.name : \"iexplore.exe\" and\n not dns.question.name :\n (\n \"*.microsoft.com\",\n \"*.digicert.com\",\n \"*.msocsp.com\",\n \"*.windowsupdate.com\",\n \"*.bing.com\",\n \"*.identrust.com\",\n \"*.sharepoint.com\",\n \"*.office365.com\",\n \"*.office.com\"\n )\n ] /* with runs=5 */\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"dns.question.name","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]}]},"id":"acd611f3-2b93-47b3-a0a3-7723bcc46f6d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/ace1e989-a541-44df-93a8-a8b0591b63c0.json b/fleet-packages/detection-rules-composite/kibana/security_rule/ace1e989-a541-44df-93a8-a8b0591b63c0.json new file mode 100644 index 0000000000000..b8071ff012c0d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/ace1e989-a541-44df-93a8-a8b0591b63c0.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"ace1e989-a541-44df-93a8-a8b0591b63c0","versions":[{"name":"Potential macOS SSH Brute Force Detected v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number (20) of macOS SSH KeyGen process executions from the same host. An adversary may attempt a brute force attack to obtain unauthorized access to user accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://themittenmac.com/detecting-ssh-activity-via-process-monitoring/"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.category:process and event.type:start and process.name:\"sshd-keygen-wrapper\" and process.parent.name:launchd\n","threshold":{"field":["host.id"],"value":20},"type":"threshold","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},{"name":"Potential macOS SSH Brute Force Detected v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number (20) of macOS SSH KeyGen process executions from the same host. An adversary may attempt a brute force attack to obtain unauthorized access to user accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://themittenmac.com/detecting-ssh-activity-via-process-monitoring/"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.category:process and event.type:start and process.name:\"sshd-keygen-wrapper\" and process.parent.name:launchd\n","threshold":{"field":["host.id"],"value":20},"type":"threshold","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},{"name":"Potential macOS SSH Brute Force Detected v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number (20) of macOS SSH KeyGen process executions from the same host. An adversary may attempt a brute force attack to obtain unauthorized access to user accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://themittenmac.com/detecting-ssh-activity-via-process-monitoring/"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.category:process and event.type:start and process.name:\"sshd-keygen-wrapper\" and process.parent.name:launchd\n","threshold":{"field":["host.id"],"value":20},"type":"threshold","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]}]},"id":"ace1e989-a541-44df-93a8-a8b0591b63c0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/acf738b5-b5b2-4acc-bad9-1e18ee234f40.json b/fleet-packages/detection-rules-composite/kibana/security_rule/acf738b5-b5b2-4acc-bad9-1e18ee234f40.json new file mode 100644 index 0000000000000..ee1c7aed197c2 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/acf738b5-b5b2-4acc-bad9-1e18ee234f40.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"acf738b5-b5b2-4acc-bad9-1e18ee234f40","versions":[{"name":"Suspicious Managed Code Hosting Process v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious managed code hosting process which could indicate code injection or other form of suspicious code execution.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://blog.menasec.net/2019/07/interesting-difr-traces-of-net-clr.html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=5m\n [process where event.type == \"start\" and\n process.name : (\"wscript.exe\", \"cscript.exe\", \"mshta.exe\", \"wmic.exe\", \"regsvr32.exe\", \"svchost.exe\", \"dllhost.exe\", \"cmstp.exe\")]\n [file where event.type != \"deletion\" and\n file.name : (\"wscript.exe.log\",\n \"cscript.exe\",\n \"mshta.exe.log\",\n \"wmic.exe.log\",\n \"svchost.exe.log\",\n \"dllhost.exe.log\",\n \"cmstp.exe.log\",\n \"regsvr32.exe.log\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Suspicious Managed Code Hosting Process v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious managed code hosting process which could indicate code injection or other form of suspicious code execution.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://blog.menasec.net/2019/07/interesting-difr-traces-of-net-clr.html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=5m\n [process where event.type == \"start\" and\n process.name : (\"wscript.exe\", \"cscript.exe\", \"mshta.exe\", \"wmic.exe\", \"regsvr32.exe\", \"svchost.exe\", \"dllhost.exe\", \"cmstp.exe\")]\n [file where event.type != \"deletion\" and\n file.name : (\"wscript.exe.log\",\n \"cscript.exe\",\n \"mshta.exe.log\",\n \"wmic.exe.log\",\n \"svchost.exe.log\",\n \"dllhost.exe.log\",\n \"cmstp.exe.log\",\n \"regsvr32.exe.log\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Suspicious Managed Code Hosting Process v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious managed code hosting process which could indicate code injection or other form of suspicious code execution.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://blog.menasec.net/2019/07/interesting-difr-traces-of-net-clr.html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=5m\n [process where event.type == \"start\" and\n process.name : (\"wscript.exe\", \"cscript.exe\", \"mshta.exe\", \"wmic.exe\", \"regsvr32.exe\", \"svchost.exe\", \"dllhost.exe\", \"cmstp.exe\")]\n [file where event.type != \"deletion\" and\n file.name : (\"wscript.exe.log\",\n \"cscript.exe\",\n \"mshta.exe.log\",\n \"wmic.exe.log\",\n \"svchost.exe.log\",\n \"dllhost.exe.log\",\n \"cmstp.exe.log\",\n \"regsvr32.exe.log\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"acf738b5-b5b2-4acc-bad9-1e18ee234f40","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/ad0d2742-9a49-11ec-8d6b-acde48001122.json b/fleet-packages/detection-rules-composite/kibana/security_rule/ad0d2742-9a49-11ec-8d6b-acde48001122.json new file mode 100644 index 0000000000000..e9b08dcb7d1ac --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/ad0d2742-9a49-11ec-8d6b-acde48001122.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"ad0d2742-9a49-11ec-8d6b-acde48001122","versions":[{"name":"Signed Proxy Execution via MS Work Folders v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of Windows Work Folders to execute a potentially masqueraded control.exe file in the current working directory. Misuse of Windows Work Folders could indicate malicious activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Signed Proxy Execution via MS Work Folders\n\nWork Folders is a role service for file servers running Windows Server that provides a consistent way for users to access\ntheir work files from their PCs and devices. This allows users to store work files and access them from anywhere. When\ncalled, Work Folders will automatically execute any Portable Executable (PE) named control.exe as an argument before\naccessing the synced share.\n\nUsing Work Folders to execute a masqueraded control.exe could allow an adversary to bypass application controls and\nincrease privileges.\n\n#### Possible investigation steps\n\n- Investigate the process tree starting with parent process WorkFolders.exe and child process control.exe to determine\nif other child processes spawned during execution.\n- Trace the activity related to the control.exe binary to identify any continuing intrusion activity on the host.\n- Examine the location of the WorkFolders.exe binary to determine if it was copied to the location of the control.exe\nbinary. It resides in the System32 directory by default.\n- Review the control.exe binary executed with Work Folders to determine maliciousness such as additional host activity\nor network traffic.\n- Determine if control.exe was synced to sync share, indicating potential lateral movement.\n- Review how control.exe was originally delivered on the host, such as emailed, downloaded from the web, or written to\ndisk from a separate binary.\n\n### False positive analysis\n\n- Windows Work Folders are used legitimately by end users and administrators for file sharing and syncing but not in the\ninstance where a suspicious control.exe is passed as an argument.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Review the Work Folders synced share to determine if the control.exe was shared and if so remove it.\n- If no lateral movement was identified during investigation, take the affected host offline if possible and remove the\ncontrol.exe binary as well as any additional artifacts identified during investigation.\n- Review integrating Windows Information Protection (WIP) to enforce data protection by encrypting the data on PCs using\nWork Folders.\n- Confirm with the user whether this was expected or not, and reset their password.","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows-server/storage/work-folders/work-folders-overview","https://twitter.com/ElliotKillick/status/1449812843772227588","https://lolbas-project.github.io/lolbas/Binaries/WorkFolders/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]}],"language":"eql","query":"process where event.type == \"start\" \n and process.name : \"control.exe\" and process.parent.name : \"WorkFolders.exe\"\n and not process.executable : (\"?:\\\\Windows\\\\System32\\\\control.exe\", \"?:\\\\Windows\\\\SysWOW64\\\\control.exe\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Signed Proxy Execution via MS Work Folders v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of Windows Work Folders to execute a potentially masqueraded control.exe file in the current working directory. Misuse of Windows Work Folders could indicate malicious activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Signed Proxy Execution via MS Work Folders\n\nWork Folders is a role service for file servers running Windows Server that provides a consistent way for users to access\ntheir work files from their PCs and devices. This allows users to store work files and access them from anywhere. When\ncalled, Work Folders will automatically execute any Portable Executable (PE) named control.exe as an argument before\naccessing the synced share.\n\nUsing Work Folders to execute a masqueraded control.exe could allow an adversary to bypass application controls and\nincrease privileges.\n\n#### Possible investigation steps\n\n- Investigate the process tree starting with parent process WorkFolders.exe and child process control.exe to determine\nif other child processes spawned during execution.\n- Trace the activity related to the control.exe binary to identify any continuing intrusion activity on the host.\n- Examine the location of the WorkFolders.exe binary to determine if it was copied to the location of the control.exe\nbinary. It resides in the System32 directory by default.\n- Review the control.exe binary executed with Work Folders to determine maliciousness such as additional host activity\nor network traffic.\n- Determine if control.exe was synced to sync share, indicating potential lateral movement.\n- Review how control.exe was originally delivered on the host, such as emailed, downloaded from the web, or written to\ndisk from a separate binary.\n\n### False positive analysis\n\n- Windows Work Folders are used legitimately by end users and administrators for file sharing and syncing but not in the\ninstance where a suspicious control.exe is passed as an argument.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Review the Work Folders synced share to determine if the control.exe was shared and if so remove it.\n- If no lateral movement was identified during investigation, take the affected host offline if possible and remove the\ncontrol.exe binary as well as any additional artifacts identified during investigation.\n- Review integrating Windows Information Protection (WIP) to enforce data protection by encrypting the data on PCs using\nWork Folders.\n- Confirm with the user whether this was expected or not, and reset their password.","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows-server/storage/work-folders/work-folders-overview","https://twitter.com/ElliotKillick/status/1449812843772227588","https://lolbas-project.github.io/lolbas/Binaries/WorkFolders/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]}],"language":"eql","query":"process where event.type == \"start\" \n and process.name : \"control.exe\" and process.parent.name : \"WorkFolders.exe\"\n and not process.executable : (\"?:\\\\Windows\\\\System32\\\\control.exe\", \"?:\\\\Windows\\\\SysWOW64\\\\control.exe\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Signed Proxy Execution via MS Work Folders v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of Windows Work Folders to execute a potentially masqueraded control.exe file in the current working directory. Misuse of Windows Work Folders could indicate malicious activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Signed Proxy Execution via MS Work Folders\n\nWork Folders is a role service for file servers running Windows Server that provides a consistent way for users to access\ntheir work files from their PCs and devices. This allows users to store work files and access them from anywhere. When\ncalled, Work Folders will automatically execute any Portable Executable (PE) named control.exe as an argument before\naccessing the synced share.\n\nUsing Work Folders to execute a masqueraded control.exe could allow an adversary to bypass application controls and\nincrease privileges.\n\n#### Possible investigation steps\n\n- Investigate the process tree starting with parent process WorkFolders.exe and child process control.exe to determine\nif other child processes spawned during execution.\n- Trace the activity related to the control.exe binary to identify any continuing intrusion activity on the host.\n- Examine the location of the WorkFolders.exe binary to determine if it was copied to the location of the control.exe\nbinary. It resides in the System32 directory by default.\n- Review the control.exe binary executed with Work Folders to determine maliciousness such as additional host activity\nor network traffic.\n- Determine if control.exe was synced to sync share, indicating potential lateral movement.\n- Review how control.exe was originally delivered on the host, such as emailed, downloaded from the web, or written to\ndisk from a separate binary.\n\n### False positive analysis\n\n- Windows Work Folders are used legitimately by end users and administrators for file sharing and syncing but not in the\ninstance where a suspicious control.exe is passed as an argument.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Review the Work Folders synced share to determine if the control.exe was shared and if so remove it.\n- If no lateral movement was identified during investigation, take the affected host offline if possible and remove the\ncontrol.exe binary as well as any additional artifacts identified during investigation.\n- Review integrating Windows Information Protection (WIP) to enforce data protection by encrypting the data on PCs using\nWork Folders.\n- Confirm with the user whether this was expected or not, and reset their password.","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows-server/storage/work-folders/work-folders-overview","https://twitter.com/ElliotKillick/status/1449812843772227588","https://lolbas-project.github.io/lolbas/Binaries/WorkFolders/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]}],"language":"eql","query":"process where event.type == \"start\" \n and process.name : \"control.exe\" and process.parent.name : \"WorkFolders.exe\"\n and not process.executable : (\"?:\\\\Windows\\\\System32\\\\control.exe\", \"?:\\\\Windows\\\\SysWOW64\\\\control.exe\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"ad0d2742-9a49-11ec-8d6b-acde48001122","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/ad3f2807-2b3e-47d7-b282-f84acbbe14be.json b/fleet-packages/detection-rules-composite/kibana/security_rule/ad3f2807-2b3e-47d7-b282-f84acbbe14be.json new file mode 100644 index 0000000000000..79d6f63f52cdf --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/ad3f2807-2b3e-47d7-b282-f84acbbe14be.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"ad3f2807-2b3e-47d7-b282-f84acbbe14be","versions":[{"name":"Google Workspace Custom Admin Role Created v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a custom admin role is created in Google Workspace. An adversary may create a custom admin role in order to elevate the permissions of other user accounts and persist in their target’s environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Custom Google Workspace admin roles may be created by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/2406043?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:CREATE_ROLE\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Google Workspace Custom Admin Role Created v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a custom admin role is created in Google Workspace. An adversary may create a custom admin role in order to elevate the permissions of other user accounts and persist in their target’s environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Custom Google Workspace admin roles may be created by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/2406043?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:CREATE_ROLE\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Google Workspace Custom Admin Role Created v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a custom admin role is created in Google Workspace. An adversary may create a custom admin role in order to elevate the permissions of other user accounts and persist in their target’s environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Custom Google Workspace admin roles may be created by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/2406043?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:CREATE_ROLE\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"ad3f2807-2b3e-47d7-b282-f84acbbe14be","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/ad84d445-b1ce-4377-82d9-7c633f28bf9a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/ad84d445-b1ce-4377-82d9-7c633f28bf9a.json new file mode 100644 index 0000000000000..284b716545988 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/ad84d445-b1ce-4377-82d9-7c633f28bf9a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"ad84d445-b1ce-4377-82d9-7c633f28bf9a","versions":[{"name":"Suspicious Portable Executable Encoded in Powershell Script v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the presence of a portable executable (PE) in a PowerShell script by looking for its encoded header. Attackers embed PEs into PowerShell scripts to inject them into memory, avoiding defences by not writing to disk.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Portable Executable Encoded in Powershell Script\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can abuse PowerShell in-memory capabilities to inject executables into memory without touching the disk,\nbypassing file-based security protections. These executables are generally base64 encoded.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the script using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- Suspicious .NET Reflection via PowerShell - e26f042e-c590-4e82-8e05-41e81bd822ad\n- PowerShell Suspicious Payload Encoded and Compressed - 81fe9dc6-a2d7-4192-a2d8-eed98afc766a\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Reimage the host operating system or restore the compromised files to clean versions.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n TVqQAAMAAAAEAAAA\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},{"name":"Suspicious Portable Executable Encoded in Powershell Script v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the presence of a portable executable (PE) in a PowerShell script by looking for its encoded header. Attackers embed PEs into PowerShell scripts to inject them into memory, avoiding defences by not writing to disk.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Portable Executable Encoded in Powershell Script\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can abuse PowerShell in-memory capabilities to inject executables into memory without touching the disk,\nbypassing file-based security protections. These executables are generally base64 encoded.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the script using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- Suspicious .NET Reflection via PowerShell - e26f042e-c590-4e82-8e05-41e81bd822ad\n- PowerShell Suspicious Payload Encoded and Compressed - 81fe9dc6-a2d7-4192-a2d8-eed98afc766a\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Reimage the host operating system or restore the compromised files to clean versions.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n TVqQAAMAAAAEAAAA\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},{"name":"Suspicious Portable Executable Encoded in Powershell Script v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the presence of a portable executable (PE) in a PowerShell script by looking for its encoded header. Attackers embed PEs into PowerShell scripts to inject them into memory, avoiding defences by not writing to disk.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Portable Executable Encoded in Powershell Script\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can abuse PowerShell in-memory capabilities to inject executables into memory without touching the disk,\nbypassing file-based security protections. These executables are generally base64 encoded.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the script using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- Suspicious .NET Reflection via PowerShell - e26f042e-c590-4e82-8e05-41e81bd822ad\n- PowerShell Suspicious Payload Encoded and Compressed - 81fe9dc6-a2d7-4192-a2d8-eed98afc766a\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Reimage the host operating system or restore the compromised files to clean versions.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n TVqQAAMAAAAEAAAA\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"}]},"id":"ad84d445-b1ce-4377-82d9-7c633f28bf9a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/ad88231f-e2ab-491c-8fc6-64746da26cfe.json b/fleet-packages/detection-rules-composite/kibana/security_rule/ad88231f-e2ab-491c-8fc6-64746da26cfe.json new file mode 100644 index 0000000000000..c2bedfd0c00d5 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/ad88231f-e2ab-491c-8fc6-64746da26cfe.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"ad88231f-e2ab-491c-8fc6-64746da26cfe","versions":[{"name":"Kerberos Cached Credentials Dumping v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the Kerberos credential cache (kcc) utility to dump locally cached Kerberos tickets. Adversaries may attempt to dump credential material in the form of tickets that can be leveraged for lateral movement.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/EmpireProject/EmPyre/blob/master/lib/modules/collection/osx/kerberosdump.py","https://opensource.apple.com/source/Heimdal/Heimdal-323.12/kuser/kcc-commands.in.auto.html"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"},{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/","subtechnique":[{"id":"T1558.003","name":"Kerberoasting","reference":"https://attack.mitre.org/techniques/T1558/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:kcc and\n process.args:copy_cred_cache\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Kerberos Cached Credentials Dumping v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the Kerberos credential cache (kcc) utility to dump locally cached Kerberos tickets. Adversaries may attempt to dump credential material in the form of tickets that can be leveraged for lateral movement.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/EmpireProject/EmPyre/blob/master/lib/modules/collection/osx/kerberosdump.py","https://opensource.apple.com/source/Heimdal/Heimdal-323.12/kuser/kcc-commands.in.auto.html"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"},{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/","subtechnique":[{"id":"T1558.003","name":"Kerberoasting","reference":"https://attack.mitre.org/techniques/T1558/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:kcc and\n process.args:copy_cred_cache\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Kerberos Cached Credentials Dumping v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the Kerberos credential cache (kcc) utility to dump locally cached Kerberos tickets. Adversaries may attempt to dump credential material in the form of tickets that can be leveraged for lateral movement.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/EmpireProject/EmPyre/blob/master/lib/modules/collection/osx/kerberosdump.py","https://opensource.apple.com/source/Heimdal/Heimdal-323.12/kuser/kcc-commands.in.auto.html"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"},{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/","subtechnique":[{"id":"T1558.003","name":"Kerberoasting","reference":"https://attack.mitre.org/techniques/T1558/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:kcc and\n process.args:copy_cred_cache\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"ad88231f-e2ab-491c-8fc6-64746da26cfe","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/adb961e0-cb74-42a0-af9e-29fc41f88f5f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/adb961e0-cb74-42a0-af9e-29fc41f88f5f.json new file mode 100644 index 0000000000000..277f471b00fa8 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/adb961e0-cb74-42a0-af9e-29fc41f88f5f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"adb961e0-cb74-42a0-af9e-29fc41f88f5f","versions":[{"name":"File Transfer or Listener Established via Netcat v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A netcat process is engaging in network activity on a Linux host. Netcat is often used as a persistence mechanism by exporting a reverse shell or by serving a shell on a listening port. Netcat is also sometimes used for data exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Netcat Network Activity\n\nNetcat is a dual-use command line tool that can be used for various purposes, such as port scanning, file transfers, and\nconnection tests. Attackers can abuse its functionality for malicious purposes such creating bind shells or reverse\nshells to gain access to the target system.\n\nA reverse shell is a mechanism that's abused to connect back to an attacker-controlled system. It effectively redirects\nthe system's input and output and delivers a fully functional remote shell to the attacker. Even private systems are\nvulnerable since the connection is outgoing.\n\nA bind shell is a type of backdoor that attackers set up on the target host and binds to a specific port to listen for\nan incoming connection from the attacker.\n\nThis rule identifies potential reverse shell or bind shell activity using Netcat by checking for the execution of Netcat\nfollowed by a network connection.\n\n#### Possible investigation steps\n\n- Examine the command line to identify if the command is suspicious.\n- Extract and examine the target domain or IP address.\n - Check if the domain is newly registered or unexpected.\n - Check the reputation of the domain or IP address.\n - Scope other potentially compromised hosts in your environment by mapping hosts that also communicated with the\n domain or IP address.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, file modifications, and any\nspawned child processes.\n\n### False positive analysis\n\n- Netcat is a dual-use tool that can be used for benign or malicious activity. It is included in some Linux\ndistributions, so its presence is not necessarily suspicious. Some normal use of this program, while uncommon, may\noriginate from scripts, automation tools, and frameworks.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Block the identified indicators of compromise (IoCs).\n- Take actions to terminate processes and connections used by the attacker.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"false_positives":["Netcat is a dual-use tool that can be used for benign or malicious activity. Netcat is included in some Linux distributions so its presence is not necessarily suspicious. Some normal use of this program, while uncommon, may originate from scripts, automation tools, and frameworks."],"from":"now-9m","references":["http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet","https://www.sans.org/security-resources/sec560/netcat_cheat_sheet_v1.pdf","https://en.wikipedia.org/wiki/Netcat","https://www.hackers-arise.com/hacking-fundamentals","https://null-byte.wonderhowto.com/how-to/hack-like-pro-use-netcat-swiss-army-knife-hacking-tools-0148657/","https://levelup.gitconnected.com/ethical-hacking-part-15-netcat-nc-and-netcat-f6a8f7df43fd"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.004","name":"Unix Shell","reference":"https://attack.mitre.org/techniques/T1059/004/"}]}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name:(\"nc\",\"ncat\",\"netcat\",\"netcat.openbsd\",\"netcat.traditional\") and (\n /* bind shell to echo for command execution */\n (process.args:(\"-l\",\"-p\") and process.args:(\"-c\",\"echo\",\"$*\"))\n /* bind shell to specific port */\n or process.args:(\"-l\",\"-p\",\"-lp\")\n /* reverse shell to command-line interpreter used for command execution */\n or (process.args:(\"-e\") and process.args:(\"/bin/bash\",\"/bin/sh\"))\n /* file transfer via stdout */\n or process.args:(\">\",\"<\")\n /* file transfer via pipe */\n or (process.args:(\"|\") and process.args:(\"nc\",\"ncat\"))\n )]\n [network where (process.name == \"nc\" or process.name == \"ncat\" or process.name == \"netcat\" or\n process.name == \"netcat.openbsd\" or process.name == \"netcat.traditional\")]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"File Transfer or Listener Established via Netcat v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A netcat process is engaging in network activity on a Linux host. Netcat is often used as a persistence mechanism by exporting a reverse shell or by serving a shell on a listening port. Netcat is also sometimes used for data exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Netcat Network Activity\n\nNetcat is a dual-use command line tool that can be used for various purposes, such as port scanning, file transfers, and\nconnection tests. Attackers can abuse its functionality for malicious purposes such creating bind shells or reverse\nshells to gain access to the target system.\n\nA reverse shell is a mechanism that's abused to connect back to an attacker-controlled system. It effectively redirects\nthe system's input and output and delivers a fully functional remote shell to the attacker. Even private systems are\nvulnerable since the connection is outgoing.\n\nA bind shell is a type of backdoor that attackers set up on the target host and binds to a specific port to listen for\nan incoming connection from the attacker.\n\nThis rule identifies potential reverse shell or bind shell activity using Netcat by checking for the execution of Netcat\nfollowed by a network connection.\n\n#### Possible investigation steps\n\n- Examine the command line to identify if the command is suspicious.\n- Extract and examine the target domain or IP address.\n - Check if the domain is newly registered or unexpected.\n - Check the reputation of the domain or IP address.\n - Scope other potentially compromised hosts in your environment by mapping hosts that also communicated with the\n domain or IP address.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, file modifications, and any\nspawned child processes.\n\n### False positive analysis\n\n- Netcat is a dual-use tool that can be used for benign or malicious activity. It is included in some Linux\ndistributions, so its presence is not necessarily suspicious. Some normal use of this program, while uncommon, may\noriginate from scripts, automation tools, and frameworks.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Block the identified indicators of compromise (IoCs).\n- Take actions to terminate processes and connections used by the attacker.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"false_positives":["Netcat is a dual-use tool that can be used for benign or malicious activity. Netcat is included in some Linux distributions so its presence is not necessarily suspicious. Some normal use of this program, while uncommon, may originate from scripts, automation tools, and frameworks."],"from":"now-9m","references":["http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet","https://www.sans.org/security-resources/sec560/netcat_cheat_sheet_v1.pdf","https://en.wikipedia.org/wiki/Netcat","https://www.hackers-arise.com/hacking-fundamentals","https://null-byte.wonderhowto.com/how-to/hack-like-pro-use-netcat-swiss-army-knife-hacking-tools-0148657/","https://levelup.gitconnected.com/ethical-hacking-part-15-netcat-nc-and-netcat-f6a8f7df43fd"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.004","name":"Unix Shell","reference":"https://attack.mitre.org/techniques/T1059/004/"}]}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name:(\"nc\",\"ncat\",\"netcat\",\"netcat.openbsd\",\"netcat.traditional\") and (\n /* bind shell to echo for command execution */\n (process.args:(\"-l\",\"-p\") and process.args:(\"-c\",\"echo\",\"$*\"))\n /* bind shell to specific port */\n or process.args:(\"-l\",\"-p\",\"-lp\")\n /* reverse shell to command-line interpreter used for command execution */\n or (process.args:(\"-e\") and process.args:(\"/bin/bash\",\"/bin/sh\"))\n /* file transfer via stdout */\n or process.args:(\">\",\"<\")\n /* file transfer via pipe */\n or (process.args:(\"|\") and process.args:(\"nc\",\"ncat\"))\n )]\n [network where (process.name == \"nc\" or process.name == \"ncat\" or process.name == \"netcat\" or\n process.name == \"netcat.openbsd\" or process.name == \"netcat.traditional\")]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"File Transfer or Listener Established via Netcat v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A netcat process is engaging in network activity on a Linux host. Netcat is often used as a persistence mechanism by exporting a reverse shell or by serving a shell on a listening port. Netcat is also sometimes used for data exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Netcat Network Activity\n\nNetcat is a dual-use command line tool that can be used for various purposes, such as port scanning, file transfers, and\nconnection tests. Attackers can abuse its functionality for malicious purposes such creating bind shells or reverse\nshells to gain access to the target system.\n\nA reverse shell is a mechanism that's abused to connect back to an attacker-controlled system. It effectively redirects\nthe system's input and output and delivers a fully functional remote shell to the attacker. Even private systems are\nvulnerable since the connection is outgoing.\n\nA bind shell is a type of backdoor that attackers set up on the target host and binds to a specific port to listen for\nan incoming connection from the attacker.\n\nThis rule identifies potential reverse shell or bind shell activity using Netcat by checking for the execution of Netcat\nfollowed by a network connection.\n\n#### Possible investigation steps\n\n- Examine the command line to identify if the command is suspicious.\n- Extract and examine the target domain or IP address.\n - Check if the domain is newly registered or unexpected.\n - Check the reputation of the domain or IP address.\n - Scope other potentially compromised hosts in your environment by mapping hosts that also communicated with the\n domain or IP address.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, file modifications, and any\nspawned child processes.\n\n### False positive analysis\n\n- Netcat is a dual-use tool that can be used for benign or malicious activity. It is included in some Linux\ndistributions, so its presence is not necessarily suspicious. Some normal use of this program, while uncommon, may\noriginate from scripts, automation tools, and frameworks.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Block the identified indicators of compromise (IoCs).\n- Take actions to terminate processes and connections used by the attacker.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"false_positives":["Netcat is a dual-use tool that can be used for benign or malicious activity. Netcat is included in some Linux distributions so its presence is not necessarily suspicious. Some normal use of this program, while uncommon, may originate from scripts, automation tools, and frameworks."],"from":"now-9m","references":["http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet","https://www.sans.org/security-resources/sec560/netcat_cheat_sheet_v1.pdf","https://en.wikipedia.org/wiki/Netcat","https://www.hackers-arise.com/hacking-fundamentals","https://null-byte.wonderhowto.com/how-to/hack-like-pro-use-netcat-swiss-army-knife-hacking-tools-0148657/","https://levelup.gitconnected.com/ethical-hacking-part-15-netcat-nc-and-netcat-f6a8f7df43fd"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.004","name":"Unix Shell","reference":"https://attack.mitre.org/techniques/T1059/004/"}]}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name:(\"nc\",\"ncat\",\"netcat\",\"netcat.openbsd\",\"netcat.traditional\") and (\n /* bind shell to echo for command execution */\n (process.args:(\"-l\",\"-p\") and process.args:(\"-c\",\"echo\",\"$*\"))\n /* bind shell to specific port */\n or process.args:(\"-l\",\"-p\",\"-lp\")\n /* reverse shell to command-line interpreter used for command execution */\n or (process.args:(\"-e\") and process.args:(\"/bin/bash\",\"/bin/sh\"))\n /* file transfer via stdout */\n or process.args:(\">\",\"<\")\n /* file transfer via pipe */\n or (process.args:(\"|\") and process.args:(\"nc\",\"ncat\"))\n )]\n [network where (process.name == \"nc\" or process.name == \"ncat\" or process.name == \"netcat\" or\n process.name == \"netcat.openbsd\" or process.name == \"netcat.traditional\")]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"adb961e0-cb74-42a0-af9e-29fc41f88f5f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/afcce5ad-65de-4ed2-8516-5e093d3ac99a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/afcce5ad-65de-4ed2-8516-5e093d3ac99a.json new file mode 100644 index 0000000000000..459693aac51c7 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/afcce5ad-65de-4ed2-8516-5e093d3ac99a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"afcce5ad-65de-4ed2-8516-5e093d3ac99a","versions":[{"name":"Local Scheduled Task Creation v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Indicates the creation of a scheduled task. Adversaries can use these to establish persistence, move laterally, and/or escalate privileges.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","references":["https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-1","https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-2"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"sequence with maxspan=1m\n [process where event.type != \"end\" and\n ((process.name : (\"cmd.exe\", \"wscript.exe\", \"rundll32.exe\", \"regsvr32.exe\", \"wmic.exe\", \"mshta.exe\",\n \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\", \"WmiPrvSe.exe\", \"wsmprovhost.exe\", \"winrshost.exe\") or\n process.pe.original_file_name : (\"cmd.exe\", \"wscript.exe\", \"rundll32.exe\", \"regsvr32.exe\", \"wmic.exe\", \"mshta.exe\",\n \"powershell.exe\", \"pwsh.dll\", \"powershell_ise.exe\", \"WmiPrvSe.exe\", \"wsmprovhost.exe\",\n \"winrshost.exe\")) or\n process.code_signature.trusted == false)] by process.entity_id\n [process where event.type == \"start\" and\n (process.name : \"schtasks.exe\" or process.pe.original_file_name == \"schtasks.exe\") and\n process.args : (\"/create\", \"-create\") and process.args : (\"/RU\", \"/SC\", \"/TN\", \"/TR\", \"/F\", \"/XML\") and\n /* exclude SYSTEM Integrity Level - look for task creations by non-SYSTEM user */\n not (?process.Ext.token.integrity_level_name : \"System\" or ?winlog.event_data.IntegrityLevel : \"System\")\n ] by process.parent.entity_id\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.IntegrityLevel","type":"keyword"}]},{"name":"Local Scheduled Task Creation v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Indicates the creation of a scheduled task. Adversaries can use these to establish persistence, move laterally, and/or escalate privileges.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","references":["https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-1","https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-2"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"sequence with maxspan=1m\n [process where event.type != \"end\" and\n ((process.name : (\"cmd.exe\", \"wscript.exe\", \"rundll32.exe\", \"regsvr32.exe\", \"wmic.exe\", \"mshta.exe\",\n \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\", \"WmiPrvSe.exe\", \"wsmprovhost.exe\", \"winrshost.exe\") or\n process.pe.original_file_name : (\"cmd.exe\", \"wscript.exe\", \"rundll32.exe\", \"regsvr32.exe\", \"wmic.exe\", \"mshta.exe\",\n \"powershell.exe\", \"pwsh.dll\", \"powershell_ise.exe\", \"WmiPrvSe.exe\", \"wsmprovhost.exe\",\n \"winrshost.exe\")) or\n process.code_signature.trusted == false)] by process.entity_id\n [process where event.type == \"start\" and\n (process.name : \"schtasks.exe\" or process.pe.original_file_name == \"schtasks.exe\") and\n process.args : (\"/create\", \"-create\") and process.args : (\"/RU\", \"/SC\", \"/TN\", \"/TR\", \"/F\", \"/XML\") and\n /* exclude SYSTEM Integrity Level - look for task creations by non-SYSTEM user */\n not (?process.Ext.token.integrity_level_name : \"System\" or ?winlog.event_data.IntegrityLevel : \"System\")\n ] by process.parent.entity_id\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.IntegrityLevel","type":"keyword"}]},{"name":"Local Scheduled Task Creation v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Indicates the creation of a scheduled task. Adversaries can use these to establish persistence, move laterally, and/or escalate privileges.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","references":["https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-1","https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-2"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"sequence with maxspan=1m\n [process where event.type != \"end\" and\n ((process.name : (\"cmd.exe\", \"wscript.exe\", \"rundll32.exe\", \"regsvr32.exe\", \"wmic.exe\", \"mshta.exe\",\n \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\", \"WmiPrvSe.exe\", \"wsmprovhost.exe\", \"winrshost.exe\") or\n process.pe.original_file_name : (\"cmd.exe\", \"wscript.exe\", \"rundll32.exe\", \"regsvr32.exe\", \"wmic.exe\", \"mshta.exe\",\n \"powershell.exe\", \"pwsh.dll\", \"powershell_ise.exe\", \"WmiPrvSe.exe\", \"wsmprovhost.exe\",\n \"winrshost.exe\")) or\n process.code_signature.trusted == false)] by process.entity_id\n [process where event.type == \"start\" and\n (process.name : \"schtasks.exe\" or process.pe.original_file_name == \"schtasks.exe\") and\n process.args : (\"/create\", \"-create\") and process.args : (\"/RU\", \"/SC\", \"/TN\", \"/TR\", \"/F\", \"/XML\") and\n /* exclude SYSTEM Integrity Level - look for task creations by non-SYSTEM user */\n not (?process.Ext.token.integrity_level_name : \"System\" or ?winlog.event_data.IntegrityLevel : \"System\")\n ] by process.parent.entity_id\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.IntegrityLevel","type":"keyword"}]}]},"id":"afcce5ad-65de-4ed2-8516-5e093d3ac99a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/b0046934-486e-462f-9487-0d4cf9e429c6.json b/fleet-packages/detection-rules-composite/kibana/security_rule/b0046934-486e-462f-9487-0d4cf9e429c6.json new file mode 100644 index 0000000000000..e76224d9c52f1 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/b0046934-486e-462f-9487-0d4cf9e429c6.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"b0046934-486e-462f-9487-0d4cf9e429c6","versions":[{"name":"Timestomping using Touch Command v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Timestomping is an anti-forensics technique which is used to modify the timestamps of a file, often to mimic files that are in the same folder.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Linux","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.006","name":"Timestomp","reference":"https://attack.mitre.org/techniques/T1070/006/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"touch\" and user.id != \"0\" and\n process.args : (\"-r\", \"-t\", \"-a*\",\"-m*\") and\n not process.args : (\"/usr/lib/go-*/bin/go\", \"/usr/lib/dracut/dracut-functions.sh\", \"/tmp/KSInstallAction.*/m/.patch/*\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Timestomping using Touch Command v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Timestomping is an anti-forensics technique which is used to modify the timestamps of a file, often to mimic files that are in the same folder.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Linux","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.006","name":"Timestomp","reference":"https://attack.mitre.org/techniques/T1070/006/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"touch\" and user.id != \"0\" and\n process.args : (\"-r\", \"-t\", \"-a*\",\"-m*\") and\n not process.args : (\"/usr/lib/go-*/bin/go\", \"/usr/lib/dracut/dracut-functions.sh\", \"/tmp/KSInstallAction.*/m/.patch/*\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Timestomping using Touch Command v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Timestomping is an anti-forensics technique which is used to modify the timestamps of a file, often to mimic files that are in the same folder.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Linux","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.006","name":"Timestomp","reference":"https://attack.mitre.org/techniques/T1070/006/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"touch\" and user.id != \"0\" and\n process.args : (\"-r\", \"-t\", \"-a*\",\"-m*\") and\n not process.args : (\"/usr/lib/go-*/bin/go\", \"/usr/lib/dracut/dracut-functions.sh\", \"/tmp/KSInstallAction.*/m/.patch/*\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"b0046934-486e-462f-9487-0d4cf9e429c6","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/b00bcd89-000c-4425-b94c-716ef67762f6.json b/fleet-packages/detection-rules-composite/kibana/security_rule/b00bcd89-000c-4425-b94c-716ef67762f6.json new file mode 100644 index 0000000000000..a30a594c482b7 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/b00bcd89-000c-4425-b94c-716ef67762f6.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"b00bcd89-000c-4425-b94c-716ef67762f6","versions":[{"name":"TCC Bypass via Mounted APFS Snapshot Access v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the mount_apfs command to mount the entire file system through Apple File System (APFS) snapshots as read-only and with the noowners flag set. This action enables the adversary to access almost any file in the file system, including all user data and files protected by Apple’s privacy framework (TCC).","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://theevilbit.github.io/posts/cve_2020_9771/"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion","CVE_2020_9771"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1006","name":"Direct Volume Access","reference":"https://attack.mitre.org/techniques/T1006/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category : process and event.type : (start or process_started) and process.name : mount_apfs and\n process.args : (/System/Volumes/Data and noowners)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"TCC Bypass via Mounted APFS Snapshot Access v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the mount_apfs command to mount the entire file system through Apple File System (APFS) snapshots as read-only and with the noowners flag set. This action enables the adversary to access almost any file in the file system, including all user data and files protected by Apple’s privacy framework (TCC).","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://theevilbit.github.io/posts/cve_2020_9771/"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion","CVE_2020_9771"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1006","name":"Direct Volume Access","reference":"https://attack.mitre.org/techniques/T1006/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category : process and event.type : (start or process_started) and process.name : mount_apfs and\n process.args : (/System/Volumes/Data and noowners)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"TCC Bypass via Mounted APFS Snapshot Access v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the mount_apfs command to mount the entire file system through Apple File System (APFS) snapshots as read-only and with the noowners flag set. This action enables the adversary to access almost any file in the file system, including all user data and files protected by Apple’s privacy framework (TCC).","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://theevilbit.github.io/posts/cve_2020_9771/"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion","CVE_2020_9771"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1006","name":"Direct Volume Access","reference":"https://attack.mitre.org/techniques/T1006/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category : process and event.type : (start or process_started) and process.name : mount_apfs and\n process.args : (/System/Volumes/Data and noowners)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"b00bcd89-000c-4425-b94c-716ef67762f6","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/b240bfb8-26b7-4e5e-924e-218144a3fa71.json b/fleet-packages/detection-rules-composite/kibana/security_rule/b240bfb8-26b7-4e5e-924e-218144a3fa71.json new file mode 100644 index 0000000000000..64f256621006d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/b240bfb8-26b7-4e5e-924e-218144a3fa71.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"b240bfb8-26b7-4e5e-924e-218144a3fa71","versions":[{"name":"Spike in Network Traffic v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusually large spike in network traffic. Such a burst of traffic, if not caused by a surge in business activity, can be due to suspicious or malicious activity. Large-scale data exfiltration may produce a burst of network traffic; this could also be due to unusually large amounts of reconnaissance or enumeration traffic. Denial-of-service attacks or traffic floods may also produce such a surge in traffic.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Business workflows that occur very occasionally, and involve an unusual surge in network traffic, can trigger this alert. A new business workflow or a surge in business activity may trigger this alert. A misconfigured network application or firewall may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML"],"anomaly_threshold":75,"machine_learning_job_id":"high_count_network_events","type":"machine_learning"},{"name":"Spike in Network Traffic v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusually large spike in network traffic. Such a burst of traffic, if not caused by a surge in business activity, can be due to suspicious or malicious activity. Large-scale data exfiltration may produce a burst of network traffic; this could also be due to unusually large amounts of reconnaissance or enumeration traffic. Denial-of-service attacks or traffic floods may also produce such a surge in traffic.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Business workflows that occur very occasionally, and involve an unusual surge in network traffic, can trigger this alert. A new business workflow or a surge in business activity may trigger this alert. A misconfigured network application or firewall may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML"],"anomaly_threshold":75,"machine_learning_job_id":"high_count_network_events","type":"machine_learning"},{"name":"Spike in Network Traffic v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusually large spike in network traffic. Such a burst of traffic, if not caused by a surge in business activity, can be due to suspicious or malicious activity. Large-scale data exfiltration may produce a burst of network traffic; this could also be due to unusually large amounts of reconnaissance or enumeration traffic. Denial-of-service attacks or traffic floods may also produce such a surge in traffic.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Business workflows that occur very occasionally, and involve an unusual surge in network traffic, can trigger this alert. A new business workflow or a surge in business activity may trigger this alert. A misconfigured network application or firewall may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML"],"anomaly_threshold":75,"machine_learning_job_id":"high_count_network_events","type":"machine_learning"}]},"id":"b240bfb8-26b7-4e5e-924e-218144a3fa71","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/b25a7df2-120a-4db2-bd3f-3e4b86b24bee.json b/fleet-packages/detection-rules-composite/kibana/security_rule/b25a7df2-120a-4db2-bd3f-3e4b86b24bee.json new file mode 100644 index 0000000000000..2a4036a1a79b2 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/b25a7df2-120a-4db2-bd3f-3e4b86b24bee.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"b25a7df2-120a-4db2-bd3f-3e4b86b24bee","versions":[{"name":"Remote File Copy via TeamViewer v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an executable or script file remotely downloaded via a TeamViewer transfer session.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote File Copy via TeamViewer\n\nAttackers commonly transfer tooling or malware from external systems into a compromised environment using the command\nand control channel. However, they can also abuse legitimate utilities to drop these files.\n\nTeamViewer is a remote access and remote control tool used by helpdesks and system administrators to perform various\nsupport activities. It is also frequently used by attackers and scammers to deploy malware interactively and other\nmalicious activities. This rule looks for the TeamViewer process creating files with suspicious extensions.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Contact the user to gather information about who and why was conducting the remote access.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check whether the company uses TeamViewer for the support activities and if there is a support ticket related to this\naccess.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the company relies on TeamViewer to conduct\nremote access and the triage has not identified suspicious or malicious files.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.menasec.net/2019/11/hunting-for-suspicious-use-of.html"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"},{"id":"T1219","name":"Remote Access Software","reference":"https://attack.mitre.org/techniques/T1219/"}]}],"language":"eql","query":"file where event.type == \"creation\" and process.name : \"TeamViewer.exe\" and\n file.extension : (\"exe\", \"dll\", \"scr\", \"com\", \"bat\", \"ps1\", \"vbs\", \"vbe\", \"js\", \"wsh\", \"hta\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Remote File Copy via TeamViewer v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an executable or script file remotely downloaded via a TeamViewer transfer session.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote File Copy via TeamViewer\n\nAttackers commonly transfer tooling or malware from external systems into a compromised environment using the command\nand control channel. However, they can also abuse legitimate utilities to drop these files.\n\nTeamViewer is a remote access and remote control tool used by helpdesks and system administrators to perform various\nsupport activities. It is also frequently used by attackers and scammers to deploy malware interactively and other\nmalicious activities. This rule looks for the TeamViewer process creating files with suspicious extensions.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Contact the user to gather information about who and why was conducting the remote access.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check whether the company uses TeamViewer for the support activities and if there is a support ticket related to this\naccess.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the company relies on TeamViewer to conduct\nremote access and the triage has not identified suspicious or malicious files.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.menasec.net/2019/11/hunting-for-suspicious-use-of.html"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"},{"id":"T1219","name":"Remote Access Software","reference":"https://attack.mitre.org/techniques/T1219/"}]}],"language":"eql","query":"file where event.type == \"creation\" and process.name : \"TeamViewer.exe\" and\n file.extension : (\"exe\", \"dll\", \"scr\", \"com\", \"bat\", \"ps1\", \"vbs\", \"vbe\", \"js\", \"wsh\", \"hta\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Remote File Copy via TeamViewer v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an executable or script file remotely downloaded via a TeamViewer transfer session.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote File Copy via TeamViewer\n\nAttackers commonly transfer tooling or malware from external systems into a compromised environment using the command\nand control channel. However, they can also abuse legitimate utilities to drop these files.\n\nTeamViewer is a remote access and remote control tool used by helpdesks and system administrators to perform various\nsupport activities. It is also frequently used by attackers and scammers to deploy malware interactively and other\nmalicious activities. This rule looks for the TeamViewer process creating files with suspicious extensions.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Contact the user to gather information about who and why was conducting the remote access.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check whether the company uses TeamViewer for the support activities and if there is a support ticket related to this\naccess.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the company relies on TeamViewer to conduct\nremote access and the triage has not identified suspicious or malicious files.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.menasec.net/2019/11/hunting-for-suspicious-use-of.html"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"},{"id":"T1219","name":"Remote Access Software","reference":"https://attack.mitre.org/techniques/T1219/"}]}],"language":"eql","query":"file where event.type == \"creation\" and process.name : \"TeamViewer.exe\" and\n file.extension : (\"exe\", \"dll\", \"scr\", \"com\", \"bat\", \"ps1\", \"vbs\", \"vbe\", \"js\", \"wsh\", \"hta\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"b25a7df2-120a-4db2-bd3f-3e4b86b24bee","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/b2951150-658f-4a60-832f-a00d1e6c6745.json b/fleet-packages/detection-rules-composite/kibana/security_rule/b2951150-658f-4a60-832f-a00d1e6c6745.json new file mode 100644 index 0000000000000..b00e97677488a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/b2951150-658f-4a60-832f-a00d1e6c6745.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"b2951150-658f-4a60-832f-a00d1e6c6745","versions":[{"name":"Microsoft 365 Unusual Volume of File Deletion v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies that a user has deleted an unusually large volume of files as reported by Microsoft Cloud App Security.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Users or System Administrator cleaning out folders."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/cloud-app-security/anomaly-detection-policy","https://docs.microsoft.com/en-us/cloud-app-security/policy-template-reference"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:SecurityComplianceCenter and event.category:web and event.action:\"Unusual volume of file deletion\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Unusual Volume of File Deletion v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies that a user has deleted an unusually large volume of files as reported by Microsoft Cloud App Security.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Users or System Administrator cleaning out folders."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/cloud-app-security/anomaly-detection-policy","https://docs.microsoft.com/en-us/cloud-app-security/policy-template-reference"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:SecurityComplianceCenter and event.category:web and event.action:\"Unusual volume of file deletion\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Unusual Volume of File Deletion v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies that a user has deleted an unusually large volume of files as reported by Microsoft Cloud App Security.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Users or System Administrator cleaning out folders."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/cloud-app-security/anomaly-detection-policy","https://docs.microsoft.com/en-us/cloud-app-security/policy-template-reference"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:SecurityComplianceCenter and event.category:web and event.action:\"Unusual volume of file deletion\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"b2951150-658f-4a60-832f-a00d1e6c6745","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/b29ee2be-bf99-446c-ab1a-2dc0183394b8.json b/fleet-packages/detection-rules-composite/kibana/security_rule/b29ee2be-bf99-446c-ab1a-2dc0183394b8.json new file mode 100644 index 0000000000000..47c4e3d842e00 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/b29ee2be-bf99-446c-ab1a-2dc0183394b8.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"b29ee2be-bf99-446c-ab1a-2dc0183394b8","versions":[{"name":"Network Connection via Compiled HTML File v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Compiled HTML files (.chm) are commonly distributed as part of the Microsoft HTML Help system. Adversaries may conceal malicious code in a CHM file and deliver it to a victim for execution. CHM content is loaded by the HTML Help executable program (hh.exe).","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1204","name":"User Execution","reference":"https://attack.mitre.org/techniques/T1204/","subtechnique":[{"id":"T1204.002","name":"Malicious File","reference":"https://attack.mitre.org/techniques/T1204/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.001","name":"Compiled HTML File","reference":"https://attack.mitre.org/techniques/T1218/001/"}]}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"hh.exe\" and event.type == \"start\"]\n [network where process.name : \"hh.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\",\n \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\",\n \"100.64.0.0/10\", \"192.175.48.0/24\",\"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Network Connection via Compiled HTML File v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Compiled HTML files (.chm) are commonly distributed as part of the Microsoft HTML Help system. Adversaries may conceal malicious code in a CHM file and deliver it to a victim for execution. CHM content is loaded by the HTML Help executable program (hh.exe).","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1204","name":"User Execution","reference":"https://attack.mitre.org/techniques/T1204/","subtechnique":[{"id":"T1204.002","name":"Malicious File","reference":"https://attack.mitre.org/techniques/T1204/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.001","name":"Compiled HTML File","reference":"https://attack.mitre.org/techniques/T1218/001/"}]}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"hh.exe\" and event.type == \"start\"]\n [network where process.name : \"hh.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\",\n \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\",\n \"100.64.0.0/10\", \"192.175.48.0/24\",\"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Network Connection via Compiled HTML File v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Compiled HTML files (.chm) are commonly distributed as part of the Microsoft HTML Help system. Adversaries may conceal malicious code in a CHM file and deliver it to a victim for execution. CHM content is loaded by the HTML Help executable program (hh.exe).","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1204","name":"User Execution","reference":"https://attack.mitre.org/techniques/T1204/","subtechnique":[{"id":"T1204.002","name":"Malicious File","reference":"https://attack.mitre.org/techniques/T1204/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.001","name":"Compiled HTML File","reference":"https://attack.mitre.org/techniques/T1218/001/"}]}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"hh.exe\" and event.type == \"start\"]\n [network where process.name : \"hh.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\",\n \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\",\n \"100.64.0.0/10\", \"192.175.48.0/24\",\"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"b29ee2be-bf99-446c-ab1a-2dc0183394b8","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/b347b919-665f-4aac-b9e8-68369bf2340c.json b/fleet-packages/detection-rules-composite/kibana/security_rule/b347b919-665f-4aac-b9e8-68369bf2340c.json new file mode 100644 index 0000000000000..e137341617ae6 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/b347b919-665f-4aac-b9e8-68369bf2340c.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"b347b919-665f-4aac-b9e8-68369bf2340c","versions":[{"name":"Unusual Linux Username v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected activity for a username that is not normally active, which can indicate unauthorized changes, activity by unauthorized users, lateral movement, or compromised credentials. In many organizations, new usernames are not often created apart from specific types of system activities, such as creating new accounts for new employees. These user accounts quickly become active and routine. Events from rarely used usernames can point to suspicious activity. Additionally, automated Linux fleets tend to see activity from rarely used usernames only when personnel log in to make authorized or unauthorized changes, or threat actors have acquired credentials and log in for malicious purposes. Unusual usernames can also indicate pivoting, where compromised credentials are used to try and move laterally from one host to another.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Linux User\nDetection alerts from this rule indicate activity for a Linux user name that is rare and unusual. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is this program part of an expected workflow for the user who ran this program on this host? Could this be related to troubleshooting or debugging activity by a developer or site reliability engineer?\n- Examine the history of user activity. If this user only manifested recently, it might be a service account for a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks that the user is performing.","author":["Elastic"],"false_positives":["Uncommon user activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Linux","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_anomalous_user_name"],"type":"machine_learning"},{"name":"Unusual Linux Username v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected activity for a username that is not normally active, which can indicate unauthorized changes, activity by unauthorized users, lateral movement, or compromised credentials. In many organizations, new usernames are not often created apart from specific types of system activities, such as creating new accounts for new employees. These user accounts quickly become active and routine. Events from rarely used usernames can point to suspicious activity. Additionally, automated Linux fleets tend to see activity from rarely used usernames only when personnel log in to make authorized or unauthorized changes, or threat actors have acquired credentials and log in for malicious purposes. Unusual usernames can also indicate pivoting, where compromised credentials are used to try and move laterally from one host to another.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Linux User\nDetection alerts from this rule indicate activity for a Linux user name that is rare and unusual. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is this program part of an expected workflow for the user who ran this program on this host? Could this be related to troubleshooting or debugging activity by a developer or site reliability engineer?\n- Examine the history of user activity. If this user only manifested recently, it might be a service account for a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks that the user is performing.","author":["Elastic"],"false_positives":["Uncommon user activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Linux","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_anomalous_user_name"],"type":"machine_learning"},{"name":"Unusual Linux Username v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected activity for a username that is not normally active, which can indicate unauthorized changes, activity by unauthorized users, lateral movement, or compromised credentials. In many organizations, new usernames are not often created apart from specific types of system activities, such as creating new accounts for new employees. These user accounts quickly become active and routine. Events from rarely used usernames can point to suspicious activity. Additionally, automated Linux fleets tend to see activity from rarely used usernames only when personnel log in to make authorized or unauthorized changes, or threat actors have acquired credentials and log in for malicious purposes. Unusual usernames can also indicate pivoting, where compromised credentials are used to try and move laterally from one host to another.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Linux User\nDetection alerts from this rule indicate activity for a Linux user name that is rare and unusual. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is this program part of an expected workflow for the user who ran this program on this host? Could this be related to troubleshooting or debugging activity by a developer or site reliability engineer?\n- Examine the history of user activity. If this user only manifested recently, it might be a service account for a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks that the user is performing.","author":["Elastic"],"false_positives":["Uncommon user activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Linux","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_anomalous_user_name"],"type":"machine_learning"}]},"id":"b347b919-665f-4aac-b9e8-68369bf2340c","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/b41a13c6-ba45-4bab-a534-df53d0cfed6a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/b41a13c6-ba45-4bab-a534-df53d0cfed6a.json new file mode 100644 index 0000000000000..f87162b6f5993 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/b41a13c6-ba45-4bab-a534-df53d0cfed6a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"b41a13c6-ba45-4bab-a534-df53d0cfed6a","versions":[{"name":"Suspicious Endpoint Security Parent Process v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A suspicious Endpoint Security parent process was detected. This may indicate a process hollowing or other form of code injection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"esensor.exe\", \"elastic-endpoint.exe\") and\n process.parent.executable != null and\n /* add FPs here */\n not process.parent.executable : (\"C:\\\\Program Files\\\\Elastic\\\\*\",\n \"C:\\\\Windows\\\\System32\\\\services.exe\",\n \"C:\\\\Windows\\\\System32\\\\WerFault*.exe\",\n \"C:\\\\Windows\\\\System32\\\\wermgr.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious Endpoint Security Parent Process v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A suspicious Endpoint Security parent process was detected. This may indicate a process hollowing or other form of code injection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"esensor.exe\", \"elastic-endpoint.exe\") and\n process.parent.executable != null and\n /* add FPs here */\n not process.parent.executable : (\"C:\\\\Program Files\\\\Elastic\\\\*\",\n \"C:\\\\Windows\\\\System32\\\\services.exe\",\n \"C:\\\\Windows\\\\System32\\\\WerFault*.exe\",\n \"C:\\\\Windows\\\\System32\\\\wermgr.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious Endpoint Security Parent Process v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A suspicious Endpoint Security parent process was detected. This may indicate a process hollowing or other form of code injection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"esensor.exe\", \"elastic-endpoint.exe\") and\n process.parent.executable != null and\n /* add FPs here */\n not process.parent.executable : (\"C:\\\\Program Files\\\\Elastic\\\\*\",\n \"C:\\\\Windows\\\\System32\\\\services.exe\",\n \"C:\\\\Windows\\\\System32\\\\WerFault*.exe\",\n \"C:\\\\Windows\\\\System32\\\\wermgr.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"b41a13c6-ba45-4bab-a534-df53d0cfed6a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/b4449455-f986-4b5a-82ed-e36b129331f7.json b/fleet-packages/detection-rules-composite/kibana/security_rule/b4449455-f986-4b5a-82ed-e36b129331f7.json new file mode 100644 index 0000000000000..1c074591b147e --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/b4449455-f986-4b5a-82ed-e36b129331f7.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"b4449455-f986-4b5a-82ed-e36b129331f7","versions":[{"name":"Potential Persistence via Atom Init Script Modification v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to the Atom desktop text editor Init File. Adversaries may add malicious JavaScript code to the init.coffee file that will be executed upon the Atom application opening.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/D00MFist/PersistentJXA/blob/master/AtomPersist.js","https://flight-manual.atom.io/hacking-atom/sections/the-init-file/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1037","name":"Boot or Logon Initialization Scripts","reference":"https://attack.mitre.org/techniques/T1037/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:\"file\" and not event.type:\"deletion\" and\n file.path:/Users/*/.atom/init.coffee and not process.name:(Atom or xpcproxy) and not user.name:root\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},{"name":"Potential Persistence via Atom Init Script Modification v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to the Atom desktop text editor Init File. Adversaries may add malicious JavaScript code to the init.coffee file that will be executed upon the Atom application opening.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/D00MFist/PersistentJXA/blob/master/AtomPersist.js","https://flight-manual.atom.io/hacking-atom/sections/the-init-file/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1037","name":"Boot or Logon Initialization Scripts","reference":"https://attack.mitre.org/techniques/T1037/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:\"file\" and not event.type:\"deletion\" and\n file.path:/Users/*/.atom/init.coffee and not process.name:(Atom or xpcproxy) and not user.name:root\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},{"name":"Potential Persistence via Atom Init Script Modification v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to the Atom desktop text editor Init File. Adversaries may add malicious JavaScript code to the init.coffee file that will be executed upon the Atom application opening.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/D00MFist/PersistentJXA/blob/master/AtomPersist.js","https://flight-manual.atom.io/hacking-atom/sections/the-init-file/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1037","name":"Boot or Logon Initialization Scripts","reference":"https://attack.mitre.org/techniques/T1037/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:\"file\" and not event.type:\"deletion\" and\n file.path:/Users/*/.atom/init.coffee and not process.name:(Atom or xpcproxy) and not user.name:root\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]}]},"id":"b4449455-f986-4b5a-82ed-e36b129331f7","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/b45ab1d2-712f-4f01-a751-df3826969807.json b/fleet-packages/detection-rules-composite/kibana/security_rule/b45ab1d2-712f-4f01-a751-df3826969807.json new file mode 100644 index 0000000000000..731b614cba8ef --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/b45ab1d2-712f-4f01-a751-df3826969807.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"b45ab1d2-712f-4f01-a751-df3826969807","versions":[{"name":"AWS STS GetSessionToken Abuse v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the suspicious use of GetSessionToken. Tokens could be created and used by attackers to move laterally and escalate privileges.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["GetSessionToken may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. GetSessionToken from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.001","name":"Application Access Token","reference":"https://attack.mitre.org/techniques/T1550/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:sts.amazonaws.com and event.action:GetSessionToken and\naws.cloudtrail.user_identity.type:IAMUser and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.user_identity.type","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS STS GetSessionToken Abuse v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the suspicious use of GetSessionToken. Tokens could be created and used by attackers to move laterally and escalate privileges.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["GetSessionToken may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. GetSessionToken from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.001","name":"Application Access Token","reference":"https://attack.mitre.org/techniques/T1550/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:sts.amazonaws.com and event.action:GetSessionToken and\naws.cloudtrail.user_identity.type:IAMUser and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.user_identity.type","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS STS GetSessionToken Abuse v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the suspicious use of GetSessionToken. Tokens could be created and used by attackers to move laterally and escalate privileges.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["GetSessionToken may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. GetSessionToken from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.001","name":"Application Access Token","reference":"https://attack.mitre.org/techniques/T1550/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:sts.amazonaws.com and event.action:GetSessionToken and\naws.cloudtrail.user_identity.type:IAMUser and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.user_identity.type","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"b45ab1d2-712f-4f01-a751-df3826969807","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/b4bb1440-0fcb-4ed1-87e5-b06d58efc5e9.json b/fleet-packages/detection-rules-composite/kibana/security_rule/b4bb1440-0fcb-4ed1-87e5-b06d58efc5e9.json new file mode 100644 index 0000000000000..8ea35ed609512 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/b4bb1440-0fcb-4ed1-87e5-b06d58efc5e9.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"b4bb1440-0fcb-4ed1-87e5-b06d58efc5e9","versions":[{"name":"Attempt to Delete an Okta Policy v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to delete an Okta policy. An adversary may attempt to delete an Okta policy in order to weaken an organization's security controls. For example, an adversary may attempt to delete an Okta multi-factor authentication (MFA) policy in order to weaken the authentication requirements for user accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Okta policies are regularly deleted in your organization."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/Security_Policies.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.lifecycle.delete\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Delete an Okta Policy v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to delete an Okta policy. An adversary may attempt to delete an Okta policy in order to weaken an organization's security controls. For example, an adversary may attempt to delete an Okta multi-factor authentication (MFA) policy in order to weaken the authentication requirements for user accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Okta policies are regularly deleted in your organization."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/Security_Policies.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.lifecycle.delete\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Delete an Okta Policy v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to delete an Okta policy. An adversary may attempt to delete an Okta policy in order to weaken an organization's security controls. For example, an adversary may attempt to delete an Okta multi-factor authentication (MFA) policy in order to weaken the authentication requirements for user accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Okta policies are regularly deleted in your organization."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/Security_Policies.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.lifecycle.delete\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"b4bb1440-0fcb-4ed1-87e5-b06d58efc5e9","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/b5877334-677f-4fb9-86d5-a9721274223b.json b/fleet-packages/detection-rules-composite/kibana/security_rule/b5877334-677f-4fb9-86d5-a9721274223b.json new file mode 100644 index 0000000000000..5e271fba23d36 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/b5877334-677f-4fb9-86d5-a9721274223b.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"b5877334-677f-4fb9-86d5-a9721274223b","versions":[{"name":"Clearing Windows Console History v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user attempts to clear console history. An adversary may clear the command history of a compromised account to conceal the actions undertaken during an intrusion.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Clearing Windows Console History\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can try to cover their tracks by clearing PowerShell console history. PowerShell has two different ways of\nlogging commands: the built-in history and the command history managed by the PSReadLine module. This rule looks for the\nexecution of commands that can clear the built-in PowerShell logs or delete the `ConsoleHost_history.txt` file.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n - Verify if any other anti-forensics behaviors were observed.\n- Investigate the PowerShell logs on the SIEM to determine if there was suspicious behavior that an attacker may be\ntrying to cover up.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n - Ensure that PowerShell auditing policies and log collection are in place to grant future visibility.","timestamp_override":"event.ingested","author":["Austin Songer"],"from":"now-9m","references":["https://stefanos.cloud/kb/how-to-clear-the-powershell-command-history/","https://www.shellhacks.com/clear-history-powershell/","https://community.sophos.com/sophos-labs/b/blog/posts/powershell-command-history-forensics"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.003","name":"Clear Command History","reference":"https://attack.mitre.org/techniques/T1070/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") or process.pe.original_file_name == \"PowerShell.EXE\") and\n (process.args : \"*Clear-History*\" or\n (process.args : (\"*Remove-Item*\", \"rm\") and process.args : (\"*ConsoleHost_history.txt*\", \"*(Get-PSReadlineOption).HistorySavePath*\")) or\n (process.args : \"*Set-PSReadlineOption*\" and process.args : \"*SaveNothing*\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Clearing Windows Console History v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user attempts to clear console history. An adversary may clear the command history of a compromised account to conceal the actions undertaken during an intrusion.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Clearing Windows Console History\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can try to cover their tracks by clearing PowerShell console history. PowerShell has two different ways of\nlogging commands: the built-in history and the command history managed by the PSReadLine module. This rule looks for the\nexecution of commands that can clear the built-in PowerShell logs or delete the `ConsoleHost_history.txt` file.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n - Verify if any other anti-forensics behaviors were observed.\n- Investigate the PowerShell logs on the SIEM to determine if there was suspicious behavior that an attacker may be\ntrying to cover up.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n - Ensure that PowerShell auditing policies and log collection are in place to grant future visibility.","timestamp_override":"event.ingested","author":["Austin Songer"],"from":"now-9m","references":["https://stefanos.cloud/kb/how-to-clear-the-powershell-command-history/","https://www.shellhacks.com/clear-history-powershell/","https://community.sophos.com/sophos-labs/b/blog/posts/powershell-command-history-forensics"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.003","name":"Clear Command History","reference":"https://attack.mitre.org/techniques/T1070/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") or process.pe.original_file_name == \"PowerShell.EXE\") and\n (process.args : \"*Clear-History*\" or\n (process.args : (\"*Remove-Item*\", \"rm\") and process.args : (\"*ConsoleHost_history.txt*\", \"*(Get-PSReadlineOption).HistorySavePath*\")) or\n (process.args : \"*Set-PSReadlineOption*\" and process.args : \"*SaveNothing*\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Clearing Windows Console History v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user attempts to clear console history. An adversary may clear the command history of a compromised account to conceal the actions undertaken during an intrusion.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Clearing Windows Console History\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can try to cover their tracks by clearing PowerShell console history. PowerShell has two different ways of\nlogging commands: the built-in history and the command history managed by the PSReadLine module. This rule looks for the\nexecution of commands that can clear the built-in PowerShell logs or delete the `ConsoleHost_history.txt` file.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n - Verify if any other anti-forensics behaviors were observed.\n- Investigate the PowerShell logs on the SIEM to determine if there was suspicious behavior that an attacker may be\ntrying to cover up.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n - Ensure that PowerShell auditing policies and log collection are in place to grant future visibility.","timestamp_override":"event.ingested","author":["Austin Songer"],"from":"now-9m","references":["https://stefanos.cloud/kb/how-to-clear-the-powershell-command-history/","https://www.shellhacks.com/clear-history-powershell/","https://community.sophos.com/sophos-labs/b/blog/posts/powershell-command-history-forensics"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.003","name":"Clear Command History","reference":"https://attack.mitre.org/techniques/T1070/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") or process.pe.original_file_name == \"PowerShell.EXE\") and\n (process.args : \"*Clear-History*\" or\n (process.args : (\"*Remove-Item*\", \"rm\") and process.args : (\"*ConsoleHost_history.txt*\", \"*(Get-PSReadlineOption).HistorySavePath*\")) or\n (process.args : \"*Set-PSReadlineOption*\" and process.args : \"*SaveNothing*\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"b5877334-677f-4fb9-86d5-a9721274223b","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/b5ea4bfe-a1b2-421f-9d47-22a75a6f2921.json b/fleet-packages/detection-rules-composite/kibana/security_rule/b5ea4bfe-a1b2-421f-9d47-22a75a6f2921.json new file mode 100644 index 0000000000000..c596ce00cf51a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/b5ea4bfe-a1b2-421f-9d47-22a75a6f2921.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"b5ea4bfe-a1b2-421f-9d47-22a75a6f2921","versions":[{"name":"Volume Shadow Copy Deleted or Resized via VssAdmin v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of vssadmin.exe for shadow copy deletion or resizing on endpoints. This commonly occurs in tandem with ransomware or other destructive attacks.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Volume Shadow Copy Deleted or Resized via VssAdmin\n\nThe Volume Shadow Copy Service (VSS) is a Windows feature that enables system administrators to take snapshots of volumes\nthat can later be restored or mounted to recover specific files or folders.\n\nA typical step in the playbook of an attacker attempting to deploy ransomware is to delete Volume Shadow\nCopies to ensure that victims have no alternative to paying the ransom, making any action that deletes shadow\ncopies worth monitoring.\n\nThis rule monitors the execution of Vssadmin.exe to either delete or resize shadow copies.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- In the case of a resize operation, check if the resize value is equal to suspicious values, like 401MB.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- If unsigned files are found on the process tree, retrieve them and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Use process name, command line, and file hash to search for occurrences in other hosts.\n- Check if any files on the host machine have been encrypted.\n\n\n### False positive analysis\n\n- This rule may produce benign true positives (B-TPs). If this activity is expected and noisy in your\nenvironment, consider adding exceptions — preferably with a combination of user and command line conditions.\n\n### Related rules\n\n- Volume Shadow Copy Deleted or Resized via VssAdmin - b5ea4bfe-a1b2-421f-9d47-22a75a6f2921\n- Volume Shadow Copy Deletion via PowerShell - d99a037b-c8e2-47a5-97b9-170d076827c4\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- Priority should be given due to the advanced stage of this activity on the attack.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- If data was encrypted, deleted, or modified, activate your data recovery plan.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Perform data recovery locally or restore the backups from replicated copies (cloud, other servers, etc.).\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"process where event.type == \"start\"\n and (process.name : \"vssadmin.exe\" or process.pe.original_file_name == \"VSSADMIN.EXE\") and\n process.args in (\"delete\", \"resize\") and process.args : \"shadows*\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Volume Shadow Copy Deleted or Resized via VssAdmin v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of vssadmin.exe for shadow copy deletion or resizing on endpoints. This commonly occurs in tandem with ransomware or other destructive attacks.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Volume Shadow Copy Deleted or Resized via VssAdmin\n\nThe Volume Shadow Copy Service (VSS) is a Windows feature that enables system administrators to take snapshots of volumes\nthat can later be restored or mounted to recover specific files or folders.\n\nA typical step in the playbook of an attacker attempting to deploy ransomware is to delete Volume Shadow\nCopies to ensure that victims have no alternative to paying the ransom, making any action that deletes shadow\ncopies worth monitoring.\n\nThis rule monitors the execution of Vssadmin.exe to either delete or resize shadow copies.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- In the case of a resize operation, check if the resize value is equal to suspicious values, like 401MB.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- If unsigned files are found on the process tree, retrieve them and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Use process name, command line, and file hash to search for occurrences in other hosts.\n- Check if any files on the host machine have been encrypted.\n\n\n### False positive analysis\n\n- This rule may produce benign true positives (B-TPs). If this activity is expected and noisy in your\nenvironment, consider adding exceptions — preferably with a combination of user and command line conditions.\n\n### Related rules\n\n- Volume Shadow Copy Deleted or Resized via VssAdmin - b5ea4bfe-a1b2-421f-9d47-22a75a6f2921\n- Volume Shadow Copy Deletion via PowerShell - d99a037b-c8e2-47a5-97b9-170d076827c4\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- Priority should be given due to the advanced stage of this activity on the attack.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- If data was encrypted, deleted, or modified, activate your data recovery plan.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Perform data recovery locally or restore the backups from replicated copies (cloud, other servers, etc.).\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"process where event.type == \"start\"\n and (process.name : \"vssadmin.exe\" or process.pe.original_file_name == \"VSSADMIN.EXE\") and\n process.args in (\"delete\", \"resize\") and process.args : \"shadows*\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Volume Shadow Copy Deleted or Resized via VssAdmin v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of vssadmin.exe for shadow copy deletion or resizing on endpoints. This commonly occurs in tandem with ransomware or other destructive attacks.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Volume Shadow Copy Deleted or Resized via VssAdmin\n\nThe Volume Shadow Copy Service (VSS) is a Windows feature that enables system administrators to take snapshots of volumes\nthat can later be restored or mounted to recover specific files or folders.\n\nA typical step in the playbook of an attacker attempting to deploy ransomware is to delete Volume Shadow\nCopies to ensure that victims have no alternative to paying the ransom, making any action that deletes shadow\ncopies worth monitoring.\n\nThis rule monitors the execution of Vssadmin.exe to either delete or resize shadow copies.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- In the case of a resize operation, check if the resize value is equal to suspicious values, like 401MB.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- If unsigned files are found on the process tree, retrieve them and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Use process name, command line, and file hash to search for occurrences in other hosts.\n- Check if any files on the host machine have been encrypted.\n\n\n### False positive analysis\n\n- This rule may produce benign true positives (B-TPs). If this activity is expected and noisy in your\nenvironment, consider adding exceptions — preferably with a combination of user and command line conditions.\n\n### Related rules\n\n- Volume Shadow Copy Deleted or Resized via VssAdmin - b5ea4bfe-a1b2-421f-9d47-22a75a6f2921\n- Volume Shadow Copy Deletion via PowerShell - d99a037b-c8e2-47a5-97b9-170d076827c4\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- Priority should be given due to the advanced stage of this activity on the attack.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- If data was encrypted, deleted, or modified, activate your data recovery plan.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Perform data recovery locally or restore the backups from replicated copies (cloud, other servers, etc.).\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"process where event.type == \"start\"\n and (process.name : \"vssadmin.exe\" or process.pe.original_file_name == \"VSSADMIN.EXE\") and\n process.args in (\"delete\", \"resize\") and process.args : \"shadows*\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"b5ea4bfe-a1b2-421f-9d47-22a75a6f2921","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/b627cd12-dac4-11ec-9582-f661ea17fbcd.json b/fleet-packages/detection-rules-composite/kibana/security_rule/b627cd12-dac4-11ec-9582-f661ea17fbcd.json new file mode 100644 index 0000000000000..f89d504480634 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/b627cd12-dac4-11ec-9582-f661ea17fbcd.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"b627cd12-dac4-11ec-9582-f661ea17fbcd","versions":[{"name":"Elastic Agent Service Terminated v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the Elastic endpoint agent has stopped and is no longer running on the host. Adversaries may attempt to disable security monitoring tools in an attempt to evade detection or prevention capabilities during an intrusion. This may also indicate an issue with the agent itself and should be addressed to ensure defensive measures are back in a stable state.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Windows","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"process where\n/* net, sc or wmic stopping or deleting Elastic Agent on Windows */\n(event.type == \"start\" and\n process.name : (\"net.exe\", \"sc.exe\", \"wmic.exe\",\"powershell.exe\",\"taskkill.exe\",\"PsKill.exe\",\"ProcessHacker.exe\") and\n process.args : (\"stopservice\",\"uninstall\", \"stop\", \"disabled\",\"Stop-Process\",\"terminate\",\"suspend\") and\n process.args : (\"elasticendpoint\", \"Elastic Agent\",\"elastic-agent\",\"elastic-endpoint\"))\nor\n/* service or systemctl used to stop Elastic Agent on Linux */\n(event.type == \"end\" and\n (process.name : (\"systemctl\", \"service\") and\n process.args : \"elastic-agent\" and\n process.args : \"stop\")\n or\n /* Unload Elastic Agent extension on MacOS */\n (process.name : \"kextunload\" and\n process.args : \"com.apple.iokit.EndpointSecurity\" and\n event.action : \"end\"))\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Elastic Agent Service Terminated v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the Elastic endpoint agent has stopped and is no longer running on the host. Adversaries may attempt to disable security monitoring tools in an attempt to evade detection or prevention capabilities during an intrusion. This may also indicate an issue with the agent itself and should be addressed to ensure defensive measures are back in a stable state.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Windows","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"process where\n/* net, sc or wmic stopping or deleting Elastic Agent on Windows */\n(event.type == \"start\" and\n process.name : (\"net.exe\", \"sc.exe\", \"wmic.exe\",\"powershell.exe\",\"taskkill.exe\",\"PsKill.exe\",\"ProcessHacker.exe\") and\n process.args : (\"stopservice\",\"uninstall\", \"stop\", \"disabled\",\"Stop-Process\",\"terminate\",\"suspend\") and\n process.args : (\"elasticendpoint\", \"Elastic Agent\",\"elastic-agent\",\"elastic-endpoint\"))\nor\n/* service or systemctl used to stop Elastic Agent on Linux */\n(event.type == \"end\" and\n (process.name : (\"systemctl\", \"service\") and\n process.args : \"elastic-agent\" and\n process.args : \"stop\")\n or\n /* Unload Elastic Agent extension on MacOS */\n (process.name : \"kextunload\" and\n process.args : \"com.apple.iokit.EndpointSecurity\" and\n event.action : \"end\"))\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Elastic Agent Service Terminated v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the Elastic endpoint agent has stopped and is no longer running on the host. Adversaries may attempt to disable security monitoring tools in an attempt to evade detection or prevention capabilities during an intrusion. This may also indicate an issue with the agent itself and should be addressed to ensure defensive measures are back in a stable state.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Windows","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"process where\n/* net, sc or wmic stopping or deleting Elastic Agent on Windows */\n(event.type == \"start\" and\n process.name : (\"net.exe\", \"sc.exe\", \"wmic.exe\",\"powershell.exe\",\"taskkill.exe\",\"PsKill.exe\",\"ProcessHacker.exe\") and\n process.args : (\"stopservice\",\"uninstall\", \"stop\", \"disabled\",\"Stop-Process\",\"terminate\",\"suspend\") and\n process.args : (\"elasticendpoint\", \"Elastic Agent\",\"elastic-agent\",\"elastic-endpoint\"))\nor\n/* service or systemctl used to stop Elastic Agent on Linux */\n(event.type == \"end\" and\n (process.name : (\"systemctl\", \"service\") and\n process.args : \"elastic-agent\" and\n process.args : \"stop\")\n or\n /* Unload Elastic Agent extension on MacOS */\n (process.name : \"kextunload\" and\n process.args : \"com.apple.iokit.EndpointSecurity\" and\n event.action : \"end\"))\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"b627cd12-dac4-11ec-9582-f661ea17fbcd","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/b64b183e-1a76-422d-9179-7b389513e74d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/b64b183e-1a76-422d-9179-7b389513e74d.json new file mode 100644 index 0000000000000..648739d640a7c --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/b64b183e-1a76-422d-9179-7b389513e74d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"b64b183e-1a76-422d-9179-7b389513e74d","versions":[{"name":"Windows Script Interpreter Executing Process via WMI v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the built-in Windows script interpreters (cscript.exe or wscript.exe) being used to execute a process via Windows Management Instrumentation (WMI). This may be indicative of malicious activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan = 5s\n [any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : \"wmiutils.dll\" or file.name : \"wmiutils.dll\") and process.name : (\"wscript.exe\", \"cscript.exe\")]\n [process where event.type == \"start\" and\n process.parent.name : \"wmiprvse.exe\" and\n user.domain != \"NT AUTHORITY\" and\n (process.pe.original_file_name :\n (\n \"cscript.exe\",\n \"wscript.exe\",\n \"PowerShell.EXE\",\n \"Cmd.Exe\",\n \"MSHTA.EXE\",\n \"RUNDLL32.EXE\",\n \"REGSVR32.EXE\",\n \"MSBuild.exe\",\n \"InstallUtil.exe\",\n \"RegAsm.exe\",\n \"RegSvcs.exe\",\n \"msxsl.exe\",\n \"CONTROL.EXE\",\n \"EXPLORER.EXE\",\n \"Microsoft.Workflow.Compiler.exe\",\n \"msiexec.exe\"\n ) or\n process.executable : (\"C:\\\\Users\\\\*.exe\", \"C:\\\\ProgramData\\\\*.exe\")\n )\n ]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}]},{"name":"Windows Script Interpreter Executing Process via WMI v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the built-in Windows script interpreters (cscript.exe or wscript.exe) being used to execute a process via Windows Management Instrumentation (WMI). This may be indicative of malicious activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan = 5s\n [any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : \"wmiutils.dll\" or file.name : \"wmiutils.dll\") and process.name : (\"wscript.exe\", \"cscript.exe\")]\n [process where event.type == \"start\" and\n process.parent.name : \"wmiprvse.exe\" and\n user.domain != \"NT AUTHORITY\" and\n (process.pe.original_file_name :\n (\n \"cscript.exe\",\n \"wscript.exe\",\n \"PowerShell.EXE\",\n \"Cmd.Exe\",\n \"MSHTA.EXE\",\n \"RUNDLL32.EXE\",\n \"REGSVR32.EXE\",\n \"MSBuild.exe\",\n \"InstallUtil.exe\",\n \"RegAsm.exe\",\n \"RegSvcs.exe\",\n \"msxsl.exe\",\n \"CONTROL.EXE\",\n \"EXPLORER.EXE\",\n \"Microsoft.Workflow.Compiler.exe\",\n \"msiexec.exe\"\n ) or\n process.executable : (\"C:\\\\Users\\\\*.exe\", \"C:\\\\ProgramData\\\\*.exe\")\n )\n ]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}]},{"name":"Windows Script Interpreter Executing Process via WMI v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the built-in Windows script interpreters (cscript.exe or wscript.exe) being used to execute a process via Windows Management Instrumentation (WMI). This may be indicative of malicious activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan = 5s\n [any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : \"wmiutils.dll\" or file.name : \"wmiutils.dll\") and process.name : (\"wscript.exe\", \"cscript.exe\")]\n [process where event.type == \"start\" and\n process.parent.name : \"wmiprvse.exe\" and\n user.domain != \"NT AUTHORITY\" and\n (process.pe.original_file_name :\n (\n \"cscript.exe\",\n \"wscript.exe\",\n \"PowerShell.EXE\",\n \"Cmd.Exe\",\n \"MSHTA.EXE\",\n \"RUNDLL32.EXE\",\n \"REGSVR32.EXE\",\n \"MSBuild.exe\",\n \"InstallUtil.exe\",\n \"RegAsm.exe\",\n \"RegSvcs.exe\",\n \"msxsl.exe\",\n \"CONTROL.EXE\",\n \"EXPLORER.EXE\",\n \"Microsoft.Workflow.Compiler.exe\",\n \"msiexec.exe\"\n ) or\n process.executable : (\"C:\\\\Users\\\\*.exe\", \"C:\\\\ProgramData\\\\*.exe\")\n )\n ]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}]}]},"id":"b64b183e-1a76-422d-9179-7b389513e74d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/b6dce542-2b75-4ffb-b7d6-38787298ba9d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/b6dce542-2b75-4ffb-b7d6-38787298ba9d.json new file mode 100644 index 0000000000000..7ff607bfed041 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/b6dce542-2b75-4ffb-b7d6-38787298ba9d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"b6dce542-2b75-4ffb-b7d6-38787298ba9d","versions":[{"name":"Azure Event Hub Authorization Rule Created or Updated v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Event Hub Authorization Rule is created or updated in Azure. An authorization rule is associated with specific rights, and carries a pair of cryptographic keys. When you create an Event Hubs namespace, a policy rule named RootManageSharedAccessKey is created for the namespace. This has manage permissions for the entire namespace and it's recommended that you treat this rule like an administrative root account and don't use it in your application.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Authorization rule additions or modifications may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Authorization rule additions or modifications from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/event-hubs/authorize-access-shared-access-signature"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1530","name":"Data from Cloud Storage Object","reference":"https://attack.mitre.org/techniques/T1530/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.EVENTHUB/NAMESPACES/AUTHORIZATIONRULES/WRITE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Event Hub Authorization Rule Created or Updated v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Event Hub Authorization Rule is created or updated in Azure. An authorization rule is associated with specific rights, and carries a pair of cryptographic keys. When you create an Event Hubs namespace, a policy rule named RootManageSharedAccessKey is created for the namespace. This has manage permissions for the entire namespace and it's recommended that you treat this rule like an administrative root account and don't use it in your application.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Authorization rule additions or modifications may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Authorization rule additions or modifications from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/event-hubs/authorize-access-shared-access-signature"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1530","name":"Data from Cloud Storage Object","reference":"https://attack.mitre.org/techniques/T1530/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.EVENTHUB/NAMESPACES/AUTHORIZATIONRULES/WRITE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Event Hub Authorization Rule Created or Updated v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Event Hub Authorization Rule is created or updated in Azure. An authorization rule is associated with specific rights, and carries a pair of cryptographic keys. When you create an Event Hubs namespace, a policy rule named RootManageSharedAccessKey is created for the namespace. This has manage permissions for the entire namespace and it's recommended that you treat this rule like an administrative root account and don't use it in your application.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Authorization rule additions or modifications may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Authorization rule additions or modifications from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/event-hubs/authorize-access-shared-access-signature"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1530","name":"Data from Cloud Storage Object","reference":"https://attack.mitre.org/techniques/T1530/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.EVENTHUB/NAMESPACES/AUTHORIZATIONRULES/WRITE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"b6dce542-2b75-4ffb-b7d6-38787298ba9d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/b719a170-3bdb-4141-b0e3-13e3cf627bfe.json b/fleet-packages/detection-rules-composite/kibana/security_rule/b719a170-3bdb-4141-b0e3-13e3cf627bfe.json new file mode 100644 index 0000000000000..40543ed7c9201 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/b719a170-3bdb-4141-b0e3-13e3cf627bfe.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"b719a170-3bdb-4141-b0e3-13e3cf627bfe","versions":[{"name":"Attempt to Deactivate an Okta Policy v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to deactivate an Okta policy. An adversary may attempt to deactivate an Okta policy in order to weaken an organization's security controls. For example, an adversary may attempt to deactivate an Okta multi-factor authentication (MFA) policy in order to weaken the authentication requirements for user accounts.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If the behavior of deactivating Okta policies is expected, consider adding exceptions to this rule to filter false positives."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/Security_Policies.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.lifecycle.deactivate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Deactivate an Okta Policy v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to deactivate an Okta policy. An adversary may attempt to deactivate an Okta policy in order to weaken an organization's security controls. For example, an adversary may attempt to deactivate an Okta multi-factor authentication (MFA) policy in order to weaken the authentication requirements for user accounts.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If the behavior of deactivating Okta policies is expected, consider adding exceptions to this rule to filter false positives."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/Security_Policies.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.lifecycle.deactivate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Deactivate an Okta Policy v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to deactivate an Okta policy. An adversary may attempt to deactivate an Okta policy in order to weaken an organization's security controls. For example, an adversary may attempt to deactivate an Okta multi-factor authentication (MFA) policy in order to weaken the authentication requirements for user accounts.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If the behavior of deactivating Okta policies is expected, consider adding exceptions to this rule to filter false positives."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/Security_Policies.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.lifecycle.deactivate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"b719a170-3bdb-4141-b0e3-13e3cf627bfe","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/b8075894-0b62-46e5-977c-31275da34419.json b/fleet-packages/detection-rules-composite/kibana/security_rule/b8075894-0b62-46e5-977c-31275da34419.json new file mode 100644 index 0000000000000..c6f1672ba7ee9 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/b8075894-0b62-46e5-977c-31275da34419.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"b8075894-0b62-46e5-977c-31275da34419","versions":[{"name":"Administrator Privileges Assigned to an Okta Group v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when an administrator role is assigned to an Okta group. An adversary may attempt to assign administrator privileges to an Okta group in order to assign additional permissions to compromised user accounts and maintain access to their target organization.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrator roles may be assigned to Okta users by a Super Admin user. Verify that the behavior was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/administrators-admin-comparison.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:group.privilege.grant\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Administrator Privileges Assigned to an Okta Group v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when an administrator role is assigned to an Okta group. An adversary may attempt to assign administrator privileges to an Okta group in order to assign additional permissions to compromised user accounts and maintain access to their target organization.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrator roles may be assigned to Okta users by a Super Admin user. Verify that the behavior was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/administrators-admin-comparison.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:group.privilege.grant\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Administrator Privileges Assigned to an Okta Group v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when an administrator role is assigned to an Okta group. An adversary may attempt to assign administrator privileges to an Okta group in order to assign additional permissions to compromised user accounts and maintain access to their target organization.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrator roles may be assigned to Okta users by a Super Admin user. Verify that the behavior was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/administrators-admin-comparison.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:group.privilege.grant\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"b8075894-0b62-46e5-977c-31275da34419","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/b83a7e96-2eb3-4edf-8346-427b6858d3bd.json b/fleet-packages/detection-rules-composite/kibana/security_rule/b83a7e96-2eb3-4edf-8346-427b6858d3bd.json new file mode 100644 index 0000000000000..61e3794a27651 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/b83a7e96-2eb3-4edf-8346-427b6858d3bd.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"b83a7e96-2eb3-4edf-8346-427b6858d3bd","versions":[{"name":"Creation or Modification of Domain Backup DPAPI private key v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of Domain Backup private keys. Adversaries may extract the Data Protection API (DPAPI) domain backup key from a Domain Controller (DC) to be able to decrypt any domain user master key file.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\nDomain DPAPI Backup keys are stored on domain controllers and can be dumped remotely with tools such as Mimikatz. The resulting .pvk private key can be used to decrypt ANY domain user masterkeys, which then can be used to decrypt any secrets protected by those keys.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.dsinternals.com/en/retrieving-dpapi-backup-keys-from-active-directory/","https://posts.specterops.io/operational-guidance-for-offensive-user-dpapi-abuse-1fb7fac8b107"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.004","name":"Private Keys","reference":"https://attack.mitre.org/techniques/T1552/004/"}]},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and file.name : (\"ntds_capi_*.pfx\", \"ntds_capi_*.pvk\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Creation or Modification of Domain Backup DPAPI private key v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of Domain Backup private keys. Adversaries may extract the Data Protection API (DPAPI) domain backup key from a Domain Controller (DC) to be able to decrypt any domain user master key file.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\nDomain DPAPI Backup keys are stored on domain controllers and can be dumped remotely with tools such as Mimikatz. The resulting .pvk private key can be used to decrypt ANY domain user masterkeys, which then can be used to decrypt any secrets protected by those keys.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.dsinternals.com/en/retrieving-dpapi-backup-keys-from-active-directory/","https://posts.specterops.io/operational-guidance-for-offensive-user-dpapi-abuse-1fb7fac8b107"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.004","name":"Private Keys","reference":"https://attack.mitre.org/techniques/T1552/004/"}]},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and file.name : (\"ntds_capi_*.pfx\", \"ntds_capi_*.pvk\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Creation or Modification of Domain Backup DPAPI private key v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of Domain Backup private keys. Adversaries may extract the Data Protection API (DPAPI) domain backup key from a Domain Controller (DC) to be able to decrypt any domain user master key file.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\nDomain DPAPI Backup keys are stored on domain controllers and can be dumped remotely with tools such as Mimikatz. The resulting .pvk private key can be used to decrypt ANY domain user masterkeys, which then can be used to decrypt any secrets protected by those keys.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.dsinternals.com/en/retrieving-dpapi-backup-keys-from-active-directory/","https://posts.specterops.io/operational-guidance-for-offensive-user-dpapi-abuse-1fb7fac8b107"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.004","name":"Private Keys","reference":"https://attack.mitre.org/techniques/T1552/004/"}]},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and file.name : (\"ntds_capi_*.pfx\", \"ntds_capi_*.pvk\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"b83a7e96-2eb3-4edf-8346-427b6858d3bd","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/b86afe07-0d98-4738-b15d-8d7465f95ff5.json b/fleet-packages/detection-rules-composite/kibana/security_rule/b86afe07-0d98-4738-b15d-8d7465f95ff5.json new file mode 100644 index 0000000000000..f9c8d853d1bd3 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/b86afe07-0d98-4738-b15d-8d7465f95ff5.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"b86afe07-0d98-4738-b15d-8d7465f95ff5","versions":[{"name":"Network Connection via MsXsl v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies msxsl.exe making a network connection. This may indicate adversarial activity as msxsl.exe is often leveraged by adversaries to execute malicious scripts and evade detection.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1220","name":"XSL Script Processing","reference":"https://attack.mitre.org/techniques/T1220/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"msxsl.exe\" and event.type == \"start\"]\n [network where process.name : \"msxsl.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\",\n \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\",\n \"100.64.0.0/10\", \"192.175.48.0/24\",\"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Network Connection via MsXsl v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies msxsl.exe making a network connection. This may indicate adversarial activity as msxsl.exe is often leveraged by adversaries to execute malicious scripts and evade detection.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1220","name":"XSL Script Processing","reference":"https://attack.mitre.org/techniques/T1220/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"msxsl.exe\" and event.type == \"start\"]\n [network where process.name : \"msxsl.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\",\n \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\",\n \"100.64.0.0/10\", \"192.175.48.0/24\",\"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Network Connection via MsXsl v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies msxsl.exe making a network connection. This may indicate adversarial activity as msxsl.exe is often leveraged by adversaries to execute malicious scripts and evade detection.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1220","name":"XSL Script Processing","reference":"https://attack.mitre.org/techniques/T1220/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"msxsl.exe\" and event.type == \"start\"]\n [network where process.name : \"msxsl.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\",\n \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\",\n \"100.64.0.0/10\", \"192.175.48.0/24\",\"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"b86afe07-0d98-4738-b15d-8d7465f95ff5","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/b90cdde7-7e0d-4359-8bf0-2c112ce2008a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/b90cdde7-7e0d-4359-8bf0-2c112ce2008a.json new file mode 100644 index 0000000000000..6b78c2feba150 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/b90cdde7-7e0d-4359-8bf0-2c112ce2008a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"b90cdde7-7e0d-4359-8bf0-2c112ce2008a","versions":[{"name":"UAC Bypass Attempt with IEditionUpgradeManager Elevated COM Interface v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to bypass User Account Control (UAC) by abusing an elevated COM Interface to launch a rogue Windows ClipUp program. Attackers may attempt to bypass UAC to stealthily execute code with elevated permissions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/hfiref0x/UACME"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.name : \"Clipup.exe\" and\n not process.executable : \"C:\\\\Windows\\\\System32\\\\ClipUp.exe\" and process.parent.name : \"dllhost.exe\" and\n /* CLSID of the Elevated COM Interface IEditionUpgradeManager */\n process.parent.args : \"/Processid:{BD54C901-076B-434E-B6C7-17C531F4AB41}\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"UAC Bypass Attempt with IEditionUpgradeManager Elevated COM Interface v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to bypass User Account Control (UAC) by abusing an elevated COM Interface to launch a rogue Windows ClipUp program. Attackers may attempt to bypass UAC to stealthily execute code with elevated permissions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/hfiref0x/UACME"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.name : \"Clipup.exe\" and\n not process.executable : \"C:\\\\Windows\\\\System32\\\\ClipUp.exe\" and process.parent.name : \"dllhost.exe\" and\n /* CLSID of the Elevated COM Interface IEditionUpgradeManager */\n process.parent.args : \"/Processid:{BD54C901-076B-434E-B6C7-17C531F4AB41}\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"UAC Bypass Attempt with IEditionUpgradeManager Elevated COM Interface v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to bypass User Account Control (UAC) by abusing an elevated COM Interface to launch a rogue Windows ClipUp program. Attackers may attempt to bypass UAC to stealthily execute code with elevated permissions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/hfiref0x/UACME"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.name : \"Clipup.exe\" and\n not process.executable : \"C:\\\\Windows\\\\System32\\\\ClipUp.exe\" and process.parent.name : \"dllhost.exe\" and\n /* CLSID of the Elevated COM Interface IEditionUpgradeManager */\n process.parent.args : \"/Processid:{BD54C901-076B-434E-B6C7-17C531F4AB41}\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"b90cdde7-7e0d-4359-8bf0-2c112ce2008a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/b910f25a-2d44-47f2-a873-aabdc0d355e6.json b/fleet-packages/detection-rules-composite/kibana/security_rule/b910f25a-2d44-47f2-a873-aabdc0d355e6.json new file mode 100644 index 0000000000000..1fb1e9b72f915 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/b910f25a-2d44-47f2-a873-aabdc0d355e6.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"b910f25a-2d44-47f2-a873-aabdc0d355e6","versions":[{"name":"Chkconfig Service Add v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of the chkconfig binary to manually add a service for management by chkconfig. Threat actors may utilize this technique to maintain persistence on a system. When a new service is added, chkconfig ensures that the service has either a start or a kill entry in every runlevel and when the system is rebooted the service file added will run providing long-term persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.intezer.com/blog/research/lightning-framework-new-linux-threat/"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Lightning Framework"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1037","name":"Boot or Logon Initialization Scripts","reference":"https://attack.mitre.org/techniques/T1037/","subtechnique":[{"id":"T1037.004","name":"RC Scripts","reference":"https://attack.mitre.org/techniques/T1037/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.executable : \"/usr/sbin/chkconfig\" and process.args : \"--add\") or\n (process.args : \"*chkconfig\" and process.args : \"--add\")\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},{"name":"Chkconfig Service Add v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of the chkconfig binary to manually add a service for management by chkconfig. Threat actors may utilize this technique to maintain persistence on a system. When a new service is added, chkconfig ensures that the service has either a start or a kill entry in every runlevel and when the system is rebooted the service file added will run providing long-term persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.intezer.com/blog/research/lightning-framework-new-linux-threat/"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Lightning Framework"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1037","name":"Boot or Logon Initialization Scripts","reference":"https://attack.mitre.org/techniques/T1037/","subtechnique":[{"id":"T1037.004","name":"RC Scripts","reference":"https://attack.mitre.org/techniques/T1037/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.executable : \"/usr/sbin/chkconfig\" and process.args : \"--add\") or\n (process.args : \"*chkconfig\" and process.args : \"--add\")\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},{"name":"Chkconfig Service Add v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of the chkconfig binary to manually add a service for management by chkconfig. Threat actors may utilize this technique to maintain persistence on a system. When a new service is added, chkconfig ensures that the service has either a start or a kill entry in every runlevel and when the system is rebooted the service file added will run providing long-term persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.intezer.com/blog/research/lightning-framework-new-linux-threat/"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Lightning Framework"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1037","name":"Boot or Logon Initialization Scripts","reference":"https://attack.mitre.org/techniques/T1037/","subtechnique":[{"id":"T1037.004","name":"RC Scripts","reference":"https://attack.mitre.org/techniques/T1037/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.executable : \"/usr/sbin/chkconfig\" and process.args : \"--add\") or\n (process.args : \"*chkconfig\" and process.args : \"--add\")\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]}]},"id":"b910f25a-2d44-47f2-a873-aabdc0d355e6","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/b946c2f7-df06-4c00-a5aa-1f6fbc7bb72c.json b/fleet-packages/detection-rules-composite/kibana/security_rule/b946c2f7-df06-4c00-a5aa-1f6fbc7bb72c.json new file mode 100644 index 0000000000000..3f431bf1523dd --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/b946c2f7-df06-4c00-a5aa-1f6fbc7bb72c.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"b946c2f7-df06-4c00-a5aa-1f6fbc7bb72c","versions":[{"name":"Multiple Alerts in Different ATT&CK Tactics on a Single Host v1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule uses alert data to determine when multiple alerts in different phases of an attack involving the same host are triggered. Analysts can use this to prioritize triage and response, as these hosts are more likely to be compromised.","risk_score":73,"severity":"high","license":"Elastic License v2","timeline_id":"4434b91a-94ca-4a89-83cb-a37cdc0532b7","timeline_title":"Alerts Involving a Single Host Timeline","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["False positives can occur because the rules may be mapped to a few MITRE ATT&CK tactics. Use the attached Timeline to determine which detections were triggered on the host."],"from":"now-24h","interval":"1h","tags":["Elastic","Threat Detection","Higher-Order Rules"],"query":"signal.rule.name:* and kibana.alert.rule.threat.tactic.id:*\n","threshold":{"field":["host.id"],"value":1,"cardinality":[{"field":"kibana.alert.rule.threat.tactic.id","value":3}]},"type":"threshold","index":[".alerts-*"],"language":"kuery","required_fields":[{"ecs":false,"name":"kibana.alert.rule.threat.tactic.id","type":"unknown"},{"ecs":false,"name":"signal.rule.name","type":"unknown"}]},{"name":"Multiple Alerts in Different ATT&CK Tactics on a Single Host v1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule uses alert data to determine when multiple alerts in different phases of an attack involving the same host are triggered. Analysts can use this to prioritize triage and response, as these hosts are more likely to be compromised.","risk_score":73,"severity":"high","license":"Elastic License v2","timeline_id":"4434b91a-94ca-4a89-83cb-a37cdc0532b7","timeline_title":"Alerts Involving a Single Host Timeline","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["False positives can occur because the rules may be mapped to a few MITRE ATT&CK tactics. Use the attached Timeline to determine which detections were triggered on the host."],"from":"now-24h","interval":"1h","tags":["Elastic","Threat Detection","Higher-Order Rules"],"query":"signal.rule.name:* and kibana.alert.rule.threat.tactic.id:*\n","threshold":{"field":["host.id"],"value":1,"cardinality":[{"field":"kibana.alert.rule.threat.tactic.id","value":3}]},"type":"threshold","index":[".alerts-*"],"language":"kuery","required_fields":[{"ecs":false,"name":"kibana.alert.rule.threat.tactic.id","type":"unknown"},{"ecs":false,"name":"signal.rule.name","type":"unknown"}]},{"name":"Multiple Alerts in Different ATT&CK Tactics on a Single Host v1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule uses alert data to determine when multiple alerts in different phases of an attack involving the same host are triggered. Analysts can use this to prioritize triage and response, as these hosts are more likely to be compromised.","risk_score":73,"severity":"high","license":"Elastic License v2","timeline_id":"4434b91a-94ca-4a89-83cb-a37cdc0532b7","timeline_title":"Alerts Involving a Single Host Timeline","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["False positives can occur because the rules may be mapped to a few MITRE ATT&CK tactics. Use the attached Timeline to determine which detections were triggered on the host."],"from":"now-24h","interval":"1h","tags":["Elastic","Threat Detection","Higher-Order Rules"],"query":"signal.rule.name:* and kibana.alert.rule.threat.tactic.id:*\n","threshold":{"field":["host.id"],"value":1,"cardinality":[{"field":"kibana.alert.rule.threat.tactic.id","value":3}]},"type":"threshold","index":[".alerts-*"],"language":"kuery","required_fields":[{"ecs":false,"name":"kibana.alert.rule.threat.tactic.id","type":"unknown"},{"ecs":false,"name":"signal.rule.name","type":"unknown"}]}]},"id":"b946c2f7-df06-4c00-a5aa-1f6fbc7bb72c","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/b9554892-5e0e-424b-83a0-5aef95aa43bf.json b/fleet-packages/detection-rules-composite/kibana/security_rule/b9554892-5e0e-424b-83a0-5aef95aa43bf.json new file mode 100644 index 0000000000000..c840d48063245 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/b9554892-5e0e-424b-83a0-5aef95aa43bf.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"b9554892-5e0e-424b-83a0-5aef95aa43bf","versions":[{"name":"Group Policy Abuse for Privilege Addition v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the first occurrence of a modification to Group Policy Object Attributes to add privileges to user accounts or use them to add users as local admins.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Group Policy Abuse for Privilege Addition\n\nGroup Policy Objects (GPOs) can be used to add rights and/or modify Group Membership on GPOs by changing the contents of an INF\nfile named GptTmpl.inf, which is responsible for storing every setting under the Security Settings container in the GPO.\nThis file is unique for each GPO, and only exists if the GPO contains security settings.\nExample Path: \"\\\\DC.com\\SysVol\\DC.com\\Policies\\{PolicyGUID}\\Machine\\Microsoft\\Windows NT\\SecEdit\\GptTmpl.inf\"\n\n#### Possible investigation steps\n\n- This attack abuses a legitimate mechanism of Active Directory, so it is important to determine whether the activity\nis legitimate and the administrator is authorized to perform this operation.\n- Retrieve the contents of the `GptTmpl.inf` file, and under the `Privilege Rights` section, look for potentially\ndangerous high privileges, for example: SeTakeOwnershipPrivilege, SeEnableDelegationPrivilege, etc.\n- Inspect the user security identifiers (SIDs) associated with these privileges, and if they should have these privileges.\n\n### False positive analysis\n\n- Inspect whether the user that has done the modifications should be allowed to. The user name can be found in the\n`winlog.event_data.SubjectUserName` field.\n\n### Related rules\n\n- Scheduled Task Execution at Scale via GPO - 15a8ba77-1c13-4274-88fe-6bd14133861e\n- Startup/Logon Script added to Group Policy Object - 16fac1a1-21ee-4ca6-b720-458e3855d046\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- The investigation and containment must be performed in every computer controlled by the GPO, where necessary.\n- Remove the script from the GPO.\n- Check if other GPOs have suspicious scripts attached.","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0025_windows_audit_directory_service_changes.md","https://labs.f-secure.com/tools/sharpgpoabuse"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1484","name":"Domain Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/","subtechnique":[{"id":"T1484.001","name":"Group Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.code: \"5136\" and winlog.event_data.AttributeLDAPDisplayName:\"gPCMachineExtensionNames\" and\nwinlog.event_data.AttributeValue:(*827D319E-6EAC-11D2-A4EA-00C04F79F83A* and *803E14A0-B4FB-11D0-A0D0-00A0C90F574B*)\n","required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeValue","type":"unknown"}],"setup":"The 'Audit Directory Service Changes' audit policy must be configured (Success Failure).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```"},{"name":"Group Policy Abuse for Privilege Addition v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the first occurrence of a modification to Group Policy Object Attributes to add privileges to user accounts or use them to add users as local admins.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Group Policy Abuse for Privilege Addition\n\nGroup Policy Objects (GPOs) can be used to add rights and/or modify Group Membership on GPOs by changing the contents of an INF\nfile named GptTmpl.inf, which is responsible for storing every setting under the Security Settings container in the GPO.\nThis file is unique for each GPO, and only exists if the GPO contains security settings.\nExample Path: \"\\\\DC.com\\SysVol\\DC.com\\Policies\\{PolicyGUID}\\Machine\\Microsoft\\Windows NT\\SecEdit\\GptTmpl.inf\"\n\n#### Possible investigation steps\n\n- This attack abuses a legitimate mechanism of Active Directory, so it is important to determine whether the activity\nis legitimate and the administrator is authorized to perform this operation.\n- Retrieve the contents of the `GptTmpl.inf` file, and under the `Privilege Rights` section, look for potentially\ndangerous high privileges, for example: SeTakeOwnershipPrivilege, SeEnableDelegationPrivilege, etc.\n- Inspect the user security identifiers (SIDs) associated with these privileges, and if they should have these privileges.\n\n### False positive analysis\n\n- Inspect whether the user that has done the modifications should be allowed to. The user name can be found in the\n`winlog.event_data.SubjectUserName` field.\n\n### Related rules\n\n- Scheduled Task Execution at Scale via GPO - 15a8ba77-1c13-4274-88fe-6bd14133861e\n- Startup/Logon Script added to Group Policy Object - 16fac1a1-21ee-4ca6-b720-458e3855d046\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- The investigation and containment must be performed in every computer controlled by the GPO, where necessary.\n- Remove the script from the GPO.\n- Check if other GPOs have suspicious scripts attached.","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0025_windows_audit_directory_service_changes.md","https://labs.f-secure.com/tools/sharpgpoabuse"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1484","name":"Domain Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/","subtechnique":[{"id":"T1484.001","name":"Group Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.code: \"5136\" and winlog.event_data.AttributeLDAPDisplayName:\"gPCMachineExtensionNames\" and\nwinlog.event_data.AttributeValue:(*827D319E-6EAC-11D2-A4EA-00C04F79F83A* and *803E14A0-B4FB-11D0-A0D0-00A0C90F574B*)\n","required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeValue","type":"unknown"}],"setup":"The 'Audit Directory Service Changes' audit policy must be configured (Success Failure).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```"},{"name":"Group Policy Abuse for Privilege Addition v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the first occurrence of a modification to Group Policy Object Attributes to add privileges to user accounts or use them to add users as local admins.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Group Policy Abuse for Privilege Addition\n\nGroup Policy Objects (GPOs) can be used to add rights and/or modify Group Membership on GPOs by changing the contents of an INF\nfile named GptTmpl.inf, which is responsible for storing every setting under the Security Settings container in the GPO.\nThis file is unique for each GPO, and only exists if the GPO contains security settings.\nExample Path: \"\\\\DC.com\\SysVol\\DC.com\\Policies\\{PolicyGUID}\\Machine\\Microsoft\\Windows NT\\SecEdit\\GptTmpl.inf\"\n\n#### Possible investigation steps\n\n- This attack abuses a legitimate mechanism of Active Directory, so it is important to determine whether the activity\nis legitimate and the administrator is authorized to perform this operation.\n- Retrieve the contents of the `GptTmpl.inf` file, and under the `Privilege Rights` section, look for potentially\ndangerous high privileges, for example: SeTakeOwnershipPrivilege, SeEnableDelegationPrivilege, etc.\n- Inspect the user security identifiers (SIDs) associated with these privileges, and if they should have these privileges.\n\n### False positive analysis\n\n- Inspect whether the user that has done the modifications should be allowed to. The user name can be found in the\n`winlog.event_data.SubjectUserName` field.\n\n### Related rules\n\n- Scheduled Task Execution at Scale via GPO - 15a8ba77-1c13-4274-88fe-6bd14133861e\n- Startup/Logon Script added to Group Policy Object - 16fac1a1-21ee-4ca6-b720-458e3855d046\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- The investigation and containment must be performed in every computer controlled by the GPO, where necessary.\n- Remove the script from the GPO.\n- Check if other GPOs have suspicious scripts attached.","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0025_windows_audit_directory_service_changes.md","https://labs.f-secure.com/tools/sharpgpoabuse"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1484","name":"Domain Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/","subtechnique":[{"id":"T1484.001","name":"Group Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.code: \"5136\" and winlog.event_data.AttributeLDAPDisplayName:\"gPCMachineExtensionNames\" and\nwinlog.event_data.AttributeValue:(*827D319E-6EAC-11D2-A4EA-00C04F79F83A* and *803E14A0-B4FB-11D0-A0D0-00A0C90F574B*)\n","required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeValue","type":"unknown"}],"setup":"The 'Audit Directory Service Changes' audit policy must be configured (Success Failure).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```"}]},"id":"b9554892-5e0e-424b-83a0-5aef95aa43bf","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/b9666521-4742-49ce-9ddc-b8e84c35acae.json b/fleet-packages/detection-rules-composite/kibana/security_rule/b9666521-4742-49ce-9ddc-b8e84c35acae.json new file mode 100644 index 0000000000000..47e3f549f04f4 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/b9666521-4742-49ce-9ddc-b8e84c35acae.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"b9666521-4742-49ce-9ddc-b8e84c35acae","versions":[{"name":"Creation of Hidden Files and Directories via CommandLine v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Users can mark specific files as hidden simply by putting a \".\" as the first character in the file or folder name. Adversaries can use this to their advantage to hide files and folders on the system for persistence and defense evasion. This rule looks for hidden files or folders in common writable directories.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain tools may create hidden temporary files or directories upon installation or as part of their normal behavior. These events can be filtered by the process arguments, username, or process name values."],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.001","name":"Hidden Files and Directories","reference":"https://attack.mitre.org/techniques/T1564/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.working_directory in (\"/tmp\", \"/var/tmp\", \"/dev/shm\") and\n process.args regex~ \"\"\"\\.[a-z0-9_\\-][a-z0-9_\\-\\.]{1,254}\"\"\" and\n not process.name in (\"ls\", \"find\", \"grep\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.working_directory","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Creation of Hidden Files and Directories via CommandLine v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Users can mark specific files as hidden simply by putting a \".\" as the first character in the file or folder name. Adversaries can use this to their advantage to hide files and folders on the system for persistence and defense evasion. This rule looks for hidden files or folders in common writable directories.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain tools may create hidden temporary files or directories upon installation or as part of their normal behavior. These events can be filtered by the process arguments, username, or process name values."],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.001","name":"Hidden Files and Directories","reference":"https://attack.mitre.org/techniques/T1564/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.working_directory in (\"/tmp\", \"/var/tmp\", \"/dev/shm\") and\n process.args regex~ \"\"\"\\.[a-z0-9_\\-][a-z0-9_\\-\\.]{1,254}\"\"\" and\n not process.name in (\"ls\", \"find\", \"grep\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.working_directory","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Creation of Hidden Files and Directories via CommandLine v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Users can mark specific files as hidden simply by putting a \".\" as the first character in the file or folder name. Adversaries can use this to their advantage to hide files and folders on the system for persistence and defense evasion. This rule looks for hidden files or folders in common writable directories.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain tools may create hidden temporary files or directories upon installation or as part of their normal behavior. These events can be filtered by the process arguments, username, or process name values."],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.001","name":"Hidden Files and Directories","reference":"https://attack.mitre.org/techniques/T1564/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.working_directory in (\"/tmp\", \"/var/tmp\", \"/dev/shm\") and\n process.args regex~ \"\"\"\\.[a-z0-9_\\-][a-z0-9_\\-\\.]{1,254}\"\"\" and\n not process.name in (\"ls\", \"find\", \"grep\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.working_directory","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"b9666521-4742-49ce-9ddc-b8e84c35acae","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/b9960fef-82c6-4816-befa-44745030e917.json b/fleet-packages/detection-rules-composite/kibana/security_rule/b9960fef-82c6-4816-befa-44745030e917.json new file mode 100644 index 0000000000000..c59056dae091f --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/b9960fef-82c6-4816-befa-44745030e917.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"b9960fef-82c6-4816-befa-44745030e917","versions":[{"name":"SolarWinds Process Disabling Services via Registry v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a SolarWinds binary modifying the start type of a service to be disabled. An adversary may abuse this technique to manipulate relevant security services.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2020/12/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor.html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1195","name":"Supply Chain Compromise","reference":"https://attack.mitre.org/techniques/T1195/","subtechnique":[{"id":"T1195.002","name":"Compromise Software Supply Chain","reference":"https://attack.mitre.org/techniques/T1195/002/"}]}]}],"language":"eql","query":"registry where registry.path : (\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\Start\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\Start\"\n ) and\n registry.data.strings : (\"4\", \"0x00000004\") and\n process.name : (\n \"SolarWinds.BusinessLayerHost*.exe\",\n \"ConfigurationWizard*.exe\",\n \"NetflowDatabaseMaintenance*.exe\",\n \"NetFlowService*.exe\",\n \"SolarWinds.Administration*.exe\",\n \"SolarWinds.Collector.Service*.exe\",\n \"SolarwindsDiagnostics*.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"SolarWinds Process Disabling Services via Registry v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a SolarWinds binary modifying the start type of a service to be disabled. An adversary may abuse this technique to manipulate relevant security services.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2020/12/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor.html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1195","name":"Supply Chain Compromise","reference":"https://attack.mitre.org/techniques/T1195/","subtechnique":[{"id":"T1195.002","name":"Compromise Software Supply Chain","reference":"https://attack.mitre.org/techniques/T1195/002/"}]}]}],"language":"eql","query":"registry where registry.path : (\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\Start\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\Start\"\n ) and\n registry.data.strings : (\"4\", \"0x00000004\") and\n process.name : (\n \"SolarWinds.BusinessLayerHost*.exe\",\n \"ConfigurationWizard*.exe\",\n \"NetflowDatabaseMaintenance*.exe\",\n \"NetFlowService*.exe\",\n \"SolarWinds.Administration*.exe\",\n \"SolarWinds.Collector.Service*.exe\",\n \"SolarwindsDiagnostics*.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"SolarWinds Process Disabling Services via Registry v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a SolarWinds binary modifying the start type of a service to be disabled. An adversary may abuse this technique to manipulate relevant security services.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2020/12/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor.html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1195","name":"Supply Chain Compromise","reference":"https://attack.mitre.org/techniques/T1195/","subtechnique":[{"id":"T1195.002","name":"Compromise Software Supply Chain","reference":"https://attack.mitre.org/techniques/T1195/002/"}]}]}],"language":"eql","query":"registry where registry.path : (\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\Start\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\Start\"\n ) and\n registry.data.strings : (\"4\", \"0x00000004\") and\n process.name : (\n \"SolarWinds.BusinessLayerHost*.exe\",\n \"ConfigurationWizard*.exe\",\n \"NetflowDatabaseMaintenance*.exe\",\n \"NetFlowService*.exe\",\n \"SolarWinds.Administration*.exe\",\n \"SolarWinds.Collector.Service*.exe\",\n \"SolarwindsDiagnostics*.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"b9960fef-82c6-4816-befa-44745030e917","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/ba342eb2-583c-439f-b04d-1fdd7c1417cc.json b/fleet-packages/detection-rules-composite/kibana/security_rule/ba342eb2-583c-439f-b04d-1fdd7c1417cc.json new file mode 100644 index 0000000000000..19c91c5787a26 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/ba342eb2-583c-439f-b04d-1fdd7c1417cc.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"ba342eb2-583c-439f-b04d-1fdd7c1417cc","versions":[{"name":"Unusual Windows Network Activity v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Windows processes that do not usually use the network but have unexpected network activity, which can indicate command-and-control, lateral movement, persistence, or data exfiltration activity. A process with unusual network activity can denote process exploitation or injection, where the process is used to run persistence mechanisms that allow a malicious actor remote access or control of the host, data exfiltration, and execution of unauthorized network applications.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Network Activity\nDetection alerts from this rule indicate the presence of network activity from a Windows process for which network activity is very unusual. Here are some possible avenues of investigation:\n- Consider the IP addresses, protocol and ports. Are these used by normal but infrequent network workflows? Are they expected or unexpected?\n- If the destination IP address is remote or external, does it associate with an expected domain, organization or geography? Note: avoid interacting directly with suspected malicious IP addresses.\n- Consider the user as identified by the username field. Is this network activity part of an expected workflow for the user who ran the program?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.\n- Consider the same for the parent process. If the parent process is a legitimate system utility or service, this could be related to software updates or system management. If the parent process is something user-facing like an Office application, this process could be more suspicious.\n- If you have file hash values in the event data, and you suspect malware, you can optionally run a search for the file hash to see if the file is identified as malware by anti-malware tools.","author":["Elastic"],"false_positives":["A newly installed program or one that rarely uses the network could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML"],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_network_activity"],"type":"machine_learning"},{"name":"Unusual Windows Network Activity v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Windows processes that do not usually use the network but have unexpected network activity, which can indicate command-and-control, lateral movement, persistence, or data exfiltration activity. A process with unusual network activity can denote process exploitation or injection, where the process is used to run persistence mechanisms that allow a malicious actor remote access or control of the host, data exfiltration, and execution of unauthorized network applications.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Network Activity\nDetection alerts from this rule indicate the presence of network activity from a Windows process for which network activity is very unusual. Here are some possible avenues of investigation:\n- Consider the IP addresses, protocol and ports. Are these used by normal but infrequent network workflows? Are they expected or unexpected?\n- If the destination IP address is remote or external, does it associate with an expected domain, organization or geography? Note: avoid interacting directly with suspected malicious IP addresses.\n- Consider the user as identified by the username field. Is this network activity part of an expected workflow for the user who ran the program?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.\n- Consider the same for the parent process. If the parent process is a legitimate system utility or service, this could be related to software updates or system management. If the parent process is something user-facing like an Office application, this process could be more suspicious.\n- If you have file hash values in the event data, and you suspect malware, you can optionally run a search for the file hash to see if the file is identified as malware by anti-malware tools.","author":["Elastic"],"false_positives":["A newly installed program or one that rarely uses the network could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML"],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_network_activity"],"type":"machine_learning"},{"name":"Unusual Windows Network Activity v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Windows processes that do not usually use the network but have unexpected network activity, which can indicate command-and-control, lateral movement, persistence, or data exfiltration activity. A process with unusual network activity can denote process exploitation or injection, where the process is used to run persistence mechanisms that allow a malicious actor remote access or control of the host, data exfiltration, and execution of unauthorized network applications.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Network Activity\nDetection alerts from this rule indicate the presence of network activity from a Windows process for which network activity is very unusual. Here are some possible avenues of investigation:\n- Consider the IP addresses, protocol and ports. Are these used by normal but infrequent network workflows? Are they expected or unexpected?\n- If the destination IP address is remote or external, does it associate with an expected domain, organization or geography? Note: avoid interacting directly with suspected malicious IP addresses.\n- Consider the user as identified by the username field. Is this network activity part of an expected workflow for the user who ran the program?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.\n- Consider the same for the parent process. If the parent process is a legitimate system utility or service, this could be related to software updates or system management. If the parent process is something user-facing like an Office application, this process could be more suspicious.\n- If you have file hash values in the event data, and you suspect malware, you can optionally run a search for the file hash to see if the file is identified as malware by anti-malware tools.","author":["Elastic"],"false_positives":["A newly installed program or one that rarely uses the network could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML"],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_network_activity"],"type":"machine_learning"}]},"id":"ba342eb2-583c-439f-b04d-1fdd7c1417cc","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/baa5d22c-5e1c-4f33-bfc9-efa73bb53022.json b/fleet-packages/detection-rules-composite/kibana/security_rule/baa5d22c-5e1c-4f33-bfc9-efa73bb53022.json new file mode 100644 index 0000000000000..41d97265b240a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/baa5d22c-5e1c-4f33-bfc9-efa73bb53022.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"baa5d22c-5e1c-4f33-bfc9-efa73bb53022","versions":[{"name":"Suspicious Image Load (taskschd.dll) from MS Office v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious image load (taskschd.dll) from Microsoft Office processes. This behavior may indicate adversarial activity where a scheduled task is configured via Windows Component Object Model (COM). This technique can be used to configure persistence and evade monitoring by avoiding the usage of the traditional Windows binary (schtasks.exe) used to manage scheduled tasks.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://medium.com/threatpunter/detecting-adversary-tradecraft-with-image-load-event-logging-and-eql-8de93338c16","https://www.clearskysec.com/wp-content/uploads/2020/10/Operation-Quicksand.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/"}]}],"language":"eql","query":"any where\n (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n process.name : (\"WINWORD.EXE\", \"EXCEL.EXE\", \"POWERPNT.EXE\", \"MSPUB.EXE\", \"MSACCESS.EXE\") and\n (dll.name : \"taskschd.dll\" or file.name : \"taskschd.dll\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious Image Load (taskschd.dll) from MS Office v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious image load (taskschd.dll) from Microsoft Office processes. This behavior may indicate adversarial activity where a scheduled task is configured via Windows Component Object Model (COM). This technique can be used to configure persistence and evade monitoring by avoiding the usage of the traditional Windows binary (schtasks.exe) used to manage scheduled tasks.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://medium.com/threatpunter/detecting-adversary-tradecraft-with-image-load-event-logging-and-eql-8de93338c16","https://www.clearskysec.com/wp-content/uploads/2020/10/Operation-Quicksand.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/"}]}],"language":"eql","query":"any where\n (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n process.name : (\"WINWORD.EXE\", \"EXCEL.EXE\", \"POWERPNT.EXE\", \"MSPUB.EXE\", \"MSACCESS.EXE\") and\n (dll.name : \"taskschd.dll\" or file.name : \"taskschd.dll\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious Image Load (taskschd.dll) from MS Office v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious image load (taskschd.dll) from Microsoft Office processes. This behavior may indicate adversarial activity where a scheduled task is configured via Windows Component Object Model (COM). This technique can be used to configure persistence and evade monitoring by avoiding the usage of the traditional Windows binary (schtasks.exe) used to manage scheduled tasks.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://medium.com/threatpunter/detecting-adversary-tradecraft-with-image-load-event-logging-and-eql-8de93338c16","https://www.clearskysec.com/wp-content/uploads/2020/10/Operation-Quicksand.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/"}]}],"language":"eql","query":"any where\n (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n process.name : (\"WINWORD.EXE\", \"EXCEL.EXE\", \"POWERPNT.EXE\", \"MSPUB.EXE\", \"MSACCESS.EXE\") and\n (dll.name : \"taskschd.dll\" or file.name : \"taskschd.dll\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"baa5d22c-5e1c-4f33-bfc9-efa73bb53022","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/bb4fe8d2-7ae2-475c-8b5d-55b449e4264f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/bb4fe8d2-7ae2-475c-8b5d-55b449e4264f.json new file mode 100644 index 0000000000000..8d230fd765e4f --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/bb4fe8d2-7ae2-475c-8b5d-55b449e4264f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"bb4fe8d2-7ae2-475c-8b5d-55b449e4264f","versions":[{"name":"Azure Resource Group Deletion v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a resource group in Azure, which includes all resources within the group. Deletion is permanent and irreversible. An adversary may delete a resource group in an attempt to evade defenses or intentionally destroy data.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Deletion of a resource group may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Resource group deletions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-portal"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.RESOURCES/SUBSCRIPTIONS/RESOURCEGROUPS/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Resource Group Deletion v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a resource group in Azure, which includes all resources within the group. Deletion is permanent and irreversible. An adversary may delete a resource group in an attempt to evade defenses or intentionally destroy data.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Deletion of a resource group may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Resource group deletions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-portal"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.RESOURCES/SUBSCRIPTIONS/RESOURCEGROUPS/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Resource Group Deletion v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a resource group in Azure, which includes all resources within the group. Deletion is permanent and irreversible. An adversary may delete a resource group in an attempt to evade defenses or intentionally destroy data.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Deletion of a resource group may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Resource group deletions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-portal"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.RESOURCES/SUBSCRIPTIONS/RESOURCEGROUPS/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"bb4fe8d2-7ae2-475c-8b5d-55b449e4264f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/bb9b13b2-1700-48a8-a750-b43b0a72ab69.json b/fleet-packages/detection-rules-composite/kibana/security_rule/bb9b13b2-1700-48a8-a750-b43b0a72ab69.json new file mode 100644 index 0000000000000..38455cba5b264 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/bb9b13b2-1700-48a8-a750-b43b0a72ab69.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"bb9b13b2-1700-48a8-a750-b43b0a72ab69","versions":[{"name":"AWS EC2 Encryption Disabled v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies disabling of Amazon Elastic Block Store (EBS) encryption by default in the current region. Disabling encryption by default does not change the encryption status of your existing volumes.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Disabling encryption may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Disabling encryption by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/disable-ebs-encryption-by-default.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisableEbsEncryptionByDefault.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Data Protection"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1565","name":"Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/","subtechnique":[{"id":"T1565.001","name":"Stored Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:DisableEbsEncryptionByDefault and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS EC2 Encryption Disabled v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies disabling of Amazon Elastic Block Store (EBS) encryption by default in the current region. Disabling encryption by default does not change the encryption status of your existing volumes.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Disabling encryption may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Disabling encryption by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/disable-ebs-encryption-by-default.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisableEbsEncryptionByDefault.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Data Protection"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1565","name":"Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/","subtechnique":[{"id":"T1565.001","name":"Stored Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:DisableEbsEncryptionByDefault and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS EC2 Encryption Disabled v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies disabling of Amazon Elastic Block Store (EBS) encryption by default in the current region. Disabling encryption by default does not change the encryption status of your existing volumes.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Disabling encryption may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Disabling encryption by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/disable-ebs-encryption-by-default.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisableEbsEncryptionByDefault.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Data Protection"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1565","name":"Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/","subtechnique":[{"id":"T1565.001","name":"Stored Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:DisableEbsEncryptionByDefault and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"bb9b13b2-1700-48a8-a750-b43b0a72ab69","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/bba1b212-b85c-41c6-9b28-be0e5cdfc9b1.json b/fleet-packages/detection-rules-composite/kibana/security_rule/bba1b212-b85c-41c6-9b28-be0e5cdfc9b1.json new file mode 100644 index 0000000000000..d66c6c2d4f198 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/bba1b212-b85c-41c6-9b28-be0e5cdfc9b1.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"bba1b212-b85c-41c6-9b28-be0e5cdfc9b1","versions":[{"name":"OneDrive Malware File Upload v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the occurence of files uploaded to OneDrive being detected as Malware by the file scanning engine. Attackers can use File Sharing and Organization Repositories to spread laterally within the company and amplify their access. Users can inadvertently share these files without knowing their maliciousness, giving adversaries opportunity to gain initial access to other endpoints in the environment.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Benign files can trigger signatures in the built-in virus protection"],"from":"now-30m","references":["https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/virus-detection-in-spo?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1080","name":"Taint Shared Content","reference":"https://attack.mitre.org/techniques/T1080/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:OneDrive and event.code:SharePointFileOperation and event.action:FileMalwareDetected\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"OneDrive Malware File Upload v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the occurence of files uploaded to OneDrive being detected as Malware by the file scanning engine. Attackers can use File Sharing and Organization Repositories to spread laterally within the company and amplify their access. Users can inadvertently share these files without knowing their maliciousness, giving adversaries opportunity to gain initial access to other endpoints in the environment.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Benign files can trigger signatures in the built-in virus protection"],"from":"now-30m","references":["https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/virus-detection-in-spo?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1080","name":"Taint Shared Content","reference":"https://attack.mitre.org/techniques/T1080/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:OneDrive and event.code:SharePointFileOperation and event.action:FileMalwareDetected\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"OneDrive Malware File Upload v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the occurence of files uploaded to OneDrive being detected as Malware by the file scanning engine. Attackers can use File Sharing and Organization Repositories to spread laterally within the company and amplify their access. Users can inadvertently share these files without knowing their maliciousness, giving adversaries opportunity to gain initial access to other endpoints in the environment.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Benign files can trigger signatures in the built-in virus protection"],"from":"now-30m","references":["https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/virus-detection-in-spo?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1080","name":"Taint Shared Content","reference":"https://attack.mitre.org/techniques/T1080/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:OneDrive and event.code:SharePointFileOperation and event.action:FileMalwareDetected\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"bba1b212-b85c-41c6-9b28-be0e5cdfc9b1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/bbd1a775-8267-41fa-9232-20e5582596ac.json b/fleet-packages/detection-rules-composite/kibana/security_rule/bbd1a775-8267-41fa-9232-20e5582596ac.json new file mode 100644 index 0000000000000..6dc39f2ef2a48 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/bbd1a775-8267-41fa-9232-20e5582596ac.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"bbd1a775-8267-41fa-9232-20e5582596ac","versions":[{"name":"Microsoft 365 Teams Custom Application Interaction Allowed v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when custom applications are allowed in Microsoft Teams. If an organization requires applications other than those available in the Teams app store, custom applications can be developed as packages and uploaded. An adversary may abuse this behavior to establish persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Custom applications may be allowed by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/deploy-and-publish/apps-upload"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:MicrosoftTeams and\nevent.category:web and event.action:TeamsTenantSettingChanged and\no365.audit.Name:\"Allow sideloading and interaction of custom apps\" and\no365.audit.NewValue:True and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Name","type":"keyword"},{"ecs":false,"name":"o365.audit.NewValue","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Teams Custom Application Interaction Allowed v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when custom applications are allowed in Microsoft Teams. If an organization requires applications other than those available in the Teams app store, custom applications can be developed as packages and uploaded. An adversary may abuse this behavior to establish persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Custom applications may be allowed by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/deploy-and-publish/apps-upload"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:MicrosoftTeams and\nevent.category:web and event.action:TeamsTenantSettingChanged and\no365.audit.Name:\"Allow sideloading and interaction of custom apps\" and\no365.audit.NewValue:True and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Name","type":"keyword"},{"ecs":false,"name":"o365.audit.NewValue","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Teams Custom Application Interaction Allowed v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when custom applications are allowed in Microsoft Teams. If an organization requires applications other than those available in the Teams app store, custom applications can be developed as packages and uploaded. An adversary may abuse this behavior to establish persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Custom applications may be allowed by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/deploy-and-publish/apps-upload"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:MicrosoftTeams and\nevent.category:web and event.action:TeamsTenantSettingChanged and\no365.audit.Name:\"Allow sideloading and interaction of custom apps\" and\no365.audit.NewValue:True and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Name","type":"keyword"},{"ecs":false,"name":"o365.audit.NewValue","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"bbd1a775-8267-41fa-9232-20e5582596ac","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/bc0c6f0d-dab0-47a3-b135-0925f0a333bc.json b/fleet-packages/detection-rules-composite/kibana/security_rule/bc0c6f0d-dab0-47a3-b135-0925f0a333bc.json new file mode 100644 index 0000000000000..d63c52ac460a8 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/bc0c6f0d-dab0-47a3-b135-0925f0a333bc.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"bc0c6f0d-dab0-47a3-b135-0925f0a333bc","versions":[{"name":"AWS Root Login Without MFA v103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to login to AWS as the root user without using multi-factor authentication (MFA). Amazon AWS best practices indicate that the root user should be protected by MFA.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS Root Login Without MFA\n\nMulti-factor authentication (MFA) in AWS is a simple best practice that adds an extra layer of protection on top of your\nuser name and password. With MFA enabled, when a user signs in to an AWS Management Console, they will be prompted for\ntheir user name and password, as well as for an authentication code from their AWS MFA device. Taken together, these\nmultiple factors provide increased security for your AWS account settings and resources.\n\nFor more information about using MFA in AWS, access the [official documentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html).\n\nThe AWS root account is the one identity that has complete access to all AWS services and resources in the account,\nwhich is created when the AWS account is created. AWS strongly recommends that you do not use the root user for your\neveryday tasks, even the administrative ones. Instead, adhere to the best practice of using the root user only to create\nyour first IAM user. Then securely lock away the root user credentials and use them to perform only a few account and\nservice management tasks. Amazon provides a [list of the tasks that require root user](https://docs.aws.amazon.com/general/latest/gr/root-vs-iam.html#aws_tasks-that-require-root).\n\nThis rule looks for attempts to log in to AWS as the root user without using multi-factor authentication (MFA), meaning\nthe account is not secured properly.\n\n#### Possible investigation steps\n\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Examine whether this activity is common in the environment by looking for past occurrences on your logs.\n- Consider the source IP address and geolocation for the calling user who issued the command. Do they look normal for the\n calling user?\n- Examine the commands, API calls, and data management actions performed by the account in the last 24 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking access to servers,\nservices, and data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- While this activity is not inherently malicious, the root account must use MFA. The security team should address any\npotential benign true positive (B-TP), as this configuration can risk the entire cloud environment.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Identify the services or servers involved criticality.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify if there are any regulatory or legal ramifications related to this activity.\n- Configure multi-factor authentication for the user.\n- Follow security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some organizations allow login with the root user without MFA, however, this is not considered best practice by AWS and increases the risk of compromised credentials."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:signin.amazonaws.com and event.action:ConsoleLogin and\n aws.cloudtrail.user_identity.type:Root and\n aws.cloudtrail.console_login.additional_eventdata.mfa_used:false and\n event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.console_login.additional_eventdata.mfa_used","type":"boolean"},{"ecs":false,"name":"aws.cloudtrail.user_identity.type","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Root Login Without MFA v103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to login to AWS as the root user without using multi-factor authentication (MFA). Amazon AWS best practices indicate that the root user should be protected by MFA.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS Root Login Without MFA\n\nMulti-factor authentication (MFA) in AWS is a simple best practice that adds an extra layer of protection on top of your\nuser name and password. With MFA enabled, when a user signs in to an AWS Management Console, they will be prompted for\ntheir user name and password, as well as for an authentication code from their AWS MFA device. Taken together, these\nmultiple factors provide increased security for your AWS account settings and resources.\n\nFor more information about using MFA in AWS, access the [official documentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html).\n\nThe AWS root account is the one identity that has complete access to all AWS services and resources in the account,\nwhich is created when the AWS account is created. AWS strongly recommends that you do not use the root user for your\neveryday tasks, even the administrative ones. Instead, adhere to the best practice of using the root user only to create\nyour first IAM user. Then securely lock away the root user credentials and use them to perform only a few account and\nservice management tasks. Amazon provides a [list of the tasks that require root user](https://docs.aws.amazon.com/general/latest/gr/root-vs-iam.html#aws_tasks-that-require-root).\n\nThis rule looks for attempts to log in to AWS as the root user without using multi-factor authentication (MFA), meaning\nthe account is not secured properly.\n\n#### Possible investigation steps\n\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Examine whether this activity is common in the environment by looking for past occurrences on your logs.\n- Consider the source IP address and geolocation for the calling user who issued the command. Do they look normal for the\n calling user?\n- Examine the commands, API calls, and data management actions performed by the account in the last 24 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking access to servers,\nservices, and data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- While this activity is not inherently malicious, the root account must use MFA. The security team should address any\npotential benign true positive (B-TP), as this configuration can risk the entire cloud environment.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Identify the services or servers involved criticality.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify if there are any regulatory or legal ramifications related to this activity.\n- Configure multi-factor authentication for the user.\n- Follow security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some organizations allow login with the root user without MFA, however, this is not considered best practice by AWS and increases the risk of compromised credentials."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:signin.amazonaws.com and event.action:ConsoleLogin and\n aws.cloudtrail.user_identity.type:Root and\n aws.cloudtrail.console_login.additional_eventdata.mfa_used:false and\n event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.console_login.additional_eventdata.mfa_used","type":"boolean"},{"ecs":false,"name":"aws.cloudtrail.user_identity.type","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Root Login Without MFA v103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to login to AWS as the root user without using multi-factor authentication (MFA). Amazon AWS best practices indicate that the root user should be protected by MFA.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS Root Login Without MFA\n\nMulti-factor authentication (MFA) in AWS is a simple best practice that adds an extra layer of protection on top of your\nuser name and password. With MFA enabled, when a user signs in to an AWS Management Console, they will be prompted for\ntheir user name and password, as well as for an authentication code from their AWS MFA device. Taken together, these\nmultiple factors provide increased security for your AWS account settings and resources.\n\nFor more information about using MFA in AWS, access the [official documentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html).\n\nThe AWS root account is the one identity that has complete access to all AWS services and resources in the account,\nwhich is created when the AWS account is created. AWS strongly recommends that you do not use the root user for your\neveryday tasks, even the administrative ones. Instead, adhere to the best practice of using the root user only to create\nyour first IAM user. Then securely lock away the root user credentials and use them to perform only a few account and\nservice management tasks. Amazon provides a [list of the tasks that require root user](https://docs.aws.amazon.com/general/latest/gr/root-vs-iam.html#aws_tasks-that-require-root).\n\nThis rule looks for attempts to log in to AWS as the root user without using multi-factor authentication (MFA), meaning\nthe account is not secured properly.\n\n#### Possible investigation steps\n\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Examine whether this activity is common in the environment by looking for past occurrences on your logs.\n- Consider the source IP address and geolocation for the calling user who issued the command. Do they look normal for the\n calling user?\n- Examine the commands, API calls, and data management actions performed by the account in the last 24 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking access to servers,\nservices, and data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- While this activity is not inherently malicious, the root account must use MFA. The security team should address any\npotential benign true positive (B-TP), as this configuration can risk the entire cloud environment.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Identify the services or servers involved criticality.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify if there are any regulatory or legal ramifications related to this activity.\n- Configure multi-factor authentication for the user.\n- Follow security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some organizations allow login with the root user without MFA, however, this is not considered best practice by AWS and increases the risk of compromised credentials."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:signin.amazonaws.com and event.action:ConsoleLogin and\n aws.cloudtrail.user_identity.type:Root and\n aws.cloudtrail.console_login.additional_eventdata.mfa_used:false and\n event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.console_login.additional_eventdata.mfa_used","type":"boolean"},{"ecs":false,"name":"aws.cloudtrail.user_identity.type","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"bc0c6f0d-dab0-47a3-b135-0925f0a333bc","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/bc0f2d83-32b8-4ae2-b0e6-6a45772e9331.json b/fleet-packages/detection-rules-composite/kibana/security_rule/bc0f2d83-32b8-4ae2-b0e6-6a45772e9331.json new file mode 100644 index 0000000000000..db1a97722f39d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/bc0f2d83-32b8-4ae2-b0e6-6a45772e9331.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"bc0f2d83-32b8-4ae2-b0e6-6a45772e9331","versions":[{"name":"GCP Storage Bucket Deletion v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Google Cloud Platform (GCP) storage bucket is deleted. An adversary may delete a storage bucket in order to disrupt their target's business operations.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Storage buckets may be deleted by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Bucket deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/storage/docs/key-terms#buckets"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:\"storage.buckets.delete\"\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Storage Bucket Deletion v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Google Cloud Platform (GCP) storage bucket is deleted. An adversary may delete a storage bucket in order to disrupt their target's business operations.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Storage buckets may be deleted by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Bucket deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/storage/docs/key-terms#buckets"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:\"storage.buckets.delete\"\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Storage Bucket Deletion v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Google Cloud Platform (GCP) storage bucket is deleted. An adversary may delete a storage bucket in order to disrupt their target's business operations.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Storage buckets may be deleted by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Bucket deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/storage/docs/key-terms#buckets"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:\"storage.buckets.delete\"\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"bc0f2d83-32b8-4ae2-b0e6-6a45772e9331","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/bc1eeacf-2972-434f-b782-3a532b100d67.json b/fleet-packages/detection-rules-composite/kibana/security_rule/bc1eeacf-2972-434f-b782-3a532b100d67.json new file mode 100644 index 0000000000000..95a5228d6f3d8 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/bc1eeacf-2972-434f-b782-3a532b100d67.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"bc1eeacf-2972-434f-b782-3a532b100d67","versions":[{"name":"Attempt to Install Root Certificate v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may install a root certificate on a compromised system to avoid warnings when connecting to their command and control servers. Root certificates are used in public key cryptography to identify a root certificate authority (CA). When a root certificate is installed, the system or application will trust certificates in the root's chain of trust that have been signed by the root certificate.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain applications may install root certificates for the purpose of inspecting SSL traffic."],"from":"now-9m","references":["https://ss64.com/osx/security-cert.html"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1553","name":"Subvert Trust Controls","reference":"https://attack.mitre.org/techniques/T1553/","subtechnique":[{"id":"T1553.004","name":"Install Root Certificate","reference":"https://attack.mitre.org/techniques/T1553/004/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:security and process.args:\"add-trusted-cert\" and\n not process.parent.executable:(\"/Library/Bitdefender/AVP/product/bin/BDCoreIssues\" or \"/Applications/Bitdefender/SecurityNetworkInstallerApp.app/Contents/MacOS/SecurityNetworkInstallerApp\"\n)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},{"name":"Attempt to Install Root Certificate v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may install a root certificate on a compromised system to avoid warnings when connecting to their command and control servers. Root certificates are used in public key cryptography to identify a root certificate authority (CA). When a root certificate is installed, the system or application will trust certificates in the root's chain of trust that have been signed by the root certificate.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain applications may install root certificates for the purpose of inspecting SSL traffic."],"from":"now-9m","references":["https://ss64.com/osx/security-cert.html"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1553","name":"Subvert Trust Controls","reference":"https://attack.mitre.org/techniques/T1553/","subtechnique":[{"id":"T1553.004","name":"Install Root Certificate","reference":"https://attack.mitre.org/techniques/T1553/004/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:security and process.args:\"add-trusted-cert\" and\n not process.parent.executable:(\"/Library/Bitdefender/AVP/product/bin/BDCoreIssues\" or \"/Applications/Bitdefender/SecurityNetworkInstallerApp.app/Contents/MacOS/SecurityNetworkInstallerApp\"\n)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},{"name":"Attempt to Install Root Certificate v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may install a root certificate on a compromised system to avoid warnings when connecting to their command and control servers. Root certificates are used in public key cryptography to identify a root certificate authority (CA). When a root certificate is installed, the system or application will trust certificates in the root's chain of trust that have been signed by the root certificate.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain applications may install root certificates for the purpose of inspecting SSL traffic."],"from":"now-9m","references":["https://ss64.com/osx/security-cert.html"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1553","name":"Subvert Trust Controls","reference":"https://attack.mitre.org/techniques/T1553/","subtechnique":[{"id":"T1553.004","name":"Install Root Certificate","reference":"https://attack.mitre.org/techniques/T1553/004/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:security and process.args:\"add-trusted-cert\" and\n not process.parent.executable:(\"/Library/Bitdefender/AVP/product/bin/BDCoreIssues\" or \"/Applications/Bitdefender/SecurityNetworkInstallerApp.app/Contents/MacOS/SecurityNetworkInstallerApp\"\n)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]}]},"id":"bc1eeacf-2972-434f-b782-3a532b100d67","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/bc48bba7-4a23-4232-b551-eca3ca1e3f20.json b/fleet-packages/detection-rules-composite/kibana/security_rule/bc48bba7-4a23-4232-b551-eca3ca1e3f20.json new file mode 100644 index 0000000000000..5c1b0933ba4db --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/bc48bba7-4a23-4232-b551-eca3ca1e3f20.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"bc48bba7-4a23-4232-b551-eca3ca1e3f20","versions":[{"name":"Azure Conditional Access Policy Modified v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Azure Conditional Access policy is modified. Azure Conditional Access policies control access to resources via if-then statements. For example, if a user wants to access a resource, then they must complete an action such as using multi-factor authentication to access it. An adversary may modify a Conditional Access policy in order to weaken their target's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/conditional-access/overview"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:(azure.activitylogs or azure.auditlogs) and\nevent.action:\"Update conditional access policy\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"},{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Conditional Access Policy Modified v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Azure Conditional Access policy is modified. Azure Conditional Access policies control access to resources via if-then statements. For example, if a user wants to access a resource, then they must complete an action such as using multi-factor authentication to access it. An adversary may modify a Conditional Access policy in order to weaken their target's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/conditional-access/overview"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:(azure.activitylogs or azure.auditlogs) and\nevent.action:\"Update conditional access policy\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"},{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Conditional Access Policy Modified v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Azure Conditional Access policy is modified. Azure Conditional Access policies control access to resources via if-then statements. For example, if a user wants to access a resource, then they must complete an action such as using multi-factor authentication to access it. An adversary may modify a Conditional Access policy in order to weaken their target's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/conditional-access/overview"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:(azure.activitylogs or azure.auditlogs) and\nevent.action:\"Update conditional access policy\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"},{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"bc48bba7-4a23-4232-b551-eca3ca1e3f20","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/bc8ca7e0-92fd-4b7c-b11e-ee0266b8d9c9.json b/fleet-packages/detection-rules-composite/kibana/security_rule/bc8ca7e0-92fd-4b7c-b11e-ee0266b8d9c9.json new file mode 100644 index 0000000000000..2357256316946 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/bc8ca7e0-92fd-4b7c-b11e-ee0266b8d9c9.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"bc8ca7e0-92fd-4b7c-b11e-ee0266b8d9c9","versions":[{"name":"Potential Non-Standard Port SSH connection v1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potentially malicious processes communicating via a port paring typically not associated with SSH. For example, SSH over port 2200 or port 2222 as opposed to the traditional port 22. Adversaries may make changes to the standard port a protocol uses to bypass filtering or muddle analysis/parsing of network data.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["SSH over ports apart from the traditional port 22 is highly uncommon. This rule alerts the usage of the such uncommon ports by the ssh service. Tuning is needed to have higher confidence. If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination whitelisted ports for such legitimate ssh activities."],"from":"now-9m","references":["https://attack.mitre.org/techniques/T1571/"],"tags":["Elastic","Host","Linux","Threat Detection","Command and Control","macOS"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1571","name":"Non-Standard Port","reference":"https://attack.mitre.org/techniques/T1571/"}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=1m\n[process where event.action == \"exec\" and process.name:\"ssh\"]\n[network where process.name:\"ssh\"\n and event.action in (\"connection_attempted\", \"connection_accepted\")\n and destination.port != 22\n and destination.ip != \"127.0.0.1\"\n and network.transport: \"tcp\"\n]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Potential Non-Standard Port SSH connection v1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potentially malicious processes communicating via a port paring typically not associated with SSH. For example, SSH over port 2200 or port 2222 as opposed to the traditional port 22. Adversaries may make changes to the standard port a protocol uses to bypass filtering or muddle analysis/parsing of network data.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["SSH over ports apart from the traditional port 22 is highly uncommon. This rule alerts the usage of the such uncommon ports by the ssh service. Tuning is needed to have higher confidence. If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination whitelisted ports for such legitimate ssh activities."],"from":"now-9m","references":["https://attack.mitre.org/techniques/T1571/"],"tags":["Elastic","Host","Linux","Threat Detection","Command and Control","macOS"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1571","name":"Non-Standard Port","reference":"https://attack.mitre.org/techniques/T1571/"}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=1m\n[process where event.action == \"exec\" and process.name:\"ssh\"]\n[network where process.name:\"ssh\"\n and event.action in (\"connection_attempted\", \"connection_accepted\")\n and destination.port != 22\n and destination.ip != \"127.0.0.1\"\n and network.transport: \"tcp\"\n]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Potential Non-Standard Port SSH connection v1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potentially malicious processes communicating via a port paring typically not associated with SSH. For example, SSH over port 2200 or port 2222 as opposed to the traditional port 22. Adversaries may make changes to the standard port a protocol uses to bypass filtering or muddle analysis/parsing of network data.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["SSH over ports apart from the traditional port 22 is highly uncommon. This rule alerts the usage of the such uncommon ports by the ssh service. Tuning is needed to have higher confidence. If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination whitelisted ports for such legitimate ssh activities."],"from":"now-9m","references":["https://attack.mitre.org/techniques/T1571/"],"tags":["Elastic","Host","Linux","Threat Detection","Command and Control","macOS"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1571","name":"Non-Standard Port","reference":"https://attack.mitre.org/techniques/T1571/"}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=1m\n[process where event.action == \"exec\" and process.name:\"ssh\"]\n[network where process.name:\"ssh\"\n and event.action in (\"connection_attempted\", \"connection_accepted\")\n and destination.port != 22\n and destination.ip != \"127.0.0.1\"\n and network.transport: \"tcp\"\n]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"bc8ca7e0-92fd-4b7c-b11e-ee0266b8d9c9","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/bca7d28e-4a48-47b1-adb7-5074310e9a61.json b/fleet-packages/detection-rules-composite/kibana/security_rule/bca7d28e-4a48-47b1-adb7-5074310e9a61.json new file mode 100644 index 0000000000000..0f601dd281f3a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/bca7d28e-4a48-47b1-adb7-5074310e9a61.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"bca7d28e-4a48-47b1-adb7-5074310e9a61","versions":[{"name":"GCP Service Account Disabled v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a service account is disabled in Google Cloud Platform (GCP). A service account is a special type of account used by an application or a virtual machine (VM) instance, not a person. Applications use service accounts to make authorized API calls, authorized as either the service account itself, or as G Suite or Cloud Identity users through domain-wide delegation. An adversary may disable a service account in order to disrupt to disrupt their target's business operations.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Service accounts may be disabled by system administrators. Verify that the behavior was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/iam/docs/service-accounts"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.DisableServiceAccount and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Service Account Disabled v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a service account is disabled in Google Cloud Platform (GCP). A service account is a special type of account used by an application or a virtual machine (VM) instance, not a person. Applications use service accounts to make authorized API calls, authorized as either the service account itself, or as G Suite or Cloud Identity users through domain-wide delegation. An adversary may disable a service account in order to disrupt to disrupt their target's business operations.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Service accounts may be disabled by system administrators. Verify that the behavior was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/iam/docs/service-accounts"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.DisableServiceAccount and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Service Account Disabled v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a service account is disabled in Google Cloud Platform (GCP). A service account is a special type of account used by an application or a virtual machine (VM) instance, not a person. Applications use service accounts to make authorized API calls, authorized as either the service account itself, or as G Suite or Cloud Identity users through domain-wide delegation. An adversary may disable a service account in order to disrupt to disrupt their target's business operations.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Service accounts may be disabled by system administrators. Verify that the behavior was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/iam/docs/service-accounts"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.DisableServiceAccount and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"bca7d28e-4a48-47b1-adb7-5074310e9a61","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/bd2c86a0-8b61-4457-ab38-96943984e889.json b/fleet-packages/detection-rules-composite/kibana/security_rule/bd2c86a0-8b61-4457-ab38-96943984e889.json new file mode 100644 index 0000000000000..e27897674b3d6 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/bd2c86a0-8b61-4457-ab38-96943984e889.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"bd2c86a0-8b61-4457-ab38-96943984e889","versions":[{"name":"PowerShell Keylogging Script v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of Win32 API Functions that can be used to capture user keystrokes in PowerShell scripts. Attackers use this technique to capture user input, looking for credentials and/or other valuable data.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Keylogging Script\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can abuse PowerShell capabilities to capture user keystrokes with the goal of stealing credentials and other\nvaluable information as credit card data and confidential conversations.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Investigate if the script stores the captured data locally.\n- Investigate if the script contains exfiltration capabilities and the destination of this exfiltration.\n- Assess network data to determine if the host communicated with the exfiltration server.\n\n### False positive analysis\n\n- Regular users do not have a business justification for using scripting utilities to capture keystrokes, making\nfalse positives unlikely. In the case of authorized benign true positives (B-TPs), exceptions can be added.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- The response must be prioritized if this alert involves key executives or potentially valuable targets for espionage.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/EmpireProject/Empire/blob/master/data/module_source/collection/Get-Keystrokes.ps1","https://github.com/MojtabaTajik/FunnyKeylogger/blob/master/FunnyLogger.ps1"],"tags":["Elastic","Host","Windows","Threat Detection","Collection","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1056","name":"Input Capture","reference":"https://attack.mitre.org/techniques/T1056/","subtechnique":[{"id":"T1056.001","name":"Keylogging","reference":"https://attack.mitre.org/techniques/T1056/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n (\n powershell.file.script_block_text : (GetAsyncKeyState or NtUserGetAsyncKeyState or GetKeyboardState or \"Get-Keystrokes\") or\n powershell.file.script_block_text : (\n (SetWindowsHookA or SetWindowsHookW or SetWindowsHookEx or SetWindowsHookExA or NtUserSetWindowsHookEx) and\n (GetForegroundWindow or GetWindowTextA or GetWindowTextW or \"WM_KEYBOARD_LL\")\n )\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},{"name":"PowerShell Keylogging Script v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of Win32 API Functions that can be used to capture user keystrokes in PowerShell scripts. Attackers use this technique to capture user input, looking for credentials and/or other valuable data.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Keylogging Script\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can abuse PowerShell capabilities to capture user keystrokes with the goal of stealing credentials and other\nvaluable information as credit card data and confidential conversations.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Investigate if the script stores the captured data locally.\n- Investigate if the script contains exfiltration capabilities and the destination of this exfiltration.\n- Assess network data to determine if the host communicated with the exfiltration server.\n\n### False positive analysis\n\n- Regular users do not have a business justification for using scripting utilities to capture keystrokes, making\nfalse positives unlikely. In the case of authorized benign true positives (B-TPs), exceptions can be added.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- The response must be prioritized if this alert involves key executives or potentially valuable targets for espionage.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/EmpireProject/Empire/blob/master/data/module_source/collection/Get-Keystrokes.ps1","https://github.com/MojtabaTajik/FunnyKeylogger/blob/master/FunnyLogger.ps1"],"tags":["Elastic","Host","Windows","Threat Detection","Collection","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1056","name":"Input Capture","reference":"https://attack.mitre.org/techniques/T1056/","subtechnique":[{"id":"T1056.001","name":"Keylogging","reference":"https://attack.mitre.org/techniques/T1056/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n (\n powershell.file.script_block_text : (GetAsyncKeyState or NtUserGetAsyncKeyState or GetKeyboardState or \"Get-Keystrokes\") or\n powershell.file.script_block_text : (\n (SetWindowsHookA or SetWindowsHookW or SetWindowsHookEx or SetWindowsHookExA or NtUserSetWindowsHookEx) and\n (GetForegroundWindow or GetWindowTextA or GetWindowTextW or \"WM_KEYBOARD_LL\")\n )\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},{"name":"PowerShell Keylogging Script v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of Win32 API Functions that can be used to capture user keystrokes in PowerShell scripts. Attackers use this technique to capture user input, looking for credentials and/or other valuable data.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Keylogging Script\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can abuse PowerShell capabilities to capture user keystrokes with the goal of stealing credentials and other\nvaluable information as credit card data and confidential conversations.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Investigate if the script stores the captured data locally.\n- Investigate if the script contains exfiltration capabilities and the destination of this exfiltration.\n- Assess network data to determine if the host communicated with the exfiltration server.\n\n### False positive analysis\n\n- Regular users do not have a business justification for using scripting utilities to capture keystrokes, making\nfalse positives unlikely. In the case of authorized benign true positives (B-TPs), exceptions can be added.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- The response must be prioritized if this alert involves key executives or potentially valuable targets for espionage.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/EmpireProject/Empire/blob/master/data/module_source/collection/Get-Keystrokes.ps1","https://github.com/MojtabaTajik/FunnyKeylogger/blob/master/FunnyLogger.ps1"],"tags":["Elastic","Host","Windows","Threat Detection","Collection","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1056","name":"Input Capture","reference":"https://attack.mitre.org/techniques/T1056/","subtechnique":[{"id":"T1056.001","name":"Keylogging","reference":"https://attack.mitre.org/techniques/T1056/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n (\n powershell.file.script_block_text : (GetAsyncKeyState or NtUserGetAsyncKeyState or GetKeyboardState or \"Get-Keystrokes\") or\n powershell.file.script_block_text : (\n (SetWindowsHookA or SetWindowsHookW or SetWindowsHookEx or SetWindowsHookExA or NtUserSetWindowsHookEx) and\n (GetForegroundWindow or GetWindowTextA or GetWindowTextW or \"WM_KEYBOARD_LL\")\n )\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"}]},"id":"bd2c86a0-8b61-4457-ab38-96943984e889","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/bd7eefee-f671-494e-98df-f01daf9e5f17.json b/fleet-packages/detection-rules-composite/kibana/security_rule/bd7eefee-f671-494e-98df-f01daf9e5f17.json new file mode 100644 index 0000000000000..c6fd715fe528f --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/bd7eefee-f671-494e-98df-f01daf9e5f17.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"bd7eefee-f671-494e-98df-f01daf9e5f17","versions":[{"name":"Suspicious Print Spooler Point and Print DLL v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to exploit a privilege escalation vulnerability (CVE-2020-1030) related to the print spooler service. Exploitation involves chaining multiple primitives to load an arbitrary DLL into the print spooler process running as SYSTEM.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.accenture.com/us-en/blogs/cyber-defense/discovering-exploiting-shutting-down-dangerous-windows-print-spooler-vulnerability","https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES/blob/master/Privilege%20Escalation/privesc_sysmon_cve_20201030_spooler.evtx","https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2020-1030"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"sequence by host.id with maxspan=30s\n[registry where\n registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Print\\\\Printers\\\\*\\\\SpoolDirectory\" and\n registry.data.strings : \"C:\\\\Windows\\\\System32\\\\spool\\\\drivers\\\\x64\\\\4\"]\n[registry where\n registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Print\\\\Printers\\\\*\\\\CopyFiles\\\\Payload\\\\Module\" and\n registry.data.strings : \"C:\\\\Windows\\\\System32\\\\spool\\\\drivers\\\\x64\\\\4\\\\*\"]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},{"name":"Suspicious Print Spooler Point and Print DLL v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to exploit a privilege escalation vulnerability (CVE-2020-1030) related to the print spooler service. Exploitation involves chaining multiple primitives to load an arbitrary DLL into the print spooler process running as SYSTEM.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.accenture.com/us-en/blogs/cyber-defense/discovering-exploiting-shutting-down-dangerous-windows-print-spooler-vulnerability","https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES/blob/master/Privilege%20Escalation/privesc_sysmon_cve_20201030_spooler.evtx","https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2020-1030"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"sequence by host.id with maxspan=30s\n[registry where\n registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Print\\\\Printers\\\\*\\\\SpoolDirectory\" and\n registry.data.strings : \"C:\\\\Windows\\\\System32\\\\spool\\\\drivers\\\\x64\\\\4\"]\n[registry where\n registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Print\\\\Printers\\\\*\\\\CopyFiles\\\\Payload\\\\Module\" and\n registry.data.strings : \"C:\\\\Windows\\\\System32\\\\spool\\\\drivers\\\\x64\\\\4\\\\*\"]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},{"name":"Suspicious Print Spooler Point and Print DLL v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to exploit a privilege escalation vulnerability (CVE-2020-1030) related to the print spooler service. Exploitation involves chaining multiple primitives to load an arbitrary DLL into the print spooler process running as SYSTEM.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.accenture.com/us-en/blogs/cyber-defense/discovering-exploiting-shutting-down-dangerous-windows-print-spooler-vulnerability","https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES/blob/master/Privilege%20Escalation/privesc_sysmon_cve_20201030_spooler.evtx","https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2020-1030"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"sequence by host.id with maxspan=30s\n[registry where\n registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Print\\\\Printers\\\\*\\\\SpoolDirectory\" and\n registry.data.strings : \"C:\\\\Windows\\\\System32\\\\spool\\\\drivers\\\\x64\\\\4\"]\n[registry where\n registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Print\\\\Printers\\\\*\\\\CopyFiles\\\\Payload\\\\Module\" and\n registry.data.strings : \"C:\\\\Windows\\\\System32\\\\spool\\\\drivers\\\\x64\\\\4\\\\*\"]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]}]},"id":"bd7eefee-f671-494e-98df-f01daf9e5f17","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/bdcf646b-08d4-492c-870a-6c04e3700034.json b/fleet-packages/detection-rules-composite/kibana/security_rule/bdcf646b-08d4-492c-870a-6c04e3700034.json new file mode 100644 index 0000000000000..ec8712b1a1610 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/bdcf646b-08d4-492c-870a-6c04e3700034.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"bdcf646b-08d4-492c-870a-6c04e3700034","versions":[{"name":"Potential Privileged Escalation via SamAccountName Spoofing v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious computer account name rename event, which may indicate an attempt to exploit CVE-2021-42278 to elevate privileges from a standard domain user to a user with domain admin privileges. CVE-2021-42278 is a security vulnerability that allows potential attackers to impersonate a domain controller via samAccountName attribute spoofing.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://support.microsoft.com/en-us/topic/kb5008102-active-directory-security-accounts-manager-hardening-changes-cve-2021-42278-5975b463-4c95-45e1-831a-d120004e258e","https://cloudbrothers.info/en/exploit-kerberos-samaccountname-spoofing/","https://github.com/cube0x0/noPac","https://twitter.com/exploitph/status/1469157138928914432","https://exploit.ph/cve-2021-42287-cve-2021-42278-weaponisation.html"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.002","name":"Domain Accounts","reference":"https://attack.mitre.org/techniques/T1078/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"language":"eql","query":"iam where event.action == \"renamed-user-account\" and\n /* machine account name renamed to user like account name */\n winlog.event_data.OldTargetUserName : \"*$\" and not winlog.event_data.NewTargetUserName : \"*$\"\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":false,"name":"winlog.event_data.NewTargetUserName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.OldTargetUserName","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Privileged Escalation via SamAccountName Spoofing v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious computer account name rename event, which may indicate an attempt to exploit CVE-2021-42278 to elevate privileges from a standard domain user to a user with domain admin privileges. CVE-2021-42278 is a security vulnerability that allows potential attackers to impersonate a domain controller via samAccountName attribute spoofing.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://support.microsoft.com/en-us/topic/kb5008102-active-directory-security-accounts-manager-hardening-changes-cve-2021-42278-5975b463-4c95-45e1-831a-d120004e258e","https://cloudbrothers.info/en/exploit-kerberos-samaccountname-spoofing/","https://github.com/cube0x0/noPac","https://twitter.com/exploitph/status/1469157138928914432","https://exploit.ph/cve-2021-42287-cve-2021-42278-weaponisation.html"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.002","name":"Domain Accounts","reference":"https://attack.mitre.org/techniques/T1078/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"language":"eql","query":"iam where event.action == \"renamed-user-account\" and\n /* machine account name renamed to user like account name */\n winlog.event_data.OldTargetUserName : \"*$\" and not winlog.event_data.NewTargetUserName : \"*$\"\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":false,"name":"winlog.event_data.NewTargetUserName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.OldTargetUserName","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Privileged Escalation via SamAccountName Spoofing v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious computer account name rename event, which may indicate an attempt to exploit CVE-2021-42278 to elevate privileges from a standard domain user to a user with domain admin privileges. CVE-2021-42278 is a security vulnerability that allows potential attackers to impersonate a domain controller via samAccountName attribute spoofing.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://support.microsoft.com/en-us/topic/kb5008102-active-directory-security-accounts-manager-hardening-changes-cve-2021-42278-5975b463-4c95-45e1-831a-d120004e258e","https://cloudbrothers.info/en/exploit-kerberos-samaccountname-spoofing/","https://github.com/cube0x0/noPac","https://twitter.com/exploitph/status/1469157138928914432","https://exploit.ph/cve-2021-42287-cve-2021-42278-weaponisation.html"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.002","name":"Domain Accounts","reference":"https://attack.mitre.org/techniques/T1078/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"language":"eql","query":"iam where event.action == \"renamed-user-account\" and\n /* machine account name renamed to user like account name */\n winlog.event_data.OldTargetUserName : \"*$\" and not winlog.event_data.NewTargetUserName : \"*$\"\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":false,"name":"winlog.event_data.NewTargetUserName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.OldTargetUserName","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"bdcf646b-08d4-492c-870a-6c04e3700034","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/be8afaed-4bcd-4e0a-b5f9-5562003dde81.json b/fleet-packages/detection-rules-composite/kibana/security_rule/be8afaed-4bcd-4e0a-b5f9-5562003dde81.json new file mode 100644 index 0000000000000..05b4999991a25 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/be8afaed-4bcd-4e0a-b5f9-5562003dde81.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"be8afaed-4bcd-4e0a-b5f9-5562003dde81","versions":[{"name":"Searching for Saved Credentials via VaultCmd v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Windows Credential Manager allows you to create, view, or delete saved credentials for signing into websites, connected applications, and networks. An adversary may abuse this to list or dump credentials stored in the Credential Manager for saved usernames and passwords. This may also be performed in preparation of lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://medium.com/threatpunter/detecting-adversary-tradecraft-with-image-load-event-logging-and-eql-8de93338c16","https://web.archive.org/web/20201004080456/https://rastamouse.me/blog/rdp-jump-boxes/","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.004","name":"Windows Credential Manager","reference":"https://attack.mitre.org/techniques/T1555/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.pe.original_file_name:\"vaultcmd.exe\" or process.name:\"vaultcmd.exe\") and\n process.args:\"/list*\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Searching for Saved Credentials via VaultCmd v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Windows Credential Manager allows you to create, view, or delete saved credentials for signing into websites, connected applications, and networks. An adversary may abuse this to list or dump credentials stored in the Credential Manager for saved usernames and passwords. This may also be performed in preparation of lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://medium.com/threatpunter/detecting-adversary-tradecraft-with-image-load-event-logging-and-eql-8de93338c16","https://web.archive.org/web/20201004080456/https://rastamouse.me/blog/rdp-jump-boxes/","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.004","name":"Windows Credential Manager","reference":"https://attack.mitre.org/techniques/T1555/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.pe.original_file_name:\"vaultcmd.exe\" or process.name:\"vaultcmd.exe\") and\n process.args:\"/list*\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Searching for Saved Credentials via VaultCmd v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Windows Credential Manager allows you to create, view, or delete saved credentials for signing into websites, connected applications, and networks. An adversary may abuse this to list or dump credentials stored in the Credential Manager for saved usernames and passwords. This may also be performed in preparation of lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://medium.com/threatpunter/detecting-adversary-tradecraft-with-image-load-event-logging-and-eql-8de93338c16","https://web.archive.org/web/20201004080456/https://rastamouse.me/blog/rdp-jump-boxes/","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.004","name":"Windows Credential Manager","reference":"https://attack.mitre.org/techniques/T1555/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.pe.original_file_name:\"vaultcmd.exe\" or process.name:\"vaultcmd.exe\") and\n process.args:\"/list*\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"be8afaed-4bcd-4e0a-b5f9-5562003dde81","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/bf1073bf-ce26-4607-b405-ba1ed8e9e204.json b/fleet-packages/detection-rules-composite/kibana/security_rule/bf1073bf-ce26-4607-b405-ba1ed8e9e204.json new file mode 100644 index 0000000000000..7e810f1b844c2 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/bf1073bf-ce26-4607-b405-ba1ed8e9e204.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"bf1073bf-ce26-4607-b405-ba1ed8e9e204","versions":[{"name":"AWS RDS Snapshot Restored v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an attempt was made to restore an RDS Snapshot. Snapshots are sometimes shared by threat actors in order to exfiltrate bulk data or evade detection after performing malicious activities. If the permissions were modified, verify if the snapshot was shared with an unauthorized or unexpected AWS account.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Restoring snapshots may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Snapshot restoration by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html","https://github.com/RhinoSecurityLabs/pacu/blob/master/pacu/modules/rds__explore_snapshots/main.py"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1578","name":"Modify Cloud Compute Infrastructure","reference":"https://attack.mitre.org/techniques/T1578/","subtechnique":[{"id":"T1578.004","name":"Revert Cloud Instance","reference":"https://attack.mitre.org/techniques/T1578/004/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:RestoreDBInstanceFromDBSnapshot and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS RDS Snapshot Restored v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an attempt was made to restore an RDS Snapshot. Snapshots are sometimes shared by threat actors in order to exfiltrate bulk data or evade detection after performing malicious activities. If the permissions were modified, verify if the snapshot was shared with an unauthorized or unexpected AWS account.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Restoring snapshots may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Snapshot restoration by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html","https://github.com/RhinoSecurityLabs/pacu/blob/master/pacu/modules/rds__explore_snapshots/main.py"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1578","name":"Modify Cloud Compute Infrastructure","reference":"https://attack.mitre.org/techniques/T1578/","subtechnique":[{"id":"T1578.004","name":"Revert Cloud Instance","reference":"https://attack.mitre.org/techniques/T1578/004/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:RestoreDBInstanceFromDBSnapshot and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS RDS Snapshot Restored v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an attempt was made to restore an RDS Snapshot. Snapshots are sometimes shared by threat actors in order to exfiltrate bulk data or evade detection after performing malicious activities. If the permissions were modified, verify if the snapshot was shared with an unauthorized or unexpected AWS account.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Restoring snapshots may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Snapshot restoration by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html","https://github.com/RhinoSecurityLabs/pacu/blob/master/pacu/modules/rds__explore_snapshots/main.py"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1578","name":"Modify Cloud Compute Infrastructure","reference":"https://attack.mitre.org/techniques/T1578/","subtechnique":[{"id":"T1578.004","name":"Revert Cloud Instance","reference":"https://attack.mitre.org/techniques/T1578/004/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:RestoreDBInstanceFromDBSnapshot and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"bf1073bf-ce26-4607-b405-ba1ed8e9e204","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/bfeaf89b-a2a7-48a3-817f-e41829dc61ee.json b/fleet-packages/detection-rules-composite/kibana/security_rule/bfeaf89b-a2a7-48a3-817f-e41829dc61ee.json new file mode 100644 index 0000000000000..4b76ef83fa33d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/bfeaf89b-a2a7-48a3-817f-e41829dc61ee.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"bfeaf89b-a2a7-48a3-817f-e41829dc61ee","versions":[{"name":"Suspicious DLL Loaded for Persistence or Privilege Escalation v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the loading of a non Microsoft signed DLL that is missing on a default Windows install (phantom DLL) or one that can be loaded from a different location by a native Windows process. This may be abused to persist or elevate privileges via privileged file write vulnerabilities.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious DLL Loaded for Persistence or Privilege Escalation\n\nAttackers can execute malicious code by abusing missing modules that processes try to load, enabling them to escalate\nprivileges or gain persistence. This rule identifies the loading of a non-Microsoft-signed DLL that is missing on a\ndefault Windows installation or one that can be loaded from a different location by a native Windows process.\n\n#### Possible investigation steps\n\n- Examine the DLL signature and identify the process that created it.\n - Investigate any abnormal behaviors by the process such as network connections, registry or file modifications, and\n any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve the DLL and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently\nmalicious must be monitored by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://itm4n.github.io/windows-dll-hijacking-clarified/","http://remoteawesomethoughts.blogspot.com/2019/05/windows-10-task-schedulerservice.html","https://googleprojectzero.blogspot.com/2018/04/windows-exploitation-tricks-exploiting.html","https://shellz.club/2020/10/16/edgegdi-dll-for-persistence-and-lateral-movement.html","https://windows-internals.com/faxing-your-way-to-system/","http://waleedassar.blogspot.com/2013/01/wow64logdll.html"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.002","name":"DLL Side-Loading","reference":"https://attack.mitre.org/techniques/T1574/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.001","name":"DLL Search Order Hijacking","reference":"https://attack.mitre.org/techniques/T1574/001/"}]}]}],"language":"eql","query":"any where\n (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (\n /* compatible with Elastic Endpoint Library Events */\n (dll.name : (\"wlbsctrl.dll\", \"wbemcomn.dll\", \"WptsExtensions.dll\", \"Tsmsisrv.dll\", \"TSVIPSrv.dll\", \"Msfte.dll\",\n \"wow64log.dll\", \"WindowsCoreDeviceInfo.dll\", \"Ualapi.dll\", \"wlanhlp.dll\", \"phoneinfo.dll\", \"EdgeGdi.dll\",\n \"cdpsgshims.dll\", \"windowsperformancerecordercontrol.dll\", \"diagtrack_win.dll\")\n and (dll.code_signature.trusted == false or dll.code_signature.exists == false)) or\n\n /* compatible with Sysmon EventID 7 - Image Load */\n (file.name : (\"wlbsctrl.dll\", \"wbemcomn.dll\", \"WptsExtensions.dll\", \"Tsmsisrv.dll\", \"TSVIPSrv.dll\", \"Msfte.dll\",\n \"wow64log.dll\", \"WindowsCoreDeviceInfo.dll\", \"Ualapi.dll\", \"wlanhlp.dll\", \"phoneinfo.dll\", \"EdgeGdi.dll\",\n \"cdpsgshims.dll\", \"windowsperformancerecordercontrol.dll\", \"diagtrack_win.dll\")\n and not file.code_signature.status == \"Valid\")\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.code_signature.exists","type":"boolean"},{"ecs":true,"name":"dll.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.code_signature.status","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious DLL Loaded for Persistence or Privilege Escalation v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the loading of a non Microsoft signed DLL that is missing on a default Windows install (phantom DLL) or one that can be loaded from a different location by a native Windows process. This may be abused to persist or elevate privileges via privileged file write vulnerabilities.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious DLL Loaded for Persistence or Privilege Escalation\n\nAttackers can execute malicious code by abusing missing modules that processes try to load, enabling them to escalate\nprivileges or gain persistence. This rule identifies the loading of a non-Microsoft-signed DLL that is missing on a\ndefault Windows installation or one that can be loaded from a different location by a native Windows process.\n\n#### Possible investigation steps\n\n- Examine the DLL signature and identify the process that created it.\n - Investigate any abnormal behaviors by the process such as network connections, registry or file modifications, and\n any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve the DLL and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently\nmalicious must be monitored by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://itm4n.github.io/windows-dll-hijacking-clarified/","http://remoteawesomethoughts.blogspot.com/2019/05/windows-10-task-schedulerservice.html","https://googleprojectzero.blogspot.com/2018/04/windows-exploitation-tricks-exploiting.html","https://shellz.club/2020/10/16/edgegdi-dll-for-persistence-and-lateral-movement.html","https://windows-internals.com/faxing-your-way-to-system/","http://waleedassar.blogspot.com/2013/01/wow64logdll.html"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.002","name":"DLL Side-Loading","reference":"https://attack.mitre.org/techniques/T1574/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.001","name":"DLL Search Order Hijacking","reference":"https://attack.mitre.org/techniques/T1574/001/"}]}]}],"language":"eql","query":"any where\n (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (\n /* compatible with Elastic Endpoint Library Events */\n (dll.name : (\"wlbsctrl.dll\", \"wbemcomn.dll\", \"WptsExtensions.dll\", \"Tsmsisrv.dll\", \"TSVIPSrv.dll\", \"Msfte.dll\",\n \"wow64log.dll\", \"WindowsCoreDeviceInfo.dll\", \"Ualapi.dll\", \"wlanhlp.dll\", \"phoneinfo.dll\", \"EdgeGdi.dll\",\n \"cdpsgshims.dll\", \"windowsperformancerecordercontrol.dll\", \"diagtrack_win.dll\")\n and (dll.code_signature.trusted == false or dll.code_signature.exists == false)) or\n\n /* compatible with Sysmon EventID 7 - Image Load */\n (file.name : (\"wlbsctrl.dll\", \"wbemcomn.dll\", \"WptsExtensions.dll\", \"Tsmsisrv.dll\", \"TSVIPSrv.dll\", \"Msfte.dll\",\n \"wow64log.dll\", \"WindowsCoreDeviceInfo.dll\", \"Ualapi.dll\", \"wlanhlp.dll\", \"phoneinfo.dll\", \"EdgeGdi.dll\",\n \"cdpsgshims.dll\", \"windowsperformancerecordercontrol.dll\", \"diagtrack_win.dll\")\n and not file.code_signature.status == \"Valid\")\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.code_signature.exists","type":"boolean"},{"ecs":true,"name":"dll.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.code_signature.status","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious DLL Loaded for Persistence or Privilege Escalation v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the loading of a non Microsoft signed DLL that is missing on a default Windows install (phantom DLL) or one that can be loaded from a different location by a native Windows process. This may be abused to persist or elevate privileges via privileged file write vulnerabilities.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious DLL Loaded for Persistence or Privilege Escalation\n\nAttackers can execute malicious code by abusing missing modules that processes try to load, enabling them to escalate\nprivileges or gain persistence. This rule identifies the loading of a non-Microsoft-signed DLL that is missing on a\ndefault Windows installation or one that can be loaded from a different location by a native Windows process.\n\n#### Possible investigation steps\n\n- Examine the DLL signature and identify the process that created it.\n - Investigate any abnormal behaviors by the process such as network connections, registry or file modifications, and\n any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve the DLL and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently\nmalicious must be monitored by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://itm4n.github.io/windows-dll-hijacking-clarified/","http://remoteawesomethoughts.blogspot.com/2019/05/windows-10-task-schedulerservice.html","https://googleprojectzero.blogspot.com/2018/04/windows-exploitation-tricks-exploiting.html","https://shellz.club/2020/10/16/edgegdi-dll-for-persistence-and-lateral-movement.html","https://windows-internals.com/faxing-your-way-to-system/","http://waleedassar.blogspot.com/2013/01/wow64logdll.html"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.002","name":"DLL Side-Loading","reference":"https://attack.mitre.org/techniques/T1574/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.001","name":"DLL Search Order Hijacking","reference":"https://attack.mitre.org/techniques/T1574/001/"}]}]}],"language":"eql","query":"any where\n (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (\n /* compatible with Elastic Endpoint Library Events */\n (dll.name : (\"wlbsctrl.dll\", \"wbemcomn.dll\", \"WptsExtensions.dll\", \"Tsmsisrv.dll\", \"TSVIPSrv.dll\", \"Msfte.dll\",\n \"wow64log.dll\", \"WindowsCoreDeviceInfo.dll\", \"Ualapi.dll\", \"wlanhlp.dll\", \"phoneinfo.dll\", \"EdgeGdi.dll\",\n \"cdpsgshims.dll\", \"windowsperformancerecordercontrol.dll\", \"diagtrack_win.dll\")\n and (dll.code_signature.trusted == false or dll.code_signature.exists == false)) or\n\n /* compatible with Sysmon EventID 7 - Image Load */\n (file.name : (\"wlbsctrl.dll\", \"wbemcomn.dll\", \"WptsExtensions.dll\", \"Tsmsisrv.dll\", \"TSVIPSrv.dll\", \"Msfte.dll\",\n \"wow64log.dll\", \"WindowsCoreDeviceInfo.dll\", \"Ualapi.dll\", \"wlanhlp.dll\", \"phoneinfo.dll\", \"EdgeGdi.dll\",\n \"cdpsgshims.dll\", \"windowsperformancerecordercontrol.dll\", \"diagtrack_win.dll\")\n and not file.code_signature.status == \"Valid\")\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.code_signature.exists","type":"boolean"},{"ecs":true,"name":"dll.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.code_signature.status","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"bfeaf89b-a2a7-48a3-817f-e41829dc61ee","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c02c8b9f-5e1d-463c-a1b0-04edcdfe1a3d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c02c8b9f-5e1d-463c-a1b0-04edcdfe1a3d.json new file mode 100644 index 0000000000000..db1cc5e1c15cb --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c02c8b9f-5e1d-463c-a1b0-04edcdfe1a3d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c02c8b9f-5e1d-463c-a1b0-04edcdfe1a3d","versions":[{"name":"Potential Privacy Control Bypass via Localhost Secure Copy v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the Secure Copy Protocol (SCP) to copy files locally by abusing the auto addition of the Secure Shell Daemon (sshd) to the authorized application list for Full Disk Access. This may indicate attempts to bypass macOS privacy controls to access sensitive files.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.trendmicro.com/en_us/research/20/h/xcsset-mac-malware--infects-xcode-projects--uses-0-days.html"],"tags":["Elastic","Host","macOS","Threat Detection","Privilege Escalation","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.name:\"scp\" and\n process.args:\"StrictHostKeyChecking=no\" and\n process.command_line:(\"scp *localhost:/*\", \"scp *127.0.0.1:/*\") and\n not process.args:\"vagrant@*127.0.0.1*\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Privacy Control Bypass via Localhost Secure Copy v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the Secure Copy Protocol (SCP) to copy files locally by abusing the auto addition of the Secure Shell Daemon (sshd) to the authorized application list for Full Disk Access. This may indicate attempts to bypass macOS privacy controls to access sensitive files.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.trendmicro.com/en_us/research/20/h/xcsset-mac-malware--infects-xcode-projects--uses-0-days.html"],"tags":["Elastic","Host","macOS","Threat Detection","Privilege Escalation","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.name:\"scp\" and\n process.args:\"StrictHostKeyChecking=no\" and\n process.command_line:(\"scp *localhost:/*\", \"scp *127.0.0.1:/*\") and\n not process.args:\"vagrant@*127.0.0.1*\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Privacy Control Bypass via Localhost Secure Copy v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the Secure Copy Protocol (SCP) to copy files locally by abusing the auto addition of the Secure Shell Daemon (sshd) to the authorized application list for Full Disk Access. This may indicate attempts to bypass macOS privacy controls to access sensitive files.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.trendmicro.com/en_us/research/20/h/xcsset-mac-malware--infects-xcode-projects--uses-0-days.html"],"tags":["Elastic","Host","macOS","Threat Detection","Privilege Escalation","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.name:\"scp\" and\n process.args:\"StrictHostKeyChecking=no\" and\n process.command_line:(\"scp *localhost:/*\", \"scp *127.0.0.1:/*\") and\n not process.args:\"vagrant@*127.0.0.1*\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"c02c8b9f-5e1d-463c-a1b0-04edcdfe1a3d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c0429aa8-9974-42da-bfb6-53a0a515a145.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c0429aa8-9974-42da-bfb6-53a0a515a145.json new file mode 100644 index 0000000000000..8c44ca90cf59e --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c0429aa8-9974-42da-bfb6-53a0a515a145.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c0429aa8-9974-42da-bfb6-53a0a515a145","versions":[{"name":"Creation or Modification of a new GPO Scheduled Task or Service v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the creation or modification of a new Group Policy based scheduled task or service. These methods are used for legitimate system administration, but can also be abused by an attacker with domain admin permissions to execute a malicious payload remotely on all or a subset of the domain joined machines.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path : (\"?:\\\\Windows\\\\SYSVOL\\\\domain\\\\Policies\\\\*\\\\MACHINE\\\\Preferences\\\\ScheduledTasks\\\\ScheduledTasks.xml\",\n \"?:\\\\Windows\\\\SYSVOL\\\\domain\\\\Policies\\\\*\\\\MACHINE\\\\Preferences\\\\Services\\\\Services.xml\") and\n not process.name : \"dfsrs.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Creation or Modification of a new GPO Scheduled Task or Service v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the creation or modification of a new Group Policy based scheduled task or service. These methods are used for legitimate system administration, but can also be abused by an attacker with domain admin permissions to execute a malicious payload remotely on all or a subset of the domain joined machines.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path : (\"?:\\\\Windows\\\\SYSVOL\\\\domain\\\\Policies\\\\*\\\\MACHINE\\\\Preferences\\\\ScheduledTasks\\\\ScheduledTasks.xml\",\n \"?:\\\\Windows\\\\SYSVOL\\\\domain\\\\Policies\\\\*\\\\MACHINE\\\\Preferences\\\\Services\\\\Services.xml\") and\n not process.name : \"dfsrs.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Creation or Modification of a new GPO Scheduled Task or Service v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the creation or modification of a new Group Policy based scheduled task or service. These methods are used for legitimate system administration, but can also be abused by an attacker with domain admin permissions to execute a malicious payload remotely on all or a subset of the domain joined machines.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path : (\"?:\\\\Windows\\\\SYSVOL\\\\domain\\\\Policies\\\\*\\\\MACHINE\\\\Preferences\\\\ScheduledTasks\\\\ScheduledTasks.xml\",\n \"?:\\\\Windows\\\\SYSVOL\\\\domain\\\\Policies\\\\*\\\\MACHINE\\\\Preferences\\\\Services\\\\Services.xml\") and\n not process.name : \"dfsrs.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"c0429aa8-9974-42da-bfb6-53a0a515a145","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c0be5f31-e180-48ed-aa08-96b36899d48f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c0be5f31-e180-48ed-aa08-96b36899d48f.json new file mode 100644 index 0000000000000..ecd32ca75c536 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c0be5f31-e180-48ed-aa08-96b36899d48f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c0be5f31-e180-48ed-aa08-96b36899d48f","versions":[{"name":"Credential Manipulation - Detected - Elastic Endgame v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected Credential Manipulation. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:token_manipulation_event or endgame.event_subtype_full:token_manipulation_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Credential Manipulation - Detected - Elastic Endgame v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected Credential Manipulation. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:token_manipulation_event or endgame.event_subtype_full:token_manipulation_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Credential Manipulation - Detected - Elastic Endgame v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected Credential Manipulation. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:token_manipulation_event or endgame.event_subtype_full:token_manipulation_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]}]},"id":"c0be5f31-e180-48ed-aa08-96b36899d48f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c1812764-0788-470f-8e74-eb4a14d47573.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c1812764-0788-470f-8e74-eb4a14d47573.json new file mode 100644 index 0000000000000..81b7654cf6d17 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c1812764-0788-470f-8e74-eb4a14d47573.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c1812764-0788-470f-8e74-eb4a14d47573","versions":[{"name":"AWS EC2 Full Network Packet Capture Detected v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential Traffic Mirroring in an Amazon Elastic Compute Cloud (EC2) instance. Traffic Mirroring is an Amazon VPC feature that you can use to copy network traffic from an Elastic network interface. This feature can potentially be abused to exfiltrate sensitive data from unencrypted internal traffic.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Traffic Mirroring may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Traffic Mirroring from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_TrafficMirrorFilter.html","https://github.com/easttimor/aws-incident-response"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1020","name":"Automated Exfiltration","reference":"https://attack.mitre.org/techniques/T1020/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1074","name":"Data Staged","reference":"https://attack.mitre.org/techniques/T1074/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and\nevent.action:(CreateTrafficMirrorFilter or CreateTrafficMirrorFilterRule or CreateTrafficMirrorSession or CreateTrafficMirrorTarget) and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS EC2 Full Network Packet Capture Detected v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential Traffic Mirroring in an Amazon Elastic Compute Cloud (EC2) instance. Traffic Mirroring is an Amazon VPC feature that you can use to copy network traffic from an Elastic network interface. This feature can potentially be abused to exfiltrate sensitive data from unencrypted internal traffic.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Traffic Mirroring may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Traffic Mirroring from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_TrafficMirrorFilter.html","https://github.com/easttimor/aws-incident-response"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1020","name":"Automated Exfiltration","reference":"https://attack.mitre.org/techniques/T1020/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1074","name":"Data Staged","reference":"https://attack.mitre.org/techniques/T1074/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and\nevent.action:(CreateTrafficMirrorFilter or CreateTrafficMirrorFilterRule or CreateTrafficMirrorSession or CreateTrafficMirrorTarget) and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS EC2 Full Network Packet Capture Detected v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential Traffic Mirroring in an Amazon Elastic Compute Cloud (EC2) instance. Traffic Mirroring is an Amazon VPC feature that you can use to copy network traffic from an Elastic network interface. This feature can potentially be abused to exfiltrate sensitive data from unencrypted internal traffic.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Traffic Mirroring may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Traffic Mirroring from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_TrafficMirrorFilter.html","https://github.com/easttimor/aws-incident-response"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1020","name":"Automated Exfiltration","reference":"https://attack.mitre.org/techniques/T1020/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1074","name":"Data Staged","reference":"https://attack.mitre.org/techniques/T1074/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and\nevent.action:(CreateTrafficMirrorFilter or CreateTrafficMirrorFilterRule or CreateTrafficMirrorSession or CreateTrafficMirrorTarget) and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"c1812764-0788-470f-8e74-eb4a14d47573","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c25e9c87-95e1-4368-bfab-9fd34cf867ec.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c25e9c87-95e1-4368-bfab-9fd34cf867ec.json new file mode 100644 index 0000000000000..b535a11742717 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c25e9c87-95e1-4368-bfab-9fd34cf867ec.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c25e9c87-95e1-4368-bfab-9fd34cf867ec","versions":[{"name":"Microsoft IIS Connection Strings Decryption v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of aspnet_regiis to decrypt Microsoft IIS connection strings. An attacker with Microsoft IIS web server access via a webshell or alike can decrypt and dump any hardcoded connection strings, such as the MSSQL service account password using aspnet_regiis command.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"references":["https://blog.netspi.com/decrypting-iis-passwords-to-break-out-of-the-dmz-part-1/","https://symantec-enterprise-blogs.security.com/blogs/threat-intelligence/greenbug-espionage-telco-south-asia"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"aspnet_regiis.exe\" or process.pe.original_file_name == \"aspnet_regiis.exe\") and\n process.args : \"connectionStrings\" and process.args : \"-pdf\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Microsoft IIS Connection Strings Decryption v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of aspnet_regiis to decrypt Microsoft IIS connection strings. An attacker with Microsoft IIS web server access via a webshell or alike can decrypt and dump any hardcoded connection strings, such as the MSSQL service account password using aspnet_regiis command.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"references":["https://blog.netspi.com/decrypting-iis-passwords-to-break-out-of-the-dmz-part-1/","https://symantec-enterprise-blogs.security.com/blogs/threat-intelligence/greenbug-espionage-telco-south-asia"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"aspnet_regiis.exe\" or process.pe.original_file_name == \"aspnet_regiis.exe\") and\n process.args : \"connectionStrings\" and process.args : \"-pdf\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Microsoft IIS Connection Strings Decryption v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of aspnet_regiis to decrypt Microsoft IIS connection strings. An attacker with Microsoft IIS web server access via a webshell or alike can decrypt and dump any hardcoded connection strings, such as the MSSQL service account password using aspnet_regiis command.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"references":["https://blog.netspi.com/decrypting-iis-passwords-to-break-out-of-the-dmz-part-1/","https://symantec-enterprise-blogs.security.com/blogs/threat-intelligence/greenbug-espionage-telco-south-asia"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"aspnet_regiis.exe\" or process.pe.original_file_name == \"aspnet_regiis.exe\") and\n process.args : \"connectionStrings\" and process.args : \"-pdf\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"c25e9c87-95e1-4368-bfab-9fd34cf867ec","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c28c4d8c-f014-40ef-88b6-79a1d67cd499.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c28c4d8c-f014-40ef-88b6-79a1d67cd499.json new file mode 100644 index 0000000000000..02dd24188131a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c28c4d8c-f014-40ef-88b6-79a1d67cd499.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c28c4d8c-f014-40ef-88b6-79a1d67cd499","versions":[{"name":"Unusual Linux Network Connection Discovery v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for commands related to system network connection discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used by a threat actor to engage in system network connection discovery in order to increase their understanding of connected services and systems. This information may be used to shape follow-up behaviors such as lateral movement or additional discovery.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user command activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1049","name":"System Network Connections Discovery","reference":"https://attack.mitre.org/techniques/T1049/"}]}],"anomaly_threshold":25,"machine_learning_job_id":["v3_linux_network_connection_discovery"],"type":"machine_learning"},{"name":"Unusual Linux Network Connection Discovery v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for commands related to system network connection discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used by a threat actor to engage in system network connection discovery in order to increase their understanding of connected services and systems. This information may be used to shape follow-up behaviors such as lateral movement or additional discovery.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user command activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1049","name":"System Network Connections Discovery","reference":"https://attack.mitre.org/techniques/T1049/"}]}],"anomaly_threshold":25,"machine_learning_job_id":["v3_linux_network_connection_discovery"],"type":"machine_learning"},{"name":"Unusual Linux Network Connection Discovery v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for commands related to system network connection discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used by a threat actor to engage in system network connection discovery in order to increase their understanding of connected services and systems. This information may be used to shape follow-up behaviors such as lateral movement or additional discovery.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user command activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1049","name":"System Network Connections Discovery","reference":"https://attack.mitre.org/techniques/T1049/"}]}],"anomaly_threshold":25,"machine_learning_job_id":["v3_linux_network_connection_discovery"],"type":"machine_learning"}]},"id":"c28c4d8c-f014-40ef-88b6-79a1d67cd499","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c292fa52-4115-408a-b897-e14f684b3cb7.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c292fa52-4115-408a-b897-e14f684b3cb7.json new file mode 100644 index 0000000000000..f30be5eeff1be --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c292fa52-4115-408a-b897-e14f684b3cb7.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c292fa52-4115-408a-b897-e14f684b3cb7","versions":[{"name":"Persistence via Folder Action Script v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects modification of a Folder Action script. A Folder Action script is executed when the folder to which it is attached has items added or removed, or when its window is opened, closed, moved, or resized. Adversaries may abuse this feature to establish persistence by utilizing a malicious script.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/folder-actions-for-persistence-on-macos-8923f222343d"],"tags":["Elastic","Host","macOS","Threat Detection","Execution","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1037","name":"Boot or Logon Initialization Scripts","reference":"https://attack.mitre.org/techniques/T1037/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"sequence by host.id with maxspan=5s\n [process where event.type in (\"start\", \"process_started\", \"info\") and process.name == \"com.apple.foundation.UserScriptService\"] by process.pid\n [process where event.type in (\"start\", \"process_started\") and process.name in (\"osascript\", \"python\", \"tcl\", \"node\", \"perl\", \"ruby\", \"php\", \"bash\", \"csh\", \"zsh\", \"sh\") and\n not process.args : \"/Users/*/Library/Application Support/iTerm2/Scripts/AutoLaunch/*.scpt\"\n ] by process.parent.pid\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.pid","type":"long"},{"ecs":true,"name":"process.pid","type":"long"}]},{"name":"Persistence via Folder Action Script v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects modification of a Folder Action script. A Folder Action script is executed when the folder to which it is attached has items added or removed, or when its window is opened, closed, moved, or resized. Adversaries may abuse this feature to establish persistence by utilizing a malicious script.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/folder-actions-for-persistence-on-macos-8923f222343d"],"tags":["Elastic","Host","macOS","Threat Detection","Execution","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1037","name":"Boot or Logon Initialization Scripts","reference":"https://attack.mitre.org/techniques/T1037/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"sequence by host.id with maxspan=5s\n [process where event.type in (\"start\", \"process_started\", \"info\") and process.name == \"com.apple.foundation.UserScriptService\"] by process.pid\n [process where event.type in (\"start\", \"process_started\") and process.name in (\"osascript\", \"python\", \"tcl\", \"node\", \"perl\", \"ruby\", \"php\", \"bash\", \"csh\", \"zsh\", \"sh\") and\n not process.args : \"/Users/*/Library/Application Support/iTerm2/Scripts/AutoLaunch/*.scpt\"\n ] by process.parent.pid\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.pid","type":"long"},{"ecs":true,"name":"process.pid","type":"long"}]},{"name":"Persistence via Folder Action Script v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects modification of a Folder Action script. A Folder Action script is executed when the folder to which it is attached has items added or removed, or when its window is opened, closed, moved, or resized. Adversaries may abuse this feature to establish persistence by utilizing a malicious script.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/folder-actions-for-persistence-on-macos-8923f222343d"],"tags":["Elastic","Host","macOS","Threat Detection","Execution","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1037","name":"Boot or Logon Initialization Scripts","reference":"https://attack.mitre.org/techniques/T1037/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"sequence by host.id with maxspan=5s\n [process where event.type in (\"start\", \"process_started\", \"info\") and process.name == \"com.apple.foundation.UserScriptService\"] by process.pid\n [process where event.type in (\"start\", \"process_started\") and process.name in (\"osascript\", \"python\", \"tcl\", \"node\", \"perl\", \"ruby\", \"php\", \"bash\", \"csh\", \"zsh\", \"sh\") and\n not process.args : \"/Users/*/Library/Application Support/iTerm2/Scripts/AutoLaunch/*.scpt\"\n ] by process.parent.pid\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.pid","type":"long"},{"ecs":true,"name":"process.pid","type":"long"}]}]},"id":"c292fa52-4115-408a-b897-e14f684b3cb7","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c2d90150-0133-451c-a783-533e736c12d7.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c2d90150-0133-451c-a783-533e736c12d7.json new file mode 100644 index 0000000000000..997af3365bc3c --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c2d90150-0133-451c-a783-533e736c12d7.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c2d90150-0133-451c-a783-533e736c12d7","versions":[{"name":"Mshta Making Network Connections v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Mshta.exe making outbound network connections. This may indicate adversarial activity, as Mshta is often leveraged by adversaries to execute malicious scripts and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-20m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.005","name":"Mshta","reference":"https://attack.mitre.org/techniques/T1218/005/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=10m\n [process where event.type == \"start\" and process.name : \"mshta.exe\" and\n not process.parent.name : \"Microsoft.ConfigurationManagement.exe\" and\n not (process.parent.executable : \"C:\\\\Amazon\\\\Amazon Assistant\\\\amazonAssistantService.exe\" or\n process.parent.executable : \"C:\\\\TeamViewer\\\\TeamViewer.exe\") and\n not process.args : \"ADSelfService_Enroll.hta\"]\n [network where process.name : \"mshta.exe\"]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},{"name":"Mshta Making Network Connections v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Mshta.exe making outbound network connections. This may indicate adversarial activity, as Mshta is often leveraged by adversaries to execute malicious scripts and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-20m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.005","name":"Mshta","reference":"https://attack.mitre.org/techniques/T1218/005/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=10m\n [process where event.type == \"start\" and process.name : \"mshta.exe\" and\n not process.parent.name : \"Microsoft.ConfigurationManagement.exe\" and\n not (process.parent.executable : \"C:\\\\Amazon\\\\Amazon Assistant\\\\amazonAssistantService.exe\" or\n process.parent.executable : \"C:\\\\TeamViewer\\\\TeamViewer.exe\") and\n not process.args : \"ADSelfService_Enroll.hta\"]\n [network where process.name : \"mshta.exe\"]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},{"name":"Mshta Making Network Connections v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Mshta.exe making outbound network connections. This may indicate adversarial activity, as Mshta is often leveraged by adversaries to execute malicious scripts and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-20m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.005","name":"Mshta","reference":"https://attack.mitre.org/techniques/T1218/005/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=10m\n [process where event.type == \"start\" and process.name : \"mshta.exe\" and\n not process.parent.name : \"Microsoft.ConfigurationManagement.exe\" and\n not (process.parent.executable : \"C:\\\\Amazon\\\\Amazon Assistant\\\\amazonAssistantService.exe\" or\n process.parent.executable : \"C:\\\\TeamViewer\\\\TeamViewer.exe\") and\n not process.args : \"ADSelfService_Enroll.hta\"]\n [network where process.name : \"mshta.exe\"]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]}]},"id":"c2d90150-0133-451c-a783-533e736c12d7","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c3167e1b-f73c-41be-b60b-87f4df707fe3.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c3167e1b-f73c-41be-b60b-87f4df707fe3.json new file mode 100644 index 0000000000000..e7d3f8fd3fc49 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c3167e1b-f73c-41be-b60b-87f4df707fe3.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c3167e1b-f73c-41be-b60b-87f4df707fe3","versions":[{"name":"Permission Theft - Detected - Elastic Endgame v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected Permission Theft. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:token_protection_event or endgame.event_subtype_full:token_protection_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Permission Theft - Detected - Elastic Endgame v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected Permission Theft. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:token_protection_event or endgame.event_subtype_full:token_protection_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Permission Theft - Detected - Elastic Endgame v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected Permission Theft. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:token_protection_event or endgame.event_subtype_full:token_protection_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]}]},"id":"c3167e1b-f73c-41be-b60b-87f4df707fe3","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c3b915e0-22f3-4bf7-991d-b643513c722f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c3b915e0-22f3-4bf7-991d-b643513c722f.json new file mode 100644 index 0000000000000..88d32de543a1f --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c3b915e0-22f3-4bf7-991d-b643513c722f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c3b915e0-22f3-4bf7-991d-b643513c722f","versions":[{"name":"Persistence via BITS Job Notify Cmdline v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary can use the Background Intelligent Transfer Service (BITS) SetNotifyCmdLine method to execute a program that runs after a job finishes transferring data or after a job enters a specified state in order to persist on a system.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://pentestlab.blog/2019/10/30/persistence-bits-jobs/","https://docs.microsoft.com/en-us/windows/win32/api/bits1_5/nf-bits1_5-ibackgroundcopyjob2-setnotifycmdline","https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/bitsadmin-setnotifycmdline","https://www.elastic.co/blog/hunting-for-persistence-using-elastic-security-part-2"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1197","name":"BITS Jobs","reference":"https://attack.mitre.org/techniques/T1197/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"svchost.exe\" and process.parent.args : \"BITS\" and\n not process.executable :\n (\"?:\\\\Windows\\\\System32\\\\WerFaultSecure.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\System32\\\\wermgr.exe\",\n \"?:\\\\WINDOWS\\\\system32\\\\directxdatabaseupdater.exe\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Persistence via BITS Job Notify Cmdline v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary can use the Background Intelligent Transfer Service (BITS) SetNotifyCmdLine method to execute a program that runs after a job finishes transferring data or after a job enters a specified state in order to persist on a system.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://pentestlab.blog/2019/10/30/persistence-bits-jobs/","https://docs.microsoft.com/en-us/windows/win32/api/bits1_5/nf-bits1_5-ibackgroundcopyjob2-setnotifycmdline","https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/bitsadmin-setnotifycmdline","https://www.elastic.co/blog/hunting-for-persistence-using-elastic-security-part-2"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1197","name":"BITS Jobs","reference":"https://attack.mitre.org/techniques/T1197/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"svchost.exe\" and process.parent.args : \"BITS\" and\n not process.executable :\n (\"?:\\\\Windows\\\\System32\\\\WerFaultSecure.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\System32\\\\wermgr.exe\",\n \"?:\\\\WINDOWS\\\\system32\\\\directxdatabaseupdater.exe\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Persistence via BITS Job Notify Cmdline v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary can use the Background Intelligent Transfer Service (BITS) SetNotifyCmdLine method to execute a program that runs after a job finishes transferring data or after a job enters a specified state in order to persist on a system.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://pentestlab.blog/2019/10/30/persistence-bits-jobs/","https://docs.microsoft.com/en-us/windows/win32/api/bits1_5/nf-bits1_5-ibackgroundcopyjob2-setnotifycmdline","https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/bitsadmin-setnotifycmdline","https://www.elastic.co/blog/hunting-for-persistence-using-elastic-security-part-2"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1197","name":"BITS Jobs","reference":"https://attack.mitre.org/techniques/T1197/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"svchost.exe\" and process.parent.args : \"BITS\" and\n not process.executable :\n (\"?:\\\\Windows\\\\System32\\\\WerFaultSecure.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\System32\\\\wermgr.exe\",\n \"?:\\\\WINDOWS\\\\system32\\\\directxdatabaseupdater.exe\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"c3b915e0-22f3-4bf7-991d-b643513c722f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c3f5e1d8-910e-43b4-8d44-d748e498ca86.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c3f5e1d8-910e-43b4-8d44-d748e498ca86.json new file mode 100644 index 0000000000000..16d661d200fc3 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c3f5e1d8-910e-43b4-8d44-d748e498ca86.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c3f5e1d8-910e-43b4-8d44-d748e498ca86","versions":[{"name":"Potential JAVA/JNDI Exploitation Attempt v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an outbound network connection by JAVA to LDAP, RMI or DNS standard ports followed by a suspicious JAVA child processes. This may indicate an attempt to exploit a JAVA/NDI (Java Naming and Directory Interface) injection vulnerability.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.lunasec.io/docs/blog/log4j-zero-day/","https://github.com/christophetd/log4shell-vulnerable-app","https://www.blackhat.com/docs/us-16/materials/us-16-Munoz-A-Journey-From-JNDI-LDAP-Manipulation-To-RCE.pdf","https://www.elastic.co/security-labs/detecting-log4j2-with-elastic-security","https://www.elastic.co/security-labs/analysis-of-log4shell-cve-2021-45046"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.007","name":"JavaScript","reference":"https://attack.mitre.org/techniques/T1059/007/"}]},{"id":"T1203","name":"Exploitation for Client Execution","reference":"https://attack.mitre.org/techniques/T1203/"}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n [network where event.action == \"connection_attempted\" and\n process.name : \"java\" and\n /*\n outbound connection attempt to\n LDAP, RMI or DNS standard ports\n by JAVA process\n */\n destination.port in (1389, 389, 1099, 53, 5353)] by process.pid\n [process where event.type == \"start\" and\n\n /* Suspicious JAVA child process */\n process.parent.name : \"java\" and\n process.name : (\"sh\",\n \"bash\",\n \"dash\",\n \"ksh\",\n \"tcsh\",\n \"zsh\",\n \"curl\",\n \"perl*\",\n \"python*\",\n \"ruby*\",\n \"php*\",\n \"wget\")] by process.parent.pid\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.parent.pid","type":"long"},{"ecs":true,"name":"process.pid","type":"long"}]},{"name":"Potential JAVA/JNDI Exploitation Attempt v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an outbound network connection by JAVA to LDAP, RMI or DNS standard ports followed by a suspicious JAVA child processes. This may indicate an attempt to exploit a JAVA/NDI (Java Naming and Directory Interface) injection vulnerability.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.lunasec.io/docs/blog/log4j-zero-day/","https://github.com/christophetd/log4shell-vulnerable-app","https://www.blackhat.com/docs/us-16/materials/us-16-Munoz-A-Journey-From-JNDI-LDAP-Manipulation-To-RCE.pdf","https://www.elastic.co/security-labs/detecting-log4j2-with-elastic-security","https://www.elastic.co/security-labs/analysis-of-log4shell-cve-2021-45046"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.007","name":"JavaScript","reference":"https://attack.mitre.org/techniques/T1059/007/"}]},{"id":"T1203","name":"Exploitation for Client Execution","reference":"https://attack.mitre.org/techniques/T1203/"}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n [network where event.action == \"connection_attempted\" and\n process.name : \"java\" and\n /*\n outbound connection attempt to\n LDAP, RMI or DNS standard ports\n by JAVA process\n */\n destination.port in (1389, 389, 1099, 53, 5353)] by process.pid\n [process where event.type == \"start\" and\n\n /* Suspicious JAVA child process */\n process.parent.name : \"java\" and\n process.name : (\"sh\",\n \"bash\",\n \"dash\",\n \"ksh\",\n \"tcsh\",\n \"zsh\",\n \"curl\",\n \"perl*\",\n \"python*\",\n \"ruby*\",\n \"php*\",\n \"wget\")] by process.parent.pid\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.parent.pid","type":"long"},{"ecs":true,"name":"process.pid","type":"long"}]},{"name":"Potential JAVA/JNDI Exploitation Attempt v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an outbound network connection by JAVA to LDAP, RMI or DNS standard ports followed by a suspicious JAVA child processes. This may indicate an attempt to exploit a JAVA/NDI (Java Naming and Directory Interface) injection vulnerability.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.lunasec.io/docs/blog/log4j-zero-day/","https://github.com/christophetd/log4shell-vulnerable-app","https://www.blackhat.com/docs/us-16/materials/us-16-Munoz-A-Journey-From-JNDI-LDAP-Manipulation-To-RCE.pdf","https://www.elastic.co/security-labs/detecting-log4j2-with-elastic-security","https://www.elastic.co/security-labs/analysis-of-log4shell-cve-2021-45046"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.007","name":"JavaScript","reference":"https://attack.mitre.org/techniques/T1059/007/"}]},{"id":"T1203","name":"Exploitation for Client Execution","reference":"https://attack.mitre.org/techniques/T1203/"}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n [network where event.action == \"connection_attempted\" and\n process.name : \"java\" and\n /*\n outbound connection attempt to\n LDAP, RMI or DNS standard ports\n by JAVA process\n */\n destination.port in (1389, 389, 1099, 53, 5353)] by process.pid\n [process where event.type == \"start\" and\n\n /* Suspicious JAVA child process */\n process.parent.name : \"java\" and\n process.name : (\"sh\",\n \"bash\",\n \"dash\",\n \"ksh\",\n \"tcsh\",\n \"zsh\",\n \"curl\",\n \"perl*\",\n \"python*\",\n \"ruby*\",\n \"php*\",\n \"wget\")] by process.parent.pid\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.parent.pid","type":"long"},{"ecs":true,"name":"process.pid","type":"long"}]}]},"id":"c3f5e1d8-910e-43b4-8d44-d748e498ca86","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c4210e1c-64f2-4f48-b67e-b5a8ffe3aa14.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c4210e1c-64f2-4f48-b67e-b5a8ffe3aa14.json new file mode 100644 index 0000000000000..9fd4d63d9e35b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c4210e1c-64f2-4f48-b67e-b5a8ffe3aa14.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c4210e1c-64f2-4f48-b67e-b5a8ffe3aa14","versions":[{"name":"Mounting Hidden or WebDav Remote Shares v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of net.exe to mount a WebDav or hidden remote share. This may indicate lateral movement or preparation for data exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.003","name":"Local Accounts","reference":"https://attack.mitre.org/techniques/T1078/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n ((process.name : \"net.exe\" or process.pe.original_file_name == \"net.exe\") or ((process.name : \"net1.exe\" or process.pe.original_file_name == \"net1.exe\") and\n not process.parent.name : \"net.exe\")) and\n process.args : \"use\" and\n /* including hidden and webdav based online shares such as onedrive */\n process.args : (\"\\\\\\\\*\\\\*$*\", \"\\\\\\\\*@SSL\\\\*\", \"http*\") and\n /* excluding shares deletion operation */\n not process.args : \"/d*\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Mounting Hidden or WebDav Remote Shares v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of net.exe to mount a WebDav or hidden remote share. This may indicate lateral movement or preparation for data exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.003","name":"Local Accounts","reference":"https://attack.mitre.org/techniques/T1078/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n ((process.name : \"net.exe\" or process.pe.original_file_name == \"net.exe\") or ((process.name : \"net1.exe\" or process.pe.original_file_name == \"net1.exe\") and\n not process.parent.name : \"net.exe\")) and\n process.args : \"use\" and\n /* including hidden and webdav based online shares such as onedrive */\n process.args : (\"\\\\\\\\*\\\\*$*\", \"\\\\\\\\*@SSL\\\\*\", \"http*\") and\n /* excluding shares deletion operation */\n not process.args : \"/d*\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Mounting Hidden or WebDav Remote Shares v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of net.exe to mount a WebDav or hidden remote share. This may indicate lateral movement or preparation for data exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.003","name":"Local Accounts","reference":"https://attack.mitre.org/techniques/T1078/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n ((process.name : \"net.exe\" or process.pe.original_file_name == \"net.exe\") or ((process.name : \"net1.exe\" or process.pe.original_file_name == \"net1.exe\") and\n not process.parent.name : \"net.exe\")) and\n process.args : \"use\" and\n /* including hidden and webdav based online shares such as onedrive */\n process.args : (\"\\\\\\\\*\\\\*$*\", \"\\\\\\\\*@SSL\\\\*\", \"http*\") and\n /* excluding shares deletion operation */\n not process.args : \"/d*\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"c4210e1c-64f2-4f48-b67e-b5a8ffe3aa14","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c4818812-d44f-47be-aaef-4cfb2f9cc799.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c4818812-d44f-47be-aaef-4cfb2f9cc799.json new file mode 100644 index 0000000000000..962e0cb574b13 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c4818812-d44f-47be-aaef-4cfb2f9cc799.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c4818812-d44f-47be-aaef-4cfb2f9cc799","versions":[{"name":"Suspicious Print Spooler File Deletion v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects deletion of print driver files by an unusual process. This may indicate a clean up attempt post successful privilege escalation via Print Spooler service related vulnerabilities.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Uninstall or manual deletion of a legitimate printing driver files. Verify the printer file metadata such as manufacturer and signature information."],"from":"now-9m","references":["https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34527"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"file where event.type : \"deletion\" and\n not process.name : (\"spoolsv.exe\", \"dllhost.exe\", \"explorer.exe\") and\n file.path : \"?:\\\\Windows\\\\System32\\\\spool\\\\drivers\\\\x64\\\\3\\\\*.dll\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious Print Spooler File Deletion v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects deletion of print driver files by an unusual process. This may indicate a clean up attempt post successful privilege escalation via Print Spooler service related vulnerabilities.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Uninstall or manual deletion of a legitimate printing driver files. Verify the printer file metadata such as manufacturer and signature information."],"from":"now-9m","references":["https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34527"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"file where event.type : \"deletion\" and\n not process.name : (\"spoolsv.exe\", \"dllhost.exe\", \"explorer.exe\") and\n file.path : \"?:\\\\Windows\\\\System32\\\\spool\\\\drivers\\\\x64\\\\3\\\\*.dll\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious Print Spooler File Deletion v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects deletion of print driver files by an unusual process. This may indicate a clean up attempt post successful privilege escalation via Print Spooler service related vulnerabilities.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Uninstall or manual deletion of a legitimate printing driver files. Verify the printer file metadata such as manufacturer and signature information."],"from":"now-9m","references":["https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34527"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"file where event.type : \"deletion\" and\n not process.name : (\"spoolsv.exe\", \"dllhost.exe\", \"explorer.exe\") and\n file.path : \"?:\\\\Windows\\\\System32\\\\spool\\\\drivers\\\\x64\\\\3\\\\*.dll\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"c4818812-d44f-47be-aaef-4cfb2f9cc799","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c57f8579-e2a5-4804-847f-f2732edc5156.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c57f8579-e2a5-4804-847f-f2732edc5156.json new file mode 100644 index 0000000000000..656fc2d2e2f90 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c57f8579-e2a5-4804-847f-f2732edc5156.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c57f8579-e2a5-4804-847f-f2732edc5156","versions":[{"name":"Potential Remote Desktop Shadowing Activity v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the modification of the Remote Desktop Protocol (RDP) Shadow registry or the execution of processes indicative of an active RDP shadowing session. An adversary may abuse the RDP Shadowing feature to spy on or control other users active RDP sessions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://bitsadm.in/blog/spying-on-users-using-rdp-shadowing","https://swarm.ptsecurity.com/remote-desktop-services-shadowing/"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"/* Identifies the modification of RDP Shadow registry or\n the execution of processes indicative of active shadow RDP session */\n\nany where\n (event.category == \"registry\" and\n registry.path : \"HKLM\\\\Software\\\\Policies\\\\Microsoft\\\\Windows NT\\\\Terminal Services\\\\Shadow\"\n ) or\n (event.category == \"process\" and\n (process.name : (\"RdpSaUacHelper.exe\", \"RdpSaProxy.exe\") and process.parent.name : \"svchost.exe\") or\n (process.pe.original_file_name : \"mstsc.exe\" and process.args : \"/shadow:*\")\n )\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Remote Desktop Shadowing Activity v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the modification of the Remote Desktop Protocol (RDP) Shadow registry or the execution of processes indicative of an active RDP shadowing session. An adversary may abuse the RDP Shadowing feature to spy on or control other users active RDP sessions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://bitsadm.in/blog/spying-on-users-using-rdp-shadowing","https://swarm.ptsecurity.com/remote-desktop-services-shadowing/"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"/* Identifies the modification of RDP Shadow registry or\n the execution of processes indicative of active shadow RDP session */\n\nany where\n (event.category == \"registry\" and\n registry.path : \"HKLM\\\\Software\\\\Policies\\\\Microsoft\\\\Windows NT\\\\Terminal Services\\\\Shadow\"\n ) or\n (event.category == \"process\" and\n (process.name : (\"RdpSaUacHelper.exe\", \"RdpSaProxy.exe\") and process.parent.name : \"svchost.exe\") or\n (process.pe.original_file_name : \"mstsc.exe\" and process.args : \"/shadow:*\")\n )\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Remote Desktop Shadowing Activity v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the modification of the Remote Desktop Protocol (RDP) Shadow registry or the execution of processes indicative of an active RDP shadowing session. An adversary may abuse the RDP Shadowing feature to spy on or control other users active RDP sessions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://bitsadm.in/blog/spying-on-users-using-rdp-shadowing","https://swarm.ptsecurity.com/remote-desktop-services-shadowing/"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"/* Identifies the modification of RDP Shadow registry or\n the execution of processes indicative of active shadow RDP session */\n\nany where\n (event.category == \"registry\" and\n registry.path : \"HKLM\\\\Software\\\\Policies\\\\Microsoft\\\\Windows NT\\\\Terminal Services\\\\Shadow\"\n ) or\n (event.category == \"process\" and\n (process.name : (\"RdpSaUacHelper.exe\", \"RdpSaProxy.exe\") and process.parent.name : \"svchost.exe\") or\n (process.pe.original_file_name : \"mstsc.exe\" and process.args : \"/shadow:*\")\n )\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"c57f8579-e2a5-4804-847f-f2732edc5156","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c58c3081-2e1d-4497-8491-e73a45d1a6d6.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c58c3081-2e1d-4497-8491-e73a45d1a6d6.json new file mode 100644 index 0000000000000..d93c2aa4d9b13 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c58c3081-2e1d-4497-8491-e73a45d1a6d6.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c58c3081-2e1d-4497-8491-e73a45d1a6d6","versions":[{"name":"GCP Virtual Private Cloud Network Deletion v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Virtual Private Cloud (VPC) network is deleted in Google Cloud Platform (GCP). A VPC network is a virtual version of a physical network within a GCP project. Each VPC network has its own subnets, routes, and firewall, as well as other elements. An adversary may delete a VPC network in order to disrupt their target's network and business operations.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Virtual Private Cloud networks may be deleted by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/vpc"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:v*.compute.networks.delete and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Virtual Private Cloud Network Deletion v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Virtual Private Cloud (VPC) network is deleted in Google Cloud Platform (GCP). A VPC network is a virtual version of a physical network within a GCP project. Each VPC network has its own subnets, routes, and firewall, as well as other elements. An adversary may delete a VPC network in order to disrupt their target's network and business operations.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Virtual Private Cloud networks may be deleted by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/vpc"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:v*.compute.networks.delete and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Virtual Private Cloud Network Deletion v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Virtual Private Cloud (VPC) network is deleted in Google Cloud Platform (GCP). A VPC network is a virtual version of a physical network within a GCP project. Each VPC network has its own subnets, routes, and firewall, as well as other elements. An adversary may delete a VPC network in order to disrupt their target's network and business operations.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Virtual Private Cloud networks may be deleted by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/vpc"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:v*.compute.networks.delete and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"c58c3081-2e1d-4497-8491-e73a45d1a6d6","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c5c9f591-d111-4cf8-baec-c26a39bc31ef.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c5c9f591-d111-4cf8-baec-c26a39bc31ef.json new file mode 100644 index 0000000000000..a2387eacbb2d2 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c5c9f591-d111-4cf8-baec-c26a39bc31ef.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c5c9f591-d111-4cf8-baec-c26a39bc31ef","versions":[{"name":"Potential Credential Access via Renamed COM+ Services DLL v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious renamed COMSVCS.DLL Image Load, which exports the MiniDump function that can be used to dump a process memory. This may indicate an attempt to dump LSASS memory while bypassing command-line based detection in preparation for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic"],"from":"now-9m","references":["https://modexp.wordpress.com/2019/08/30/minidumpwritedump-via-com-services-dll/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=1m\n [process where event.category == \"process\" and\n process.name : \"rundll32.exe\"]\n [process where event.category == \"process\" and event.dataset : \"windows.sysmon_operational\" and event.code == \"7\" and\n (file.pe.original_file_name : \"COMSVCS.DLL\" or file.pe.imphash : \"EADBCCBB324829ACB5F2BBE87E5549A8\") and\n /* renamed COMSVCS */\n not file.name : \"COMSVCS.DLL\"]\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.pe.imphash","type":"keyword"},{"ecs":true,"name":"file.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"You will need to enable logging of ImageLoads in your Sysmon configuration to include COMSVCS.DLL by Imphash or Original\nFile Name."},{"name":"Potential Credential Access via Renamed COM+ Services DLL v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious renamed COMSVCS.DLL Image Load, which exports the MiniDump function that can be used to dump a process memory. This may indicate an attempt to dump LSASS memory while bypassing command-line based detection in preparation for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic"],"from":"now-9m","references":["https://modexp.wordpress.com/2019/08/30/minidumpwritedump-via-com-services-dll/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=1m\n [process where event.category == \"process\" and\n process.name : \"rundll32.exe\"]\n [process where event.category == \"process\" and event.dataset : \"windows.sysmon_operational\" and event.code == \"7\" and\n (file.pe.original_file_name : \"COMSVCS.DLL\" or file.pe.imphash : \"EADBCCBB324829ACB5F2BBE87E5549A8\") and\n /* renamed COMSVCS */\n not file.name : \"COMSVCS.DLL\"]\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.pe.imphash","type":"keyword"},{"ecs":true,"name":"file.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"You will need to enable logging of ImageLoads in your Sysmon configuration to include COMSVCS.DLL by Imphash or Original\nFile Name."},{"name":"Potential Credential Access via Renamed COM+ Services DLL v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious renamed COMSVCS.DLL Image Load, which exports the MiniDump function that can be used to dump a process memory. This may indicate an attempt to dump LSASS memory while bypassing command-line based detection in preparation for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic"],"from":"now-9m","references":["https://modexp.wordpress.com/2019/08/30/minidumpwritedump-via-com-services-dll/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=1m\n [process where event.category == \"process\" and\n process.name : \"rundll32.exe\"]\n [process where event.category == \"process\" and event.dataset : \"windows.sysmon_operational\" and event.code == \"7\" and\n (file.pe.original_file_name : \"COMSVCS.DLL\" or file.pe.imphash : \"EADBCCBB324829ACB5F2BBE87E5549A8\") and\n /* renamed COMSVCS */\n not file.name : \"COMSVCS.DLL\"]\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.pe.imphash","type":"keyword"},{"ecs":true,"name":"file.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"You will need to enable logging of ImageLoads in your Sysmon configuration to include COMSVCS.DLL by Imphash or Original\nFile Name."}]},"id":"c5c9f591-d111-4cf8-baec-c26a39bc31ef","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c5ce48a6-7f57-4ee8-9313-3d0024caee10.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c5ce48a6-7f57-4ee8-9313-3d0024caee10.json new file mode 100644 index 0000000000000..252618f73ad88 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c5ce48a6-7f57-4ee8-9313-3d0024caee10.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c5ce48a6-7f57-4ee8-9313-3d0024caee10","versions":[{"name":"Installation of Custom Shim Databases v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the installation of custom Application Compatibility Shim databases. This Windows functionality has been abused by attackers to stealthily gain persistence and arbitrary code execution in legitimate Windows processes.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.011","name":"Application Shimming","reference":"https://attack.mitre.org/techniques/T1546/011/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan = 5m\n [process where event.type == \"start\" and\n not (process.name : \"sdbinst.exe\" and process.parent.name : \"msiexec.exe\")]\n [registry where event.type in (\"creation\", \"change\") and\n registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\AppCompatFlags\\\\Custom\\\\*.sdb\"]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}]},{"name":"Installation of Custom Shim Databases v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the installation of custom Application Compatibility Shim databases. This Windows functionality has been abused by attackers to stealthily gain persistence and arbitrary code execution in legitimate Windows processes.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.011","name":"Application Shimming","reference":"https://attack.mitre.org/techniques/T1546/011/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan = 5m\n [process where event.type == \"start\" and\n not (process.name : \"sdbinst.exe\" and process.parent.name : \"msiexec.exe\")]\n [registry where event.type in (\"creation\", \"change\") and\n registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\AppCompatFlags\\\\Custom\\\\*.sdb\"]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}]},{"name":"Installation of Custom Shim Databases v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the installation of custom Application Compatibility Shim databases. This Windows functionality has been abused by attackers to stealthily gain persistence and arbitrary code execution in legitimate Windows processes.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.011","name":"Application Shimming","reference":"https://attack.mitre.org/techniques/T1546/011/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan = 5m\n [process where event.type == \"start\" and\n not (process.name : \"sdbinst.exe\" and process.parent.name : \"msiexec.exe\")]\n [registry where event.type in (\"creation\", \"change\") and\n registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\AppCompatFlags\\\\Custom\\\\*.sdb\"]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}]}]},"id":"c5ce48a6-7f57-4ee8-9313-3d0024caee10","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c5dc3223-13a2-44a2-946c-e9dc0aa0449c.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c5dc3223-13a2-44a2-946c-e9dc0aa0449c.json new file mode 100644 index 0000000000000..0567c56599599 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c5dc3223-13a2-44a2-946c-e9dc0aa0449c.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c5dc3223-13a2-44a2-946c-e9dc0aa0449c","versions":[{"name":"Microsoft Build Engine Started by an Office Application v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, was started by Excel or Word. This is unusual behavior for the Build Engine and could have been caused by an Excel or Word document executing a malicious script payload.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Microsoft Build Engine Started by an Office Application\n\nMicrosoft Office (MS Office) is a suite of applications designed to help with productivity and completing common tasks on a computer.\nYou can create and edit documents containing text and images, work with data in spreadsheets and databases, and create\npresentations and posters. As it is some of the most-used software across companies, MS Office is frequently targeted\nfor initial access. It also has a wide variety of capabilities that attackers can take advantage of.\n\nThe Microsoft Build Engine is a platform for building applications. This engine, also known as MSBuild, provides an XML\nschema for a project file that controls how the build platform processes and builds software, and can be abused to proxy\nexecution of code.\n\nThis rule looks for the `Msbuild.exe` utility spawned by MS Office programs. This is generally the result of the\nexecution of malicious documents.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve MS Office documents received and opened by the user that could cause this behavior. Common locations include,\nbut are not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual. It is quite unusual for this program to be started by an Office application like Word or Excel."],"from":"now-9m","references":["https://blog.talosintelligence.com/2020/02/building-bypass-with-msbuild.html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/","subtechnique":[{"id":"T1127.001","name":"MSBuild","reference":"https://attack.mitre.org/techniques/T1127/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"MSBuild.exe\" and\n process.parent.name : (\"eqnedt32.exe\",\n \"excel.exe\",\n \"fltldr.exe\",\n \"msaccess.exe\",\n \"mspub.exe\",\n \"outlook.exe\",\n \"powerpnt.exe\",\n \"winword.exe\" )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Microsoft Build Engine Started by an Office Application v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, was started by Excel or Word. This is unusual behavior for the Build Engine and could have been caused by an Excel or Word document executing a malicious script payload.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Microsoft Build Engine Started by an Office Application\n\nMicrosoft Office (MS Office) is a suite of applications designed to help with productivity and completing common tasks on a computer.\nYou can create and edit documents containing text and images, work with data in spreadsheets and databases, and create\npresentations and posters. As it is some of the most-used software across companies, MS Office is frequently targeted\nfor initial access. It also has a wide variety of capabilities that attackers can take advantage of.\n\nThe Microsoft Build Engine is a platform for building applications. This engine, also known as MSBuild, provides an XML\nschema for a project file that controls how the build platform processes and builds software, and can be abused to proxy\nexecution of code.\n\nThis rule looks for the `Msbuild.exe` utility spawned by MS Office programs. This is generally the result of the\nexecution of malicious documents.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve MS Office documents received and opened by the user that could cause this behavior. Common locations include,\nbut are not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual. It is quite unusual for this program to be started by an Office application like Word or Excel."],"from":"now-9m","references":["https://blog.talosintelligence.com/2020/02/building-bypass-with-msbuild.html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/","subtechnique":[{"id":"T1127.001","name":"MSBuild","reference":"https://attack.mitre.org/techniques/T1127/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"MSBuild.exe\" and\n process.parent.name : (\"eqnedt32.exe\",\n \"excel.exe\",\n \"fltldr.exe\",\n \"msaccess.exe\",\n \"mspub.exe\",\n \"outlook.exe\",\n \"powerpnt.exe\",\n \"winword.exe\" )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Microsoft Build Engine Started by an Office Application v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, was started by Excel or Word. This is unusual behavior for the Build Engine and could have been caused by an Excel or Word document executing a malicious script payload.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Microsoft Build Engine Started by an Office Application\n\nMicrosoft Office (MS Office) is a suite of applications designed to help with productivity and completing common tasks on a computer.\nYou can create and edit documents containing text and images, work with data in spreadsheets and databases, and create\npresentations and posters. As it is some of the most-used software across companies, MS Office is frequently targeted\nfor initial access. It also has a wide variety of capabilities that attackers can take advantage of.\n\nThe Microsoft Build Engine is a platform for building applications. This engine, also known as MSBuild, provides an XML\nschema for a project file that controls how the build platform processes and builds software, and can be abused to proxy\nexecution of code.\n\nThis rule looks for the `Msbuild.exe` utility spawned by MS Office programs. This is generally the result of the\nexecution of malicious documents.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve MS Office documents received and opened by the user that could cause this behavior. Common locations include,\nbut are not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual. It is quite unusual for this program to be started by an Office application like Word or Excel."],"from":"now-9m","references":["https://blog.talosintelligence.com/2020/02/building-bypass-with-msbuild.html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/","subtechnique":[{"id":"T1127.001","name":"MSBuild","reference":"https://attack.mitre.org/techniques/T1127/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"MSBuild.exe\" and\n process.parent.name : (\"eqnedt32.exe\",\n \"excel.exe\",\n \"fltldr.exe\",\n \"msaccess.exe\",\n \"mspub.exe\",\n \"outlook.exe\",\n \"powerpnt.exe\",\n \"winword.exe\" )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"c5dc3223-13a2-44a2-946c-e9dc0aa0449c","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c5f81243-56e0-47f9-b5bb-55a5ed89ba57.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c5f81243-56e0-47f9-b5bb-55a5ed89ba57.json new file mode 100644 index 0000000000000..1200ca2aa6dbe --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c5f81243-56e0-47f9-b5bb-55a5ed89ba57.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c5f81243-56e0-47f9-b5bb-55a5ed89ba57","versions":[{"name":"CyberArk Privileged Access Security Recommended Monitor v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the occurrence of a CyberArk Privileged Access Security (PAS) non-error level audit event which is recommended for monitoring by the vendor. The event.code correlates to the CyberArk Vault Audit Action Code.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\nThis is a promotion rule for CyberArk events, which the vendor recommends should be monitored.\nConsult vendor documentation on interpreting specific events.","rule_name_override":"event.action","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["To tune this rule, add exceptions to exclude any event.code which should not trigger this rule."],"from":"now-30m","references":["https://docs.cyberark.com/Product-Doc/OnlineHelp/PAS/Latest/en/Content/PASREF/Vault%20Audit%20Action%20Codes.htm?tocpath=Administration%7CReferences%7C_____3#RecommendedActionCodesforMonitoring"],"tags":["Elastic","cyberarkpas","SecOps","Log Auditing","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-cyberarkpas.audit*"],"language":"kuery","query":"event.dataset:cyberarkpas.audit and\n event.code:(4 or 22 or 24 or 31 or 38 or 57 or 60 or 130 or 295 or 300 or 302 or\n 308 or 319 or 344 or 346 or 359 or 361 or 378 or 380 or 411) and\n not event.type:error\n","related_integrations":[{"package":"cyberarkpas","version":"^2.2.0"}],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"}],"setup":"The CyberArk Privileged Access Security (PAS) Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"CyberArk Privileged Access Security Recommended Monitor v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the occurrence of a CyberArk Privileged Access Security (PAS) non-error level audit event which is recommended for monitoring by the vendor. The event.code correlates to the CyberArk Vault Audit Action Code.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\nThis is a promotion rule for CyberArk events, which the vendor recommends should be monitored.\nConsult vendor documentation on interpreting specific events.","rule_name_override":"event.action","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["To tune this rule, add exceptions to exclude any event.code which should not trigger this rule."],"from":"now-30m","references":["https://docs.cyberark.com/Product-Doc/OnlineHelp/PAS/Latest/en/Content/PASREF/Vault%20Audit%20Action%20Codes.htm?tocpath=Administration%7CReferences%7C_____3#RecommendedActionCodesforMonitoring"],"tags":["Elastic","cyberarkpas","SecOps","Log Auditing","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-cyberarkpas.audit*"],"language":"kuery","query":"event.dataset:cyberarkpas.audit and\n event.code:(4 or 22 or 24 or 31 or 38 or 57 or 60 or 130 or 295 or 300 or 302 or\n 308 or 319 or 344 or 346 or 359 or 361 or 378 or 380 or 411) and\n not event.type:error\n","related_integrations":[{"package":"cyberarkpas","version":"^2.2.0"}],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"}],"setup":"The CyberArk Privileged Access Security (PAS) Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"CyberArk Privileged Access Security Recommended Monitor v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the occurrence of a CyberArk Privileged Access Security (PAS) non-error level audit event which is recommended for monitoring by the vendor. The event.code correlates to the CyberArk Vault Audit Action Code.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\nThis is a promotion rule for CyberArk events, which the vendor recommends should be monitored.\nConsult vendor documentation on interpreting specific events.","rule_name_override":"event.action","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["To tune this rule, add exceptions to exclude any event.code which should not trigger this rule."],"from":"now-30m","references":["https://docs.cyberark.com/Product-Doc/OnlineHelp/PAS/Latest/en/Content/PASREF/Vault%20Audit%20Action%20Codes.htm?tocpath=Administration%7CReferences%7C_____3#RecommendedActionCodesforMonitoring"],"tags":["Elastic","cyberarkpas","SecOps","Log Auditing","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-cyberarkpas.audit*"],"language":"kuery","query":"event.dataset:cyberarkpas.audit and\n event.code:(4 or 22 or 24 or 31 or 38 or 57 or 60 or 130 or 295 or 300 or 302 or\n 308 or 319 or 344 or 346 or 359 or 361 or 378 or 380 or 411) and\n not event.type:error\n","related_integrations":[{"package":"cyberarkpas","version":"^2.2.0"}],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"}],"setup":"The CyberArk Privileged Access Security (PAS) Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"c5f81243-56e0-47f9-b5bb-55a5ed89ba57","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c6453e73-90eb-4fe7-a98c-cde7bbfc504a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c6453e73-90eb-4fe7-a98c-cde7bbfc504a.json new file mode 100644 index 0000000000000..9445498607db1 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c6453e73-90eb-4fe7-a98c-cde7bbfc504a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c6453e73-90eb-4fe7-a98c-cde7bbfc504a","versions":[{"name":"Remote File Download via MpCmdRun v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the Windows Defender configuration utility (MpCmdRun.exe) being used to download a remote file.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote File Download via MpCmdRun\n\nAttackers commonly transfer tooling or malware from external systems into a compromised environment using the command\nand control channel. However, they can also abuse signed utilities to drop these files.\n\nThe `MpCmdRun.exe` is a command-line tool part of Windows Defender and is used to manage various Microsoft Windows\nDefender Antivirus settings and perform certain tasks. It can also be abused by attackers to download remote files,\nincluding malware and offensive tooling. This rule looks for the patterns used to perform downloads using the utility.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check the reputation of the domain or IP address used to host the downloaded file.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://twitter.com/mohammadaskar2/status/1301263551638761477","https://www.bleepingcomputer.com/news/microsoft/microsoft-defender-can-ironically-be-used-to-download-malware/"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"MpCmdRun.exe\" or process.pe.original_file_name == \"MpCmdRun.exe\") and\n process.args : \"-DownloadFile\" and process.args : \"-url\" and process.args : \"-path\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Remote File Download via MpCmdRun v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the Windows Defender configuration utility (MpCmdRun.exe) being used to download a remote file.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote File Download via MpCmdRun\n\nAttackers commonly transfer tooling or malware from external systems into a compromised environment using the command\nand control channel. However, they can also abuse signed utilities to drop these files.\n\nThe `MpCmdRun.exe` is a command-line tool part of Windows Defender and is used to manage various Microsoft Windows\nDefender Antivirus settings and perform certain tasks. It can also be abused by attackers to download remote files,\nincluding malware and offensive tooling. This rule looks for the patterns used to perform downloads using the utility.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check the reputation of the domain or IP address used to host the downloaded file.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://twitter.com/mohammadaskar2/status/1301263551638761477","https://www.bleepingcomputer.com/news/microsoft/microsoft-defender-can-ironically-be-used-to-download-malware/"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"MpCmdRun.exe\" or process.pe.original_file_name == \"MpCmdRun.exe\") and\n process.args : \"-DownloadFile\" and process.args : \"-url\" and process.args : \"-path\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Remote File Download via MpCmdRun v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the Windows Defender configuration utility (MpCmdRun.exe) being used to download a remote file.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote File Download via MpCmdRun\n\nAttackers commonly transfer tooling or malware from external systems into a compromised environment using the command\nand control channel. However, they can also abuse signed utilities to drop these files.\n\nThe `MpCmdRun.exe` is a command-line tool part of Windows Defender and is used to manage various Microsoft Windows\nDefender Antivirus settings and perform certain tasks. It can also be abused by attackers to download remote files,\nincluding malware and offensive tooling. This rule looks for the patterns used to perform downloads using the utility.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check the reputation of the domain or IP address used to host the downloaded file.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://twitter.com/mohammadaskar2/status/1301263551638761477","https://www.bleepingcomputer.com/news/microsoft/microsoft-defender-can-ironically-be-used-to-download-malware/"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"MpCmdRun.exe\" or process.pe.original_file_name == \"MpCmdRun.exe\") and\n process.args : \"-DownloadFile\" and process.args : \"-url\" and process.args : \"-path\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"c6453e73-90eb-4fe7-a98c-cde7bbfc504a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c749e367-a069-4a73-b1f2-43a3798153ad.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c749e367-a069-4a73-b1f2-43a3798153ad.json new file mode 100644 index 0000000000000..f6c921359f97c --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c749e367-a069-4a73-b1f2-43a3798153ad.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c749e367-a069-4a73-b1f2-43a3798153ad","versions":[{"name":"Attempt to Delete an Okta Network Zone v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to delete an Okta network zone. Okta network zones can be configured to limit or restrict access to a network based on IP addresses or geolocations. An adversary may attempt to modify, delete, or deactivate an Okta network zone in order to remove or weaken an organization's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Oyour organization's Okta network zones are regularly deleted."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/network/network-zones.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Network Security","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:zone.delete\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Delete an Okta Network Zone v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to delete an Okta network zone. Okta network zones can be configured to limit or restrict access to a network based on IP addresses or geolocations. An adversary may attempt to modify, delete, or deactivate an Okta network zone in order to remove or weaken an organization's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Oyour organization's Okta network zones are regularly deleted."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/network/network-zones.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Network Security","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:zone.delete\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Delete an Okta Network Zone v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to delete an Okta network zone. Okta network zones can be configured to limit or restrict access to a network based on IP addresses or geolocations. An adversary may attempt to modify, delete, or deactivate an Okta network zone in order to remove or weaken an organization's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Oyour organization's Okta network zones are regularly deleted."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/network/network-zones.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Network Security","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:zone.delete\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"c749e367-a069-4a73-b1f2-43a3798153ad","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c74fd275-ab2c-4d49-8890-e2943fa65c09.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c74fd275-ab2c-4d49-8890-e2943fa65c09.json new file mode 100644 index 0000000000000..b8a709d54112a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c74fd275-ab2c-4d49-8890-e2943fa65c09.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c74fd275-ab2c-4d49-8890-e2943fa65c09","versions":[{"name":"Attempt to Modify an Okta Application v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to modify an Okta application. An adversary may attempt to modify, deactivate, or delete an Okta application in order to weaken an organization's security controls or disrupt their business operations.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if your organization's Okta applications are regularly modified and the behavior is expected."],"references":["https://help.okta.com/en/prod/Content/Topics/Apps/Apps_Apps.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:application.lifecycle.update\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Modify an Okta Application v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to modify an Okta application. An adversary may attempt to modify, deactivate, or delete an Okta application in order to weaken an organization's security controls or disrupt their business operations.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if your organization's Okta applications are regularly modified and the behavior is expected."],"references":["https://help.okta.com/en/prod/Content/Topics/Apps/Apps_Apps.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:application.lifecycle.update\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Modify an Okta Application v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to modify an Okta application. An adversary may attempt to modify, deactivate, or delete an Okta application in order to weaken an organization's security controls or disrupt their business operations.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if your organization's Okta applications are regularly modified and the behavior is expected."],"references":["https://help.okta.com/en/prod/Content/Topics/Apps/Apps_Apps.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:application.lifecycle.update\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"c74fd275-ab2c-4d49-8890-e2943fa65c09","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c7894234-7814-44c2-92a9-f7d851ea246a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c7894234-7814-44c2-92a9-f7d851ea246a.json new file mode 100644 index 0000000000000..8e4f64fd3bad7 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c7894234-7814-44c2-92a9-f7d851ea246a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c7894234-7814-44c2-92a9-f7d851ea246a","versions":[{"name":"Unusual Network Connection via DllHost v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual instances of dllhost.exe making outbound network connections. This may indicate adversarial Command and Control activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2021/05/27/new-sophisticated-email-based-attack-from-nobelium/","https://www.volexity.com/blog/2021/05/27/suspected-apt29-operation-launches-election-fraud-themed-phishing-campaigns/","https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan=1m\n [process where event.type == \"start\" and process.name : \"dllhost.exe\" and process.args_count == 1]\n [network where process.name : \"dllhost.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\", \"192.0.2.0/24\",\n \"192.31.196.0/24\", \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\",\n \"192.175.48.0/24\", \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\", \"FE80::/10\",\n \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Unusual Network Connection via DllHost v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual instances of dllhost.exe making outbound network connections. This may indicate adversarial Command and Control activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2021/05/27/new-sophisticated-email-based-attack-from-nobelium/","https://www.volexity.com/blog/2021/05/27/suspected-apt29-operation-launches-election-fraud-themed-phishing-campaigns/","https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan=1m\n [process where event.type == \"start\" and process.name : \"dllhost.exe\" and process.args_count == 1]\n [network where process.name : \"dllhost.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\", \"192.0.2.0/24\",\n \"192.31.196.0/24\", \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\",\n \"192.175.48.0/24\", \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\", \"FE80::/10\",\n \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Unusual Network Connection via DllHost v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual instances of dllhost.exe making outbound network connections. This may indicate adversarial Command and Control activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2021/05/27/new-sophisticated-email-based-attack-from-nobelium/","https://www.volexity.com/blog/2021/05/27/suspected-apt29-operation-launches-election-fraud-themed-phishing-campaigns/","https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan=1m\n [process where event.type == \"start\" and process.name : \"dllhost.exe\" and process.args_count == 1]\n [network where process.name : \"dllhost.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\", \"192.0.2.0/24\",\n \"192.31.196.0/24\", \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\",\n \"192.175.48.0/24\", \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\", \"FE80::/10\",\n \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"c7894234-7814-44c2-92a9-f7d851ea246a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c7908cac-337a-4f38-b50d-5eeb78bdb531.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c7908cac-337a-4f38-b50d-5eeb78bdb531.json new file mode 100644 index 0000000000000..b6eadba13a8d7 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c7908cac-337a-4f38-b50d-5eeb78bdb531.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c7908cac-337a-4f38-b50d-5eeb78bdb531","versions":[{"name":"Kubernetes Privileged Pod Created v200.0.0","rule_version":"200.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects when a user creates a pod/container running in privileged mode. A highly privileged container has access to the node's resources and breaks the isolation between containers. If compromised, an attacker can use the privileged container to gain access to the underlying host. Gaining access to the host may provide the adversary with the opportunity to achieve follow-on objectives, such as establishing persistence, moving laterally within the environment, or setting up a command and control channel on the host.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["By default a container is not allowed to access any devices on the host, but a \"privileged\" container is given access to all devices on the host. This allows the container nearly all the same access as processes running on the host. An administrator may want to run a privileged container to use operating system administrative capabilities such as manipulating the network stack or accessing hardware devices from within the cluster. Add exceptions for trusted container images using the query field \"kubernetes.audit.requestObject.spec.container.image\""],"references":["https://media.defense.gov/2021/Aug/03/2002820425/-1/-1/1/CTR_KUBERNETES%20HARDENING%20GUIDANCE.PDF","https://kubernetes.io/docs/tasks/configure-pod-container/security-context/"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\"\n and kubernetes.audit.objectRef.resource:pods \n and kubernetes.audit.verb:create \n and kubernetes.audit.requestObject.spec.containers.securityContext.privileged:true\n and not kubernetes.audit.requestObject.spec.containers.image: (\"docker.elastic.co/beats/elastic-agent:8.4.0\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.securityContext.privileged","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},{"name":"Kubernetes Privileged Pod Created v200.0.1","rule_version":"200.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects when a user creates a pod/container running in privileged mode. A highly privileged container has access to the node's resources and breaks the isolation between containers. If compromised, an attacker can use the privileged container to gain access to the underlying host. Gaining access to the host may provide the adversary with the opportunity to achieve follow-on objectives, such as establishing persistence, moving laterally within the environment, or setting up a command and control channel on the host.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["By default a container is not allowed to access any devices on the host, but a \"privileged\" container is given access to all devices on the host. This allows the container nearly all the same access as processes running on the host. An administrator may want to run a privileged container to use operating system administrative capabilities such as manipulating the network stack or accessing hardware devices from within the cluster. Add exceptions for trusted container images using the query field \"kubernetes.audit.requestObject.spec.container.image\""],"references":["https://media.defense.gov/2021/Aug/03/2002820425/-1/-1/1/CTR_KUBERNETES%20HARDENING%20GUIDANCE.PDF","https://kubernetes.io/docs/tasks/configure-pod-container/security-context/"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\"\n and kubernetes.audit.objectRef.resource:pods \n and kubernetes.audit.verb:create \n and kubernetes.audit.requestObject.spec.containers.securityContext.privileged:true\n and not kubernetes.audit.requestObject.spec.containers.image: (\"docker.elastic.co/beats/elastic-agent:8.4.0\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.securityContext.privileged","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},{"name":"Kubernetes Privileged Pod Created v200.0.2","rule_version":"200.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects when a user creates a pod/container running in privileged mode. A highly privileged container has access to the node's resources and breaks the isolation between containers. If compromised, an attacker can use the privileged container to gain access to the underlying host. Gaining access to the host may provide the adversary with the opportunity to achieve follow-on objectives, such as establishing persistence, moving laterally within the environment, or setting up a command and control channel on the host.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["By default a container is not allowed to access any devices on the host, but a \"privileged\" container is given access to all devices on the host. This allows the container nearly all the same access as processes running on the host. An administrator may want to run a privileged container to use operating system administrative capabilities such as manipulating the network stack or accessing hardware devices from within the cluster. Add exceptions for trusted container images using the query field \"kubernetes.audit.requestObject.spec.container.image\""],"references":["https://media.defense.gov/2021/Aug/03/2002820425/-1/-1/1/CTR_KUBERNETES%20HARDENING%20GUIDANCE.PDF","https://kubernetes.io/docs/tasks/configure-pod-container/security-context/"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\"\n and kubernetes.audit.objectRef.resource:pods \n and kubernetes.audit.verb:create \n and kubernetes.audit.requestObject.spec.containers.securityContext.privileged:true\n and not kubernetes.audit.requestObject.spec.containers.image: (\"docker.elastic.co/beats/elastic-agent:8.4.0\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.securityContext.privileged","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."}]},"id":"c7908cac-337a-4f38-b50d-5eeb78bdb531","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9.json new file mode 100644 index 0000000000000..7d1635ce447c2 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9","versions":[{"name":"Unusual File Modification by dns.exe v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an unexpected file being modified by dns.exe, the process responsible for Windows DNS Server services, which may indicate activity related to remote code execution or other forms of exploitation.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual File Write\nDetection alerts from this rule indicate potential unusual/abnormal file writes from the DNS Server service process (`dns.exe`) after exploitation from CVE-2020-1350 (SigRed) has occurred. Here are some possible avenues of investigation:\n- Post-exploitation, adversaries may write additional files or payloads to the system as additional discovery/exploitation/persistence mechanisms.\n- Any suspicious or abnormal files written from `dns.exe` should be reviewed and investigated with care.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://research.checkpoint.com/2020/resolving-your-way-into-domain-admin-exploiting-a-17-year-old-bug-in-windows-dns-servers/","https://msrc-blog.microsoft.com/2020/07/14/july-2020-security-update-cve-2020-1350-vulnerability-in-windows-domain-name-system-dns-server/","https://www.elastic.co/security-labs/detection-rules-for-sigred-vulnerability"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1133","name":"External Remote Services","reference":"https://attack.mitre.org/techniques/T1133/"}]}],"language":"eql","query":"file where process.name : \"dns.exe\" and event.type in (\"creation\", \"deletion\", \"change\") and\n not file.name : \"dns.log\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Unusual File Modification by dns.exe v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an unexpected file being modified by dns.exe, the process responsible for Windows DNS Server services, which may indicate activity related to remote code execution or other forms of exploitation.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual File Write\nDetection alerts from this rule indicate potential unusual/abnormal file writes from the DNS Server service process (`dns.exe`) after exploitation from CVE-2020-1350 (SigRed) has occurred. Here are some possible avenues of investigation:\n- Post-exploitation, adversaries may write additional files or payloads to the system as additional discovery/exploitation/persistence mechanisms.\n- Any suspicious or abnormal files written from `dns.exe` should be reviewed and investigated with care.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://research.checkpoint.com/2020/resolving-your-way-into-domain-admin-exploiting-a-17-year-old-bug-in-windows-dns-servers/","https://msrc-blog.microsoft.com/2020/07/14/july-2020-security-update-cve-2020-1350-vulnerability-in-windows-domain-name-system-dns-server/","https://www.elastic.co/security-labs/detection-rules-for-sigred-vulnerability"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1133","name":"External Remote Services","reference":"https://attack.mitre.org/techniques/T1133/"}]}],"language":"eql","query":"file where process.name : \"dns.exe\" and event.type in (\"creation\", \"deletion\", \"change\") and\n not file.name : \"dns.log\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Unusual File Modification by dns.exe v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an unexpected file being modified by dns.exe, the process responsible for Windows DNS Server services, which may indicate activity related to remote code execution or other forms of exploitation.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual File Write\nDetection alerts from this rule indicate potential unusual/abnormal file writes from the DNS Server service process (`dns.exe`) after exploitation from CVE-2020-1350 (SigRed) has occurred. Here are some possible avenues of investigation:\n- Post-exploitation, adversaries may write additional files or payloads to the system as additional discovery/exploitation/persistence mechanisms.\n- Any suspicious or abnormal files written from `dns.exe` should be reviewed and investigated with care.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://research.checkpoint.com/2020/resolving-your-way-into-domain-admin-exploiting-a-17-year-old-bug-in-windows-dns-servers/","https://msrc-blog.microsoft.com/2020/07/14/july-2020-security-update-cve-2020-1350-vulnerability-in-windows-domain-name-system-dns-server/","https://www.elastic.co/security-labs/detection-rules-for-sigred-vulnerability"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1133","name":"External Remote Services","reference":"https://attack.mitre.org/techniques/T1133/"}]}],"language":"eql","query":"file where process.name : \"dns.exe\" and event.type in (\"creation\", \"deletion\", \"change\") and\n not file.name : \"dns.log\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c7db5533-ca2a-41f6-a8b0-ee98abe0f573.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c7db5533-ca2a-41f6-a8b0-ee98abe0f573.json new file mode 100644 index 0000000000000..a9d4bb7447a14 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c7db5533-ca2a-41f6-a8b0-ee98abe0f573.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c7db5533-ca2a-41f6-a8b0-ee98abe0f573","versions":[{"name":"Spike in Network Traffic To a Country v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusually large spike in network activity to one destination country in the network logs. This could be due to unusually large amounts of reconnaissance or enumeration traffic. Data exfiltration activity may also produce such a surge in traffic to a destination country which does not normally appear in network traffic or business work-flows. Malware instances and persistence mechanisms may communicate with command-and-control (C2) infrastructure in their country of origin, which may be an unusual destination country for the source network.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Business workflows that occur very occasionally, and involve an unusual surge in network traffic to one destination country, can trigger this alert. A new business workflow or a surge in business activity in a particular country may trigger this alert. Business travelers who roam to many countries for brief periods may trigger this alert if they engage in volumetric network activity."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML"],"anomaly_threshold":75,"machine_learning_job_id":"high_count_by_destination_country","type":"machine_learning"},{"name":"Spike in Network Traffic To a Country v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusually large spike in network activity to one destination country in the network logs. This could be due to unusually large amounts of reconnaissance or enumeration traffic. Data exfiltration activity may also produce such a surge in traffic to a destination country which does not normally appear in network traffic or business work-flows. Malware instances and persistence mechanisms may communicate with command-and-control (C2) infrastructure in their country of origin, which may be an unusual destination country for the source network.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Business workflows that occur very occasionally, and involve an unusual surge in network traffic to one destination country, can trigger this alert. A new business workflow or a surge in business activity in a particular country may trigger this alert. Business travelers who roam to many countries for brief periods may trigger this alert if they engage in volumetric network activity."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML"],"anomaly_threshold":75,"machine_learning_job_id":"high_count_by_destination_country","type":"machine_learning"},{"name":"Spike in Network Traffic To a Country v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusually large spike in network activity to one destination country in the network logs. This could be due to unusually large amounts of reconnaissance or enumeration traffic. Data exfiltration activity may also produce such a surge in traffic to a destination country which does not normally appear in network traffic or business work-flows. Malware instances and persistence mechanisms may communicate with command-and-control (C2) infrastructure in their country of origin, which may be an unusual destination country for the source network.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Business workflows that occur very occasionally, and involve an unusual surge in network traffic to one destination country, can trigger this alert. A new business workflow or a surge in business activity in a particular country may trigger this alert. Business travelers who roam to many countries for brief periods may trigger this alert if they engage in volumetric network activity."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML"],"anomaly_threshold":75,"machine_learning_job_id":"high_count_by_destination_country","type":"machine_learning"}]},"id":"c7db5533-ca2a-41f6-a8b0-ee98abe0f573","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c81cefcb-82b9-4408-a533-3c3df549e62d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c81cefcb-82b9-4408-a533-3c3df549e62d.json new file mode 100644 index 0000000000000..c681bd038420a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c81cefcb-82b9-4408-a533-3c3df549e62d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c81cefcb-82b9-4408-a533-3c3df549e62d","versions":[{"name":"Persistence via Docker Shortcut Modification v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary can establish persistence by modifying an existing macOS dock property list in order to execute a malicious application instead of the intended one when invoked.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/specterops/presentations/raw/master/Leo%20Pitt/Hey_Im_Still_in_Here_Modern_macOS_Persistence_SO-CON2020.pdf"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category : file and event.action : modification and\n file.path : /Users/*/Library/Preferences/com.apple.dock.plist and\n not process.name : (xpcproxy or cfprefsd or plutil or jamf or PlistBuddy or InstallerRemotePluginService)\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Persistence via Docker Shortcut Modification v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary can establish persistence by modifying an existing macOS dock property list in order to execute a malicious application instead of the intended one when invoked.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/specterops/presentations/raw/master/Leo%20Pitt/Hey_Im_Still_in_Here_Modern_macOS_Persistence_SO-CON2020.pdf"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category : file and event.action : modification and\n file.path : /Users/*/Library/Preferences/com.apple.dock.plist and\n not process.name : (xpcproxy or cfprefsd or plutil or jamf or PlistBuddy or InstallerRemotePluginService)\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Persistence via Docker Shortcut Modification v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary can establish persistence by modifying an existing macOS dock property list in order to execute a malicious application instead of the intended one when invoked.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/specterops/presentations/raw/master/Leo%20Pitt/Hey_Im_Still_in_Here_Modern_macOS_Persistence_SO-CON2020.pdf"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category : file and event.action : modification and\n file.path : /Users/*/Library/Preferences/com.apple.dock.plist and\n not process.name : (xpcproxy or cfprefsd or plutil or jamf or PlistBuddy or InstallerRemotePluginService)\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"c81cefcb-82b9-4408-a533-3c3df549e62d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c82b2bd8-d701-420c-ba43-f11a155b681a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c82b2bd8-d701-420c-ba43-f11a155b681a.json new file mode 100644 index 0000000000000..db71fde60239b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c82b2bd8-d701-420c-ba43-f11a155b681a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c82b2bd8-d701-420c-ba43-f11a155b681a","versions":[{"name":"SMB (Windows File Sharing) Activity to the Internet v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of Windows file sharing (also called SMB or CIFS) traffic to the Internet. SMB is commonly used within networks to share files, printers, and other system resources amongst trusted systems. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector or for data exfiltration.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Initial Access","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1048","name":"Exfiltration Over Alternative Protocol","reference":"https://attack.mitre.org/techniques/T1048/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and (destination.port:(139 or 445) or event.dataset:zeek.smb) and\n source.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n ) and\n not destination.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},{"name":"SMB (Windows File Sharing) Activity to the Internet v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of Windows file sharing (also called SMB or CIFS) traffic to the Internet. SMB is commonly used within networks to share files, printers, and other system resources amongst trusted systems. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector or for data exfiltration.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Initial Access","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1048","name":"Exfiltration Over Alternative Protocol","reference":"https://attack.mitre.org/techniques/T1048/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and (destination.port:(139 or 445) or event.dataset:zeek.smb) and\n source.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n ) and\n not destination.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},{"name":"SMB (Windows File Sharing) Activity to the Internet v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of Windows file sharing (also called SMB or CIFS) traffic to the Internet. SMB is commonly used within networks to share files, printers, and other system resources amongst trusted systems. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector or for data exfiltration.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Initial Access","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1048","name":"Exfiltration Over Alternative Protocol","reference":"https://attack.mitre.org/techniques/T1048/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and (destination.port:(139 or 445) or event.dataset:zeek.smb) and\n source.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n ) and\n not destination.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]}]},"id":"c82b2bd8-d701-420c-ba43-f11a155b681a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c82c7d8f-fb9e-4874-a4bd-fd9e3f9becf1.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c82c7d8f-fb9e-4874-a4bd-fd9e3f9becf1.json new file mode 100644 index 0000000000000..6778d8c5da56e --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c82c7d8f-fb9e-4874-a4bd-fd9e3f9becf1.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c82c7d8f-fb9e-4874-a4bd-fd9e3f9becf1","versions":[{"name":"Direct Outbound SMB Connection v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unexpected processes making network connections over port 445. Windows File Sharing is typically implemented over Server Message Block (SMB), which communicates between hosts using port 445. When legitimate, these network connections are established by the kernel. Processes making 445/tcp connections may be port scanners, exploits, or suspicious user-level processes moving laterally.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Direct Outbound SMB Connection\n\nThis rule looks for unexpected processes making network connections over port 445. Windows file sharing is typically\nimplemented over Server Message Block (SMB), which communicates between hosts using port 445. When legitimate, these\nnetwork connections are established by the kernel (PID 4). Occurrences of non-system processes using this port can indicate\nport scanners, exploits, and tools used to move laterally on the environment.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"sequence by process.entity_id\n [process where event.type == \"start\" and host.os.name == \"Windows\" and process.pid != 4 and\n not (process.executable : \"D:\\\\EnterpriseCare\\\\tools\\\\jre.1\\\\bin\\\\java.exe\" and process.args : \"com.emeraldcube.prism.launcher.Invoker\") and\n not (process.executable : \"C:\\\\Docusnap 11\\\\Tools\\\\nmap\\\\nmap.exe\" and process.args : \"smb-os-discovery.nse\") and\n not process.executable :\n (\"?:\\\\Program Files\\\\SentinelOne\\\\Sentinel Agent *\\\\Ranger\\\\SentinelRanger.exe\",\n \"?:\\\\Program Files\\\\Ivanti\\\\Security Controls\\\\ST.EngineHost.exe\",\n \"?:\\\\Program Files (x86)\\\\Fortinet\\\\FSAE\\\\collectoragent.exe\",\n \"?:\\\\Program Files (x86)\\\\Nmap\\\\nmap.exe\",\n \"?:\\\\Program Files\\\\Azure Advanced Threat Protection Sensor\\\\*\\\\Microsoft.Tri.Sensor.exe\",\n \"?:\\\\Program Files\\\\CloudMatters\\\\auvik\\\\AuvikService-release-*\\\\AuvikService.exe\",\n \"?:\\\\Program Files\\\\uptime software\\\\uptime\\\\UptimeDataCollector.exe\",\n \"?:\\\\Program Files\\\\CloudMatters\\\\auvik\\\\AuvikAgentService.exe\",\n \"?:\\\\Program Files\\\\Rumble\\\\rumble-agent-*.exe\")]\n [network where destination.port == 445 and process.pid != 4 and\n not cidrmatch(destination.ip, \"127.0.0.1\", \"::1\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.os.name","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"}]},{"name":"Direct Outbound SMB Connection v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unexpected processes making network connections over port 445. Windows File Sharing is typically implemented over Server Message Block (SMB), which communicates between hosts using port 445. When legitimate, these network connections are established by the kernel. Processes making 445/tcp connections may be port scanners, exploits, or suspicious user-level processes moving laterally.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Direct Outbound SMB Connection\n\nThis rule looks for unexpected processes making network connections over port 445. Windows file sharing is typically\nimplemented over Server Message Block (SMB), which communicates between hosts using port 445. When legitimate, these\nnetwork connections are established by the kernel (PID 4). Occurrences of non-system processes using this port can indicate\nport scanners, exploits, and tools used to move laterally on the environment.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"sequence by process.entity_id\n [process where event.type == \"start\" and host.os.name == \"Windows\" and process.pid != 4 and\n not (process.executable : \"D:\\\\EnterpriseCare\\\\tools\\\\jre.1\\\\bin\\\\java.exe\" and process.args : \"com.emeraldcube.prism.launcher.Invoker\") and\n not (process.executable : \"C:\\\\Docusnap 11\\\\Tools\\\\nmap\\\\nmap.exe\" and process.args : \"smb-os-discovery.nse\") and\n not process.executable :\n (\"?:\\\\Program Files\\\\SentinelOne\\\\Sentinel Agent *\\\\Ranger\\\\SentinelRanger.exe\",\n \"?:\\\\Program Files\\\\Ivanti\\\\Security Controls\\\\ST.EngineHost.exe\",\n \"?:\\\\Program Files (x86)\\\\Fortinet\\\\FSAE\\\\collectoragent.exe\",\n \"?:\\\\Program Files (x86)\\\\Nmap\\\\nmap.exe\",\n \"?:\\\\Program Files\\\\Azure Advanced Threat Protection Sensor\\\\*\\\\Microsoft.Tri.Sensor.exe\",\n \"?:\\\\Program Files\\\\CloudMatters\\\\auvik\\\\AuvikService-release-*\\\\AuvikService.exe\",\n \"?:\\\\Program Files\\\\uptime software\\\\uptime\\\\UptimeDataCollector.exe\",\n \"?:\\\\Program Files\\\\CloudMatters\\\\auvik\\\\AuvikAgentService.exe\",\n \"?:\\\\Program Files\\\\Rumble\\\\rumble-agent-*.exe\")]\n [network where destination.port == 445 and process.pid != 4 and\n not cidrmatch(destination.ip, \"127.0.0.1\", \"::1\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.os.name","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"}]},{"name":"Direct Outbound SMB Connection v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unexpected processes making network connections over port 445. Windows File Sharing is typically implemented over Server Message Block (SMB), which communicates between hosts using port 445. When legitimate, these network connections are established by the kernel. Processes making 445/tcp connections may be port scanners, exploits, or suspicious user-level processes moving laterally.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Direct Outbound SMB Connection\n\nThis rule looks for unexpected processes making network connections over port 445. Windows file sharing is typically\nimplemented over Server Message Block (SMB), which communicates between hosts using port 445. When legitimate, these\nnetwork connections are established by the kernel (PID 4). Occurrences of non-system processes using this port can indicate\nport scanners, exploits, and tools used to move laterally on the environment.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"sequence by process.entity_id\n [process where event.type == \"start\" and host.os.name == \"Windows\" and process.pid != 4 and\n not (process.executable : \"D:\\\\EnterpriseCare\\\\tools\\\\jre.1\\\\bin\\\\java.exe\" and process.args : \"com.emeraldcube.prism.launcher.Invoker\") and\n not (process.executable : \"C:\\\\Docusnap 11\\\\Tools\\\\nmap\\\\nmap.exe\" and process.args : \"smb-os-discovery.nse\") and\n not process.executable :\n (\"?:\\\\Program Files\\\\SentinelOne\\\\Sentinel Agent *\\\\Ranger\\\\SentinelRanger.exe\",\n \"?:\\\\Program Files\\\\Ivanti\\\\Security Controls\\\\ST.EngineHost.exe\",\n \"?:\\\\Program Files (x86)\\\\Fortinet\\\\FSAE\\\\collectoragent.exe\",\n \"?:\\\\Program Files (x86)\\\\Nmap\\\\nmap.exe\",\n \"?:\\\\Program Files\\\\Azure Advanced Threat Protection Sensor\\\\*\\\\Microsoft.Tri.Sensor.exe\",\n \"?:\\\\Program Files\\\\CloudMatters\\\\auvik\\\\AuvikService-release-*\\\\AuvikService.exe\",\n \"?:\\\\Program Files\\\\uptime software\\\\uptime\\\\UptimeDataCollector.exe\",\n \"?:\\\\Program Files\\\\CloudMatters\\\\auvik\\\\AuvikAgentService.exe\",\n \"?:\\\\Program Files\\\\Rumble\\\\rumble-agent-*.exe\")]\n [network where destination.port == 445 and process.pid != 4 and\n not cidrmatch(destination.ip, \"127.0.0.1\", \"::1\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.os.name","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"}]}]},"id":"c82c7d8f-fb9e-4874-a4bd-fd9e3f9becf1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c85eb82c-d2c8-485c-a36f-534f914b7663.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c85eb82c-d2c8-485c-a36f-534f914b7663.json new file mode 100644 index 0000000000000..29a151b90f526 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c85eb82c-d2c8-485c-a36f-534f914b7663.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c85eb82c-d2c8-485c-a36f-534f914b7663","versions":[{"name":"Virtual Machine Fingerprinting via Grep v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary may attempt to get detailed information about the operating system and hardware. This rule identifies common locations used to discover virtual machine hardware by a non-root user. This technique has been used by the Pupy RAT and other malware.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain tools or automated software may enumerate hardware information. These tools can be exempted via user name or process arguments to eliminate potential noise."],"from":"now-9m","references":["https://objective-see.com/blog/blog_0x4F.html"],"tags":["Elastic","Host","macOS","Linux","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name in (\"grep\", \"egrep\") and user.id != \"0\" and\n process.args : (\"parallels*\", \"vmware*\", \"virtualbox*\") and process.args : \"Manufacturer*\" and\n not process.parent.executable in (\"/Applications/Docker.app/Contents/MacOS/Docker\", \"/usr/libexec/kcare/virt-what\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Virtual Machine Fingerprinting via Grep v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary may attempt to get detailed information about the operating system and hardware. This rule identifies common locations used to discover virtual machine hardware by a non-root user. This technique has been used by the Pupy RAT and other malware.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain tools or automated software may enumerate hardware information. These tools can be exempted via user name or process arguments to eliminate potential noise."],"from":"now-9m","references":["https://objective-see.com/blog/blog_0x4F.html"],"tags":["Elastic","Host","macOS","Linux","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name in (\"grep\", \"egrep\") and user.id != \"0\" and\n process.args : (\"parallels*\", \"vmware*\", \"virtualbox*\") and process.args : \"Manufacturer*\" and\n not process.parent.executable in (\"/Applications/Docker.app/Contents/MacOS/Docker\", \"/usr/libexec/kcare/virt-what\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Virtual Machine Fingerprinting via Grep v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary may attempt to get detailed information about the operating system and hardware. This rule identifies common locations used to discover virtual machine hardware by a non-root user. This technique has been used by the Pupy RAT and other malware.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain tools or automated software may enumerate hardware information. These tools can be exempted via user name or process arguments to eliminate potential noise."],"from":"now-9m","references":["https://objective-see.com/blog/blog_0x4F.html"],"tags":["Elastic","Host","macOS","Linux","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name in (\"grep\", \"egrep\") and user.id != \"0\" and\n process.args : (\"parallels*\", \"vmware*\", \"virtualbox*\") and process.args : \"Manufacturer*\" and\n not process.parent.executable in (\"/Applications/Docker.app/Contents/MacOS/Docker\", \"/usr/libexec/kcare/virt-what\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"c85eb82c-d2c8-485c-a36f-534f914b7663","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c88d4bd0-5649-4c52-87ea-9be59dbfbcf2.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c88d4bd0-5649-4c52-87ea-9be59dbfbcf2.json new file mode 100644 index 0000000000000..e13e3bb5b676e --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c88d4bd0-5649-4c52-87ea-9be59dbfbcf2.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c88d4bd0-5649-4c52-87ea-9be59dbfbcf2","versions":[{"name":"Parent Process PID Spoofing v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies parent process spoofing used to thwart detection. Adversaries may spoof the parent process identifier (PPID) of a new process to evade process-monitoring defenses or to elevate privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://blog.didierstevens.com/2017/03/20/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/","subtechnique":[{"id":"T1134.004","name":"Parent PID Spoofing","reference":"https://attack.mitre.org/techniques/T1134/004/"}]}]}],"language":"eql","query":"/* This rule is compatible with Elastic Endpoint only */\n\nsequence by host.id, user.id with maxspan=5m\n [process where event.type == \"start\" and\n process.Ext.token.integrity_level_name != \"system\" and\n (\n process.pe.original_file_name : (\"winword.exe\", \"excel.exe\", \"outlook.exe\", \"powerpnt.exe\", \"eqnedt32.exe\",\n \"fltldr.exe\", \"mspub.exe\", \"msaccess.exe\", \"powershell.exe\", \"pwsh.exe\",\n \"cscript.exe\", \"wscript.exe\", \"rundll32.exe\", \"regsvr32.exe\", \"msbuild.exe\",\n \"mshta.exe\", \"wmic.exe\", \"cmstp.exe\", \"msxsl.exe\") or\n process.executable : (\"?:\\\\Users\\\\*.exe\",\n \"?:\\\\ProgramData\\\\*.exe\",\n \"?:\\\\Windows\\\\Microsoft.NET\\\\*.exe\",\n \"?:\\\\Windows\\\\Temp\\\\*.exe\",\n \"?:\\\\Windows\\\\Tasks\\\\*\") or\n process.code_signature.trusted != true\n )\n ] by process.pid\n [process where event.type == \"start\" and process.parent.Ext.real.pid > 0 and\n /* process.parent.Ext.real.pid is only populated if the parent process pid doesn't match */\n\n not (process.name : \"msedge.exe\" and process.parent.name : \"sihost.exe\")\n ] by process.parent.Ext.real.pid\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":false,"name":"process.parent.Ext.real.pid","type":"unknown"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"Parent Process PID Spoofing v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies parent process spoofing used to thwart detection. Adversaries may spoof the parent process identifier (PPID) of a new process to evade process-monitoring defenses or to elevate privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://blog.didierstevens.com/2017/03/20/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/","subtechnique":[{"id":"T1134.004","name":"Parent PID Spoofing","reference":"https://attack.mitre.org/techniques/T1134/004/"}]}]}],"language":"eql","query":"/* This rule is compatible with Elastic Endpoint only */\n\nsequence by host.id, user.id with maxspan=5m\n [process where event.type == \"start\" and\n process.Ext.token.integrity_level_name != \"system\" and\n (\n process.pe.original_file_name : (\"winword.exe\", \"excel.exe\", \"outlook.exe\", \"powerpnt.exe\", \"eqnedt32.exe\",\n \"fltldr.exe\", \"mspub.exe\", \"msaccess.exe\", \"powershell.exe\", \"pwsh.exe\",\n \"cscript.exe\", \"wscript.exe\", \"rundll32.exe\", \"regsvr32.exe\", \"msbuild.exe\",\n \"mshta.exe\", \"wmic.exe\", \"cmstp.exe\", \"msxsl.exe\") or\n process.executable : (\"?:\\\\Users\\\\*.exe\",\n \"?:\\\\ProgramData\\\\*.exe\",\n \"?:\\\\Windows\\\\Microsoft.NET\\\\*.exe\",\n \"?:\\\\Windows\\\\Temp\\\\*.exe\",\n \"?:\\\\Windows\\\\Tasks\\\\*\") or\n process.code_signature.trusted != true\n )\n ] by process.pid\n [process where event.type == \"start\" and process.parent.Ext.real.pid > 0 and\n /* process.parent.Ext.real.pid is only populated if the parent process pid doesn't match */\n\n not (process.name : \"msedge.exe\" and process.parent.name : \"sihost.exe\")\n ] by process.parent.Ext.real.pid\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":false,"name":"process.parent.Ext.real.pid","type":"unknown"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"Parent Process PID Spoofing v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies parent process spoofing used to thwart detection. Adversaries may spoof the parent process identifier (PPID) of a new process to evade process-monitoring defenses or to elevate privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://blog.didierstevens.com/2017/03/20/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/","subtechnique":[{"id":"T1134.004","name":"Parent PID Spoofing","reference":"https://attack.mitre.org/techniques/T1134/004/"}]}]}],"language":"eql","query":"/* This rule is compatible with Elastic Endpoint only */\n\nsequence by host.id, user.id with maxspan=5m\n [process where event.type == \"start\" and\n process.Ext.token.integrity_level_name != \"system\" and\n (\n process.pe.original_file_name : (\"winword.exe\", \"excel.exe\", \"outlook.exe\", \"powerpnt.exe\", \"eqnedt32.exe\",\n \"fltldr.exe\", \"mspub.exe\", \"msaccess.exe\", \"powershell.exe\", \"pwsh.exe\",\n \"cscript.exe\", \"wscript.exe\", \"rundll32.exe\", \"regsvr32.exe\", \"msbuild.exe\",\n \"mshta.exe\", \"wmic.exe\", \"cmstp.exe\", \"msxsl.exe\") or\n process.executable : (\"?:\\\\Users\\\\*.exe\",\n \"?:\\\\ProgramData\\\\*.exe\",\n \"?:\\\\Windows\\\\Microsoft.NET\\\\*.exe\",\n \"?:\\\\Windows\\\\Temp\\\\*.exe\",\n \"?:\\\\Windows\\\\Tasks\\\\*\") or\n process.code_signature.trusted != true\n )\n ] by process.pid\n [process where event.type == \"start\" and process.parent.Ext.real.pid > 0 and\n /* process.parent.Ext.real.pid is only populated if the parent process pid doesn't match */\n\n not (process.name : \"msedge.exe\" and process.parent.name : \"sihost.exe\")\n ] by process.parent.Ext.real.pid\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":false,"name":"process.parent.Ext.real.pid","type":"unknown"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"},{"ecs":true,"name":"user.id","type":"keyword"}]}]},"id":"c88d4bd0-5649-4c52-87ea-9be59dbfbcf2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c8b150f0-0164-475b-a75e-74b47800a9ff.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c8b150f0-0164-475b-a75e-74b47800a9ff.json new file mode 100644 index 0000000000000..0e50342e4cedf --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c8b150f0-0164-475b-a75e-74b47800a9ff.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c8b150f0-0164-475b-a75e-74b47800a9ff","versions":[{"name":"Suspicious Startup Shell Folder Modification v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious startup shell folder modifications to change the default Startup directory in order to bypass detections monitoring file creation in the Windows Startup folder.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Startup Shell Folder Modification\n\nTechniques used within malware and by adversaries often leverage the Windows registry to store malicious programs for\npersistence. Startup shell folders are often targeted as they are not as prevalent as normal Startup folder paths so this\nbehavior may evade existing AV/EDR solutions. These programs may also run with higher privileges which can be ideal for\nan attacker.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Review the source process and related file tied to the Windows Registry entry.\n- Validate the activity is not related to planned patches, updates, network administrator activity or legitimate software\ninstallations.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- There is a high possibility of benign legitimate programs being added to shell folders. This activity could be based\non new software installations, patches, or other network administrator activity. Before undertaking further investigation,\nit should be verified that this activity is not benign.\n\n### Related rules\n\n- Startup or Run Key Registry Modification - 97fc44d3-8dae-4019-ae83-298c3015600f\n- Persistent Scripts in the Startup Directory - f7c4dc5a-a58d-491d-9f14-9b66507121c0\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"registry where\n registry.path : (\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\User Shell Folders\\\\Common Startup\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\Shell Folders\\\\Common Startup\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\User Shell Folders\\\\Startup\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\Shell Folders\\\\Startup\"\n ) and\n registry.data.strings != null and\n /* Normal Startup Folder Paths */\n not registry.data.strings : (\n \"C:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\",\n \"%ProgramData%\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\",\n \"%USERPROFILE%\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\",\n \"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},{"name":"Suspicious Startup Shell Folder Modification v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious startup shell folder modifications to change the default Startup directory in order to bypass detections monitoring file creation in the Windows Startup folder.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Startup Shell Folder Modification\n\nTechniques used within malware and by adversaries often leverage the Windows registry to store malicious programs for\npersistence. Startup shell folders are often targeted as they are not as prevalent as normal Startup folder paths so this\nbehavior may evade existing AV/EDR solutions. These programs may also run with higher privileges which can be ideal for\nan attacker.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Review the source process and related file tied to the Windows Registry entry.\n- Validate the activity is not related to planned patches, updates, network administrator activity or legitimate software\ninstallations.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- There is a high possibility of benign legitimate programs being added to shell folders. This activity could be based\non new software installations, patches, or other network administrator activity. Before undertaking further investigation,\nit should be verified that this activity is not benign.\n\n### Related rules\n\n- Startup or Run Key Registry Modification - 97fc44d3-8dae-4019-ae83-298c3015600f\n- Persistent Scripts in the Startup Directory - f7c4dc5a-a58d-491d-9f14-9b66507121c0\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"registry where\n registry.path : (\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\User Shell Folders\\\\Common Startup\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\Shell Folders\\\\Common Startup\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\User Shell Folders\\\\Startup\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\Shell Folders\\\\Startup\"\n ) and\n registry.data.strings != null and\n /* Normal Startup Folder Paths */\n not registry.data.strings : (\n \"C:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\",\n \"%ProgramData%\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\",\n \"%USERPROFILE%\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\",\n \"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},{"name":"Suspicious Startup Shell Folder Modification v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious startup shell folder modifications to change the default Startup directory in order to bypass detections monitoring file creation in the Windows Startup folder.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Startup Shell Folder Modification\n\nTechniques used within malware and by adversaries often leverage the Windows registry to store malicious programs for\npersistence. Startup shell folders are often targeted as they are not as prevalent as normal Startup folder paths so this\nbehavior may evade existing AV/EDR solutions. These programs may also run with higher privileges which can be ideal for\nan attacker.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Review the source process and related file tied to the Windows Registry entry.\n- Validate the activity is not related to planned patches, updates, network administrator activity or legitimate software\ninstallations.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- There is a high possibility of benign legitimate programs being added to shell folders. This activity could be based\non new software installations, patches, or other network administrator activity. Before undertaking further investigation,\nit should be verified that this activity is not benign.\n\n### Related rules\n\n- Startup or Run Key Registry Modification - 97fc44d3-8dae-4019-ae83-298c3015600f\n- Persistent Scripts in the Startup Directory - f7c4dc5a-a58d-491d-9f14-9b66507121c0\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"registry where\n registry.path : (\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\User Shell Folders\\\\Common Startup\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\Shell Folders\\\\Common Startup\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\User Shell Folders\\\\Startup\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\Shell Folders\\\\Startup\"\n ) and\n registry.data.strings != null and\n /* Normal Startup Folder Paths */\n not registry.data.strings : (\n \"C:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\",\n \"%ProgramData%\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\",\n \"%USERPROFILE%\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\",\n \"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]}]},"id":"c8b150f0-0164-475b-a75e-74b47800a9ff","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c8cccb06-faf2-4cd5-886e-2c9636cfcb87.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c8cccb06-faf2-4cd5-886e-2c9636cfcb87.json new file mode 100644 index 0000000000000..2da7f93042c5c --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c8cccb06-faf2-4cd5-886e-2c9636cfcb87.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c8cccb06-faf2-4cd5-886e-2c9636cfcb87","versions":[{"name":"Disabling Windows Defender Security Settings via PowerShell v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the Set-MpPreference PowerShell command to disable or weaken certain Windows Defender settings.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Disabling Windows Defender Security Settings via PowerShell\n\nMicrosoft Windows Defender is an antivirus product built into Microsoft Windows, which makes it popular across multiple\nenvironments. Disabling it is a common step in threat actor playbooks.\n\nThis rule monitors the execution of commands that can tamper the Windows Defender antivirus features.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the command line to determine which action was executed. Based on that, examine exceptions, antivirus state,\nsample submission, etc.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity,\nthe configuration is justified (for example, it is being used to deploy other security solutions or troubleshooting),\nand no other suspicious activity has been observed.\n\n### Related rules\n\n- Windows Defender Disabled via Registry Modification - 2ffa1f1e-b6db-47fa-994b-1512743847eb\n- Microsoft Windows Defender Tampering - fe794edd-487f-4a90-b285-3ee54f2af2d3\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Based on the command line, take actions to restore the appropriate Windows Defender antivirus configurations.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Planned Windows Defender configuration changes."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/powershell/module/defender/set-mppreference?view=windowsserver2019-ps"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") or process.pe.original_file_name in (\"powershell.exe\", \"pwsh.dll\", \"powershell_ise.exe\")) and\n process.args : \"Set-MpPreference\" and process.args : (\"-Disable*\", \"Disabled\", \"NeverSend\", \"-Exclusion*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Disabling Windows Defender Security Settings via PowerShell v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the Set-MpPreference PowerShell command to disable or weaken certain Windows Defender settings.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Disabling Windows Defender Security Settings via PowerShell\n\nMicrosoft Windows Defender is an antivirus product built into Microsoft Windows, which makes it popular across multiple\nenvironments. Disabling it is a common step in threat actor playbooks.\n\nThis rule monitors the execution of commands that can tamper the Windows Defender antivirus features.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the command line to determine which action was executed. Based on that, examine exceptions, antivirus state,\nsample submission, etc.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity,\nthe configuration is justified (for example, it is being used to deploy other security solutions or troubleshooting),\nand no other suspicious activity has been observed.\n\n### Related rules\n\n- Windows Defender Disabled via Registry Modification - 2ffa1f1e-b6db-47fa-994b-1512743847eb\n- Microsoft Windows Defender Tampering - fe794edd-487f-4a90-b285-3ee54f2af2d3\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Based on the command line, take actions to restore the appropriate Windows Defender antivirus configurations.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Planned Windows Defender configuration changes."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/powershell/module/defender/set-mppreference?view=windowsserver2019-ps"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") or process.pe.original_file_name in (\"powershell.exe\", \"pwsh.dll\", \"powershell_ise.exe\")) and\n process.args : \"Set-MpPreference\" and process.args : (\"-Disable*\", \"Disabled\", \"NeverSend\", \"-Exclusion*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Disabling Windows Defender Security Settings via PowerShell v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the Set-MpPreference PowerShell command to disable or weaken certain Windows Defender settings.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Disabling Windows Defender Security Settings via PowerShell\n\nMicrosoft Windows Defender is an antivirus product built into Microsoft Windows, which makes it popular across multiple\nenvironments. Disabling it is a common step in threat actor playbooks.\n\nThis rule monitors the execution of commands that can tamper the Windows Defender antivirus features.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the command line to determine which action was executed. Based on that, examine exceptions, antivirus state,\nsample submission, etc.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity,\nthe configuration is justified (for example, it is being used to deploy other security solutions or troubleshooting),\nand no other suspicious activity has been observed.\n\n### Related rules\n\n- Windows Defender Disabled via Registry Modification - 2ffa1f1e-b6db-47fa-994b-1512743847eb\n- Microsoft Windows Defender Tampering - fe794edd-487f-4a90-b285-3ee54f2af2d3\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Based on the command line, take actions to restore the appropriate Windows Defender antivirus configurations.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Planned Windows Defender configuration changes."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/powershell/module/defender/set-mppreference?view=windowsserver2019-ps"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") or process.pe.original_file_name in (\"powershell.exe\", \"pwsh.dll\", \"powershell_ise.exe\")) and\n process.args : \"Set-MpPreference\" and process.args : (\"-Disable*\", \"Disabled\", \"NeverSend\", \"-Exclusion*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"c8cccb06-faf2-4cd5-886e-2c9636cfcb87","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/c9e38e64-3f4c-4bf3-ad48-0e61a60ea1fa.json b/fleet-packages/detection-rules-composite/kibana/security_rule/c9e38e64-3f4c-4bf3-ad48-0e61a60ea1fa.json new file mode 100644 index 0000000000000..3cf49054dfe48 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/c9e38e64-3f4c-4bf3-ad48-0e61a60ea1fa.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"c9e38e64-3f4c-4bf3-ad48-0e61a60ea1fa","versions":[{"name":"Credential Manipulation - Prevented - Elastic Endgame v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented Credential Manipulation. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:token_manipulation_event or endgame.event_subtype_full:token_manipulation_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Credential Manipulation - Prevented - Elastic Endgame v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented Credential Manipulation. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:token_manipulation_event or endgame.event_subtype_full:token_manipulation_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Credential Manipulation - Prevented - Elastic Endgame v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented Credential Manipulation. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:token_manipulation_event or endgame.event_subtype_full:token_manipulation_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]}]},"id":"c9e38e64-3f4c-4bf3-ad48-0e61a60ea1fa","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/ca79768e-40e1-4e45-a097-0e5fbc876ac2.json b/fleet-packages/detection-rules-composite/kibana/security_rule/ca79768e-40e1-4e45-a097-0e5fbc876ac2.json new file mode 100644 index 0000000000000..89a818bb99523 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/ca79768e-40e1-4e45-a097-0e5fbc876ac2.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"ca79768e-40e1-4e45-a097-0e5fbc876ac2","versions":[{"name":"Microsoft 365 Exchange Malware Filter Rule Modification v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a malware filter rule has been deleted or disabled in Microsoft 365. An adversary or insider threat may want to modify a malware filter rule to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A malware filter rule may be deleted by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-malwarefilterrule?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/disable-malwarefilterrule?view=exchange-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:(\"Remove-MalwareFilterRule\" or \"Disable-MalwareFilterRule\") and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Exchange Malware Filter Rule Modification v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a malware filter rule has been deleted or disabled in Microsoft 365. An adversary or insider threat may want to modify a malware filter rule to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A malware filter rule may be deleted by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-malwarefilterrule?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/disable-malwarefilterrule?view=exchange-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:(\"Remove-MalwareFilterRule\" or \"Disable-MalwareFilterRule\") and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Exchange Malware Filter Rule Modification v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a malware filter rule has been deleted or disabled in Microsoft 365. An adversary or insider threat may want to modify a malware filter rule to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A malware filter rule may be deleted by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-malwarefilterrule?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/disable-malwarefilterrule?view=exchange-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:(\"Remove-MalwareFilterRule\" or \"Disable-MalwareFilterRule\") and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"ca79768e-40e1-4e45-a097-0e5fbc876ac2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/cac91072-d165-11ec-a764-f661ea17fbce.json b/fleet-packages/detection-rules-composite/kibana/security_rule/cac91072-d165-11ec-a764-f661ea17fbce.json new file mode 100644 index 0000000000000..b212ed245912c --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/cac91072-d165-11ec-a764-f661ea17fbce.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"cac91072-d165-11ec-a764-f661ea17fbce","versions":[{"name":"Abnormal Process ID or Lock File Created v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a Process ID (PID), lock or reboot file created in temporary file storage paradigm (tmpfs) directory /var/run. On Linux, the PID files typically hold the process ID to track previous copies running and manage other tasks. Certain Linux malware use the /var/run directory for holding data, executables and other tasks, disguising itself or these files as legitimate PID files.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Abnormal Process ID or Lock File Created\n\nLinux applications may need to save their process identification number (PID) for various purposes: from signaling that\na program is running to serving as a signal that a previous instance of an application didn't exit successfully. PID\nfiles contain its creator process PID in an integer value.\n\nLinux lock files are used to coordinate operations in files so that conflicts and race conditions are prevented.\n\nThis rule identifies the creation of PID, lock, or reboot files in the /var/run/ directory. Attackers can masquerade\nmalware, payloads, staged data for exfiltration, and more as legitimate PID files.\n\n#### Possible investigation steps\n\n- Retrieve the file and determine if it is malicious:\n - Check the contents of the PID files. They should only contain integer strings.\n - Check the file type of the lock and PID files to determine if they are executables. This is only observed in\n malicious files.\n - Check the size of the subject file. Legitimate PID files should be under 10 bytes.\n - Check if the lock or PID file has high entropy. This typically indicates an encrypted payload.\n - Analysts can use tools like `ent` to measure entropy.\n - Examine the reputation of the SHA-256 hash in the PID file. Use a database like VirusTotal to identify additional\n pivots and artifacts for investigation.\n- Trace the file's creation to ensure it came from a legitimate or authorized process.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, file modifications, and any\nspawned child processes.\n\n### False positive analysis\n\n- False positives can appear if the PID file is legitimate and holding a process ID as intended. If the PID file is\nan executable or has a file size that's larger than 10 bytes, it should be ruled suspicious.\n- If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination\nof file name and process executable conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Block the identified indicators of compromise (IoCs).\n- Take actions to terminate processes and connections used by the attacker.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["False-Positives (FP) can appear if the PID file is legitimate and holding a process ID as intended. To differentiate, if the PID file is an executable or larger than 10 bytes, it should be ruled suspicious."],"from":"now-9m","references":["https://www.sandflysecurity.com/blog/linux-file-masquerading-and-malicious-pids-sandfly-1-2-6-update/","https://twitter.com/GossiTheDog/status/1522964028284411907","https://exatrack.com/public/Tricephalic_Hellkeeper.pdf","https://www.elastic.co/security-labs/a-peek-behind-the-bpfdoor"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","BPFDoor","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]}],"language":"eql","query":"/* add file size filters when data is available */\nfile where event.type == \"creation\" and user.id == \"0\" and\n file.path regex~ \"\"\"/var/run/\\w+\\.(pid|lock|reboot)\"\"\" and file.extension in (\"pid\",\"lock\",\"reboot\") and\n\n /* handle common legitimate files */\n\n not file.name in (\n \"auditd.pid\",\n \"python*\",\n \"apport.pid\",\n \"apport.lock\",\n \"kworker*\",\n \"gdm3.pid\",\n \"sshd.pid\",\n \"acpid.pid\",\n \"unattended-upgrades.lock\",\n \"unattended-upgrades.pid\",\n \"cmd.pid\",\n \"cron*.pid\",\n \"yum.pid\",\n \"netconfig.pid\",\n \"docker.pid\",\n \"atd.pid\",\n \"lfd.pid\",\n \"atop.pid\",\n \"nginx.pid\",\n \"dhclient.pid\",\n \"smtpd.pid\",\n \"stunnel.pid\",\n \"1_waagent.pid\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"Abnormal Process ID or Lock File Created v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a Process ID (PID), lock or reboot file created in temporary file storage paradigm (tmpfs) directory /var/run. On Linux, the PID files typically hold the process ID to track previous copies running and manage other tasks. Certain Linux malware use the /var/run directory for holding data, executables and other tasks, disguising itself or these files as legitimate PID files.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Abnormal Process ID or Lock File Created\n\nLinux applications may need to save their process identification number (PID) for various purposes: from signaling that\na program is running to serving as a signal that a previous instance of an application didn't exit successfully. PID\nfiles contain its creator process PID in an integer value.\n\nLinux lock files are used to coordinate operations in files so that conflicts and race conditions are prevented.\n\nThis rule identifies the creation of PID, lock, or reboot files in the /var/run/ directory. Attackers can masquerade\nmalware, payloads, staged data for exfiltration, and more as legitimate PID files.\n\n#### Possible investigation steps\n\n- Retrieve the file and determine if it is malicious:\n - Check the contents of the PID files. They should only contain integer strings.\n - Check the file type of the lock and PID files to determine if they are executables. This is only observed in\n malicious files.\n - Check the size of the subject file. Legitimate PID files should be under 10 bytes.\n - Check if the lock or PID file has high entropy. This typically indicates an encrypted payload.\n - Analysts can use tools like `ent` to measure entropy.\n - Examine the reputation of the SHA-256 hash in the PID file. Use a database like VirusTotal to identify additional\n pivots and artifacts for investigation.\n- Trace the file's creation to ensure it came from a legitimate or authorized process.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, file modifications, and any\nspawned child processes.\n\n### False positive analysis\n\n- False positives can appear if the PID file is legitimate and holding a process ID as intended. If the PID file is\nan executable or has a file size that's larger than 10 bytes, it should be ruled suspicious.\n- If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination\nof file name and process executable conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Block the identified indicators of compromise (IoCs).\n- Take actions to terminate processes and connections used by the attacker.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["False-Positives (FP) can appear if the PID file is legitimate and holding a process ID as intended. To differentiate, if the PID file is an executable or larger than 10 bytes, it should be ruled suspicious."],"from":"now-9m","references":["https://www.sandflysecurity.com/blog/linux-file-masquerading-and-malicious-pids-sandfly-1-2-6-update/","https://twitter.com/GossiTheDog/status/1522964028284411907","https://exatrack.com/public/Tricephalic_Hellkeeper.pdf","https://www.elastic.co/security-labs/a-peek-behind-the-bpfdoor"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","BPFDoor","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]}],"language":"eql","query":"/* add file size filters when data is available */\nfile where event.type == \"creation\" and user.id == \"0\" and\n file.path regex~ \"\"\"/var/run/\\w+\\.(pid|lock|reboot)\"\"\" and file.extension in (\"pid\",\"lock\",\"reboot\") and\n\n /* handle common legitimate files */\n\n not file.name in (\n \"auditd.pid\",\n \"python*\",\n \"apport.pid\",\n \"apport.lock\",\n \"kworker*\",\n \"gdm3.pid\",\n \"sshd.pid\",\n \"acpid.pid\",\n \"unattended-upgrades.lock\",\n \"unattended-upgrades.pid\",\n \"cmd.pid\",\n \"cron*.pid\",\n \"yum.pid\",\n \"netconfig.pid\",\n \"docker.pid\",\n \"atd.pid\",\n \"lfd.pid\",\n \"atop.pid\",\n \"nginx.pid\",\n \"dhclient.pid\",\n \"smtpd.pid\",\n \"stunnel.pid\",\n \"1_waagent.pid\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"Abnormal Process ID or Lock File Created v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a Process ID (PID), lock or reboot file created in temporary file storage paradigm (tmpfs) directory /var/run. On Linux, the PID files typically hold the process ID to track previous copies running and manage other tasks. Certain Linux malware use the /var/run directory for holding data, executables and other tasks, disguising itself or these files as legitimate PID files.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Abnormal Process ID or Lock File Created\n\nLinux applications may need to save their process identification number (PID) for various purposes: from signaling that\na program is running to serving as a signal that a previous instance of an application didn't exit successfully. PID\nfiles contain its creator process PID in an integer value.\n\nLinux lock files are used to coordinate operations in files so that conflicts and race conditions are prevented.\n\nThis rule identifies the creation of PID, lock, or reboot files in the /var/run/ directory. Attackers can masquerade\nmalware, payloads, staged data for exfiltration, and more as legitimate PID files.\n\n#### Possible investigation steps\n\n- Retrieve the file and determine if it is malicious:\n - Check the contents of the PID files. They should only contain integer strings.\n - Check the file type of the lock and PID files to determine if they are executables. This is only observed in\n malicious files.\n - Check the size of the subject file. Legitimate PID files should be under 10 bytes.\n - Check if the lock or PID file has high entropy. This typically indicates an encrypted payload.\n - Analysts can use tools like `ent` to measure entropy.\n - Examine the reputation of the SHA-256 hash in the PID file. Use a database like VirusTotal to identify additional\n pivots and artifacts for investigation.\n- Trace the file's creation to ensure it came from a legitimate or authorized process.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, file modifications, and any\nspawned child processes.\n\n### False positive analysis\n\n- False positives can appear if the PID file is legitimate and holding a process ID as intended. If the PID file is\nan executable or has a file size that's larger than 10 bytes, it should be ruled suspicious.\n- If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination\nof file name and process executable conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Block the identified indicators of compromise (IoCs).\n- Take actions to terminate processes and connections used by the attacker.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["False-Positives (FP) can appear if the PID file is legitimate and holding a process ID as intended. To differentiate, if the PID file is an executable or larger than 10 bytes, it should be ruled suspicious."],"from":"now-9m","references":["https://www.sandflysecurity.com/blog/linux-file-masquerading-and-malicious-pids-sandfly-1-2-6-update/","https://twitter.com/GossiTheDog/status/1522964028284411907","https://exatrack.com/public/Tricephalic_Hellkeeper.pdf","https://www.elastic.co/security-labs/a-peek-behind-the-bpfdoor"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","BPFDoor","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]}],"language":"eql","query":"/* add file size filters when data is available */\nfile where event.type == \"creation\" and user.id == \"0\" and\n file.path regex~ \"\"\"/var/run/\\w+\\.(pid|lock|reboot)\"\"\" and file.extension in (\"pid\",\"lock\",\"reboot\") and\n\n /* handle common legitimate files */\n\n not file.name in (\n \"auditd.pid\",\n \"python*\",\n \"apport.pid\",\n \"apport.lock\",\n \"kworker*\",\n \"gdm3.pid\",\n \"sshd.pid\",\n \"acpid.pid\",\n \"unattended-upgrades.lock\",\n \"unattended-upgrades.pid\",\n \"cmd.pid\",\n \"cron*.pid\",\n \"yum.pid\",\n \"netconfig.pid\",\n \"docker.pid\",\n \"atd.pid\",\n \"lfd.pid\",\n \"atop.pid\",\n \"nginx.pid\",\n \"dhclient.pid\",\n \"smtpd.pid\",\n \"stunnel.pid\",\n \"1_waagent.pid\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]}]},"id":"cac91072-d165-11ec-a764-f661ea17fbce","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/cad4500a-abd7-4ef3-b5d3-95524de7cfe1.json b/fleet-packages/detection-rules-composite/kibana/security_rule/cad4500a-abd7-4ef3-b5d3-95524de7cfe1.json new file mode 100644 index 0000000000000..f8b92fd78728e --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/cad4500a-abd7-4ef3-b5d3-95524de7cfe1.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"cad4500a-abd7-4ef3-b5d3-95524de7cfe1","versions":[{"name":"Google Workspace MFA Enforcement Disabled v103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when multi-factor authentication (MFA) enforcement is disabled for Google Workspace users. An adversary may disable MFA enforcement in order to weaken an organization’s security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Google Workspace MFA Enforcement Disabled\n\nMulti-factor authentication is a process in which users are prompted during the sign-in process for an additional form\nof identification, such as a code on their cellphone or a fingerprint scan.\n\nIf you only use a password to authenticate a user, it leaves an insecure vector for attack. If the password is weak or\nhas been exposed elsewhere, an attacker could be using it to gain access. When you require a second form of authentication,\nsecurity is increased because this additional factor isn't something that's easy for an attacker to obtain or duplicate.\n\nFor more information about using MFA in Google Workspace, access the [official documentation](https://support.google.com/a/answer/175197).\n\nThis rule identifies the disabling of MFA enforcement in Google Workspace. This modification weakens the security of\nthe accounts and can lead to the compromise of accounts and other assets.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- While this activity can be done by administrators, all users must use MFA. The security team should address any\npotential benign true positive (B-TP), as this configuration can risk the user and domain.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Reactivate the multi-factor authentication enforcement.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://support.google.com/a/answer/7587183) by Google.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n\n\n### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["MFA policies may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/9176657?hl=en#"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin\n and event.category:iam and event.action:ENFORCE_STRONG_AUTHENTICATION\n and google_workspace.admin.new_value:false\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Google Workspace MFA Enforcement Disabled v103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when multi-factor authentication (MFA) enforcement is disabled for Google Workspace users. An adversary may disable MFA enforcement in order to weaken an organization’s security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Google Workspace MFA Enforcement Disabled\n\nMulti-factor authentication is a process in which users are prompted during the sign-in process for an additional form\nof identification, such as a code on their cellphone or a fingerprint scan.\n\nIf you only use a password to authenticate a user, it leaves an insecure vector for attack. If the password is weak or\nhas been exposed elsewhere, an attacker could be using it to gain access. When you require a second form of authentication,\nsecurity is increased because this additional factor isn't something that's easy for an attacker to obtain or duplicate.\n\nFor more information about using MFA in Google Workspace, access the [official documentation](https://support.google.com/a/answer/175197).\n\nThis rule identifies the disabling of MFA enforcement in Google Workspace. This modification weakens the security of\nthe accounts and can lead to the compromise of accounts and other assets.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- While this activity can be done by administrators, all users must use MFA. The security team should address any\npotential benign true positive (B-TP), as this configuration can risk the user and domain.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Reactivate the multi-factor authentication enforcement.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://support.google.com/a/answer/7587183) by Google.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n\n\n### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["MFA policies may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/9176657?hl=en#"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin\n and event.category:iam and event.action:ENFORCE_STRONG_AUTHENTICATION\n and google_workspace.admin.new_value:false\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Google Workspace MFA Enforcement Disabled v103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when multi-factor authentication (MFA) enforcement is disabled for Google Workspace users. An adversary may disable MFA enforcement in order to weaken an organization’s security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Google Workspace MFA Enforcement Disabled\n\nMulti-factor authentication is a process in which users are prompted during the sign-in process for an additional form\nof identification, such as a code on their cellphone or a fingerprint scan.\n\nIf you only use a password to authenticate a user, it leaves an insecure vector for attack. If the password is weak or\nhas been exposed elsewhere, an attacker could be using it to gain access. When you require a second form of authentication,\nsecurity is increased because this additional factor isn't something that's easy for an attacker to obtain or duplicate.\n\nFor more information about using MFA in Google Workspace, access the [official documentation](https://support.google.com/a/answer/175197).\n\nThis rule identifies the disabling of MFA enforcement in Google Workspace. This modification weakens the security of\nthe accounts and can lead to the compromise of accounts and other assets.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- While this activity can be done by administrators, all users must use MFA. The security team should address any\npotential benign true positive (B-TP), as this configuration can risk the user and domain.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Reactivate the multi-factor authentication enforcement.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://support.google.com/a/answer/7587183) by Google.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n\n\n### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["MFA policies may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/9176657?hl=en#"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin\n and event.category:iam and event.action:ENFORCE_STRONG_AUTHENTICATION\n and google_workspace.admin.new_value:false\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"cad4500a-abd7-4ef3-b5d3-95524de7cfe1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/cb71aa62-55c8-42f0-b0dd-afb0bb0b1f51.json b/fleet-packages/detection-rules-composite/kibana/security_rule/cb71aa62-55c8-42f0-b0dd-afb0bb0b1f51.json new file mode 100644 index 0000000000000..77fd875749a6e --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/cb71aa62-55c8-42f0-b0dd-afb0bb0b1f51.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"cb71aa62-55c8-42f0-b0dd-afb0bb0b1f51","versions":[{"name":"Suspicious Calendar File Modification v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious modifications of the calendar file by an unusual process. Adversaries may create a custom calendar notification procedure to execute a malicious program at a recurring interval to establish persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted applications for managing calendars and reminders."],"from":"now-9m","references":["https://labs.f-secure.com/blog/operationalising-calendar-alerts-persistence-on-macos","https://github.com/FSecureLABS/CalendarPersist","https://github.com/D00MFist/PersistentJXA/blob/master/CalendarPersist.js"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/"}]}],"type":"query","index":["logs-endpoint.events.*","auditbeat-*"],"language":"kuery","query":"event.category:file and event.action:modification and\n file.path:/Users/*/Library/Calendars/*.calendar/Events/*.ics and\n process.executable:\n (* and not\n (\n /System/Library/* or\n /System/Applications/Calendar.app/Contents/MacOS/* or\n /System/Applications/Mail.app/Contents/MacOS/Mail or\n /usr/libexec/xpcproxy or\n /sbin/launchd or\n /Applications/*\n )\n )\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},{"name":"Suspicious Calendar File Modification v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious modifications of the calendar file by an unusual process. Adversaries may create a custom calendar notification procedure to execute a malicious program at a recurring interval to establish persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted applications for managing calendars and reminders."],"from":"now-9m","references":["https://labs.f-secure.com/blog/operationalising-calendar-alerts-persistence-on-macos","https://github.com/FSecureLABS/CalendarPersist","https://github.com/D00MFist/PersistentJXA/blob/master/CalendarPersist.js"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/"}]}],"type":"query","index":["logs-endpoint.events.*","auditbeat-*"],"language":"kuery","query":"event.category:file and event.action:modification and\n file.path:/Users/*/Library/Calendars/*.calendar/Events/*.ics and\n process.executable:\n (* and not\n (\n /System/Library/* or\n /System/Applications/Calendar.app/Contents/MacOS/* or\n /System/Applications/Mail.app/Contents/MacOS/Mail or\n /usr/libexec/xpcproxy or\n /sbin/launchd or\n /Applications/*\n )\n )\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},{"name":"Suspicious Calendar File Modification v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious modifications of the calendar file by an unusual process. Adversaries may create a custom calendar notification procedure to execute a malicious program at a recurring interval to establish persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted applications for managing calendars and reminders."],"from":"now-9m","references":["https://labs.f-secure.com/blog/operationalising-calendar-alerts-persistence-on-macos","https://github.com/FSecureLABS/CalendarPersist","https://github.com/D00MFist/PersistentJXA/blob/master/CalendarPersist.js"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/"}]}],"type":"query","index":["logs-endpoint.events.*","auditbeat-*"],"language":"kuery","query":"event.category:file and event.action:modification and\n file.path:/Users/*/Library/Calendars/*.calendar/Events/*.ics and\n process.executable:\n (* and not\n (\n /System/Library/* or\n /System/Applications/Calendar.app/Contents/MacOS/* or\n /System/Applications/Mail.app/Contents/MacOS/Mail or\n /usr/libexec/xpcproxy or\n /sbin/launchd or\n /Applications/*\n )\n )\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]}]},"id":"cb71aa62-55c8-42f0-b0dd-afb0bb0b1f51","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/cc2fd2d0-ba3a-4939-b87f-2901764ed036.json b/fleet-packages/detection-rules-composite/kibana/security_rule/cc2fd2d0-ba3a-4939-b87f-2901764ed036.json new file mode 100644 index 0000000000000..146c2aa2b4534 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/cc2fd2d0-ba3a-4939-b87f-2901764ed036.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"cc2fd2d0-ba3a-4939-b87f-2901764ed036","versions":[{"name":"Attempt to Enable the Root Account v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to enable the root account using the dsenableroot command. This command may be abused by adversaries for persistence, as the root account is disabled by default.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://ss64.com/osx/dsenableroot.html"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.003","name":"Local Accounts","reference":"https://attack.mitre.org/techniques/T1078/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:dsenableroot and not process.args:\"-d\"\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Attempt to Enable the Root Account v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to enable the root account using the dsenableroot command. This command may be abused by adversaries for persistence, as the root account is disabled by default.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://ss64.com/osx/dsenableroot.html"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.003","name":"Local Accounts","reference":"https://attack.mitre.org/techniques/T1078/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:dsenableroot and not process.args:\"-d\"\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Attempt to Enable the Root Account v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to enable the root account using the dsenableroot command. This command may be abused by adversaries for persistence, as the root account is disabled by default.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://ss64.com/osx/dsenableroot.html"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.003","name":"Local Accounts","reference":"https://attack.mitre.org/techniques/T1078/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:dsenableroot and not process.args:\"-d\"\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"cc2fd2d0-ba3a-4939-b87f-2901764ed036","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/cc6a8a20-2df2-11ed-8378-f661ea17fbce.json b/fleet-packages/detection-rules-composite/kibana/security_rule/cc6a8a20-2df2-11ed-8378-f661ea17fbce.json new file mode 100644 index 0000000000000..af95951bca781 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/cc6a8a20-2df2-11ed-8378-f661ea17fbce.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"cc6a8a20-2df2-11ed-8378-f661ea17fbce","versions":[{"name":"Google Workspace User Organizational Unit Changed v2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Users in Google Workspace are typically assigned a specific organizational unit that grants them permissions to certain services and roles that are inherited from this organizational unit. Adversaries may compromise a valid account and change which organizational account the user belongs to which then could allow them to inherit permissions to applications and resources inaccessible prior to.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Google Workspace administrators may adjust change which organizational unit a user belongs to as a result of internal role adjustments."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/6328701?hl=en#"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.003","name":"Additional Cloud Roles","reference":"https://attack.mitre.org/techniques/T1098/003/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.type:change and event.category:iam\n and google_workspace.event.type:\"USER_SETTINGS\" and event.action:\"MOVE_USER_TO_ORG_UNIT\"\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"google_workspace.event.type","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Google Workspace User Organizational Unit Changed v2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Users in Google Workspace are typically assigned a specific organizational unit that grants them permissions to certain services and roles that are inherited from this organizational unit. Adversaries may compromise a valid account and change which organizational account the user belongs to which then could allow them to inherit permissions to applications and resources inaccessible prior to.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Google Workspace administrators may adjust change which organizational unit a user belongs to as a result of internal role adjustments."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/6328701?hl=en#"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.003","name":"Additional Cloud Roles","reference":"https://attack.mitre.org/techniques/T1098/003/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.type:change and event.category:iam\n and google_workspace.event.type:\"USER_SETTINGS\" and event.action:\"MOVE_USER_TO_ORG_UNIT\"\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"google_workspace.event.type","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Google Workspace User Organizational Unit Changed v2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Users in Google Workspace are typically assigned a specific organizational unit that grants them permissions to certain services and roles that are inherited from this organizational unit. Adversaries may compromise a valid account and change which organizational account the user belongs to which then could allow them to inherit permissions to applications and resources inaccessible prior to.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Google Workspace administrators may adjust change which organizational unit a user belongs to as a result of internal role adjustments."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/6328701?hl=en#"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.003","name":"Additional Cloud Roles","reference":"https://attack.mitre.org/techniques/T1098/003/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.type:change and event.category:iam\n and google_workspace.event.type:\"USER_SETTINGS\" and event.action:\"MOVE_USER_TO_ORG_UNIT\"\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"google_workspace.event.type","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"cc6a8a20-2df2-11ed-8378-f661ea17fbce","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/cc89312d-6f47-48e4-a87c-4977bd4633c3.json b/fleet-packages/detection-rules-composite/kibana/security_rule/cc89312d-6f47-48e4-a87c-4977bd4633c3.json new file mode 100644 index 0000000000000..5221806640ff6 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/cc89312d-6f47-48e4-a87c-4977bd4633c3.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"cc89312d-6f47-48e4-a87c-4977bd4633c3","versions":[{"name":"GCP Pub/Sub Subscription Deletion v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a subscription in Google Cloud Platform (GCP). In GCP, the publisher-subscriber relationship (Pub/Sub) is an asynchronous messaging service that decouples event-producing and event-processing services. A subscription is a named resource representing the stream of messages to be delivered to the subscribing application.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Subscription deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Subscription deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/pubsub/docs/overview"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.pubsub.v*.Subscriber.DeleteSubscription and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Pub/Sub Subscription Deletion v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a subscription in Google Cloud Platform (GCP). In GCP, the publisher-subscriber relationship (Pub/Sub) is an asynchronous messaging service that decouples event-producing and event-processing services. A subscription is a named resource representing the stream of messages to be delivered to the subscribing application.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Subscription deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Subscription deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/pubsub/docs/overview"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.pubsub.v*.Subscriber.DeleteSubscription and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Pub/Sub Subscription Deletion v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a subscription in Google Cloud Platform (GCP). In GCP, the publisher-subscriber relationship (Pub/Sub) is an asynchronous messaging service that decouples event-producing and event-processing services. A subscription is a named resource representing the stream of messages to be delivered to the subscribing application.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Subscription deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Subscription deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/pubsub/docs/overview"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.pubsub.v*.Subscriber.DeleteSubscription and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"cc89312d-6f47-48e4-a87c-4977bd4633c3","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/cc92c835-da92-45c9-9f29-b4992ad621a0.json b/fleet-packages/detection-rules-composite/kibana/security_rule/cc92c835-da92-45c9-9f29-b4992ad621a0.json new file mode 100644 index 0000000000000..dc55ad752c07a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/cc92c835-da92-45c9-9f29-b4992ad621a0.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"cc92c835-da92-45c9-9f29-b4992ad621a0","versions":[{"name":"Attempt to Deactivate an Okta Policy Rule v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to deactivate a rule within an Okta policy. An adversary may attempt to deactivate a rule within an Okta policy in order to remove or weaken an organization's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Okta MFA rules are regularly deactivated in your organization."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/Security_Policies.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.rule.deactivate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Deactivate an Okta Policy Rule v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to deactivate a rule within an Okta policy. An adversary may attempt to deactivate a rule within an Okta policy in order to remove or weaken an organization's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Okta MFA rules are regularly deactivated in your organization."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/Security_Policies.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.rule.deactivate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Deactivate an Okta Policy Rule v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to deactivate a rule within an Okta policy. An adversary may attempt to deactivate a rule within an Okta policy in order to remove or weaken an organization's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Okta MFA rules are regularly deactivated in your organization."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/Security_Policies.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.rule.deactivate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"cc92c835-da92-45c9-9f29-b4992ad621a0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/ccc55af4-9882-4c67-87b4-449a7ae8079c.json b/fleet-packages/detection-rules-composite/kibana/security_rule/ccc55af4-9882-4c67-87b4-449a7ae8079c.json new file mode 100644 index 0000000000000..bc3132a9e63e3 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/ccc55af4-9882-4c67-87b4-449a7ae8079c.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"ccc55af4-9882-4c67-87b4-449a7ae8079c","versions":[{"name":"Potential Process Herpaderping Attempt v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies process execution followed by a file overwrite of an executable by the same parent process. This may indicate an evasion attempt to execute malicious code in a stealthy way.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://github.com/jxy-s/herpaderping"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"language":"eql","query":"sequence with maxspan=5s\n [process where event.type == \"start\" and not process.parent.executable :\n (\n \"?:\\\\Windows\\\\SoftwareDistribution\\\\*.exe\",\n \"?:\\\\Program Files\\\\Elastic\\\\Agent\\\\data\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\Trend Micro\\\\*.exe\"\n )\n ] by host.id, process.executable, process.parent.entity_id\n [file where event.type == \"change\" and event.action == \"overwrite\" and file.extension == \"exe\"] by host.id, file.path, process.entity_id\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},{"name":"Potential Process Herpaderping Attempt v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies process execution followed by a file overwrite of an executable by the same parent process. This may indicate an evasion attempt to execute malicious code in a stealthy way.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://github.com/jxy-s/herpaderping"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"language":"eql","query":"sequence with maxspan=5s\n [process where event.type == \"start\" and not process.parent.executable :\n (\n \"?:\\\\Windows\\\\SoftwareDistribution\\\\*.exe\",\n \"?:\\\\Program Files\\\\Elastic\\\\Agent\\\\data\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\Trend Micro\\\\*.exe\"\n )\n ] by host.id, process.executable, process.parent.entity_id\n [file where event.type == \"change\" and event.action == \"overwrite\" and file.extension == \"exe\"] by host.id, file.path, process.entity_id\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},{"name":"Potential Process Herpaderping Attempt v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies process execution followed by a file overwrite of an executable by the same parent process. This may indicate an evasion attempt to execute malicious code in a stealthy way.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://github.com/jxy-s/herpaderping"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"language":"eql","query":"sequence with maxspan=5s\n [process where event.type == \"start\" and not process.parent.executable :\n (\n \"?:\\\\Windows\\\\SoftwareDistribution\\\\*.exe\",\n \"?:\\\\Program Files\\\\Elastic\\\\Agent\\\\data\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\Trend Micro\\\\*.exe\"\n )\n ] by host.id, process.executable, process.parent.entity_id\n [file where event.type == \"change\" and event.action == \"overwrite\" and file.extension == \"exe\"] by host.id, file.path, process.entity_id\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]}]},"id":"ccc55af4-9882-4c67-87b4-449a7ae8079c","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/cd16fb10-0261-46e8-9932-a0336278cdbe.json b/fleet-packages/detection-rules-composite/kibana/security_rule/cd16fb10-0261-46e8-9932-a0336278cdbe.json new file mode 100644 index 0000000000000..5f3c62a8abae9 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/cd16fb10-0261-46e8-9932-a0336278cdbe.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"cd16fb10-0261-46e8-9932-a0336278cdbe","versions":[{"name":"Modification or Removal of an Okta Application Sign-On Policy v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to modify or delete a sign on policy for an Okta application. An adversary may attempt to modify or delete the sign on policy for an Okta application in order to remove or weaken an organization's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if sign on policies for Okta applications are regularly modified or deleted in your organization."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/App_Based_Signon.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:(application.policy.sign_on.update or application.policy.sign_on.rule.delete)\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Modification or Removal of an Okta Application Sign-On Policy v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to modify or delete a sign on policy for an Okta application. An adversary may attempt to modify or delete the sign on policy for an Okta application in order to remove or weaken an organization's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if sign on policies for Okta applications are regularly modified or deleted in your organization."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/App_Based_Signon.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:(application.policy.sign_on.update or application.policy.sign_on.rule.delete)\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Modification or Removal of an Okta Application Sign-On Policy v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to modify or delete a sign on policy for an Okta application. An adversary may attempt to modify or delete the sign on policy for an Okta application in order to remove or weaken an organization's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if sign on policies for Okta applications are regularly modified or deleted in your organization."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/App_Based_Signon.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:(application.policy.sign_on.update or application.policy.sign_on.rule.delete)\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"cd16fb10-0261-46e8-9932-a0336278cdbe","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/cd66a419-9b3f-4f57-8ff8-ac4cd2d5f530.json b/fleet-packages/detection-rules-composite/kibana/security_rule/cd66a419-9b3f-4f57-8ff8-ac4cd2d5f530.json new file mode 100644 index 0000000000000..d8c09761ac418 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/cd66a419-9b3f-4f57-8ff8-ac4cd2d5f530.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"cd66a419-9b3f-4f57-8ff8-ac4cd2d5f530","versions":[{"name":"Anomalous Linux Compiler Activity v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for compiler activity by a user context which does not normally run compilers. This can be the result of ad-hoc software changes or unauthorized software deployment. This can also be due to local privilege elevation via locally run exploits or malware activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon compiler activity can be due to an engineer running a local build on a production or staging instance in the course of troubleshooting or fixing a software issue."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML","Resource Development"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0042","name":"Resource Development","reference":"https://attack.mitre.org/tactics/TA0042/"},"technique":[{"id":"T1588","name":"Obtain Capabilities","reference":"https://attack.mitre.org/techniques/T1588/","subtechnique":[{"id":"T1588.001","name":"Malware","reference":"https://attack.mitre.org/techniques/T1588/001/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_rare_user_compiler"],"type":"machine_learning"},{"name":"Anomalous Linux Compiler Activity v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for compiler activity by a user context which does not normally run compilers. This can be the result of ad-hoc software changes or unauthorized software deployment. This can also be due to local privilege elevation via locally run exploits or malware activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon compiler activity can be due to an engineer running a local build on a production or staging instance in the course of troubleshooting or fixing a software issue."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML","Resource Development"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0042","name":"Resource Development","reference":"https://attack.mitre.org/tactics/TA0042/"},"technique":[{"id":"T1588","name":"Obtain Capabilities","reference":"https://attack.mitre.org/techniques/T1588/","subtechnique":[{"id":"T1588.001","name":"Malware","reference":"https://attack.mitre.org/techniques/T1588/001/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_rare_user_compiler"],"type":"machine_learning"},{"name":"Anomalous Linux Compiler Activity v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for compiler activity by a user context which does not normally run compilers. This can be the result of ad-hoc software changes or unauthorized software deployment. This can also be due to local privilege elevation via locally run exploits or malware activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon compiler activity can be due to an engineer running a local build on a production or staging instance in the course of troubleshooting or fixing a software issue."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML","Resource Development"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0042","name":"Resource Development","reference":"https://attack.mitre.org/tactics/TA0042/"},"technique":[{"id":"T1588","name":"Obtain Capabilities","reference":"https://attack.mitre.org/techniques/T1588/","subtechnique":[{"id":"T1588.001","name":"Malware","reference":"https://attack.mitre.org/techniques/T1588/001/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_rare_user_compiler"],"type":"machine_learning"}]},"id":"cd66a419-9b3f-4f57-8ff8-ac4cd2d5f530","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/cd66a5af-e34b-4bb0-8931-57d0a043f2ef.json b/fleet-packages/detection-rules-composite/kibana/security_rule/cd66a5af-e34b-4bb0-8931-57d0a043f2ef.json new file mode 100644 index 0000000000000..61bfae0432b91 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/cd66a5af-e34b-4bb0-8931-57d0a043f2ef.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"cd66a5af-e34b-4bb0-8931-57d0a043f2ef","versions":[{"name":"Kernel Module Removal v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Kernel modules are pieces of code that can be loaded and unloaded into the kernel upon demand. They extend the functionality of the kernel without the need to reboot the system. This rule identifies attempts to remove a kernel module.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["There is usually no reason to remove modules, but some buggy modules require it. These can be exempted by username. Note that some Linux distributions are not built to support the removal of modules at all."],"from":"now-9m","references":["http://man7.org/linux/man-pages/man8/modprobe.8.html"],"tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.006","name":"Kernel Modules and Extensions","reference":"https://attack.mitre.org/techniques/T1547/006/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.args:((rmmod and sudo) or (modprobe and sudo and (\"--remove\" or \"-r\")))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},{"name":"Kernel Module Removal v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Kernel modules are pieces of code that can be loaded and unloaded into the kernel upon demand. They extend the functionality of the kernel without the need to reboot the system. This rule identifies attempts to remove a kernel module.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["There is usually no reason to remove modules, but some buggy modules require it. These can be exempted by username. Note that some Linux distributions are not built to support the removal of modules at all."],"from":"now-9m","references":["http://man7.org/linux/man-pages/man8/modprobe.8.html"],"tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.006","name":"Kernel Modules and Extensions","reference":"https://attack.mitre.org/techniques/T1547/006/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.args:((rmmod and sudo) or (modprobe and sudo and (\"--remove\" or \"-r\")))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},{"name":"Kernel Module Removal v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Kernel modules are pieces of code that can be loaded and unloaded into the kernel upon demand. They extend the functionality of the kernel without the need to reboot the system. This rule identifies attempts to remove a kernel module.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["There is usually no reason to remove modules, but some buggy modules require it. These can be exempted by username. Note that some Linux distributions are not built to support the removal of modules at all."],"from":"now-9m","references":["http://man7.org/linux/man-pages/man8/modprobe.8.html"],"tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.006","name":"Kernel Modules and Extensions","reference":"https://attack.mitre.org/techniques/T1547/006/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.args:((rmmod and sudo) or (modprobe and sudo and (\"--remove\" or \"-r\")))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]}]},"id":"cd66a5af-e34b-4bb0-8931-57d0a043f2ef","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/cd89602e-9db0-48e3-9391-ae3bf241acd8.json b/fleet-packages/detection-rules-composite/kibana/security_rule/cd89602e-9db0-48e3-9391-ae3bf241acd8.json new file mode 100644 index 0000000000000..c81a62549ef44 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/cd89602e-9db0-48e3-9391-ae3bf241acd8.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"cd89602e-9db0-48e3-9391-ae3bf241acd8","versions":[{"name":"Attempt to Deactivate MFA for an Okta User Account v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to deactivate multi-factor authentication (MFA) for an Okta user. An adversary may deactivate MFA for an Okta user account in order to weaken the authentication requirements for the account.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If the behavior of deactivating MFA for Okta user accounts is expected, consider adding exceptions to this rule to filter false positives."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.mfa.factor.deactivate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Deactivate MFA for an Okta User Account v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to deactivate multi-factor authentication (MFA) for an Okta user. An adversary may deactivate MFA for an Okta user account in order to weaken the authentication requirements for the account.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If the behavior of deactivating MFA for Okta user accounts is expected, consider adding exceptions to this rule to filter false positives."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.mfa.factor.deactivate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Deactivate MFA for an Okta User Account v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to deactivate multi-factor authentication (MFA) for an Okta user. An adversary may deactivate MFA for an Okta user account in order to weaken the authentication requirements for the account.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If the behavior of deactivating MFA for Okta user accounts is expected, consider adding exceptions to this rule to filter false positives."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.mfa.factor.deactivate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"cd89602e-9db0-48e3-9391-ae3bf241acd8","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/cdbebdc1-dc97-43c6-a538-f26a20c0a911.json b/fleet-packages/detection-rules-composite/kibana/security_rule/cdbebdc1-dc97-43c6-a538-f26a20c0a911.json new file mode 100644 index 0000000000000..b48b734776400 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/cdbebdc1-dc97-43c6-a538-f26a20c0a911.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"cdbebdc1-dc97-43c6-a538-f26a20c0a911","versions":[{"name":"Okta User Session Impersonation v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A user has initiated a session impersonation granting them access to the environment with the permissions of the user they are impersonating. This would likely indicate Okta administrative access and should only ever occur if requested and expected.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-30m","interval":"15m","references":["https://blog.cloudflare.com/cloudflare-investigation-of-the-january-2022-okta-compromise/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.session.impersonation.initiate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Okta User Session Impersonation v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A user has initiated a session impersonation granting them access to the environment with the permissions of the user they are impersonating. This would likely indicate Okta administrative access and should only ever occur if requested and expected.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-30m","interval":"15m","references":["https://blog.cloudflare.com/cloudflare-investigation-of-the-january-2022-okta-compromise/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.session.impersonation.initiate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Okta User Session Impersonation v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A user has initiated a session impersonation granting them access to the environment with the permissions of the user they are impersonating. This would likely indicate Okta administrative access and should only ever occur if requested and expected.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-30m","interval":"15m","references":["https://blog.cloudflare.com/cloudflare-investigation-of-the-january-2022-okta-compromise/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.session.impersonation.initiate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"cdbebdc1-dc97-43c6-a538-f26a20c0a911","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/ce64d965-6cb0-466d-b74f-8d2c76f47f05.json b/fleet-packages/detection-rules-composite/kibana/security_rule/ce64d965-6cb0-466d-b74f-8d2c76f47f05.json new file mode 100644 index 0000000000000..0f58fb63fb1b7 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/ce64d965-6cb0-466d-b74f-8d2c76f47f05.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"ce64d965-6cb0-466d-b74f-8d2c76f47f05","versions":[{"name":"New ActiveSyncAllowedDeviceID Added via PowerShell v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the Exchange PowerShell cmdlet, Set-CASMailbox, to add a new ActiveSync allowed device. Adversaries may target user email to collect sensitive information.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate exchange system administration activity."],"from":"now-9m","references":["https://www.volexity.com/blog/2020/12/14/dark-halo-leverages-solarwinds-compromise-to-breach-organizations/","https://docs.microsoft.com/en-us/powershell/module/exchange/set-casmailbox?view=exchange-ps"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.002","name":"Additional Email Delegate Permissions","reference":"https://attack.mitre.org/techniques/T1098/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name: (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and process.args : \"Set-CASMailbox*ActiveSyncAllowedDeviceIDs*\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"New ActiveSyncAllowedDeviceID Added via PowerShell v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the Exchange PowerShell cmdlet, Set-CASMailbox, to add a new ActiveSync allowed device. Adversaries may target user email to collect sensitive information.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate exchange system administration activity."],"from":"now-9m","references":["https://www.volexity.com/blog/2020/12/14/dark-halo-leverages-solarwinds-compromise-to-breach-organizations/","https://docs.microsoft.com/en-us/powershell/module/exchange/set-casmailbox?view=exchange-ps"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.002","name":"Additional Email Delegate Permissions","reference":"https://attack.mitre.org/techniques/T1098/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name: (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and process.args : \"Set-CASMailbox*ActiveSyncAllowedDeviceIDs*\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"New ActiveSyncAllowedDeviceID Added via PowerShell v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the Exchange PowerShell cmdlet, Set-CASMailbox, to add a new ActiveSync allowed device. Adversaries may target user email to collect sensitive information.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate exchange system administration activity."],"from":"now-9m","references":["https://www.volexity.com/blog/2020/12/14/dark-halo-leverages-solarwinds-compromise-to-breach-organizations/","https://docs.microsoft.com/en-us/powershell/module/exchange/set-casmailbox?view=exchange-ps"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.002","name":"Additional Email Delegate Permissions","reference":"https://attack.mitre.org/techniques/T1098/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name: (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and process.args : \"Set-CASMailbox*ActiveSyncAllowedDeviceIDs*\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"ce64d965-6cb0-466d-b74f-8d2c76f47f05","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/cf53f532-9cc9-445a-9ae7-fced307ec53c.json b/fleet-packages/detection-rules-composite/kibana/security_rule/cf53f532-9cc9-445a-9ae7-fced307ec53c.json new file mode 100644 index 0000000000000..218e22e803a17 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/cf53f532-9cc9-445a-9ae7-fced307ec53c.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"cf53f532-9cc9-445a-9ae7-fced307ec53c","versions":[{"name":"Cobalt Strike Command and Control Beacon v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Cobalt Strike is a threat emulation platform commonly modified and used by adversaries to conduct network attack and exploitation campaigns. This rule detects a network activity algorithm leveraged by Cobalt Strike implant beacons for command and control.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Threat intel\n\nThis activity has been observed in FIN7 campaigns.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This rule should be tailored to either exclude systems, as sources or destinations, in which this behavior is expected."],"from":"now-9m","references":["https://blog.morphisec.com/fin7-attacks-restaurant-industry","https://www.fireeye.com/blog/threat-research/2017/04/fin7-phishing-lnk.html","https://www.elastic.co/security-labs/collecting-cobalt-strike-beacons-with-the-elastic-stack"],"tags":["Elastic","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/"},{"id":"T1568","name":"Dynamic Resolution","reference":"https://attack.mitre.org/techniques/T1568/","subtechnique":[{"id":"T1568.002","name":"Domain Generation Algorithms","reference":"https://attack.mitre.org/techniques/T1568/002/"}]}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"lucene","query":"event.category:(network OR network_traffic) AND type:(tls OR http) AND network.transport:tcp AND destination.domain:/[a-z]{3}.stage.[0-9]{8}\\..*/\n"},{"name":"Cobalt Strike Command and Control Beacon v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Cobalt Strike is a threat emulation platform commonly modified and used by adversaries to conduct network attack and exploitation campaigns. This rule detects a network activity algorithm leveraged by Cobalt Strike implant beacons for command and control.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Threat intel\n\nThis activity has been observed in FIN7 campaigns.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This rule should be tailored to either exclude systems, as sources or destinations, in which this behavior is expected."],"from":"now-9m","references":["https://blog.morphisec.com/fin7-attacks-restaurant-industry","https://www.fireeye.com/blog/threat-research/2017/04/fin7-phishing-lnk.html","https://www.elastic.co/security-labs/collecting-cobalt-strike-beacons-with-the-elastic-stack"],"tags":["Elastic","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/"},{"id":"T1568","name":"Dynamic Resolution","reference":"https://attack.mitre.org/techniques/T1568/","subtechnique":[{"id":"T1568.002","name":"Domain Generation Algorithms","reference":"https://attack.mitre.org/techniques/T1568/002/"}]}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"lucene","query":"event.category:(network OR network_traffic) AND type:(tls OR http) AND network.transport:tcp AND destination.domain:/[a-z]{3}.stage.[0-9]{8}\\..*/\n"},{"name":"Cobalt Strike Command and Control Beacon v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Cobalt Strike is a threat emulation platform commonly modified and used by adversaries to conduct network attack and exploitation campaigns. This rule detects a network activity algorithm leveraged by Cobalt Strike implant beacons for command and control.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Threat intel\n\nThis activity has been observed in FIN7 campaigns.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This rule should be tailored to either exclude systems, as sources or destinations, in which this behavior is expected."],"from":"now-9m","references":["https://blog.morphisec.com/fin7-attacks-restaurant-industry","https://www.fireeye.com/blog/threat-research/2017/04/fin7-phishing-lnk.html","https://www.elastic.co/security-labs/collecting-cobalt-strike-beacons-with-the-elastic-stack"],"tags":["Elastic","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/"},{"id":"T1568","name":"Dynamic Resolution","reference":"https://attack.mitre.org/techniques/T1568/","subtechnique":[{"id":"T1568.002","name":"Domain Generation Algorithms","reference":"https://attack.mitre.org/techniques/T1568/002/"}]}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"lucene","query":"event.category:(network OR network_traffic) AND type:(tls OR http) AND network.transport:tcp AND destination.domain:/[a-z]{3}.stage.[0-9]{8}\\..*/\n"}]},"id":"cf53f532-9cc9-445a-9ae7-fced307ec53c","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/cf549724-c577-4fd6-8f9b-d1b8ec519ec0.json b/fleet-packages/detection-rules-composite/kibana/security_rule/cf549724-c577-4fd6-8f9b-d1b8ec519ec0.json new file mode 100644 index 0000000000000..0543e82376cdb --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/cf549724-c577-4fd6-8f9b-d1b8ec519ec0.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"cf549724-c577-4fd6-8f9b-d1b8ec519ec0","versions":[{"name":"Domain Added to Google Workspace Trusted Domains v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a domain is added to the list of trusted Google Workspace domains. An adversary may add a trusted domain in order to collect and exfiltrate data from their target’s organization with less restrictive security controls.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted domains may be added by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/6160020?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:ADD_TRUSTED_DOMAINS\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Domain Added to Google Workspace Trusted Domains v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a domain is added to the list of trusted Google Workspace domains. An adversary may add a trusted domain in order to collect and exfiltrate data from their target’s organization with less restrictive security controls.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted domains may be added by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/6160020?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:ADD_TRUSTED_DOMAINS\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Domain Added to Google Workspace Trusted Domains v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a domain is added to the list of trusted Google Workspace domains. An adversary may add a trusted domain in order to collect and exfiltrate data from their target’s organization with less restrictive security controls.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted domains may be added by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/6160020?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:ADD_TRUSTED_DOMAINS\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"cf549724-c577-4fd6-8f9b-d1b8ec519ec0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/cff92c41-2225-4763-b4ce-6f71e5bda5e6.json b/fleet-packages/detection-rules-composite/kibana/security_rule/cff92c41-2225-4763-b4ce-6f71e5bda5e6.json new file mode 100644 index 0000000000000..ffaa166056c05 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/cff92c41-2225-4763-b4ce-6f71e5bda5e6.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"cff92c41-2225-4763-b4ce-6f71e5bda5e6","versions":[{"name":"Execution from Unusual Directory - Command Line v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies process execution from suspicious default Windows directories. This may be abused by adversaries to hide malware in trusted paths.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Execution from Unusual Directory - Command Line\n\nThis rule looks for the execution of scripts from unusual directories. Attackers can use system or application paths to\nhide malware and make the execution less suspicious.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the command line to determine which commands or scripts were executed.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the script using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination\nof parent process executable and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n\nThis is related to the `Process Execution from an Unusual Directory rule`.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.005","name":"Match Legitimate Name or Location","reference":"https://attack.mitre.org/techniques/T1036/005/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"wscript.exe\",\n \"cscript.exe\",\n \"rundll32.exe\",\n \"regsvr32.exe\",\n \"cmstp.exe\",\n \"RegAsm.exe\",\n \"installutil.exe\",\n \"mshta.exe\",\n \"RegSvcs.exe\",\n \"powershell.exe\",\n \"pwsh.exe\",\n \"cmd.exe\") and\n\n /* add suspicious execution paths here */\n process.args : (\"C:\\\\PerfLogs\\\\*\",\n \"C:\\\\Users\\\\Public\\\\*\",\n \"C:\\\\Windows\\\\Tasks\\\\*\",\n \"C:\\\\Intel\\\\*\",\n \"C:\\\\AMD\\\\Temp\\\\*\",\n \"C:\\\\Windows\\\\AppReadiness\\\\*\",\n \"C:\\\\Windows\\\\ServiceState\\\\*\",\n \"C:\\\\Windows\\\\security\\\\*\",\n \"C:\\\\Windows\\\\IdentityCRL\\\\*\",\n \"C:\\\\Windows\\\\Branding\\\\*\",\n \"C:\\\\Windows\\\\csc\\\\*\",\n \"C:\\\\Windows\\\\DigitalLocker\\\\*\",\n \"C:\\\\Windows\\\\en-US\\\\*\",\n \"C:\\\\Windows\\\\wlansvc\\\\*\",\n \"C:\\\\Windows\\\\Prefetch\\\\*\",\n \"C:\\\\Windows\\\\Fonts\\\\*\",\n \"C:\\\\Windows\\\\diagnostics\\\\*\",\n \"C:\\\\Windows\\\\TAPI\\\\*\",\n \"C:\\\\Windows\\\\INF\\\\*\",\n \"C:\\\\Windows\\\\System32\\\\Speech\\\\*\",\n \"C:\\\\windows\\\\tracing\\\\*\",\n \"c:\\\\windows\\\\IME\\\\*\",\n \"c:\\\\Windows\\\\Performance\\\\*\",\n \"c:\\\\windows\\\\intel\\\\*\",\n \"c:\\\\windows\\\\ms\\\\*\",\n \"C:\\\\Windows\\\\dot3svc\\\\*\",\n \"C:\\\\Windows\\\\panther\\\\*\",\n \"C:\\\\Windows\\\\RemotePackages\\\\*\",\n \"C:\\\\Windows\\\\OCR\\\\*\",\n \"C:\\\\Windows\\\\appcompat\\\\*\",\n \"C:\\\\Windows\\\\apppatch\\\\*\",\n \"C:\\\\Windows\\\\addins\\\\*\",\n \"C:\\\\Windows\\\\Setup\\\\*\",\n \"C:\\\\Windows\\\\Help\\\\*\",\n \"C:\\\\Windows\\\\SKB\\\\*\",\n \"C:\\\\Windows\\\\Vss\\\\*\",\n \"C:\\\\Windows\\\\servicing\\\\*\",\n \"C:\\\\Windows\\\\CbsTemp\\\\*\",\n \"C:\\\\Windows\\\\Logs\\\\*\",\n \"C:\\\\Windows\\\\WaaS\\\\*\",\n \"C:\\\\Windows\\\\twain_32\\\\*\",\n \"C:\\\\Windows\\\\ShellExperiences\\\\*\",\n \"C:\\\\Windows\\\\ShellComponents\\\\*\",\n \"C:\\\\Windows\\\\PLA\\\\*\",\n \"C:\\\\Windows\\\\Migration\\\\*\",\n \"C:\\\\Windows\\\\debug\\\\*\",\n \"C:\\\\Windows\\\\Cursors\\\\*\",\n \"C:\\\\Windows\\\\Containers\\\\*\",\n \"C:\\\\Windows\\\\Boot\\\\*\",\n \"C:\\\\Windows\\\\bcastdvr\\\\*\",\n \"C:\\\\Windows\\\\TextInput\\\\*\",\n \"C:\\\\Windows\\\\security\\\\*\",\n \"C:\\\\Windows\\\\schemas\\\\*\",\n \"C:\\\\Windows\\\\SchCache\\\\*\",\n \"C:\\\\Windows\\\\Resources\\\\*\",\n \"C:\\\\Windows\\\\rescache\\\\*\",\n \"C:\\\\Windows\\\\Provisioning\\\\*\",\n \"C:\\\\Windows\\\\PrintDialog\\\\*\",\n \"C:\\\\Windows\\\\PolicyDefinitions\\\\*\",\n \"C:\\\\Windows\\\\media\\\\*\",\n \"C:\\\\Windows\\\\Globalization\\\\*\",\n \"C:\\\\Windows\\\\L2Schemas\\\\*\",\n \"C:\\\\Windows\\\\LiveKernelReports\\\\*\",\n \"C:\\\\Windows\\\\ModemLogs\\\\*\",\n \"C:\\\\Windows\\\\ImmersiveControlPanel\\\\*\",\n \"C:\\\\$Recycle.Bin\\\\*\") and\n\n /* noisy FP patterns */\n\n not process.parent.executable : (\"C:\\\\WINDOWS\\\\System32\\\\DriverStore\\\\FileRepository\\\\*\\\\igfxCUIService*.exe\",\n \"C:\\\\Windows\\\\System32\\\\spacedeskService.exe\",\n \"C:\\\\Program Files\\\\Dell\\\\SupportAssistAgent\\\\SRE\\\\SRE.exe\") and\n not (process.name : \"rundll32.exe\" and\n process.args : (\"uxtheme.dll,#64\",\n \"PRINTUI.DLL,PrintUIEntry\",\n \"?:\\\\Windows\\\\System32\\\\FirewallControlPanel.dll,ShowNotificationDialog\",\n \"?:\\\\WINDOWS\\\\system32\\\\Speech\\\\SpeechUX\\\\sapi.cpl\",\n \"?:\\\\Windows\\\\system32\\\\shell32.dll,OpenAs_RunDLL\")) and\n\n not (process.name : \"cscript.exe\" and process.args : \"?:\\\\WINDOWS\\\\system32\\\\calluxxprovider.vbs\") and\n\n not (process.name : \"cmd.exe\" and process.args : \"?:\\\\WINDOWS\\\\system32\\\\powercfg.exe\" and process.args : \"?:\\\\WINDOWS\\\\inf\\\\PowerPlan.log\") and\n\n not (process.name : \"regsvr32.exe\" and process.args : \"?:\\\\Windows\\\\Help\\\\OEM\\\\scripts\\\\checkmui.dll\") and\n\n not (process.name : \"cmd.exe\" and\n process.parent.executable : (\"?:\\\\Windows\\\\System32\\\\oobe\\\\windeploy.exe\",\n \"?:\\\\Program Files (x86)\\\\ossec-agent\\\\wazuh-agent.exe\",\n \"?:\\\\Windows\\\\System32\\\\igfxCUIService.exe\",\n \"?:\\\\Windows\\\\Temp\\\\IE*.tmp\\\\IE*-support\\\\ienrcore.exe\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Execution from Unusual Directory - Command Line v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies process execution from suspicious default Windows directories. This may be abused by adversaries to hide malware in trusted paths.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Execution from Unusual Directory - Command Line\n\nThis rule looks for the execution of scripts from unusual directories. Attackers can use system or application paths to\nhide malware and make the execution less suspicious.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the command line to determine which commands or scripts were executed.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the script using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination\nof parent process executable and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n\nThis is related to the `Process Execution from an Unusual Directory rule`.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.005","name":"Match Legitimate Name or Location","reference":"https://attack.mitre.org/techniques/T1036/005/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"wscript.exe\",\n \"cscript.exe\",\n \"rundll32.exe\",\n \"regsvr32.exe\",\n \"cmstp.exe\",\n \"RegAsm.exe\",\n \"installutil.exe\",\n \"mshta.exe\",\n \"RegSvcs.exe\",\n \"powershell.exe\",\n \"pwsh.exe\",\n \"cmd.exe\") and\n\n /* add suspicious execution paths here */\n process.args : (\"C:\\\\PerfLogs\\\\*\",\n \"C:\\\\Users\\\\Public\\\\*\",\n \"C:\\\\Windows\\\\Tasks\\\\*\",\n \"C:\\\\Intel\\\\*\",\n \"C:\\\\AMD\\\\Temp\\\\*\",\n \"C:\\\\Windows\\\\AppReadiness\\\\*\",\n \"C:\\\\Windows\\\\ServiceState\\\\*\",\n \"C:\\\\Windows\\\\security\\\\*\",\n \"C:\\\\Windows\\\\IdentityCRL\\\\*\",\n \"C:\\\\Windows\\\\Branding\\\\*\",\n \"C:\\\\Windows\\\\csc\\\\*\",\n \"C:\\\\Windows\\\\DigitalLocker\\\\*\",\n \"C:\\\\Windows\\\\en-US\\\\*\",\n \"C:\\\\Windows\\\\wlansvc\\\\*\",\n \"C:\\\\Windows\\\\Prefetch\\\\*\",\n \"C:\\\\Windows\\\\Fonts\\\\*\",\n \"C:\\\\Windows\\\\diagnostics\\\\*\",\n \"C:\\\\Windows\\\\TAPI\\\\*\",\n \"C:\\\\Windows\\\\INF\\\\*\",\n \"C:\\\\Windows\\\\System32\\\\Speech\\\\*\",\n \"C:\\\\windows\\\\tracing\\\\*\",\n \"c:\\\\windows\\\\IME\\\\*\",\n \"c:\\\\Windows\\\\Performance\\\\*\",\n \"c:\\\\windows\\\\intel\\\\*\",\n \"c:\\\\windows\\\\ms\\\\*\",\n \"C:\\\\Windows\\\\dot3svc\\\\*\",\n \"C:\\\\Windows\\\\panther\\\\*\",\n \"C:\\\\Windows\\\\RemotePackages\\\\*\",\n \"C:\\\\Windows\\\\OCR\\\\*\",\n \"C:\\\\Windows\\\\appcompat\\\\*\",\n \"C:\\\\Windows\\\\apppatch\\\\*\",\n \"C:\\\\Windows\\\\addins\\\\*\",\n \"C:\\\\Windows\\\\Setup\\\\*\",\n \"C:\\\\Windows\\\\Help\\\\*\",\n \"C:\\\\Windows\\\\SKB\\\\*\",\n \"C:\\\\Windows\\\\Vss\\\\*\",\n \"C:\\\\Windows\\\\servicing\\\\*\",\n \"C:\\\\Windows\\\\CbsTemp\\\\*\",\n \"C:\\\\Windows\\\\Logs\\\\*\",\n \"C:\\\\Windows\\\\WaaS\\\\*\",\n \"C:\\\\Windows\\\\twain_32\\\\*\",\n \"C:\\\\Windows\\\\ShellExperiences\\\\*\",\n \"C:\\\\Windows\\\\ShellComponents\\\\*\",\n \"C:\\\\Windows\\\\PLA\\\\*\",\n \"C:\\\\Windows\\\\Migration\\\\*\",\n \"C:\\\\Windows\\\\debug\\\\*\",\n \"C:\\\\Windows\\\\Cursors\\\\*\",\n \"C:\\\\Windows\\\\Containers\\\\*\",\n \"C:\\\\Windows\\\\Boot\\\\*\",\n \"C:\\\\Windows\\\\bcastdvr\\\\*\",\n \"C:\\\\Windows\\\\TextInput\\\\*\",\n \"C:\\\\Windows\\\\security\\\\*\",\n \"C:\\\\Windows\\\\schemas\\\\*\",\n \"C:\\\\Windows\\\\SchCache\\\\*\",\n \"C:\\\\Windows\\\\Resources\\\\*\",\n \"C:\\\\Windows\\\\rescache\\\\*\",\n \"C:\\\\Windows\\\\Provisioning\\\\*\",\n \"C:\\\\Windows\\\\PrintDialog\\\\*\",\n \"C:\\\\Windows\\\\PolicyDefinitions\\\\*\",\n \"C:\\\\Windows\\\\media\\\\*\",\n \"C:\\\\Windows\\\\Globalization\\\\*\",\n \"C:\\\\Windows\\\\L2Schemas\\\\*\",\n \"C:\\\\Windows\\\\LiveKernelReports\\\\*\",\n \"C:\\\\Windows\\\\ModemLogs\\\\*\",\n \"C:\\\\Windows\\\\ImmersiveControlPanel\\\\*\",\n \"C:\\\\$Recycle.Bin\\\\*\") and\n\n /* noisy FP patterns */\n\n not process.parent.executable : (\"C:\\\\WINDOWS\\\\System32\\\\DriverStore\\\\FileRepository\\\\*\\\\igfxCUIService*.exe\",\n \"C:\\\\Windows\\\\System32\\\\spacedeskService.exe\",\n \"C:\\\\Program Files\\\\Dell\\\\SupportAssistAgent\\\\SRE\\\\SRE.exe\") and\n not (process.name : \"rundll32.exe\" and\n process.args : (\"uxtheme.dll,#64\",\n \"PRINTUI.DLL,PrintUIEntry\",\n \"?:\\\\Windows\\\\System32\\\\FirewallControlPanel.dll,ShowNotificationDialog\",\n \"?:\\\\WINDOWS\\\\system32\\\\Speech\\\\SpeechUX\\\\sapi.cpl\",\n \"?:\\\\Windows\\\\system32\\\\shell32.dll,OpenAs_RunDLL\")) and\n\n not (process.name : \"cscript.exe\" and process.args : \"?:\\\\WINDOWS\\\\system32\\\\calluxxprovider.vbs\") and\n\n not (process.name : \"cmd.exe\" and process.args : \"?:\\\\WINDOWS\\\\system32\\\\powercfg.exe\" and process.args : \"?:\\\\WINDOWS\\\\inf\\\\PowerPlan.log\") and\n\n not (process.name : \"regsvr32.exe\" and process.args : \"?:\\\\Windows\\\\Help\\\\OEM\\\\scripts\\\\checkmui.dll\") and\n\n not (process.name : \"cmd.exe\" and\n process.parent.executable : (\"?:\\\\Windows\\\\System32\\\\oobe\\\\windeploy.exe\",\n \"?:\\\\Program Files (x86)\\\\ossec-agent\\\\wazuh-agent.exe\",\n \"?:\\\\Windows\\\\System32\\\\igfxCUIService.exe\",\n \"?:\\\\Windows\\\\Temp\\\\IE*.tmp\\\\IE*-support\\\\ienrcore.exe\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Execution from Unusual Directory - Command Line v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies process execution from suspicious default Windows directories. This may be abused by adversaries to hide malware in trusted paths.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Execution from Unusual Directory - Command Line\n\nThis rule looks for the execution of scripts from unusual directories. Attackers can use system or application paths to\nhide malware and make the execution less suspicious.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the command line to determine which commands or scripts were executed.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the script using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination\nof parent process executable and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n\nThis is related to the `Process Execution from an Unusual Directory rule`.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.005","name":"Match Legitimate Name or Location","reference":"https://attack.mitre.org/techniques/T1036/005/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"wscript.exe\",\n \"cscript.exe\",\n \"rundll32.exe\",\n \"regsvr32.exe\",\n \"cmstp.exe\",\n \"RegAsm.exe\",\n \"installutil.exe\",\n \"mshta.exe\",\n \"RegSvcs.exe\",\n \"powershell.exe\",\n \"pwsh.exe\",\n \"cmd.exe\") and\n\n /* add suspicious execution paths here */\n process.args : (\"C:\\\\PerfLogs\\\\*\",\n \"C:\\\\Users\\\\Public\\\\*\",\n \"C:\\\\Windows\\\\Tasks\\\\*\",\n \"C:\\\\Intel\\\\*\",\n \"C:\\\\AMD\\\\Temp\\\\*\",\n \"C:\\\\Windows\\\\AppReadiness\\\\*\",\n \"C:\\\\Windows\\\\ServiceState\\\\*\",\n \"C:\\\\Windows\\\\security\\\\*\",\n \"C:\\\\Windows\\\\IdentityCRL\\\\*\",\n \"C:\\\\Windows\\\\Branding\\\\*\",\n \"C:\\\\Windows\\\\csc\\\\*\",\n \"C:\\\\Windows\\\\DigitalLocker\\\\*\",\n \"C:\\\\Windows\\\\en-US\\\\*\",\n \"C:\\\\Windows\\\\wlansvc\\\\*\",\n \"C:\\\\Windows\\\\Prefetch\\\\*\",\n \"C:\\\\Windows\\\\Fonts\\\\*\",\n \"C:\\\\Windows\\\\diagnostics\\\\*\",\n \"C:\\\\Windows\\\\TAPI\\\\*\",\n \"C:\\\\Windows\\\\INF\\\\*\",\n \"C:\\\\Windows\\\\System32\\\\Speech\\\\*\",\n \"C:\\\\windows\\\\tracing\\\\*\",\n \"c:\\\\windows\\\\IME\\\\*\",\n \"c:\\\\Windows\\\\Performance\\\\*\",\n \"c:\\\\windows\\\\intel\\\\*\",\n \"c:\\\\windows\\\\ms\\\\*\",\n \"C:\\\\Windows\\\\dot3svc\\\\*\",\n \"C:\\\\Windows\\\\panther\\\\*\",\n \"C:\\\\Windows\\\\RemotePackages\\\\*\",\n \"C:\\\\Windows\\\\OCR\\\\*\",\n \"C:\\\\Windows\\\\appcompat\\\\*\",\n \"C:\\\\Windows\\\\apppatch\\\\*\",\n \"C:\\\\Windows\\\\addins\\\\*\",\n \"C:\\\\Windows\\\\Setup\\\\*\",\n \"C:\\\\Windows\\\\Help\\\\*\",\n \"C:\\\\Windows\\\\SKB\\\\*\",\n \"C:\\\\Windows\\\\Vss\\\\*\",\n \"C:\\\\Windows\\\\servicing\\\\*\",\n \"C:\\\\Windows\\\\CbsTemp\\\\*\",\n \"C:\\\\Windows\\\\Logs\\\\*\",\n \"C:\\\\Windows\\\\WaaS\\\\*\",\n \"C:\\\\Windows\\\\twain_32\\\\*\",\n \"C:\\\\Windows\\\\ShellExperiences\\\\*\",\n \"C:\\\\Windows\\\\ShellComponents\\\\*\",\n \"C:\\\\Windows\\\\PLA\\\\*\",\n \"C:\\\\Windows\\\\Migration\\\\*\",\n \"C:\\\\Windows\\\\debug\\\\*\",\n \"C:\\\\Windows\\\\Cursors\\\\*\",\n \"C:\\\\Windows\\\\Containers\\\\*\",\n \"C:\\\\Windows\\\\Boot\\\\*\",\n \"C:\\\\Windows\\\\bcastdvr\\\\*\",\n \"C:\\\\Windows\\\\TextInput\\\\*\",\n \"C:\\\\Windows\\\\security\\\\*\",\n \"C:\\\\Windows\\\\schemas\\\\*\",\n \"C:\\\\Windows\\\\SchCache\\\\*\",\n \"C:\\\\Windows\\\\Resources\\\\*\",\n \"C:\\\\Windows\\\\rescache\\\\*\",\n \"C:\\\\Windows\\\\Provisioning\\\\*\",\n \"C:\\\\Windows\\\\PrintDialog\\\\*\",\n \"C:\\\\Windows\\\\PolicyDefinitions\\\\*\",\n \"C:\\\\Windows\\\\media\\\\*\",\n \"C:\\\\Windows\\\\Globalization\\\\*\",\n \"C:\\\\Windows\\\\L2Schemas\\\\*\",\n \"C:\\\\Windows\\\\LiveKernelReports\\\\*\",\n \"C:\\\\Windows\\\\ModemLogs\\\\*\",\n \"C:\\\\Windows\\\\ImmersiveControlPanel\\\\*\",\n \"C:\\\\$Recycle.Bin\\\\*\") and\n\n /* noisy FP patterns */\n\n not process.parent.executable : (\"C:\\\\WINDOWS\\\\System32\\\\DriverStore\\\\FileRepository\\\\*\\\\igfxCUIService*.exe\",\n \"C:\\\\Windows\\\\System32\\\\spacedeskService.exe\",\n \"C:\\\\Program Files\\\\Dell\\\\SupportAssistAgent\\\\SRE\\\\SRE.exe\") and\n not (process.name : \"rundll32.exe\" and\n process.args : (\"uxtheme.dll,#64\",\n \"PRINTUI.DLL,PrintUIEntry\",\n \"?:\\\\Windows\\\\System32\\\\FirewallControlPanel.dll,ShowNotificationDialog\",\n \"?:\\\\WINDOWS\\\\system32\\\\Speech\\\\SpeechUX\\\\sapi.cpl\",\n \"?:\\\\Windows\\\\system32\\\\shell32.dll,OpenAs_RunDLL\")) and\n\n not (process.name : \"cscript.exe\" and process.args : \"?:\\\\WINDOWS\\\\system32\\\\calluxxprovider.vbs\") and\n\n not (process.name : \"cmd.exe\" and process.args : \"?:\\\\WINDOWS\\\\system32\\\\powercfg.exe\" and process.args : \"?:\\\\WINDOWS\\\\inf\\\\PowerPlan.log\") and\n\n not (process.name : \"regsvr32.exe\" and process.args : \"?:\\\\Windows\\\\Help\\\\OEM\\\\scripts\\\\checkmui.dll\") and\n\n not (process.name : \"cmd.exe\" and\n process.parent.executable : (\"?:\\\\Windows\\\\System32\\\\oobe\\\\windeploy.exe\",\n \"?:\\\\Program Files (x86)\\\\ossec-agent\\\\wazuh-agent.exe\",\n \"?:\\\\Windows\\\\System32\\\\igfxCUIService.exe\",\n \"?:\\\\Windows\\\\Temp\\\\IE*.tmp\\\\IE*-support\\\\ienrcore.exe\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"cff92c41-2225-4763-b4ce-6f71e5bda5e6","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/d00f33e7-b57d-4023-9952-2db91b1767c4.json b/fleet-packages/detection-rules-composite/kibana/security_rule/d00f33e7-b57d-4023-9952-2db91b1767c4.json new file mode 100644 index 0000000000000..2701aa5be489d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/d00f33e7-b57d-4023-9952-2db91b1767c4.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"d00f33e7-b57d-4023-9952-2db91b1767c4","versions":[{"name":"Namespace Manipulation Using Unshare v1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious usage of unshare to manipulate system namespaces. Unshare can be utilized to escalate privileges or escape container security boundaries. Threat actors have utilized this binary to allow themselves to escape to the host and access other resources or escalate privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://man7.org/linux/man-pages/man1/unshare.1.html","https://www.crowdstrike.com/blog/cve-2022-0185-kubernetes-container-escape-using-linux-kernel-exploit/"],"tags":["Elastic","Host","Linux","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"language":"eql","query":"process where event.type == \"start\" and event.action == \"exec\" and\nprocess.executable: \"/usr/bin/unshare\" and\nnot process.parent.executable: (\"/usr/bin/udevadm\", \"*/lib/systemd/systemd-udevd\", \"/usr/bin/unshare\") and\nnot process.args : \"/usr/bin/snap\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},{"name":"Namespace Manipulation Using Unshare v1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious usage of unshare to manipulate system namespaces. Unshare can be utilized to escalate privileges or escape container security boundaries. Threat actors have utilized this binary to allow themselves to escape to the host and access other resources or escalate privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://man7.org/linux/man-pages/man1/unshare.1.html","https://www.crowdstrike.com/blog/cve-2022-0185-kubernetes-container-escape-using-linux-kernel-exploit/"],"tags":["Elastic","Host","Linux","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"language":"eql","query":"process where event.type == \"start\" and event.action == \"exec\" and\nprocess.executable: \"/usr/bin/unshare\" and\nnot process.parent.executable: (\"/usr/bin/udevadm\", \"*/lib/systemd/systemd-udevd\", \"/usr/bin/unshare\") and\nnot process.args : \"/usr/bin/snap\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},{"name":"Namespace Manipulation Using Unshare v1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious usage of unshare to manipulate system namespaces. Unshare can be utilized to escalate privileges or escape container security boundaries. Threat actors have utilized this binary to allow themselves to escape to the host and access other resources or escalate privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://man7.org/linux/man-pages/man1/unshare.1.html","https://www.crowdstrike.com/blog/cve-2022-0185-kubernetes-container-escape-using-linux-kernel-exploit/"],"tags":["Elastic","Host","Linux","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"language":"eql","query":"process where event.type == \"start\" and event.action == \"exec\" and\nprocess.executable: \"/usr/bin/unshare\" and\nnot process.parent.executable: (\"/usr/bin/udevadm\", \"*/lib/systemd/systemd-udevd\", \"/usr/bin/unshare\") and\nnot process.args : \"/usr/bin/snap\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]}]},"id":"d00f33e7-b57d-4023-9952-2db91b1767c4","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/d0e159cf-73e9-40d1-a9ed-077e3158a855.json b/fleet-packages/detection-rules-composite/kibana/security_rule/d0e159cf-73e9-40d1-a9ed-077e3158a855.json new file mode 100644 index 0000000000000..fbd23b8ef7955 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/d0e159cf-73e9-40d1-a9ed-077e3158a855.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"d0e159cf-73e9-40d1-a9ed-077e3158a855","versions":[{"name":"Registry Persistence via AppInit DLL v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Attackers may maintain persistence by creating registry keys using AppInit DLLs. AppInit DLLs are loaded by every process using the common library, user32.dll.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.010","name":"AppInit DLLs","reference":"https://attack.mitre.org/techniques/T1546/010/"}]}]}],"language":"eql","query":"registry where\n registry.path : (\"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\AppInit_Dlls\",\n \"HKLM\\\\SOFTWARE\\\\Wow6432Node\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\AppInit_Dlls\") and\n not process.executable : (\"C:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"C:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\",\n \"C:\\\\Program Files\\\\Commvault\\\\ContentStore*\\\\Base\\\\cvd.exe\",\n \"C:\\\\Program Files (x86)\\\\Commvault\\\\ContentStore*\\\\Base\\\\cvd.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Registry Persistence via AppInit DLL v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Attackers may maintain persistence by creating registry keys using AppInit DLLs. AppInit DLLs are loaded by every process using the common library, user32.dll.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.010","name":"AppInit DLLs","reference":"https://attack.mitre.org/techniques/T1546/010/"}]}]}],"language":"eql","query":"registry where\n registry.path : (\"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\AppInit_Dlls\",\n \"HKLM\\\\SOFTWARE\\\\Wow6432Node\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\AppInit_Dlls\") and\n not process.executable : (\"C:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"C:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\",\n \"C:\\\\Program Files\\\\Commvault\\\\ContentStore*\\\\Base\\\\cvd.exe\",\n \"C:\\\\Program Files (x86)\\\\Commvault\\\\ContentStore*\\\\Base\\\\cvd.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Registry Persistence via AppInit DLL v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Attackers may maintain persistence by creating registry keys using AppInit DLLs. AppInit DLLs are loaded by every process using the common library, user32.dll.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.010","name":"AppInit DLLs","reference":"https://attack.mitre.org/techniques/T1546/010/"}]}]}],"language":"eql","query":"registry where\n registry.path : (\"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\AppInit_Dlls\",\n \"HKLM\\\\SOFTWARE\\\\Wow6432Node\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\AppInit_Dlls\") and\n not process.executable : (\"C:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"C:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\",\n \"C:\\\\Program Files\\\\Commvault\\\\ContentStore*\\\\Base\\\\cvd.exe\",\n \"C:\\\\Program Files (x86)\\\\Commvault\\\\ContentStore*\\\\Base\\\\cvd.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"d0e159cf-73e9-40d1-a9ed-077e3158a855","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/d117cbb4-7d56-41b4-b999-bdf8c25648a0.json b/fleet-packages/detection-rules-composite/kibana/security_rule/d117cbb4-7d56-41b4-b999-bdf8c25648a0.json new file mode 100644 index 0000000000000..a99e850143de6 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/d117cbb4-7d56-41b4-b999-bdf8c25648a0.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"d117cbb4-7d56-41b4-b999-bdf8c25648a0","versions":[{"name":"Symbolic Link to Shadow Copy Created v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of symbolic links to a shadow copy. Symbolic links can be used to access files in the shadow copy, including sensitive files such as ntds.dit, System Boot Key and browser offline credentials.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Symbolic Link to Shadow Copy Created\n\nShadow copies are backups or snapshots of an endpoint's files or volumes while they are in use. Adversaries may attempt\nto discover and create symbolic links to these shadow copies in order to copy sensitive information offline. If Active\nDirectory (AD) is in use, often the ntds.dit file is a target as it contains password hashes, but an offline copy is\nneeded to extract these hashes and potentially conduct lateral movement.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Determine if a volume shadow copy was recently created on this endpoint.\n- Review privileges of the end user as this requires administrative access.\n- Verify if the ntds.dit file was successfully copied and determine its copy destination.\n- Investigate for registry SYSTEM file copies made recently or saved via Reg.exe.\n- Investigate recent deletions of volume shadow copies.\n- Identify other files potentially copied from volume shadow copy paths directly.\n\n### False positive analysis\n\n- This rule should cause very few false positives. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- NTDS or SAM Database File Copied - 3bc6deaa-fbd4-433a-ae21-3e892f95624f\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the entire domain or the `krbtgt` user was compromised:\n - Activate your incident response plan for total Active Directory compromise which should include, but not be limited\n to, a password reset (twice) of the `krbtgt` user.\n- Locate and remove static files copied from volume shadow copies.\n- Command-Line tool mklink should require administrative access by default unless in developer mode.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\nEnsure advanced audit policies for Windows are enabled, specifically:\nObject Access policies [Event ID 4656](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4656) (Handle to an Object was Requested)\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nSystem Audit Policies >\nObject Access >\nAudit File System (Success,Failure)\nAudit Handle Manipulation (Success,Failure)\n```\n\nThis event will only trigger if symbolic links are created from a new process spawning cmd.exe or powershell.exe with the correct arguments.\nDirect access to a shell and calling symbolic link creation tools will not generate an event matching this rule.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Legitimate administrative activity related to shadow copies."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/mklink","https://2017.zeronights.org/wp-content/uploads/materials/ZN17_Kheirkhabarov_Hunting_for_Credentials_Dumping_in_Windows_Environment.pdf","https://blog.netwrix.com/2021/11/30/extracting-password-hashes-from-the-ntds-dit-file/","https://www.hackingarticles.in/credential-dumping-ntds-dit/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"process where event.type in (\"start\",\"process_created\") and\n process.pe.original_file_name in (\"Cmd.Exe\",\"PowerShell.EXE\") and\n\n /* Create Symbolic Link to Shadow Copies */\n process.args : (\"*mklink*\", \"*SymbolicLink*\") and process.command_line : (\"*HarddiskVolumeShadowCopy*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"Ensure advanced audit policies for Windows are enabled, specifically:\nObject Access policies Event ID 4656 (Handle to an Object was Requested)\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nSystem Audit Policies >\nObject Access >\nAudit File System (Success,Failure)\nAudit Handle Manipulation (Success,Failure)\n```\n\nThis event will only trigger if symbolic links are created from a new process spawning cmd.exe or powershell.exe with the correct arguments.\nDirect access to a shell and calling symbolic link creation tools will not generate an event matching this rule.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Symbolic Link to Shadow Copy Created v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of symbolic links to a shadow copy. Symbolic links can be used to access files in the shadow copy, including sensitive files such as ntds.dit, System Boot Key and browser offline credentials.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Symbolic Link to Shadow Copy Created\n\nShadow copies are backups or snapshots of an endpoint's files or volumes while they are in use. Adversaries may attempt\nto discover and create symbolic links to these shadow copies in order to copy sensitive information offline. If Active\nDirectory (AD) is in use, often the ntds.dit file is a target as it contains password hashes, but an offline copy is\nneeded to extract these hashes and potentially conduct lateral movement.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Determine if a volume shadow copy was recently created on this endpoint.\n- Review privileges of the end user as this requires administrative access.\n- Verify if the ntds.dit file was successfully copied and determine its copy destination.\n- Investigate for registry SYSTEM file copies made recently or saved via Reg.exe.\n- Investigate recent deletions of volume shadow copies.\n- Identify other files potentially copied from volume shadow copy paths directly.\n\n### False positive analysis\n\n- This rule should cause very few false positives. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- NTDS or SAM Database File Copied - 3bc6deaa-fbd4-433a-ae21-3e892f95624f\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the entire domain or the `krbtgt` user was compromised:\n - Activate your incident response plan for total Active Directory compromise which should include, but not be limited\n to, a password reset (twice) of the `krbtgt` user.\n- Locate and remove static files copied from volume shadow copies.\n- Command-Line tool mklink should require administrative access by default unless in developer mode.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\nEnsure advanced audit policies for Windows are enabled, specifically:\nObject Access policies [Event ID 4656](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4656) (Handle to an Object was Requested)\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nSystem Audit Policies >\nObject Access >\nAudit File System (Success,Failure)\nAudit Handle Manipulation (Success,Failure)\n```\n\nThis event will only trigger if symbolic links are created from a new process spawning cmd.exe or powershell.exe with the correct arguments.\nDirect access to a shell and calling symbolic link creation tools will not generate an event matching this rule.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Legitimate administrative activity related to shadow copies."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/mklink","https://2017.zeronights.org/wp-content/uploads/materials/ZN17_Kheirkhabarov_Hunting_for_Credentials_Dumping_in_Windows_Environment.pdf","https://blog.netwrix.com/2021/11/30/extracting-password-hashes-from-the-ntds-dit-file/","https://www.hackingarticles.in/credential-dumping-ntds-dit/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"process where event.type in (\"start\",\"process_created\") and\n process.pe.original_file_name in (\"Cmd.Exe\",\"PowerShell.EXE\") and\n\n /* Create Symbolic Link to Shadow Copies */\n process.args : (\"*mklink*\", \"*SymbolicLink*\") and process.command_line : (\"*HarddiskVolumeShadowCopy*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"Ensure advanced audit policies for Windows are enabled, specifically:\nObject Access policies Event ID 4656 (Handle to an Object was Requested)\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nSystem Audit Policies >\nObject Access >\nAudit File System (Success,Failure)\nAudit Handle Manipulation (Success,Failure)\n```\n\nThis event will only trigger if symbolic links are created from a new process spawning cmd.exe or powershell.exe with the correct arguments.\nDirect access to a shell and calling symbolic link creation tools will not generate an event matching this rule.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Symbolic Link to Shadow Copy Created v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of symbolic links to a shadow copy. Symbolic links can be used to access files in the shadow copy, including sensitive files such as ntds.dit, System Boot Key and browser offline credentials.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Symbolic Link to Shadow Copy Created\n\nShadow copies are backups or snapshots of an endpoint's files or volumes while they are in use. Adversaries may attempt\nto discover and create symbolic links to these shadow copies in order to copy sensitive information offline. If Active\nDirectory (AD) is in use, often the ntds.dit file is a target as it contains password hashes, but an offline copy is\nneeded to extract these hashes and potentially conduct lateral movement.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Determine if a volume shadow copy was recently created on this endpoint.\n- Review privileges of the end user as this requires administrative access.\n- Verify if the ntds.dit file was successfully copied and determine its copy destination.\n- Investigate for registry SYSTEM file copies made recently or saved via Reg.exe.\n- Investigate recent deletions of volume shadow copies.\n- Identify other files potentially copied from volume shadow copy paths directly.\n\n### False positive analysis\n\n- This rule should cause very few false positives. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- NTDS or SAM Database File Copied - 3bc6deaa-fbd4-433a-ae21-3e892f95624f\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the entire domain or the `krbtgt` user was compromised:\n - Activate your incident response plan for total Active Directory compromise which should include, but not be limited\n to, a password reset (twice) of the `krbtgt` user.\n- Locate and remove static files copied from volume shadow copies.\n- Command-Line tool mklink should require administrative access by default unless in developer mode.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\nEnsure advanced audit policies for Windows are enabled, specifically:\nObject Access policies [Event ID 4656](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4656) (Handle to an Object was Requested)\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nSystem Audit Policies >\nObject Access >\nAudit File System (Success,Failure)\nAudit Handle Manipulation (Success,Failure)\n```\n\nThis event will only trigger if symbolic links are created from a new process spawning cmd.exe or powershell.exe with the correct arguments.\nDirect access to a shell and calling symbolic link creation tools will not generate an event matching this rule.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Legitimate administrative activity related to shadow copies."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/mklink","https://2017.zeronights.org/wp-content/uploads/materials/ZN17_Kheirkhabarov_Hunting_for_Credentials_Dumping_in_Windows_Environment.pdf","https://blog.netwrix.com/2021/11/30/extracting-password-hashes-from-the-ntds-dit-file/","https://www.hackingarticles.in/credential-dumping-ntds-dit/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"process where event.type in (\"start\",\"process_created\") and\n process.pe.original_file_name in (\"Cmd.Exe\",\"PowerShell.EXE\") and\n\n /* Create Symbolic Link to Shadow Copies */\n process.args : (\"*mklink*\", \"*SymbolicLink*\") and process.command_line : (\"*HarddiskVolumeShadowCopy*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"Ensure advanced audit policies for Windows are enabled, specifically:\nObject Access policies Event ID 4656 (Handle to an Object was Requested)\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nSystem Audit Policies >\nObject Access >\nAudit File System (Success,Failure)\nAudit Handle Manipulation (Success,Failure)\n```\n\nThis event will only trigger if symbolic links are created from a new process spawning cmd.exe or powershell.exe with the correct arguments.\nDirect access to a shell and calling symbolic link creation tools will not generate an event matching this rule.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"d117cbb4-7d56-41b4-b999-bdf8c25648a0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/d22a85c6-d2ad-4cc4-bf7b-54787473669a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/d22a85c6-d2ad-4cc4-bf7b-54787473669a.json new file mode 100644 index 0000000000000..0eddc07041d19 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/d22a85c6-d2ad-4cc4-bf7b-54787473669a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"d22a85c6-d2ad-4cc4-bf7b-54787473669a","versions":[{"name":"Potential Microsoft Office Sandbox Evasion v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a suspicious zip file prepended with special characters. Sandboxed Microsoft Office applications on macOS are allowed to write files that start with special characters, which can be combined with an AutoStart location to achieve sandbox evasion.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://i.blackhat.com/USA-20/Wednesday/us-20-Wardle-Office-Drama-On-macOS.pdf","https://www.mdsec.co.uk/2018/08/escaping-the-sandbox-microsoft-office-on-macos/","https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1497","name":"Virtualization/Sandbox Evasion","reference":"https://attack.mitre.org/techniques/T1497/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and not event.type:deletion and file.name:~$*.zip and host.os.type:macos\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"host.os.type","type":"keyword"}]},{"name":"Potential Microsoft Office Sandbox Evasion v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a suspicious zip file prepended with special characters. Sandboxed Microsoft Office applications on macOS are allowed to write files that start with special characters, which can be combined with an AutoStart location to achieve sandbox evasion.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://i.blackhat.com/USA-20/Wednesday/us-20-Wardle-Office-Drama-On-macOS.pdf","https://www.mdsec.co.uk/2018/08/escaping-the-sandbox-microsoft-office-on-macos/","https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1497","name":"Virtualization/Sandbox Evasion","reference":"https://attack.mitre.org/techniques/T1497/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and not event.type:deletion and file.name:~$*.zip and host.os.type:macos\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"host.os.type","type":"keyword"}]},{"name":"Potential Microsoft Office Sandbox Evasion v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a suspicious zip file prepended with special characters. Sandboxed Microsoft Office applications on macOS are allowed to write files that start with special characters, which can be combined with an AutoStart location to achieve sandbox evasion.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://i.blackhat.com/USA-20/Wednesday/us-20-Wardle-Office-Drama-On-macOS.pdf","https://www.mdsec.co.uk/2018/08/escaping-the-sandbox-microsoft-office-on-macos/","https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1497","name":"Virtualization/Sandbox Evasion","reference":"https://attack.mitre.org/techniques/T1497/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and not event.type:deletion and file.name:~$*.zip and host.os.type:macos\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"host.os.type","type":"keyword"}]}]},"id":"d22a85c6-d2ad-4cc4-bf7b-54787473669a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/d31f183a-e5b1-451b-8534-ba62bca0b404.json b/fleet-packages/detection-rules-composite/kibana/security_rule/d31f183a-e5b1-451b-8534-ba62bca0b404.json new file mode 100644 index 0000000000000..59ebba261fddf --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/d31f183a-e5b1-451b-8534-ba62bca0b404.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"d31f183a-e5b1-451b-8534-ba62bca0b404","versions":[{"name":"Disabling User Account Control via Registry Modification v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"User Account Control (UAC) can help mitigate the impact of malware on Windows hosts. With UAC, apps and tasks always run in the security context of a non-administrator account, unless an administrator specifically authorizes administrator-level access to the system. This rule identifies registry value changes to bypass User Access Control (UAC) protection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Disabling User Account Control via Registry Modification\n\nWindows User Account Control (UAC) allows a program to elevate its privileges (tracked as low to high integrity levels)\nto perform a task under administrator-level permissions, possibly by prompting the user for confirmation.\nUAC can deny an operation under high-integrity enforcement, or allow the user to perform the action if they are in the\nlocal administrators group and enter an administrator password when prompted.\n\nFor more information about the UAC and how it works, check the [official Microsoft docs page](https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/how-user-account-control-works).\n\nAttackers may disable UAC to execute code directly in high integrity. This rule identifies registry value changes to\nbypass the UAC protection.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behaviors in the alert timeframe.\n- Investigate abnormal behaviors observed by the subject process such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Analyze non-system processes executed with high integrity after UAC was disabled for unknown or suspicious processes.\n- Retrieve the suspicious processes' executables and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled tasks creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Restore UAC settings to the desired state.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.greyhathacker.net/?p=796","https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/user-account-control-group-policy-and-registry-key-settings","https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/user-account-control-overview"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"registry where event.type == \"change\" and\n registry.path :\n (\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\EnableLUA\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\ConsentPromptBehaviorAdmin\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\PromptOnSecureDesktop\"\n ) and\n registry.data.strings : (\"0\", \"0x00000000\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Disabling User Account Control via Registry Modification v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"User Account Control (UAC) can help mitigate the impact of malware on Windows hosts. With UAC, apps and tasks always run in the security context of a non-administrator account, unless an administrator specifically authorizes administrator-level access to the system. This rule identifies registry value changes to bypass User Access Control (UAC) protection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Disabling User Account Control via Registry Modification\n\nWindows User Account Control (UAC) allows a program to elevate its privileges (tracked as low to high integrity levels)\nto perform a task under administrator-level permissions, possibly by prompting the user for confirmation.\nUAC can deny an operation under high-integrity enforcement, or allow the user to perform the action if they are in the\nlocal administrators group and enter an administrator password when prompted.\n\nFor more information about the UAC and how it works, check the [official Microsoft docs page](https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/how-user-account-control-works).\n\nAttackers may disable UAC to execute code directly in high integrity. This rule identifies registry value changes to\nbypass the UAC protection.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behaviors in the alert timeframe.\n- Investigate abnormal behaviors observed by the subject process such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Analyze non-system processes executed with high integrity after UAC was disabled for unknown or suspicious processes.\n- Retrieve the suspicious processes' executables and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled tasks creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Restore UAC settings to the desired state.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.greyhathacker.net/?p=796","https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/user-account-control-group-policy-and-registry-key-settings","https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/user-account-control-overview"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"registry where event.type == \"change\" and\n registry.path :\n (\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\EnableLUA\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\ConsentPromptBehaviorAdmin\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\PromptOnSecureDesktop\"\n ) and\n registry.data.strings : (\"0\", \"0x00000000\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Disabling User Account Control via Registry Modification v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"User Account Control (UAC) can help mitigate the impact of malware on Windows hosts. With UAC, apps and tasks always run in the security context of a non-administrator account, unless an administrator specifically authorizes administrator-level access to the system. This rule identifies registry value changes to bypass User Access Control (UAC) protection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Disabling User Account Control via Registry Modification\n\nWindows User Account Control (UAC) allows a program to elevate its privileges (tracked as low to high integrity levels)\nto perform a task under administrator-level permissions, possibly by prompting the user for confirmation.\nUAC can deny an operation under high-integrity enforcement, or allow the user to perform the action if they are in the\nlocal administrators group and enter an administrator password when prompted.\n\nFor more information about the UAC and how it works, check the [official Microsoft docs page](https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/how-user-account-control-works).\n\nAttackers may disable UAC to execute code directly in high integrity. This rule identifies registry value changes to\nbypass the UAC protection.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behaviors in the alert timeframe.\n- Investigate abnormal behaviors observed by the subject process such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Analyze non-system processes executed with high integrity after UAC was disabled for unknown or suspicious processes.\n- Retrieve the suspicious processes' executables and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled tasks creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Restore UAC settings to the desired state.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.greyhathacker.net/?p=796","https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/user-account-control-group-policy-and-registry-key-settings","https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/user-account-control-overview"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"registry where event.type == \"change\" and\n registry.path :\n (\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\EnableLUA\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\ConsentPromptBehaviorAdmin\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\PromptOnSecureDesktop\"\n ) and\n registry.data.strings : (\"0\", \"0x00000000\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"d31f183a-e5b1-451b-8534-ba62bca0b404","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/d331bbe2-6db4-4941-80a5-8270db72eb61.json b/fleet-packages/detection-rules-composite/kibana/security_rule/d331bbe2-6db4-4941-80a5-8270db72eb61.json new file mode 100644 index 0000000000000..32811d0416915 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/d331bbe2-6db4-4941-80a5-8270db72eb61.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"d331bbe2-6db4-4941-80a5-8270db72eb61","versions":[{"name":"Clearing Windows Event Logs v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to clear or disable Windows event log stores using Windows wevetutil command. This is often done by attackers in an attempt to evade detection or destroy forensic evidence on a system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Clearing Windows Event Logs\n\nWindows event logs are a fundamental data source for security monitoring, forensics, and incident response. Adversaries\ncan tamper, clear, and delete this data to break SIEM detections, cover their tracks, and slow down incident response.\n\nThis rule looks for the execution of the `wevtutil.exe` utility or the `Clear-EventLog` cmdlet to clear event logs.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n - Verify if any other anti-forensics behaviors were observed.\n- Investigate the event logs prior to the action for suspicious behaviors that an attacker may be trying to cover up.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity\nand there are justifications for this action.\n- Analyze whether the cleared event log is pertinent to security and general monitoring. Administrators can clear\nnon-relevant event logs using this mechanism. If this activity is expected and noisy in your environment, consider\nadding exceptions — preferably with a combination of user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n - This activity is potentially done after the adversary achieves its objectives on the host. Ensure that previous\n actions, if any, are investigated accordingly with their response playbooks.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.001","name":"Clear Windows Event Logs","reference":"https://attack.mitre.org/techniques/T1070/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (\n (process.name : \"wevtutil.exe\" or process.pe.original_file_name == \"wevtutil.exe\") and\n process.args : (\"/e:false\", \"cl\", \"clear-log\")\n ) or\n (\n process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and\n process.args : \"Clear-EventLog\"\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Clearing Windows Event Logs v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to clear or disable Windows event log stores using Windows wevetutil command. This is often done by attackers in an attempt to evade detection or destroy forensic evidence on a system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Clearing Windows Event Logs\n\nWindows event logs are a fundamental data source for security monitoring, forensics, and incident response. Adversaries\ncan tamper, clear, and delete this data to break SIEM detections, cover their tracks, and slow down incident response.\n\nThis rule looks for the execution of the `wevtutil.exe` utility or the `Clear-EventLog` cmdlet to clear event logs.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n - Verify if any other anti-forensics behaviors were observed.\n- Investigate the event logs prior to the action for suspicious behaviors that an attacker may be trying to cover up.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity\nand there are justifications for this action.\n- Analyze whether the cleared event log is pertinent to security and general monitoring. Administrators can clear\nnon-relevant event logs using this mechanism. If this activity is expected and noisy in your environment, consider\nadding exceptions — preferably with a combination of user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n - This activity is potentially done after the adversary achieves its objectives on the host. Ensure that previous\n actions, if any, are investigated accordingly with their response playbooks.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.001","name":"Clear Windows Event Logs","reference":"https://attack.mitre.org/techniques/T1070/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (\n (process.name : \"wevtutil.exe\" or process.pe.original_file_name == \"wevtutil.exe\") and\n process.args : (\"/e:false\", \"cl\", \"clear-log\")\n ) or\n (\n process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and\n process.args : \"Clear-EventLog\"\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Clearing Windows Event Logs v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to clear or disable Windows event log stores using Windows wevetutil command. This is often done by attackers in an attempt to evade detection or destroy forensic evidence on a system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Clearing Windows Event Logs\n\nWindows event logs are a fundamental data source for security monitoring, forensics, and incident response. Adversaries\ncan tamper, clear, and delete this data to break SIEM detections, cover their tracks, and slow down incident response.\n\nThis rule looks for the execution of the `wevtutil.exe` utility or the `Clear-EventLog` cmdlet to clear event logs.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n - Verify if any other anti-forensics behaviors were observed.\n- Investigate the event logs prior to the action for suspicious behaviors that an attacker may be trying to cover up.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity\nand there are justifications for this action.\n- Analyze whether the cleared event log is pertinent to security and general monitoring. Administrators can clear\nnon-relevant event logs using this mechanism. If this activity is expected and noisy in your environment, consider\nadding exceptions — preferably with a combination of user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n - This activity is potentially done after the adversary achieves its objectives on the host. Ensure that previous\n actions, if any, are investigated accordingly with their response playbooks.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.001","name":"Clear Windows Event Logs","reference":"https://attack.mitre.org/techniques/T1070/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (\n (process.name : \"wevtutil.exe\" or process.pe.original_file_name == \"wevtutil.exe\") and\n process.args : (\"/e:false\", \"cl\", \"clear-log\")\n ) or\n (\n process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and\n process.args : \"Clear-EventLog\"\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"d331bbe2-6db4-4941-80a5-8270db72eb61","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/d33ea3bf-9a11-463e-bd46-f648f2a0f4b1.json b/fleet-packages/detection-rules-composite/kibana/security_rule/d33ea3bf-9a11-463e-bd46-f648f2a0f4b1.json new file mode 100644 index 0000000000000..ec62cf529c994 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/d33ea3bf-9a11-463e-bd46-f648f2a0f4b1.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"d33ea3bf-9a11-463e-bd46-f648f2a0f4b1","versions":[{"name":"Remote Windows Service Installed v1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a network logon followed by Windows service creation with same LogonId. This could be indicative of lateral movement, but will be noisy if commonly done by administrators.\"","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"sequence by winlog.logon.id, host.id with maxspan=1m\n[authentication where event.action == \"logged-in\" and winlog.logon.type : \"Network\" and\nevent.outcome==\"success\" and source.ip != null and source.ip != \"127.0.0.1\" and source.ip != \"::1\"]\n[iam where event.action == \"service-installed\" and\n not winlog.event_data.SubjectLogonId : \"0x3e7\" and\n not winlog.event_data.ServiceFileName :\n (\"?:\\\\Windows\\\\ADCR_Agent\\\\adcrsvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\VSSVC.exe\",\n \"?:\\\\Windows\\\\servicing\\\\TrustedInstaller.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Windows\\\\PSEXESVC.EXE\",\n \"?:\\\\Windows\\\\System32\\\\sppsvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\wbem\\\\WmiApSrv.exe\",\n \"?:\\\\WINDOWS\\\\RemoteAuditService.exe\",\n \"?:\\\\Windows\\\\VeeamVssSupport\\\\VeeamGuestHelper.exe\",\n \"?:\\\\Windows\\\\VeeamLogShipper\\\\VeeamLogShipper.exe\",\n \"?:\\\\Windows\\\\CAInvokerService.exe\",\n \"?:\\\\Windows\\\\System32\\\\upfc.exe\",\n \"?:\\\\Windows\\\\AdminArsenal\\\\PDQ*.exe\",\n \"?:\\\\Windows\\\\System32\\\\vds.exe\",\n \"?:\\\\Windows\\\\Veeam\\\\Backup\\\\VeeamDeploymentSvc.exe\",\n \"?:\\\\Windows\\\\ProPatches\\\\Scheduler\\\\STSchedEx.exe\",\n \"?:\\\\Windows\\\\System32\\\\certsrv.exe\",\n \"?:\\\\Windows\\\\eset-remote-install-service.exe\",\n \"?:\\\\Pella Corporation\\\\Pella Order Management\\\\GPAutoSvc.exe\",\n \"?:\\\\Pella Corporation\\\\OSCToGPAutoService\\\\OSCToGPAutoSvc.exe\",\n \"?:\\\\Pella Corporation\\\\Pella Order Management\\\\GPAutoSvc.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\NwxExeSvc\\\\NwxExeSvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\taskhostex.exe\")]\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":false,"name":"winlog.event_data.ServiceFileName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.logon.id","type":"unknown"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}]},{"name":"Remote Windows Service Installed v1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a network logon followed by Windows service creation with same LogonId. This could be indicative of lateral movement, but will be noisy if commonly done by administrators.\"","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"sequence by winlog.logon.id, host.id with maxspan=1m\n[authentication where event.action == \"logged-in\" and winlog.logon.type : \"Network\" and\nevent.outcome==\"success\" and source.ip != null and source.ip != \"127.0.0.1\" and source.ip != \"::1\"]\n[iam where event.action == \"service-installed\" and\n not winlog.event_data.SubjectLogonId : \"0x3e7\" and\n not winlog.event_data.ServiceFileName :\n (\"?:\\\\Windows\\\\ADCR_Agent\\\\adcrsvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\VSSVC.exe\",\n \"?:\\\\Windows\\\\servicing\\\\TrustedInstaller.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Windows\\\\PSEXESVC.EXE\",\n \"?:\\\\Windows\\\\System32\\\\sppsvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\wbem\\\\WmiApSrv.exe\",\n \"?:\\\\WINDOWS\\\\RemoteAuditService.exe\",\n \"?:\\\\Windows\\\\VeeamVssSupport\\\\VeeamGuestHelper.exe\",\n \"?:\\\\Windows\\\\VeeamLogShipper\\\\VeeamLogShipper.exe\",\n \"?:\\\\Windows\\\\CAInvokerService.exe\",\n \"?:\\\\Windows\\\\System32\\\\upfc.exe\",\n \"?:\\\\Windows\\\\AdminArsenal\\\\PDQ*.exe\",\n \"?:\\\\Windows\\\\System32\\\\vds.exe\",\n \"?:\\\\Windows\\\\Veeam\\\\Backup\\\\VeeamDeploymentSvc.exe\",\n \"?:\\\\Windows\\\\ProPatches\\\\Scheduler\\\\STSchedEx.exe\",\n \"?:\\\\Windows\\\\System32\\\\certsrv.exe\",\n \"?:\\\\Windows\\\\eset-remote-install-service.exe\",\n \"?:\\\\Pella Corporation\\\\Pella Order Management\\\\GPAutoSvc.exe\",\n \"?:\\\\Pella Corporation\\\\OSCToGPAutoService\\\\OSCToGPAutoSvc.exe\",\n \"?:\\\\Pella Corporation\\\\Pella Order Management\\\\GPAutoSvc.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\NwxExeSvc\\\\NwxExeSvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\taskhostex.exe\")]\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":false,"name":"winlog.event_data.ServiceFileName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.logon.id","type":"unknown"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}]},{"name":"Remote Windows Service Installed v1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a network logon followed by Windows service creation with same LogonId. This could be indicative of lateral movement, but will be noisy if commonly done by administrators.\"","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"sequence by winlog.logon.id, host.id with maxspan=1m\n[authentication where event.action == \"logged-in\" and winlog.logon.type : \"Network\" and\nevent.outcome==\"success\" and source.ip != null and source.ip != \"127.0.0.1\" and source.ip != \"::1\"]\n[iam where event.action == \"service-installed\" and\n not winlog.event_data.SubjectLogonId : \"0x3e7\" and\n not winlog.event_data.ServiceFileName :\n (\"?:\\\\Windows\\\\ADCR_Agent\\\\adcrsvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\VSSVC.exe\",\n \"?:\\\\Windows\\\\servicing\\\\TrustedInstaller.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Windows\\\\PSEXESVC.EXE\",\n \"?:\\\\Windows\\\\System32\\\\sppsvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\wbem\\\\WmiApSrv.exe\",\n \"?:\\\\WINDOWS\\\\RemoteAuditService.exe\",\n \"?:\\\\Windows\\\\VeeamVssSupport\\\\VeeamGuestHelper.exe\",\n \"?:\\\\Windows\\\\VeeamLogShipper\\\\VeeamLogShipper.exe\",\n \"?:\\\\Windows\\\\CAInvokerService.exe\",\n \"?:\\\\Windows\\\\System32\\\\upfc.exe\",\n \"?:\\\\Windows\\\\AdminArsenal\\\\PDQ*.exe\",\n \"?:\\\\Windows\\\\System32\\\\vds.exe\",\n \"?:\\\\Windows\\\\Veeam\\\\Backup\\\\VeeamDeploymentSvc.exe\",\n \"?:\\\\Windows\\\\ProPatches\\\\Scheduler\\\\STSchedEx.exe\",\n \"?:\\\\Windows\\\\System32\\\\certsrv.exe\",\n \"?:\\\\Windows\\\\eset-remote-install-service.exe\",\n \"?:\\\\Pella Corporation\\\\Pella Order Management\\\\GPAutoSvc.exe\",\n \"?:\\\\Pella Corporation\\\\OSCToGPAutoService\\\\OSCToGPAutoSvc.exe\",\n \"?:\\\\Pella Corporation\\\\Pella Order Management\\\\GPAutoSvc.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\NwxExeSvc\\\\NwxExeSvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\taskhostex.exe\")]\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":false,"name":"winlog.event_data.ServiceFileName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.logon.id","type":"unknown"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}]}]},"id":"d33ea3bf-9a11-463e-bd46-f648f2a0f4b1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/d461fac0-43e8-49e2-85ea-3a58fe120b4f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/d461fac0-43e8-49e2-85ea-3a58fe120b4f.json new file mode 100644 index 0000000000000..07eb0916a93ba --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/d461fac0-43e8-49e2-85ea-3a58fe120b4f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"d461fac0-43e8-49e2-85ea-3a58fe120b4f","versions":[{"name":"Shell Execution via Apple Scripting v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of the shell process (sh) via scripting (JXA or AppleScript). Adversaries may use the doShellScript functionality in JXA or do shell script in AppleScript to execute system commands.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://developer.apple.com/library/archive/technotes/tn2065/_index.html","https://objectivebythesea.com/v2/talks/OBTS_v2_Thomas.pdf"],"tags":["Elastic","Host","macOS","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"sequence by host.id with maxspan=5s\n [process where event.type in (\"start\", \"process_started\", \"info\") and process.name == \"osascript\"] by process.pid\n [process where event.type in (\"start\", \"process_started\") and process.name == \"sh\" and process.args == \"-c\"] by process.parent.pid\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.pid","type":"long"},{"ecs":true,"name":"process.pid","type":"long"}]},{"name":"Shell Execution via Apple Scripting v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of the shell process (sh) via scripting (JXA or AppleScript). Adversaries may use the doShellScript functionality in JXA or do shell script in AppleScript to execute system commands.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://developer.apple.com/library/archive/technotes/tn2065/_index.html","https://objectivebythesea.com/v2/talks/OBTS_v2_Thomas.pdf"],"tags":["Elastic","Host","macOS","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"sequence by host.id with maxspan=5s\n [process where event.type in (\"start\", \"process_started\", \"info\") and process.name == \"osascript\"] by process.pid\n [process where event.type in (\"start\", \"process_started\") and process.name == \"sh\" and process.args == \"-c\"] by process.parent.pid\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.pid","type":"long"},{"ecs":true,"name":"process.pid","type":"long"}]},{"name":"Shell Execution via Apple Scripting v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of the shell process (sh) via scripting (JXA or AppleScript). Adversaries may use the doShellScript functionality in JXA or do shell script in AppleScript to execute system commands.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://developer.apple.com/library/archive/technotes/tn2065/_index.html","https://objectivebythesea.com/v2/talks/OBTS_v2_Thomas.pdf"],"tags":["Elastic","Host","macOS","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"sequence by host.id with maxspan=5s\n [process where event.type in (\"start\", \"process_started\", \"info\") and process.name == \"osascript\"] by process.pid\n [process where event.type in (\"start\", \"process_started\") and process.name == \"sh\" and process.args == \"-c\"] by process.parent.pid\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.pid","type":"long"},{"ecs":true,"name":"process.pid","type":"long"}]}]},"id":"d461fac0-43e8-49e2-85ea-3a58fe120b4f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/d48e1c13-4aca-4d1f-a7b1-a9161c0ad86f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/d48e1c13-4aca-4d1f-a7b1-a9161c0ad86f.json new file mode 100644 index 0000000000000..a33e9b7d80e50 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/d48e1c13-4aca-4d1f-a7b1-a9161c0ad86f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"d48e1c13-4aca-4d1f-a7b1-a9161c0ad86f","versions":[{"name":"Attempt to Delete an Okta Application v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to delete an Okta application. An adversary may attempt to modify, deactivate, or delete an Okta application in order to weaken an organization's security controls or disrupt their business operations.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if your organization's Okta applications are regularly deleted and the behavior is expected."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:application.lifecycle.delete\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Delete an Okta Application v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to delete an Okta application. An adversary may attempt to modify, deactivate, or delete an Okta application in order to weaken an organization's security controls or disrupt their business operations.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if your organization's Okta applications are regularly deleted and the behavior is expected."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:application.lifecycle.delete\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Delete an Okta Application v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to delete an Okta application. An adversary may attempt to modify, deactivate, or delete an Okta application in order to weaken an organization's security controls or disrupt their business operations.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if your organization's Okta applications are regularly deleted and the behavior is expected."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:application.lifecycle.delete\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"d48e1c13-4aca-4d1f-a7b1-a9161c0ad86f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/d49cc73f-7a16-4def-89ce-9fc7127d7820.json b/fleet-packages/detection-rules-composite/kibana/security_rule/d49cc73f-7a16-4def-89ce-9fc7127d7820.json new file mode 100644 index 0000000000000..d584a8efc685f --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/d49cc73f-7a16-4def-89ce-9fc7127d7820.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"d49cc73f-7a16-4def-89ce-9fc7127d7820","versions":[{"name":"Web Application Suspicious Activity: sqlmap User Agent v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This is an example of how to detect an unwanted web client user agent. This search matches the user agent for sqlmap 1.3.11, which is a popular FOSS tool for testing web applications for SQL injection vulnerabilities.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This rule does not indicate that a SQL injection attack occurred, only that the `sqlmap` tool was used. Security scans and tests may result in these errors. If the source is not an authorized security tester, this is generally suspicious or malicious activity."],"references":["http://sqlmap.org/"],"tags":["Elastic","APM"],"type":"query","index":["apm-*-transaction*","traces-apm*"],"language":"kuery","query":"user_agent.original:\"sqlmap/1.3.11#stable (http://sqlmap.org)\"\n","required_fields":[{"ecs":true,"name":"user_agent.original","type":"keyword"}]},{"name":"Web Application Suspicious Activity: sqlmap User Agent v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This is an example of how to detect an unwanted web client user agent. This search matches the user agent for sqlmap 1.3.11, which is a popular FOSS tool for testing web applications for SQL injection vulnerabilities.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This rule does not indicate that a SQL injection attack occurred, only that the `sqlmap` tool was used. Security scans and tests may result in these errors. If the source is not an authorized security tester, this is generally suspicious or malicious activity."],"references":["http://sqlmap.org/"],"tags":["Elastic","APM"],"type":"query","index":["apm-*-transaction*","traces-apm*"],"language":"kuery","query":"user_agent.original:\"sqlmap/1.3.11#stable (http://sqlmap.org)\"\n","required_fields":[{"ecs":true,"name":"user_agent.original","type":"keyword"}]},{"name":"Web Application Suspicious Activity: sqlmap User Agent v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This is an example of how to detect an unwanted web client user agent. This search matches the user agent for sqlmap 1.3.11, which is a popular FOSS tool for testing web applications for SQL injection vulnerabilities.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This rule does not indicate that a SQL injection attack occurred, only that the `sqlmap` tool was used. Security scans and tests may result in these errors. If the source is not an authorized security tester, this is generally suspicious or malicious activity."],"references":["http://sqlmap.org/"],"tags":["Elastic","APM"],"type":"query","index":["apm-*-transaction*","traces-apm*"],"language":"kuery","query":"user_agent.original:\"sqlmap/1.3.11#stable (http://sqlmap.org)\"\n","required_fields":[{"ecs":true,"name":"user_agent.original","type":"keyword"}]}]},"id":"d49cc73f-7a16-4def-89ce-9fc7127d7820","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/d4af3a06-1e0a-48ec-b96a-faf2309fae46.json b/fleet-packages/detection-rules-composite/kibana/security_rule/d4af3a06-1e0a-48ec-b96a-faf2309fae46.json new file mode 100644 index 0000000000000..88f829811e2fb --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/d4af3a06-1e0a-48ec-b96a-faf2309fae46.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"d4af3a06-1e0a-48ec-b96a-faf2309fae46","versions":[{"name":"Unusual Linux System Information Discovery Activity v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for commands related to system information discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used to engage in system information discovery in order to gather detailed information about system configuration and software versions. This may be a precursor to selection of a persistence mechanism or a method of privilege elevation.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user command activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"anomaly_threshold":75,"machine_learning_job_id":["v3_linux_system_information_discovery"],"type":"machine_learning"},{"name":"Unusual Linux System Information Discovery Activity v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for commands related to system information discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used to engage in system information discovery in order to gather detailed information about system configuration and software versions. This may be a precursor to selection of a persistence mechanism or a method of privilege elevation.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user command activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"anomaly_threshold":75,"machine_learning_job_id":["v3_linux_system_information_discovery"],"type":"machine_learning"},{"name":"Unusual Linux System Information Discovery Activity v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for commands related to system information discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used to engage in system information discovery in order to gather detailed information about system configuration and software versions. This may be a precursor to selection of a persistence mechanism or a method of privilege elevation.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user command activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"anomaly_threshold":75,"machine_learning_job_id":["v3_linux_system_information_discovery"],"type":"machine_learning"}]},"id":"d4af3a06-1e0a-48ec-b96a-faf2309fae46","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/d4b73fa0-9d43-465e-b8bf-50230da6718b.json b/fleet-packages/detection-rules-composite/kibana/security_rule/d4b73fa0-9d43-465e-b8bf-50230da6718b.json new file mode 100644 index 0000000000000..d0141c3b6e0f6 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/d4b73fa0-9d43-465e-b8bf-50230da6718b.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"d4b73fa0-9d43-465e-b8bf-50230da6718b","versions":[{"name":"Unusual Source IP for a User to Logon from v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a user logging in from an IP address that is unusual for the user. This can be due to credentialed access via a compromised account when the user and the threat actor are in different locations. An unusual source IP address for a username could also be due to lateral movement when a compromised account is used to pivot between hosts.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Business travelers who roam to new locations may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_rare_source_ip_for_a_user","type":"machine_learning"},{"name":"Unusual Source IP for a User to Logon from v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a user logging in from an IP address that is unusual for the user. This can be due to credentialed access via a compromised account when the user and the threat actor are in different locations. An unusual source IP address for a username could also be due to lateral movement when a compromised account is used to pivot between hosts.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Business travelers who roam to new locations may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_rare_source_ip_for_a_user","type":"machine_learning"},{"name":"Unusual Source IP for a User to Logon from v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a user logging in from an IP address that is unusual for the user. This can be due to credentialed access via a compromised account when the user and the threat actor are in different locations. An unusual source IP address for a username could also be due to lateral movement when a compromised account is used to pivot between hosts.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Business travelers who roam to new locations may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_rare_source_ip_for_a_user","type":"machine_learning"}]},"id":"d4b73fa0-9d43-465e-b8bf-50230da6718b","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/d563aaba-2e72-462b-8658-3e5ea22db3a6.json b/fleet-packages/detection-rules-composite/kibana/security_rule/d563aaba-2e72-462b-8658-3e5ea22db3a6.json new file mode 100644 index 0000000000000..a76004551bbd7 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/d563aaba-2e72-462b-8658-3e5ea22db3a6.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"d563aaba-2e72-462b-8658-3e5ea22db3a6","versions":[{"name":"Privilege Escalation via Windir Environment Variable v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a privilege escalation attempt via a rogue Windows directory (Windir) environment variable. This is a known primitive that is often combined with other vulnerabilities to elevate privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.tiraniddo.dev/2017/05/exploiting-environment-variables-in.html"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.007","name":"Path Interception by PATH Environment Variable","reference":"https://attack.mitre.org/techniques/T1574/007/"}]}]}],"language":"eql","query":"registry where registry.path : (\"HKEY_USERS\\\\*\\\\Environment\\\\windir\", \"HKEY_USERS\\\\*\\\\Environment\\\\systemroot\") and\n not registry.data.strings : (\"C:\\\\windows\", \"%SystemRoot%\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},{"name":"Privilege Escalation via Windir Environment Variable v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a privilege escalation attempt via a rogue Windows directory (Windir) environment variable. This is a known primitive that is often combined with other vulnerabilities to elevate privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.tiraniddo.dev/2017/05/exploiting-environment-variables-in.html"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.007","name":"Path Interception by PATH Environment Variable","reference":"https://attack.mitre.org/techniques/T1574/007/"}]}]}],"language":"eql","query":"registry where registry.path : (\"HKEY_USERS\\\\*\\\\Environment\\\\windir\", \"HKEY_USERS\\\\*\\\\Environment\\\\systemroot\") and\n not registry.data.strings : (\"C:\\\\windows\", \"%SystemRoot%\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},{"name":"Privilege Escalation via Windir Environment Variable v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a privilege escalation attempt via a rogue Windows directory (Windir) environment variable. This is a known primitive that is often combined with other vulnerabilities to elevate privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.tiraniddo.dev/2017/05/exploiting-environment-variables-in.html"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.007","name":"Path Interception by PATH Environment Variable","reference":"https://attack.mitre.org/techniques/T1574/007/"}]}]}],"language":"eql","query":"registry where registry.path : (\"HKEY_USERS\\\\*\\\\Environment\\\\windir\", \"HKEY_USERS\\\\*\\\\Environment\\\\systemroot\") and\n not registry.data.strings : (\"C:\\\\windows\", \"%SystemRoot%\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]}]},"id":"d563aaba-2e72-462b-8658-3e5ea22db3a6","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/d5d86bf5-cf0c-4c06-b688-53fdc072fdfd.json b/fleet-packages/detection-rules-composite/kibana/security_rule/d5d86bf5-cf0c-4c06-b688-53fdc072fdfd.json new file mode 100644 index 0000000000000..3989e45f84bc5 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/d5d86bf5-cf0c-4c06-b688-53fdc072fdfd.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"d5d86bf5-cf0c-4c06-b688-53fdc072fdfd","versions":[{"name":"Attempt to Delete an Okta Policy Rule v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to delete a rule within an Okta policy. An adversary may attempt to delete an Okta policy rule in order to weaken an organization's security controls.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Okta MFA rules are regularly modified in your organization."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/Security_Policies.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.rule.delete\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Delete an Okta Policy Rule v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to delete a rule within an Okta policy. An adversary may attempt to delete an Okta policy rule in order to weaken an organization's security controls.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Okta MFA rules are regularly modified in your organization."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/Security_Policies.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.rule.delete\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Delete an Okta Policy Rule v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to delete a rule within an Okta policy. An adversary may attempt to delete an Okta policy rule in order to weaken an organization's security controls.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Okta MFA rules are regularly modified in your organization."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/Security_Policies.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.rule.delete\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"d5d86bf5-cf0c-4c06-b688-53fdc072fdfd","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc.json b/fleet-packages/detection-rules-composite/kibana/security_rule/d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc.json new file mode 100644 index 0000000000000..0e42d58952e7a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc","versions":[{"name":"Service Command Lateral Movement v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of sc.exe to create, modify, or start services on remote hosts. This could be indicative of adversary lateral movement but will be noisy if commonly done by admins.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1569","name":"System Services","reference":"https://attack.mitre.org/techniques/T1569/","subtechnique":[{"id":"T1569.002","name":"Service Execution","reference":"https://attack.mitre.org/techniques/T1569/002/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan = 1m\n [process where event.type == \"start\" and\n (process.name : \"sc.exe\" or process.pe.original_file_name : \"sc.exe\") and\n process.args : \"\\\\\\\\*\" and process.args : (\"binPath=*\", \"binpath=*\") and\n process.args : (\"create\", \"config\", \"failure\", \"start\")]\n [network where process.name : \"sc.exe\" and destination.ip != \"127.0.0.1\"]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}]},{"name":"Service Command Lateral Movement v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of sc.exe to create, modify, or start services on remote hosts. This could be indicative of adversary lateral movement but will be noisy if commonly done by admins.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1569","name":"System Services","reference":"https://attack.mitre.org/techniques/T1569/","subtechnique":[{"id":"T1569.002","name":"Service Execution","reference":"https://attack.mitre.org/techniques/T1569/002/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan = 1m\n [process where event.type == \"start\" and\n (process.name : \"sc.exe\" or process.pe.original_file_name : \"sc.exe\") and\n process.args : \"\\\\\\\\*\" and process.args : (\"binPath=*\", \"binpath=*\") and\n process.args : (\"create\", \"config\", \"failure\", \"start\")]\n [network where process.name : \"sc.exe\" and destination.ip != \"127.0.0.1\"]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}]},{"name":"Service Command Lateral Movement v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of sc.exe to create, modify, or start services on remote hosts. This could be indicative of adversary lateral movement but will be noisy if commonly done by admins.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1569","name":"System Services","reference":"https://attack.mitre.org/techniques/T1569/","subtechnique":[{"id":"T1569.002","name":"Service Execution","reference":"https://attack.mitre.org/techniques/T1569/002/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan = 1m\n [process where event.type == \"start\" and\n (process.name : \"sc.exe\" or process.pe.original_file_name : \"sc.exe\") and\n process.args : \"\\\\\\\\*\" and process.args : (\"binPath=*\", \"binpath=*\") and\n process.args : (\"create\", \"config\", \"failure\", \"start\")]\n [network where process.name : \"sc.exe\" and destination.ip != \"127.0.0.1\"]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}]}]},"id":"d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/d624f0ae-3dd1-4856-9aad-ccfe4d4bfa17.json b/fleet-packages/detection-rules-composite/kibana/security_rule/d624f0ae-3dd1-4856-9aad-ccfe4d4bfa17.json new file mode 100644 index 0000000000000..9f3a4c93e36a6 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/d624f0ae-3dd1-4856-9aad-ccfe4d4bfa17.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"d624f0ae-3dd1-4856-9aad-ccfe4d4bfa17","versions":[{"name":"AWS CloudWatch Log Stream Deletion v103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an AWS CloudWatch log stream, which permanently deletes all associated archived log events with the stream.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudWatch Log Stream Deletion\n\nAmazon CloudWatch is a monitoring and observability service that collects monitoring and operational data in the form of\nlogs, metrics, and events for resources and applications. This data can be used to detect anomalous behavior in your environments, set alarms, visualize\nlogs and metrics side by side, take automated actions, troubleshoot issues, and discover insights to keep your\napplications running smoothly.\n\nA log stream is a sequence of log events that share the same source. Each separate source of logs in CloudWatch Logs\nmakes up a separate log stream.\n\nThis rule looks for the deletion of a log stream using the API `DeleteLogStream` action. Attackers can do this to cover\ntheir tracks and impact security monitoring that relies on these sources.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Investigate the deleted log stream's criticality and whether the responsible team is aware of the deletion.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A log stream may be deleted by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Log stream deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/logs/delete-log-stream.html","https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteLogStream.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:logs.amazonaws.com and event.action:DeleteLogStream and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS CloudWatch Log Stream Deletion v103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an AWS CloudWatch log stream, which permanently deletes all associated archived log events with the stream.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudWatch Log Stream Deletion\n\nAmazon CloudWatch is a monitoring and observability service that collects monitoring and operational data in the form of\nlogs, metrics, and events for resources and applications. This data can be used to detect anomalous behavior in your environments, set alarms, visualize\nlogs and metrics side by side, take automated actions, troubleshoot issues, and discover insights to keep your\napplications running smoothly.\n\nA log stream is a sequence of log events that share the same source. Each separate source of logs in CloudWatch Logs\nmakes up a separate log stream.\n\nThis rule looks for the deletion of a log stream using the API `DeleteLogStream` action. Attackers can do this to cover\ntheir tracks and impact security monitoring that relies on these sources.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Investigate the deleted log stream's criticality and whether the responsible team is aware of the deletion.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A log stream may be deleted by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Log stream deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/logs/delete-log-stream.html","https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteLogStream.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:logs.amazonaws.com and event.action:DeleteLogStream and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS CloudWatch Log Stream Deletion v103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an AWS CloudWatch log stream, which permanently deletes all associated archived log events with the stream.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudWatch Log Stream Deletion\n\nAmazon CloudWatch is a monitoring and observability service that collects monitoring and operational data in the form of\nlogs, metrics, and events for resources and applications. This data can be used to detect anomalous behavior in your environments, set alarms, visualize\nlogs and metrics side by side, take automated actions, troubleshoot issues, and discover insights to keep your\napplications running smoothly.\n\nA log stream is a sequence of log events that share the same source. Each separate source of logs in CloudWatch Logs\nmakes up a separate log stream.\n\nThis rule looks for the deletion of a log stream using the API `DeleteLogStream` action. Attackers can do this to cover\ntheir tracks and impact security monitoring that relies on these sources.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Investigate the deleted log stream's criticality and whether the responsible team is aware of the deletion.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A log stream may be deleted by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Log stream deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/logs/delete-log-stream.html","https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteLogStream.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:logs.amazonaws.com and event.action:DeleteLogStream and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"d624f0ae-3dd1-4856-9aad-ccfe4d4bfa17","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/d62b64a8-a7c9-43e5-aee3-15a725a794e7.json b/fleet-packages/detection-rules-composite/kibana/security_rule/d62b64a8-a7c9-43e5-aee3-15a725a794e7.json new file mode 100644 index 0000000000000..e77e5447e0823 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/d62b64a8-a7c9-43e5-aee3-15a725a794e7.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"d62b64a8-a7c9-43e5-aee3-15a725a794e7","versions":[{"name":"GCP Pub/Sub Subscription Creation v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a subscription in Google Cloud Platform (GCP). In GCP, the publisher-subscriber relationship (Pub/Sub) is an asynchronous messaging service that decouples event-producing and event-processing services. A subscription is a named resource representing the stream of messages to be delivered to the subscribing application.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Subscription creations may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Subscription creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/pubsub/docs/overview"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1530","name":"Data from Cloud Storage Object","reference":"https://attack.mitre.org/techniques/T1530/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.pubsub.v*.Subscriber.CreateSubscription and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Pub/Sub Subscription Creation v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a subscription in Google Cloud Platform (GCP). In GCP, the publisher-subscriber relationship (Pub/Sub) is an asynchronous messaging service that decouples event-producing and event-processing services. A subscription is a named resource representing the stream of messages to be delivered to the subscribing application.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Subscription creations may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Subscription creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/pubsub/docs/overview"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1530","name":"Data from Cloud Storage Object","reference":"https://attack.mitre.org/techniques/T1530/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.pubsub.v*.Subscriber.CreateSubscription and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Pub/Sub Subscription Creation v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a subscription in Google Cloud Platform (GCP). In GCP, the publisher-subscriber relationship (Pub/Sub) is an asynchronous messaging service that decouples event-producing and event-processing services. A subscription is a named resource representing the stream of messages to be delivered to the subscribing application.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Subscription creations may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Subscription creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/pubsub/docs/overview"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1530","name":"Data from Cloud Storage Object","reference":"https://attack.mitre.org/techniques/T1530/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.pubsub.v*.Subscriber.CreateSubscription and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"d62b64a8-a7c9-43e5-aee3-15a725a794e7","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/d68e95ad-1c82-4074-a12a-125fe10ac8ba.json b/fleet-packages/detection-rules-composite/kibana/security_rule/d68e95ad-1c82-4074-a12a-125fe10ac8ba.json new file mode 100644 index 0000000000000..ae19c2ff69faa --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/d68e95ad-1c82-4074-a12a-125fe10ac8ba.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"d68e95ad-1c82-4074-a12a-125fe10ac8ba","versions":[{"name":"System Information Discovery via Windows Command Shell v1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of discovery commands to enumerate system info or files and folders using the Windows Command Shell.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"},{"id":"T1083","name":"File and Directory Discovery","reference":"https://attack.mitre.org/techniques/T1083/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.003","name":"Windows Command Shell","reference":"https://attack.mitre.org/techniques/T1059/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"cmd.exe\" and process.args : \"/c\" and process.args : (\"set\", \"dir\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"System Information Discovery via Windows Command Shell v1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of discovery commands to enumerate system info or files and folders using the Windows Command Shell.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"},{"id":"T1083","name":"File and Directory Discovery","reference":"https://attack.mitre.org/techniques/T1083/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.003","name":"Windows Command Shell","reference":"https://attack.mitre.org/techniques/T1059/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"cmd.exe\" and process.args : \"/c\" and process.args : (\"set\", \"dir\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"System Information Discovery via Windows Command Shell v1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of discovery commands to enumerate system info or files and folders using the Windows Command Shell.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"},{"id":"T1083","name":"File and Directory Discovery","reference":"https://attack.mitre.org/techniques/T1083/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.003","name":"Windows Command Shell","reference":"https://attack.mitre.org/techniques/T1059/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"cmd.exe\" and process.args : \"/c\" and process.args : (\"set\", \"dir\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"d68e95ad-1c82-4074-a12a-125fe10ac8ba","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/d68eb1b5-5f1c-4b6d-9e63-5b6b145cd4aa.json b/fleet-packages/detection-rules-composite/kibana/security_rule/d68eb1b5-5f1c-4b6d-9e63-5b6b145cd4aa.json new file mode 100644 index 0000000000000..288fa91fc370d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/d68eb1b5-5f1c-4b6d-9e63-5b6b145cd4aa.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"d68eb1b5-5f1c-4b6d-9e63-5b6b145cd4aa","versions":[{"name":"Microsoft 365 Exchange Anti-Phish Policy Deletion v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an anti-phishing policy in Microsoft 365. By default, Microsoft 365 includes built-in features that help protect users from phishing attacks. Anti-phishing polices increase this protection by refining settings to better detect and prevent attacks.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An anti-phishing policy may be deleted by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-antiphishpolicy?view=exchange-ps","https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/set-up-anti-phishing-policies?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Remove-AntiPhishPolicy\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Exchange Anti-Phish Policy Deletion v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an anti-phishing policy in Microsoft 365. By default, Microsoft 365 includes built-in features that help protect users from phishing attacks. Anti-phishing polices increase this protection by refining settings to better detect and prevent attacks.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An anti-phishing policy may be deleted by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-antiphishpolicy?view=exchange-ps","https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/set-up-anti-phishing-policies?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Remove-AntiPhishPolicy\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Exchange Anti-Phish Policy Deletion v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an anti-phishing policy in Microsoft 365. By default, Microsoft 365 includes built-in features that help protect users from phishing attacks. Anti-phishing polices increase this protection by refining settings to better detect and prevent attacks.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An anti-phishing policy may be deleted by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-antiphishpolicy?view=exchange-ps","https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/set-up-anti-phishing-policies?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Remove-AntiPhishPolicy\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"d68eb1b5-5f1c-4b6d-9e63-5b6b145cd4aa","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/d703a5af-d5b0-43bd-8ddb-7a5d500b7da5.json b/fleet-packages/detection-rules-composite/kibana/security_rule/d703a5af-d5b0-43bd-8ddb-7a5d500b7da5.json new file mode 100644 index 0000000000000..c4cf9178d514f --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/d703a5af-d5b0-43bd-8ddb-7a5d500b7da5.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"d703a5af-d5b0-43bd-8ddb-7a5d500b7da5","versions":[{"name":"Modification of WDigest Security Provider v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to modify the WDigest security provider in the registry to force the user's password to be stored in clear text in memory. This behavior can be indicative of an adversary attempting to weaken the security configuration of an endpoint. Once the UseLogonCredential value is modified, the adversary may attempt to dump clear text passwords from memory.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Modification of WDigest Security Provider\n\nIn Windows XP, Microsoft added support for a protocol known as WDigest. The WDigest protocol allows clients to send\ncleartext credentials to Hypertext Transfer Protocol (HTTP) and Simple Authentication Security Layer (SASL) applications\nbased on RFC 2617 and 2831. Windows versions up to 8 and 2012 store logon credentials in memory in plaintext by default,\nwhich is no longer the case with newer Windows versions.\n\nStill, attackers can force WDigest to store the passwords insecurely on the memory by modifying the\n`HKLM\\SYSTEM\\*ControlSet*\\Control\\SecurityProviders\\WDigest\\UseLogonCredential` registry key. This activity is\ncommonly related to the execution of credential dumping tools.\n\n#### Possible investigation steps\n\n- It is unlikely that the monitored registry key was modified legitimately in newer versions of Windows. Analysts should\ntreat any activity triggered from this rule with high priority as it typically represents an active adversary.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Determine if credential dumping tools were run on the host, and retrieve and analyze suspicious executables:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Use process name, command line, and file hash to search for occurrences on other hosts.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (for example, 4624) to the target\nhost after the registry modification.\n\n### False positive analysis\n\n- This modification should not happen legitimately. Any potential benign true positive (B-TP) should be mapped and\nmonitored by the security team, as these modifications expose the entire domain to credential compromises and\nconsequently unauthorized access.\n\n### Related rules\n\n- Mimikatz Powershell Module Activity - ac96ceb8-4399-4191-af1d-4feeac1f1f46\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system and restore compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.csoonline.com/article/3438824/how-to-detect-and-halt-credential-theft-via-windows-wdigest.html","https://www.praetorian.com/blog/mitigating-mimikatz-wdigest-cleartext-credential-theft?edition=2019","https://frsecure.com/compromised-credentials-response-playbook","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"registry where event.type : (\"creation\", \"change\") and\n registry.path : (\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\SecurityProviders\\\\WDigest\\\\UseLogonCredential\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\SecurityProviders\\\\WDigest\\\\UseLogonCredential\"\n ) and registry.data.strings : (\"1\", \"0x00000001\") and\n not (process.executable : \"?:\\\\Windows\\\\System32\\\\svchost.exe\" and user.id : \"S-1-5-18\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Modification of WDigest Security Provider v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to modify the WDigest security provider in the registry to force the user's password to be stored in clear text in memory. This behavior can be indicative of an adversary attempting to weaken the security configuration of an endpoint. Once the UseLogonCredential value is modified, the adversary may attempt to dump clear text passwords from memory.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Modification of WDigest Security Provider\n\nIn Windows XP, Microsoft added support for a protocol known as WDigest. The WDigest protocol allows clients to send\ncleartext credentials to Hypertext Transfer Protocol (HTTP) and Simple Authentication Security Layer (SASL) applications\nbased on RFC 2617 and 2831. Windows versions up to 8 and 2012 store logon credentials in memory in plaintext by default,\nwhich is no longer the case with newer Windows versions.\n\nStill, attackers can force WDigest to store the passwords insecurely on the memory by modifying the\n`HKLM\\SYSTEM\\*ControlSet*\\Control\\SecurityProviders\\WDigest\\UseLogonCredential` registry key. This activity is\ncommonly related to the execution of credential dumping tools.\n\n#### Possible investigation steps\n\n- It is unlikely that the monitored registry key was modified legitimately in newer versions of Windows. Analysts should\ntreat any activity triggered from this rule with high priority as it typically represents an active adversary.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Determine if credential dumping tools were run on the host, and retrieve and analyze suspicious executables:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Use process name, command line, and file hash to search for occurrences on other hosts.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (for example, 4624) to the target\nhost after the registry modification.\n\n### False positive analysis\n\n- This modification should not happen legitimately. Any potential benign true positive (B-TP) should be mapped and\nmonitored by the security team, as these modifications expose the entire domain to credential compromises and\nconsequently unauthorized access.\n\n### Related rules\n\n- Mimikatz Powershell Module Activity - ac96ceb8-4399-4191-af1d-4feeac1f1f46\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system and restore compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.csoonline.com/article/3438824/how-to-detect-and-halt-credential-theft-via-windows-wdigest.html","https://www.praetorian.com/blog/mitigating-mimikatz-wdigest-cleartext-credential-theft?edition=2019","https://frsecure.com/compromised-credentials-response-playbook","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"registry where event.type : (\"creation\", \"change\") and\n registry.path : (\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\SecurityProviders\\\\WDigest\\\\UseLogonCredential\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\SecurityProviders\\\\WDigest\\\\UseLogonCredential\"\n ) and registry.data.strings : (\"1\", \"0x00000001\") and\n not (process.executable : \"?:\\\\Windows\\\\System32\\\\svchost.exe\" and user.id : \"S-1-5-18\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Modification of WDigest Security Provider v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to modify the WDigest security provider in the registry to force the user's password to be stored in clear text in memory. This behavior can be indicative of an adversary attempting to weaken the security configuration of an endpoint. Once the UseLogonCredential value is modified, the adversary may attempt to dump clear text passwords from memory.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Modification of WDigest Security Provider\n\nIn Windows XP, Microsoft added support for a protocol known as WDigest. The WDigest protocol allows clients to send\ncleartext credentials to Hypertext Transfer Protocol (HTTP) and Simple Authentication Security Layer (SASL) applications\nbased on RFC 2617 and 2831. Windows versions up to 8 and 2012 store logon credentials in memory in plaintext by default,\nwhich is no longer the case with newer Windows versions.\n\nStill, attackers can force WDigest to store the passwords insecurely on the memory by modifying the\n`HKLM\\SYSTEM\\*ControlSet*\\Control\\SecurityProviders\\WDigest\\UseLogonCredential` registry key. This activity is\ncommonly related to the execution of credential dumping tools.\n\n#### Possible investigation steps\n\n- It is unlikely that the monitored registry key was modified legitimately in newer versions of Windows. Analysts should\ntreat any activity triggered from this rule with high priority as it typically represents an active adversary.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Determine if credential dumping tools were run on the host, and retrieve and analyze suspicious executables:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Use process name, command line, and file hash to search for occurrences on other hosts.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (for example, 4624) to the target\nhost after the registry modification.\n\n### False positive analysis\n\n- This modification should not happen legitimately. Any potential benign true positive (B-TP) should be mapped and\nmonitored by the security team, as these modifications expose the entire domain to credential compromises and\nconsequently unauthorized access.\n\n### Related rules\n\n- Mimikatz Powershell Module Activity - ac96ceb8-4399-4191-af1d-4feeac1f1f46\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system and restore compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.csoonline.com/article/3438824/how-to-detect-and-halt-credential-theft-via-windows-wdigest.html","https://www.praetorian.com/blog/mitigating-mimikatz-wdigest-cleartext-credential-theft?edition=2019","https://frsecure.com/compromised-credentials-response-playbook","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"registry where event.type : (\"creation\", \"change\") and\n registry.path : (\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\SecurityProviders\\\\WDigest\\\\UseLogonCredential\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\SecurityProviders\\\\WDigest\\\\UseLogonCredential\"\n ) and registry.data.strings : (\"1\", \"0x00000001\") and\n not (process.executable : \"?:\\\\Windows\\\\System32\\\\svchost.exe\" and user.id : \"S-1-5-18\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"d703a5af-d5b0-43bd-8ddb-7a5d500b7da5","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/d72e33fc-6e91-42ff-ac8b-e573268c5a87.json b/fleet-packages/detection-rules-composite/kibana/security_rule/d72e33fc-6e91-42ff-ac8b-e573268c5a87.json new file mode 100644 index 0000000000000..6956a61d3012b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/d72e33fc-6e91-42ff-ac8b-e573268c5a87.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"d72e33fc-6e91-42ff-ac8b-e573268c5a87","versions":[{"name":"Command Execution via SolarWinds Process v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A suspicious SolarWinds child process (Cmd.exe or Powershell.exe) was detected.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted SolarWinds child processes. Verify process details such as network connections and file writes."],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2020/12/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor.html","https://github.com/mandiant/sunburst_countermeasures/blob/main/rules/SUNBURST/hxioc/SUNBURST%20SUSPICIOUS%20FILEWRITES%20(METHODOLOGY).ioc"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1195","name":"Supply Chain Compromise","reference":"https://attack.mitre.org/techniques/T1195/","subtechnique":[{"id":"T1195.002","name":"Compromise Software Supply Chain","reference":"https://attack.mitre.org/techniques/T1195/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.name: (\"cmd.exe\", \"powershell.exe\") and\nprocess.parent.name: (\n \"ConfigurationWizard*.exe\",\n \"NetflowDatabaseMaintenance*.exe\",\n \"NetFlowService*.exe\",\n \"SolarWinds.Administration*.exe\",\n \"SolarWinds.Collector.Service*.exe\",\n \"SolarwindsDiagnostics*.exe\"\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Command Execution via SolarWinds Process v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A suspicious SolarWinds child process (Cmd.exe or Powershell.exe) was detected.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted SolarWinds child processes. Verify process details such as network connections and file writes."],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2020/12/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor.html","https://github.com/mandiant/sunburst_countermeasures/blob/main/rules/SUNBURST/hxioc/SUNBURST%20SUSPICIOUS%20FILEWRITES%20(METHODOLOGY).ioc"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1195","name":"Supply Chain Compromise","reference":"https://attack.mitre.org/techniques/T1195/","subtechnique":[{"id":"T1195.002","name":"Compromise Software Supply Chain","reference":"https://attack.mitre.org/techniques/T1195/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.name: (\"cmd.exe\", \"powershell.exe\") and\nprocess.parent.name: (\n \"ConfigurationWizard*.exe\",\n \"NetflowDatabaseMaintenance*.exe\",\n \"NetFlowService*.exe\",\n \"SolarWinds.Administration*.exe\",\n \"SolarWinds.Collector.Service*.exe\",\n \"SolarwindsDiagnostics*.exe\"\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Command Execution via SolarWinds Process v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A suspicious SolarWinds child process (Cmd.exe or Powershell.exe) was detected.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted SolarWinds child processes. Verify process details such as network connections and file writes."],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2020/12/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor.html","https://github.com/mandiant/sunburst_countermeasures/blob/main/rules/SUNBURST/hxioc/SUNBURST%20SUSPICIOUS%20FILEWRITES%20(METHODOLOGY).ioc"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1195","name":"Supply Chain Compromise","reference":"https://attack.mitre.org/techniques/T1195/","subtechnique":[{"id":"T1195.002","name":"Compromise Software Supply Chain","reference":"https://attack.mitre.org/techniques/T1195/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.name: (\"cmd.exe\", \"powershell.exe\") and\nprocess.parent.name: (\n \"ConfigurationWizard*.exe\",\n \"NetflowDatabaseMaintenance*.exe\",\n \"NetFlowService*.exe\",\n \"SolarWinds.Administration*.exe\",\n \"SolarWinds.Collector.Service*.exe\",\n \"SolarwindsDiagnostics*.exe\"\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"d72e33fc-6e91-42ff-ac8b-e573268c5a87","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/d743ff2a-203e-4a46-a3e3-40512cfe8fbb.json b/fleet-packages/detection-rules-composite/kibana/security_rule/d743ff2a-203e-4a46-a3e3-40512cfe8fbb.json new file mode 100644 index 0000000000000..bdb12b637f2f0 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/d743ff2a-203e-4a46-a3e3-40512cfe8fbb.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"d743ff2a-203e-4a46-a3e3-40512cfe8fbb","versions":[{"name":"Microsoft 365 Exchange Malware Filter Policy Deletion v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a malware filter policy has been deleted in Microsoft 365. A malware filter policy is used to alert administrators that an internal user sent a message that contained malware. This may indicate an account or machine compromise that would need to be investigated. Deletion of a malware filter policy may be done to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A malware filter policy may be deleted by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-malwarefilterpolicy?view=exchange-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Remove-MalwareFilterPolicy\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Exchange Malware Filter Policy Deletion v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a malware filter policy has been deleted in Microsoft 365. A malware filter policy is used to alert administrators that an internal user sent a message that contained malware. This may indicate an account or machine compromise that would need to be investigated. Deletion of a malware filter policy may be done to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A malware filter policy may be deleted by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-malwarefilterpolicy?view=exchange-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Remove-MalwareFilterPolicy\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Exchange Malware Filter Policy Deletion v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a malware filter policy has been deleted in Microsoft 365. A malware filter policy is used to alert administrators that an internal user sent a message that contained malware. This may indicate an account or machine compromise that would need to be investigated. Deletion of a malware filter policy may be done to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A malware filter policy may be deleted by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-malwarefilterpolicy?view=exchange-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Remove-MalwareFilterPolicy\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"d743ff2a-203e-4a46-a3e3-40512cfe8fbb","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/d75991f2-b989-419d-b797-ac1e54ec2d61.json b/fleet-packages/detection-rules-composite/kibana/security_rule/d75991f2-b989-419d-b797-ac1e54ec2d61.json new file mode 100644 index 0000000000000..d2d75366d48b5 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/d75991f2-b989-419d-b797-ac1e54ec2d61.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"d75991f2-b989-419d-b797-ac1e54ec2d61","versions":[{"name":"SystemKey Access via Command Line v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Keychains are the built-in way for macOS to keep track of users' passwords and credentials for many services and features, including Wi-Fi and website passwords, secure notes, certificates, and Kerberos. Adversaries may collect the keychain storage data from a system to acquire credentials.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/AlessandroZ/LaZagne/blob/master/Mac/lazagne/softwares/system/chainbreaker.py"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.001","name":"Keychain","reference":"https://attack.mitre.org/techniques/T1555/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.args:(\"/private/var/db/SystemKey\" or \"/var/db/SystemKey\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},{"name":"SystemKey Access via Command Line v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Keychains are the built-in way for macOS to keep track of users' passwords and credentials for many services and features, including Wi-Fi and website passwords, secure notes, certificates, and Kerberos. Adversaries may collect the keychain storage data from a system to acquire credentials.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/AlessandroZ/LaZagne/blob/master/Mac/lazagne/softwares/system/chainbreaker.py"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.001","name":"Keychain","reference":"https://attack.mitre.org/techniques/T1555/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.args:(\"/private/var/db/SystemKey\" or \"/var/db/SystemKey\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},{"name":"SystemKey Access via Command Line v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Keychains are the built-in way for macOS to keep track of users' passwords and credentials for many services and features, including Wi-Fi and website passwords, secure notes, certificates, and Kerberos. Adversaries may collect the keychain storage data from a system to acquire credentials.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/AlessandroZ/LaZagne/blob/master/Mac/lazagne/softwares/system/chainbreaker.py"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.001","name":"Keychain","reference":"https://attack.mitre.org/techniques/T1555/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.args:(\"/private/var/db/SystemKey\" or \"/var/db/SystemKey\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]}]},"id":"d75991f2-b989-419d-b797-ac1e54ec2d61","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/d76b02ef-fc95-4001-9297-01cb7412232f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/d76b02ef-fc95-4001-9297-01cb7412232f.json new file mode 100644 index 0000000000000..6c048933b7aa3 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/d76b02ef-fc95-4001-9297-01cb7412232f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"d76b02ef-fc95-4001-9297-01cb7412232f","versions":[{"name":"Interactive Terminal Spawned via Python v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a terminal (tty) is spawned via Python. Attackers may upgrade a simple reverse shell to a fully interactive tty after obtaining initial access to a host.","risk_score":73,"severity":"high","license":"Elastic License v2","timeline_id":"e70679c2-6cde-4510-9764-4823df18f7db","timeline_title":"Comprehensive Process Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:python* and\n process.args:(\"import pty; pty.spawn(\\\"/bin/sh\\\")\" or\n \"import pty; pty.spawn(\\\"/bin/dash\\\")\" or\n \"import pty; pty.spawn(\\\"/bin/bash\\\")\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Interactive Terminal Spawned via Python v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a terminal (tty) is spawned via Python. Attackers may upgrade a simple reverse shell to a fully interactive tty after obtaining initial access to a host.","risk_score":73,"severity":"high","license":"Elastic License v2","timeline_id":"e70679c2-6cde-4510-9764-4823df18f7db","timeline_title":"Comprehensive Process Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:python* and\n process.args:(\"import pty; pty.spawn(\\\"/bin/sh\\\")\" or\n \"import pty; pty.spawn(\\\"/bin/dash\\\")\" or\n \"import pty; pty.spawn(\\\"/bin/bash\\\")\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Interactive Terminal Spawned via Python v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a terminal (tty) is spawned via Python. Attackers may upgrade a simple reverse shell to a fully interactive tty after obtaining initial access to a host.","risk_score":73,"severity":"high","license":"Elastic License v2","timeline_id":"e70679c2-6cde-4510-9764-4823df18f7db","timeline_title":"Comprehensive Process Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:python* and\n process.args:(\"import pty; pty.spawn(\\\"/bin/sh\\\")\" or\n \"import pty; pty.spawn(\\\"/bin/dash\\\")\" or\n \"import pty; pty.spawn(\\\"/bin/bash\\\")\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"d76b02ef-fc95-4001-9297-01cb7412232f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/d79c4b2a-6134-4edd-86e6-564a92a933f9.json b/fleet-packages/detection-rules-composite/kibana/security_rule/d79c4b2a-6134-4edd-86e6-564a92a933f9.json new file mode 100644 index 0000000000000..fc7914807db88 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/d79c4b2a-6134-4edd-86e6-564a92a933f9.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"d79c4b2a-6134-4edd-86e6-564a92a933f9","versions":[{"name":"Azure Blob Permissions Modification v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when the Azure role-based access control (Azure RBAC) permissions are modified for an Azure Blob. An adversary may modify the permissions on a blob to weaken their target's security controls or an administrator may inadvertently modify the permissions, which could lead to data exposure or loss.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Blob permissions may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/built-in-roles"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1222","name":"File and Directory Permissions Modification","reference":"https://attack.mitre.org/techniques/T1222/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:(\n \"MICROSOFT.STORAGE/STORAGEACCOUNTS/BLOBSERVICES/CONTAINERS/BLOBS/MANAGEOWNERSHIP/ACTION\" or\n \"MICROSOFT.STORAGE/STORAGEACCOUNTS/BLOBSERVICES/CONTAINERS/BLOBS/MODIFYPERMISSIONS/ACTION\") and\n event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Blob Permissions Modification v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when the Azure role-based access control (Azure RBAC) permissions are modified for an Azure Blob. An adversary may modify the permissions on a blob to weaken their target's security controls or an administrator may inadvertently modify the permissions, which could lead to data exposure or loss.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Blob permissions may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/built-in-roles"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1222","name":"File and Directory Permissions Modification","reference":"https://attack.mitre.org/techniques/T1222/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:(\n \"MICROSOFT.STORAGE/STORAGEACCOUNTS/BLOBSERVICES/CONTAINERS/BLOBS/MANAGEOWNERSHIP/ACTION\" or\n \"MICROSOFT.STORAGE/STORAGEACCOUNTS/BLOBSERVICES/CONTAINERS/BLOBS/MODIFYPERMISSIONS/ACTION\") and\n event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Blob Permissions Modification v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when the Azure role-based access control (Azure RBAC) permissions are modified for an Azure Blob. An adversary may modify the permissions on a blob to weaken their target's security controls or an administrator may inadvertently modify the permissions, which could lead to data exposure or loss.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Blob permissions may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/built-in-roles"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1222","name":"File and Directory Permissions Modification","reference":"https://attack.mitre.org/techniques/T1222/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:(\n \"MICROSOFT.STORAGE/STORAGEACCOUNTS/BLOBSERVICES/CONTAINERS/BLOBS/MANAGEOWNERSHIP/ACTION\" or\n \"MICROSOFT.STORAGE/STORAGEACCOUNTS/BLOBSERVICES/CONTAINERS/BLOBS/MODIFYPERMISSIONS/ACTION\") and\n event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"d79c4b2a-6134-4edd-86e6-564a92a933f9","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/d7d5c059-c19a-4a96-8ae3-41496ef3bcf9.json b/fleet-packages/detection-rules-composite/kibana/security_rule/d7d5c059-c19a-4a96-8ae3-41496ef3bcf9.json new file mode 100644 index 0000000000000..8de4e8fa06dac --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/d7d5c059-c19a-4a96-8ae3-41496ef3bcf9.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"d7d5c059-c19a-4a96-8ae3-41496ef3bcf9","versions":[{"name":"Spike in Logon Events v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job found an unusually large spike in successful authentication events. This can be due to password spraying, user enumeration or brute force activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Build servers and CI systems can sometimes trigger this alert. Security test cycles that include brute force or password spraying activities may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_high_count_logon_events","type":"machine_learning"},{"name":"Spike in Logon Events v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job found an unusually large spike in successful authentication events. This can be due to password spraying, user enumeration or brute force activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Build servers and CI systems can sometimes trigger this alert. Security test cycles that include brute force or password spraying activities may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_high_count_logon_events","type":"machine_learning"},{"name":"Spike in Logon Events v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job found an unusually large spike in successful authentication events. This can be due to password spraying, user enumeration or brute force activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Build servers and CI systems can sometimes trigger this alert. Security test cycles that include brute force or password spraying activities may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_high_count_logon_events","type":"machine_learning"}]},"id":"d7d5c059-c19a-4a96-8ae3-41496ef3bcf9","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/d7e62693-aab9-4f66-a21a-3d79ecdd603d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/d7e62693-aab9-4f66-a21a-3d79ecdd603d.json new file mode 100644 index 0000000000000..40515a42837e7 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/d7e62693-aab9-4f66-a21a-3d79ecdd603d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"d7e62693-aab9-4f66-a21a-3d79ecdd603d","versions":[{"name":"SMTP on Port 26/TCP v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects events that may indicate use of SMTP on TCP port 26. This port is commonly used by several popular mail transfer agents to deconflict with the default SMTP port 25. This port has also been used by a malware family called BadPatch for command and control of Windows systems.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Servers that process email traffic may cause false positives and should be excluded from this rule as this is expected behavior."],"from":"now-9m","references":["https://unit42.paloaltonetworks.com/unit42-badpatch/","https://isc.sans.edu/forums/diary/Next+up+whats+up+with+TCP+port+26/25564/"],"tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1048","name":"Exfiltration Over Alternative Protocol","reference":"https://attack.mitre.org/techniques/T1048/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and (destination.port:26 or (event.dataset:zeek.smtp and destination.port:26))\n","required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"}]},{"name":"SMTP on Port 26/TCP v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects events that may indicate use of SMTP on TCP port 26. This port is commonly used by several popular mail transfer agents to deconflict with the default SMTP port 25. This port has also been used by a malware family called BadPatch for command and control of Windows systems.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Servers that process email traffic may cause false positives and should be excluded from this rule as this is expected behavior."],"from":"now-9m","references":["https://unit42.paloaltonetworks.com/unit42-badpatch/","https://isc.sans.edu/forums/diary/Next+up+whats+up+with+TCP+port+26/25564/"],"tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1048","name":"Exfiltration Over Alternative Protocol","reference":"https://attack.mitre.org/techniques/T1048/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and (destination.port:26 or (event.dataset:zeek.smtp and destination.port:26))\n","required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"}]},{"name":"SMTP on Port 26/TCP v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects events that may indicate use of SMTP on TCP port 26. This port is commonly used by several popular mail transfer agents to deconflict with the default SMTP port 25. This port has also been used by a malware family called BadPatch for command and control of Windows systems.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Servers that process email traffic may cause false positives and should be excluded from this rule as this is expected behavior."],"from":"now-9m","references":["https://unit42.paloaltonetworks.com/unit42-badpatch/","https://isc.sans.edu/forums/diary/Next+up+whats+up+with+TCP+port+26/25564/"],"tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1048","name":"Exfiltration Over Alternative Protocol","reference":"https://attack.mitre.org/techniques/T1048/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and (destination.port:26 or (event.dataset:zeek.smtp and destination.port:26))\n","required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"}]}]},"id":"d7e62693-aab9-4f66-a21a-3d79ecdd603d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/d8fc1cca-93ed-43c1-bbb6-c0dd3eff2958.json b/fleet-packages/detection-rules-composite/kibana/security_rule/d8fc1cca-93ed-43c1-bbb6-c0dd3eff2958.json new file mode 100644 index 0000000000000..7eb8518c4e613 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/d8fc1cca-93ed-43c1-bbb6-c0dd3eff2958.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"d8fc1cca-93ed-43c1-bbb6-c0dd3eff2958","versions":[{"name":"AWS IAM Deactivation of MFA Device v103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deactivation of a specified multi-factor authentication (MFA) device and removes it from association with the user name for which it was originally enabled. In AWS Identity and Access Management (IAM), a device must be deactivated before it can be deleted.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS IAM Deactivation of MFA Device\n\nMulti-factor authentication (MFA) in AWS is a simple best practice that adds an extra layer of protection on top of your\nuser name and password. With MFA enabled, when a user signs in to an AWS Management Console, they will be prompted for\ntheir user name and password (the first factor—what they know), as well as for an authentication code from their AWS MFA\ndevice (the second factor—what they have). Taken together, these multiple factors provide increased security for your\nAWS account settings and resources.\n\nFor more information about using MFA in AWS, access the [official documentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html).\n\nThis rule looks for the deactivation or deletion of AWS MFA devices. These modifications weaken account security and can\nlead to the compromise of accounts and other assets.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- While this activity can be done by administrators, all users must use MFA. The security team should address any\npotential benign true positive (B-TP), as this configuration can risk the user and domain.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Reactivate multi-factor authentication for the user.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["A MFA device may be deactivated by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. MFA device deactivations from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/deactivate-mfa-device.html","https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:(DeactivateMFADevice or DeleteVirtualMFADevice) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS IAM Deactivation of MFA Device v103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deactivation of a specified multi-factor authentication (MFA) device and removes it from association with the user name for which it was originally enabled. In AWS Identity and Access Management (IAM), a device must be deactivated before it can be deleted.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS IAM Deactivation of MFA Device\n\nMulti-factor authentication (MFA) in AWS is a simple best practice that adds an extra layer of protection on top of your\nuser name and password. With MFA enabled, when a user signs in to an AWS Management Console, they will be prompted for\ntheir user name and password (the first factor—what they know), as well as for an authentication code from their AWS MFA\ndevice (the second factor—what they have). Taken together, these multiple factors provide increased security for your\nAWS account settings and resources.\n\nFor more information about using MFA in AWS, access the [official documentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html).\n\nThis rule looks for the deactivation or deletion of AWS MFA devices. These modifications weaken account security and can\nlead to the compromise of accounts and other assets.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- While this activity can be done by administrators, all users must use MFA. The security team should address any\npotential benign true positive (B-TP), as this configuration can risk the user and domain.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Reactivate multi-factor authentication for the user.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["A MFA device may be deactivated by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. MFA device deactivations from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/deactivate-mfa-device.html","https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:(DeactivateMFADevice or DeleteVirtualMFADevice) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS IAM Deactivation of MFA Device v103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deactivation of a specified multi-factor authentication (MFA) device and removes it from association with the user name for which it was originally enabled. In AWS Identity and Access Management (IAM), a device must be deactivated before it can be deleted.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS IAM Deactivation of MFA Device\n\nMulti-factor authentication (MFA) in AWS is a simple best practice that adds an extra layer of protection on top of your\nuser name and password. With MFA enabled, when a user signs in to an AWS Management Console, they will be prompted for\ntheir user name and password (the first factor—what they know), as well as for an authentication code from their AWS MFA\ndevice (the second factor—what they have). Taken together, these multiple factors provide increased security for your\nAWS account settings and resources.\n\nFor more information about using MFA in AWS, access the [official documentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html).\n\nThis rule looks for the deactivation or deletion of AWS MFA devices. These modifications weaken account security and can\nlead to the compromise of accounts and other assets.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- While this activity can be done by administrators, all users must use MFA. The security team should address any\npotential benign true positive (B-TP), as this configuration can risk the user and domain.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Reactivate multi-factor authentication for the user.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["A MFA device may be deactivated by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. MFA device deactivations from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/deactivate-mfa-device.html","https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:(DeactivateMFADevice or DeleteVirtualMFADevice) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"d8fc1cca-93ed-43c1-bbb6-c0dd3eff2958","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/d99a037b-c8e2-47a5-97b9-170d076827c4.json b/fleet-packages/detection-rules-composite/kibana/security_rule/d99a037b-c8e2-47a5-97b9-170d076827c4.json new file mode 100644 index 0000000000000..a110e371e367c --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/d99a037b-c8e2-47a5-97b9-170d076827c4.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"d99a037b-c8e2-47a5-97b9-170d076827c4","versions":[{"name":"Volume Shadow Copy Deletion via PowerShell v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the Win32_ShadowCopy class and related cmdlets to achieve shadow copy deletion. This commonly occurs in tandem with ransomware or other destructive attacks.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Volume Shadow Copy Deletion via PowerShell\n\nThe Volume Shadow Copy Service (VSS) is a Windows feature that enables system administrators to take snapshots of volumes\nthat can later be restored or mounted to recover specific files or folders.\n\nA typical step in the playbook of an attacker attempting to deploy ransomware is to delete Volume Shadow\nCopies to ensure that victims have no alternative to paying the ransom, making any action that deletes shadow\ncopies worth monitoring.\n\nThis rule monitors the execution of PowerShell cmdlets to interact with the Win32_ShadowCopy WMI class, retrieve shadow\ncopy objects, and delete them.\n\n#### Possible investigation steps\n\n- Investigate the program execution chain (parent process tree).\n- Check whether the account is authorized to perform this operation.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- If unsigned files are found on the process tree, retrieve them and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Use process name, command line, and file hash to search for occurrences in other hosts.\n- Check if any files on the host machine have been encrypted.\n\n\n### False positive analysis\n\n- This rule has chances of producing benign true positives (B-TPs). If this activity is expected and noisy in your\nenvironment, consider adding exceptions — preferably with a combination of user and command line conditions.\n\n### Related rules\n\n- Volume Shadow Copy Deleted or Resized via VssAdmin - b5ea4bfe-a1b2-421f-9d47-22a75a6f2921\n- Volume Shadow Copy Deletion via PowerShell - d99a037b-c8e2-47a5-97b9-170d076827c4\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- Priority should be given due to the advanced stage of this activity on the attack.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- If data was encrypted, deleted, or modified, activate your data recovery plan.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Perform data recovery locally or restore the backups from replicated copies (cloud, other servers, etc.).\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/previous-versions/windows/desktop/vsswmi/win32-shadowcopy","https://powershell.one/wmi/root/cimv2/win32_shadowcopy","https://www.fortinet.com/blog/threat-research/stomping-shadow-copies-a-second-look-into-deletion-methods"],"tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and\n process.args : (\"*Get-WmiObject*\", \"*gwmi*\", \"*Get-CimInstance*\", \"*gcim*\") and\n process.args : (\"*Win32_ShadowCopy*\") and\n process.args : (\"*.Delete()*\", \"*Remove-WmiObject*\", \"*rwmi*\", \"*Remove-CimInstance*\", \"*rcim*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Volume Shadow Copy Deletion via PowerShell v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the Win32_ShadowCopy class and related cmdlets to achieve shadow copy deletion. This commonly occurs in tandem with ransomware or other destructive attacks.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Volume Shadow Copy Deletion via PowerShell\n\nThe Volume Shadow Copy Service (VSS) is a Windows feature that enables system administrators to take snapshots of volumes\nthat can later be restored or mounted to recover specific files or folders.\n\nA typical step in the playbook of an attacker attempting to deploy ransomware is to delete Volume Shadow\nCopies to ensure that victims have no alternative to paying the ransom, making any action that deletes shadow\ncopies worth monitoring.\n\nThis rule monitors the execution of PowerShell cmdlets to interact with the Win32_ShadowCopy WMI class, retrieve shadow\ncopy objects, and delete them.\n\n#### Possible investigation steps\n\n- Investigate the program execution chain (parent process tree).\n- Check whether the account is authorized to perform this operation.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- If unsigned files are found on the process tree, retrieve them and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Use process name, command line, and file hash to search for occurrences in other hosts.\n- Check if any files on the host machine have been encrypted.\n\n\n### False positive analysis\n\n- This rule has chances of producing benign true positives (B-TPs). If this activity is expected and noisy in your\nenvironment, consider adding exceptions — preferably with a combination of user and command line conditions.\n\n### Related rules\n\n- Volume Shadow Copy Deleted or Resized via VssAdmin - b5ea4bfe-a1b2-421f-9d47-22a75a6f2921\n- Volume Shadow Copy Deletion via PowerShell - d99a037b-c8e2-47a5-97b9-170d076827c4\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- Priority should be given due to the advanced stage of this activity on the attack.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- If data was encrypted, deleted, or modified, activate your data recovery plan.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Perform data recovery locally or restore the backups from replicated copies (cloud, other servers, etc.).\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/previous-versions/windows/desktop/vsswmi/win32-shadowcopy","https://powershell.one/wmi/root/cimv2/win32_shadowcopy","https://www.fortinet.com/blog/threat-research/stomping-shadow-copies-a-second-look-into-deletion-methods"],"tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and\n process.args : (\"*Get-WmiObject*\", \"*gwmi*\", \"*Get-CimInstance*\", \"*gcim*\") and\n process.args : (\"*Win32_ShadowCopy*\") and\n process.args : (\"*.Delete()*\", \"*Remove-WmiObject*\", \"*rwmi*\", \"*Remove-CimInstance*\", \"*rcim*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Volume Shadow Copy Deletion via PowerShell v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the Win32_ShadowCopy class and related cmdlets to achieve shadow copy deletion. This commonly occurs in tandem with ransomware or other destructive attacks.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Volume Shadow Copy Deletion via PowerShell\n\nThe Volume Shadow Copy Service (VSS) is a Windows feature that enables system administrators to take snapshots of volumes\nthat can later be restored or mounted to recover specific files or folders.\n\nA typical step in the playbook of an attacker attempting to deploy ransomware is to delete Volume Shadow\nCopies to ensure that victims have no alternative to paying the ransom, making any action that deletes shadow\ncopies worth monitoring.\n\nThis rule monitors the execution of PowerShell cmdlets to interact with the Win32_ShadowCopy WMI class, retrieve shadow\ncopy objects, and delete them.\n\n#### Possible investigation steps\n\n- Investigate the program execution chain (parent process tree).\n- Check whether the account is authorized to perform this operation.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- If unsigned files are found on the process tree, retrieve them and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Use process name, command line, and file hash to search for occurrences in other hosts.\n- Check if any files on the host machine have been encrypted.\n\n\n### False positive analysis\n\n- This rule has chances of producing benign true positives (B-TPs). If this activity is expected and noisy in your\nenvironment, consider adding exceptions — preferably with a combination of user and command line conditions.\n\n### Related rules\n\n- Volume Shadow Copy Deleted or Resized via VssAdmin - b5ea4bfe-a1b2-421f-9d47-22a75a6f2921\n- Volume Shadow Copy Deletion via PowerShell - d99a037b-c8e2-47a5-97b9-170d076827c4\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- Priority should be given due to the advanced stage of this activity on the attack.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- If data was encrypted, deleted, or modified, activate your data recovery plan.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Perform data recovery locally or restore the backups from replicated copies (cloud, other servers, etc.).\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/previous-versions/windows/desktop/vsswmi/win32-shadowcopy","https://powershell.one/wmi/root/cimv2/win32_shadowcopy","https://www.fortinet.com/blog/threat-research/stomping-shadow-copies-a-second-look-into-deletion-methods"],"tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and\n process.args : (\"*Get-WmiObject*\", \"*gwmi*\", \"*Get-CimInstance*\", \"*gcim*\") and\n process.args : (\"*Win32_ShadowCopy*\") and\n process.args : (\"*.Delete()*\", \"*Remove-WmiObject*\", \"*rwmi*\", \"*Remove-CimInstance*\", \"*rcim*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"d99a037b-c8e2-47a5-97b9-170d076827c4","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/da87eee1-129c-4661-a7aa-57d0b9645fad.json b/fleet-packages/detection-rules-composite/kibana/security_rule/da87eee1-129c-4661-a7aa-57d0b9645fad.json new file mode 100644 index 0000000000000..d535b25b3ca15 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/da87eee1-129c-4661-a7aa-57d0b9645fad.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"da87eee1-129c-4661-a7aa-57d0b9645fad","versions":[{"name":"Suspicious service was installed in the system v1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a new Windows service with suspicious Service command values. Windows services typically run as SYSTEM and can be used for privilege escalation and persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify how the service was created or modified. Look for registry changes events or Windows events related to\nservice activities (for example, 4697 and/or 7045).\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n\n\n### False positive analysis\n\n- Certain services such as PSEXECSVC may happen legitimately. The security team should address any potential benign true\npositive (B-TP) by excluding the relevant FP by pattern.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Delete the service or restore it to the original configuration.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"any where\n (event.code : \"4697\" and\n (winlog.event_data.ServiceFileName : (\"*COMSPEC*\", \"*\\\\172.0.0.1*\", \"*Admin$*\", \"*powershell*\", \"*rundll32*\", \"*cmd.exe*\", \"*PSEXESVC*\", \"*echo*\", \"*RemComSvc*\") or\n winlog.event_data.ServiceFileName regex~ \"\"\"%systemroot%\\\\[a-z0-9]+\\.exe\"\"\")) or\n\n (event.code : \"7045\" and\n winlog.event_data.ImagePath : (\"*COMSPEC*\", \"*\\\\172.0.0.1*\", \"*Admin$*\", \"*powershell*\", \"*rundll32*\", \"*cmd.exe*\", \"*PSEXESVC*\", \"*echo*\", \"*RemComSvc*\"))\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.ImagePath","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ServiceFileName","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious service was installed in the system v1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a new Windows service with suspicious Service command values. Windows services typically run as SYSTEM and can be used for privilege escalation and persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify how the service was created or modified. Look for registry changes events or Windows events related to\nservice activities (for example, 4697 and/or 7045).\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n\n\n### False positive analysis\n\n- Certain services such as PSEXECSVC may happen legitimately. The security team should address any potential benign true\npositive (B-TP) by excluding the relevant FP by pattern.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Delete the service or restore it to the original configuration.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"any where\n (event.code : \"4697\" and\n (winlog.event_data.ServiceFileName : (\"*COMSPEC*\", \"*\\\\172.0.0.1*\", \"*Admin$*\", \"*powershell*\", \"*rundll32*\", \"*cmd.exe*\", \"*PSEXESVC*\", \"*echo*\", \"*RemComSvc*\") or\n winlog.event_data.ServiceFileName regex~ \"\"\"%systemroot%\\\\[a-z0-9]+\\.exe\"\"\")) or\n\n (event.code : \"7045\" and\n winlog.event_data.ImagePath : (\"*COMSPEC*\", \"*\\\\172.0.0.1*\", \"*Admin$*\", \"*powershell*\", \"*rundll32*\", \"*cmd.exe*\", \"*PSEXESVC*\", \"*echo*\", \"*RemComSvc*\"))\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.ImagePath","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ServiceFileName","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious service was installed in the system v1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a new Windows service with suspicious Service command values. Windows services typically run as SYSTEM and can be used for privilege escalation and persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify how the service was created or modified. Look for registry changes events or Windows events related to\nservice activities (for example, 4697 and/or 7045).\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n\n\n### False positive analysis\n\n- Certain services such as PSEXECSVC may happen legitimately. The security team should address any potential benign true\npositive (B-TP) by excluding the relevant FP by pattern.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Delete the service or restore it to the original configuration.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"any where\n (event.code : \"4697\" and\n (winlog.event_data.ServiceFileName : (\"*COMSPEC*\", \"*\\\\172.0.0.1*\", \"*Admin$*\", \"*powershell*\", \"*rundll32*\", \"*cmd.exe*\", \"*PSEXESVC*\", \"*echo*\", \"*RemComSvc*\") or\n winlog.event_data.ServiceFileName regex~ \"\"\"%systemroot%\\\\[a-z0-9]+\\.exe\"\"\")) or\n\n (event.code : \"7045\" and\n winlog.event_data.ImagePath : (\"*COMSPEC*\", \"*\\\\172.0.0.1*\", \"*Admin$*\", \"*powershell*\", \"*rundll32*\", \"*cmd.exe*\", \"*PSEXESVC*\", \"*echo*\", \"*RemComSvc*\"))\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.ImagePath","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ServiceFileName","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"da87eee1-129c-4661-a7aa-57d0b9645fad","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/dafa3235-76dc-40e2-9f71-1773b96d24cf.json b/fleet-packages/detection-rules-composite/kibana/security_rule/dafa3235-76dc-40e2-9f71-1773b96d24cf.json new file mode 100644 index 0000000000000..273999596e6a6 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/dafa3235-76dc-40e2-9f71-1773b96d24cf.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"dafa3235-76dc-40e2-9f71-1773b96d24cf","versions":[{"name":"Multi-Factor Authentication Disabled for an Azure User v103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when multi-factor authentication (MFA) is disabled for an Azure user account. An adversary may disable MFA for a user account in order to weaken the authentication requirements for the account.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Multi-Factor Authentication Disabled for an Azure User\n\nMulti-factor authentication is a process in which users are prompted during the sign-in process for an additional form\nof identification, such as a code on their cellphone or a fingerprint scan.\n\nIf you only use a password to authenticate a user, it leaves an insecure vector for attack. If the password is weak or\nhas been exposed elsewhere, an attacker could be using it to gain access. When you require a second form of authentication,\nsecurity is increased because this additional factor isn't something that's easy for an attacker to obtain or duplicate.\n\nFor more information about using MFA in Azure AD, access the [official documentation](https://docs.microsoft.com/en-us/azure/active-directory/authentication/concept-mfa-howitworks#how-to-enable-and-use-azure-ad-multi-factor-authentication).\n\nThis rule identifies the deactivation of MFA for an Azure user account. This modification weakens account security\nand can lead to the compromise of accounts and other assets.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- While this activity can be done by administrators, all users must use MFA. The security team should address any\npotential benign true positive (B-TP), as this configuration can risk the user and domain.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Reactivate multi-factor authentication for the user.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security defaults [provided by Microsoft](https://docs.microsoft.com/en-us/azure/active-directory/fundamentals/concept-fundamentals-security-defaults).\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Disable Strong Authentication\" and event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Multi-Factor Authentication Disabled for an Azure User v103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when multi-factor authentication (MFA) is disabled for an Azure user account. An adversary may disable MFA for a user account in order to weaken the authentication requirements for the account.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Multi-Factor Authentication Disabled for an Azure User\n\nMulti-factor authentication is a process in which users are prompted during the sign-in process for an additional form\nof identification, such as a code on their cellphone or a fingerprint scan.\n\nIf you only use a password to authenticate a user, it leaves an insecure vector for attack. If the password is weak or\nhas been exposed elsewhere, an attacker could be using it to gain access. When you require a second form of authentication,\nsecurity is increased because this additional factor isn't something that's easy for an attacker to obtain or duplicate.\n\nFor more information about using MFA in Azure AD, access the [official documentation](https://docs.microsoft.com/en-us/azure/active-directory/authentication/concept-mfa-howitworks#how-to-enable-and-use-azure-ad-multi-factor-authentication).\n\nThis rule identifies the deactivation of MFA for an Azure user account. This modification weakens account security\nand can lead to the compromise of accounts and other assets.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- While this activity can be done by administrators, all users must use MFA. The security team should address any\npotential benign true positive (B-TP), as this configuration can risk the user and domain.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Reactivate multi-factor authentication for the user.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security defaults [provided by Microsoft](https://docs.microsoft.com/en-us/azure/active-directory/fundamentals/concept-fundamentals-security-defaults).\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Disable Strong Authentication\" and event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Multi-Factor Authentication Disabled for an Azure User v103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when multi-factor authentication (MFA) is disabled for an Azure user account. An adversary may disable MFA for a user account in order to weaken the authentication requirements for the account.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Multi-Factor Authentication Disabled for an Azure User\n\nMulti-factor authentication is a process in which users are prompted during the sign-in process for an additional form\nof identification, such as a code on their cellphone or a fingerprint scan.\n\nIf you only use a password to authenticate a user, it leaves an insecure vector for attack. If the password is weak or\nhas been exposed elsewhere, an attacker could be using it to gain access. When you require a second form of authentication,\nsecurity is increased because this additional factor isn't something that's easy for an attacker to obtain or duplicate.\n\nFor more information about using MFA in Azure AD, access the [official documentation](https://docs.microsoft.com/en-us/azure/active-directory/authentication/concept-mfa-howitworks#how-to-enable-and-use-azure-ad-multi-factor-authentication).\n\nThis rule identifies the deactivation of MFA for an Azure user account. This modification weakens account security\nand can lead to the compromise of accounts and other assets.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- While this activity can be done by administrators, all users must use MFA. The security team should address any\npotential benign true positive (B-TP), as this configuration can risk the user and domain.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Reactivate multi-factor authentication for the user.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security defaults [provided by Microsoft](https://docs.microsoft.com/en-us/azure/active-directory/fundamentals/concept-fundamentals-security-defaults).\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Disable Strong Authentication\" and event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"dafa3235-76dc-40e2-9f71-1773b96d24cf","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/db8c33a8-03cd-4988-9e2c-d0a4863adb13.json b/fleet-packages/detection-rules-composite/kibana/security_rule/db8c33a8-03cd-4988-9e2c-d0a4863adb13.json new file mode 100644 index 0000000000000..8fdfb29a25da7 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/db8c33a8-03cd-4988-9e2c-d0a4863adb13.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"db8c33a8-03cd-4988-9e2c-d0a4863adb13","versions":[{"name":"Credential Dumping - Prevented - Elastic Endgame v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented Credential Dumping. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:cred_theft_event or endgame.event_subtype_full:cred_theft_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Credential Dumping - Prevented - Elastic Endgame v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented Credential Dumping. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:cred_theft_event or endgame.event_subtype_full:cred_theft_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Credential Dumping - Prevented - Elastic Endgame v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented Credential Dumping. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:cred_theft_event or endgame.event_subtype_full:cred_theft_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]}]},"id":"db8c33a8-03cd-4988-9e2c-d0a4863adb13","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/dc9c1f74-dac3-48e3-b47f-eb79db358f57.json b/fleet-packages/detection-rules-composite/kibana/security_rule/dc9c1f74-dac3-48e3-b47f-eb79db358f57.json new file mode 100644 index 0000000000000..02c23724b9f70 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/dc9c1f74-dac3-48e3-b47f-eb79db358f57.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"dc9c1f74-dac3-48e3-b47f-eb79db358f57","versions":[{"name":"Volume Shadow Copy Deletion via WMIC v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of wmic.exe for shadow copy deletion on endpoints. This commonly occurs in tandem with ransomware or other destructive attacks.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Volume Shadow Copy Deletion via WMIC\n\nThe Volume Shadow Copy Service (VSS) is a Windows feature that enables system administrators to take snapshots of volumes\nthat can later be restored or mounted to recover specific files or folders.\n\nA typical step in the playbook of an attacker attempting to deploy ransomware is to delete Volume Shadow\nCopies to ensure that victims have no alternative to paying the ransom, making any action that deletes shadow\ncopies worth monitoring.\n\nThis rule monitors the execution of `wmic.exe` to interact with VSS via the `shadowcopy` alias and delete parameter.\n\n#### Possible investigation steps\n\n- Investigate the program execution chain (parent process tree).\n- Check whether the account is authorized to perform this operation.\n- Contact the account owner and confirm whether they are aware of this activity.\n- In the case of a resize operation, check if the resize value is equal to suspicious values, like 401MB.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- If unsigned files are found on the process tree, retrieve them and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Use process name, command line, and file hash to search for occurrences in other hosts.\n- Check if any files on the host machine have been encrypted.\n\n\n### False positive analysis\n\n- This rule has chances of producing benign true positives (B-TPs). If this activity is expected and noisy in your\nenvironment, consider adding exceptions — preferably with a combination of user and command line conditions.\n\n### Related rules\n\n- Volume Shadow Copy Deleted or Resized via VssAdmin - b5ea4bfe-a1b2-421f-9d47-22a75a6f2921\n- Volume Shadow Copy Deletion via PowerShell - d99a037b-c8e2-47a5-97b9-170d076827c4\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Priority should be given due to the advanced stage of this activity on the attack.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- If data was encrypted, deleted, or modified, activate your data recovery plan.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Perform data recovery locally or restore the backups from replicated copies (cloud, other servers, etc.).\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"WMIC.exe\" or process.pe.original_file_name == \"wmic.exe\") and\n process.args : \"delete\" and process.args : \"shadowcopy\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Volume Shadow Copy Deletion via WMIC v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of wmic.exe for shadow copy deletion on endpoints. This commonly occurs in tandem with ransomware or other destructive attacks.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Volume Shadow Copy Deletion via WMIC\n\nThe Volume Shadow Copy Service (VSS) is a Windows feature that enables system administrators to take snapshots of volumes\nthat can later be restored or mounted to recover specific files or folders.\n\nA typical step in the playbook of an attacker attempting to deploy ransomware is to delete Volume Shadow\nCopies to ensure that victims have no alternative to paying the ransom, making any action that deletes shadow\ncopies worth monitoring.\n\nThis rule monitors the execution of `wmic.exe` to interact with VSS via the `shadowcopy` alias and delete parameter.\n\n#### Possible investigation steps\n\n- Investigate the program execution chain (parent process tree).\n- Check whether the account is authorized to perform this operation.\n- Contact the account owner and confirm whether they are aware of this activity.\n- In the case of a resize operation, check if the resize value is equal to suspicious values, like 401MB.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- If unsigned files are found on the process tree, retrieve them and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Use process name, command line, and file hash to search for occurrences in other hosts.\n- Check if any files on the host machine have been encrypted.\n\n\n### False positive analysis\n\n- This rule has chances of producing benign true positives (B-TPs). If this activity is expected and noisy in your\nenvironment, consider adding exceptions — preferably with a combination of user and command line conditions.\n\n### Related rules\n\n- Volume Shadow Copy Deleted or Resized via VssAdmin - b5ea4bfe-a1b2-421f-9d47-22a75a6f2921\n- Volume Shadow Copy Deletion via PowerShell - d99a037b-c8e2-47a5-97b9-170d076827c4\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Priority should be given due to the advanced stage of this activity on the attack.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- If data was encrypted, deleted, or modified, activate your data recovery plan.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Perform data recovery locally or restore the backups from replicated copies (cloud, other servers, etc.).\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"WMIC.exe\" or process.pe.original_file_name == \"wmic.exe\") and\n process.args : \"delete\" and process.args : \"shadowcopy\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Volume Shadow Copy Deletion via WMIC v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of wmic.exe for shadow copy deletion on endpoints. This commonly occurs in tandem with ransomware or other destructive attacks.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Volume Shadow Copy Deletion via WMIC\n\nThe Volume Shadow Copy Service (VSS) is a Windows feature that enables system administrators to take snapshots of volumes\nthat can later be restored or mounted to recover specific files or folders.\n\nA typical step in the playbook of an attacker attempting to deploy ransomware is to delete Volume Shadow\nCopies to ensure that victims have no alternative to paying the ransom, making any action that deletes shadow\ncopies worth monitoring.\n\nThis rule monitors the execution of `wmic.exe` to interact with VSS via the `shadowcopy` alias and delete parameter.\n\n#### Possible investigation steps\n\n- Investigate the program execution chain (parent process tree).\n- Check whether the account is authorized to perform this operation.\n- Contact the account owner and confirm whether they are aware of this activity.\n- In the case of a resize operation, check if the resize value is equal to suspicious values, like 401MB.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- If unsigned files are found on the process tree, retrieve them and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Use process name, command line, and file hash to search for occurrences in other hosts.\n- Check if any files on the host machine have been encrypted.\n\n\n### False positive analysis\n\n- This rule has chances of producing benign true positives (B-TPs). If this activity is expected and noisy in your\nenvironment, consider adding exceptions — preferably with a combination of user and command line conditions.\n\n### Related rules\n\n- Volume Shadow Copy Deleted or Resized via VssAdmin - b5ea4bfe-a1b2-421f-9d47-22a75a6f2921\n- Volume Shadow Copy Deletion via PowerShell - d99a037b-c8e2-47a5-97b9-170d076827c4\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Priority should be given due to the advanced stage of this activity on the attack.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- If data was encrypted, deleted, or modified, activate your data recovery plan.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Perform data recovery locally or restore the backups from replicated copies (cloud, other servers, etc.).\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"WMIC.exe\" or process.pe.original_file_name == \"wmic.exe\") and\n process.args : \"delete\" and process.args : \"shadowcopy\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"dc9c1f74-dac3-48e3-b47f-eb79db358f57","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/dca28dee-c999-400f-b640-50a081cc0fd1.json b/fleet-packages/detection-rules-composite/kibana/security_rule/dca28dee-c999-400f-b640-50a081cc0fd1.json new file mode 100644 index 0000000000000..fc69c7f135622 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/dca28dee-c999-400f-b640-50a081cc0fd1.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"dca28dee-c999-400f-b640-50a081cc0fd1","versions":[{"name":"Unusual Country For an AWS Command v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected AWS command activity that, while not inherently suspicious or abnormal, is sourcing from a geolocation (country) that is unusual for the command. This can be the result of compromised credentials or keys being used by a threat actor in a different geography than the authorized user(s).","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Country For an AWS Command\n\nCloudTrail logging provides visibility on actions taken within an AWS environment. By monitoring these events and\nunderstanding what is considered normal behavior within an organization, you can spot suspicious or malicious activity\nwhen deviations occur.\n\nThis rule uses a machine learning job to detect an AWS API command that while not inherently suspicious or abnormal, is\nsourcing from a geolocation (country) that is unusual for the command. This can be the result of compromised credentials\nor keys used by a threat actor in a different geography than the authorized user(s).\n\nDetection alerts from this rule indicate an AWS API command or method call that is rare and unusual for the geolocation\nof the source IP address.\n\n#### Possible investigation steps\n\n- Identify the user account involved and the action performed. Verify whether it should perform this kind of action.\n - Examine the user identity in the `aws.cloudtrail.user_identity.arn` field and the access key ID in the\n `aws.cloudtrail.user_identity.access_key_id` field, which can help identify the precise user context.\n - The user agent details in the `user_agent.original` field may also indicate what kind of a client made the request.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, or network administrator activity.\n- Examine the request parameters. These might indicate the source of the program or the nature of its tasks.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Contact the account owner and confirm whether they are aware of this activity if suspicious.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False Positive Analysis\n\n- False positives can occur if activity is coming from new employees based in a country with no previous history in AWS.\n- Examine the history of the command. If the command only manifested recently, it might be part of a new automation\nmodule or script. If it has a consistent cadence (for example, it appears in small numbers on a weekly or monthly cadence),\nit might be part of a housekeeping or maintenance process. You can find the command in the `event.action field` field.\n\n### Related Rules\n\n- Unusual City For an AWS Command - 809b70d3-e2c3-455e-af1b-2626a5a1a276\n- Unusual AWS Command for a User - ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1\n- Rare AWS Error Code - 19de8096-e2b0-4bd8-80c9-34a820813fff\n- Spike in AWS Error Messages - 78d3d8d9-b476-451d-a9e0-7a5addd70670\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"false_positives":["New or unusual command and user geolocation activity can be due to manual troubleshooting or reconfiguration; changes in cloud automation scripts or workflows; adoption of new services; expansion into new regions; increased adoption of work from home policies; or users who travel frequently."],"from":"now-2h","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Cloud","AWS","ML","Investigation Guide"],"anomaly_threshold":50,"machine_learning_job_id":"rare_method_for_a_country","type":"machine_learning","related_integrations":[],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Unusual Country For an AWS Command v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected AWS command activity that, while not inherently suspicious or abnormal, is sourcing from a geolocation (country) that is unusual for the command. This can be the result of compromised credentials or keys being used by a threat actor in a different geography than the authorized user(s).","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Country For an AWS Command\n\nCloudTrail logging provides visibility on actions taken within an AWS environment. By monitoring these events and\nunderstanding what is considered normal behavior within an organization, you can spot suspicious or malicious activity\nwhen deviations occur.\n\nThis rule uses a machine learning job to detect an AWS API command that while not inherently suspicious or abnormal, is\nsourcing from a geolocation (country) that is unusual for the command. This can be the result of compromised credentials\nor keys used by a threat actor in a different geography than the authorized user(s).\n\nDetection alerts from this rule indicate an AWS API command or method call that is rare and unusual for the geolocation\nof the source IP address.\n\n#### Possible investigation steps\n\n- Identify the user account involved and the action performed. Verify whether it should perform this kind of action.\n - Examine the user identity in the `aws.cloudtrail.user_identity.arn` field and the access key ID in the\n `aws.cloudtrail.user_identity.access_key_id` field, which can help identify the precise user context.\n - The user agent details in the `user_agent.original` field may also indicate what kind of a client made the request.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, or network administrator activity.\n- Examine the request parameters. These might indicate the source of the program or the nature of its tasks.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Contact the account owner and confirm whether they are aware of this activity if suspicious.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False Positive Analysis\n\n- False positives can occur if activity is coming from new employees based in a country with no previous history in AWS.\n- Examine the history of the command. If the command only manifested recently, it might be part of a new automation\nmodule or script. If it has a consistent cadence (for example, it appears in small numbers on a weekly or monthly cadence),\nit might be part of a housekeeping or maintenance process. You can find the command in the `event.action field` field.\n\n### Related Rules\n\n- Unusual City For an AWS Command - 809b70d3-e2c3-455e-af1b-2626a5a1a276\n- Unusual AWS Command for a User - ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1\n- Rare AWS Error Code - 19de8096-e2b0-4bd8-80c9-34a820813fff\n- Spike in AWS Error Messages - 78d3d8d9-b476-451d-a9e0-7a5addd70670\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"false_positives":["New or unusual command and user geolocation activity can be due to manual troubleshooting or reconfiguration; changes in cloud automation scripts or workflows; adoption of new services; expansion into new regions; increased adoption of work from home policies; or users who travel frequently."],"from":"now-2h","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Cloud","AWS","ML","Investigation Guide"],"anomaly_threshold":50,"machine_learning_job_id":"rare_method_for_a_country","type":"machine_learning","related_integrations":[],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Unusual Country For an AWS Command v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected AWS command activity that, while not inherently suspicious or abnormal, is sourcing from a geolocation (country) that is unusual for the command. This can be the result of compromised credentials or keys being used by a threat actor in a different geography than the authorized user(s).","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Country For an AWS Command\n\nCloudTrail logging provides visibility on actions taken within an AWS environment. By monitoring these events and\nunderstanding what is considered normal behavior within an organization, you can spot suspicious or malicious activity\nwhen deviations occur.\n\nThis rule uses a machine learning job to detect an AWS API command that while not inherently suspicious or abnormal, is\nsourcing from a geolocation (country) that is unusual for the command. This can be the result of compromised credentials\nor keys used by a threat actor in a different geography than the authorized user(s).\n\nDetection alerts from this rule indicate an AWS API command or method call that is rare and unusual for the geolocation\nof the source IP address.\n\n#### Possible investigation steps\n\n- Identify the user account involved and the action performed. Verify whether it should perform this kind of action.\n - Examine the user identity in the `aws.cloudtrail.user_identity.arn` field and the access key ID in the\n `aws.cloudtrail.user_identity.access_key_id` field, which can help identify the precise user context.\n - The user agent details in the `user_agent.original` field may also indicate what kind of a client made the request.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, or network administrator activity.\n- Examine the request parameters. These might indicate the source of the program or the nature of its tasks.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Contact the account owner and confirm whether they are aware of this activity if suspicious.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False Positive Analysis\n\n- False positives can occur if activity is coming from new employees based in a country with no previous history in AWS.\n- Examine the history of the command. If the command only manifested recently, it might be part of a new automation\nmodule or script. If it has a consistent cadence (for example, it appears in small numbers on a weekly or monthly cadence),\nit might be part of a housekeeping or maintenance process. You can find the command in the `event.action field` field.\n\n### Related Rules\n\n- Unusual City For an AWS Command - 809b70d3-e2c3-455e-af1b-2626a5a1a276\n- Unusual AWS Command for a User - ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1\n- Rare AWS Error Code - 19de8096-e2b0-4bd8-80c9-34a820813fff\n- Spike in AWS Error Messages - 78d3d8d9-b476-451d-a9e0-7a5addd70670\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"false_positives":["New or unusual command and user geolocation activity can be due to manual troubleshooting or reconfiguration; changes in cloud automation scripts or workflows; adoption of new services; expansion into new regions; increased adoption of work from home policies; or users who travel frequently."],"from":"now-2h","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Cloud","AWS","ML","Investigation Guide"],"anomaly_threshold":50,"machine_learning_job_id":"rare_method_for_a_country","type":"machine_learning","related_integrations":[],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"dca28dee-c999-400f-b640-50a081cc0fd1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/dd7f1524-643e-11ed-9e35-f661ea17fbcd.json b/fleet-packages/detection-rules-composite/kibana/security_rule/dd7f1524-643e-11ed-9e35-f661ea17fbcd.json new file mode 100644 index 0000000000000..f11dcfe6e8975 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/dd7f1524-643e-11ed-9e35-f661ea17fbcd.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"dd7f1524-643e-11ed-9e35-f661ea17fbcd","versions":[{"name":"Reverse Shell Created via Named Pipe v1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a reverse shell via the abuse of named pipes on Linux with the help of OpenSSL or Netcat. First in, first out (FIFO) files are special files for reading and writing to by Linux processes. For this to work, a named pipe is created and passed to a Linux shell where the use of a network connection tool such as Netcat or OpenSSL has been established. The stdout and stderr are captured in the named pipe from the network connection and passed back to the shell for execution.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Netcat and OpenSSL are common tools used for establishing network connections and creating encryption keys. While they are popular, capturing the stdout and stderr in a named pipe pointed to a shell is anomalous."],"from":"now-9m","references":["https://int0x33.medium.com/day-43-reverse-shell-with-openssl-1ee2574aa998","https://blog.gregscharf.com/2021/03/22/tar-in-cronjob-to-privilege-escalation/","https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md#openssl"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.004","name":"Unix Shell","reference":"https://attack.mitre.org/techniques/T1059/004/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan = 5s\n [process where event.type == \"start\" and process.executable : (\"/usr/bin/mkfifo\",\"/usr/bin/mknod\") and process.args:(\"/tmp/*\",\"$*\")]\n [process where process.executable : (\"/bin/sh\",\"/bin/bash\") and process.args:(\"-i\") or\n (process.executable: (\"/usr/bin/openssl\") and process.args: (\"-connect\"))]\n [process where (process.name:(\"nc\",\"ncat\",\"netcat\",\"netcat.openbsd\",\"netcat.traditional\") or\n (process.name: \"openssl\" and process.executable: \"/usr/bin/openssl\"))]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Reverse Shell Created via Named Pipe v1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a reverse shell via the abuse of named pipes on Linux with the help of OpenSSL or Netcat. First in, first out (FIFO) files are special files for reading and writing to by Linux processes. For this to work, a named pipe is created and passed to a Linux shell where the use of a network connection tool such as Netcat or OpenSSL has been established. The stdout and stderr are captured in the named pipe from the network connection and passed back to the shell for execution.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Netcat and OpenSSL are common tools used for establishing network connections and creating encryption keys. While they are popular, capturing the stdout and stderr in a named pipe pointed to a shell is anomalous."],"from":"now-9m","references":["https://int0x33.medium.com/day-43-reverse-shell-with-openssl-1ee2574aa998","https://blog.gregscharf.com/2021/03/22/tar-in-cronjob-to-privilege-escalation/","https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md#openssl"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.004","name":"Unix Shell","reference":"https://attack.mitre.org/techniques/T1059/004/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan = 5s\n [process where event.type == \"start\" and process.executable : (\"/usr/bin/mkfifo\",\"/usr/bin/mknod\") and process.args:(\"/tmp/*\",\"$*\")]\n [process where process.executable : (\"/bin/sh\",\"/bin/bash\") and process.args:(\"-i\") or\n (process.executable: (\"/usr/bin/openssl\") and process.args: (\"-connect\"))]\n [process where (process.name:(\"nc\",\"ncat\",\"netcat\",\"netcat.openbsd\",\"netcat.traditional\") or\n (process.name: \"openssl\" and process.executable: \"/usr/bin/openssl\"))]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Reverse Shell Created via Named Pipe v1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a reverse shell via the abuse of named pipes on Linux with the help of OpenSSL or Netcat. First in, first out (FIFO) files are special files for reading and writing to by Linux processes. For this to work, a named pipe is created and passed to a Linux shell where the use of a network connection tool such as Netcat or OpenSSL has been established. The stdout and stderr are captured in the named pipe from the network connection and passed back to the shell for execution.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Netcat and OpenSSL are common tools used for establishing network connections and creating encryption keys. While they are popular, capturing the stdout and stderr in a named pipe pointed to a shell is anomalous."],"from":"now-9m","references":["https://int0x33.medium.com/day-43-reverse-shell-with-openssl-1ee2574aa998","https://blog.gregscharf.com/2021/03/22/tar-in-cronjob-to-privilege-escalation/","https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md#openssl"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.004","name":"Unix Shell","reference":"https://attack.mitre.org/techniques/T1059/004/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan = 5s\n [process where event.type == \"start\" and process.executable : (\"/usr/bin/mkfifo\",\"/usr/bin/mknod\") and process.args:(\"/tmp/*\",\"$*\")]\n [process where process.executable : (\"/bin/sh\",\"/bin/bash\") and process.args:(\"-i\") or\n (process.executable: (\"/usr/bin/openssl\") and process.args: (\"-connect\"))]\n [process where (process.name:(\"nc\",\"ncat\",\"netcat\",\"netcat.openbsd\",\"netcat.traditional\") or\n (process.name: \"openssl\" and process.executable: \"/usr/bin/openssl\"))]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"dd7f1524-643e-11ed-9e35-f661ea17fbcd","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/ddab1f5f-7089-44f5-9fda-de5b11322e77.json b/fleet-packages/detection-rules-composite/kibana/security_rule/ddab1f5f-7089-44f5-9fda-de5b11322e77.json new file mode 100644 index 0000000000000..87bd16c3a74bc --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/ddab1f5f-7089-44f5-9fda-de5b11322e77.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"ddab1f5f-7089-44f5-9fda-de5b11322e77","versions":[{"name":"NullSessionPipe Registry Modification v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies NullSessionPipe registry modifications that specify which pipes can be accessed anonymously. This could be indicative of adversary lateral movement preparation by making the added pipe available to everyone.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.welivesecurity.com/2019/05/29/turla-powershell-usage/","https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/network-access-restrict-anonymous-access-to-named-pipes-and-shares"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\nregistry.path : \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\services\\\\LanmanServer\\\\Parameters\\\\NullSessionPipes\" and\nlength(registry.data.strings) > 0\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},{"name":"NullSessionPipe Registry Modification v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies NullSessionPipe registry modifications that specify which pipes can be accessed anonymously. This could be indicative of adversary lateral movement preparation by making the added pipe available to everyone.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.welivesecurity.com/2019/05/29/turla-powershell-usage/","https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/network-access-restrict-anonymous-access-to-named-pipes-and-shares"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\nregistry.path : \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\services\\\\LanmanServer\\\\Parameters\\\\NullSessionPipes\" and\nlength(registry.data.strings) > 0\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},{"name":"NullSessionPipe Registry Modification v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies NullSessionPipe registry modifications that specify which pipes can be accessed anonymously. This could be indicative of adversary lateral movement preparation by making the added pipe available to everyone.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.welivesecurity.com/2019/05/29/turla-powershell-usage/","https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/network-access-restrict-anonymous-access-to-named-pipes-and-shares"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\nregistry.path : \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\services\\\\LanmanServer\\\\Parameters\\\\NullSessionPipes\" and\nlength(registry.data.strings) > 0\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]}]},"id":"ddab1f5f-7089-44f5-9fda-de5b11322e77","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/de9bd7e0-49e9-4e92-a64d-53ade2e66af1.json b/fleet-packages/detection-rules-composite/kibana/security_rule/de9bd7e0-49e9-4e92-a64d-53ade2e66af1.json new file mode 100644 index 0000000000000..1a91f82c68691 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/de9bd7e0-49e9-4e92-a64d-53ade2e66af1.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"de9bd7e0-49e9-4e92-a64d-53ade2e66af1","versions":[{"name":"Unusual Child Process from a System Virtual Process v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious child process of the Windows virtual system process, which could indicate code injection.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.pid == 4 and\n not process.executable : (\"Registry\", \"MemCompression\", \"?:\\\\Windows\\\\System32\\\\smss.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.pid","type":"long"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Unusual Child Process from a System Virtual Process v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious child process of the Windows virtual system process, which could indicate code injection.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.pid == 4 and\n not process.executable : (\"Registry\", \"MemCompression\", \"?:\\\\Windows\\\\System32\\\\smss.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.pid","type":"long"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Unusual Child Process from a System Virtual Process v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious child process of the Windows virtual system process, which could indicate code injection.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.pid == 4 and\n not process.executable : (\"Registry\", \"MemCompression\", \"?:\\\\Windows\\\\System32\\\\smss.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.pid","type":"long"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"de9bd7e0-49e9-4e92-a64d-53ade2e66af1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/debff20a-46bc-4a4d-bae5-5cdd14222795.json b/fleet-packages/detection-rules-composite/kibana/security_rule/debff20a-46bc-4a4d-bae5-5cdd14222795.json new file mode 100644 index 0000000000000..2d8abe7c9d01f --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/debff20a-46bc-4a4d-bae5-5cdd14222795.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"debff20a-46bc-4a4d-bae5-5cdd14222795","versions":[{"name":"Base16 or Base32 Encoding/Decoding Activity v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may encode/decode data in an attempt to evade detection by host- or network-based security controls.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Automated tools such as Jenkins may encode or decode files as part of their normal behavior. These events can be filtered by the process executable or username values."],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1140","name":"Deobfuscate/Decode Files or Information","reference":"https://attack.mitre.org/techniques/T1140/"},{"id":"T1027","name":"Obfuscated Files or Information","reference":"https://attack.mitre.org/techniques/T1027/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:(base16 or base32 or base32plain or base32hex)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Base16 or Base32 Encoding/Decoding Activity v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may encode/decode data in an attempt to evade detection by host- or network-based security controls.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Automated tools such as Jenkins may encode or decode files as part of their normal behavior. These events can be filtered by the process executable or username values."],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1140","name":"Deobfuscate/Decode Files or Information","reference":"https://attack.mitre.org/techniques/T1140/"},{"id":"T1027","name":"Obfuscated Files or Information","reference":"https://attack.mitre.org/techniques/T1027/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:(base16 or base32 or base32plain or base32hex)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Base16 or Base32 Encoding/Decoding Activity v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may encode/decode data in an attempt to evade detection by host- or network-based security controls.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Automated tools such as Jenkins may encode or decode files as part of their normal behavior. These events can be filtered by the process executable or username values."],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1140","name":"Deobfuscate/Decode Files or Information","reference":"https://attack.mitre.org/techniques/T1140/"},{"id":"T1027","name":"Obfuscated Files or Information","reference":"https://attack.mitre.org/techniques/T1027/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:(base16 or base32 or base32plain or base32hex)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"debff20a-46bc-4a4d-bae5-5cdd14222795","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/df197323-72a8-46a9-a08e-3f5b04a4a97a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/df197323-72a8-46a9-a08e-3f5b04a4a97a.json new file mode 100644 index 0000000000000..074f8eea239c4 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/df197323-72a8-46a9-a08e-3f5b04a4a97a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"df197323-72a8-46a9-a08e-3f5b04a4a97a","versions":[{"name":"Unusual Windows User Calling the Metadata Service v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for anomalous access to the cloud platform metadata service by an unusual user. The metadata service may be targeted in order to harvest credentials or user data scripts containing secrets.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program, or one that runs under a new or rarely used user context, could trigger this detection rule. Manual interrogation of the metadata service during debugging or troubleshooting could trigger this rule."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Windows","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.005","name":"Cloud Instance Metadata API","reference":"https://attack.mitre.org/techniques/T1552/005/"}]}]}],"anomaly_threshold":75,"machine_learning_job_id":["v3_windows_rare_metadata_user"],"type":"machine_learning"},{"name":"Unusual Windows User Calling the Metadata Service v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for anomalous access to the cloud platform metadata service by an unusual user. The metadata service may be targeted in order to harvest credentials or user data scripts containing secrets.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program, or one that runs under a new or rarely used user context, could trigger this detection rule. Manual interrogation of the metadata service during debugging or troubleshooting could trigger this rule."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Windows","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.005","name":"Cloud Instance Metadata API","reference":"https://attack.mitre.org/techniques/T1552/005/"}]}]}],"anomaly_threshold":75,"machine_learning_job_id":["v3_windows_rare_metadata_user"],"type":"machine_learning"},{"name":"Unusual Windows User Calling the Metadata Service v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for anomalous access to the cloud platform metadata service by an unusual user. The metadata service may be targeted in order to harvest credentials or user data scripts containing secrets.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program, or one that runs under a new or rarely used user context, could trigger this detection rule. Manual interrogation of the metadata service during debugging or troubleshooting could trigger this rule."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Windows","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.005","name":"Cloud Instance Metadata API","reference":"https://attack.mitre.org/techniques/T1552/005/"}]}]}],"anomaly_threshold":75,"machine_learning_job_id":["v3_windows_rare_metadata_user"],"type":"machine_learning"}]},"id":"df197323-72a8-46a9-a08e-3f5b04a4a97a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/df26fd74-1baa-4479-b42e-48da84642330.json b/fleet-packages/detection-rules-composite/kibana/security_rule/df26fd74-1baa-4479-b42e-48da84642330.json new file mode 100644 index 0000000000000..d96fd0fee4196 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/df26fd74-1baa-4479-b42e-48da84642330.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"df26fd74-1baa-4479-b42e-48da84642330","versions":[{"name":"Azure Automation Account Created v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Azure Automation account is created. Azure Automation accounts can be used to automate management tasks and orchestrate actions across systems. An adversary may create an Automation account in order to maintain persistence in their target's environment.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://powerzure.readthedocs.io/en/latest/Functions/operational.html#create-backdoor","https://github.com/hausec/PowerZure","https://posts.specterops.io/attacking-azure-azure-ad-and-introducing-powerzure-ca70b330511a","https://azure.microsoft.com/en-in/blog/azure-automation-runbook-management/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/WRITE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Automation Account Created v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Azure Automation account is created. Azure Automation accounts can be used to automate management tasks and orchestrate actions across systems. An adversary may create an Automation account in order to maintain persistence in their target's environment.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://powerzure.readthedocs.io/en/latest/Functions/operational.html#create-backdoor","https://github.com/hausec/PowerZure","https://posts.specterops.io/attacking-azure-azure-ad-and-introducing-powerzure-ca70b330511a","https://azure.microsoft.com/en-in/blog/azure-automation-runbook-management/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/WRITE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Automation Account Created v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Azure Automation account is created. Azure Automation accounts can be used to automate management tasks and orchestrate actions across systems. An adversary may create an Automation account in order to maintain persistence in their target's environment.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://powerzure.readthedocs.io/en/latest/Functions/operational.html#create-backdoor","https://github.com/hausec/PowerZure","https://posts.specterops.io/attacking-azure-azure-ad-and-introducing-powerzure-ca70b330511a","https://azure.microsoft.com/en-in/blog/azure-automation-runbook-management/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/WRITE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"df26fd74-1baa-4479-b42e-48da84642330","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/df6f62d9-caab-4b88-affa-044f4395a1e0.json b/fleet-packages/detection-rules-composite/kibana/security_rule/df6f62d9-caab-4b88-affa-044f4395a1e0.json new file mode 100644 index 0000000000000..ddb66596ff128 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/df6f62d9-caab-4b88-affa-044f4395a1e0.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"df6f62d9-caab-4b88-affa-044f4395a1e0","versions":[{"name":"Dynamic Linker Copy v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the copying of the Linux dynamic loader binary and subsequent file creation for the purpose of creating a backup copy. This technique was seen recently being utilized by Linux malware prior to patching the dynamic loader in order to inject and preload a malicious shared object file. This activity should never occur and if it does then it should be considered highly suspicious or malicious.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.intezer.com/blog/incident-response/orbit-new-undetected-linux-threat/"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Orbit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.006","name":"Dynamic Linker Hijacking","reference":"https://attack.mitre.org/techniques/T1574/006/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=1m\n[process where event.type == \"start\" and process.name : (\"cp\", \"rsync\") and process.args : (\"/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2\", \"/etc/ld.so.preload\")]\n[file where event.action == \"creation\" and file.extension == \"so\"]\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Dynamic Linker Copy v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the copying of the Linux dynamic loader binary and subsequent file creation for the purpose of creating a backup copy. This technique was seen recently being utilized by Linux malware prior to patching the dynamic loader in order to inject and preload a malicious shared object file. This activity should never occur and if it does then it should be considered highly suspicious or malicious.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.intezer.com/blog/incident-response/orbit-new-undetected-linux-threat/"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Orbit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.006","name":"Dynamic Linker Hijacking","reference":"https://attack.mitre.org/techniques/T1574/006/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=1m\n[process where event.type == \"start\" and process.name : (\"cp\", \"rsync\") and process.args : (\"/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2\", \"/etc/ld.so.preload\")]\n[file where event.action == \"creation\" and file.extension == \"so\"]\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Dynamic Linker Copy v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the copying of the Linux dynamic loader binary and subsequent file creation for the purpose of creating a backup copy. This technique was seen recently being utilized by Linux malware prior to patching the dynamic loader in order to inject and preload a malicious shared object file. This activity should never occur and if it does then it should be considered highly suspicious or malicious.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.intezer.com/blog/incident-response/orbit-new-undetected-linux-threat/"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Orbit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.006","name":"Dynamic Linker Hijacking","reference":"https://attack.mitre.org/techniques/T1574/006/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=1m\n[process where event.type == \"start\" and process.name : (\"cp\", \"rsync\") and process.args : (\"/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2\", \"/etc/ld.so.preload\")]\n[file where event.action == \"creation\" and file.extension == \"so\"]\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"df6f62d9-caab-4b88-affa-044f4395a1e0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/df7fda76-c92b-4943-bc68-04460a5ea5ba.json b/fleet-packages/detection-rules-composite/kibana/security_rule/df7fda76-c92b-4943-bc68-04460a5ea5ba.json new file mode 100644 index 0000000000000..d071dfdd3cc12 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/df7fda76-c92b-4943-bc68-04460a5ea5ba.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"df7fda76-c92b-4943-bc68-04460a5ea5ba","versions":[{"name":"Kubernetes Pod Created With HostPID v200.0.0","rule_version":"200.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects an attempt to create or modify a pod attached to the host PID namespace. HostPID allows a pod to access all the processes running on the host and could allow an attacker to take malicious action. When paired with ptrace this can be used to escalate privileges outside of the container. When paired with a privileged container, the pod can see all of the processes on the host. An attacker can enter the init system (PID 1) on the host. From there, they could execute a shell and continue to escalate privileges to root.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator or developer may want to use a pod that runs as root and shares the hosts IPC, Network, and PID namespaces for debugging purposes. If something is going wrong in the cluster and there is no easy way to SSH onto the host nodes directly, a privileged pod of this nature can be useful for viewing things like iptable rules and network namespaces from the host's perspective. Add exceptions for trusted container images using the query field \"kubernetes.audit.requestObject.spec.container.image\""],"references":["https://research.nccgroup.com/2021/11/10/detection-engineering-for-kubernetes-clusters/#part3-kubernetes-detections","https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces","https://bishopfox.com/blog/kubernetes-pod-privilege-escalation"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.objectRef.resource:\"pods\" \n and kubernetes.audit.verb:(\"create\" or \"update\" or \"patch\") \n and kubernetes.audit.requestObject.spec.hostPID:true\n and not kubernetes.audit.requestObject.spec.containers.image: (\"docker.elastic.co/beats/elastic-agent:8.4.0\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.hostPID","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},{"name":"Kubernetes Pod Created With HostPID v200.0.1","rule_version":"200.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects an attempt to create or modify a pod attached to the host PID namespace. HostPID allows a pod to access all the processes running on the host and could allow an attacker to take malicious action. When paired with ptrace this can be used to escalate privileges outside of the container. When paired with a privileged container, the pod can see all of the processes on the host. An attacker can enter the init system (PID 1) on the host. From there, they could execute a shell and continue to escalate privileges to root.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator or developer may want to use a pod that runs as root and shares the hosts IPC, Network, and PID namespaces for debugging purposes. If something is going wrong in the cluster and there is no easy way to SSH onto the host nodes directly, a privileged pod of this nature can be useful for viewing things like iptable rules and network namespaces from the host's perspective. Add exceptions for trusted container images using the query field \"kubernetes.audit.requestObject.spec.container.image\""],"references":["https://research.nccgroup.com/2021/11/10/detection-engineering-for-kubernetes-clusters/#part3-kubernetes-detections","https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces","https://bishopfox.com/blog/kubernetes-pod-privilege-escalation"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.objectRef.resource:\"pods\" \n and kubernetes.audit.verb:(\"create\" or \"update\" or \"patch\") \n and kubernetes.audit.requestObject.spec.hostPID:true\n and not kubernetes.audit.requestObject.spec.containers.image: (\"docker.elastic.co/beats/elastic-agent:8.4.0\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.hostPID","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},{"name":"Kubernetes Pod Created With HostPID v200.0.2","rule_version":"200.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects an attempt to create or modify a pod attached to the host PID namespace. HostPID allows a pod to access all the processes running on the host and could allow an attacker to take malicious action. When paired with ptrace this can be used to escalate privileges outside of the container. When paired with a privileged container, the pod can see all of the processes on the host. An attacker can enter the init system (PID 1) on the host. From there, they could execute a shell and continue to escalate privileges to root.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator or developer may want to use a pod that runs as root and shares the hosts IPC, Network, and PID namespaces for debugging purposes. If something is going wrong in the cluster and there is no easy way to SSH onto the host nodes directly, a privileged pod of this nature can be useful for viewing things like iptable rules and network namespaces from the host's perspective. Add exceptions for trusted container images using the query field \"kubernetes.audit.requestObject.spec.container.image\""],"references":["https://research.nccgroup.com/2021/11/10/detection-engineering-for-kubernetes-clusters/#part3-kubernetes-detections","https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces","https://bishopfox.com/blog/kubernetes-pod-privilege-escalation"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.objectRef.resource:\"pods\" \n and kubernetes.audit.verb:(\"create\" or \"update\" or \"patch\") \n and kubernetes.audit.requestObject.spec.hostPID:true\n and not kubernetes.audit.requestObject.spec.containers.image: (\"docker.elastic.co/beats/elastic-agent:8.4.0\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.hostPID","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."}]},"id":"df7fda76-c92b-4943-bc68-04460a5ea5ba","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e02bd3ea-72c6-4181-ac2b-0f83d17ad969.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e02bd3ea-72c6-4181-ac2b-0f83d17ad969.json new file mode 100644 index 0000000000000..16240c1cf20a8 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e02bd3ea-72c6-4181-ac2b-0f83d17ad969.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e02bd3ea-72c6-4181-ac2b-0f83d17ad969","versions":[{"name":"Azure Firewall Policy Deletion v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a firewall policy in Azure. An adversary may delete a firewall policy in an attempt to evade defenses and/or to eliminate barriers to their objective.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Firewall policy deletions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Firewall policy deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/firewall-manager/policy-overview"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.NETWORK/FIREWALLPOLICIES/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Firewall Policy Deletion v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a firewall policy in Azure. An adversary may delete a firewall policy in an attempt to evade defenses and/or to eliminate barriers to their objective.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Firewall policy deletions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Firewall policy deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/firewall-manager/policy-overview"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.NETWORK/FIREWALLPOLICIES/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Firewall Policy Deletion v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a firewall policy in Azure. An adversary may delete a firewall policy in an attempt to evade defenses and/or to eliminate barriers to their objective.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Firewall policy deletions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Firewall policy deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/firewall-manager/policy-overview"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.NETWORK/FIREWALLPOLICIES/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"e02bd3ea-72c6-4181-ac2b-0f83d17ad969","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e052c845-48d0-4f46-8a13-7d0aba05df82.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e052c845-48d0-4f46-8a13-7d0aba05df82.json new file mode 100644 index 0000000000000..3643548e4c71f --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e052c845-48d0-4f46-8a13-7d0aba05df82.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e052c845-48d0-4f46-8a13-7d0aba05df82","versions":[{"name":"KRBTGT Delegation Backdoor v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the modification of the msDS-AllowedToDelegateTo attribute to KRBTGT. Attackers can use this technique to maintain persistence to the domain by having the ability to request tickets for the KRBTGT service.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://skyblue.team/posts/delegate-krbtgt","https://github.com/atc-project/atomic-threat-coverage/blob/master/Atomic_Threat_Coverage/Logging_Policies/LP_0026_windows_audit_user_account_management.md"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Active Directory"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/"}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:modified-user-account and event.code:4738 and winlog.event_data.AllowedToDelegateTo:*krbtgt*\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AllowedToDelegateTo","type":"unknown"}],"setup":"The 'Audit User Account Management' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nAccount Management >\nAudit User Account Management (Success,Failure)\n```"},{"name":"KRBTGT Delegation Backdoor v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the modification of the msDS-AllowedToDelegateTo attribute to KRBTGT. Attackers can use this technique to maintain persistence to the domain by having the ability to request tickets for the KRBTGT service.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://skyblue.team/posts/delegate-krbtgt","https://github.com/atc-project/atomic-threat-coverage/blob/master/Atomic_Threat_Coverage/Logging_Policies/LP_0026_windows_audit_user_account_management.md"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Active Directory"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/"}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:modified-user-account and event.code:4738 and winlog.event_data.AllowedToDelegateTo:*krbtgt*\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AllowedToDelegateTo","type":"unknown"}],"setup":"The 'Audit User Account Management' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nAccount Management >\nAudit User Account Management (Success,Failure)\n```"},{"name":"KRBTGT Delegation Backdoor v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the modification of the msDS-AllowedToDelegateTo attribute to KRBTGT. Attackers can use this technique to maintain persistence to the domain by having the ability to request tickets for the KRBTGT service.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://skyblue.team/posts/delegate-krbtgt","https://github.com/atc-project/atomic-threat-coverage/blob/master/Atomic_Threat_Coverage/Logging_Policies/LP_0026_windows_audit_user_account_management.md"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Active Directory"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/"}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:modified-user-account and event.code:4738 and winlog.event_data.AllowedToDelegateTo:*krbtgt*\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AllowedToDelegateTo","type":"unknown"}],"setup":"The 'Audit User Account Management' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nAccount Management >\nAudit User Account Management (Success,Failure)\n```"}]},"id":"e052c845-48d0-4f46-8a13-7d0aba05df82","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e08ccd49-0380-4b2b-8d71-8000377d6e49.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e08ccd49-0380-4b2b-8d71-8000377d6e49.json new file mode 100644 index 0000000000000..f03b6270a483c --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e08ccd49-0380-4b2b-8d71-8000377d6e49.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e08ccd49-0380-4b2b-8d71-8000377d6e49","versions":[{"name":"Attempts to Brute Force an Okta User Account v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Okta user account is locked out 3 times within a 3 hour window. An adversary may attempt a brute force or password spraying attack to obtain unauthorized access to user accounts. The default Okta authentication policy ensures that a user account is locked out after 10 failed authentication attempts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic","@BenB196","Austin Songer"],"from":"now-180m","references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:okta.system and event.action:user.account.lock\n","threshold":{"field":["okta.actor.alternate_id"],"value":3},"type":"threshold","index":["filebeat-*","logs-okta*"],"language":"kuery","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempts to Brute Force an Okta User Account v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Okta user account is locked out 3 times within a 3 hour window. An adversary may attempt a brute force or password spraying attack to obtain unauthorized access to user accounts. The default Okta authentication policy ensures that a user account is locked out after 10 failed authentication attempts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic","@BenB196","Austin Songer"],"from":"now-180m","references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:okta.system and event.action:user.account.lock\n","threshold":{"field":["okta.actor.alternate_id"],"value":3},"type":"threshold","index":["filebeat-*","logs-okta*"],"language":"kuery","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempts to Brute Force an Okta User Account v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Okta user account is locked out 3 times within a 3 hour window. An adversary may attempt a brute force or password spraying attack to obtain unauthorized access to user accounts. The default Okta authentication policy ensures that a user account is locked out after 10 failed authentication attempts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic","@BenB196","Austin Songer"],"from":"now-180m","references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:okta.system and event.action:user.account.lock\n","threshold":{"field":["okta.actor.alternate_id"],"value":3},"type":"threshold","index":["filebeat-*","logs-okta*"],"language":"kuery","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"e08ccd49-0380-4b2b-8d71-8000377d6e49","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e0f36de1-0342-453d-95a9-a068b257b053.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e0f36de1-0342-453d-95a9-a068b257b053.json new file mode 100644 index 0000000000000..597cded7c6a98 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e0f36de1-0342-453d-95a9-a068b257b053.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e0f36de1-0342-453d-95a9-a068b257b053","versions":[{"name":"Azure Event Hub Deletion v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an Event Hub deletion in Azure. An Event Hub is an event processing service that ingests and processes large volumes of events and data. An adversary may delete an Event Hub in an attempt to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Event Hub deletions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Event Hub deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-about","https://azure.microsoft.com/en-in/services/event-hubs/","https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-features"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.EVENTHUB/NAMESPACES/EVENTHUBS/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Event Hub Deletion v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an Event Hub deletion in Azure. An Event Hub is an event processing service that ingests and processes large volumes of events and data. An adversary may delete an Event Hub in an attempt to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Event Hub deletions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Event Hub deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-about","https://azure.microsoft.com/en-in/services/event-hubs/","https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-features"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.EVENTHUB/NAMESPACES/EVENTHUBS/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Event Hub Deletion v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an Event Hub deletion in Azure. An Event Hub is an event processing service that ingests and processes large volumes of events and data. An adversary may delete an Event Hub in an attempt to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Event Hub deletions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Event Hub deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-about","https://azure.microsoft.com/en-in/services/event-hubs/","https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-features"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.EVENTHUB/NAMESPACES/EVENTHUBS/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"e0f36de1-0342-453d-95a9-a068b257b053","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e12c0318-99b1-44f2-830c-3a38a43207ca.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e12c0318-99b1-44f2-830c-3a38a43207ca.json new file mode 100644 index 0000000000000..da2ffd00bbdfa --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e12c0318-99b1-44f2-830c-3a38a43207ca.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e12c0318-99b1-44f2-830c-3a38a43207ca","versions":[{"name":"AWS Route Table Created v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an AWS Route Table has been created.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Route Tables may be created by a system or network administrators. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Route Table creation by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule. Automated processes that use Terraform may lead to false positives."],"from":"now-60m","interval":"10m","references":["https://docs.datadoghq.com/security_platform/default_rules/aws-ec2-route-table-modified/","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateRoute.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateRouteTable"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:(CreateRoute or CreateRouteTable) and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Route Table Created v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an AWS Route Table has been created.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Route Tables may be created by a system or network administrators. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Route Table creation by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule. Automated processes that use Terraform may lead to false positives."],"from":"now-60m","interval":"10m","references":["https://docs.datadoghq.com/security_platform/default_rules/aws-ec2-route-table-modified/","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateRoute.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateRouteTable"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:(CreateRoute or CreateRouteTable) and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Route Table Created v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an AWS Route Table has been created.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Route Tables may be created by a system or network administrators. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Route Table creation by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule. Automated processes that use Terraform may lead to false positives."],"from":"now-60m","interval":"10m","references":["https://docs.datadoghq.com/security_platform/default_rules/aws-ec2-route-table-modified/","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateRoute.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateRouteTable"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:(CreateRoute or CreateRouteTable) and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"e12c0318-99b1-44f2-830c-3a38a43207ca","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e14c5fd7-fdd7-49c2-9e5b-ec49d817bc8d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e14c5fd7-fdd7-49c2-9e5b-ec49d817bc8d.json new file mode 100644 index 0000000000000..ab7ed35612dfd --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e14c5fd7-fdd7-49c2-9e5b-ec49d817bc8d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e14c5fd7-fdd7-49c2-9e5b-ec49d817bc8d","versions":[{"name":"AWS RDS Cluster Creation v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a new Amazon Relational Database Service (RDS) Aurora DB cluster or global database spread across multiple regions.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Valid clusters may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Cluster creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/create-db-cluster.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/create-global-cluster.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateGlobalCluster.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1133","name":"External Remote Services","reference":"https://attack.mitre.org/techniques/T1133/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:(CreateDBCluster or CreateGlobalCluster) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS RDS Cluster Creation v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a new Amazon Relational Database Service (RDS) Aurora DB cluster or global database spread across multiple regions.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Valid clusters may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Cluster creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/create-db-cluster.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/create-global-cluster.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateGlobalCluster.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1133","name":"External Remote Services","reference":"https://attack.mitre.org/techniques/T1133/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:(CreateDBCluster or CreateGlobalCluster) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS RDS Cluster Creation v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a new Amazon Relational Database Service (RDS) Aurora DB cluster or global database spread across multiple regions.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Valid clusters may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Cluster creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/create-db-cluster.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/create-global-cluster.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateGlobalCluster.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1133","name":"External Remote Services","reference":"https://attack.mitre.org/techniques/T1133/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:(CreateDBCluster or CreateGlobalCluster) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"e14c5fd7-fdd7-49c2-9e5b-ec49d817bc8d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e19e64ee-130e-4c07-961f-8a339f0b8362.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e19e64ee-130e-4c07-961f-8a339f0b8362.json new file mode 100644 index 0000000000000..74cc59be01f90 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e19e64ee-130e-4c07-961f-8a339f0b8362.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e19e64ee-130e-4c07-961f-8a339f0b8362","versions":[{"name":"Connection to External Network via Telnet v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Telnet provides a command line interface for communication with a remote device or server. This rule identifies Telnet network connections to publicly routable IP addresses.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Telnet can be used for both benign or malicious purposes. Telnet is included by default in some Linux distributions, so its presence is not inherently suspicious. The use of Telnet to manage devices remotely has declined in recent years in favor of more secure protocols such as SSH. Telnet usage by non-automated tools or frameworks may be suspicious."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Linux","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name == \"telnet\" and event.type == \"start\"]\n [network where process.name == \"telnet\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\",\n \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\",\n \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Connection to External Network via Telnet v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Telnet provides a command line interface for communication with a remote device or server. This rule identifies Telnet network connections to publicly routable IP addresses.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Telnet can be used for both benign or malicious purposes. Telnet is included by default in some Linux distributions, so its presence is not inherently suspicious. The use of Telnet to manage devices remotely has declined in recent years in favor of more secure protocols such as SSH. Telnet usage by non-automated tools or frameworks may be suspicious."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Linux","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name == \"telnet\" and event.type == \"start\"]\n [network where process.name == \"telnet\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\",\n \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\",\n \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Connection to External Network via Telnet v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Telnet provides a command line interface for communication with a remote device or server. This rule identifies Telnet network connections to publicly routable IP addresses.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Telnet can be used for both benign or malicious purposes. Telnet is included by default in some Linux distributions, so its presence is not inherently suspicious. The use of Telnet to manage devices remotely has declined in recent years in favor of more secure protocols such as SSH. Telnet usage by non-automated tools or frameworks may be suspicious."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Linux","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name == \"telnet\" and event.type == \"start\"]\n [network where process.name == \"telnet\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\",\n \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\",\n \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"e19e64ee-130e-4c07-961f-8a339f0b8362","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e26aed74-c816-40d3-a810-48d6fbd8b2fd.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e26aed74-c816-40d3-a810-48d6fbd8b2fd.json new file mode 100644 index 0000000000000..0158cb1635c19 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e26aed74-c816-40d3-a810-48d6fbd8b2fd.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e26aed74-c816-40d3-a810-48d6fbd8b2fd","versions":[{"name":"Spike in Logon Events from a Source IP v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job found an unusually large spike in successful authentication events from a particular source IP address. This can be due to password spraying, user enumeration or brute force activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Build servers and CI systems can sometimes trigger this alert. Security test cycles that include brute force or password spraying activities may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_high_count_logon_events_for_a_source_ip","type":"machine_learning"},{"name":"Spike in Logon Events from a Source IP v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job found an unusually large spike in successful authentication events from a particular source IP address. This can be due to password spraying, user enumeration or brute force activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Build servers and CI systems can sometimes trigger this alert. Security test cycles that include brute force or password spraying activities may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_high_count_logon_events_for_a_source_ip","type":"machine_learning"},{"name":"Spike in Logon Events from a Source IP v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job found an unusually large spike in successful authentication events from a particular source IP address. This can be due to password spraying, user enumeration or brute force activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Build servers and CI systems can sometimes trigger this alert. Security test cycles that include brute force or password spraying activities may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_high_count_logon_events_for_a_source_ip","type":"machine_learning"}]},"id":"e26aed74-c816-40d3-a810-48d6fbd8b2fd","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e26f042e-c590-4e82-8e05-41e81bd822ad.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e26f042e-c590-4e82-8e05-41e81bd822ad.json new file mode 100644 index 0000000000000..e6aafb372e673 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e26f042e-c590-4e82-8e05-41e81bd822ad.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e26f042e-c590-4e82-8e05-41e81bd822ad","versions":[{"name":"Suspicious .NET Reflection via PowerShell v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of Reflection.Assembly to load PEs and DLLs in memory in PowerShell scripts. Attackers use this method to load executables and DLLs without writing to the disk, bypassing security solutions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious .NET Reflection via PowerShell\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can use .NET reflection to load PEs and DLLs in memory. These payloads are commonly embedded in the script,\nwhich can circumvent file-based security protections.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the script using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately outside engineering or IT business units. As long as the analyst did\nnot identify malware or suspicious activity related to the user or host, this alert can be dismissed.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n- PowerShell Suspicious Payload Encoded and Compressed - 81fe9dc6-a2d7-4192-a2d8-eed98afc766a\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/dotnet/api/system.reflection.assembly.load"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/","subtechnique":[{"id":"T1055.001","name":"Dynamic-link Library Injection","reference":"https://attack.mitre.org/techniques/T1055/001/"},{"id":"T1055.002","name":"Portable Executable Injection","reference":"https://attack.mitre.org/techniques/T1055/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n \"[System.Reflection.Assembly]::Load\" or\n \"[Reflection.Assembly]::Load\"\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},{"name":"Suspicious .NET Reflection via PowerShell v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of Reflection.Assembly to load PEs and DLLs in memory in PowerShell scripts. Attackers use this method to load executables and DLLs without writing to the disk, bypassing security solutions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious .NET Reflection via PowerShell\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can use .NET reflection to load PEs and DLLs in memory. These payloads are commonly embedded in the script,\nwhich can circumvent file-based security protections.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the script using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately outside engineering or IT business units. As long as the analyst did\nnot identify malware or suspicious activity related to the user or host, this alert can be dismissed.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n- PowerShell Suspicious Payload Encoded and Compressed - 81fe9dc6-a2d7-4192-a2d8-eed98afc766a\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/dotnet/api/system.reflection.assembly.load"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/","subtechnique":[{"id":"T1055.001","name":"Dynamic-link Library Injection","reference":"https://attack.mitre.org/techniques/T1055/001/"},{"id":"T1055.002","name":"Portable Executable Injection","reference":"https://attack.mitre.org/techniques/T1055/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n \"[System.Reflection.Assembly]::Load\" or\n \"[Reflection.Assembly]::Load\"\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},{"name":"Suspicious .NET Reflection via PowerShell v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of Reflection.Assembly to load PEs and DLLs in memory in PowerShell scripts. Attackers use this method to load executables and DLLs without writing to the disk, bypassing security solutions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious .NET Reflection via PowerShell\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can use .NET reflection to load PEs and DLLs in memory. These payloads are commonly embedded in the script,\nwhich can circumvent file-based security protections.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the script using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately outside engineering or IT business units. As long as the analyst did\nnot identify malware or suspicious activity related to the user or host, this alert can be dismissed.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n- PowerShell Suspicious Payload Encoded and Compressed - 81fe9dc6-a2d7-4192-a2d8-eed98afc766a\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/dotnet/api/system.reflection.assembly.load"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/","subtechnique":[{"id":"T1055.001","name":"Dynamic-link Library Injection","reference":"https://attack.mitre.org/techniques/T1055/001/"},{"id":"T1055.002","name":"Portable Executable Injection","reference":"https://attack.mitre.org/techniques/T1055/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n \"[System.Reflection.Assembly]::Load\" or\n \"[Reflection.Assembly]::Load\"\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"}]},"id":"e26f042e-c590-4e82-8e05-41e81bd822ad","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e2a67480-3b79-403d-96e3-fdd2992c50ef.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e2a67480-3b79-403d-96e3-fdd2992c50ef.json new file mode 100644 index 0000000000000..7ba45dfb9c0b0 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e2a67480-3b79-403d-96e3-fdd2992c50ef.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e2a67480-3b79-403d-96e3-fdd2992c50ef","versions":[{"name":"AWS Management Console Root Login v103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a successful login to the AWS Management Console by the Root user.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS Management Console Root Login\n\nThe AWS root account is the one identity that has complete access to all AWS services and resources in the account,\nwhich is created when the AWS account is created. AWS strongly recommends that you do not use the root user for your\neveryday tasks, even the administrative ones. Instead, adhere to the best practice of using the root user only to create\nyour first IAM user. Then securely lock away the root user credentials and use them to perform only a few account and\nservice management tasks. AWS provides a [list of the tasks that require root user](https://docs.aws.amazon.com/general/latest/gr/root-vs-iam.html#aws_tasks-that-require-root).\n\nThis rule looks for attempts to log in to the AWS Management Console as the root user.\n\n#### Possible investigation steps\n\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Examine whether this activity is common in the environment by looking for past occurrences on your logs.\n- Consider the source IP address and geolocation for the calling user who issued the command. Do they look normal for the\n calling user?\n- Examine the commands, API calls, and data management actions performed by the account in the last 24 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking access to servers,\nservices, and data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- The alert can be dismissed if this operation is done under change management and approved according to the\norganization's policy for performing a task that needs this privilege level.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Identify the services or servers involved criticality.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify if there are any regulatory or legal ramifications related to this activity.\n- Configure multi-factor authentication for the user.\n- Follow security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["It's strongly recommended that the root user is not used for everyday tasks, including the administrative ones. Verify whether the IP address, location, and/or hostname should be logging in as root in your environment. Unfamiliar root logins should be investigated immediately. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:signin.amazonaws.com and event.action:ConsoleLogin and aws.cloudtrail.user_identity.type:Root and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.user_identity.type","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Management Console Root Login v103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a successful login to the AWS Management Console by the Root user.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS Management Console Root Login\n\nThe AWS root account is the one identity that has complete access to all AWS services and resources in the account,\nwhich is created when the AWS account is created. AWS strongly recommends that you do not use the root user for your\neveryday tasks, even the administrative ones. Instead, adhere to the best practice of using the root user only to create\nyour first IAM user. Then securely lock away the root user credentials and use them to perform only a few account and\nservice management tasks. AWS provides a [list of the tasks that require root user](https://docs.aws.amazon.com/general/latest/gr/root-vs-iam.html#aws_tasks-that-require-root).\n\nThis rule looks for attempts to log in to the AWS Management Console as the root user.\n\n#### Possible investigation steps\n\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Examine whether this activity is common in the environment by looking for past occurrences on your logs.\n- Consider the source IP address and geolocation for the calling user who issued the command. Do they look normal for the\n calling user?\n- Examine the commands, API calls, and data management actions performed by the account in the last 24 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking access to servers,\nservices, and data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- The alert can be dismissed if this operation is done under change management and approved according to the\norganization's policy for performing a task that needs this privilege level.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Identify the services or servers involved criticality.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify if there are any regulatory or legal ramifications related to this activity.\n- Configure multi-factor authentication for the user.\n- Follow security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["It's strongly recommended that the root user is not used for everyday tasks, including the administrative ones. Verify whether the IP address, location, and/or hostname should be logging in as root in your environment. Unfamiliar root logins should be investigated immediately. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:signin.amazonaws.com and event.action:ConsoleLogin and aws.cloudtrail.user_identity.type:Root and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.user_identity.type","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Management Console Root Login v103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a successful login to the AWS Management Console by the Root user.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS Management Console Root Login\n\nThe AWS root account is the one identity that has complete access to all AWS services and resources in the account,\nwhich is created when the AWS account is created. AWS strongly recommends that you do not use the root user for your\neveryday tasks, even the administrative ones. Instead, adhere to the best practice of using the root user only to create\nyour first IAM user. Then securely lock away the root user credentials and use them to perform only a few account and\nservice management tasks. AWS provides a [list of the tasks that require root user](https://docs.aws.amazon.com/general/latest/gr/root-vs-iam.html#aws_tasks-that-require-root).\n\nThis rule looks for attempts to log in to the AWS Management Console as the root user.\n\n#### Possible investigation steps\n\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Examine whether this activity is common in the environment by looking for past occurrences on your logs.\n- Consider the source IP address and geolocation for the calling user who issued the command. Do they look normal for the\n calling user?\n- Examine the commands, API calls, and data management actions performed by the account in the last 24 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking access to servers,\nservices, and data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- The alert can be dismissed if this operation is done under change management and approved according to the\norganization's policy for performing a task that needs this privilege level.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Identify the services or servers involved criticality.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify if there are any regulatory or legal ramifications related to this activity.\n- Configure multi-factor authentication for the user.\n- Follow security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["It's strongly recommended that the root user is not used for everyday tasks, including the administrative ones. Verify whether the IP address, location, and/or hostname should be logging in as root in your environment. Unfamiliar root logins should be investigated immediately. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:signin.amazonaws.com and event.action:ConsoleLogin and aws.cloudtrail.user_identity.type:Root and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.user_identity.type","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"e2a67480-3b79-403d-96e3-fdd2992c50ef","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e2f9fdf5-8076-45ad-9427-41e0e03dc9c2.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e2f9fdf5-8076-45ad-9427-41e0e03dc9c2.json new file mode 100644 index 0000000000000..429ef7db374c6 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e2f9fdf5-8076-45ad-9427-41e0e03dc9c2.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e2f9fdf5-8076-45ad-9427-41e0e03dc9c2","versions":[{"name":"Suspicious Process Execution via Renamed PsExec Executable v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious psexec activity which is executing from the psexec service that has been renamed, possibly to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1569","name":"System Services","reference":"https://attack.mitre.org/techniques/T1569/","subtechnique":[{"id":"T1569.002","name":"Service Execution","reference":"https://attack.mitre.org/techniques/T1569/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name : \"psexesvc.exe\" and not process.name : \"PSEXESVC.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious Process Execution via Renamed PsExec Executable v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious psexec activity which is executing from the psexec service that has been renamed, possibly to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1569","name":"System Services","reference":"https://attack.mitre.org/techniques/T1569/","subtechnique":[{"id":"T1569.002","name":"Service Execution","reference":"https://attack.mitre.org/techniques/T1569/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name : \"psexesvc.exe\" and not process.name : \"PSEXESVC.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious Process Execution via Renamed PsExec Executable v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious psexec activity which is executing from the psexec service that has been renamed, possibly to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1569","name":"System Services","reference":"https://attack.mitre.org/techniques/T1569/","subtechnique":[{"id":"T1569.002","name":"Service Execution","reference":"https://attack.mitre.org/techniques/T1569/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name : \"psexesvc.exe\" and not process.name : \"PSEXESVC.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"e2f9fdf5-8076-45ad-9427-41e0e03dc9c2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e2fb5b18-e33c-4270-851e-c3d675c9afcd.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e2fb5b18-e33c-4270-851e-c3d675c9afcd.json new file mode 100644 index 0000000000000..9dc1e80271f0d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e2fb5b18-e33c-4270-851e-c3d675c9afcd.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e2fb5b18-e33c-4270-851e-c3d675c9afcd","versions":[{"name":"GCP IAM Role Deletion v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an Identity and Access Management (IAM) role deletion in Google Cloud Platform (GCP). A role contains a set of permissions that allows you to perform specific actions on Google Cloud resources. An adversary may delete an IAM role to inhibit access to accounts utilized by legitimate users.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Role deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Role deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/iam/docs/understanding-roles"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.DeleteRole and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP IAM Role Deletion v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an Identity and Access Management (IAM) role deletion in Google Cloud Platform (GCP). A role contains a set of permissions that allows you to perform specific actions on Google Cloud resources. An adversary may delete an IAM role to inhibit access to accounts utilized by legitimate users.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Role deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Role deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/iam/docs/understanding-roles"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.DeleteRole and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP IAM Role Deletion v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an Identity and Access Management (IAM) role deletion in Google Cloud Platform (GCP). A role contains a set of permissions that allows you to perform specific actions on Google Cloud resources. An adversary may delete an IAM role to inhibit access to accounts utilized by legitimate users.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Role deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Role deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/iam/docs/understanding-roles"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.DeleteRole and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"e2fb5b18-e33c-4270-851e-c3d675c9afcd","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e3343ab9-4245-4715-b344-e11c56b0a47f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e3343ab9-4245-4715-b344-e11c56b0a47f.json new file mode 100644 index 0000000000000..f9a354770f6db --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e3343ab9-4245-4715-b344-e11c56b0a47f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e3343ab9-4245-4715-b344-e11c56b0a47f","versions":[{"name":"Process Activity via Compiled HTML File v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Compiled HTML files (.chm) are commonly distributed as part of the Microsoft HTML Help system. Adversaries may conceal malicious code in a CHM file and deliver it to a victim for execution. CHM content is loaded by the HTML Help executable program (hh.exe).","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The HTML Help executable program (hh.exe) runs whenever a user clicks a compiled help (.chm) file or menu item that opens the help file inside the Help Viewer. This is not always malicious, but adversaries may abuse this technology to conceal malicious code."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1204","name":"User Execution","reference":"https://attack.mitre.org/techniques/T1204/","subtechnique":[{"id":"T1204.002","name":"Malicious File","reference":"https://attack.mitre.org/techniques/T1204/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.001","name":"Compiled HTML File","reference":"https://attack.mitre.org/techniques/T1218/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"hh.exe\" and\n process.name : (\"mshta.exe\", \"cmd.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\", \"cscript.exe\", \"wscript.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Process Activity via Compiled HTML File v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Compiled HTML files (.chm) are commonly distributed as part of the Microsoft HTML Help system. Adversaries may conceal malicious code in a CHM file and deliver it to a victim for execution. CHM content is loaded by the HTML Help executable program (hh.exe).","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The HTML Help executable program (hh.exe) runs whenever a user clicks a compiled help (.chm) file or menu item that opens the help file inside the Help Viewer. This is not always malicious, but adversaries may abuse this technology to conceal malicious code."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1204","name":"User Execution","reference":"https://attack.mitre.org/techniques/T1204/","subtechnique":[{"id":"T1204.002","name":"Malicious File","reference":"https://attack.mitre.org/techniques/T1204/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.001","name":"Compiled HTML File","reference":"https://attack.mitre.org/techniques/T1218/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"hh.exe\" and\n process.name : (\"mshta.exe\", \"cmd.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\", \"cscript.exe\", \"wscript.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Process Activity via Compiled HTML File v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Compiled HTML files (.chm) are commonly distributed as part of the Microsoft HTML Help system. Adversaries may conceal malicious code in a CHM file and deliver it to a victim for execution. CHM content is loaded by the HTML Help executable program (hh.exe).","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The HTML Help executable program (hh.exe) runs whenever a user clicks a compiled help (.chm) file or menu item that opens the help file inside the Help Viewer. This is not always malicious, but adversaries may abuse this technology to conceal malicious code."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1204","name":"User Execution","reference":"https://attack.mitre.org/techniques/T1204/","subtechnique":[{"id":"T1204.002","name":"Malicious File","reference":"https://attack.mitre.org/techniques/T1204/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.001","name":"Compiled HTML File","reference":"https://attack.mitre.org/techniques/T1218/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"hh.exe\" and\n process.name : (\"mshta.exe\", \"cmd.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\", \"cscript.exe\", \"wscript.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"e3343ab9-4245-4715-b344-e11c56b0a47f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e3c27562-709a-42bd-82f2-3ed926cced19.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e3c27562-709a-42bd-82f2-3ed926cced19.json new file mode 100644 index 0000000000000..824a6d51aab3b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e3c27562-709a-42bd-82f2-3ed926cced19.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e3c27562-709a-42bd-82f2-3ed926cced19","versions":[{"name":"AWS Route53 private hosted zone associated with a VPC v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Route53 private hosted zone has been associated with VPC.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["A private hosted zone may be asssociated with a VPC by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/Route53/latest/APIReference/API_AssociateVPCWithHostedZone.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:route53.amazonaws.com and event.action:AssociateVPCWithHostedZone and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Route53 private hosted zone associated with a VPC v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Route53 private hosted zone has been associated with VPC.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["A private hosted zone may be asssociated with a VPC by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/Route53/latest/APIReference/API_AssociateVPCWithHostedZone.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:route53.amazonaws.com and event.action:AssociateVPCWithHostedZone and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Route53 private hosted zone associated with a VPC v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Route53 private hosted zone has been associated with VPC.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["A private hosted zone may be asssociated with a VPC by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/Route53/latest/APIReference/API_AssociateVPCWithHostedZone.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:route53.amazonaws.com and event.action:AssociateVPCWithHostedZone and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"e3c27562-709a-42bd-82f2-3ed926cced19","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e3c5d5cb-41d5-4206-805c-f30561eae3ac.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e3c5d5cb-41d5-4206-805c-f30561eae3ac.json new file mode 100644 index 0000000000000..af4d33fe1259d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e3c5d5cb-41d5-4206-805c-f30561eae3ac.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e3c5d5cb-41d5-4206-805c-f30561eae3ac","versions":[{"name":"Ransomware - Prevented - Elastic Endgame v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented ransomware. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame"],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:ransomware_event or endgame.event_subtype_full:ransomware_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Ransomware - Prevented - Elastic Endgame v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented ransomware. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame"],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:ransomware_event or endgame.event_subtype_full:ransomware_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"Ransomware - Prevented - Elastic Endgame v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented ransomware. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame"],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:ransomware_event or endgame.event_subtype_full:ransomware_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]}]},"id":"e3c5d5cb-41d5-4206-805c-f30561eae3ac","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e3cf38fa-d5b8-46cc-87f9-4a7513e4281d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e3cf38fa-d5b8-46cc-87f9-4a7513e4281d.json new file mode 100644 index 0000000000000..8be2eed609f9b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e3cf38fa-d5b8-46cc-87f9-4a7513e4281d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e3cf38fa-d5b8-46cc-87f9-4a7513e4281d","versions":[{"name":"Connection to Commonly Abused Free SSL Certificate Providers v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual processes connecting to domains using known free SSL certificates. Adversaries may employ a known encryption algorithm to conceal command and control traffic.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1573","name":"Encrypted Channel","reference":"https://attack.mitre.org/techniques/T1573/"}]}],"language":"eql","query":"network where network.protocol == \"dns\" and\n /* Add new free SSL certificate provider domains here */\n dns.question.name : (\"*letsencrypt.org\", \"*.sslforfree.com\", \"*.zerossl.com\", \"*.freessl.org\") and\n\n /* Native Windows process paths that are unlikely to have network connections to domains secured using free SSL certificates */\n process.executable : (\"C:\\\\Windows\\\\System32\\\\*.exe\",\n \"C:\\\\Windows\\\\System\\\\*.exe\",\n\t \"C:\\\\Windows\\\\SysWOW64\\\\*.exe\",\n\t\t \"C:\\\\Windows\\\\Microsoft.NET\\\\Framework*\\\\*.exe\",\n\t\t \"C:\\\\Windows\\\\explorer.exe\",\n\t\t \"C:\\\\Windows\\\\notepad.exe\") and\n\n /* Insert noisy false positives here */\n not process.name : (\"svchost.exe\", \"MicrosoftEdge*.exe\", \"msedge.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dns.question.name","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Connection to Commonly Abused Free SSL Certificate Providers v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual processes connecting to domains using known free SSL certificates. Adversaries may employ a known encryption algorithm to conceal command and control traffic.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1573","name":"Encrypted Channel","reference":"https://attack.mitre.org/techniques/T1573/"}]}],"language":"eql","query":"network where network.protocol == \"dns\" and\n /* Add new free SSL certificate provider domains here */\n dns.question.name : (\"*letsencrypt.org\", \"*.sslforfree.com\", \"*.zerossl.com\", \"*.freessl.org\") and\n\n /* Native Windows process paths that are unlikely to have network connections to domains secured using free SSL certificates */\n process.executable : (\"C:\\\\Windows\\\\System32\\\\*.exe\",\n \"C:\\\\Windows\\\\System\\\\*.exe\",\n\t \"C:\\\\Windows\\\\SysWOW64\\\\*.exe\",\n\t\t \"C:\\\\Windows\\\\Microsoft.NET\\\\Framework*\\\\*.exe\",\n\t\t \"C:\\\\Windows\\\\explorer.exe\",\n\t\t \"C:\\\\Windows\\\\notepad.exe\") and\n\n /* Insert noisy false positives here */\n not process.name : (\"svchost.exe\", \"MicrosoftEdge*.exe\", \"msedge.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dns.question.name","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Connection to Commonly Abused Free SSL Certificate Providers v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual processes connecting to domains using known free SSL certificates. Adversaries may employ a known encryption algorithm to conceal command and control traffic.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1573","name":"Encrypted Channel","reference":"https://attack.mitre.org/techniques/T1573/"}]}],"language":"eql","query":"network where network.protocol == \"dns\" and\n /* Add new free SSL certificate provider domains here */\n dns.question.name : (\"*letsencrypt.org\", \"*.sslforfree.com\", \"*.zerossl.com\", \"*.freessl.org\") and\n\n /* Native Windows process paths that are unlikely to have network connections to domains secured using free SSL certificates */\n process.executable : (\"C:\\\\Windows\\\\System32\\\\*.exe\",\n \"C:\\\\Windows\\\\System\\\\*.exe\",\n\t \"C:\\\\Windows\\\\SysWOW64\\\\*.exe\",\n\t\t \"C:\\\\Windows\\\\Microsoft.NET\\\\Framework*\\\\*.exe\",\n\t\t \"C:\\\\Windows\\\\explorer.exe\",\n\t\t \"C:\\\\Windows\\\\notepad.exe\") and\n\n /* Insert noisy false positives here */\n not process.name : (\"svchost.exe\", \"MicrosoftEdge*.exe\", \"msedge.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dns.question.name","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"e3cf38fa-d5b8-46cc-87f9-4a7513e4281d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e3e904b3-0a8e-4e68-86a8-977a163e21d3.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e3e904b3-0a8e-4e68-86a8-977a163e21d3.json new file mode 100644 index 0000000000000..5fab320d62e5c --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e3e904b3-0a8e-4e68-86a8-977a163e21d3.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e3e904b3-0a8e-4e68-86a8-977a163e21d3","versions":[{"name":"Persistence via KDE AutoStart Script or Desktop File Modification v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of a K Desktop Environment (KDE) AutoStart script or desktop file that will execute upon each user logon. Adversaries may abuse this method for persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://userbase.kde.org/System_Settings/Autostart","https://www.amnesty.org/en/latest/research/2020/09/german-made-finspy-spyware-found-in-egypt-and-mac-and-linux-versions-revealed/","https://www.intezer.com/blog/research/operation-electrorat-attacker-creates-fake-companies-to-drain-your-crypto-wallets/"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.extension in (\"sh\", \"desktop\") and\n file.path :\n (\n \"/home/*/.config/autostart/*\", \"/root/.config/autostart/*\",\n \"/home/*/.kde/Autostart/*\", \"/root/.kde/Autostart/*\",\n \"/home/*/.kde4/Autostart/*\", \"/root/.kde4/Autostart/*\",\n \"/home/*/.kde/share/autostart/*\", \"/root/.kde/share/autostart/*\",\n \"/home/*/.kde4/share/autostart/*\", \"/root/.kde4/share/autostart/*\",\n \"/home/*/.local/share/autostart/*\", \"/root/.local/share/autostart/*\",\n \"/home/*/.config/autostart-scripts/*\", \"/root/.config/autostart-scripts/*\",\n \"/etc/xdg/autostart/*\", \"/usr/share/autostart/*\"\n ) and\n not process.name in (\"yum\", \"dpkg\", \"install\", \"dnf\", \"teams\", \"yum-cron\", \"dnf-automatic\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Persistence via KDE AutoStart Script or Desktop File Modification v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of a K Desktop Environment (KDE) AutoStart script or desktop file that will execute upon each user logon. Adversaries may abuse this method for persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://userbase.kde.org/System_Settings/Autostart","https://www.amnesty.org/en/latest/research/2020/09/german-made-finspy-spyware-found-in-egypt-and-mac-and-linux-versions-revealed/","https://www.intezer.com/blog/research/operation-electrorat-attacker-creates-fake-companies-to-drain-your-crypto-wallets/"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.extension in (\"sh\", \"desktop\") and\n file.path :\n (\n \"/home/*/.config/autostart/*\", \"/root/.config/autostart/*\",\n \"/home/*/.kde/Autostart/*\", \"/root/.kde/Autostart/*\",\n \"/home/*/.kde4/Autostart/*\", \"/root/.kde4/Autostart/*\",\n \"/home/*/.kde/share/autostart/*\", \"/root/.kde/share/autostart/*\",\n \"/home/*/.kde4/share/autostart/*\", \"/root/.kde4/share/autostart/*\",\n \"/home/*/.local/share/autostart/*\", \"/root/.local/share/autostart/*\",\n \"/home/*/.config/autostart-scripts/*\", \"/root/.config/autostart-scripts/*\",\n \"/etc/xdg/autostart/*\", \"/usr/share/autostart/*\"\n ) and\n not process.name in (\"yum\", \"dpkg\", \"install\", \"dnf\", \"teams\", \"yum-cron\", \"dnf-automatic\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Persistence via KDE AutoStart Script or Desktop File Modification v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of a K Desktop Environment (KDE) AutoStart script or desktop file that will execute upon each user logon. Adversaries may abuse this method for persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://userbase.kde.org/System_Settings/Autostart","https://www.amnesty.org/en/latest/research/2020/09/german-made-finspy-spyware-found-in-egypt-and-mac-and-linux-versions-revealed/","https://www.intezer.com/blog/research/operation-electrorat-attacker-creates-fake-companies-to-drain-your-crypto-wallets/"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.extension in (\"sh\", \"desktop\") and\n file.path :\n (\n \"/home/*/.config/autostart/*\", \"/root/.config/autostart/*\",\n \"/home/*/.kde/Autostart/*\", \"/root/.kde/Autostart/*\",\n \"/home/*/.kde4/Autostart/*\", \"/root/.kde4/Autostart/*\",\n \"/home/*/.kde/share/autostart/*\", \"/root/.kde/share/autostart/*\",\n \"/home/*/.kde4/share/autostart/*\", \"/root/.kde4/share/autostart/*\",\n \"/home/*/.local/share/autostart/*\", \"/root/.local/share/autostart/*\",\n \"/home/*/.config/autostart-scripts/*\", \"/root/.config/autostart-scripts/*\",\n \"/etc/xdg/autostart/*\", \"/usr/share/autostart/*\"\n ) and\n not process.name in (\"yum\", \"dpkg\", \"install\", \"dnf\", \"teams\", \"yum-cron\", \"dnf-automatic\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"e3e904b3-0a8e-4e68-86a8-977a163e21d3","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e48236ca-b67a-4b4e-840c-fdc7782bc0c3.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e48236ca-b67a-4b4e-840c-fdc7782bc0c3.json new file mode 100644 index 0000000000000..94ac48b74d5d8 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e48236ca-b67a-4b4e-840c-fdc7782bc0c3.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e48236ca-b67a-4b4e-840c-fdc7782bc0c3","versions":[{"name":"Attempt to Modify an Okta Network Zone v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to modify an Okta network zone. Okta network zones can be configured to limit or restrict access to a network based on IP addresses or geolocations. An adversary may attempt to modify, delete, or deactivate an Okta network zone in order to remove or weaken an organization's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Oyour organization's Okta network zones are regularly modified."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/network/network-zones.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Network Security","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:(zone.update or network_zone.rule.disabled or zone.remove_blacklist)\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Modify an Okta Network Zone v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to modify an Okta network zone. Okta network zones can be configured to limit or restrict access to a network based on IP addresses or geolocations. An adversary may attempt to modify, delete, or deactivate an Okta network zone in order to remove or weaken an organization's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Oyour organization's Okta network zones are regularly modified."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/network/network-zones.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Network Security","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:(zone.update or network_zone.rule.disabled or zone.remove_blacklist)\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Modify an Okta Network Zone v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to modify an Okta network zone. Okta network zones can be configured to limit or restrict access to a network based on IP addresses or geolocations. An adversary may attempt to modify, delete, or deactivate an Okta network zone in order to remove or weaken an organization's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Oyour organization's Okta network zones are regularly modified."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/network/network-zones.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Network Security","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:(zone.update or network_zone.rule.disabled or zone.remove_blacklist)\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"e48236ca-b67a-4b4e-840c-fdc7782bc0c3","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e4e31051-ee01-4307-a6ee-b21b186958f4.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e4e31051-ee01-4307-a6ee-b21b186958f4.json new file mode 100644 index 0000000000000..7a155ffd6bae7 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e4e31051-ee01-4307-a6ee-b21b186958f4.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e4e31051-ee01-4307-a6ee-b21b186958f4","versions":[{"name":"Service Creation via Local Kerberos Authentication v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious local successful logon event where the Logon Package is Kerberos, the remote address is set to localhost, followed by a sevice creation from the same LogonId. This may indicate an attempt to leverage a Kerberos relay attack variant that can be used to elevate privilege locally from a domain joined user to local System privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://github.com/Dec0ne/KrbRelayUp","https://googleprojectzero.blogspot.com/2021/10/using-kerberos-for-authentication-relay.html","https://github.com/cube0x0/KrbRelay","https://gist.github.com/tyranid/c24cfd1bd141d14d4925043ee7e03c82"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/"}]}],"language":"eql","query":"sequence by host.id with maxspan=5m\n [authentication where\n\n /* event 4624 need to be logged */\n event.action == \"logged-in\" and event.outcome == \"success\" and\n\n /* authenticate locally using relayed kerberos Ticket */\n winlog.event_data.AuthenticationPackageName :\"Kerberos\" and winlog.logon.type == \"Network\" and\n cidrmatch(source.ip, \"127.0.0.0/8\", \"::1\") and source.port > 0] by winlog.event_data.TargetLogonId\n\n [any where\n /* event 4697 need to be logged */\n event.action : \"service-installed\"] by winlog.event_data.SubjectLogonId\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"},{"ecs":false,"name":"winlog.event_data.AuthenticationPackageName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetLogonId","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}]},{"name":"Service Creation via Local Kerberos Authentication v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious local successful logon event where the Logon Package is Kerberos, the remote address is set to localhost, followed by a sevice creation from the same LogonId. This may indicate an attempt to leverage a Kerberos relay attack variant that can be used to elevate privilege locally from a domain joined user to local System privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://github.com/Dec0ne/KrbRelayUp","https://googleprojectzero.blogspot.com/2021/10/using-kerberos-for-authentication-relay.html","https://github.com/cube0x0/KrbRelay","https://gist.github.com/tyranid/c24cfd1bd141d14d4925043ee7e03c82"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/"}]}],"language":"eql","query":"sequence by host.id with maxspan=5m\n [authentication where\n\n /* event 4624 need to be logged */\n event.action == \"logged-in\" and event.outcome == \"success\" and\n\n /* authenticate locally using relayed kerberos Ticket */\n winlog.event_data.AuthenticationPackageName :\"Kerberos\" and winlog.logon.type == \"Network\" and\n cidrmatch(source.ip, \"127.0.0.0/8\", \"::1\") and source.port > 0] by winlog.event_data.TargetLogonId\n\n [any where\n /* event 4697 need to be logged */\n event.action : \"service-installed\"] by winlog.event_data.SubjectLogonId\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"},{"ecs":false,"name":"winlog.event_data.AuthenticationPackageName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetLogonId","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}]},{"name":"Service Creation via Local Kerberos Authentication v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious local successful logon event where the Logon Package is Kerberos, the remote address is set to localhost, followed by a sevice creation from the same LogonId. This may indicate an attempt to leverage a Kerberos relay attack variant that can be used to elevate privilege locally from a domain joined user to local System privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://github.com/Dec0ne/KrbRelayUp","https://googleprojectzero.blogspot.com/2021/10/using-kerberos-for-authentication-relay.html","https://github.com/cube0x0/KrbRelay","https://gist.github.com/tyranid/c24cfd1bd141d14d4925043ee7e03c82"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/"}]}],"language":"eql","query":"sequence by host.id with maxspan=5m\n [authentication where\n\n /* event 4624 need to be logged */\n event.action == \"logged-in\" and event.outcome == \"success\" and\n\n /* authenticate locally using relayed kerberos Ticket */\n winlog.event_data.AuthenticationPackageName :\"Kerberos\" and winlog.logon.type == \"Network\" and\n cidrmatch(source.ip, \"127.0.0.0/8\", \"::1\") and source.port > 0] by winlog.event_data.TargetLogonId\n\n [any where\n /* event 4697 need to be logged */\n event.action : \"service-installed\"] by winlog.event_data.SubjectLogonId\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"},{"ecs":false,"name":"winlog.event_data.AuthenticationPackageName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetLogonId","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}]}]},"id":"e4e31051-ee01-4307-a6ee-b21b186958f4","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e514d8cd-ed15-4011-84e2-d15147e059f1.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e514d8cd-ed15-4011-84e2-d15147e059f1.json new file mode 100644 index 0000000000000..6e89ea501b182 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e514d8cd-ed15-4011-84e2-d15147e059f1.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e514d8cd-ed15-4011-84e2-d15147e059f1","versions":[{"name":"Kerberos Pre-authentication Disabled for User v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the modification of an account's Kerberos pre-authentication options. An adversary with GenericWrite/GenericAll rights over the account can maliciously modify these settings to perform offline password cracking attacks such as AS-REP roasting.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Kerberos Pre-authentication Disabled for User\n\nKerberos pre-authentication is an account protection against offline password cracking. When enabled, a user requesting\naccess to a resource initiates communication with the Domain Controller (DC) by sending an Authentication Server Request\n(AS-REQ) message with a timestamp that is encrypted with the hash of their password. If and only if the DC is able to\nsuccessfully decrypt the timestamp with the hash of the user’s password, it will then send an Authentication Server\nResponse (AS-REP) message that contains the Ticket Granting Ticket (TGT) to the user. Part of the AS-REP message is\nsigned with the user’s password. Microsoft's security monitoring [recommendations](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4738) state that `'Don't Require Preauth' – Enabled` should not be enabled for user accounts because it weakens security for the account’s Kerberos authentication.\n\nAS-REP roasting is an attack against Kerberos for user accounts that do not require pre-authentication, which means that\nif the target user has pre-authentication disabled, an attacker can request authentication data for it and get a TGT that\ncan be brute-forced offline, similarly to Kerberoasting.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Determine if the target account is sensitive or privileged.\n- Inspect the account activities for suspicious or abnormal behaviors in the alert timeframe.\n\n### False positive analysis\n\n- Disabling pre-authentication is a bad security practice and should not be allowed in the domain. The security team\nshould map and monitor any potential benign true positives (B-TPs), especially if the target account is privileged.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Reset the target account's password if there is any risk of TGTs having been retrieved.\n- Re-enable the preauthentication option or disable the target account.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://harmj0y.medium.com/roasting-as-reps-e6179a65216b","https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4738","https://github.com/atc-project/atomic-threat-coverage/blob/master/Atomic_Threat_Coverage/Logging_Policies/LP_0026_windows_audit_user_account_management.md"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/","subtechnique":[{"id":"T1558.004","name":"AS-REP Roasting","reference":"https://attack.mitre.org/techniques/T1558/004/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.code:4738 and message:\"'Don't Require Preauth' - Enabled\"\n","required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"message","type":"match_only_text"}],"setup":"The 'Audit User Account Management' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nAccount Management >\nAudit User Account Management (Success,Failure)\n```"},{"name":"Kerberos Pre-authentication Disabled for User v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the modification of an account's Kerberos pre-authentication options. An adversary with GenericWrite/GenericAll rights over the account can maliciously modify these settings to perform offline password cracking attacks such as AS-REP roasting.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Kerberos Pre-authentication Disabled for User\n\nKerberos pre-authentication is an account protection against offline password cracking. When enabled, a user requesting\naccess to a resource initiates communication with the Domain Controller (DC) by sending an Authentication Server Request\n(AS-REQ) message with a timestamp that is encrypted with the hash of their password. If and only if the DC is able to\nsuccessfully decrypt the timestamp with the hash of the user’s password, it will then send an Authentication Server\nResponse (AS-REP) message that contains the Ticket Granting Ticket (TGT) to the user. Part of the AS-REP message is\nsigned with the user’s password. Microsoft's security monitoring [recommendations](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4738) state that `'Don't Require Preauth' – Enabled` should not be enabled for user accounts because it weakens security for the account’s Kerberos authentication.\n\nAS-REP roasting is an attack against Kerberos for user accounts that do not require pre-authentication, which means that\nif the target user has pre-authentication disabled, an attacker can request authentication data for it and get a TGT that\ncan be brute-forced offline, similarly to Kerberoasting.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Determine if the target account is sensitive or privileged.\n- Inspect the account activities for suspicious or abnormal behaviors in the alert timeframe.\n\n### False positive analysis\n\n- Disabling pre-authentication is a bad security practice and should not be allowed in the domain. The security team\nshould map and monitor any potential benign true positives (B-TPs), especially if the target account is privileged.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Reset the target account's password if there is any risk of TGTs having been retrieved.\n- Re-enable the preauthentication option or disable the target account.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://harmj0y.medium.com/roasting-as-reps-e6179a65216b","https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4738","https://github.com/atc-project/atomic-threat-coverage/blob/master/Atomic_Threat_Coverage/Logging_Policies/LP_0026_windows_audit_user_account_management.md"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/","subtechnique":[{"id":"T1558.004","name":"AS-REP Roasting","reference":"https://attack.mitre.org/techniques/T1558/004/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.code:4738 and message:\"'Don't Require Preauth' - Enabled\"\n","required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"message","type":"match_only_text"}],"setup":"The 'Audit User Account Management' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nAccount Management >\nAudit User Account Management (Success,Failure)\n```"},{"name":"Kerberos Pre-authentication Disabled for User v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the modification of an account's Kerberos pre-authentication options. An adversary with GenericWrite/GenericAll rights over the account can maliciously modify these settings to perform offline password cracking attacks such as AS-REP roasting.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Kerberos Pre-authentication Disabled for User\n\nKerberos pre-authentication is an account protection against offline password cracking. When enabled, a user requesting\naccess to a resource initiates communication with the Domain Controller (DC) by sending an Authentication Server Request\n(AS-REQ) message with a timestamp that is encrypted with the hash of their password. If and only if the DC is able to\nsuccessfully decrypt the timestamp with the hash of the user’s password, it will then send an Authentication Server\nResponse (AS-REP) message that contains the Ticket Granting Ticket (TGT) to the user. Part of the AS-REP message is\nsigned with the user’s password. Microsoft's security monitoring [recommendations](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4738) state that `'Don't Require Preauth' – Enabled` should not be enabled for user accounts because it weakens security for the account’s Kerberos authentication.\n\nAS-REP roasting is an attack against Kerberos for user accounts that do not require pre-authentication, which means that\nif the target user has pre-authentication disabled, an attacker can request authentication data for it and get a TGT that\ncan be brute-forced offline, similarly to Kerberoasting.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Determine if the target account is sensitive or privileged.\n- Inspect the account activities for suspicious or abnormal behaviors in the alert timeframe.\n\n### False positive analysis\n\n- Disabling pre-authentication is a bad security practice and should not be allowed in the domain. The security team\nshould map and monitor any potential benign true positives (B-TPs), especially if the target account is privileged.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Reset the target account's password if there is any risk of TGTs having been retrieved.\n- Re-enable the preauthentication option or disable the target account.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://harmj0y.medium.com/roasting-as-reps-e6179a65216b","https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4738","https://github.com/atc-project/atomic-threat-coverage/blob/master/Atomic_Threat_Coverage/Logging_Policies/LP_0026_windows_audit_user_account_management.md"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/","subtechnique":[{"id":"T1558.004","name":"AS-REP Roasting","reference":"https://attack.mitre.org/techniques/T1558/004/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.code:4738 and message:\"'Don't Require Preauth' - Enabled\"\n","required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"message","type":"match_only_text"}],"setup":"The 'Audit User Account Management' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nAccount Management >\nAudit User Account Management (Success,Failure)\n```"}]},"id":"e514d8cd-ed15-4011-84e2-d15147e059f1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e555105c-ba6d-481f-82bb-9b633e7b4827.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e555105c-ba6d-481f-82bb-9b633e7b4827.json new file mode 100644 index 0000000000000..1a0265ee01da9 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e555105c-ba6d-481f-82bb-9b633e7b4827.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e555105c-ba6d-481f-82bb-9b633e7b4827","versions":[{"name":"MFA Disabled for Google Workspace Organization v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when multi-factor authentication (MFA) is disabled for a Google Workspace organization. An adversary may attempt to modify a password policy in order to weaken an organization’s security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["MFA settings may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:(ENFORCE_STRONG_AUTHENTICATION or ALLOW_STRONG_AUTHENTICATION) and google_workspace.admin.new_value:false\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"MFA Disabled for Google Workspace Organization v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when multi-factor authentication (MFA) is disabled for a Google Workspace organization. An adversary may attempt to modify a password policy in order to weaken an organization’s security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["MFA settings may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:(ENFORCE_STRONG_AUTHENTICATION or ALLOW_STRONG_AUTHENTICATION) and google_workspace.admin.new_value:false\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"MFA Disabled for Google Workspace Organization v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when multi-factor authentication (MFA) is disabled for a Google Workspace organization. An adversary may attempt to modify a password policy in order to weaken an organization’s security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["MFA settings may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:(ENFORCE_STRONG_AUTHENTICATION or ALLOW_STRONG_AUTHENTICATION) and google_workspace.admin.new_value:false\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"e555105c-ba6d-481f-82bb-9b633e7b4827","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e6c1a552-7776-44ad-ae0f-8746cc07773c.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e6c1a552-7776-44ad-ae0f-8746cc07773c.json new file mode 100644 index 0000000000000..43411549f6811 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e6c1a552-7776-44ad-ae0f-8746cc07773c.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e6c1a552-7776-44ad-ae0f-8746cc07773c","versions":[{"name":"Bash Shell Profile Modification v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Both ~/.bash_profile and ~/.bashrc are files containing shell commands that are run when Bash is invoked. These files are executed in a user's context, either interactively or non-interactively, when a user logs in so that their environment is set correctly. Adversaries may abuse this to establish persistence by executing malicious content triggered by a user’s shell.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Changes to the Shell Profile tend to be noisy, a tuning per your environment will be required."],"from":"now-9m","references":["https://www.anomali.com/blog/pulling-linux-rabbit-rabbot-malware-out-of-a-hat"],"tags":["Elastic","Host","macOS","Linux","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.004","name":"Unix Shell Configuration Modification","reference":"https://attack.mitre.org/techniques/T1546/004/"}]}]}],"type":"query","index":["logs-endpoint.events.*","auditbeat-*"],"language":"kuery","query":"event.category:file and event.type:change and\n process.name:(* and not (sudo or\n vim or\n zsh or\n env or\n nano or\n bash or\n Terminal or\n xpcproxy or\n login or\n cat or\n cp or\n launchctl or\n java)) and\n not process.executable:(/Applications/* or /private/var/folders/* or /usr/local/*) and\n file.path:(/private/etc/rc.local or\n /etc/rc.local or\n /home/*/.profile or\n /home/*/.profile1 or\n /home/*/.bash_profile or\n /home/*/.bash_profile1 or\n /home/*/.bashrc or\n /Users/*/.bash_profile or\n /Users/*/.zshenv)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Bash Shell Profile Modification v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Both ~/.bash_profile and ~/.bashrc are files containing shell commands that are run when Bash is invoked. These files are executed in a user's context, either interactively or non-interactively, when a user logs in so that their environment is set correctly. Adversaries may abuse this to establish persistence by executing malicious content triggered by a user’s shell.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Changes to the Shell Profile tend to be noisy, a tuning per your environment will be required."],"from":"now-9m","references":["https://www.anomali.com/blog/pulling-linux-rabbit-rabbot-malware-out-of-a-hat"],"tags":["Elastic","Host","macOS","Linux","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.004","name":"Unix Shell Configuration Modification","reference":"https://attack.mitre.org/techniques/T1546/004/"}]}]}],"type":"query","index":["logs-endpoint.events.*","auditbeat-*"],"language":"kuery","query":"event.category:file and event.type:change and\n process.name:(* and not (sudo or\n vim or\n zsh or\n env or\n nano or\n bash or\n Terminal or\n xpcproxy or\n login or\n cat or\n cp or\n launchctl or\n java)) and\n not process.executable:(/Applications/* or /private/var/folders/* or /usr/local/*) and\n file.path:(/private/etc/rc.local or\n /etc/rc.local or\n /home/*/.profile or\n /home/*/.profile1 or\n /home/*/.bash_profile or\n /home/*/.bash_profile1 or\n /home/*/.bashrc or\n /Users/*/.bash_profile or\n /Users/*/.zshenv)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Bash Shell Profile Modification v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Both ~/.bash_profile and ~/.bashrc are files containing shell commands that are run when Bash is invoked. These files are executed in a user's context, either interactively or non-interactively, when a user logs in so that their environment is set correctly. Adversaries may abuse this to establish persistence by executing malicious content triggered by a user’s shell.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Changes to the Shell Profile tend to be noisy, a tuning per your environment will be required."],"from":"now-9m","references":["https://www.anomali.com/blog/pulling-linux-rabbit-rabbot-malware-out-of-a-hat"],"tags":["Elastic","Host","macOS","Linux","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.004","name":"Unix Shell Configuration Modification","reference":"https://attack.mitre.org/techniques/T1546/004/"}]}]}],"type":"query","index":["logs-endpoint.events.*","auditbeat-*"],"language":"kuery","query":"event.category:file and event.type:change and\n process.name:(* and not (sudo or\n vim or\n zsh or\n env or\n nano or\n bash or\n Terminal or\n xpcproxy or\n login or\n cat or\n cp or\n launchctl or\n java)) and\n not process.executable:(/Applications/* or /private/var/folders/* or /usr/local/*) and\n file.path:(/private/etc/rc.local or\n /etc/rc.local or\n /home/*/.profile or\n /home/*/.profile1 or\n /home/*/.bash_profile or\n /home/*/.bash_profile1 or\n /home/*/.bashrc or\n /Users/*/.bash_profile or\n /Users/*/.zshenv)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"e6c1a552-7776-44ad-ae0f-8746cc07773c","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e6c98d38-633d-4b3e-9387-42112cd5ac10.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e6c98d38-633d-4b3e-9387-42112cd5ac10.json new file mode 100644 index 0000000000000..7cadeaca8a8a9 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e6c98d38-633d-4b3e-9387-42112cd5ac10.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e6c98d38-633d-4b3e-9387-42112cd5ac10","versions":[{"name":"Authorization Plugin Modification v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Authorization plugins are used to extend the authorization services API and implement mechanisms that are not natively supported by the OS, such as multi-factor authentication with third party software. Adversaries may abuse this feature to persist and/or collect clear text credentials as they traverse the registered plugins during user logon.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://developer.apple.com/documentation/security/authorization_plug-ins","https://www.xorrior.com/persistent-credential-theft/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.002","name":"Authentication Package","reference":"https://attack.mitre.org/techniques/T1547/002/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and not event.type:deletion and\n file.path:(/Library/Security/SecurityAgentPlugins/* and\n not /Library/Security/SecurityAgentPlugins/TeamViewerAuthPlugin.bundle/*) and\n not process.name:shove and process.code_signature.trusted:true\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Authorization Plugin Modification v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Authorization plugins are used to extend the authorization services API and implement mechanisms that are not natively supported by the OS, such as multi-factor authentication with third party software. Adversaries may abuse this feature to persist and/or collect clear text credentials as they traverse the registered plugins during user logon.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://developer.apple.com/documentation/security/authorization_plug-ins","https://www.xorrior.com/persistent-credential-theft/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.002","name":"Authentication Package","reference":"https://attack.mitre.org/techniques/T1547/002/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and not event.type:deletion and\n file.path:(/Library/Security/SecurityAgentPlugins/* and\n not /Library/Security/SecurityAgentPlugins/TeamViewerAuthPlugin.bundle/*) and\n not process.name:shove and process.code_signature.trusted:true\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Authorization Plugin Modification v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Authorization plugins are used to extend the authorization services API and implement mechanisms that are not natively supported by the OS, such as multi-factor authentication with third party software. Adversaries may abuse this feature to persist and/or collect clear text credentials as they traverse the registered plugins during user logon.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://developer.apple.com/documentation/security/authorization_plug-ins","https://www.xorrior.com/persistent-credential-theft/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.002","name":"Authentication Package","reference":"https://attack.mitre.org/techniques/T1547/002/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and not event.type:deletion and\n file.path:(/Library/Security/SecurityAgentPlugins/* and\n not /Library/Security/SecurityAgentPlugins/TeamViewerAuthPlugin.bundle/*) and\n not process.name:shove and process.code_signature.trusted:true\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"e6c98d38-633d-4b3e-9387-42112cd5ac10","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e6e3ecff-03dd-48ec-acbd-54a04de10c68.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e6e3ecff-03dd-48ec-acbd-54a04de10c68.json new file mode 100644 index 0000000000000..370e3d31a2cf1 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e6e3ecff-03dd-48ec-acbd-54a04de10c68.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e6e3ecff-03dd-48ec-acbd-54a04de10c68","versions":[{"name":"Possible Okta DoS Attack v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects possible Denial of Service (DoS) attacks against an Okta organization. An adversary may attempt to disrupt an organization's business operations by performing a DoS attack against its Okta service.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1498","name":"Network Denial of Service","reference":"https://attack.mitre.org/techniques/T1498/"},{"id":"T1499","name":"Endpoint Denial of Service","reference":"https://attack.mitre.org/techniques/T1499/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:(application.integration.rate_limit_exceeded or system.org.rate_limit.warning or system.org.rate_limit.violation or core.concurrency.org.limit.violation)\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Possible Okta DoS Attack v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects possible Denial of Service (DoS) attacks against an Okta organization. An adversary may attempt to disrupt an organization's business operations by performing a DoS attack against its Okta service.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1498","name":"Network Denial of Service","reference":"https://attack.mitre.org/techniques/T1498/"},{"id":"T1499","name":"Endpoint Denial of Service","reference":"https://attack.mitre.org/techniques/T1499/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:(application.integration.rate_limit_exceeded or system.org.rate_limit.warning or system.org.rate_limit.violation or core.concurrency.org.limit.violation)\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Possible Okta DoS Attack v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects possible Denial of Service (DoS) attacks against an Okta organization. An adversary may attempt to disrupt an organization's business operations by performing a DoS attack against its Okta service.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1498","name":"Network Denial of Service","reference":"https://attack.mitre.org/techniques/T1498/"},{"id":"T1499","name":"Endpoint Denial of Service","reference":"https://attack.mitre.org/techniques/T1499/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:(application.integration.rate_limit_exceeded or system.org.rate_limit.warning or system.org.rate_limit.violation or core.concurrency.org.limit.violation)\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"e6e3ecff-03dd-48ec-acbd-54a04de10c68","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e6e8912f-283f-4d0d-8442-e0dcaf49944b.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e6e8912f-283f-4d0d-8442-e0dcaf49944b.json new file mode 100644 index 0000000000000..5fef315c37f90 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e6e8912f-283f-4d0d-8442-e0dcaf49944b.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e6e8912f-283f-4d0d-8442-e0dcaf49944b","versions":[{"name":"Screensaver Plist File Modified by Unexpected Process v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a screensaver plist file is modified by an unexpected process. An adversary can maintain persistence on a macOS endpoint by creating a malicious screensaver (.saver) file and configuring the screensaver plist file to execute code each time the screensaver is activated.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n- Analyze the plist file modification event to identify whether the change was expected or not\n- Investigate the process that modified the plist file for malicious code or other suspicious behavior\n- Identify if any suspicious or known malicious screensaver (.saver) files were recently written to or modified on the host","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/saving-your-access-d562bf5bf90b","https://github.com/D00MFist/PersistentJXA"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.name: \"com.apple.screensaver.*.plist\" and\n file.path : (\n \"/Users/*/Library/Preferences/ByHost/*\",\n \"/Library/Managed Preferences/*\",\n \"/System/Library/Preferences/*\"\n ) and\n /* Filter OS processes modifying screensaver plist files */\n not process.executable : (\n \"/usr/sbin/cfprefsd\",\n \"/usr/libexec/xpcproxy\",\n \"/System/Library/CoreServices/ManagedClient.app/Contents/Resources/MCXCompositor\",\n \"/System/Library/CoreServices/ManagedClient.app/Contents/MacOS/ManagedClient\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Screensaver Plist File Modified by Unexpected Process v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a screensaver plist file is modified by an unexpected process. An adversary can maintain persistence on a macOS endpoint by creating a malicious screensaver (.saver) file and configuring the screensaver plist file to execute code each time the screensaver is activated.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n- Analyze the plist file modification event to identify whether the change was expected or not\n- Investigate the process that modified the plist file for malicious code or other suspicious behavior\n- Identify if any suspicious or known malicious screensaver (.saver) files were recently written to or modified on the host","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/saving-your-access-d562bf5bf90b","https://github.com/D00MFist/PersistentJXA"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.name: \"com.apple.screensaver.*.plist\" and\n file.path : (\n \"/Users/*/Library/Preferences/ByHost/*\",\n \"/Library/Managed Preferences/*\",\n \"/System/Library/Preferences/*\"\n ) and\n /* Filter OS processes modifying screensaver plist files */\n not process.executable : (\n \"/usr/sbin/cfprefsd\",\n \"/usr/libexec/xpcproxy\",\n \"/System/Library/CoreServices/ManagedClient.app/Contents/Resources/MCXCompositor\",\n \"/System/Library/CoreServices/ManagedClient.app/Contents/MacOS/ManagedClient\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Screensaver Plist File Modified by Unexpected Process v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a screensaver plist file is modified by an unexpected process. An adversary can maintain persistence on a macOS endpoint by creating a malicious screensaver (.saver) file and configuring the screensaver plist file to execute code each time the screensaver is activated.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n- Analyze the plist file modification event to identify whether the change was expected or not\n- Investigate the process that modified the plist file for malicious code or other suspicious behavior\n- Identify if any suspicious or known malicious screensaver (.saver) files were recently written to or modified on the host","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/saving-your-access-d562bf5bf90b","https://github.com/D00MFist/PersistentJXA"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.name: \"com.apple.screensaver.*.plist\" and\n file.path : (\n \"/Users/*/Library/Preferences/ByHost/*\",\n \"/Library/Managed Preferences/*\",\n \"/System/Library/Preferences/*\"\n ) and\n /* Filter OS processes modifying screensaver plist files */\n not process.executable : (\n \"/usr/sbin/cfprefsd\",\n \"/usr/libexec/xpcproxy\",\n \"/System/Library/CoreServices/ManagedClient.app/Contents/Resources/MCXCompositor\",\n \"/System/Library/CoreServices/ManagedClient.app/Contents/MacOS/ManagedClient\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"e6e8912f-283f-4d0d-8442-e0dcaf49944b","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e7075e8d-a966-458e-a183-85cd331af255.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e7075e8d-a966-458e-a183-85cd331af255.json new file mode 100644 index 0000000000000..77b8492cde840 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e7075e8d-a966-458e-a183-85cd331af255.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e7075e8d-a966-458e-a183-85cd331af255","versions":[{"name":"Default Cobalt Strike Team Server Certificate v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects the use of the default Cobalt Strike Team Server TLS certificate. Cobalt Strike is software for Adversary Simulations and Red Team Operations which are security assessments that replicate the tactics and techniques of an advanced adversary in a network. Modifications to the Packetbeat configuration can be made to include MD5 and SHA256 hashing algorithms (the default is SHA1). See the References section for additional information on module configuration.","risk_score":99,"severity":"critical","license":"Elastic License v2","note":"## Threat intel\n\nWhile Cobalt Strike is intended to be used for penetration tests and IR training, it is frequently used by actual threat actors (TA) such as APT19, APT29, APT32, APT41, FIN6, DarkHydrus, CopyKittens, Cobalt Group, Leviathan, and many other unnamed criminal TAs. This rule uses high-confidence atomic indicators, so alerts should be investigated rapidly.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://attack.mitre.org/software/S0154/","https://www.cobaltstrike.com/help-setup-collaboration","https://www.elastic.co/guide/en/beats/packetbeat/current/configuration-tls.html","https://www.elastic.co/guide/en/beats/filebeat/7.9/filebeat-module-suricata.html","https://www.elastic.co/guide/en/beats/filebeat/7.9/filebeat-module-zeek.html","https://www.elastic.co/security-labs/collecting-cobalt-strike-beacons-with-the-elastic-stack"],"tags":["Command and Control","Post-Execution","Threat Detection","Elastic","Network","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.001","name":"Web Protocols","reference":"https://attack.mitre.org/techniques/T1071/001/"}]}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and (tls.server.hash.md5:950098276A495286EB2A2556FBAB6D83 or\n tls.server.hash.sha1:6ECE5ECE4192683D2D84E25B0BA7E04F9CB7EB7C or\n tls.server.hash.sha256:87F2085C32B6A2CC709B365F55873E207A9CAA10BFFECF2FD16D3CF9D94D390C)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"tls.server.hash.md5","type":"keyword"},{"ecs":true,"name":"tls.server.hash.sha1","type":"keyword"},{"ecs":true,"name":"tls.server.hash.sha256","type":"keyword"}]},{"name":"Default Cobalt Strike Team Server Certificate v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects the use of the default Cobalt Strike Team Server TLS certificate. Cobalt Strike is software for Adversary Simulations and Red Team Operations which are security assessments that replicate the tactics and techniques of an advanced adversary in a network. Modifications to the Packetbeat configuration can be made to include MD5 and SHA256 hashing algorithms (the default is SHA1). See the References section for additional information on module configuration.","risk_score":99,"severity":"critical","license":"Elastic License v2","note":"## Threat intel\n\nWhile Cobalt Strike is intended to be used for penetration tests and IR training, it is frequently used by actual threat actors (TA) such as APT19, APT29, APT32, APT41, FIN6, DarkHydrus, CopyKittens, Cobalt Group, Leviathan, and many other unnamed criminal TAs. This rule uses high-confidence atomic indicators, so alerts should be investigated rapidly.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://attack.mitre.org/software/S0154/","https://www.cobaltstrike.com/help-setup-collaboration","https://www.elastic.co/guide/en/beats/packetbeat/current/configuration-tls.html","https://www.elastic.co/guide/en/beats/filebeat/7.9/filebeat-module-suricata.html","https://www.elastic.co/guide/en/beats/filebeat/7.9/filebeat-module-zeek.html","https://www.elastic.co/security-labs/collecting-cobalt-strike-beacons-with-the-elastic-stack"],"tags":["Command and Control","Post-Execution","Threat Detection","Elastic","Network","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.001","name":"Web Protocols","reference":"https://attack.mitre.org/techniques/T1071/001/"}]}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and (tls.server.hash.md5:950098276A495286EB2A2556FBAB6D83 or\n tls.server.hash.sha1:6ECE5ECE4192683D2D84E25B0BA7E04F9CB7EB7C or\n tls.server.hash.sha256:87F2085C32B6A2CC709B365F55873E207A9CAA10BFFECF2FD16D3CF9D94D390C)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"tls.server.hash.md5","type":"keyword"},{"ecs":true,"name":"tls.server.hash.sha1","type":"keyword"},{"ecs":true,"name":"tls.server.hash.sha256","type":"keyword"}]},{"name":"Default Cobalt Strike Team Server Certificate v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects the use of the default Cobalt Strike Team Server TLS certificate. Cobalt Strike is software for Adversary Simulations and Red Team Operations which are security assessments that replicate the tactics and techniques of an advanced adversary in a network. Modifications to the Packetbeat configuration can be made to include MD5 and SHA256 hashing algorithms (the default is SHA1). See the References section for additional information on module configuration.","risk_score":99,"severity":"critical","license":"Elastic License v2","note":"## Threat intel\n\nWhile Cobalt Strike is intended to be used for penetration tests and IR training, it is frequently used by actual threat actors (TA) such as APT19, APT29, APT32, APT41, FIN6, DarkHydrus, CopyKittens, Cobalt Group, Leviathan, and many other unnamed criminal TAs. This rule uses high-confidence atomic indicators, so alerts should be investigated rapidly.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://attack.mitre.org/software/S0154/","https://www.cobaltstrike.com/help-setup-collaboration","https://www.elastic.co/guide/en/beats/packetbeat/current/configuration-tls.html","https://www.elastic.co/guide/en/beats/filebeat/7.9/filebeat-module-suricata.html","https://www.elastic.co/guide/en/beats/filebeat/7.9/filebeat-module-zeek.html","https://www.elastic.co/security-labs/collecting-cobalt-strike-beacons-with-the-elastic-stack"],"tags":["Command and Control","Post-Execution","Threat Detection","Elastic","Network","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.001","name":"Web Protocols","reference":"https://attack.mitre.org/techniques/T1071/001/"}]}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and (tls.server.hash.md5:950098276A495286EB2A2556FBAB6D83 or\n tls.server.hash.sha1:6ECE5ECE4192683D2D84E25B0BA7E04F9CB7EB7C or\n tls.server.hash.sha256:87F2085C32B6A2CC709B365F55873E207A9CAA10BFFECF2FD16D3CF9D94D390C)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"tls.server.hash.md5","type":"keyword"},{"ecs":true,"name":"tls.server.hash.sha1","type":"keyword"},{"ecs":true,"name":"tls.server.hash.sha256","type":"keyword"}]}]},"id":"e7075e8d-a966-458e-a183-85cd331af255","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e7125cea-9fe1-42a5-9a05-b0792cf86f5a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e7125cea-9fe1-42a5-9a05-b0792cf86f5a.json new file mode 100644 index 0000000000000..117b5b7fe3c3f --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e7125cea-9fe1-42a5-9a05-b0792cf86f5a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e7125cea-9fe1-42a5-9a05-b0792cf86f5a","versions":[{"name":"Execution of Persistent Suspicious Program v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution of suspicious persistent programs (scripts, rundll32, etc.) by looking at process lineage and command line usage.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"/* userinit followed by explorer followed by early child process of explorer (unlikely to be launched interactively) within 1m */\nsequence by host.id, user.name with maxspan=1m\n [process where event.type == \"start\" and process.name : \"userinit.exe\" and process.parent.name : \"winlogon.exe\"]\n [process where event.type == \"start\" and process.name : \"explorer.exe\"]\n [process where event.type == \"start\" and process.parent.name : \"explorer.exe\" and\n /* add suspicious programs here */\n process.pe.original_file_name in (\"cscript.exe\",\n \"wscript.exe\",\n \"PowerShell.EXE\",\n \"MSHTA.EXE\",\n \"RUNDLL32.EXE\",\n \"REGSVR32.EXE\",\n \"RegAsm.exe\",\n \"MSBuild.exe\",\n \"InstallUtil.exe\") and\n /* add potential suspicious paths here */\n process.args : (\"C:\\\\Users\\\\*\", \"C:\\\\ProgramData\\\\*\", \"C:\\\\Windows\\\\Temp\\\\*\", \"C:\\\\Windows\\\\Tasks\\\\*\", \"C:\\\\PerfLogs\\\\*\", \"C:\\\\Intel\\\\*\")\n ]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},{"name":"Execution of Persistent Suspicious Program v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution of suspicious persistent programs (scripts, rundll32, etc.) by looking at process lineage and command line usage.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"/* userinit followed by explorer followed by early child process of explorer (unlikely to be launched interactively) within 1m */\nsequence by host.id, user.name with maxspan=1m\n [process where event.type == \"start\" and process.name : \"userinit.exe\" and process.parent.name : \"winlogon.exe\"]\n [process where event.type == \"start\" and process.name : \"explorer.exe\"]\n [process where event.type == \"start\" and process.parent.name : \"explorer.exe\" and\n /* add suspicious programs here */\n process.pe.original_file_name in (\"cscript.exe\",\n \"wscript.exe\",\n \"PowerShell.EXE\",\n \"MSHTA.EXE\",\n \"RUNDLL32.EXE\",\n \"REGSVR32.EXE\",\n \"RegAsm.exe\",\n \"MSBuild.exe\",\n \"InstallUtil.exe\") and\n /* add potential suspicious paths here */\n process.args : (\"C:\\\\Users\\\\*\", \"C:\\\\ProgramData\\\\*\", \"C:\\\\Windows\\\\Temp\\\\*\", \"C:\\\\Windows\\\\Tasks\\\\*\", \"C:\\\\PerfLogs\\\\*\", \"C:\\\\Intel\\\\*\")\n ]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},{"name":"Execution of Persistent Suspicious Program v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution of suspicious persistent programs (scripts, rundll32, etc.) by looking at process lineage and command line usage.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"/* userinit followed by explorer followed by early child process of explorer (unlikely to be launched interactively) within 1m */\nsequence by host.id, user.name with maxspan=1m\n [process where event.type == \"start\" and process.name : \"userinit.exe\" and process.parent.name : \"winlogon.exe\"]\n [process where event.type == \"start\" and process.name : \"explorer.exe\"]\n [process where event.type == \"start\" and process.parent.name : \"explorer.exe\" and\n /* add suspicious programs here */\n process.pe.original_file_name in (\"cscript.exe\",\n \"wscript.exe\",\n \"PowerShell.EXE\",\n \"MSHTA.EXE\",\n \"RUNDLL32.EXE\",\n \"REGSVR32.EXE\",\n \"RegAsm.exe\",\n \"MSBuild.exe\",\n \"InstallUtil.exe\") and\n /* add potential suspicious paths here */\n process.args : (\"C:\\\\Users\\\\*\", \"C:\\\\ProgramData\\\\*\", \"C:\\\\Windows\\\\Temp\\\\*\", \"C:\\\\Windows\\\\Tasks\\\\*\", \"C:\\\\PerfLogs\\\\*\", \"C:\\\\Intel\\\\*\")\n ]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]}]},"id":"e7125cea-9fe1-42a5-9a05-b0792cf86f5a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e7cd5982-17c8-4959-874c-633acde7d426.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e7cd5982-17c8-4959-874c-633acde7d426.json new file mode 100644 index 0000000000000..cd2acf36c74dd --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e7cd5982-17c8-4959-874c-633acde7d426.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e7cd5982-17c8-4959-874c-633acde7d426","versions":[{"name":"AWS Route Table Modified or Deleted v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an AWS Route Table has been modified or deleted.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Route Table could be modified or deleted by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Route Table being modified from unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule. Also automated processes that use Terraform may lead to false positives."],"from":"now-60m","interval":"10m","references":["https://github.com/easttimor/aws-incident-response#network-routing","https://docs.datadoghq.com/security_platform/default_rules/aws-ec2-route-table-modified/","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ReplaceRoute.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ReplaceRouteTableAssociation","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteRouteTable.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteRoute.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisassociateRouteTable.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:(ReplaceRoute or ReplaceRouteTableAssociation or\nDeleteRouteTable or DeleteRoute or DisassociateRouteTable) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Route Table Modified or Deleted v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an AWS Route Table has been modified or deleted.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Route Table could be modified or deleted by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Route Table being modified from unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule. Also automated processes that use Terraform may lead to false positives."],"from":"now-60m","interval":"10m","references":["https://github.com/easttimor/aws-incident-response#network-routing","https://docs.datadoghq.com/security_platform/default_rules/aws-ec2-route-table-modified/","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ReplaceRoute.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ReplaceRouteTableAssociation","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteRouteTable.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteRoute.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisassociateRouteTable.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:(ReplaceRoute or ReplaceRouteTableAssociation or\nDeleteRouteTable or DeleteRoute or DisassociateRouteTable) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Route Table Modified or Deleted v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an AWS Route Table has been modified or deleted.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Route Table could be modified or deleted by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Route Table being modified from unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule. Also automated processes that use Terraform may lead to false positives."],"from":"now-60m","interval":"10m","references":["https://github.com/easttimor/aws-incident-response#network-routing","https://docs.datadoghq.com/security_platform/default_rules/aws-ec2-route-table-modified/","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ReplaceRoute.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ReplaceRouteTableAssociation","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteRouteTable.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteRoute.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisassociateRouteTable.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:(ReplaceRoute or ReplaceRouteTableAssociation or\nDeleteRouteTable or DeleteRoute or DisassociateRouteTable) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"e7cd5982-17c8-4959-874c-633acde7d426","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e8571d5f-bea1-46c2-9f56-998de2d3ed95.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e8571d5f-bea1-46c2-9f56-998de2d3ed95.json new file mode 100644 index 0000000000000..d5ba1f93563a0 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e8571d5f-bea1-46c2-9f56-998de2d3ed95.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e8571d5f-bea1-46c2-9f56-998de2d3ed95","versions":[{"name":"Service Control Spawned via Script Interpreter v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Service Control (sc.exe) spawning from script interpreter processes to create, modify, or start services. This could be indicative of adversary lateral movement but will be noisy if commonly done by admins.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"/* This rule is not compatible with Sysmon due to user.id issues */\n\nprocess where event.type == \"start\" and\n (process.name : \"sc.exe\" or process.pe.original_file_name == \"sc.exe\") and\n process.parent.name : (\"cmd.exe\", \"wscript.exe\", \"rundll32.exe\", \"regsvr32.exe\",\n \"wmic.exe\", \"mshta.exe\",\"powershell.exe\", \"pwsh.exe\") and\n process.args:(\"config\", \"create\", \"start\", \"delete\", \"stop\", \"pause\") and\n /* exclude SYSTEM SID - look for service creations by non-SYSTEM user */\n not user.id : \"S-1-5-18\"\n","type":"eql","index":["logs-endpoint.events.*","logs-system.*","winlogbeat-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Service Control Spawned via Script Interpreter v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Service Control (sc.exe) spawning from script interpreter processes to create, modify, or start services. This could be indicative of adversary lateral movement but will be noisy if commonly done by admins.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"/* This rule is not compatible with Sysmon due to user.id issues */\n\nprocess where event.type == \"start\" and\n (process.name : \"sc.exe\" or process.pe.original_file_name == \"sc.exe\") and\n process.parent.name : (\"cmd.exe\", \"wscript.exe\", \"rundll32.exe\", \"regsvr32.exe\",\n \"wmic.exe\", \"mshta.exe\",\"powershell.exe\", \"pwsh.exe\") and\n process.args:(\"config\", \"create\", \"start\", \"delete\", \"stop\", \"pause\") and\n /* exclude SYSTEM SID - look for service creations by non-SYSTEM user */\n not user.id : \"S-1-5-18\"\n","type":"eql","index":["logs-endpoint.events.*","logs-system.*","winlogbeat-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Service Control Spawned via Script Interpreter v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Service Control (sc.exe) spawning from script interpreter processes to create, modify, or start services. This could be indicative of adversary lateral movement but will be noisy if commonly done by admins.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"/* This rule is not compatible with Sysmon due to user.id issues */\n\nprocess where event.type == \"start\" and\n (process.name : \"sc.exe\" or process.pe.original_file_name == \"sc.exe\") and\n process.parent.name : (\"cmd.exe\", \"wscript.exe\", \"rundll32.exe\", \"regsvr32.exe\",\n \"wmic.exe\", \"mshta.exe\",\"powershell.exe\", \"pwsh.exe\") and\n process.args:(\"config\", \"create\", \"start\", \"delete\", \"stop\", \"pause\") and\n /* exclude SYSTEM SID - look for service creations by non-SYSTEM user */\n not user.id : \"S-1-5-18\"\n","type":"eql","index":["logs-endpoint.events.*","logs-system.*","winlogbeat-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"e8571d5f-bea1-46c2-9f56-998de2d3ed95","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e86da94d-e54b-4fb5-b96c-cecff87e8787.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e86da94d-e54b-4fb5-b96c-cecff87e8787.json new file mode 100644 index 0000000000000..2057fbc204611 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e86da94d-e54b-4fb5-b96c-cecff87e8787.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e86da94d-e54b-4fb5-b96c-cecff87e8787","versions":[{"name":"Installation of Security Support Provider v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies registry modifications related to the Windows Security Support Provider (SSP) configuration. Adversaries may abuse this to establish persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.005","name":"Security Support Provider","reference":"https://attack.mitre.org/techniques/T1547/005/"}]}]}],"language":"eql","query":"registry where\n registry.path : (\"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Lsa\\\\Security Packages*\",\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Lsa\\\\OSConfig\\\\Security Packages*\") and\n not process.executable : (\"C:\\\\Windows\\\\System32\\\\msiexec.exe\", \"C:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Installation of Security Support Provider v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies registry modifications related to the Windows Security Support Provider (SSP) configuration. Adversaries may abuse this to establish persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.005","name":"Security Support Provider","reference":"https://attack.mitre.org/techniques/T1547/005/"}]}]}],"language":"eql","query":"registry where\n registry.path : (\"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Lsa\\\\Security Packages*\",\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Lsa\\\\OSConfig\\\\Security Packages*\") and\n not process.executable : (\"C:\\\\Windows\\\\System32\\\\msiexec.exe\", \"C:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Installation of Security Support Provider v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies registry modifications related to the Windows Security Support Provider (SSP) configuration. Adversaries may abuse this to establish persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.005","name":"Security Support Provider","reference":"https://attack.mitre.org/techniques/T1547/005/"}]}]}],"language":"eql","query":"registry where\n registry.path : (\"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Lsa\\\\Security Packages*\",\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Lsa\\\\OSConfig\\\\Security Packages*\") and\n not process.executable : (\"C:\\\\Windows\\\\System32\\\\msiexec.exe\", \"C:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"e86da94d-e54b-4fb5-b96c-cecff87e8787","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e90ee3af-45fc-432e-a850-4a58cf14a457.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e90ee3af-45fc-432e-a850-4a58cf14a457.json new file mode 100644 index 0000000000000..1fa22876388f1 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e90ee3af-45fc-432e-a850-4a58cf14a457.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e90ee3af-45fc-432e-a850-4a58cf14a457","versions":[{"name":"High Number of Okta User Password Reset or Unlock Attempts v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number of Okta user password reset or account unlock attempts. An adversary may attempt to obtain unauthorized access to Okta user accounts using these methods and attempt to blend in with normal activity in their target's environment and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic","@BenB196","Austin Songer"],"false_positives":["The number of Okta user password reset or account unlock attempts will likely vary between organizations. To fit this rule to their organization, users can duplicate this rule and edit the schedule and threshold values in the new rule."],"from":"now-60m","references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"query":"event.dataset:okta.system and\n event.action:(system.email.account_unlock.sent_message or system.email.password_reset.sent_message or\n system.sms.send_account_unlock_message or system.sms.send_password_reset_message or\n system.voice.send_account_unlock_call or system.voice.send_password_reset_call or\n user.account.unlock_token)\n","threshold":{"field":["okta.actor.alternate_id"],"value":5},"type":"threshold","index":["filebeat-*","logs-okta*"],"language":"kuery","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"High Number of Okta User Password Reset or Unlock Attempts v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number of Okta user password reset or account unlock attempts. An adversary may attempt to obtain unauthorized access to Okta user accounts using these methods and attempt to blend in with normal activity in their target's environment and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic","@BenB196","Austin Songer"],"false_positives":["The number of Okta user password reset or account unlock attempts will likely vary between organizations. To fit this rule to their organization, users can duplicate this rule and edit the schedule and threshold values in the new rule."],"from":"now-60m","references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"query":"event.dataset:okta.system and\n event.action:(system.email.account_unlock.sent_message or system.email.password_reset.sent_message or\n system.sms.send_account_unlock_message or system.sms.send_password_reset_message or\n system.voice.send_account_unlock_call or system.voice.send_password_reset_call or\n user.account.unlock_token)\n","threshold":{"field":["okta.actor.alternate_id"],"value":5},"type":"threshold","index":["filebeat-*","logs-okta*"],"language":"kuery","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"High Number of Okta User Password Reset or Unlock Attempts v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number of Okta user password reset or account unlock attempts. An adversary may attempt to obtain unauthorized access to Okta user accounts using these methods and attempt to blend in with normal activity in their target's environment and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic","@BenB196","Austin Songer"],"false_positives":["The number of Okta user password reset or account unlock attempts will likely vary between organizations. To fit this rule to their organization, users can duplicate this rule and edit the schedule and threshold values in the new rule."],"from":"now-60m","references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"query":"event.dataset:okta.system and\n event.action:(system.email.account_unlock.sent_message or system.email.password_reset.sent_message or\n system.sms.send_account_unlock_message or system.sms.send_password_reset_message or\n system.voice.send_account_unlock_call or system.voice.send_password_reset_call or\n user.account.unlock_token)\n","threshold":{"field":["okta.actor.alternate_id"],"value":5},"type":"threshold","index":["filebeat-*","logs-okta*"],"language":"kuery","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"e90ee3af-45fc-432e-a850-4a58cf14a457","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e919611d-6b6f-493b-8314-7ed6ac2e413b.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e919611d-6b6f-493b-8314-7ed6ac2e413b.json new file mode 100644 index 0000000000000..f3a690e1d3157 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e919611d-6b6f-493b-8314-7ed6ac2e413b.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e919611d-6b6f-493b-8314-7ed6ac2e413b","versions":[{"name":"AWS EC2 VM Export Failure v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an attempt to export an AWS EC2 instance. A virtual machine (VM) export may indicate an attempt to extract or exfiltrate information.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["VM exports may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. VM exports from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/vm-import/latest/userguide/vmexport.html#export-instance"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1005","name":"Data from Local System","reference":"https://attack.mitre.org/techniques/T1005/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:CreateInstanceExportTask and event.outcome:failure\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS EC2 VM Export Failure v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an attempt to export an AWS EC2 instance. A virtual machine (VM) export may indicate an attempt to extract or exfiltrate information.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["VM exports may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. VM exports from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/vm-import/latest/userguide/vmexport.html#export-instance"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1005","name":"Data from Local System","reference":"https://attack.mitre.org/techniques/T1005/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:CreateInstanceExportTask and event.outcome:failure\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS EC2 VM Export Failure v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an attempt to export an AWS EC2 instance. A virtual machine (VM) export may indicate an attempt to extract or exfiltrate information.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["VM exports may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. VM exports from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/vm-import/latest/userguide/vmexport.html#export-instance"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1005","name":"Data from Local System","reference":"https://attack.mitre.org/techniques/T1005/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:CreateInstanceExportTask and event.outcome:failure\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"e919611d-6b6f-493b-8314-7ed6ac2e413b","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e94262f2-c1e9-4d3f-a907-aeab16712e1a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e94262f2-c1e9-4d3f-a907-aeab16712e1a.json new file mode 100644 index 0000000000000..16c577a8462ee --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e94262f2-c1e9-4d3f-a907-aeab16712e1a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e94262f2-c1e9-4d3f-a907-aeab16712e1a","versions":[{"name":"Unusual Executable File Creation by a System Critical Process v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an unexpected executable file being created or modified by a Windows system critical process, which may indicate activity related to remote code execution or other forms of exploitation.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Executable File Creation by a System Critical Process\n\nWindows internal/system processes have some characteristics that can be used to spot suspicious activities. One of these\ncharacteristics is file operations.\n\nThis rule looks for the creation of executable files done by system-critical processes. This can indicate the exploitation\nof a vulnerability or a malicious process masquerading as a system-critical process.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1211","name":"Exploitation for Defense Evasion","reference":"https://attack.mitre.org/techniques/T1211/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.extension : (\"exe\", \"dll\") and\n process.name : (\"smss.exe\",\n \"autochk.exe\",\n \"csrss.exe\",\n \"wininit.exe\",\n \"services.exe\",\n \"lsass.exe\",\n \"winlogon.exe\",\n \"userinit.exe\",\n \"LogonUI.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Unusual Executable File Creation by a System Critical Process v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an unexpected executable file being created or modified by a Windows system critical process, which may indicate activity related to remote code execution or other forms of exploitation.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Executable File Creation by a System Critical Process\n\nWindows internal/system processes have some characteristics that can be used to spot suspicious activities. One of these\ncharacteristics is file operations.\n\nThis rule looks for the creation of executable files done by system-critical processes. This can indicate the exploitation\nof a vulnerability or a malicious process masquerading as a system-critical process.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1211","name":"Exploitation for Defense Evasion","reference":"https://attack.mitre.org/techniques/T1211/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.extension : (\"exe\", \"dll\") and\n process.name : (\"smss.exe\",\n \"autochk.exe\",\n \"csrss.exe\",\n \"wininit.exe\",\n \"services.exe\",\n \"lsass.exe\",\n \"winlogon.exe\",\n \"userinit.exe\",\n \"LogonUI.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Unusual Executable File Creation by a System Critical Process v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an unexpected executable file being created or modified by a Windows system critical process, which may indicate activity related to remote code execution or other forms of exploitation.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Executable File Creation by a System Critical Process\n\nWindows internal/system processes have some characteristics that can be used to spot suspicious activities. One of these\ncharacteristics is file operations.\n\nThis rule looks for the creation of executable files done by system-critical processes. This can indicate the exploitation\nof a vulnerability or a malicious process masquerading as a system-critical process.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1211","name":"Exploitation for Defense Evasion","reference":"https://attack.mitre.org/techniques/T1211/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.extension : (\"exe\", \"dll\") and\n process.name : (\"smss.exe\",\n \"autochk.exe\",\n \"csrss.exe\",\n \"wininit.exe\",\n \"services.exe\",\n \"lsass.exe\",\n \"winlogon.exe\",\n \"userinit.exe\",\n \"LogonUI.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"e94262f2-c1e9-4d3f-a907-aeab16712e1a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e9abe69b-1deb-4e19-ac4a-5d5ac00f72eb.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e9abe69b-1deb-4e19-ac4a-5d5ac00f72eb.json new file mode 100644 index 0000000000000..5b5fc7d3dc3bf --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e9abe69b-1deb-4e19-ac4a-5d5ac00f72eb.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e9abe69b-1deb-4e19-ac4a-5d5ac00f72eb","versions":[{"name":"Potential LSA Authentication Package Abuse v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries can use the autostart mechanism provided by the Local Security Authority (LSA) authentication packages for privilege escalation or persistence by placing a reference to a binary in the Windows registry. The binary will then be executed by SYSTEM when the authentication packages are loaded.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.002","name":"Authentication Package","reference":"https://attack.mitre.org/techniques/T1547/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.002","name":"Authentication Package","reference":"https://attack.mitre.org/techniques/T1547/002/"}]}]}],"language":"eql","query":"registry where event.type == \"change\" and\n registry.path : \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Lsa\\\\Authentication Packages\" and\n /* exclude SYSTEM SID - look for changes by non-SYSTEM user */\n not user.id : \"S-1-5-18\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"Potential LSA Authentication Package Abuse v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries can use the autostart mechanism provided by the Local Security Authority (LSA) authentication packages for privilege escalation or persistence by placing a reference to a binary in the Windows registry. The binary will then be executed by SYSTEM when the authentication packages are loaded.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.002","name":"Authentication Package","reference":"https://attack.mitre.org/techniques/T1547/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.002","name":"Authentication Package","reference":"https://attack.mitre.org/techniques/T1547/002/"}]}]}],"language":"eql","query":"registry where event.type == \"change\" and\n registry.path : \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Lsa\\\\Authentication Packages\" and\n /* exclude SYSTEM SID - look for changes by non-SYSTEM user */\n not user.id : \"S-1-5-18\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"Potential LSA Authentication Package Abuse v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries can use the autostart mechanism provided by the Local Security Authority (LSA) authentication packages for privilege escalation or persistence by placing a reference to a binary in the Windows registry. The binary will then be executed by SYSTEM when the authentication packages are loaded.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.002","name":"Authentication Package","reference":"https://attack.mitre.org/techniques/T1547/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.002","name":"Authentication Package","reference":"https://attack.mitre.org/techniques/T1547/002/"}]}]}],"language":"eql","query":"registry where event.type == \"change\" and\n registry.path : \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Lsa\\\\Authentication Packages\" and\n /* exclude SYSTEM SID - look for changes by non-SYSTEM user */\n not user.id : \"S-1-5-18\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]}]},"id":"e9abe69b-1deb-4e19-ac4a-5d5ac00f72eb","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/e9ff9c1c-fe36-4d0d-b3fd-9e0bf4853a62.json b/fleet-packages/detection-rules-composite/kibana/security_rule/e9ff9c1c-fe36-4d0d-b3fd-9e0bf4853a62.json new file mode 100644 index 0000000000000..8fb323f6f1b05 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/e9ff9c1c-fe36-4d0d-b3fd-9e0bf4853a62.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"e9ff9c1c-fe36-4d0d-b3fd-9e0bf4853a62","versions":[{"name":"Azure Automation Webhook Created v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Azure Automation webhook is created. Azure Automation runbooks can be configured to execute via a webhook. A webhook uses a custom URL passed to Azure Automation along with a data payload specific to the runbook. An adversary may create a webhook in order to trigger a runbook that contains malicious code.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://powerzure.readthedocs.io/en/latest/Functions/operational.html#create-backdoor","https://github.com/hausec/PowerZure","https://posts.specterops.io/attacking-azure-azure-ad-and-introducing-powerzure-ca70b330511a","https://www.ciraltos.com/webhooks-and-azure-automation-runbooks/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and\n azure.activitylogs.operation_name:\n (\n \"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/WEBHOOKS/ACTION\" or\n \"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/WEBHOOKS/WRITE\"\n ) and\n event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Automation Webhook Created v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Azure Automation webhook is created. Azure Automation runbooks can be configured to execute via a webhook. A webhook uses a custom URL passed to Azure Automation along with a data payload specific to the runbook. An adversary may create a webhook in order to trigger a runbook that contains malicious code.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://powerzure.readthedocs.io/en/latest/Functions/operational.html#create-backdoor","https://github.com/hausec/PowerZure","https://posts.specterops.io/attacking-azure-azure-ad-and-introducing-powerzure-ca70b330511a","https://www.ciraltos.com/webhooks-and-azure-automation-runbooks/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and\n azure.activitylogs.operation_name:\n (\n \"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/WEBHOOKS/ACTION\" or\n \"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/WEBHOOKS/WRITE\"\n ) and\n event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Automation Webhook Created v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Azure Automation webhook is created. Azure Automation runbooks can be configured to execute via a webhook. A webhook uses a custom URL passed to Azure Automation along with a data payload specific to the runbook. An adversary may create a webhook in order to trigger a runbook that contains malicious code.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://powerzure.readthedocs.io/en/latest/Functions/operational.html#create-backdoor","https://github.com/hausec/PowerZure","https://posts.specterops.io/attacking-azure-azure-ad-and-introducing-powerzure-ca70b330511a","https://www.ciraltos.com/webhooks-and-azure-automation-runbooks/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and\n azure.activitylogs.operation_name:\n (\n \"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/WEBHOOKS/ACTION\" or\n \"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/WEBHOOKS/WRITE\"\n ) and\n event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"e9ff9c1c-fe36-4d0d-b3fd-9e0bf4853a62","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/ea248a02-bc47-4043-8e94-2885b19b2636.json b/fleet-packages/detection-rules-composite/kibana/security_rule/ea248a02-bc47-4043-8e94-2885b19b2636.json new file mode 100644 index 0000000000000..8dde099557895 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/ea248a02-bc47-4043-8e94-2885b19b2636.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"ea248a02-bc47-4043-8e94-2885b19b2636","versions":[{"name":"AWS IAM Brute Force of Assume Role Policy v103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number of failed attempts to assume an AWS Identity and Access Management (IAM) role. IAM roles are used to delegate access to users or services. An adversary may attempt to enumerate IAM roles in order to determine if a role exists before attempting to assume or hijack the discovered role.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS IAM Brute Force of Assume Role Policy\n\nAn IAM role is an IAM identity that you can create in your account that has specific permissions. An IAM role is similar\nto an IAM user, in that it is an AWS identity with permission policies that determine what the identity can and cannot\ndo in AWS. However, instead of being uniquely associated with one person, a role is intended to be assumable by anyone\nwho needs it. Also, a role does not have standard long-term credentials such as a password or access keys associated\nwith it. Instead, when you assume a role, it provides you with temporary security credentials for your role session.\n\nAttackers may attempt to enumerate IAM roles in order to determine if a role exists before attempting to assume or\nhijack the discovered role.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Verify if the `RoleName` parameter contains a unique value in all requests or if the activity is potentially a brute\nforce attack.\n- Verify if the user account successfully updated a trust policy in the last 24 hours.\n- Examine whether this role existed in the environment by looking for past occurrences in your logs.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Examine the account's commands, API calls, and data management actions in the last 24 hours.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- Verify the roles targeted in the failed attempts, and whether the subject role previously existed in the environment.\nIf only one role was targeted in the requests and that role previously existed, it may be a false positive, since\nautomations can continue targeting roles that existed in the environment in the past and cause false positives (FPs).\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-20m","references":["https://www.praetorian.com/blog/aws-iam-assume-role-vulnerabilities","https://rhinosecuritylabs.com/aws/assume-worst-aws-assume-role-enumeration/"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:aws.cloudtrail and\n event.provider:iam.amazonaws.com and event.action:UpdateAssumeRolePolicy and\n aws.cloudtrail.error_code:MalformedPolicyDocumentException and event.outcome:failure\n","threshold":{"field":[],"value":25},"type":"threshold","index":["filebeat-*","logs-aws*"],"language":"kuery","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.error_code","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS IAM Brute Force of Assume Role Policy v103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number of failed attempts to assume an AWS Identity and Access Management (IAM) role. IAM roles are used to delegate access to users or services. An adversary may attempt to enumerate IAM roles in order to determine if a role exists before attempting to assume or hijack the discovered role.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS IAM Brute Force of Assume Role Policy\n\nAn IAM role is an IAM identity that you can create in your account that has specific permissions. An IAM role is similar\nto an IAM user, in that it is an AWS identity with permission policies that determine what the identity can and cannot\ndo in AWS. However, instead of being uniquely associated with one person, a role is intended to be assumable by anyone\nwho needs it. Also, a role does not have standard long-term credentials such as a password or access keys associated\nwith it. Instead, when you assume a role, it provides you with temporary security credentials for your role session.\n\nAttackers may attempt to enumerate IAM roles in order to determine if a role exists before attempting to assume or\nhijack the discovered role.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Verify if the `RoleName` parameter contains a unique value in all requests or if the activity is potentially a brute\nforce attack.\n- Verify if the user account successfully updated a trust policy in the last 24 hours.\n- Examine whether this role existed in the environment by looking for past occurrences in your logs.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Examine the account's commands, API calls, and data management actions in the last 24 hours.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- Verify the roles targeted in the failed attempts, and whether the subject role previously existed in the environment.\nIf only one role was targeted in the requests and that role previously existed, it may be a false positive, since\nautomations can continue targeting roles that existed in the environment in the past and cause false positives (FPs).\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-20m","references":["https://www.praetorian.com/blog/aws-iam-assume-role-vulnerabilities","https://rhinosecuritylabs.com/aws/assume-worst-aws-assume-role-enumeration/"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:aws.cloudtrail and\n event.provider:iam.amazonaws.com and event.action:UpdateAssumeRolePolicy and\n aws.cloudtrail.error_code:MalformedPolicyDocumentException and event.outcome:failure\n","threshold":{"field":[],"value":25},"type":"threshold","index":["filebeat-*","logs-aws*"],"language":"kuery","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.error_code","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS IAM Brute Force of Assume Role Policy v103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number of failed attempts to assume an AWS Identity and Access Management (IAM) role. IAM roles are used to delegate access to users or services. An adversary may attempt to enumerate IAM roles in order to determine if a role exists before attempting to assume or hijack the discovered role.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS IAM Brute Force of Assume Role Policy\n\nAn IAM role is an IAM identity that you can create in your account that has specific permissions. An IAM role is similar\nto an IAM user, in that it is an AWS identity with permission policies that determine what the identity can and cannot\ndo in AWS. However, instead of being uniquely associated with one person, a role is intended to be assumable by anyone\nwho needs it. Also, a role does not have standard long-term credentials such as a password or access keys associated\nwith it. Instead, when you assume a role, it provides you with temporary security credentials for your role session.\n\nAttackers may attempt to enumerate IAM roles in order to determine if a role exists before attempting to assume or\nhijack the discovered role.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Verify if the `RoleName` parameter contains a unique value in all requests or if the activity is potentially a brute\nforce attack.\n- Verify if the user account successfully updated a trust policy in the last 24 hours.\n- Examine whether this role existed in the environment by looking for past occurrences in your logs.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Examine the account's commands, API calls, and data management actions in the last 24 hours.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- Verify the roles targeted in the failed attempts, and whether the subject role previously existed in the environment.\nIf only one role was targeted in the requests and that role previously existed, it may be a false positive, since\nautomations can continue targeting roles that existed in the environment in the past and cause false positives (FPs).\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-20m","references":["https://www.praetorian.com/blog/aws-iam-assume-role-vulnerabilities","https://rhinosecuritylabs.com/aws/assume-worst-aws-assume-role-enumeration/"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:aws.cloudtrail and\n event.provider:iam.amazonaws.com and event.action:UpdateAssumeRolePolicy and\n aws.cloudtrail.error_code:MalformedPolicyDocumentException and event.outcome:failure\n","threshold":{"field":[],"value":25},"type":"threshold","index":["filebeat-*","logs-aws*"],"language":"kuery","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.error_code","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"ea248a02-bc47-4043-8e94-2885b19b2636","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/eaa77d63-9679-4ce3-be25-3ba8b795e5fa.json b/fleet-packages/detection-rules-composite/kibana/security_rule/eaa77d63-9679-4ce3-be25-3ba8b795e5fa.json new file mode 100644 index 0000000000000..92c8ebf585df1 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/eaa77d63-9679-4ce3-be25-3ba8b795e5fa.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"eaa77d63-9679-4ce3-be25-3ba8b795e5fa","versions":[{"name":"Spike in Firewall Denies v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusually large spike in network traffic that was denied by network access control lists (ACLs) or firewall rules. Such a burst of denied traffic is usually caused by either 1) a mis-configured application or firewall or 2) suspicious or malicious activity. Unsuccessful attempts at network transit, in order to connect to command-and-control (C2), or engage in data exfiltration, may produce a burst of failed connections. This could also be due to unusually large amounts of reconnaissance or enumeration traffic. Denial-of-service attacks or traffic floods may also produce such a surge in traffic.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A misconfgured network application or firewall may trigger this alert. Security scans or test cycles may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML"],"anomaly_threshold":75,"machine_learning_job_id":"high_count_network_denies","type":"machine_learning"},{"name":"Spike in Firewall Denies v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusually large spike in network traffic that was denied by network access control lists (ACLs) or firewall rules. Such a burst of denied traffic is usually caused by either 1) a mis-configured application or firewall or 2) suspicious or malicious activity. Unsuccessful attempts at network transit, in order to connect to command-and-control (C2), or engage in data exfiltration, may produce a burst of failed connections. This could also be due to unusually large amounts of reconnaissance or enumeration traffic. Denial-of-service attacks or traffic floods may also produce such a surge in traffic.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A misconfgured network application or firewall may trigger this alert. Security scans or test cycles may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML"],"anomaly_threshold":75,"machine_learning_job_id":"high_count_network_denies","type":"machine_learning"},{"name":"Spike in Firewall Denies v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusually large spike in network traffic that was denied by network access control lists (ACLs) or firewall rules. Such a burst of denied traffic is usually caused by either 1) a mis-configured application or firewall or 2) suspicious or malicious activity. Unsuccessful attempts at network transit, in order to connect to command-and-control (C2), or engage in data exfiltration, may produce a burst of failed connections. This could also be due to unusually large amounts of reconnaissance or enumeration traffic. Denial-of-service attacks or traffic floods may also produce such a surge in traffic.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A misconfgured network application or firewall may trigger this alert. Security scans or test cycles may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML"],"anomaly_threshold":75,"machine_learning_job_id":"high_count_network_denies","type":"machine_learning"}]},"id":"eaa77d63-9679-4ce3-be25-3ba8b795e5fa","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/eb079c62-4481-4d6e-9643-3ca499df7aaa.json b/fleet-packages/detection-rules-composite/kibana/security_rule/eb079c62-4481-4d6e-9643-3ca499df7aaa.json new file mode 100644 index 0000000000000..fd35d615e3cb3 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/eb079c62-4481-4d6e-9643-3ca499df7aaa.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"eb079c62-4481-4d6e-9643-3ca499df7aaa","versions":[{"name":"External Alerts v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Generates a detection alert for each external alert written to the configured indices. Enabling this rule allows you to immediately begin investigating external alerts in the app.","risk_score":47,"severity":"medium","license":"Elastic License v2","rule_name_override":"message","timestamp_override":"event.ingested","author":["Elastic"],"max_signals":10000,"risk_score_mapping":[{"field":"event.risk_score","operator":"equals","value":""}],"severity_mapping":[{"field":"event.severity","operator":"equals","severity":"low","value":"21"},{"field":"event.severity","operator":"equals","severity":"medium","value":"47"},{"field":"event.severity","operator":"equals","severity":"high","value":"73"},{"field":"event.severity","operator":"equals","severity":"critical","value":"99"}],"tags":["Elastic","Network","Windows","APM","macOS","Linux"],"type":"query","index":["apm-*-transaction*","traces-apm*","auditbeat-*","filebeat-*","logs-*","packetbeat-*","winlogbeat-*"],"language":"kuery","query":"event.kind:alert and not event.module:(endgame or endpoint)\n","required_fields":[{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"External Alerts v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Generates a detection alert for each external alert written to the configured indices. Enabling this rule allows you to immediately begin investigating external alerts in the app.","risk_score":47,"severity":"medium","license":"Elastic License v2","rule_name_override":"message","timestamp_override":"event.ingested","author":["Elastic"],"max_signals":10000,"risk_score_mapping":[{"field":"event.risk_score","operator":"equals","value":""}],"severity_mapping":[{"field":"event.severity","operator":"equals","severity":"low","value":"21"},{"field":"event.severity","operator":"equals","severity":"medium","value":"47"},{"field":"event.severity","operator":"equals","severity":"high","value":"73"},{"field":"event.severity","operator":"equals","severity":"critical","value":"99"}],"tags":["Elastic","Network","Windows","APM","macOS","Linux"],"type":"query","index":["apm-*-transaction*","traces-apm*","auditbeat-*","filebeat-*","logs-*","packetbeat-*","winlogbeat-*"],"language":"kuery","query":"event.kind:alert and not event.module:(endgame or endpoint)\n","required_fields":[{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},{"name":"External Alerts v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Generates a detection alert for each external alert written to the configured indices. Enabling this rule allows you to immediately begin investigating external alerts in the app.","risk_score":47,"severity":"medium","license":"Elastic License v2","rule_name_override":"message","timestamp_override":"event.ingested","author":["Elastic"],"max_signals":10000,"risk_score_mapping":[{"field":"event.risk_score","operator":"equals","value":""}],"severity_mapping":[{"field":"event.severity","operator":"equals","severity":"low","value":"21"},{"field":"event.severity","operator":"equals","severity":"medium","value":"47"},{"field":"event.severity","operator":"equals","severity":"high","value":"73"},{"field":"event.severity","operator":"equals","severity":"critical","value":"99"}],"tags":["Elastic","Network","Windows","APM","macOS","Linux"],"type":"query","index":["apm-*-transaction*","traces-apm*","auditbeat-*","filebeat-*","logs-*","packetbeat-*","winlogbeat-*"],"language":"kuery","query":"event.kind:alert and not event.module:(endgame or endpoint)\n","required_fields":[{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]}]},"id":"eb079c62-4481-4d6e-9643-3ca499df7aaa","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/eb610e70-f9e6-4949-82b9-f1c5bcd37c39.json b/fleet-packages/detection-rules-composite/kibana/security_rule/eb610e70-f9e6-4949-82b9-f1c5bcd37c39.json new file mode 100644 index 0000000000000..3e7ae1963c988 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/eb610e70-f9e6-4949-82b9-f1c5bcd37c39.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"eb610e70-f9e6-4949-82b9-f1c5bcd37c39","versions":[{"name":"PowerShell Kerberos Ticket Request v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects PowerShell scripts that have the capability of requesting kerberos tickets, which is a common step in Kerberoasting toolkits to crack service accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Explicit PowerShell Kerberos Ticket Request\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks, making\nit available for use in various environments, creating an attractive way for attackers to execute code.\n\nAccounts associated with a service principal name (SPN) are viable targets for Kerberoasting attacks, which use brute\nforce to crack the user password, which is used to encrypt a Kerberos TGS ticket.\n\nAttackers can use PowerShell to request these Kerberos tickets, with the intent of extracting them from memory to\nperform Kerberoasting.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate if the script was executed, and if so, which account was targeted.\n- Validate if the account has an SPN associated with it.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Check if the script has any other functionality that can be potentially malicious.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Review event ID [4769](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4769)\nrelated to this account and service name for additional information.\n\n### False positive analysis\n\n- A possible false positive can be identified if the script content is not malicious/harmful or does not request\nKerberos tickets for user accounts, as computer accounts are not vulnerable to Kerberoasting due to complex password\nrequirements and policy.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services. Prioritize privileged accounts.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://cobalt.io/blog/kerberoast-attack-techniques","https://github.com/EmpireProject/Empire/blob/master/data/module_source/credentials/Invoke-Kerberoast.ps1"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"},{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/","subtechnique":[{"id":"T1558.003","name":"Kerberoasting","reference":"https://attack.mitre.org/techniques/T1558/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n KerberosRequestorSecurityToken\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},{"name":"PowerShell Kerberos Ticket Request v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects PowerShell scripts that have the capability of requesting kerberos tickets, which is a common step in Kerberoasting toolkits to crack service accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Explicit PowerShell Kerberos Ticket Request\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks, making\nit available for use in various environments, creating an attractive way for attackers to execute code.\n\nAccounts associated with a service principal name (SPN) are viable targets for Kerberoasting attacks, which use brute\nforce to crack the user password, which is used to encrypt a Kerberos TGS ticket.\n\nAttackers can use PowerShell to request these Kerberos tickets, with the intent of extracting them from memory to\nperform Kerberoasting.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate if the script was executed, and if so, which account was targeted.\n- Validate if the account has an SPN associated with it.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Check if the script has any other functionality that can be potentially malicious.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Review event ID [4769](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4769)\nrelated to this account and service name for additional information.\n\n### False positive analysis\n\n- A possible false positive can be identified if the script content is not malicious/harmful or does not request\nKerberos tickets for user accounts, as computer accounts are not vulnerable to Kerberoasting due to complex password\nrequirements and policy.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services. Prioritize privileged accounts.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://cobalt.io/blog/kerberoast-attack-techniques","https://github.com/EmpireProject/Empire/blob/master/data/module_source/credentials/Invoke-Kerberoast.ps1"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"},{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/","subtechnique":[{"id":"T1558.003","name":"Kerberoasting","reference":"https://attack.mitre.org/techniques/T1558/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n KerberosRequestorSecurityToken\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},{"name":"PowerShell Kerberos Ticket Request v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects PowerShell scripts that have the capability of requesting kerberos tickets, which is a common step in Kerberoasting toolkits to crack service accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Explicit PowerShell Kerberos Ticket Request\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks, making\nit available for use in various environments, creating an attractive way for attackers to execute code.\n\nAccounts associated with a service principal name (SPN) are viable targets for Kerberoasting attacks, which use brute\nforce to crack the user password, which is used to encrypt a Kerberos TGS ticket.\n\nAttackers can use PowerShell to request these Kerberos tickets, with the intent of extracting them from memory to\nperform Kerberoasting.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate if the script was executed, and if so, which account was targeted.\n- Validate if the account has an SPN associated with it.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Check if the script has any other functionality that can be potentially malicious.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Review event ID [4769](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4769)\nrelated to this account and service name for additional information.\n\n### False positive analysis\n\n- A possible false positive can be identified if the script content is not malicious/harmful or does not request\nKerberos tickets for user accounts, as computer accounts are not vulnerable to Kerberoasting due to complex password\nrequirements and policy.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services. Prioritize privileged accounts.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://cobalt.io/blog/kerberoast-attack-techniques","https://github.com/EmpireProject/Empire/blob/master/data/module_source/credentials/Invoke-Kerberoast.ps1"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"},{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/","subtechnique":[{"id":"T1558.003","name":"Kerberoasting","reference":"https://attack.mitre.org/techniques/T1558/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n KerberosRequestorSecurityToken\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"}]},"id":"eb610e70-f9e6-4949-82b9-f1c5bcd37c39","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/eb6a3790-d52d-11ec-8ce9-f661ea17fbce.json b/fleet-packages/detection-rules-composite/kibana/security_rule/eb6a3790-d52d-11ec-8ce9-f661ea17fbce.json new file mode 100644 index 0000000000000..a85ca5d2af28f --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/eb6a3790-d52d-11ec-8ce9-f661ea17fbce.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"eb6a3790-d52d-11ec-8ce9-f661ea17fbce","versions":[{"name":"Suspicious Network Connection Attempt by Root v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an outbound network connection attempt followed by a session id change as the root user by the same process entity. This particular instantiation of a network connection is abnormal and should be investigated as it may indicate a potential reverse shell activity via a privileged process.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n### Investigating Connection Attempt by Non-SSH Root Session\nDetection alerts from this rule indicate a strange or abnormal outbound connection attempt by a privileged process. Here are some possible avenues of investigation:\n- Examine unusual and active sessions using commands such as 'last -a', 'netstat -a', and 'w -a'.\n- Analyze processes and command line arguments to detect anomalous process execution that may be acting as a listener.\n- Analyze anomalies in the use of files that do not normally initiate connections.\n- Examine processes utilizing the network that do not normally have network communication.\n","author":["Elastic"],"false_positives":["False-Positives (FP) can appear if another remote terminal service is being used to connect to it's listener but typically SSH is used in these scenarios."],"from":"now-9m","references":["https://www.sandflysecurity.com/blog/linux-file-masquerading-and-malicious-pids-sandfly-1-2-6-update/","https://twitter.com/GossiTheDog/status/1522964028284411907","https://exatrack.com/public/Tricephalic_Hellkeeper.pdf"],"tags":["Elastic","Host","Linux","Threat Detection","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1095","name":"Non-Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1095/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.003","name":"Sudo and Sudo Caching","reference":"https://attack.mitre.org/techniques/T1548/003/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=1m\n[network where event.type == \"start\" and event.action == \"connection_attempted\" and user.id == \"0\" and\n not process.executable : (\"/bin/ssh\", \"/sbin/ssh\", \"/usr/lib/systemd/systemd\", \"/usr/sbin/sshd\")]\n[process where event.action == \"session_id_change\" and user.id == \"0\" and\n not process.executable : (\"/bin/ssh\", \"/sbin/ssh\", \"/usr/lib/systemd/systemd\", \"/usr/sbin/sshd\")]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"Suspicious Network Connection Attempt by Root v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an outbound network connection attempt followed by a session id change as the root user by the same process entity. This particular instantiation of a network connection is abnormal and should be investigated as it may indicate a potential reverse shell activity via a privileged process.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n### Investigating Connection Attempt by Non-SSH Root Session\nDetection alerts from this rule indicate a strange or abnormal outbound connection attempt by a privileged process. Here are some possible avenues of investigation:\n- Examine unusual and active sessions using commands such as 'last -a', 'netstat -a', and 'w -a'.\n- Analyze processes and command line arguments to detect anomalous process execution that may be acting as a listener.\n- Analyze anomalies in the use of files that do not normally initiate connections.\n- Examine processes utilizing the network that do not normally have network communication.\n","author":["Elastic"],"false_positives":["False-Positives (FP) can appear if another remote terminal service is being used to connect to it's listener but typically SSH is used in these scenarios."],"from":"now-9m","references":["https://www.sandflysecurity.com/blog/linux-file-masquerading-and-malicious-pids-sandfly-1-2-6-update/","https://twitter.com/GossiTheDog/status/1522964028284411907","https://exatrack.com/public/Tricephalic_Hellkeeper.pdf"],"tags":["Elastic","Host","Linux","Threat Detection","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1095","name":"Non-Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1095/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.003","name":"Sudo and Sudo Caching","reference":"https://attack.mitre.org/techniques/T1548/003/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=1m\n[network where event.type == \"start\" and event.action == \"connection_attempted\" and user.id == \"0\" and\n not process.executable : (\"/bin/ssh\", \"/sbin/ssh\", \"/usr/lib/systemd/systemd\", \"/usr/sbin/sshd\")]\n[process where event.action == \"session_id_change\" and user.id == \"0\" and\n not process.executable : (\"/bin/ssh\", \"/sbin/ssh\", \"/usr/lib/systemd/systemd\", \"/usr/sbin/sshd\")]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},{"name":"Suspicious Network Connection Attempt by Root v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an outbound network connection attempt followed by a session id change as the root user by the same process entity. This particular instantiation of a network connection is abnormal and should be investigated as it may indicate a potential reverse shell activity via a privileged process.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n### Investigating Connection Attempt by Non-SSH Root Session\nDetection alerts from this rule indicate a strange or abnormal outbound connection attempt by a privileged process. Here are some possible avenues of investigation:\n- Examine unusual and active sessions using commands such as 'last -a', 'netstat -a', and 'w -a'.\n- Analyze processes and command line arguments to detect anomalous process execution that may be acting as a listener.\n- Analyze anomalies in the use of files that do not normally initiate connections.\n- Examine processes utilizing the network that do not normally have network communication.\n","author":["Elastic"],"false_positives":["False-Positives (FP) can appear if another remote terminal service is being used to connect to it's listener but typically SSH is used in these scenarios."],"from":"now-9m","references":["https://www.sandflysecurity.com/blog/linux-file-masquerading-and-malicious-pids-sandfly-1-2-6-update/","https://twitter.com/GossiTheDog/status/1522964028284411907","https://exatrack.com/public/Tricephalic_Hellkeeper.pdf"],"tags":["Elastic","Host","Linux","Threat Detection","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1095","name":"Non-Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1095/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.003","name":"Sudo and Sudo Caching","reference":"https://attack.mitre.org/techniques/T1548/003/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=1m\n[network where event.type == \"start\" and event.action == \"connection_attempted\" and user.id == \"0\" and\n not process.executable : (\"/bin/ssh\", \"/sbin/ssh\", \"/usr/lib/systemd/systemd\", \"/usr/sbin/sshd\")]\n[process where event.action == \"session_id_change\" and user.id == \"0\" and\n not process.executable : (\"/bin/ssh\", \"/sbin/ssh\", \"/usr/lib/systemd/systemd\", \"/usr/sbin/sshd\")]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]}]},"id":"eb6a3790-d52d-11ec-8ce9-f661ea17fbce","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/eb9eb8ba-a983-41d9-9c93-a1c05112ca5e.json b/fleet-packages/detection-rules-composite/kibana/security_rule/eb9eb8ba-a983-41d9-9c93-a1c05112ca5e.json new file mode 100644 index 0000000000000..9079de96fe38a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/eb9eb8ba-a983-41d9-9c93-a1c05112ca5e.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"eb9eb8ba-a983-41d9-9c93-a1c05112ca5e","versions":[{"name":"Potential Disabling of SELinux v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential attempts to disable Security-Enhanced Linux (SELinux), which is a Linux kernel security feature to support access control policies. Adversaries may disable security tools to avoid possible detection of their tools and activities.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:setenforce and process.args:0\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Potential Disabling of SELinux v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential attempts to disable Security-Enhanced Linux (SELinux), which is a Linux kernel security feature to support access control policies. Adversaries may disable security tools to avoid possible detection of their tools and activities.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:setenforce and process.args:0\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Potential Disabling of SELinux v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential attempts to disable Security-Enhanced Linux (SELinux), which is a Linux kernel security feature to support access control policies. Adversaries may disable security tools to avoid possible detection of their tools and activities.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:setenforce and process.args:0\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"eb9eb8ba-a983-41d9-9c93-a1c05112ca5e","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6.json b/fleet-packages/detection-rules-composite/kibana/security_rule/ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6.json new file mode 100644 index 0000000000000..e8d3eb8c420fc --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6","versions":[{"name":"Mimikatz Memssp Log File Detected v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the password log file from the default Mimikatz memssp module.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Mimikatz Memssp Log File Detected\n\n[Mimikatz](https://github.com/gentilkiwi/mimikatz) is an open-source tool used to collect, decrypt, and/or use cached\ncredentials. This tool is commonly abused by adversaries during the post-compromise stage where adversaries have gained\nan initial foothold on an endpoint and are looking to elevate privileges and seek out additional authentication objects\nsuch as tokens/hashes/credentials that can then be used to laterally move and pivot across a network.\n\nThis rule looks for the creation of a file named `mimilsa.log`, which is generated when using the Mimikatz misc::memssp\nmodule, which injects a malicious Windows SSP to collect locally authenticated credentials, which includes the computer\naccount password, running service credentials, and any accounts that logon.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (e.g., 4624) to the target\nhost.\n- Retrieve and inspect the log file contents.\n- Search for DLL files created in the same location as the log file, and retrieve unsigned DLLs.\n - Use the PowerShell Get-FileHash cmdlet to get the SHA-256 hash value of these files.\n - Search for the existence of these files in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n - Identify the process that created the DLL using file creation events.\n\n### False positive analysis\n\n- This file name `mimilsa.log` should not legitimately be created.\n\n### Related rules\n\n- Mimikatz Powershell Module Activity - ac96ceb8-4399-4191-af1d-4feeac1f1f46\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the host is a Domain Controller (DC):\n - Activate your incident response plan for total Active Directory compromise.\n - Review the privileges assigned to users that can access the DCs to ensure that the least privilege principle is\n being followed and reduce the attack surface.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reboot the host to remove the injected SSP from memory.\n- Reimage the host operating system or restore compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"file where file.name : \"mimilsa.log\" and process.name : \"lsass.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Mimikatz Memssp Log File Detected v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the password log file from the default Mimikatz memssp module.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Mimikatz Memssp Log File Detected\n\n[Mimikatz](https://github.com/gentilkiwi/mimikatz) is an open-source tool used to collect, decrypt, and/or use cached\ncredentials. This tool is commonly abused by adversaries during the post-compromise stage where adversaries have gained\nan initial foothold on an endpoint and are looking to elevate privileges and seek out additional authentication objects\nsuch as tokens/hashes/credentials that can then be used to laterally move and pivot across a network.\n\nThis rule looks for the creation of a file named `mimilsa.log`, which is generated when using the Mimikatz misc::memssp\nmodule, which injects a malicious Windows SSP to collect locally authenticated credentials, which includes the computer\naccount password, running service credentials, and any accounts that logon.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (e.g., 4624) to the target\nhost.\n- Retrieve and inspect the log file contents.\n- Search for DLL files created in the same location as the log file, and retrieve unsigned DLLs.\n - Use the PowerShell Get-FileHash cmdlet to get the SHA-256 hash value of these files.\n - Search for the existence of these files in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n - Identify the process that created the DLL using file creation events.\n\n### False positive analysis\n\n- This file name `mimilsa.log` should not legitimately be created.\n\n### Related rules\n\n- Mimikatz Powershell Module Activity - ac96ceb8-4399-4191-af1d-4feeac1f1f46\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the host is a Domain Controller (DC):\n - Activate your incident response plan for total Active Directory compromise.\n - Review the privileges assigned to users that can access the DCs to ensure that the least privilege principle is\n being followed and reduce the attack surface.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reboot the host to remove the injected SSP from memory.\n- Reimage the host operating system or restore compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"file where file.name : \"mimilsa.log\" and process.name : \"lsass.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Mimikatz Memssp Log File Detected v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the password log file from the default Mimikatz memssp module.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Mimikatz Memssp Log File Detected\n\n[Mimikatz](https://github.com/gentilkiwi/mimikatz) is an open-source tool used to collect, decrypt, and/or use cached\ncredentials. This tool is commonly abused by adversaries during the post-compromise stage where adversaries have gained\nan initial foothold on an endpoint and are looking to elevate privileges and seek out additional authentication objects\nsuch as tokens/hashes/credentials that can then be used to laterally move and pivot across a network.\n\nThis rule looks for the creation of a file named `mimilsa.log`, which is generated when using the Mimikatz misc::memssp\nmodule, which injects a malicious Windows SSP to collect locally authenticated credentials, which includes the computer\naccount password, running service credentials, and any accounts that logon.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (e.g., 4624) to the target\nhost.\n- Retrieve and inspect the log file contents.\n- Search for DLL files created in the same location as the log file, and retrieve unsigned DLLs.\n - Use the PowerShell Get-FileHash cmdlet to get the SHA-256 hash value of these files.\n - Search for the existence of these files in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n - Identify the process that created the DLL using file creation events.\n\n### False positive analysis\n\n- This file name `mimilsa.log` should not legitimately be created.\n\n### Related rules\n\n- Mimikatz Powershell Module Activity - ac96ceb8-4399-4191-af1d-4feeac1f1f46\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the host is a Domain Controller (DC):\n - Activate your incident response plan for total Active Directory compromise.\n - Review the privileges assigned to users that can access the DCs to ensure that the least privilege principle is\n being followed and reduce the attack surface.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reboot the host to remove the injected SSP from memory.\n- Reimage the host operating system or restore compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"file where file.name : \"mimilsa.log\" and process.name : \"lsass.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/ebf1adea-ccf2-4943-8b96-7ab11ca173a5.json b/fleet-packages/detection-rules-composite/kibana/security_rule/ebf1adea-ccf2-4943-8b96-7ab11ca173a5.json new file mode 100644 index 0000000000000..848617d8c7194 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/ebf1adea-ccf2-4943-8b96-7ab11ca173a5.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"ebf1adea-ccf2-4943-8b96-7ab11ca173a5","versions":[{"name":"IIS HTTP Logging Disabled v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when Internet Information Services (IIS) HTTP Logging is disabled on a server. An attacker with IIS server access via a webshell or other mechanism can disable HTTP Logging as an effective anti-forensics measure.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.002","name":"Disable Windows Event Logging","reference":"https://attack.mitre.org/techniques/T1562/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"appcmd.exe\" or process.pe.original_file_name == \"appcmd.exe\") and\n process.args : \"/dontLog*:*True\" and\n not process.parent.name : \"iissetup.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"IIS HTTP Logging Disabled v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when Internet Information Services (IIS) HTTP Logging is disabled on a server. An attacker with IIS server access via a webshell or other mechanism can disable HTTP Logging as an effective anti-forensics measure.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.002","name":"Disable Windows Event Logging","reference":"https://attack.mitre.org/techniques/T1562/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"appcmd.exe\" or process.pe.original_file_name == \"appcmd.exe\") and\n process.args : \"/dontLog*:*True\" and\n not process.parent.name : \"iissetup.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"IIS HTTP Logging Disabled v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when Internet Information Services (IIS) HTTP Logging is disabled on a server. An attacker with IIS server access via a webshell or other mechanism can disable HTTP Logging as an effective anti-forensics measure.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.002","name":"Disable Windows Event Logging","reference":"https://attack.mitre.org/techniques/T1562/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"appcmd.exe\" or process.pe.original_file_name == \"appcmd.exe\") and\n process.args : \"/dontLog*:*True\" and\n not process.parent.name : \"iissetup.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"ebf1adea-ccf2-4943-8b96-7ab11ca173a5","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/ebfe1448-7fac-4d59-acea-181bd89b1f7f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/ebfe1448-7fac-4d59-acea-181bd89b1f7f.json new file mode 100644 index 0000000000000..23a003fe817a4 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/ebfe1448-7fac-4d59-acea-181bd89b1f7f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"ebfe1448-7fac-4d59-acea-181bd89b1f7f","versions":[{"name":"Process Execution from an Unusual Directory v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies process execution from suspicious default Windows directories. This is sometimes done by adversaries to hide malware in trusted paths.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.005","name":"Match Legitimate Name or Location","reference":"https://attack.mitre.org/techniques/T1036/005/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n /* add suspicious execution paths here */\nprocess.executable : (\"C:\\\\PerfLogs\\\\*.exe\",\"C:\\\\Users\\\\Public\\\\*.exe\",\"C:\\\\Windows\\\\Tasks\\\\*.exe\",\"C:\\\\Intel\\\\*.exe\",\"C:\\\\AMD\\\\Temp\\\\*.exe\",\"C:\\\\Windows\\\\AppReadiness\\\\*.exe\",\n\"C:\\\\Windows\\\\ServiceState\\\\*.exe\",\"C:\\\\Windows\\\\security\\\\*.exe\",\"C:\\\\Windows\\\\IdentityCRL\\\\*.exe\",\"C:\\\\Windows\\\\Branding\\\\*.exe\",\"C:\\\\Windows\\\\csc\\\\*.exe\",\n \"C:\\\\Windows\\\\DigitalLocker\\\\*.exe\",\"C:\\\\Windows\\\\en-US\\\\*.exe\",\"C:\\\\Windows\\\\wlansvc\\\\*.exe\",\"C:\\\\Windows\\\\Prefetch\\\\*.exe\",\"C:\\\\Windows\\\\Fonts\\\\*.exe\",\n \"C:\\\\Windows\\\\diagnostics\\\\*.exe\",\"C:\\\\Windows\\\\TAPI\\\\*.exe\",\"C:\\\\Windows\\\\INF\\\\*.exe\",\"C:\\\\Windows\\\\System32\\\\Speech\\\\*.exe\",\"C:\\\\windows\\\\tracing\\\\*.exe\",\n \"c:\\\\windows\\\\IME\\\\*.exe\",\"c:\\\\Windows\\\\Performance\\\\*.exe\",\"c:\\\\windows\\\\intel\\\\*.exe\",\"c:\\\\windows\\\\ms\\\\*.exe\",\"C:\\\\Windows\\\\dot3svc\\\\*.exe\",\n \"C:\\\\Windows\\\\panther\\\\*.exe\",\"C:\\\\Windows\\\\RemotePackages\\\\*.exe\",\"C:\\\\Windows\\\\OCR\\\\*.exe\",\"C:\\\\Windows\\\\appcompat\\\\*.exe\",\"C:\\\\Windows\\\\apppatch\\\\*.exe\",\"C:\\\\Windows\\\\addins\\\\*.exe\",\n \"C:\\\\Windows\\\\Setup\\\\*.exe\",\"C:\\\\Windows\\\\Help\\\\*.exe\",\"C:\\\\Windows\\\\SKB\\\\*.exe\",\"C:\\\\Windows\\\\Vss\\\\*.exe\",\"C:\\\\Windows\\\\Web\\\\*.exe\",\"C:\\\\Windows\\\\servicing\\\\*.exe\",\"C:\\\\Windows\\\\CbsTemp\\\\*.exe\",\n \"C:\\\\Windows\\\\Logs\\\\*.exe\",\"C:\\\\Windows\\\\WaaS\\\\*.exe\",\"C:\\\\Windows\\\\ShellExperiences\\\\*.exe\",\"C:\\\\Windows\\\\ShellComponents\\\\*.exe\",\"C:\\\\Windows\\\\PLA\\\\*.exe\",\n \"C:\\\\Windows\\\\Migration\\\\*.exe\",\"C:\\\\Windows\\\\debug\\\\*.exe\",\"C:\\\\Windows\\\\Cursors\\\\*.exe\",\"C:\\\\Windows\\\\Containers\\\\*.exe\",\"C:\\\\Windows\\\\Boot\\\\*.exe\",\"C:\\\\Windows\\\\bcastdvr\\\\*.exe\",\n \"C:\\\\Windows\\\\assembly\\\\*.exe\",\"C:\\\\Windows\\\\TextInput\\\\*.exe\",\"C:\\\\Windows\\\\security\\\\*.exe\",\"C:\\\\Windows\\\\schemas\\\\*.exe\",\"C:\\\\Windows\\\\SchCache\\\\*.exe\",\"C:\\\\Windows\\\\Resources\\\\*.exe\",\n \"C:\\\\Windows\\\\rescache\\\\*.exe\",\"C:\\\\Windows\\\\Provisioning\\\\*.exe\",\"C:\\\\Windows\\\\PrintDialog\\\\*.exe\",\"C:\\\\Windows\\\\PolicyDefinitions\\\\*.exe\",\"C:\\\\Windows\\\\media\\\\*.exe\",\n \"C:\\\\Windows\\\\Globalization\\\\*.exe\",\"C:\\\\Windows\\\\L2Schemas\\\\*.exe\",\"C:\\\\Windows\\\\LiveKernelReports\\\\*.exe\",\"C:\\\\Windows\\\\ModemLogs\\\\*.exe\",\"C:\\\\Windows\\\\ImmersiveControlPanel\\\\*.exe\") and\n not process.name : (\"SpeechUXWiz.exe\",\"SystemSettings.exe\",\"TrustedInstaller.exe\",\"PrintDialog.exe\",\"MpSigStub.exe\",\"LMS.exe\",\"mpam-*.exe\") and\n not process.executable :\n (\"?:\\\\Intel\\\\Wireless\\\\WUSetupLauncher.exe\",\n \"?:\\\\Intel\\\\Wireless\\\\Setup.exe\",\n \"?:\\\\Intel\\\\Move Mouse.exe\",\n \"?:\\\\windows\\\\Panther\\\\DiagTrackRunner.exe\",\n \"?:\\\\Windows\\\\servicing\\\\GC64\\\\tzupd.exe\",\n \"?:\\\\Users\\\\Public\\\\res\\\\RemoteLite.exe\",\n \"?:\\\\Users\\\\Public\\\\IBM\\\\ClientSolutions\\\\*.exe\",\n \"?:\\\\Users\\\\Public\\\\Documents\\\\syspin.exe\",\n \"?:\\\\Users\\\\Public\\\\res\\\\FileWatcher.exe\")\n /* uncomment once in winlogbeat */\n /* and not (process.code_signature.subject_name == \"Microsoft Corporation\" and process.code_signature.trusted == true) */\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Process Execution from an Unusual Directory v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies process execution from suspicious default Windows directories. This is sometimes done by adversaries to hide malware in trusted paths.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.005","name":"Match Legitimate Name or Location","reference":"https://attack.mitre.org/techniques/T1036/005/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n /* add suspicious execution paths here */\nprocess.executable : (\"C:\\\\PerfLogs\\\\*.exe\",\"C:\\\\Users\\\\Public\\\\*.exe\",\"C:\\\\Windows\\\\Tasks\\\\*.exe\",\"C:\\\\Intel\\\\*.exe\",\"C:\\\\AMD\\\\Temp\\\\*.exe\",\"C:\\\\Windows\\\\AppReadiness\\\\*.exe\",\n\"C:\\\\Windows\\\\ServiceState\\\\*.exe\",\"C:\\\\Windows\\\\security\\\\*.exe\",\"C:\\\\Windows\\\\IdentityCRL\\\\*.exe\",\"C:\\\\Windows\\\\Branding\\\\*.exe\",\"C:\\\\Windows\\\\csc\\\\*.exe\",\n \"C:\\\\Windows\\\\DigitalLocker\\\\*.exe\",\"C:\\\\Windows\\\\en-US\\\\*.exe\",\"C:\\\\Windows\\\\wlansvc\\\\*.exe\",\"C:\\\\Windows\\\\Prefetch\\\\*.exe\",\"C:\\\\Windows\\\\Fonts\\\\*.exe\",\n \"C:\\\\Windows\\\\diagnostics\\\\*.exe\",\"C:\\\\Windows\\\\TAPI\\\\*.exe\",\"C:\\\\Windows\\\\INF\\\\*.exe\",\"C:\\\\Windows\\\\System32\\\\Speech\\\\*.exe\",\"C:\\\\windows\\\\tracing\\\\*.exe\",\n \"c:\\\\windows\\\\IME\\\\*.exe\",\"c:\\\\Windows\\\\Performance\\\\*.exe\",\"c:\\\\windows\\\\intel\\\\*.exe\",\"c:\\\\windows\\\\ms\\\\*.exe\",\"C:\\\\Windows\\\\dot3svc\\\\*.exe\",\n \"C:\\\\Windows\\\\panther\\\\*.exe\",\"C:\\\\Windows\\\\RemotePackages\\\\*.exe\",\"C:\\\\Windows\\\\OCR\\\\*.exe\",\"C:\\\\Windows\\\\appcompat\\\\*.exe\",\"C:\\\\Windows\\\\apppatch\\\\*.exe\",\"C:\\\\Windows\\\\addins\\\\*.exe\",\n \"C:\\\\Windows\\\\Setup\\\\*.exe\",\"C:\\\\Windows\\\\Help\\\\*.exe\",\"C:\\\\Windows\\\\SKB\\\\*.exe\",\"C:\\\\Windows\\\\Vss\\\\*.exe\",\"C:\\\\Windows\\\\Web\\\\*.exe\",\"C:\\\\Windows\\\\servicing\\\\*.exe\",\"C:\\\\Windows\\\\CbsTemp\\\\*.exe\",\n \"C:\\\\Windows\\\\Logs\\\\*.exe\",\"C:\\\\Windows\\\\WaaS\\\\*.exe\",\"C:\\\\Windows\\\\ShellExperiences\\\\*.exe\",\"C:\\\\Windows\\\\ShellComponents\\\\*.exe\",\"C:\\\\Windows\\\\PLA\\\\*.exe\",\n \"C:\\\\Windows\\\\Migration\\\\*.exe\",\"C:\\\\Windows\\\\debug\\\\*.exe\",\"C:\\\\Windows\\\\Cursors\\\\*.exe\",\"C:\\\\Windows\\\\Containers\\\\*.exe\",\"C:\\\\Windows\\\\Boot\\\\*.exe\",\"C:\\\\Windows\\\\bcastdvr\\\\*.exe\",\n \"C:\\\\Windows\\\\assembly\\\\*.exe\",\"C:\\\\Windows\\\\TextInput\\\\*.exe\",\"C:\\\\Windows\\\\security\\\\*.exe\",\"C:\\\\Windows\\\\schemas\\\\*.exe\",\"C:\\\\Windows\\\\SchCache\\\\*.exe\",\"C:\\\\Windows\\\\Resources\\\\*.exe\",\n \"C:\\\\Windows\\\\rescache\\\\*.exe\",\"C:\\\\Windows\\\\Provisioning\\\\*.exe\",\"C:\\\\Windows\\\\PrintDialog\\\\*.exe\",\"C:\\\\Windows\\\\PolicyDefinitions\\\\*.exe\",\"C:\\\\Windows\\\\media\\\\*.exe\",\n \"C:\\\\Windows\\\\Globalization\\\\*.exe\",\"C:\\\\Windows\\\\L2Schemas\\\\*.exe\",\"C:\\\\Windows\\\\LiveKernelReports\\\\*.exe\",\"C:\\\\Windows\\\\ModemLogs\\\\*.exe\",\"C:\\\\Windows\\\\ImmersiveControlPanel\\\\*.exe\") and\n not process.name : (\"SpeechUXWiz.exe\",\"SystemSettings.exe\",\"TrustedInstaller.exe\",\"PrintDialog.exe\",\"MpSigStub.exe\",\"LMS.exe\",\"mpam-*.exe\") and\n not process.executable :\n (\"?:\\\\Intel\\\\Wireless\\\\WUSetupLauncher.exe\",\n \"?:\\\\Intel\\\\Wireless\\\\Setup.exe\",\n \"?:\\\\Intel\\\\Move Mouse.exe\",\n \"?:\\\\windows\\\\Panther\\\\DiagTrackRunner.exe\",\n \"?:\\\\Windows\\\\servicing\\\\GC64\\\\tzupd.exe\",\n \"?:\\\\Users\\\\Public\\\\res\\\\RemoteLite.exe\",\n \"?:\\\\Users\\\\Public\\\\IBM\\\\ClientSolutions\\\\*.exe\",\n \"?:\\\\Users\\\\Public\\\\Documents\\\\syspin.exe\",\n \"?:\\\\Users\\\\Public\\\\res\\\\FileWatcher.exe\")\n /* uncomment once in winlogbeat */\n /* and not (process.code_signature.subject_name == \"Microsoft Corporation\" and process.code_signature.trusted == true) */\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Process Execution from an Unusual Directory v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies process execution from suspicious default Windows directories. This is sometimes done by adversaries to hide malware in trusted paths.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.005","name":"Match Legitimate Name or Location","reference":"https://attack.mitre.org/techniques/T1036/005/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n /* add suspicious execution paths here */\nprocess.executable : (\"C:\\\\PerfLogs\\\\*.exe\",\"C:\\\\Users\\\\Public\\\\*.exe\",\"C:\\\\Windows\\\\Tasks\\\\*.exe\",\"C:\\\\Intel\\\\*.exe\",\"C:\\\\AMD\\\\Temp\\\\*.exe\",\"C:\\\\Windows\\\\AppReadiness\\\\*.exe\",\n\"C:\\\\Windows\\\\ServiceState\\\\*.exe\",\"C:\\\\Windows\\\\security\\\\*.exe\",\"C:\\\\Windows\\\\IdentityCRL\\\\*.exe\",\"C:\\\\Windows\\\\Branding\\\\*.exe\",\"C:\\\\Windows\\\\csc\\\\*.exe\",\n \"C:\\\\Windows\\\\DigitalLocker\\\\*.exe\",\"C:\\\\Windows\\\\en-US\\\\*.exe\",\"C:\\\\Windows\\\\wlansvc\\\\*.exe\",\"C:\\\\Windows\\\\Prefetch\\\\*.exe\",\"C:\\\\Windows\\\\Fonts\\\\*.exe\",\n \"C:\\\\Windows\\\\diagnostics\\\\*.exe\",\"C:\\\\Windows\\\\TAPI\\\\*.exe\",\"C:\\\\Windows\\\\INF\\\\*.exe\",\"C:\\\\Windows\\\\System32\\\\Speech\\\\*.exe\",\"C:\\\\windows\\\\tracing\\\\*.exe\",\n \"c:\\\\windows\\\\IME\\\\*.exe\",\"c:\\\\Windows\\\\Performance\\\\*.exe\",\"c:\\\\windows\\\\intel\\\\*.exe\",\"c:\\\\windows\\\\ms\\\\*.exe\",\"C:\\\\Windows\\\\dot3svc\\\\*.exe\",\n \"C:\\\\Windows\\\\panther\\\\*.exe\",\"C:\\\\Windows\\\\RemotePackages\\\\*.exe\",\"C:\\\\Windows\\\\OCR\\\\*.exe\",\"C:\\\\Windows\\\\appcompat\\\\*.exe\",\"C:\\\\Windows\\\\apppatch\\\\*.exe\",\"C:\\\\Windows\\\\addins\\\\*.exe\",\n \"C:\\\\Windows\\\\Setup\\\\*.exe\",\"C:\\\\Windows\\\\Help\\\\*.exe\",\"C:\\\\Windows\\\\SKB\\\\*.exe\",\"C:\\\\Windows\\\\Vss\\\\*.exe\",\"C:\\\\Windows\\\\Web\\\\*.exe\",\"C:\\\\Windows\\\\servicing\\\\*.exe\",\"C:\\\\Windows\\\\CbsTemp\\\\*.exe\",\n \"C:\\\\Windows\\\\Logs\\\\*.exe\",\"C:\\\\Windows\\\\WaaS\\\\*.exe\",\"C:\\\\Windows\\\\ShellExperiences\\\\*.exe\",\"C:\\\\Windows\\\\ShellComponents\\\\*.exe\",\"C:\\\\Windows\\\\PLA\\\\*.exe\",\n \"C:\\\\Windows\\\\Migration\\\\*.exe\",\"C:\\\\Windows\\\\debug\\\\*.exe\",\"C:\\\\Windows\\\\Cursors\\\\*.exe\",\"C:\\\\Windows\\\\Containers\\\\*.exe\",\"C:\\\\Windows\\\\Boot\\\\*.exe\",\"C:\\\\Windows\\\\bcastdvr\\\\*.exe\",\n \"C:\\\\Windows\\\\assembly\\\\*.exe\",\"C:\\\\Windows\\\\TextInput\\\\*.exe\",\"C:\\\\Windows\\\\security\\\\*.exe\",\"C:\\\\Windows\\\\schemas\\\\*.exe\",\"C:\\\\Windows\\\\SchCache\\\\*.exe\",\"C:\\\\Windows\\\\Resources\\\\*.exe\",\n \"C:\\\\Windows\\\\rescache\\\\*.exe\",\"C:\\\\Windows\\\\Provisioning\\\\*.exe\",\"C:\\\\Windows\\\\PrintDialog\\\\*.exe\",\"C:\\\\Windows\\\\PolicyDefinitions\\\\*.exe\",\"C:\\\\Windows\\\\media\\\\*.exe\",\n \"C:\\\\Windows\\\\Globalization\\\\*.exe\",\"C:\\\\Windows\\\\L2Schemas\\\\*.exe\",\"C:\\\\Windows\\\\LiveKernelReports\\\\*.exe\",\"C:\\\\Windows\\\\ModemLogs\\\\*.exe\",\"C:\\\\Windows\\\\ImmersiveControlPanel\\\\*.exe\") and\n not process.name : (\"SpeechUXWiz.exe\",\"SystemSettings.exe\",\"TrustedInstaller.exe\",\"PrintDialog.exe\",\"MpSigStub.exe\",\"LMS.exe\",\"mpam-*.exe\") and\n not process.executable :\n (\"?:\\\\Intel\\\\Wireless\\\\WUSetupLauncher.exe\",\n \"?:\\\\Intel\\\\Wireless\\\\Setup.exe\",\n \"?:\\\\Intel\\\\Move Mouse.exe\",\n \"?:\\\\windows\\\\Panther\\\\DiagTrackRunner.exe\",\n \"?:\\\\Windows\\\\servicing\\\\GC64\\\\tzupd.exe\",\n \"?:\\\\Users\\\\Public\\\\res\\\\RemoteLite.exe\",\n \"?:\\\\Users\\\\Public\\\\IBM\\\\ClientSolutions\\\\*.exe\",\n \"?:\\\\Users\\\\Public\\\\Documents\\\\syspin.exe\",\n \"?:\\\\Users\\\\Public\\\\res\\\\FileWatcher.exe\")\n /* uncomment once in winlogbeat */\n /* and not (process.code_signature.subject_name == \"Microsoft Corporation\" and process.code_signature.trusted == true) */\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"ebfe1448-7fac-4d59-acea-181bd89b1f7f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/ec8efb0c-604d-42fa-ac46-ed1cfbc38f78.json b/fleet-packages/detection-rules-composite/kibana/security_rule/ec8efb0c-604d-42fa-ac46-ed1cfbc38f78.json new file mode 100644 index 0000000000000..f584f698df537 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/ec8efb0c-604d-42fa-ac46-ed1cfbc38f78.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"ec8efb0c-604d-42fa-ac46-ed1cfbc38f78","versions":[{"name":"Microsoft 365 Inbox Forwarding Rule Created v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new Inbox forwarding rule is created in Microsoft 365. Inbox rules process messages in the Inbox based on conditions and take actions. In this case, the rules will forward the emails to a defined address. Attackers can abuse Inbox Rules to intercept and exfiltrate email data without making organization-wide configuration changes or having the corresponding privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Gary Blackwell","Austin Songer"],"false_positives":["Users and Administrators can create inbox rules for legitimate purposes. Verify if it complies with the company policy and done with the user's consent. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/responding-to-a-compromised-email-account?view=o365-worldwide","https://docs.microsoft.com/en-us/powershell/module/exchange/new-inboxrule?view=exchange-ps","https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/detect-and-remediate-outlook-rules-forms-attack?view=o365-worldwide","https://raw.githubusercontent.com/PwC-IR/Business-Email-Compromise-Guide/main/Extractor%20Cheat%20Sheet.pdf"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1114","name":"Email Collection","reference":"https://attack.mitre.org/techniques/T1114/","subtechnique":[{"id":"T1114.003","name":"Email Forwarding Rule","reference":"https://attack.mitre.org/techniques/T1114/003/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and\nevent.category:web and event.action:(\"New-InboxRule\" or \"Set-InboxRule\") and\n (\n o365.audit.Parameters.ForwardTo:* or\n o365.audit.Parameters.ForwardAsAttachmentTo:* or\n o365.audit.Parameters.RedirectTo:*\n )\n and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Parameters.ForwardAsAttachmentTo","type":"unknown"},{"ecs":false,"name":"o365.audit.Parameters.ForwardTo","type":"unknown"},{"ecs":false,"name":"o365.audit.Parameters.RedirectTo","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Inbox Forwarding Rule Created v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new Inbox forwarding rule is created in Microsoft 365. Inbox rules process messages in the Inbox based on conditions and take actions. In this case, the rules will forward the emails to a defined address. Attackers can abuse Inbox Rules to intercept and exfiltrate email data without making organization-wide configuration changes or having the corresponding privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Gary Blackwell","Austin Songer"],"false_positives":["Users and Administrators can create inbox rules for legitimate purposes. Verify if it complies with the company policy and done with the user's consent. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/responding-to-a-compromised-email-account?view=o365-worldwide","https://docs.microsoft.com/en-us/powershell/module/exchange/new-inboxrule?view=exchange-ps","https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/detect-and-remediate-outlook-rules-forms-attack?view=o365-worldwide","https://raw.githubusercontent.com/PwC-IR/Business-Email-Compromise-Guide/main/Extractor%20Cheat%20Sheet.pdf"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1114","name":"Email Collection","reference":"https://attack.mitre.org/techniques/T1114/","subtechnique":[{"id":"T1114.003","name":"Email Forwarding Rule","reference":"https://attack.mitre.org/techniques/T1114/003/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and\nevent.category:web and event.action:(\"New-InboxRule\" or \"Set-InboxRule\") and\n (\n o365.audit.Parameters.ForwardTo:* or\n o365.audit.Parameters.ForwardAsAttachmentTo:* or\n o365.audit.Parameters.RedirectTo:*\n )\n and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Parameters.ForwardAsAttachmentTo","type":"unknown"},{"ecs":false,"name":"o365.audit.Parameters.ForwardTo","type":"unknown"},{"ecs":false,"name":"o365.audit.Parameters.RedirectTo","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Inbox Forwarding Rule Created v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new Inbox forwarding rule is created in Microsoft 365. Inbox rules process messages in the Inbox based on conditions and take actions. In this case, the rules will forward the emails to a defined address. Attackers can abuse Inbox Rules to intercept and exfiltrate email data without making organization-wide configuration changes or having the corresponding privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Gary Blackwell","Austin Songer"],"false_positives":["Users and Administrators can create inbox rules for legitimate purposes. Verify if it complies with the company policy and done with the user's consent. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/responding-to-a-compromised-email-account?view=o365-worldwide","https://docs.microsoft.com/en-us/powershell/module/exchange/new-inboxrule?view=exchange-ps","https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/detect-and-remediate-outlook-rules-forms-attack?view=o365-worldwide","https://raw.githubusercontent.com/PwC-IR/Business-Email-Compromise-Guide/main/Extractor%20Cheat%20Sheet.pdf"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1114","name":"Email Collection","reference":"https://attack.mitre.org/techniques/T1114/","subtechnique":[{"id":"T1114.003","name":"Email Forwarding Rule","reference":"https://attack.mitre.org/techniques/T1114/003/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and\nevent.category:web and event.action:(\"New-InboxRule\" or \"Set-InboxRule\") and\n (\n o365.audit.Parameters.ForwardTo:* or\n o365.audit.Parameters.ForwardAsAttachmentTo:* or\n o365.audit.Parameters.RedirectTo:*\n )\n and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Parameters.ForwardAsAttachmentTo","type":"unknown"},{"ecs":false,"name":"o365.audit.Parameters.ForwardTo","type":"unknown"},{"ecs":false,"name":"o365.audit.Parameters.RedirectTo","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"ec8efb0c-604d-42fa-ac46-ed1cfbc38f78","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/ecf2b32c-e221-4bd4-aa3b-c7d59b3bc01d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/ecf2b32c-e221-4bd4-aa3b-c7d59b3bc01d.json new file mode 100644 index 0000000000000..7b74590b0083e --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/ecf2b32c-e221-4bd4-aa3b-c7d59b3bc01d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"ecf2b32c-e221-4bd4-aa3b-c7d59b3bc01d","versions":[{"name":"AWS RDS Instance/Cluster Stoppage v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies that an Amazon Relational Database Service (RDS) cluster or instance has been stopped.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Valid clusters or instances may be stopped by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Cluster or instance stoppages from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/stop-db-cluster.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_StopDBCluster.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/stop-db-instance.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_StopDBInstance.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:(StopDBCluster or StopDBInstance) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS RDS Instance/Cluster Stoppage v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies that an Amazon Relational Database Service (RDS) cluster or instance has been stopped.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Valid clusters or instances may be stopped by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Cluster or instance stoppages from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/stop-db-cluster.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_StopDBCluster.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/stop-db-instance.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_StopDBInstance.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:(StopDBCluster or StopDBInstance) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS RDS Instance/Cluster Stoppage v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies that an Amazon Relational Database Service (RDS) cluster or instance has been stopped.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Valid clusters or instances may be stopped by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Cluster or instance stoppages from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/stop-db-cluster.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_StopDBCluster.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/stop-db-instance.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_StopDBInstance.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:(StopDBCluster or StopDBInstance) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"ecf2b32c-e221-4bd4-aa3b-c7d59b3bc01d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/ed9ecd27-e3e6-4fd9-8586-7754803f7fc8.json b/fleet-packages/detection-rules-composite/kibana/security_rule/ed9ecd27-e3e6-4fd9-8586-7754803f7fc8.json new file mode 100644 index 0000000000000..56284ed001592 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/ed9ecd27-e3e6-4fd9-8586-7754803f7fc8.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"ed9ecd27-e3e6-4fd9-8586-7754803f7fc8","versions":[{"name":"Azure Global Administrator Role Addition to PIM User v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an Azure Active Directory (AD) Global Administrator role addition to a Privileged Identity Management (PIM) user account. PIM is a service that enables you to manage, control, and monitor access to important resources in an organization. Users who are assigned to the Global administrator role can read and modify any administrative setting in your Azure AD organization.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Global administrator additions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Global administrator additions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://docs.microsoft.com/en-us/azure/active-directory/users-groups-roles/directory-assign-admin-roles"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.properties.category:RoleManagement and\n azure.auditlogs.operation_name:(\"Add eligible member to role in PIM completed (permanent)\" or\n \"Add member to role in PIM completed (timebound)\") and\n azure.auditlogs.properties.target_resources.*.display_name:\"Global Administrator\" and\n event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.properties.category","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.properties.target_resources.*.display_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Global Administrator Role Addition to PIM User v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an Azure Active Directory (AD) Global Administrator role addition to a Privileged Identity Management (PIM) user account. PIM is a service that enables you to manage, control, and monitor access to important resources in an organization. Users who are assigned to the Global administrator role can read and modify any administrative setting in your Azure AD organization.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Global administrator additions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Global administrator additions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://docs.microsoft.com/en-us/azure/active-directory/users-groups-roles/directory-assign-admin-roles"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.properties.category:RoleManagement and\n azure.auditlogs.operation_name:(\"Add eligible member to role in PIM completed (permanent)\" or\n \"Add member to role in PIM completed (timebound)\") and\n azure.auditlogs.properties.target_resources.*.display_name:\"Global Administrator\" and\n event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.properties.category","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.properties.target_resources.*.display_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Global Administrator Role Addition to PIM User v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an Azure Active Directory (AD) Global Administrator role addition to a Privileged Identity Management (PIM) user account. PIM is a service that enables you to manage, control, and monitor access to important resources in an organization. Users who are assigned to the Global administrator role can read and modify any administrative setting in your Azure AD organization.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Global administrator additions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Global administrator additions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://docs.microsoft.com/en-us/azure/active-directory/users-groups-roles/directory-assign-admin-roles"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.properties.category:RoleManagement and\n azure.auditlogs.operation_name:(\"Add eligible member to role in PIM completed (permanent)\" or\n \"Add member to role in PIM completed (timebound)\") and\n azure.auditlogs.properties.target_resources.*.display_name:\"Global Administrator\" and\n event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.properties.category","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.properties.target_resources.*.display_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"ed9ecd27-e3e6-4fd9-8586-7754803f7fc8","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/eda499b8-a073-4e35-9733-22ec71f57f3a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/eda499b8-a073-4e35-9733-22ec71f57f3a.json new file mode 100644 index 0000000000000..c8f39e46c105a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/eda499b8-a073-4e35-9733-22ec71f57f3a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"eda499b8-a073-4e35-9733-22ec71f57f3a","versions":[{"name":"AdFind Command Activity v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects the Active Directory query tool, AdFind.exe. AdFind has legitimate purposes, but it is frequently leveraged by threat actors to perform post-exploitation Active Directory reconnaissance. The AdFind tool has been observed in Trickbot, Ryuk, Maze, and FIN6 campaigns. For Winlogbeat, this rule requires Sysmon.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AdFind Command Activity\n\n[AdFind](http://www.joeware.net/freetools/tools/adfind/) is a freely available command-line tool used to retrieve information\nfrom Active Directory (AD). Network discovery and enumeration tools like `AdFind` are useful to adversaries in the same\nways they are effective for network administrators. This tool provides quick ability to scope AD person/computer objects\nand understand subnets and domain information. There are many [examples](https://thedfirreport.com/category/adfind/) of\nthis tool being adopted by ransomware and criminal groups and used in compromises.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Examine the command line to determine what information was retrieved by the tool.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- This rule has a high chance to produce false positives as it is a legitimate tool used by network administrators.\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n- Malicious behavior with `AdFind` should be investigated as part of a step within an attack chain. It doesn't happen in\nisolation, so reviewing previous logs/activity from impacted machines can be very telling.\n\n### Related rules\n\n- Windows Network Enumeration - 7b8bfc26-81d2-435e-965c-d722ee397ef1\n- Enumeration of Administrator Accounts - 871ea072-1b71-4def-b016-6278b505138d\n- Enumeration Command Spawned via WMIPrvSE - 770e0c4d-b998-41e5-a62e-c7901fd7f470\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["http://www.joeware.net/freetools/tools/adfind/","https://thedfirreport.com/2020/05/08/adfind-recon/","https://www.fireeye.com/blog/threat-research/2020/05/tactics-techniques-procedures-associated-with-maze-ransomware-incidents.html","https://www.cybereason.com/blog/dropping-anchor-from-a-trickbot-infection-to-the-discovery-of-the-anchor-malware","https://www.fireeye.com/blog/threat-research/2019/04/pick-six-intercepting-a-fin6-intrusion.html","https://usa.visa.com/dam/VCOM/global/support-legal/documents/fin6-cybercrime-group-expands-threat-To-ecommerce-merchants.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1018","name":"Remote System Discovery","reference":"https://attack.mitre.org/techniques/T1018/"},{"id":"T1069","name":"Permission Groups Discovery","reference":"https://attack.mitre.org/techniques/T1069/","subtechnique":[{"id":"T1069.002","name":"Domain Groups","reference":"https://attack.mitre.org/techniques/T1069/002/"}]},{"id":"T1087","name":"Account Discovery","reference":"https://attack.mitre.org/techniques/T1087/","subtechnique":[{"id":"T1087.002","name":"Domain Account","reference":"https://attack.mitre.org/techniques/T1087/002/"}]},{"id":"T1482","name":"Domain Trust Discovery","reference":"https://attack.mitre.org/techniques/T1482/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"AdFind.exe\" or process.pe.original_file_name == \"AdFind.exe\") and\n process.args : (\"objectcategory=computer\", \"(objectcategory=computer)\",\n \"objectcategory=person\", \"(objectcategory=person)\",\n \"objectcategory=subnet\", \"(objectcategory=subnet)\",\n \"objectcategory=group\", \"(objectcategory=group)\",\n \"objectcategory=organizationalunit\", \"(objectcategory=organizationalunit)\",\n \"objectcategory=attributeschema\", \"(objectcategory=attributeschema)\",\n \"domainlist\", \"dcmodes\", \"adinfo\", \"dclist\", \"computers_pwnotreqd\", \"trustdmp\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"AdFind Command Activity v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects the Active Directory query tool, AdFind.exe. AdFind has legitimate purposes, but it is frequently leveraged by threat actors to perform post-exploitation Active Directory reconnaissance. The AdFind tool has been observed in Trickbot, Ryuk, Maze, and FIN6 campaigns. For Winlogbeat, this rule requires Sysmon.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AdFind Command Activity\n\n[AdFind](http://www.joeware.net/freetools/tools/adfind/) is a freely available command-line tool used to retrieve information\nfrom Active Directory (AD). Network discovery and enumeration tools like `AdFind` are useful to adversaries in the same\nways they are effective for network administrators. This tool provides quick ability to scope AD person/computer objects\nand understand subnets and domain information. There are many [examples](https://thedfirreport.com/category/adfind/) of\nthis tool being adopted by ransomware and criminal groups and used in compromises.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Examine the command line to determine what information was retrieved by the tool.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- This rule has a high chance to produce false positives as it is a legitimate tool used by network administrators.\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n- Malicious behavior with `AdFind` should be investigated as part of a step within an attack chain. It doesn't happen in\nisolation, so reviewing previous logs/activity from impacted machines can be very telling.\n\n### Related rules\n\n- Windows Network Enumeration - 7b8bfc26-81d2-435e-965c-d722ee397ef1\n- Enumeration of Administrator Accounts - 871ea072-1b71-4def-b016-6278b505138d\n- Enumeration Command Spawned via WMIPrvSE - 770e0c4d-b998-41e5-a62e-c7901fd7f470\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["http://www.joeware.net/freetools/tools/adfind/","https://thedfirreport.com/2020/05/08/adfind-recon/","https://www.fireeye.com/blog/threat-research/2020/05/tactics-techniques-procedures-associated-with-maze-ransomware-incidents.html","https://www.cybereason.com/blog/dropping-anchor-from-a-trickbot-infection-to-the-discovery-of-the-anchor-malware","https://www.fireeye.com/blog/threat-research/2019/04/pick-six-intercepting-a-fin6-intrusion.html","https://usa.visa.com/dam/VCOM/global/support-legal/documents/fin6-cybercrime-group-expands-threat-To-ecommerce-merchants.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1018","name":"Remote System Discovery","reference":"https://attack.mitre.org/techniques/T1018/"},{"id":"T1069","name":"Permission Groups Discovery","reference":"https://attack.mitre.org/techniques/T1069/","subtechnique":[{"id":"T1069.002","name":"Domain Groups","reference":"https://attack.mitre.org/techniques/T1069/002/"}]},{"id":"T1087","name":"Account Discovery","reference":"https://attack.mitre.org/techniques/T1087/","subtechnique":[{"id":"T1087.002","name":"Domain Account","reference":"https://attack.mitre.org/techniques/T1087/002/"}]},{"id":"T1482","name":"Domain Trust Discovery","reference":"https://attack.mitre.org/techniques/T1482/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"AdFind.exe\" or process.pe.original_file_name == \"AdFind.exe\") and\n process.args : (\"objectcategory=computer\", \"(objectcategory=computer)\",\n \"objectcategory=person\", \"(objectcategory=person)\",\n \"objectcategory=subnet\", \"(objectcategory=subnet)\",\n \"objectcategory=group\", \"(objectcategory=group)\",\n \"objectcategory=organizationalunit\", \"(objectcategory=organizationalunit)\",\n \"objectcategory=attributeschema\", \"(objectcategory=attributeschema)\",\n \"domainlist\", \"dcmodes\", \"adinfo\", \"dclist\", \"computers_pwnotreqd\", \"trustdmp\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"AdFind Command Activity v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects the Active Directory query tool, AdFind.exe. AdFind has legitimate purposes, but it is frequently leveraged by threat actors to perform post-exploitation Active Directory reconnaissance. The AdFind tool has been observed in Trickbot, Ryuk, Maze, and FIN6 campaigns. For Winlogbeat, this rule requires Sysmon.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AdFind Command Activity\n\n[AdFind](http://www.joeware.net/freetools/tools/adfind/) is a freely available command-line tool used to retrieve information\nfrom Active Directory (AD). Network discovery and enumeration tools like `AdFind` are useful to adversaries in the same\nways they are effective for network administrators. This tool provides quick ability to scope AD person/computer objects\nand understand subnets and domain information. There are many [examples](https://thedfirreport.com/category/adfind/) of\nthis tool being adopted by ransomware and criminal groups and used in compromises.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Examine the command line to determine what information was retrieved by the tool.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- This rule has a high chance to produce false positives as it is a legitimate tool used by network administrators.\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n- Malicious behavior with `AdFind` should be investigated as part of a step within an attack chain. It doesn't happen in\nisolation, so reviewing previous logs/activity from impacted machines can be very telling.\n\n### Related rules\n\n- Windows Network Enumeration - 7b8bfc26-81d2-435e-965c-d722ee397ef1\n- Enumeration of Administrator Accounts - 871ea072-1b71-4def-b016-6278b505138d\n- Enumeration Command Spawned via WMIPrvSE - 770e0c4d-b998-41e5-a62e-c7901fd7f470\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["http://www.joeware.net/freetools/tools/adfind/","https://thedfirreport.com/2020/05/08/adfind-recon/","https://www.fireeye.com/blog/threat-research/2020/05/tactics-techniques-procedures-associated-with-maze-ransomware-incidents.html","https://www.cybereason.com/blog/dropping-anchor-from-a-trickbot-infection-to-the-discovery-of-the-anchor-malware","https://www.fireeye.com/blog/threat-research/2019/04/pick-six-intercepting-a-fin6-intrusion.html","https://usa.visa.com/dam/VCOM/global/support-legal/documents/fin6-cybercrime-group-expands-threat-To-ecommerce-merchants.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1018","name":"Remote System Discovery","reference":"https://attack.mitre.org/techniques/T1018/"},{"id":"T1069","name":"Permission Groups Discovery","reference":"https://attack.mitre.org/techniques/T1069/","subtechnique":[{"id":"T1069.002","name":"Domain Groups","reference":"https://attack.mitre.org/techniques/T1069/002/"}]},{"id":"T1087","name":"Account Discovery","reference":"https://attack.mitre.org/techniques/T1087/","subtechnique":[{"id":"T1087.002","name":"Domain Account","reference":"https://attack.mitre.org/techniques/T1087/002/"}]},{"id":"T1482","name":"Domain Trust Discovery","reference":"https://attack.mitre.org/techniques/T1482/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"AdFind.exe\" or process.pe.original_file_name == \"AdFind.exe\") and\n process.args : (\"objectcategory=computer\", \"(objectcategory=computer)\",\n \"objectcategory=person\", \"(objectcategory=person)\",\n \"objectcategory=subnet\", \"(objectcategory=subnet)\",\n \"objectcategory=group\", \"(objectcategory=group)\",\n \"objectcategory=organizationalunit\", \"(objectcategory=organizationalunit)\",\n \"objectcategory=attributeschema\", \"(objectcategory=attributeschema)\",\n \"domainlist\", \"dcmodes\", \"adinfo\", \"dclist\", \"computers_pwnotreqd\", \"trustdmp\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"eda499b8-a073-4e35-9733-22ec71f57f3a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/edb91186-1c7e-4db8-b53e-bfa33a1a0a8a.json b/fleet-packages/detection-rules-composite/kibana/security_rule/edb91186-1c7e-4db8-b53e-bfa33a1a0a8a.json new file mode 100644 index 0000000000000..65163bda9aaa6 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/edb91186-1c7e-4db8-b53e-bfa33a1a0a8a.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"edb91186-1c7e-4db8-b53e-bfa33a1a0a8a","versions":[{"name":"Attempt to Deactivate an Okta Application v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to deactivate an Okta application. An adversary may attempt to modify, deactivate, or delete an Okta application in order to weaken an organization's security controls or disrupt their business operations.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if your organization's Okta applications are regularly deactivated and the behavior is expected."],"references":["https://help.okta.com/en/prod/Content/Topics/Apps/Apps_Apps.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:application.lifecycle.deactivate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Deactivate an Okta Application v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to deactivate an Okta application. An adversary may attempt to modify, deactivate, or delete an Okta application in order to weaken an organization's security controls or disrupt their business operations.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if your organization's Okta applications are regularly deactivated and the behavior is expected."],"references":["https://help.okta.com/en/prod/Content/Topics/Apps/Apps_Apps.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:application.lifecycle.deactivate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Attempt to Deactivate an Okta Application v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to deactivate an Okta application. An adversary may attempt to modify, deactivate, or delete an Okta application in order to weaken an organization's security controls or disrupt their business operations.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if your organization's Okta applications are regularly deactivated and the behavior is expected."],"references":["https://help.okta.com/en/prod/Content/Topics/Apps/Apps_Apps.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:application.lifecycle.deactivate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"edb91186-1c7e-4db8-b53e-bfa33a1a0a8a","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/edf8ee23-5ea7-4123-ba19-56b41e424ae3.json b/fleet-packages/detection-rules-composite/kibana/security_rule/edf8ee23-5ea7-4123-ba19-56b41e424ae3.json new file mode 100644 index 0000000000000..24a4652c8da66 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/edf8ee23-5ea7-4123-ba19-56b41e424ae3.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"edf8ee23-5ea7-4123-ba19-56b41e424ae3","versions":[{"name":"ImageLoad via Windows Update Auto Update Client v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies abuse of the Windows Update Auto Update Client (wuauclt.exe) to load an arbitrary DLL. This behavior is used as a defense evasion technique to blend-in malicious activity with legitimate Windows software.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timeline_id":"e70679c2-6cde-4510-9764-4823df18f7db","timeline_title":"Comprehensive Process Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://dtm.uk/wuauclt/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.pe.original_file_name == \"wuauclt.exe\" or process.name : \"wuauclt.exe\") and\n /* necessary windows update client args to load a dll */\n process.args : \"/RunHandlerComServer\" and process.args : \"/UpdateDeploymentProvider\" and\n /* common paths writeable by a standard user where the target DLL can be placed */\n process.args : (\"C:\\\\Users\\\\*.dll\", \"C:\\\\ProgramData\\\\*.dll\", \"C:\\\\Windows\\\\Temp\\\\*.dll\", \"C:\\\\Windows\\\\Tasks\\\\*.dll\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"ImageLoad via Windows Update Auto Update Client v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies abuse of the Windows Update Auto Update Client (wuauclt.exe) to load an arbitrary DLL. This behavior is used as a defense evasion technique to blend-in malicious activity with legitimate Windows software.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timeline_id":"e70679c2-6cde-4510-9764-4823df18f7db","timeline_title":"Comprehensive Process Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://dtm.uk/wuauclt/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.pe.original_file_name == \"wuauclt.exe\" or process.name : \"wuauclt.exe\") and\n /* necessary windows update client args to load a dll */\n process.args : \"/RunHandlerComServer\" and process.args : \"/UpdateDeploymentProvider\" and\n /* common paths writeable by a standard user where the target DLL can be placed */\n process.args : (\"C:\\\\Users\\\\*.dll\", \"C:\\\\ProgramData\\\\*.dll\", \"C:\\\\Windows\\\\Temp\\\\*.dll\", \"C:\\\\Windows\\\\Tasks\\\\*.dll\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"ImageLoad via Windows Update Auto Update Client v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies abuse of the Windows Update Auto Update Client (wuauclt.exe) to load an arbitrary DLL. This behavior is used as a defense evasion technique to blend-in malicious activity with legitimate Windows software.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timeline_id":"e70679c2-6cde-4510-9764-4823df18f7db","timeline_title":"Comprehensive Process Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://dtm.uk/wuauclt/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.pe.original_file_name == \"wuauclt.exe\" or process.name : \"wuauclt.exe\") and\n /* necessary windows update client args to load a dll */\n process.args : \"/RunHandlerComServer\" and process.args : \"/UpdateDeploymentProvider\" and\n /* common paths writeable by a standard user where the target DLL can be placed */\n process.args : (\"C:\\\\Users\\\\*.dll\", \"C:\\\\ProgramData\\\\*.dll\", \"C:\\\\Windows\\\\Temp\\\\*.dll\", \"C:\\\\Windows\\\\Tasks\\\\*.dll\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"edf8ee23-5ea7-4123-ba19-56b41e424ae3","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/ee5300a7-7e31-4a72-a258-250abb8b3aa1.json b/fleet-packages/detection-rules-composite/kibana/security_rule/ee5300a7-7e31-4a72-a258-250abb8b3aa1.json new file mode 100644 index 0000000000000..1fc58d92a2876 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/ee5300a7-7e31-4a72-a258-250abb8b3aa1.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"ee5300a7-7e31-4a72-a258-250abb8b3aa1","versions":[{"name":"Unusual Print Spooler Child Process v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects unusual Print Spooler service (spoolsv.exe) child processes. This may indicate an attempt to exploit privilege escalation vulnerabilities related to the Printing Service on Windows.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Install or update of a legitimate printing driver. Verify the printer driver file metadata such as manufacturer and signature information."],"from":"now-9m","references":["https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34527"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"spoolsv.exe\" and\n (?process.Ext.token.integrity_level_name : \"System\" or\n ?winlog.event_data.IntegrityLevel : \"System\") and\n\n /* exclusions for FP control below */\n not process.name : (\"splwow64.exe\", \"PDFCreator.exe\", \"acrodist.exe\", \"spoolsv.exe\", \"msiexec.exe\", \"route.exe\", \"WerFault.exe\") and\n not process.command_line : \"*\\\\WINDOWS\\\\system32\\\\spool\\\\DRIVERS*\" and\n not (process.name : \"net.exe\" and process.command_line : (\"*stop*\", \"*start*\")) and\n not (process.name : (\"cmd.exe\", \"powershell.exe\") and process.command_line : (\"*.spl*\", \"*\\\\program files*\", \"*route add*\")) and\n not (process.name : \"netsh.exe\" and process.command_line : (\"*add portopening*\", \"*rule name*\")) and\n not (process.name : \"regsvr32.exe\" and process.command_line : \"*PrintConfig.dll*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.IntegrityLevel","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Unusual Print Spooler Child Process v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects unusual Print Spooler service (spoolsv.exe) child processes. This may indicate an attempt to exploit privilege escalation vulnerabilities related to the Printing Service on Windows.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Install or update of a legitimate printing driver. Verify the printer driver file metadata such as manufacturer and signature information."],"from":"now-9m","references":["https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34527"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"spoolsv.exe\" and\n (?process.Ext.token.integrity_level_name : \"System\" or\n ?winlog.event_data.IntegrityLevel : \"System\") and\n\n /* exclusions for FP control below */\n not process.name : (\"splwow64.exe\", \"PDFCreator.exe\", \"acrodist.exe\", \"spoolsv.exe\", \"msiexec.exe\", \"route.exe\", \"WerFault.exe\") and\n not process.command_line : \"*\\\\WINDOWS\\\\system32\\\\spool\\\\DRIVERS*\" and\n not (process.name : \"net.exe\" and process.command_line : (\"*stop*\", \"*start*\")) and\n not (process.name : (\"cmd.exe\", \"powershell.exe\") and process.command_line : (\"*.spl*\", \"*\\\\program files*\", \"*route add*\")) and\n not (process.name : \"netsh.exe\" and process.command_line : (\"*add portopening*\", \"*rule name*\")) and\n not (process.name : \"regsvr32.exe\" and process.command_line : \"*PrintConfig.dll*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.IntegrityLevel","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Unusual Print Spooler Child Process v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects unusual Print Spooler service (spoolsv.exe) child processes. This may indicate an attempt to exploit privilege escalation vulnerabilities related to the Printing Service on Windows.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Install or update of a legitimate printing driver. Verify the printer driver file metadata such as manufacturer and signature information."],"from":"now-9m","references":["https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34527"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"spoolsv.exe\" and\n (?process.Ext.token.integrity_level_name : \"System\" or\n ?winlog.event_data.IntegrityLevel : \"System\") and\n\n /* exclusions for FP control below */\n not process.name : (\"splwow64.exe\", \"PDFCreator.exe\", \"acrodist.exe\", \"spoolsv.exe\", \"msiexec.exe\", \"route.exe\", \"WerFault.exe\") and\n not process.command_line : \"*\\\\WINDOWS\\\\system32\\\\spool\\\\DRIVERS*\" and\n not (process.name : \"net.exe\" and process.command_line : (\"*stop*\", \"*start*\")) and\n not (process.name : (\"cmd.exe\", \"powershell.exe\") and process.command_line : (\"*.spl*\", \"*\\\\program files*\", \"*route add*\")) and\n not (process.name : \"netsh.exe\" and process.command_line : (\"*add portopening*\", \"*rule name*\")) and\n not (process.name : \"regsvr32.exe\" and process.command_line : \"*PrintConfig.dll*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.IntegrityLevel","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"ee5300a7-7e31-4a72-a258-250abb8b3aa1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/eea82229-b002-470e-a9e1-00be38b14d32.json b/fleet-packages/detection-rules-composite/kibana/security_rule/eea82229-b002-470e-a9e1-00be38b14d32.json new file mode 100644 index 0000000000000..355a957513979 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/eea82229-b002-470e-a9e1-00be38b14d32.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"eea82229-b002-470e-a9e1-00be38b14d32","versions":[{"name":"Potential Privacy Control Bypass via TCCDB Modification v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of sqlite3 to directly modify the Transparency, Consent, and Control (TCC) SQLite database. This may indicate an attempt to bypass macOS privacy controls, including access to sensitive resources like the system camera, microphone, address book, and calendar.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://applehelpwriter.com/2016/08/29/discovering-how-dropbox-hacks-your-mac/","https://github.com/bp88/JSS-Scripts/blob/master/TCC.db%20Modifier.sh","https://medium.com/@mattshockl/cve-2020-9934-bypassing-the-os-x-transparency-consent-and-control-tcc-framework-for-4e14806f1de8"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.name : \"sqlite*\" and\n process.args : \"/*/Application Support/com.apple.TCC/TCC.db\" and\n not process.parent.executable : \"/Library/Bitdefender/AVP/product/bin/*\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Privacy Control Bypass via TCCDB Modification v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of sqlite3 to directly modify the Transparency, Consent, and Control (TCC) SQLite database. This may indicate an attempt to bypass macOS privacy controls, including access to sensitive resources like the system camera, microphone, address book, and calendar.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://applehelpwriter.com/2016/08/29/discovering-how-dropbox-hacks-your-mac/","https://github.com/bp88/JSS-Scripts/blob/master/TCC.db%20Modifier.sh","https://medium.com/@mattshockl/cve-2020-9934-bypassing-the-os-x-transparency-consent-and-control-tcc-framework-for-4e14806f1de8"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.name : \"sqlite*\" and\n process.args : \"/*/Application Support/com.apple.TCC/TCC.db\" and\n not process.parent.executable : \"/Library/Bitdefender/AVP/product/bin/*\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Privacy Control Bypass via TCCDB Modification v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of sqlite3 to directly modify the Transparency, Consent, and Control (TCC) SQLite database. This may indicate an attempt to bypass macOS privacy controls, including access to sensitive resources like the system camera, microphone, address book, and calendar.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://applehelpwriter.com/2016/08/29/discovering-how-dropbox-hacks-your-mac/","https://github.com/bp88/JSS-Scripts/blob/master/TCC.db%20Modifier.sh","https://medium.com/@mattshockl/cve-2020-9934-bypassing-the-os-x-transparency-consent-and-control-tcc-framework-for-4e14806f1de8"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.name : \"sqlite*\" and\n process.args : \"/*/Application Support/com.apple.TCC/TCC.db\" and\n not process.parent.executable : \"/Library/Bitdefender/AVP/product/bin/*\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"eea82229-b002-470e-a9e1-00be38b14d32","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/ef04a476-07ec-48fc-8f3d-5e1742de76d3.json b/fleet-packages/detection-rules-composite/kibana/security_rule/ef04a476-07ec-48fc-8f3d-5e1742de76d3.json new file mode 100644 index 0000000000000..6d1956b3f1b74 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/ef04a476-07ec-48fc-8f3d-5e1742de76d3.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"ef04a476-07ec-48fc-8f3d-5e1742de76d3","versions":[{"name":"BPF filter applied using TC v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when the tc (transmission control) binary is utilized to set a BPF (Berkeley Packet Filter) on a network interface. Tc is used to configure Traffic Control in the Linux kernel. It can shape, schedule, police and drop traffic. A threat actor can utilize tc to set a bpf filter on an interface for the purpose of manipulating the incoming traffic. This technique is not at all common and should indicate abnormal, suspicious or malicious activity.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/h3xduck/TripleCross/blob/master/src/helpers/deployer.sh","https://man7.org/linux/man-pages/man8/tc.8.html"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","TripleCross"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.004","name":"Unix Shell","reference":"https://attack.mitre.org/techniques/T1059/004/"}]}]}],"language":"eql","query":"process where event.type != \"end\" and process.executable : \"/usr/sbin/tc\" and process.args : \"filter\" and process.args : \"add\" and process.args : \"bpf\" and not process.parent.executable: \"/usr/sbin/libvirtd\"\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},{"name":"BPF filter applied using TC v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when the tc (transmission control) binary is utilized to set a BPF (Berkeley Packet Filter) on a network interface. Tc is used to configure Traffic Control in the Linux kernel. It can shape, schedule, police and drop traffic. A threat actor can utilize tc to set a bpf filter on an interface for the purpose of manipulating the incoming traffic. This technique is not at all common and should indicate abnormal, suspicious or malicious activity.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/h3xduck/TripleCross/blob/master/src/helpers/deployer.sh","https://man7.org/linux/man-pages/man8/tc.8.html"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","TripleCross"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.004","name":"Unix Shell","reference":"https://attack.mitre.org/techniques/T1059/004/"}]}]}],"language":"eql","query":"process where event.type != \"end\" and process.executable : \"/usr/sbin/tc\" and process.args : \"filter\" and process.args : \"add\" and process.args : \"bpf\" and not process.parent.executable: \"/usr/sbin/libvirtd\"\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},{"name":"BPF filter applied using TC v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when the tc (transmission control) binary is utilized to set a BPF (Berkeley Packet Filter) on a network interface. Tc is used to configure Traffic Control in the Linux kernel. It can shape, schedule, police and drop traffic. A threat actor can utilize tc to set a bpf filter on an interface for the purpose of manipulating the incoming traffic. This technique is not at all common and should indicate abnormal, suspicious or malicious activity.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/h3xduck/TripleCross/blob/master/src/helpers/deployer.sh","https://man7.org/linux/man-pages/man8/tc.8.html"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","TripleCross"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.004","name":"Unix Shell","reference":"https://attack.mitre.org/techniques/T1059/004/"}]}]}],"language":"eql","query":"process where event.type != \"end\" and process.executable : \"/usr/sbin/tc\" and process.args : \"filter\" and process.args : \"add\" and process.args : \"bpf\" and not process.parent.executable: \"/usr/sbin/libvirtd\"\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]}]},"id":"ef04a476-07ec-48fc-8f3d-5e1742de76d3","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/ef862985-3f13-4262-a686-5f357bbb9bc2.json b/fleet-packages/detection-rules-composite/kibana/security_rule/ef862985-3f13-4262-a686-5f357bbb9bc2.json new file mode 100644 index 0000000000000..cd83c113db5e6 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/ef862985-3f13-4262-a686-5f357bbb9bc2.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"ef862985-3f13-4262-a686-5f357bbb9bc2","versions":[{"name":"Whoami Process Activity v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious use of whoami.exe which displays user, group, and privileges information for the user who is currently logged on to the local system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Whoami Process Activity\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `whoami` utility. Attackers commonly use this utility to measure their current\nprivileges, discover the current user, determine if a privilege escalation was successful, etc.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Related rules\n\n- Account Discovery Command via SYSTEM Account - 2856446a-34e6-435b-9fb5-f8f040bfa7ed\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some normal use of this program, at varying levels of frequency, may originate from scripts, automation tools and frameworks. Usage by non-engineers and ordinary users is unusual."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1033","name":"System Owner/User Discovery","reference":"https://attack.mitre.org/techniques/T1033/"}]}],"language":"eql","query":"process where event.type == \"start\" and process.name : \"whoami.exe\" and\n(\n\n (/* scoped for whoami execution under system privileges */\n (user.domain : (\"NT AUTHORITY\", \"NT-AUTORITÄT\", \"AUTORITE NT\", \"IIS APPPOOL\") or user.id : (\"S-1-5-18\", \"S-1-5-19\", \"S-1-5-20\")) and\n\n not (process.parent.name : \"cmd.exe\" and\n process.parent.args : (\"chcp 437>nul 2>&1 & C:\\\\WINDOWS\\\\System32\\\\whoami.exe /groups\",\n \"chcp 437>nul 2>&1 & %systemroot%\\\\system32\\\\whoami /user\",\n \"C:\\\\WINDOWS\\\\System32\\\\whoami.exe /groups\",\n \"*WINDOWS\\\\system32\\\\config\\\\systemprofile*\")) and\n not (process.parent.executable : \"C:\\\\Windows\\\\system32\\\\inetsrv\\\\appcmd.exe\" and process.parent.args : \"LIST\") and\n not process.parent.executable : (\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\MonitoringHost.exe\",\n \"C:\\\\Program Files\\\\Cohesity\\\\cohesity_windows_agent_service.exe\")) or\n\n process.parent.name : (\"wsmprovhost.exe\", \"w3wp.exe\", \"wmiprvse.exe\", \"rundll32.exe\", \"regsvr32.exe\")\n\n)\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","logs-system.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Whoami Process Activity v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious use of whoami.exe which displays user, group, and privileges information for the user who is currently logged on to the local system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Whoami Process Activity\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `whoami` utility. Attackers commonly use this utility to measure their current\nprivileges, discover the current user, determine if a privilege escalation was successful, etc.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Related rules\n\n- Account Discovery Command via SYSTEM Account - 2856446a-34e6-435b-9fb5-f8f040bfa7ed\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some normal use of this program, at varying levels of frequency, may originate from scripts, automation tools and frameworks. Usage by non-engineers and ordinary users is unusual."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1033","name":"System Owner/User Discovery","reference":"https://attack.mitre.org/techniques/T1033/"}]}],"language":"eql","query":"process where event.type == \"start\" and process.name : \"whoami.exe\" and\n(\n\n (/* scoped for whoami execution under system privileges */\n (user.domain : (\"NT AUTHORITY\", \"NT-AUTORITÄT\", \"AUTORITE NT\", \"IIS APPPOOL\") or user.id : (\"S-1-5-18\", \"S-1-5-19\", \"S-1-5-20\")) and\n\n not (process.parent.name : \"cmd.exe\" and\n process.parent.args : (\"chcp 437>nul 2>&1 & C:\\\\WINDOWS\\\\System32\\\\whoami.exe /groups\",\n \"chcp 437>nul 2>&1 & %systemroot%\\\\system32\\\\whoami /user\",\n \"C:\\\\WINDOWS\\\\System32\\\\whoami.exe /groups\",\n \"*WINDOWS\\\\system32\\\\config\\\\systemprofile*\")) and\n not (process.parent.executable : \"C:\\\\Windows\\\\system32\\\\inetsrv\\\\appcmd.exe\" and process.parent.args : \"LIST\") and\n not process.parent.executable : (\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\MonitoringHost.exe\",\n \"C:\\\\Program Files\\\\Cohesity\\\\cohesity_windows_agent_service.exe\")) or\n\n process.parent.name : (\"wsmprovhost.exe\", \"w3wp.exe\", \"wmiprvse.exe\", \"rundll32.exe\", \"regsvr32.exe\")\n\n)\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","logs-system.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Whoami Process Activity v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious use of whoami.exe which displays user, group, and privileges information for the user who is currently logged on to the local system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Whoami Process Activity\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `whoami` utility. Attackers commonly use this utility to measure their current\nprivileges, discover the current user, determine if a privilege escalation was successful, etc.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Related rules\n\n- Account Discovery Command via SYSTEM Account - 2856446a-34e6-435b-9fb5-f8f040bfa7ed\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some normal use of this program, at varying levels of frequency, may originate from scripts, automation tools and frameworks. Usage by non-engineers and ordinary users is unusual."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1033","name":"System Owner/User Discovery","reference":"https://attack.mitre.org/techniques/T1033/"}]}],"language":"eql","query":"process where event.type == \"start\" and process.name : \"whoami.exe\" and\n(\n\n (/* scoped for whoami execution under system privileges */\n (user.domain : (\"NT AUTHORITY\", \"NT-AUTORITÄT\", \"AUTORITE NT\", \"IIS APPPOOL\") or user.id : (\"S-1-5-18\", \"S-1-5-19\", \"S-1-5-20\")) and\n\n not (process.parent.name : \"cmd.exe\" and\n process.parent.args : (\"chcp 437>nul 2>&1 & C:\\\\WINDOWS\\\\System32\\\\whoami.exe /groups\",\n \"chcp 437>nul 2>&1 & %systemroot%\\\\system32\\\\whoami /user\",\n \"C:\\\\WINDOWS\\\\System32\\\\whoami.exe /groups\",\n \"*WINDOWS\\\\system32\\\\config\\\\systemprofile*\")) and\n not (process.parent.executable : \"C:\\\\Windows\\\\system32\\\\inetsrv\\\\appcmd.exe\" and process.parent.args : \"LIST\") and\n not process.parent.executable : (\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\MonitoringHost.exe\",\n \"C:\\\\Program Files\\\\Cohesity\\\\cohesity_windows_agent_service.exe\")) or\n\n process.parent.name : (\"wsmprovhost.exe\", \"w3wp.exe\", \"wmiprvse.exe\", \"rundll32.exe\", \"regsvr32.exe\")\n\n)\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","logs-system.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"ef862985-3f13-4262-a686-5f357bbb9bc2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/f036953a-4615-4707-a1ca-dc53bf69dcd5.json b/fleet-packages/detection-rules-composite/kibana/security_rule/f036953a-4615-4707-a1ca-dc53bf69dcd5.json new file mode 100644 index 0000000000000..7957262f42810 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/f036953a-4615-4707-a1ca-dc53bf69dcd5.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"f036953a-4615-4707-a1ca-dc53bf69dcd5","versions":[{"name":"Unusual Child Processes of RunDLL32 v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies child processes of unusual instances of RunDLL32 where the command line parameters were suspicious. Misuse of RunDLL32 could indicate malicious activity.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-60m","interval":"30m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.011","name":"Rundll32","reference":"https://attack.mitre.org/techniques/T1218/011/"}]}]}],"language":"eql","query":"sequence with maxspan=1h\n [process where event.type == \"start\" and\n (process.name : \"rundll32.exe\" or process.pe.original_file_name == \"RUNDLL32.EXE\") and\n process.args_count == 1\n ] by process.entity_id\n [process where event.type == \"start\" and process.parent.name : \"rundll32.exe\"\n ] by process.parent.entity_id\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}]},{"name":"Unusual Child Processes of RunDLL32 v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies child processes of unusual instances of RunDLL32 where the command line parameters were suspicious. Misuse of RunDLL32 could indicate malicious activity.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-60m","interval":"30m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.011","name":"Rundll32","reference":"https://attack.mitre.org/techniques/T1218/011/"}]}]}],"language":"eql","query":"sequence with maxspan=1h\n [process where event.type == \"start\" and\n (process.name : \"rundll32.exe\" or process.pe.original_file_name == \"RUNDLL32.EXE\") and\n process.args_count == 1\n ] by process.entity_id\n [process where event.type == \"start\" and process.parent.name : \"rundll32.exe\"\n ] by process.parent.entity_id\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}]},{"name":"Unusual Child Processes of RunDLL32 v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies child processes of unusual instances of RunDLL32 where the command line parameters were suspicious. Misuse of RunDLL32 could indicate malicious activity.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-60m","interval":"30m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.011","name":"Rundll32","reference":"https://attack.mitre.org/techniques/T1218/011/"}]}]}],"language":"eql","query":"sequence with maxspan=1h\n [process where event.type == \"start\" and\n (process.name : \"rundll32.exe\" or process.pe.original_file_name == \"RUNDLL32.EXE\") and\n process.args_count == 1\n ] by process.entity_id\n [process where event.type == \"start\" and process.parent.name : \"rundll32.exe\"\n ] by process.parent.entity_id\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}]}]},"id":"f036953a-4615-4707-a1ca-dc53bf69dcd5","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/f0493cb4-9b15-43a9-9359-68c23a7f2cf3.json b/fleet-packages/detection-rules-composite/kibana/security_rule/f0493cb4-9b15-43a9-9359-68c23a7f2cf3.json new file mode 100644 index 0000000000000..0df046e092b0e --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/f0493cb4-9b15-43a9-9359-68c23a7f2cf3.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"f0493cb4-9b15-43a9-9359-68c23a7f2cf3","versions":[{"name":"Suspicious HTML File Creation v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a browser process to open an HTML file with high entropy and size. Adversaries may smuggle data and files past content filters by hiding malicious payloads inside of seemingly benign HTML files.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"},{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1027","name":"Obfuscated Files or Information","reference":"https://attack.mitre.org/techniques/T1027/","subtechnique":[{"id":"T1027.006","name":"HTML Smuggling","reference":"https://attack.mitre.org/techniques/T1027/006/"}]}]}],"language":"eql","query":"sequence by user.id with maxspan=5m\n [file where event.action in (\"creation\", \"rename\") and\n file.extension : (\"htm\", \"html\") and\n file.path : (\"?:\\\\Users\\\\*\\\\Downloads\\\\*\",\n \"?:\\\\Users\\\\*\\\\Content.Outlook\\\\*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\Temp?_*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\7z*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\Rar$*\") and\n ((file.Ext.entropy >= 5 and file.size >= 150000) or file.size >= 1000000)]\n [process where event.action == \"start\" and\n (\n (process.name in (\"chrome.exe\", \"msedge.exe\", \"brave.exe\", \"whale.exe\", \"browser.exe\", \"dragon.exe\", \"vivaldi.exe\", \"opera.exe\")\n and process.args == \"--single-argument\") or\n (process.name == \"iexplore.exe\" and process.args_count == 2) or\n (process.name in (\"firefox.exe\", \"waterfox.exe\") and process.args == \"-url\")\n )\n and process.args : (\"?:\\\\Users\\\\*\\\\Downloads\\\\*.htm*\",\n \"?:\\\\Users\\\\*\\\\Content.Outlook\\\\*.htm*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\Temp?_*.htm*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\7z*.htm*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\Rar$*.htm*\")]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":false,"name":"file.Ext.entropy","type":"unknown"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"file.size","type":"long"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious HTML File Creation v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a browser process to open an HTML file with high entropy and size. Adversaries may smuggle data and files past content filters by hiding malicious payloads inside of seemingly benign HTML files.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"},{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1027","name":"Obfuscated Files or Information","reference":"https://attack.mitre.org/techniques/T1027/","subtechnique":[{"id":"T1027.006","name":"HTML Smuggling","reference":"https://attack.mitre.org/techniques/T1027/006/"}]}]}],"language":"eql","query":"sequence by user.id with maxspan=5m\n [file where event.action in (\"creation\", \"rename\") and\n file.extension : (\"htm\", \"html\") and\n file.path : (\"?:\\\\Users\\\\*\\\\Downloads\\\\*\",\n \"?:\\\\Users\\\\*\\\\Content.Outlook\\\\*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\Temp?_*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\7z*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\Rar$*\") and\n ((file.Ext.entropy >= 5 and file.size >= 150000) or file.size >= 1000000)]\n [process where event.action == \"start\" and\n (\n (process.name in (\"chrome.exe\", \"msedge.exe\", \"brave.exe\", \"whale.exe\", \"browser.exe\", \"dragon.exe\", \"vivaldi.exe\", \"opera.exe\")\n and process.args == \"--single-argument\") or\n (process.name == \"iexplore.exe\" and process.args_count == 2) or\n (process.name in (\"firefox.exe\", \"waterfox.exe\") and process.args == \"-url\")\n )\n and process.args : (\"?:\\\\Users\\\\*\\\\Downloads\\\\*.htm*\",\n \"?:\\\\Users\\\\*\\\\Content.Outlook\\\\*.htm*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\Temp?_*.htm*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\7z*.htm*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\Rar$*.htm*\")]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":false,"name":"file.Ext.entropy","type":"unknown"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"file.size","type":"long"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious HTML File Creation v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a browser process to open an HTML file with high entropy and size. Adversaries may smuggle data and files past content filters by hiding malicious payloads inside of seemingly benign HTML files.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"},{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1027","name":"Obfuscated Files or Information","reference":"https://attack.mitre.org/techniques/T1027/","subtechnique":[{"id":"T1027.006","name":"HTML Smuggling","reference":"https://attack.mitre.org/techniques/T1027/006/"}]}]}],"language":"eql","query":"sequence by user.id with maxspan=5m\n [file where event.action in (\"creation\", \"rename\") and\n file.extension : (\"htm\", \"html\") and\n file.path : (\"?:\\\\Users\\\\*\\\\Downloads\\\\*\",\n \"?:\\\\Users\\\\*\\\\Content.Outlook\\\\*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\Temp?_*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\7z*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\Rar$*\") and\n ((file.Ext.entropy >= 5 and file.size >= 150000) or file.size >= 1000000)]\n [process where event.action == \"start\" and\n (\n (process.name in (\"chrome.exe\", \"msedge.exe\", \"brave.exe\", \"whale.exe\", \"browser.exe\", \"dragon.exe\", \"vivaldi.exe\", \"opera.exe\")\n and process.args == \"--single-argument\") or\n (process.name == \"iexplore.exe\" and process.args_count == 2) or\n (process.name in (\"firefox.exe\", \"waterfox.exe\") and process.args == \"-url\")\n )\n and process.args : (\"?:\\\\Users\\\\*\\\\Downloads\\\\*.htm*\",\n \"?:\\\\Users\\\\*\\\\Content.Outlook\\\\*.htm*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\Temp?_*.htm*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\7z*.htm*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\Rar$*.htm*\")]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":false,"name":"file.Ext.entropy","type":"unknown"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"file.size","type":"long"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"f0493cb4-9b15-43a9-9359-68c23a7f2cf3","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/f06414a6-f2a4-466d-8eba-10f85e8abf71.json b/fleet-packages/detection-rules-composite/kibana/security_rule/f06414a6-f2a4-466d-8eba-10f85e8abf71.json new file mode 100644 index 0000000000000..5363bbfe28f37 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/f06414a6-f2a4-466d-8eba-10f85e8abf71.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"f06414a6-f2a4-466d-8eba-10f85e8abf71","versions":[{"name":"Administrator Role Assigned to an Okta User v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an administrator role is assigned to an Okta user. An adversary may attempt to assign an administrator role to an Okta user in order to assign additional permissions to a user account and maintain access to their target's environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrator roles may be assigned to Okta users by a Super Admin user. Verify that the behavior was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/administrators-admin-comparison.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Okta","SecOps","Monitoring","Continuous Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.account.privilege.grant\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Administrator Role Assigned to an Okta User v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an administrator role is assigned to an Okta user. An adversary may attempt to assign an administrator role to an Okta user in order to assign additional permissions to a user account and maintain access to their target's environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrator roles may be assigned to Okta users by a Super Admin user. Verify that the behavior was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/administrators-admin-comparison.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Okta","SecOps","Monitoring","Continuous Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.account.privilege.grant\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Administrator Role Assigned to an Okta User v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an administrator role is assigned to an Okta user. An adversary may attempt to assign an administrator role to an Okta user in order to assign additional permissions to a user account and maintain access to their target's environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrator roles may be assigned to Okta users by a Super Admin user. Verify that the behavior was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/administrators-admin-comparison.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Okta","SecOps","Monitoring","Continuous Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.account.privilege.grant\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"f06414a6-f2a4-466d-8eba-10f85e8abf71","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/f0b48bbc-549e-4bcf-8ee0-a7a72586c6a7.json b/fleet-packages/detection-rules-composite/kibana/security_rule/f0b48bbc-549e-4bcf-8ee0-a7a72586c6a7.json new file mode 100644 index 0000000000000..c5d3a99b0cddb --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/f0b48bbc-549e-4bcf-8ee0-a7a72586c6a7.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"f0b48bbc-549e-4bcf-8ee0-a7a72586c6a7","versions":[{"name":"Attempt to Remove File Quarantine Attribute v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a potential Gatekeeper bypass. In macOS, when applications or programs are downloaded from the internet, there is a quarantine flag set on the file. This attribute is read by Apple's Gatekeeper defense program at execution time. An adversary may disable this attribute to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.trendmicro.com/en_us/research/20/k/new-macos-backdoor-connected-to-oceanlotus-surfaces.html","https://ss64.com/osx/xattr.html"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.name : \"xattr\" and\n (\n (process.args : \"com.apple.quarantine\" and process.args : (\"-d\", \"-w\")) or\n (process.args : \"-c\") or\n (process.command_line : (\"/bin/bash -c xattr -c *\", \"/bin/zsh -c xattr -c *\", \"/bin/sh -c xattr -c *\"))\n ) and not process.args_count > 12\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Attempt to Remove File Quarantine Attribute v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a potential Gatekeeper bypass. In macOS, when applications or programs are downloaded from the internet, there is a quarantine flag set on the file. This attribute is read by Apple's Gatekeeper defense program at execution time. An adversary may disable this attribute to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.trendmicro.com/en_us/research/20/k/new-macos-backdoor-connected-to-oceanlotus-surfaces.html","https://ss64.com/osx/xattr.html"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.name : \"xattr\" and\n (\n (process.args : \"com.apple.quarantine\" and process.args : (\"-d\", \"-w\")) or\n (process.args : \"-c\") or\n (process.command_line : (\"/bin/bash -c xattr -c *\", \"/bin/zsh -c xattr -c *\", \"/bin/sh -c xattr -c *\"))\n ) and not process.args_count > 12\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Attempt to Remove File Quarantine Attribute v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a potential Gatekeeper bypass. In macOS, when applications or programs are downloaded from the internet, there is a quarantine flag set on the file. This attribute is read by Apple's Gatekeeper defense program at execution time. An adversary may disable this attribute to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.trendmicro.com/en_us/research/20/k/new-macos-backdoor-connected-to-oceanlotus-surfaces.html","https://ss64.com/osx/xattr.html"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.name : \"xattr\" and\n (\n (process.args : \"com.apple.quarantine\" and process.args : (\"-d\", \"-w\")) or\n (process.args : \"-c\") or\n (process.command_line : (\"/bin/bash -c xattr -c *\", \"/bin/zsh -c xattr -c *\", \"/bin/sh -c xattr -c *\"))\n ) and not process.args_count > 12\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"f0b48bbc-549e-4bcf-8ee0-a7a72586c6a7","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/f0bc081a-2346-4744-a6a4-81514817e888.json b/fleet-packages/detection-rules-composite/kibana/security_rule/f0bc081a-2346-4744-a6a4-81514817e888.json new file mode 100644 index 0000000000000..c5bfba783e9c6 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/f0bc081a-2346-4744-a6a4-81514817e888.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"f0bc081a-2346-4744-a6a4-81514817e888","versions":[{"name":"Azure Alert Suppression Rule Created or Modified v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of suppression rules in Azure. Suppression rules are a mechanism used to suppress alerts previously identified as false positives or too noisy to be in production. This mechanism can be abused or mistakenly configured, resulting in defense evasions and loss of security visibility.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Suppression Rules can be created legitimately by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Suppression Rules created by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations","https://docs.microsoft.com/en-us/rest/api/securitycenter/alerts-suppression-rules/update"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.SECURITY/ALERTSSUPPRESSIONRULES/WRITE\" and\nevent.outcome: \"success\"\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Alert Suppression Rule Created or Modified v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of suppression rules in Azure. Suppression rules are a mechanism used to suppress alerts previously identified as false positives or too noisy to be in production. This mechanism can be abused or mistakenly configured, resulting in defense evasions and loss of security visibility.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Suppression Rules can be created legitimately by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Suppression Rules created by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations","https://docs.microsoft.com/en-us/rest/api/securitycenter/alerts-suppression-rules/update"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.SECURITY/ALERTSSUPPRESSIONRULES/WRITE\" and\nevent.outcome: \"success\"\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Alert Suppression Rule Created or Modified v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of suppression rules in Azure. Suppression rules are a mechanism used to suppress alerts previously identified as false positives or too noisy to be in production. This mechanism can be abused or mistakenly configured, resulting in defense evasions and loss of security visibility.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Suppression Rules can be created legitimately by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Suppression Rules created by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations","https://docs.microsoft.com/en-us/rest/api/securitycenter/alerts-suppression-rules/update"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.SECURITY/ALERTSSUPPRESSIONRULES/WRITE\" and\nevent.outcome: \"success\"\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"f0bc081a-2346-4744-a6a4-81514817e888","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/f0eb70e9-71e9-40cd-813f-bf8e8c812cb1.json b/fleet-packages/detection-rules-composite/kibana/security_rule/f0eb70e9-71e9-40cd-813f-bf8e8c812cb1.json new file mode 100644 index 0000000000000..29be802a74499 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/f0eb70e9-71e9-40cd-813f-bf8e8c812cb1.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"f0eb70e9-71e9-40cd-813f-bf8e8c812cb1","versions":[{"name":"Execution with Explicit Credentials via Scripting v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution of the security_authtrampoline process via a scripting interpreter. This occurs when programs use AuthorizationExecute-WithPrivileges from the Security.framework to run another program with root privileges. It should not be run by itself, as this is a sign of execution with explicit logon credentials.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://objectivebythesea.com/v2/talks/OBTS_v2_Thomas.pdf","https://www.manpagez.com/man/8/security_authtrampoline/"],"tags":["Elastic","Host","macOS","Threat Detection","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"},{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.004","name":"Elevated Execution with Prompt","reference":"https://attack.mitre.org/techniques/T1548/004/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:\"security_authtrampoline\" and\n process.parent.name:(osascript or com.apple.automator.runner or sh or bash or dash or zsh or python* or Python or perl* or php* or ruby or pwsh)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},{"name":"Execution with Explicit Credentials via Scripting v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution of the security_authtrampoline process via a scripting interpreter. This occurs when programs use AuthorizationExecute-WithPrivileges from the Security.framework to run another program with root privileges. It should not be run by itself, as this is a sign of execution with explicit logon credentials.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://objectivebythesea.com/v2/talks/OBTS_v2_Thomas.pdf","https://www.manpagez.com/man/8/security_authtrampoline/"],"tags":["Elastic","Host","macOS","Threat Detection","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"},{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.004","name":"Elevated Execution with Prompt","reference":"https://attack.mitre.org/techniques/T1548/004/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:\"security_authtrampoline\" and\n process.parent.name:(osascript or com.apple.automator.runner or sh or bash or dash or zsh or python* or Python or perl* or php* or ruby or pwsh)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},{"name":"Execution with Explicit Credentials via Scripting v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution of the security_authtrampoline process via a scripting interpreter. This occurs when programs use AuthorizationExecute-WithPrivileges from the Security.framework to run another program with root privileges. It should not be run by itself, as this is a sign of execution with explicit logon credentials.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://objectivebythesea.com/v2/talks/OBTS_v2_Thomas.pdf","https://www.manpagez.com/man/8/security_authtrampoline/"],"tags":["Elastic","Host","macOS","Threat Detection","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"},{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.004","name":"Elevated Execution with Prompt","reference":"https://attack.mitre.org/techniques/T1548/004/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:\"security_authtrampoline\" and\n process.parent.name:(osascript or com.apple.automator.runner or sh or bash or dash or zsh or python* or Python or perl* or php* or ruby or pwsh)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]}]},"id":"f0eb70e9-71e9-40cd-813f-bf8e8c812cb1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/f24bcae1-8980-4b30-b5dd-f851b055c9e7.json b/fleet-packages/detection-rules-composite/kibana/security_rule/f24bcae1-8980-4b30-b5dd-f851b055c9e7.json new file mode 100644 index 0000000000000..287d4d39424b0 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/f24bcae1-8980-4b30-b5dd-f851b055c9e7.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"f24bcae1-8980-4b30-b5dd-f851b055c9e7","versions":[{"name":"Creation of Hidden Login Item via Apple Script v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of osascript to create a hidden login item. This may indicate an attempt to persist a malicious program while concealing its presence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","macOS","Threat Detection","Persistence","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.002","name":"AppleScript","reference":"https://attack.mitre.org/techniques/T1059/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1647","name":"Plist File Modification","reference":"https://attack.mitre.org/techniques/T1647/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.name : \"osascript\" and\n process.command_line : \"osascript*login item*hidden:true*\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Creation of Hidden Login Item via Apple Script v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of osascript to create a hidden login item. This may indicate an attempt to persist a malicious program while concealing its presence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","macOS","Threat Detection","Persistence","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.002","name":"AppleScript","reference":"https://attack.mitre.org/techniques/T1059/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1647","name":"Plist File Modification","reference":"https://attack.mitre.org/techniques/T1647/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.name : \"osascript\" and\n process.command_line : \"osascript*login item*hidden:true*\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Creation of Hidden Login Item via Apple Script v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of osascript to create a hidden login item. This may indicate an attempt to persist a malicious program while concealing its presence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","macOS","Threat Detection","Persistence","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.002","name":"AppleScript","reference":"https://attack.mitre.org/techniques/T1059/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1647","name":"Plist File Modification","reference":"https://attack.mitre.org/techniques/T1647/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.name : \"osascript\" and\n process.command_line : \"osascript*login item*hidden:true*\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"f24bcae1-8980-4b30-b5dd-f851b055c9e7","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/f28e2be4-6eca-4349-bdd9-381573730c22.json b/fleet-packages/detection-rules-composite/kibana/security_rule/f28e2be4-6eca-4349-bdd9-381573730c22.json new file mode 100644 index 0000000000000..574472890d6d3 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/f28e2be4-6eca-4349-bdd9-381573730c22.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"f28e2be4-6eca-4349-bdd9-381573730c22","versions":[{"name":"Potential OpenSSH Backdoor Logging Activity v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a Secure Shell (SSH) client or server process creating or writing to a known SSH backdoor log file. Adversaries may modify SSH related binaries for persistence or credential access via patching sensitive functions to enable unauthorized access or to log SSH credentials for exfiltration.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Updates to approved and trusted SSH executables can trigger this rule."],"from":"now-9m","references":["https://github.com/eset/malware-ioc/tree/master/sshdoor","https://www.welivesecurity.com/wp-content/uploads/2021/01/ESET_Kobalos.pdf"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1554","name":"Compromise Client Software Binary","reference":"https://attack.mitre.org/techniques/T1554/"}]}],"language":"eql","query":"file where event.type == \"change\" and process.executable : (\"/usr/sbin/sshd\", \"/usr/bin/ssh\") and\n (\n (file.name : (\".*\", \"~*\", \"*~\") and not file.name : (\".cache\", \".viminfo\", \".bash_history\")) or\n file.extension : (\"in\", \"out\", \"ini\", \"h\", \"gz\", \"so\", \"sock\", \"sync\", \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\") or\n file.path :\n (\n \"/private/etc/*--\",\n \"/usr/share/*\",\n \"/usr/include/*\",\n \"/usr/local/include/*\",\n \"/private/tmp/*\",\n \"/private/var/tmp/*\",\n \"/usr/tmp/*\",\n \"/usr/share/man/*\",\n \"/usr/local/share/*\",\n \"/usr/lib/*.so.*\",\n \"/private/etc/ssh/.sshd_auth\",\n \"/usr/bin/ssd\",\n \"/private/var/opt/power\",\n \"/private/etc/ssh/ssh_known_hosts\",\n \"/private/var/html/lol\",\n \"/private/var/log/utmp\",\n \"/private/var/lib\",\n \"/var/run/sshd/sshd.pid\",\n \"/var/run/nscd/ns.pid\",\n \"/var/run/udev/ud.pid\",\n \"/var/run/udevd.pid\"\n )\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential OpenSSH Backdoor Logging Activity v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a Secure Shell (SSH) client or server process creating or writing to a known SSH backdoor log file. Adversaries may modify SSH related binaries for persistence or credential access via patching sensitive functions to enable unauthorized access or to log SSH credentials for exfiltration.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Updates to approved and trusted SSH executables can trigger this rule."],"from":"now-9m","references":["https://github.com/eset/malware-ioc/tree/master/sshdoor","https://www.welivesecurity.com/wp-content/uploads/2021/01/ESET_Kobalos.pdf"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1554","name":"Compromise Client Software Binary","reference":"https://attack.mitre.org/techniques/T1554/"}]}],"language":"eql","query":"file where event.type == \"change\" and process.executable : (\"/usr/sbin/sshd\", \"/usr/bin/ssh\") and\n (\n (file.name : (\".*\", \"~*\", \"*~\") and not file.name : (\".cache\", \".viminfo\", \".bash_history\")) or\n file.extension : (\"in\", \"out\", \"ini\", \"h\", \"gz\", \"so\", \"sock\", \"sync\", \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\") or\n file.path :\n (\n \"/private/etc/*--\",\n \"/usr/share/*\",\n \"/usr/include/*\",\n \"/usr/local/include/*\",\n \"/private/tmp/*\",\n \"/private/var/tmp/*\",\n \"/usr/tmp/*\",\n \"/usr/share/man/*\",\n \"/usr/local/share/*\",\n \"/usr/lib/*.so.*\",\n \"/private/etc/ssh/.sshd_auth\",\n \"/usr/bin/ssd\",\n \"/private/var/opt/power\",\n \"/private/etc/ssh/ssh_known_hosts\",\n \"/private/var/html/lol\",\n \"/private/var/log/utmp\",\n \"/private/var/lib\",\n \"/var/run/sshd/sshd.pid\",\n \"/var/run/nscd/ns.pid\",\n \"/var/run/udev/ud.pid\",\n \"/var/run/udevd.pid\"\n )\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential OpenSSH Backdoor Logging Activity v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a Secure Shell (SSH) client or server process creating or writing to a known SSH backdoor log file. Adversaries may modify SSH related binaries for persistence or credential access via patching sensitive functions to enable unauthorized access or to log SSH credentials for exfiltration.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Updates to approved and trusted SSH executables can trigger this rule."],"from":"now-9m","references":["https://github.com/eset/malware-ioc/tree/master/sshdoor","https://www.welivesecurity.com/wp-content/uploads/2021/01/ESET_Kobalos.pdf"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1554","name":"Compromise Client Software Binary","reference":"https://attack.mitre.org/techniques/T1554/"}]}],"language":"eql","query":"file where event.type == \"change\" and process.executable : (\"/usr/sbin/sshd\", \"/usr/bin/ssh\") and\n (\n (file.name : (\".*\", \"~*\", \"*~\") and not file.name : (\".cache\", \".viminfo\", \".bash_history\")) or\n file.extension : (\"in\", \"out\", \"ini\", \"h\", \"gz\", \"so\", \"sock\", \"sync\", \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\") or\n file.path :\n (\n \"/private/etc/*--\",\n \"/usr/share/*\",\n \"/usr/include/*\",\n \"/usr/local/include/*\",\n \"/private/tmp/*\",\n \"/private/var/tmp/*\",\n \"/usr/tmp/*\",\n \"/usr/share/man/*\",\n \"/usr/local/share/*\",\n \"/usr/lib/*.so.*\",\n \"/private/etc/ssh/.sshd_auth\",\n \"/usr/bin/ssd\",\n \"/private/var/opt/power\",\n \"/private/etc/ssh/ssh_known_hosts\",\n \"/private/var/html/lol\",\n \"/private/var/log/utmp\",\n \"/private/var/lib\",\n \"/var/run/sshd/sshd.pid\",\n \"/var/run/nscd/ns.pid\",\n \"/var/run/udev/ud.pid\",\n \"/var/run/udevd.pid\"\n )\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"f28e2be4-6eca-4349-bdd9-381573730c22","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/f2c7b914-eda3-40c2-96ac-d23ef91776ca.json b/fleet-packages/detection-rules-composite/kibana/security_rule/f2c7b914-eda3-40c2-96ac-d23ef91776ca.json new file mode 100644 index 0000000000000..267b58abb1c64 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/f2c7b914-eda3-40c2-96ac-d23ef91776ca.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"f2c7b914-eda3-40c2-96ac-d23ef91776ca","versions":[{"name":"SIP Provider Modification v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to the registered Subject Interface Package (SIP) providers. SIP providers are used by the Windows cryptographic system to validate file signatures on the system. This may be an attempt to bypass signature validation checks or inject code into critical processes.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/mattifestation/PoCSubjectInterfacePackage"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1553","name":"Subvert Trust Controls","reference":"https://attack.mitre.org/techniques/T1553/","subtechnique":[{"id":"T1553.003","name":"SIP and Trust Provider Hijacking","reference":"https://attack.mitre.org/techniques/T1553/003/"}]}]}],"language":"eql","query":"registry where event.type:\"change\" and\n registry.path: (\n \"*\\\\SOFTWARE\\\\Microsoft\\\\Cryptography\\\\OID\\\\EncodingType 0\\\\CryptSIPDllPutSignedDataMsg\\\\{*}\\\\Dll\",\n \"*\\\\SOFTWARE\\\\WOW6432Node\\\\Microsoft\\\\Cryptography\\\\OID\\\\EncodingType 0\\\\CryptSIPDllPutSignedDataMsg\\\\{*}\\\\Dll\",\n \"*\\\\SOFTWARE\\\\Microsoft\\\\Cryptography\\\\Providers\\\\Trust\\\\FinalPolicy\\\\{*}\\\\$Dll\",\n \"*\\\\SOFTWARE\\\\WOW6432Node\\\\Microsoft\\\\Cryptography\\\\Providers\\\\Trust\\\\FinalPolicy\\\\{*}\\\\$Dll\"\n ) and\n registry.data.strings:\"*.dll\"\n","type":"eql","index":["logs-endpoint.events.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},{"name":"SIP Provider Modification v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to the registered Subject Interface Package (SIP) providers. SIP providers are used by the Windows cryptographic system to validate file signatures on the system. This may be an attempt to bypass signature validation checks or inject code into critical processes.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/mattifestation/PoCSubjectInterfacePackage"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1553","name":"Subvert Trust Controls","reference":"https://attack.mitre.org/techniques/T1553/","subtechnique":[{"id":"T1553.003","name":"SIP and Trust Provider Hijacking","reference":"https://attack.mitre.org/techniques/T1553/003/"}]}]}],"language":"eql","query":"registry where event.type:\"change\" and\n registry.path: (\n \"*\\\\SOFTWARE\\\\Microsoft\\\\Cryptography\\\\OID\\\\EncodingType 0\\\\CryptSIPDllPutSignedDataMsg\\\\{*}\\\\Dll\",\n \"*\\\\SOFTWARE\\\\WOW6432Node\\\\Microsoft\\\\Cryptography\\\\OID\\\\EncodingType 0\\\\CryptSIPDllPutSignedDataMsg\\\\{*}\\\\Dll\",\n \"*\\\\SOFTWARE\\\\Microsoft\\\\Cryptography\\\\Providers\\\\Trust\\\\FinalPolicy\\\\{*}\\\\$Dll\",\n \"*\\\\SOFTWARE\\\\WOW6432Node\\\\Microsoft\\\\Cryptography\\\\Providers\\\\Trust\\\\FinalPolicy\\\\{*}\\\\$Dll\"\n ) and\n registry.data.strings:\"*.dll\"\n","type":"eql","index":["logs-endpoint.events.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},{"name":"SIP Provider Modification v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to the registered Subject Interface Package (SIP) providers. SIP providers are used by the Windows cryptographic system to validate file signatures on the system. This may be an attempt to bypass signature validation checks or inject code into critical processes.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/mattifestation/PoCSubjectInterfacePackage"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1553","name":"Subvert Trust Controls","reference":"https://attack.mitre.org/techniques/T1553/","subtechnique":[{"id":"T1553.003","name":"SIP and Trust Provider Hijacking","reference":"https://attack.mitre.org/techniques/T1553/003/"}]}]}],"language":"eql","query":"registry where event.type:\"change\" and\n registry.path: (\n \"*\\\\SOFTWARE\\\\Microsoft\\\\Cryptography\\\\OID\\\\EncodingType 0\\\\CryptSIPDllPutSignedDataMsg\\\\{*}\\\\Dll\",\n \"*\\\\SOFTWARE\\\\WOW6432Node\\\\Microsoft\\\\Cryptography\\\\OID\\\\EncodingType 0\\\\CryptSIPDllPutSignedDataMsg\\\\{*}\\\\Dll\",\n \"*\\\\SOFTWARE\\\\Microsoft\\\\Cryptography\\\\Providers\\\\Trust\\\\FinalPolicy\\\\{*}\\\\$Dll\",\n \"*\\\\SOFTWARE\\\\WOW6432Node\\\\Microsoft\\\\Cryptography\\\\Providers\\\\Trust\\\\FinalPolicy\\\\{*}\\\\$Dll\"\n ) and\n registry.data.strings:\"*.dll\"\n","type":"eql","index":["logs-endpoint.events.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]}]},"id":"f2c7b914-eda3-40c2-96ac-d23ef91776ca","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/f2f46686-6f3c-4724-bd7d-24e31c70f98f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/f2f46686-6f3c-4724-bd7d-24e31c70f98f.json new file mode 100644 index 0000000000000..4fbc5f64a2d6e --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/f2f46686-6f3c-4724-bd7d-24e31c70f98f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"f2f46686-6f3c-4724-bd7d-24e31c70f98f","versions":[{"name":"LSASS Memory Dump Creation v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a Local Security Authority Subsystem Service (lsass.exe) default memory dump. This may indicate a credential access attempt via trusted system utilities such as Task Manager (taskmgr.exe) and SQL Dumper (sqldumper.exe) or known pentesting tools such as Dumpert and AndrewSpecial.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timeline_id":"4d4c0b59-ea83-483f-b8c1-8c360ee53c5c","timeline_title":"Comprehensive File Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/outflanknl/Dumpert","https://github.com/hoangprod/AndrewSpecial"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"file where file.name : (\"lsass*.dmp\", \"dumpert.dmp\", \"Andrew.dmp\", \"SQLDmpr*.mdmp\", \"Coredump.dmp\") and\n\n not (process.executable : (\"?:\\\\Program Files\\\\Microsoft SQL Server\\\\*\\\\Shared\\\\SqlDumper.exe\", \"?:\\\\Windows\\\\System32\\\\dllhost.exe\") and\n file.path : (\"?:\\\\Program Files\\\\Microsoft SQL Server\\\\*\\\\Shared\\\\ErrorDumps\\\\SQLDmpr*.mdmp\",\n \"?:\\\\*\\\\Reporting Services\\\\Logfiles\\\\SQLDmpr*.mdmp\")) and\n\n not (process.executable : \"?:\\\\WINDOWS\\\\system32\\\\WerFault.exe\" and\n file.path : \"?:\\\\Windows\\\\System32\\\\config\\\\systemprofile\\\\AppData\\\\Local\\\\CrashDumps\\\\lsass.exe.*.dmp\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"LSASS Memory Dump Creation v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a Local Security Authority Subsystem Service (lsass.exe) default memory dump. This may indicate a credential access attempt via trusted system utilities such as Task Manager (taskmgr.exe) and SQL Dumper (sqldumper.exe) or known pentesting tools such as Dumpert and AndrewSpecial.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timeline_id":"4d4c0b59-ea83-483f-b8c1-8c360ee53c5c","timeline_title":"Comprehensive File Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/outflanknl/Dumpert","https://github.com/hoangprod/AndrewSpecial"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"file where file.name : (\"lsass*.dmp\", \"dumpert.dmp\", \"Andrew.dmp\", \"SQLDmpr*.mdmp\", \"Coredump.dmp\") and\n\n not (process.executable : (\"?:\\\\Program Files\\\\Microsoft SQL Server\\\\*\\\\Shared\\\\SqlDumper.exe\", \"?:\\\\Windows\\\\System32\\\\dllhost.exe\") and\n file.path : (\"?:\\\\Program Files\\\\Microsoft SQL Server\\\\*\\\\Shared\\\\ErrorDumps\\\\SQLDmpr*.mdmp\",\n \"?:\\\\*\\\\Reporting Services\\\\Logfiles\\\\SQLDmpr*.mdmp\")) and\n\n not (process.executable : \"?:\\\\WINDOWS\\\\system32\\\\WerFault.exe\" and\n file.path : \"?:\\\\Windows\\\\System32\\\\config\\\\systemprofile\\\\AppData\\\\Local\\\\CrashDumps\\\\lsass.exe.*.dmp\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"LSASS Memory Dump Creation v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a Local Security Authority Subsystem Service (lsass.exe) default memory dump. This may indicate a credential access attempt via trusted system utilities such as Task Manager (taskmgr.exe) and SQL Dumper (sqldumper.exe) or known pentesting tools such as Dumpert and AndrewSpecial.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timeline_id":"4d4c0b59-ea83-483f-b8c1-8c360ee53c5c","timeline_title":"Comprehensive File Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/outflanknl/Dumpert","https://github.com/hoangprod/AndrewSpecial"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"file where file.name : (\"lsass*.dmp\", \"dumpert.dmp\", \"Andrew.dmp\", \"SQLDmpr*.mdmp\", \"Coredump.dmp\") and\n\n not (process.executable : (\"?:\\\\Program Files\\\\Microsoft SQL Server\\\\*\\\\Shared\\\\SqlDumper.exe\", \"?:\\\\Windows\\\\System32\\\\dllhost.exe\") and\n file.path : (\"?:\\\\Program Files\\\\Microsoft SQL Server\\\\*\\\\Shared\\\\ErrorDumps\\\\SQLDmpr*.mdmp\",\n \"?:\\\\*\\\\Reporting Services\\\\Logfiles\\\\SQLDmpr*.mdmp\")) and\n\n not (process.executable : \"?:\\\\WINDOWS\\\\system32\\\\WerFault.exe\" and\n file.path : \"?:\\\\Windows\\\\System32\\\\config\\\\systemprofile\\\\AppData\\\\Local\\\\CrashDumps\\\\lsass.exe.*.dmp\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"f2f46686-6f3c-4724-bd7d-24e31c70f98f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/f30f3443-4fbb-4c27-ab89-c3ad49d62315.json b/fleet-packages/detection-rules-composite/kibana/security_rule/f30f3443-4fbb-4c27-ab89-c3ad49d62315.json new file mode 100644 index 0000000000000..d45caf880a90c --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/f30f3443-4fbb-4c27-ab89-c3ad49d62315.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"f30f3443-4fbb-4c27-ab89-c3ad49d62315","versions":[{"name":"AWS RDS Instance Creation v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an Amazon Relational Database Service (RDS) Aurora database instance.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["A database instance may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Instances creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:CreateDBInstance and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS RDS Instance Creation v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an Amazon Relational Database Service (RDS) Aurora database instance.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["A database instance may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Instances creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:CreateDBInstance and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS RDS Instance Creation v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an Amazon Relational Database Service (RDS) Aurora database instance.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["A database instance may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Instances creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:CreateDBInstance and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"f30f3443-4fbb-4c27-ab89-c3ad49d62315","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/f3475224-b179-4f78-8877-c2bd64c26b88.json b/fleet-packages/detection-rules-composite/kibana/security_rule/f3475224-b179-4f78-8877-c2bd64c26b88.json new file mode 100644 index 0000000000000..6c51e57431065 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/f3475224-b179-4f78-8877-c2bd64c26b88.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"f3475224-b179-4f78-8877-c2bd64c26b88","versions":[{"name":"WMI Incoming Lateral Movement v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies processes executed via Windows Management Instrumentation (WMI) on a remote host. This could be indicative of adversary lateral movement, but could be noisy if administrators use WMI to remotely manage hosts.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1047","name":"Windows Management Instrumentation","reference":"https://attack.mitre.org/techniques/T1047/"}]}],"language":"eql","query":"sequence by host.id with maxspan = 2s\n\n /* Accepted Incoming RPC connection by Winmgmt service */\n\n [network where process.name : \"svchost.exe\" and network.direction : (\"incoming\", \"ingress\") and\n source.ip != \"127.0.0.1\" and source.ip != \"::1\" and source.port >= 49152 and destination.port >= 49152\n ]\n\n /* Excluding Common FPs Nessus and SCCM */\n\n [process where event.type == \"start\" and process.parent.name : \"WmiPrvSE.exe\" and\n not process.args : (\"C:\\\\windows\\\\temp\\\\nessus_*.txt\", \n \"C:\\\\windows\\\\TEMP\\\\nessus_*.TMP\", \n \"C:\\\\Windows\\\\CCM\\\\SystemTemp\\\\*\", \n \"C:\\\\Windows\\\\CCMCache\\\\*\",\n \"C:\\\\CCM\\\\Cache\\\\*\")\n ]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]},{"name":"WMI Incoming Lateral Movement v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies processes executed via Windows Management Instrumentation (WMI) on a remote host. This could be indicative of adversary lateral movement, but could be noisy if administrators use WMI to remotely manage hosts.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1047","name":"Windows Management Instrumentation","reference":"https://attack.mitre.org/techniques/T1047/"}]}],"language":"eql","query":"sequence by host.id with maxspan = 2s\n\n /* Accepted Incoming RPC connection by Winmgmt service */\n\n [network where process.name : \"svchost.exe\" and network.direction : (\"incoming\", \"ingress\") and\n source.ip != \"127.0.0.1\" and source.ip != \"::1\" and source.port >= 49152 and destination.port >= 49152\n ]\n\n /* Excluding Common FPs Nessus and SCCM */\n\n [process where event.type == \"start\" and process.parent.name : \"WmiPrvSE.exe\" and\n not process.args : (\"C:\\\\windows\\\\temp\\\\nessus_*.txt\", \n \"C:\\\\windows\\\\TEMP\\\\nessus_*.TMP\", \n \"C:\\\\Windows\\\\CCM\\\\SystemTemp\\\\*\", \n \"C:\\\\Windows\\\\CCMCache\\\\*\",\n \"C:\\\\CCM\\\\Cache\\\\*\")\n ]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]},{"name":"WMI Incoming Lateral Movement v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies processes executed via Windows Management Instrumentation (WMI) on a remote host. This could be indicative of adversary lateral movement, but could be noisy if administrators use WMI to remotely manage hosts.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1047","name":"Windows Management Instrumentation","reference":"https://attack.mitre.org/techniques/T1047/"}]}],"language":"eql","query":"sequence by host.id with maxspan = 2s\n\n /* Accepted Incoming RPC connection by Winmgmt service */\n\n [network where process.name : \"svchost.exe\" and network.direction : (\"incoming\", \"ingress\") and\n source.ip != \"127.0.0.1\" and source.ip != \"::1\" and source.port >= 49152 and destination.port >= 49152\n ]\n\n /* Excluding Common FPs Nessus and SCCM */\n\n [process where event.type == \"start\" and process.parent.name : \"WmiPrvSE.exe\" and\n not process.args : (\"C:\\\\windows\\\\temp\\\\nessus_*.txt\", \n \"C:\\\\windows\\\\TEMP\\\\nessus_*.TMP\", \n \"C:\\\\Windows\\\\CCM\\\\SystemTemp\\\\*\", \n \"C:\\\\Windows\\\\CCMCache\\\\*\",\n \"C:\\\\CCM\\\\Cache\\\\*\")\n ]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]}]},"id":"f3475224-b179-4f78-8877-c2bd64c26b88","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/f37f3054-d40b-49ac-aa9b-a786c74c58b8.json b/fleet-packages/detection-rules-composite/kibana/security_rule/f37f3054-d40b-49ac-aa9b-a786c74c58b8.json new file mode 100644 index 0000000000000..a28528393a8c8 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/f37f3054-d40b-49ac-aa9b-a786c74c58b8.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"f37f3054-d40b-49ac-aa9b-a786c74c58b8","versions":[{"name":"Sudo Heap-Based Buffer Overflow Attempt v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the attempted use of a heap-based buffer overflow vulnerability for the Sudo binary in Unix-like systems (CVE-2021-3156). Successful exploitation allows an unprivileged user to escalate to the root user.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"false_positives":["This rule could generate false positives if the process arguments leveraged by the exploit are shared by custom scripts using the Sudo or Sudoedit binaries. Only Sudo versions 1.8.2 through 1.8.31p2 and 1.9.0 through 1.9.5p1 are affected; if those versions are not present on the endpoint, this could be a false positive."],"from":"now-9m","references":["https://cve.mitre.org/cgi-bin/cvename.cgi?name=2021-3156","https://blog.qualys.com/vulnerabilities-research/2021/01/26/cve-2021-3156-heap-based-buffer-overflow-in-sudo-baron-samedit","https://www.bleepingcomputer.com/news/security/latest-macos-big-sur-also-has-sudo-root-privilege-escalation-flaw","https://www.sudo.ws/alerts/unescape_overflow.html"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"query":"event.category:process and event.type:start and\n process.name:(sudo or sudoedit) and\n process.args:(*\\\\ and (\"-i\" or \"-s\"))\n","threshold":{"field":["host.hostname"],"value":100},"type":"threshold","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Sudo Heap-Based Buffer Overflow Attempt v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the attempted use of a heap-based buffer overflow vulnerability for the Sudo binary in Unix-like systems (CVE-2021-3156). Successful exploitation allows an unprivileged user to escalate to the root user.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"false_positives":["This rule could generate false positives if the process arguments leveraged by the exploit are shared by custom scripts using the Sudo or Sudoedit binaries. Only Sudo versions 1.8.2 through 1.8.31p2 and 1.9.0 through 1.9.5p1 are affected; if those versions are not present on the endpoint, this could be a false positive."],"from":"now-9m","references":["https://cve.mitre.org/cgi-bin/cvename.cgi?name=2021-3156","https://blog.qualys.com/vulnerabilities-research/2021/01/26/cve-2021-3156-heap-based-buffer-overflow-in-sudo-baron-samedit","https://www.bleepingcomputer.com/news/security/latest-macos-big-sur-also-has-sudo-root-privilege-escalation-flaw","https://www.sudo.ws/alerts/unescape_overflow.html"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"query":"event.category:process and event.type:start and\n process.name:(sudo or sudoedit) and\n process.args:(*\\\\ and (\"-i\" or \"-s\"))\n","threshold":{"field":["host.hostname"],"value":100},"type":"threshold","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"Sudo Heap-Based Buffer Overflow Attempt v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the attempted use of a heap-based buffer overflow vulnerability for the Sudo binary in Unix-like systems (CVE-2021-3156). Successful exploitation allows an unprivileged user to escalate to the root user.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"false_positives":["This rule could generate false positives if the process arguments leveraged by the exploit are shared by custom scripts using the Sudo or Sudoedit binaries. Only Sudo versions 1.8.2 through 1.8.31p2 and 1.9.0 through 1.9.5p1 are affected; if those versions are not present on the endpoint, this could be a false positive."],"from":"now-9m","references":["https://cve.mitre.org/cgi-bin/cvename.cgi?name=2021-3156","https://blog.qualys.com/vulnerabilities-research/2021/01/26/cve-2021-3156-heap-based-buffer-overflow-in-sudo-baron-samedit","https://www.bleepingcomputer.com/news/security/latest-macos-big-sur-also-has-sudo-root-privilege-escalation-flaw","https://www.sudo.ws/alerts/unescape_overflow.html"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"query":"event.category:process and event.type:start and\n process.name:(sudo or sudoedit) and\n process.args:(*\\\\ and (\"-i\" or \"-s\"))\n","threshold":{"field":["host.hostname"],"value":100},"type":"threshold","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"f37f3054-d40b-49ac-aa9b-a786c74c58b8","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/f44fa4b6-524c-4e87-8d9e-a32599e4fb7c.json b/fleet-packages/detection-rules-composite/kibana/security_rule/f44fa4b6-524c-4e87-8d9e-a32599e4fb7c.json new file mode 100644 index 0000000000000..9b77c9632e5f0 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/f44fa4b6-524c-4e87-8d9e-a32599e4fb7c.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"f44fa4b6-524c-4e87-8d9e-a32599e4fb7c","versions":[{"name":"Persistence via Microsoft Office AddIns v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to establish persistence on an endpoint by abusing Microsoft Office add-ins.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://labs.mwrinfosecurity.com/blog/add-in-opportunities-for-office-persistence/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1137","name":"Office Application Startup","reference":"https://attack.mitre.org/techniques/T1137/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.extension : (\"wll\",\"xll\",\"ppa\",\"ppam\",\"xla\",\"xlam\") and\n file.path :\n (\n \"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Word\\\\Startup\\\\*\",\n \"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\AddIns\\\\*\",\n \"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Excel\\\\XLSTART\\\\*\"\n )\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Persistence via Microsoft Office AddIns v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to establish persistence on an endpoint by abusing Microsoft Office add-ins.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://labs.mwrinfosecurity.com/blog/add-in-opportunities-for-office-persistence/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1137","name":"Office Application Startup","reference":"https://attack.mitre.org/techniques/T1137/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.extension : (\"wll\",\"xll\",\"ppa\",\"ppam\",\"xla\",\"xlam\") and\n file.path :\n (\n \"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Word\\\\Startup\\\\*\",\n \"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\AddIns\\\\*\",\n \"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Excel\\\\XLSTART\\\\*\"\n )\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Persistence via Microsoft Office AddIns v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to establish persistence on an endpoint by abusing Microsoft Office add-ins.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://labs.mwrinfosecurity.com/blog/add-in-opportunities-for-office-persistence/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1137","name":"Office Application Startup","reference":"https://attack.mitre.org/techniques/T1137/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.extension : (\"wll\",\"xll\",\"ppa\",\"ppam\",\"xla\",\"xlam\") and\n file.path :\n (\n \"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Word\\\\Startup\\\\*\",\n \"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\AddIns\\\\*\",\n \"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Excel\\\\XLSTART\\\\*\"\n )\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"f44fa4b6-524c-4e87-8d9e-a32599e4fb7c","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/f494c678-3c33-43aa-b169-bb3d5198c41d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/f494c678-3c33-43aa-b169-bb3d5198c41d.json new file mode 100644 index 0000000000000..771b4ee30cbc0 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/f494c678-3c33-43aa-b169-bb3d5198c41d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"f494c678-3c33-43aa-b169-bb3d5198c41d","versions":[{"name":"Sensitive Privilege SeEnableDelegationPrivilege assigned to a User v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the assignment of the SeEnableDelegationPrivilege sensitive \"user right\" to a user. The SeEnableDelegationPrivilege \"user right\" enables computer and user accounts to be trusted for delegation. Attackers can abuse this right to compromise Active Directory accounts and elevate their privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Sensitive Privilege SeEnableDelegationPrivilege assigned to a User\n\nKerberos delegation is an Active Directory feature that allows user and computer accounts to impersonate other accounts,\nact on their behalf, and use their privileges. Delegation (constrained and unconstrained) can be configured\nfor user and computer objects.\n\nEnabling unconstrained delegation for a computer causes the computer to store the ticket-granting ticket\n(TGT) in memory at any time an account connects to the computer, so it can be used by the computer for impersonation\nwhen needed. Risk is heightened if an attacker compromises computers with unconstrained delegation enabled, as they\ncould extract TGTs from memory and then replay them to move laterally on the domain. If the attacker coerces a privileged\nuser to connect to the server, or if the user does so routinely, the account will be compromised and the attacker will\nbe able to pass-the-ticket to privileged assets.\n\nSeEnableDelegationPrivilege is a user right that is controlled within the Local Security Policy of a domain controller\nand is managed through Group Policy. This setting is named **Enable computer and user accounts to be trusted for\ndelegation**.\n\nIt is critical to control the assignment of this privilege. A user with this privilege and write access to a computer\ncan control delegation settings, perform the attacks described above, and harvest TGTs from any user that connects to\nthe system.\n\n#### Possible investigation steps\n\n- Investigate how the privilege was assigned to the user and who assigned it.\n- Investigate other potentially malicious activity that was performed by the user that assigned the privileges using the\n`user.id` and `winlog.activity_id` fields as a filter during the past 48 hours.\n- Investigate other alerts associated with the users/host during the past 48 hours.\n\n### False positive analysis\n\n- The SeEnableDelegationPrivilege privilege should not be assigned to users. If this rule is triggered in your\nenvironment legitimately, the security team should notify the administrators about the risks of using it.\n\n### Related rules\n\n- KRBTGT Delegation Backdoor - e052c845-48d0-4f46-8a13-7d0aba05df82\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Remove the privilege from the account.\n- Review the privileges of the administrator account that performed the action.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.harmj0y.net/activedirectory/the-most-dangerous-user-right-you-probably-have-never-heard-of/","https://github.com/SigmaHQ/sigma/blob/master/rules/windows/builtin/security/win_alert_active_directory_user_control.yml","https://twitter.com/_nwodtuhs/status/1454049485080907776","https://www.thehacker.recipes/ad/movement/kerberos/delegations","https://github.com/atc-project/atomic-threat-coverage/blob/master/Atomic_Threat_Coverage/Logging_Policies/LP_0105_windows_audit_authorization_policy_change.md"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action: \"Authorization Policy Change\" and event.code:4704 and winlog.event_data.PrivilegeList:\"SeEnableDelegationPrivilege\"\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.PrivilegeList","type":"keyword"}],"setup":"The 'Audit Authorization Policy Change' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policy Configuration >\nAudit Policies >\nPolicy Change >\nAudit Authorization Policy Change (Success,Failure)\n```"},{"name":"Sensitive Privilege SeEnableDelegationPrivilege assigned to a User v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the assignment of the SeEnableDelegationPrivilege sensitive \"user right\" to a user. The SeEnableDelegationPrivilege \"user right\" enables computer and user accounts to be trusted for delegation. Attackers can abuse this right to compromise Active Directory accounts and elevate their privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Sensitive Privilege SeEnableDelegationPrivilege assigned to a User\n\nKerberos delegation is an Active Directory feature that allows user and computer accounts to impersonate other accounts,\nact on their behalf, and use their privileges. Delegation (constrained and unconstrained) can be configured\nfor user and computer objects.\n\nEnabling unconstrained delegation for a computer causes the computer to store the ticket-granting ticket\n(TGT) in memory at any time an account connects to the computer, so it can be used by the computer for impersonation\nwhen needed. Risk is heightened if an attacker compromises computers with unconstrained delegation enabled, as they\ncould extract TGTs from memory and then replay them to move laterally on the domain. If the attacker coerces a privileged\nuser to connect to the server, or if the user does so routinely, the account will be compromised and the attacker will\nbe able to pass-the-ticket to privileged assets.\n\nSeEnableDelegationPrivilege is a user right that is controlled within the Local Security Policy of a domain controller\nand is managed through Group Policy. This setting is named **Enable computer and user accounts to be trusted for\ndelegation**.\n\nIt is critical to control the assignment of this privilege. A user with this privilege and write access to a computer\ncan control delegation settings, perform the attacks described above, and harvest TGTs from any user that connects to\nthe system.\n\n#### Possible investigation steps\n\n- Investigate how the privilege was assigned to the user and who assigned it.\n- Investigate other potentially malicious activity that was performed by the user that assigned the privileges using the\n`user.id` and `winlog.activity_id` fields as a filter during the past 48 hours.\n- Investigate other alerts associated with the users/host during the past 48 hours.\n\n### False positive analysis\n\n- The SeEnableDelegationPrivilege privilege should not be assigned to users. If this rule is triggered in your\nenvironment legitimately, the security team should notify the administrators about the risks of using it.\n\n### Related rules\n\n- KRBTGT Delegation Backdoor - e052c845-48d0-4f46-8a13-7d0aba05df82\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Remove the privilege from the account.\n- Review the privileges of the administrator account that performed the action.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.harmj0y.net/activedirectory/the-most-dangerous-user-right-you-probably-have-never-heard-of/","https://github.com/SigmaHQ/sigma/blob/master/rules/windows/builtin/security/win_alert_active_directory_user_control.yml","https://twitter.com/_nwodtuhs/status/1454049485080907776","https://www.thehacker.recipes/ad/movement/kerberos/delegations","https://github.com/atc-project/atomic-threat-coverage/blob/master/Atomic_Threat_Coverage/Logging_Policies/LP_0105_windows_audit_authorization_policy_change.md"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action: \"Authorization Policy Change\" and event.code:4704 and winlog.event_data.PrivilegeList:\"SeEnableDelegationPrivilege\"\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.PrivilegeList","type":"keyword"}],"setup":"The 'Audit Authorization Policy Change' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policy Configuration >\nAudit Policies >\nPolicy Change >\nAudit Authorization Policy Change (Success,Failure)\n```"},{"name":"Sensitive Privilege SeEnableDelegationPrivilege assigned to a User v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the assignment of the SeEnableDelegationPrivilege sensitive \"user right\" to a user. The SeEnableDelegationPrivilege \"user right\" enables computer and user accounts to be trusted for delegation. Attackers can abuse this right to compromise Active Directory accounts and elevate their privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Sensitive Privilege SeEnableDelegationPrivilege assigned to a User\n\nKerberos delegation is an Active Directory feature that allows user and computer accounts to impersonate other accounts,\nact on their behalf, and use their privileges. Delegation (constrained and unconstrained) can be configured\nfor user and computer objects.\n\nEnabling unconstrained delegation for a computer causes the computer to store the ticket-granting ticket\n(TGT) in memory at any time an account connects to the computer, so it can be used by the computer for impersonation\nwhen needed. Risk is heightened if an attacker compromises computers with unconstrained delegation enabled, as they\ncould extract TGTs from memory and then replay them to move laterally on the domain. If the attacker coerces a privileged\nuser to connect to the server, or if the user does so routinely, the account will be compromised and the attacker will\nbe able to pass-the-ticket to privileged assets.\n\nSeEnableDelegationPrivilege is a user right that is controlled within the Local Security Policy of a domain controller\nand is managed through Group Policy. This setting is named **Enable computer and user accounts to be trusted for\ndelegation**.\n\nIt is critical to control the assignment of this privilege. A user with this privilege and write access to a computer\ncan control delegation settings, perform the attacks described above, and harvest TGTs from any user that connects to\nthe system.\n\n#### Possible investigation steps\n\n- Investigate how the privilege was assigned to the user and who assigned it.\n- Investigate other potentially malicious activity that was performed by the user that assigned the privileges using the\n`user.id` and `winlog.activity_id` fields as a filter during the past 48 hours.\n- Investigate other alerts associated with the users/host during the past 48 hours.\n\n### False positive analysis\n\n- The SeEnableDelegationPrivilege privilege should not be assigned to users. If this rule is triggered in your\nenvironment legitimately, the security team should notify the administrators about the risks of using it.\n\n### Related rules\n\n- KRBTGT Delegation Backdoor - e052c845-48d0-4f46-8a13-7d0aba05df82\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Remove the privilege from the account.\n- Review the privileges of the administrator account that performed the action.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.harmj0y.net/activedirectory/the-most-dangerous-user-right-you-probably-have-never-heard-of/","https://github.com/SigmaHQ/sigma/blob/master/rules/windows/builtin/security/win_alert_active_directory_user_control.yml","https://twitter.com/_nwodtuhs/status/1454049485080907776","https://www.thehacker.recipes/ad/movement/kerberos/delegations","https://github.com/atc-project/atomic-threat-coverage/blob/master/Atomic_Threat_Coverage/Logging_Policies/LP_0105_windows_audit_authorization_policy_change.md"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action: \"Authorization Policy Change\" and event.code:4704 and winlog.event_data.PrivilegeList:\"SeEnableDelegationPrivilege\"\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.PrivilegeList","type":"keyword"}],"setup":"The 'Audit Authorization Policy Change' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policy Configuration >\nAudit Policies >\nPolicy Change >\nAudit Authorization Policy Change (Success,Failure)\n```"}]},"id":"f494c678-3c33-43aa-b169-bb3d5198c41d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/f545ff26-3c94-4fd0-bd33-3c7f95a3a0fc.json b/fleet-packages/detection-rules-composite/kibana/security_rule/f545ff26-3c94-4fd0-bd33-3c7f95a3a0fc.json new file mode 100644 index 0000000000000..087129f599db7 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/f545ff26-3c94-4fd0-bd33-3c7f95a3a0fc.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"f545ff26-3c94-4fd0-bd33-3c7f95a3a0fc","versions":[{"name":"Windows Script Executing PowerShell v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a PowerShell process launched by either cscript.exe or wscript.exe. Observing Windows scripting processes executing a PowerShell script, may be indicative of malicious activity.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Script Executing PowerShell\n\nThe Windows Script Host (WSH) is an Windows automation technology, which is ideal for non-interactive scripting needs,\nsuch as logon scripting, administrative scripting, and machine automation.\n\nAttackers commonly use WSH scripts as their initial access method, acting like droppers for second stage payloads, but\ncan also use them to download tools and utilities needed to accomplish their goals.\n\nThis rule looks for the spawn of the `powershell.exe` process with `cscript.exe` or `wscript.exe` as its parent process.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate commands executed by the spawned PowerShell process.\n- If unsigned files are found on the process tree, retrieve them and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Determine how the script file was delivered (email attachment, dropped by other processes, etc.).\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- The usage of these script engines by regular users is unlikely. In the case of authorized benign true positives\n(B-TPs), exceptions can be added.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Reimage the host operating system and restore compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"cscript.exe\", \"wscript.exe\") and process.name : \"powershell.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Windows Script Executing PowerShell v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a PowerShell process launched by either cscript.exe or wscript.exe. Observing Windows scripting processes executing a PowerShell script, may be indicative of malicious activity.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Script Executing PowerShell\n\nThe Windows Script Host (WSH) is an Windows automation technology, which is ideal for non-interactive scripting needs,\nsuch as logon scripting, administrative scripting, and machine automation.\n\nAttackers commonly use WSH scripts as their initial access method, acting like droppers for second stage payloads, but\ncan also use them to download tools and utilities needed to accomplish their goals.\n\nThis rule looks for the spawn of the `powershell.exe` process with `cscript.exe` or `wscript.exe` as its parent process.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate commands executed by the spawned PowerShell process.\n- If unsigned files are found on the process tree, retrieve them and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Determine how the script file was delivered (email attachment, dropped by other processes, etc.).\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- The usage of these script engines by regular users is unlikely. In the case of authorized benign true positives\n(B-TPs), exceptions can be added.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Reimage the host operating system and restore compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"cscript.exe\", \"wscript.exe\") and process.name : \"powershell.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Windows Script Executing PowerShell v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a PowerShell process launched by either cscript.exe or wscript.exe. Observing Windows scripting processes executing a PowerShell script, may be indicative of malicious activity.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Script Executing PowerShell\n\nThe Windows Script Host (WSH) is an Windows automation technology, which is ideal for non-interactive scripting needs,\nsuch as logon scripting, administrative scripting, and machine automation.\n\nAttackers commonly use WSH scripts as their initial access method, acting like droppers for second stage payloads, but\ncan also use them to download tools and utilities needed to accomplish their goals.\n\nThis rule looks for the spawn of the `powershell.exe` process with `cscript.exe` or `wscript.exe` as its parent process.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate commands executed by the spawned PowerShell process.\n- If unsigned files are found on the process tree, retrieve them and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Determine how the script file was delivered (email attachment, dropped by other processes, etc.).\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- The usage of these script engines by regular users is unlikely. In the case of authorized benign true positives\n(B-TPs), exceptions can be added.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Reimage the host operating system and restore compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"cscript.exe\", \"wscript.exe\") and process.name : \"powershell.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"f545ff26-3c94-4fd0-bd33-3c7f95a3a0fc","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/f5fb4598-4f10-11ed-bdc3-0242ac120002.json b/fleet-packages/detection-rules-composite/kibana/security_rule/f5fb4598-4f10-11ed-bdc3-0242ac120002.json new file mode 100644 index 0000000000000..7237905118d0d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/f5fb4598-4f10-11ed-bdc3-0242ac120002.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"f5fb4598-4f10-11ed-bdc3-0242ac120002","versions":[{"name":"Masquerading Space After Filename v1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rules identifies a process created from an executable with a space appended to the end of the filename. This may indicate an attempt to masquerade a malicious file as benign to gain user execution. When a space is added to the end of certain files, the OS will execute the file according to it's true filetype instead of it's extension. Adversaries can hide a program's true filetype by changing the extension of the file. They can then add a space to the end of the name so that the OS automatically executes the file when it's double-clicked.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.picussecurity.com/resource/blog/picus-10-critical-mitre-attck-techniques-t1036-masquerading"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.006","name":"Space after Filename","reference":"https://attack.mitre.org/techniques/T1036/006/"}]}]}],"language":"eql","query":"process where host.os.type:(\"linux\",\"macos\") and\n event.type == \"start\" and \n (process.executable regex~ \"\"\"/[a-z0-9\\s_\\-\\\\./]+\\s\"\"\") and not\n process.name in (\"ls\", \"find\", \"grep\", \"xkbcomp\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.os.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Masquerading Space After Filename v1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rules identifies a process created from an executable with a space appended to the end of the filename. This may indicate an attempt to masquerade a malicious file as benign to gain user execution. When a space is added to the end of certain files, the OS will execute the file according to it's true filetype instead of it's extension. Adversaries can hide a program's true filetype by changing the extension of the file. They can then add a space to the end of the name so that the OS automatically executes the file when it's double-clicked.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.picussecurity.com/resource/blog/picus-10-critical-mitre-attck-techniques-t1036-masquerading"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.006","name":"Space after Filename","reference":"https://attack.mitre.org/techniques/T1036/006/"}]}]}],"language":"eql","query":"process where host.os.type:(\"linux\",\"macos\") and\n event.type == \"start\" and \n (process.executable regex~ \"\"\"/[a-z0-9\\s_\\-\\\\./]+\\s\"\"\") and not\n process.name in (\"ls\", \"find\", \"grep\", \"xkbcomp\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.os.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Masquerading Space After Filename v1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rules identifies a process created from an executable with a space appended to the end of the filename. This may indicate an attempt to masquerade a malicious file as benign to gain user execution. When a space is added to the end of certain files, the OS will execute the file according to it's true filetype instead of it's extension. Adversaries can hide a program's true filetype by changing the extension of the file. They can then add a space to the end of the name so that the OS automatically executes the file when it's double-clicked.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.picussecurity.com/resource/blog/picus-10-critical-mitre-attck-techniques-t1036-masquerading"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.006","name":"Space after Filename","reference":"https://attack.mitre.org/techniques/T1036/006/"}]}]}],"language":"eql","query":"process where host.os.type:(\"linux\",\"macos\") and\n event.type == \"start\" and \n (process.executable regex~ \"\"\"/[a-z0-9\\s_\\-\\\\./]+\\s\"\"\") and not\n process.name in (\"ls\", \"find\", \"grep\", \"xkbcomp\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.os.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"f5fb4598-4f10-11ed-bdc3-0242ac120002","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/f63c8e3c-d396-404f-b2ea-0379d3942d73.json b/fleet-packages/detection-rules-composite/kibana/security_rule/f63c8e3c-d396-404f-b2ea-0379d3942d73.json new file mode 100644 index 0000000000000..e6f8a7f203cd5 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/f63c8e3c-d396-404f-b2ea-0379d3942d73.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"f63c8e3c-d396-404f-b2ea-0379d3942d73","versions":[{"name":"Windows Firewall Disabled via PowerShell v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when the Windows Firewall is disabled using PowerShell cmdlets, which can help attackers evade network constraints, like internet and network lateral communication restrictions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Firewall Disabled via PowerShell\n\nWindows Defender Firewall is a native component that provides host-based, two-way network traffic filtering for a\ndevice and blocks unauthorized network traffic flowing into or out of the local device.\n\nAttackers can disable the Windows firewall or its rules to enable lateral movement and command and control activity.\n\nThis rule identifies patterns related to disabling the Windows firewall or its rules using the `Set-NetFirewallProfile`\nPowerShell cmdlet.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Check whether the user is an administrator and is legitimately performing\ntroubleshooting.\n- In case of an allowed benign true positive (B-TP), assess adding rules to allow needed traffic and re-enable the firewall.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Re-enable the firewall with its desired configurations.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Windows Firewall can be disabled by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Windows Profile being disabled by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/powershell/module/netsecurity/set-netfirewallprofile?view=windowsserver2019-ps","https://www.tutorialspoint.com/how-to-get-windows-firewall-profile-settings-using-powershell","http://powershellhelp.space/commands/set-netfirewallrule-psv5.php","http://woshub.com/manage-windows-firewall-powershell/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.004","name":"Disable or Modify System Firewall","reference":"https://attack.mitre.org/techniques/T1562/004/"}]}]}],"language":"eql","query":"process where event.action == \"start\" and\n (process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") or process.pe.original_file_name == \"PowerShell.EXE\") and\n process.args : \"*Set-NetFirewallProfile*\" and\n (process.args : \"*-Enabled*\" and process.args : \"*False*\") and\n (process.args : \"*-All*\" or process.args : (\"*Public*\", \"*Domain*\", \"*Private*\"))\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Windows Firewall Disabled via PowerShell v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when the Windows Firewall is disabled using PowerShell cmdlets, which can help attackers evade network constraints, like internet and network lateral communication restrictions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Firewall Disabled via PowerShell\n\nWindows Defender Firewall is a native component that provides host-based, two-way network traffic filtering for a\ndevice and blocks unauthorized network traffic flowing into or out of the local device.\n\nAttackers can disable the Windows firewall or its rules to enable lateral movement and command and control activity.\n\nThis rule identifies patterns related to disabling the Windows firewall or its rules using the `Set-NetFirewallProfile`\nPowerShell cmdlet.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Check whether the user is an administrator and is legitimately performing\ntroubleshooting.\n- In case of an allowed benign true positive (B-TP), assess adding rules to allow needed traffic and re-enable the firewall.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Re-enable the firewall with its desired configurations.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Windows Firewall can be disabled by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Windows Profile being disabled by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/powershell/module/netsecurity/set-netfirewallprofile?view=windowsserver2019-ps","https://www.tutorialspoint.com/how-to-get-windows-firewall-profile-settings-using-powershell","http://powershellhelp.space/commands/set-netfirewallrule-psv5.php","http://woshub.com/manage-windows-firewall-powershell/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.004","name":"Disable or Modify System Firewall","reference":"https://attack.mitre.org/techniques/T1562/004/"}]}]}],"language":"eql","query":"process where event.action == \"start\" and\n (process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") or process.pe.original_file_name == \"PowerShell.EXE\") and\n process.args : \"*Set-NetFirewallProfile*\" and\n (process.args : \"*-Enabled*\" and process.args : \"*False*\") and\n (process.args : \"*-All*\" or process.args : (\"*Public*\", \"*Domain*\", \"*Private*\"))\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Windows Firewall Disabled via PowerShell v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when the Windows Firewall is disabled using PowerShell cmdlets, which can help attackers evade network constraints, like internet and network lateral communication restrictions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Firewall Disabled via PowerShell\n\nWindows Defender Firewall is a native component that provides host-based, two-way network traffic filtering for a\ndevice and blocks unauthorized network traffic flowing into or out of the local device.\n\nAttackers can disable the Windows firewall or its rules to enable lateral movement and command and control activity.\n\nThis rule identifies patterns related to disabling the Windows firewall or its rules using the `Set-NetFirewallProfile`\nPowerShell cmdlet.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Check whether the user is an administrator and is legitimately performing\ntroubleshooting.\n- In case of an allowed benign true positive (B-TP), assess adding rules to allow needed traffic and re-enable the firewall.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Re-enable the firewall with its desired configurations.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Windows Firewall can be disabled by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Windows Profile being disabled by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/powershell/module/netsecurity/set-netfirewallprofile?view=windowsserver2019-ps","https://www.tutorialspoint.com/how-to-get-windows-firewall-profile-settings-using-powershell","http://powershellhelp.space/commands/set-netfirewallrule-psv5.php","http://woshub.com/manage-windows-firewall-powershell/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.004","name":"Disable or Modify System Firewall","reference":"https://attack.mitre.org/techniques/T1562/004/"}]}]}],"language":"eql","query":"process where event.action == \"start\" and\n (process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") or process.pe.original_file_name == \"PowerShell.EXE\") and\n process.args : \"*Set-NetFirewallProfile*\" and\n (process.args : \"*-Enabled*\" and process.args : \"*False*\") and\n (process.args : \"*-All*\" or process.args : (\"*Public*\", \"*Domain*\", \"*Private*\"))\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"f63c8e3c-d396-404f-b2ea-0379d3942d73","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/f675872f-6d85-40a3-b502-c0d2ef101e92.json b/fleet-packages/detection-rules-composite/kibana/security_rule/f675872f-6d85-40a3-b502-c0d2ef101e92.json new file mode 100644 index 0000000000000..787591800090d --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/f675872f-6d85-40a3-b502-c0d2ef101e92.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"f675872f-6d85-40a3-b502-c0d2ef101e92","versions":[{"name":"Delete Volume USN Journal with Fsutil v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the fsutil.exe to delete the volume USNJRNL. This technique is used by attackers to eliminate evidence of files created during post-exploitation activities.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.004","name":"File Deletion","reference":"https://attack.mitre.org/techniques/T1070/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"fsutil.exe\" or process.pe.original_file_name == \"fsutil.exe\") and\n process.args : \"deletejournal\" and process.args : \"usn\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Delete Volume USN Journal with Fsutil v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the fsutil.exe to delete the volume USNJRNL. This technique is used by attackers to eliminate evidence of files created during post-exploitation activities.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.004","name":"File Deletion","reference":"https://attack.mitre.org/techniques/T1070/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"fsutil.exe\" or process.pe.original_file_name == \"fsutil.exe\") and\n process.args : \"deletejournal\" and process.args : \"usn\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Delete Volume USN Journal with Fsutil v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the fsutil.exe to delete the volume USNJRNL. This technique is used by attackers to eliminate evidence of files created during post-exploitation activities.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.004","name":"File Deletion","reference":"https://attack.mitre.org/techniques/T1070/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"fsutil.exe\" or process.pe.original_file_name == \"fsutil.exe\") and\n process.args : \"deletejournal\" and process.args : \"usn\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"f675872f-6d85-40a3-b502-c0d2ef101e92","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/f683dcdf-a018-4801-b066-193d4ae6c8e5.json b/fleet-packages/detection-rules-composite/kibana/security_rule/f683dcdf-a018-4801-b066-193d4ae6c8e5.json new file mode 100644 index 0000000000000..8b13df29fc226 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/f683dcdf-a018-4801-b066-193d4ae6c8e5.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"f683dcdf-a018-4801-b066-193d4ae6c8e5","versions":[{"name":"SoftwareUpdate Preferences Modification v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies changes to the SoftwareUpdate preferences using the built-in defaults command. Adversaries may abuse this in an attempt to disable security updates.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Authorized SoftwareUpdate Settings Changes"],"from":"now-9m","references":["https://blog.checkpoint.com/2017/07/13/osxdok-refuses-go-away-money/"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:defaults and\n process.args:(write and \"-bool\" and (com.apple.SoftwareUpdate or /Library/Preferences/com.apple.SoftwareUpdate.plist) and not (TRUE or true))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"SoftwareUpdate Preferences Modification v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies changes to the SoftwareUpdate preferences using the built-in defaults command. Adversaries may abuse this in an attempt to disable security updates.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Authorized SoftwareUpdate Settings Changes"],"from":"now-9m","references":["https://blog.checkpoint.com/2017/07/13/osxdok-refuses-go-away-money/"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:defaults and\n process.args:(write and \"-bool\" and (com.apple.SoftwareUpdate or /Library/Preferences/com.apple.SoftwareUpdate.plist) and not (TRUE or true))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},{"name":"SoftwareUpdate Preferences Modification v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies changes to the SoftwareUpdate preferences using the built-in defaults command. Adversaries may abuse this in an attempt to disable security updates.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Authorized SoftwareUpdate Settings Changes"],"from":"now-9m","references":["https://blog.checkpoint.com/2017/07/13/osxdok-refuses-go-away-money/"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:defaults and\n process.args:(write and \"-bool\" and (com.apple.SoftwareUpdate or /Library/Preferences/com.apple.SoftwareUpdate.plist) and not (TRUE or true))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]}]},"id":"f683dcdf-a018-4801-b066-193d4ae6c8e5","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/f766ffaf-9568-4909-b734-75d19b35cbf4.json b/fleet-packages/detection-rules-composite/kibana/security_rule/f766ffaf-9568-4909-b734-75d19b35cbf4.json new file mode 100644 index 0000000000000..8f2a159e0bf94 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/f766ffaf-9568-4909-b734-75d19b35cbf4.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"f766ffaf-9568-4909-b734-75d19b35cbf4","versions":[{"name":"Azure Service Principal Credentials Added v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when new Service Principal credentials have been added in Azure. In most organizations, credentials will be added to service principals infrequently. Hijacking an application (by adding a rogue secret or certificate) with granted permissions will allow the attacker to access data that is normally protected by MFA requirements.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Service principal credential additions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Credential additions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","interval":"10m","references":["https://www.fireeye.com/content/dam/collateral/en/wp-m-unc2452.pdf"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1496","name":"Resource Hijacking","reference":"https://attack.mitre.org/techniques/T1496/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Add service principal credentials\" and event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Service Principal Credentials Added v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when new Service Principal credentials have been added in Azure. In most organizations, credentials will be added to service principals infrequently. Hijacking an application (by adding a rogue secret or certificate) with granted permissions will allow the attacker to access data that is normally protected by MFA requirements.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Service principal credential additions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Credential additions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","interval":"10m","references":["https://www.fireeye.com/content/dam/collateral/en/wp-m-unc2452.pdf"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1496","name":"Resource Hijacking","reference":"https://attack.mitre.org/techniques/T1496/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Add service principal credentials\" and event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Azure Service Principal Credentials Added v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when new Service Principal credentials have been added in Azure. In most organizations, credentials will be added to service principals infrequently. Hijacking an application (by adding a rogue secret or certificate) with granted permissions will allow the attacker to access data that is normally protected by MFA requirements.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Service principal credential additions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Credential additions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","interval":"10m","references":["https://www.fireeye.com/content/dam/collateral/en/wp-m-unc2452.pdf"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1496","name":"Resource Hijacking","reference":"https://attack.mitre.org/techniques/T1496/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Add service principal credentials\" and event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"f766ffaf-9568-4909-b734-75d19b35cbf4","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/f772ec8a-e182-483c-91d2-72058f76a44c.json b/fleet-packages/detection-rules-composite/kibana/security_rule/f772ec8a-e182-483c-91d2-72058f76a44c.json new file mode 100644 index 0000000000000..3ac33154b13f0 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/f772ec8a-e182-483c-91d2-72058f76a44c.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"f772ec8a-e182-483c-91d2-72058f76a44c","versions":[{"name":"AWS CloudWatch Alarm Deletion v103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an AWS CloudWatch alarm. An adversary may delete alarms in an attempt to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudWatch Alarm Deletion\n\nAmazon CloudWatch is a monitoring and observability service that collects monitoring and operational data in the form of\nlogs, metrics, and events for resources and applications. This data can be used to detect anomalous behavior in your environments, set alarms, visualize\nlogs and metrics side by side, take automated actions, troubleshoot issues, and discover insights to keep your\napplications running smoothly.\n\nCloudWatch Alarms is a feature that allows you to watch CloudWatch metrics and to receive notifications when the metrics\nfall outside of the levels (high or low thresholds) that you configure.\n\nThis rule looks for the deletion of a alarm using the API `DeleteAlarms` action. Attackers can do this to cover their\ntracks and evade security defenses.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if there is a justification for this behavior.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Alarm deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudwatch/delete-alarms.html","https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DeleteAlarms.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:monitoring.amazonaws.com and event.action:DeleteAlarms and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS CloudWatch Alarm Deletion v103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an AWS CloudWatch alarm. An adversary may delete alarms in an attempt to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudWatch Alarm Deletion\n\nAmazon CloudWatch is a monitoring and observability service that collects monitoring and operational data in the form of\nlogs, metrics, and events for resources and applications. This data can be used to detect anomalous behavior in your environments, set alarms, visualize\nlogs and metrics side by side, take automated actions, troubleshoot issues, and discover insights to keep your\napplications running smoothly.\n\nCloudWatch Alarms is a feature that allows you to watch CloudWatch metrics and to receive notifications when the metrics\nfall outside of the levels (high or low thresholds) that you configure.\n\nThis rule looks for the deletion of a alarm using the API `DeleteAlarms` action. Attackers can do this to cover their\ntracks and evade security defenses.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if there is a justification for this behavior.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Alarm deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudwatch/delete-alarms.html","https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DeleteAlarms.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:monitoring.amazonaws.com and event.action:DeleteAlarms and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS CloudWatch Alarm Deletion v103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an AWS CloudWatch alarm. An adversary may delete alarms in an attempt to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudWatch Alarm Deletion\n\nAmazon CloudWatch is a monitoring and observability service that collects monitoring and operational data in the form of\nlogs, metrics, and events for resources and applications. This data can be used to detect anomalous behavior in your environments, set alarms, visualize\nlogs and metrics side by side, take automated actions, troubleshoot issues, and discover insights to keep your\napplications running smoothly.\n\nCloudWatch Alarms is a feature that allows you to watch CloudWatch metrics and to receive notifications when the metrics\nfall outside of the levels (high or low thresholds) that you configure.\n\nThis rule looks for the deletion of a alarm using the API `DeleteAlarms` action. Attackers can do this to cover their\ntracks and evade security defenses.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if there is a justification for this behavior.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Alarm deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudwatch/delete-alarms.html","https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DeleteAlarms.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:monitoring.amazonaws.com and event.action:DeleteAlarms and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"f772ec8a-e182-483c-91d2-72058f76a44c","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/f7c4dc5a-a58d-491d-9f14-9b66507121c0.json b/fleet-packages/detection-rules-composite/kibana/security_rule/f7c4dc5a-a58d-491d-9f14-9b66507121c0.json new file mode 100644 index 0000000000000..e3d440d240c8e --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/f7c4dc5a-a58d-491d-9f14-9b66507121c0.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"f7c4dc5a-a58d-491d-9f14-9b66507121c0","versions":[{"name":"Persistent Scripts in the Startup Directory v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies script engines creating files in the Startup folder, or the creation of script files in the Startup folder. Adversaries may abuse this technique to maintain persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Persistent Scripts in the Startup Directory\n\nThe Windows Startup folder is a special folder in Windows. Programs added to this folder are executed during account\nlogon, without user interaction, providing an excellent way for attackers to maintain persistence.\n\nThis rule looks for shortcuts created by wscript.exe or cscript.exe, or js/vbs scripts created by any process.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- Suspicious Startup Shell Folder Modification - c8b150f0-0164-475b-a75e-74b47800a9ff\n- Startup Folder Persistence via Unsigned Process - 2fba96c0-ade5-4bce-b92f-a5df2509da3f\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and user.domain != \"NT AUTHORITY\" and\n\n /* detect shortcuts created by wscript.exe or cscript.exe */\n (file.path : \"C:\\\\*\\\\Programs\\\\Startup\\\\*.lnk\" and\n process.name : (\"wscript.exe\", \"cscript.exe\")) or\n\n /* detect vbs or js files created by any process */\n file.path : (\"C:\\\\*\\\\Programs\\\\Startup\\\\*.vbs\",\n \"C:\\\\*\\\\Programs\\\\Startup\\\\*.vbe\",\n \"C:\\\\*\\\\Programs\\\\Startup\\\\*.wsh\",\n \"C:\\\\*\\\\Programs\\\\Startup\\\\*.wsf\",\n \"C:\\\\*\\\\Programs\\\\Startup\\\\*.js\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Persistent Scripts in the Startup Directory v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies script engines creating files in the Startup folder, or the creation of script files in the Startup folder. Adversaries may abuse this technique to maintain persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Persistent Scripts in the Startup Directory\n\nThe Windows Startup folder is a special folder in Windows. Programs added to this folder are executed during account\nlogon, without user interaction, providing an excellent way for attackers to maintain persistence.\n\nThis rule looks for shortcuts created by wscript.exe or cscript.exe, or js/vbs scripts created by any process.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- Suspicious Startup Shell Folder Modification - c8b150f0-0164-475b-a75e-74b47800a9ff\n- Startup Folder Persistence via Unsigned Process - 2fba96c0-ade5-4bce-b92f-a5df2509da3f\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and user.domain != \"NT AUTHORITY\" and\n\n /* detect shortcuts created by wscript.exe or cscript.exe */\n (file.path : \"C:\\\\*\\\\Programs\\\\Startup\\\\*.lnk\" and\n process.name : (\"wscript.exe\", \"cscript.exe\")) or\n\n /* detect vbs or js files created by any process */\n file.path : (\"C:\\\\*\\\\Programs\\\\Startup\\\\*.vbs\",\n \"C:\\\\*\\\\Programs\\\\Startup\\\\*.vbe\",\n \"C:\\\\*\\\\Programs\\\\Startup\\\\*.wsh\",\n \"C:\\\\*\\\\Programs\\\\Startup\\\\*.wsf\",\n \"C:\\\\*\\\\Programs\\\\Startup\\\\*.js\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Persistent Scripts in the Startup Directory v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies script engines creating files in the Startup folder, or the creation of script files in the Startup folder. Adversaries may abuse this technique to maintain persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Persistent Scripts in the Startup Directory\n\nThe Windows Startup folder is a special folder in Windows. Programs added to this folder are executed during account\nlogon, without user interaction, providing an excellent way for attackers to maintain persistence.\n\nThis rule looks for shortcuts created by wscript.exe or cscript.exe, or js/vbs scripts created by any process.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- Suspicious Startup Shell Folder Modification - c8b150f0-0164-475b-a75e-74b47800a9ff\n- Startup Folder Persistence via Unsigned Process - 2fba96c0-ade5-4bce-b92f-a5df2509da3f\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and user.domain != \"NT AUTHORITY\" and\n\n /* detect shortcuts created by wscript.exe or cscript.exe */\n (file.path : \"C:\\\\*\\\\Programs\\\\Startup\\\\*.lnk\" and\n process.name : (\"wscript.exe\", \"cscript.exe\")) or\n\n /* detect vbs or js files created by any process */\n file.path : (\"C:\\\\*\\\\Programs\\\\Startup\\\\*.vbs\",\n \"C:\\\\*\\\\Programs\\\\Startup\\\\*.vbe\",\n \"C:\\\\*\\\\Programs\\\\Startup\\\\*.wsh\",\n \"C:\\\\*\\\\Programs\\\\Startup\\\\*.wsf\",\n \"C:\\\\*\\\\Programs\\\\Startup\\\\*.js\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"f7c4dc5a-a58d-491d-9f14-9b66507121c0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/f81ee52c-297e-46d9-9205-07e66931df26.json b/fleet-packages/detection-rules-composite/kibana/security_rule/f81ee52c-297e-46d9-9205-07e66931df26.json new file mode 100644 index 0000000000000..d2b56f7348912 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/f81ee52c-297e-46d9-9205-07e66931df26.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"f81ee52c-297e-46d9-9205-07e66931df26","versions":[{"name":"Microsoft Exchange Worker Spawning Suspicious Processes v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious processes being spawned by the Microsoft Exchange Server worker process (w3wp). This activity may indicate exploitation activity or access to an existing web shell backdoor.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2021/03/02/hafnium-targeting-exchange-servers","https://www.volexity.com/blog/2021/03/02/active-exploitation-of-microsoft-exchange-zero-day-vulnerabilities","https://discuss.elastic.co/t/detection-and-response-for-hafnium-activity/266289"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"w3wp.exe\" and process.parent.args : \"MSExchange*AppPool\" and\n (process.name : (\"cmd.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") or\n process.pe.original_file_name in (\"cmd.exe\", \"powershell.exe\", \"pwsh.dll\", \"powershell_ise.exe\"))\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Microsoft Exchange Worker Spawning Suspicious Processes v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious processes being spawned by the Microsoft Exchange Server worker process (w3wp). This activity may indicate exploitation activity or access to an existing web shell backdoor.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2021/03/02/hafnium-targeting-exchange-servers","https://www.volexity.com/blog/2021/03/02/active-exploitation-of-microsoft-exchange-zero-day-vulnerabilities","https://discuss.elastic.co/t/detection-and-response-for-hafnium-activity/266289"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"w3wp.exe\" and process.parent.args : \"MSExchange*AppPool\" and\n (process.name : (\"cmd.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") or\n process.pe.original_file_name in (\"cmd.exe\", \"powershell.exe\", \"pwsh.dll\", \"powershell_ise.exe\"))\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Microsoft Exchange Worker Spawning Suspicious Processes v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious processes being spawned by the Microsoft Exchange Server worker process (w3wp). This activity may indicate exploitation activity or access to an existing web shell backdoor.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2021/03/02/hafnium-targeting-exchange-servers","https://www.volexity.com/blog/2021/03/02/active-exploitation-of-microsoft-exchange-zero-day-vulnerabilities","https://discuss.elastic.co/t/detection-and-response-for-hafnium-activity/266289"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"w3wp.exe\" and process.parent.args : \"MSExchange*AppPool\" and\n (process.name : (\"cmd.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") or\n process.pe.original_file_name in (\"cmd.exe\", \"powershell.exe\", \"pwsh.dll\", \"powershell_ise.exe\"))\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"f81ee52c-297e-46d9-9205-07e66931df26","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/f85ce03f-d8a8-4c83-acdc-5c8cd0592be7.json b/fleet-packages/detection-rules-composite/kibana/security_rule/f85ce03f-d8a8-4c83-acdc-5c8cd0592be7.json new file mode 100644 index 0000000000000..0f044a61cdbfb --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/f85ce03f-d8a8-4c83-acdc-5c8cd0592be7.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"f85ce03f-d8a8-4c83-acdc-5c8cd0592be7","versions":[{"name":"Suspicious Child Process of Adobe Acrobat Reader Update Service v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to exploit privilege escalation vulnerabilities related to the Adobe Acrobat Reader PrivilegedHelperTool responsible for installing updates. For more information, refer to CVE-2020-9615, CVE-2020-9614 and CVE-2020-9613 and verify that the impacted system is patched.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted system or Adobe Acrobat Related processes."],"from":"now-9m","references":["https://rekken.github.io/2020/05/14/Security-Flaws-in-Adobe-Acrobat-Reader-Allow-Malicious-Program-to-Gain-Root-on-macOS-Silently/"],"tags":["Elastic","Host","macOS","Threat Detection","Privilege Escalation","CVE-2020-9615","CVE-2020-9614","CVE-2020-9613"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.parent.name:com.adobe.ARMDC.SMJobBlessHelper and\n user.name:root and\n not process.executable: (/Library/PrivilegedHelperTools/com.adobe.ARMDC.SMJobBlessHelper or\n /usr/bin/codesign or\n /private/var/folders/zz/*/T/download/ARMDCHammer or\n /usr/sbin/pkgutil or\n /usr/bin/shasum or\n /usr/bin/perl* or\n /usr/sbin/spctl or\n /usr/sbin/installer or\n /usr/bin/csrutil)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},{"name":"Suspicious Child Process of Adobe Acrobat Reader Update Service v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to exploit privilege escalation vulnerabilities related to the Adobe Acrobat Reader PrivilegedHelperTool responsible for installing updates. For more information, refer to CVE-2020-9615, CVE-2020-9614 and CVE-2020-9613 and verify that the impacted system is patched.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted system or Adobe Acrobat Related processes."],"from":"now-9m","references":["https://rekken.github.io/2020/05/14/Security-Flaws-in-Adobe-Acrobat-Reader-Allow-Malicious-Program-to-Gain-Root-on-macOS-Silently/"],"tags":["Elastic","Host","macOS","Threat Detection","Privilege Escalation","CVE-2020-9615","CVE-2020-9614","CVE-2020-9613"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.parent.name:com.adobe.ARMDC.SMJobBlessHelper and\n user.name:root and\n not process.executable: (/Library/PrivilegedHelperTools/com.adobe.ARMDC.SMJobBlessHelper or\n /usr/bin/codesign or\n /private/var/folders/zz/*/T/download/ARMDCHammer or\n /usr/sbin/pkgutil or\n /usr/bin/shasum or\n /usr/bin/perl* or\n /usr/sbin/spctl or\n /usr/sbin/installer or\n /usr/bin/csrutil)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},{"name":"Suspicious Child Process of Adobe Acrobat Reader Update Service v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to exploit privilege escalation vulnerabilities related to the Adobe Acrobat Reader PrivilegedHelperTool responsible for installing updates. For more information, refer to CVE-2020-9615, CVE-2020-9614 and CVE-2020-9613 and verify that the impacted system is patched.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted system or Adobe Acrobat Related processes."],"from":"now-9m","references":["https://rekken.github.io/2020/05/14/Security-Flaws-in-Adobe-Acrobat-Reader-Allow-Malicious-Program-to-Gain-Root-on-macOS-Silently/"],"tags":["Elastic","Host","macOS","Threat Detection","Privilege Escalation","CVE-2020-9615","CVE-2020-9614","CVE-2020-9613"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.parent.name:com.adobe.ARMDC.SMJobBlessHelper and\n user.name:root and\n not process.executable: (/Library/PrivilegedHelperTools/com.adobe.ARMDC.SMJobBlessHelper or\n /usr/bin/codesign or\n /private/var/folders/zz/*/T/download/ARMDCHammer or\n /usr/sbin/pkgutil or\n /usr/bin/shasum or\n /usr/bin/perl* or\n /usr/sbin/spctl or\n /usr/sbin/installer or\n /usr/bin/csrutil)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]}]},"id":"f85ce03f-d8a8-4c83-acdc-5c8cd0592be7","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/f874315d-5188-4b4a-8521-d1c73093a7e4.json b/fleet-packages/detection-rules-composite/kibana/security_rule/f874315d-5188-4b4a-8521-d1c73093a7e4.json new file mode 100644 index 0000000000000..deee2d27ebf59 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/f874315d-5188-4b4a-8521-d1c73093a7e4.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"f874315d-5188-4b4a-8521-d1c73093a7e4","versions":[{"name":"Modification of AmsiEnable Registry Key v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications of the AmsiEnable registry key to 0, which disables the Antimalware Scan Interface (AMSI). An adversary can modify this key to disable AMSI protections.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Modification of AmsiEnable Registry Key\n\nThe Windows Antimalware Scan Interface (AMSI) is a versatile interface standard that allows your applications and\nservices to integrate with any antimalware product that's present on a machine. AMSI provides integration with multiple\nWindows components, ranging from User Account Control (UAC) to VBA Macros.\n\nSince AMSI is widely used across security products for increased visibility, attackers can disable it to evade\ndetections that rely on it.\n\nThis rule monitors the modifications to the Software\\Microsoft\\Windows Script\\Settings\\AmsiEnable registry key.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate the execution of scripts and macros after the registry modification.\n- Retrieve scripts or Microsoft Office files and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Use process name, command line, and file hash to search for occurrences on other hosts.\n\n### False positive analysis\n\n- This modification should not happen legitimately. Any potential benign true positive (B-TP) should be mapped and\nmonitored by the security team, as these modifications expose the host to malware infections.\n\n### Related rules\n\n- Microsoft Windows Defender Tampering - fe794edd-487f-4a90-b285-3ee54f2af2d3\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Delete or set the key to its default value.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://hackinparis.com/data/slides/2019/talks/HIP2019-Dominic_Chell-Cracking_The_Perimeter_With_Sharpshooter.pdf","https://docs.microsoft.com/en-us/windows/win32/amsi/antimalware-scan-interface-portal"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n registry.path : (\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows Script\\\\Settings\\\\AmsiEnable\",\n \"HKU\\\\*\\\\Software\\\\Microsoft\\\\Windows Script\\\\Settings\\\\AmsiEnable\",\n \"\\\\REGISTRY\\\\USER\\\\*\\\\Software\\\\Microsoft\\\\Windows Script\\\\Settings\\\\AmsiEnable\"\n ) and\n registry.data.strings: (\"0\", \"0x00000000\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Modification of AmsiEnable Registry Key v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications of the AmsiEnable registry key to 0, which disables the Antimalware Scan Interface (AMSI). An adversary can modify this key to disable AMSI protections.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Modification of AmsiEnable Registry Key\n\nThe Windows Antimalware Scan Interface (AMSI) is a versatile interface standard that allows your applications and\nservices to integrate with any antimalware product that's present on a machine. AMSI provides integration with multiple\nWindows components, ranging from User Account Control (UAC) to VBA Macros.\n\nSince AMSI is widely used across security products for increased visibility, attackers can disable it to evade\ndetections that rely on it.\n\nThis rule monitors the modifications to the Software\\Microsoft\\Windows Script\\Settings\\AmsiEnable registry key.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate the execution of scripts and macros after the registry modification.\n- Retrieve scripts or Microsoft Office files and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Use process name, command line, and file hash to search for occurrences on other hosts.\n\n### False positive analysis\n\n- This modification should not happen legitimately. Any potential benign true positive (B-TP) should be mapped and\nmonitored by the security team, as these modifications expose the host to malware infections.\n\n### Related rules\n\n- Microsoft Windows Defender Tampering - fe794edd-487f-4a90-b285-3ee54f2af2d3\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Delete or set the key to its default value.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://hackinparis.com/data/slides/2019/talks/HIP2019-Dominic_Chell-Cracking_The_Perimeter_With_Sharpshooter.pdf","https://docs.microsoft.com/en-us/windows/win32/amsi/antimalware-scan-interface-portal"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n registry.path : (\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows Script\\\\Settings\\\\AmsiEnable\",\n \"HKU\\\\*\\\\Software\\\\Microsoft\\\\Windows Script\\\\Settings\\\\AmsiEnable\",\n \"\\\\REGISTRY\\\\USER\\\\*\\\\Software\\\\Microsoft\\\\Windows Script\\\\Settings\\\\AmsiEnable\"\n ) and\n registry.data.strings: (\"0\", \"0x00000000\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Modification of AmsiEnable Registry Key v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications of the AmsiEnable registry key to 0, which disables the Antimalware Scan Interface (AMSI). An adversary can modify this key to disable AMSI protections.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Modification of AmsiEnable Registry Key\n\nThe Windows Antimalware Scan Interface (AMSI) is a versatile interface standard that allows your applications and\nservices to integrate with any antimalware product that's present on a machine. AMSI provides integration with multiple\nWindows components, ranging from User Account Control (UAC) to VBA Macros.\n\nSince AMSI is widely used across security products for increased visibility, attackers can disable it to evade\ndetections that rely on it.\n\nThis rule monitors the modifications to the Software\\Microsoft\\Windows Script\\Settings\\AmsiEnable registry key.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate the execution of scripts and macros after the registry modification.\n- Retrieve scripts or Microsoft Office files and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Use process name, command line, and file hash to search for occurrences on other hosts.\n\n### False positive analysis\n\n- This modification should not happen legitimately. Any potential benign true positive (B-TP) should be mapped and\nmonitored by the security team, as these modifications expose the host to malware infections.\n\n### Related rules\n\n- Microsoft Windows Defender Tampering - fe794edd-487f-4a90-b285-3ee54f2af2d3\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Delete or set the key to its default value.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://hackinparis.com/data/slides/2019/talks/HIP2019-Dominic_Chell-Cracking_The_Perimeter_With_Sharpshooter.pdf","https://docs.microsoft.com/en-us/windows/win32/amsi/antimalware-scan-interface-portal"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n registry.path : (\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows Script\\\\Settings\\\\AmsiEnable\",\n \"HKU\\\\*\\\\Software\\\\Microsoft\\\\Windows Script\\\\Settings\\\\AmsiEnable\",\n \"\\\\REGISTRY\\\\USER\\\\*\\\\Software\\\\Microsoft\\\\Windows Script\\\\Settings\\\\AmsiEnable\"\n ) and\n registry.data.strings: (\"0\", \"0x00000000\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"f874315d-5188-4b4a-8521-d1c73093a7e4","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/f9590f47-6bd5-4a49-bd49-a2f886476fb9.json b/fleet-packages/detection-rules-composite/kibana/security_rule/f9590f47-6bd5-4a49-bd49-a2f886476fb9.json new file mode 100644 index 0000000000000..e449420801fcc --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/f9590f47-6bd5-4a49-bd49-a2f886476fb9.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"f9590f47-6bd5-4a49-bd49-a2f886476fb9","versions":[{"name":"Unusual Linux System Network Configuration Discovery v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for commands related to system network configuration discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used by a threat actor to engage in system network configuration discovery in order to increase their understanding of connected networks and hosts. This information may be used to shape follow-up behaviors such as lateral movement or additional discovery.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user command activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1016","name":"System Network Configuration Discovery","reference":"https://attack.mitre.org/techniques/T1016/"}]}],"anomaly_threshold":25,"machine_learning_job_id":["v3_linux_network_configuration_discovery"],"type":"machine_learning"},{"name":"Unusual Linux System Network Configuration Discovery v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for commands related to system network configuration discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used by a threat actor to engage in system network configuration discovery in order to increase their understanding of connected networks and hosts. This information may be used to shape follow-up behaviors such as lateral movement or additional discovery.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user command activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1016","name":"System Network Configuration Discovery","reference":"https://attack.mitre.org/techniques/T1016/"}]}],"anomaly_threshold":25,"machine_learning_job_id":["v3_linux_network_configuration_discovery"],"type":"machine_learning"},{"name":"Unusual Linux System Network Configuration Discovery v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for commands related to system network configuration discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used by a threat actor to engage in system network configuration discovery in order to increase their understanding of connected networks and hosts. This information may be used to shape follow-up behaviors such as lateral movement or additional discovery.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user command activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1016","name":"System Network Configuration Discovery","reference":"https://attack.mitre.org/techniques/T1016/"}]}],"anomaly_threshold":25,"machine_learning_job_id":["v3_linux_network_configuration_discovery"],"type":"machine_learning"}]},"id":"f9590f47-6bd5-4a49-bd49-a2f886476fb9","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/f9790abf-bd0c-45f9-8b5f-d0b74015e029.json b/fleet-packages/detection-rules-composite/kibana/security_rule/f9790abf-bd0c-45f9-8b5f-d0b74015e029.json new file mode 100644 index 0000000000000..4fec3889da24f --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/f9790abf-bd0c-45f9-8b5f-d0b74015e029.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"f9790abf-bd0c-45f9-8b5f-d0b74015e029","versions":[{"name":"Privileged Account Brute Force v1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple consecutive logon failures targeting an Admin account from the same source address and within a short time interval. Adversaries will often brute force login attempts across multiple users with a common or known password, in an attempt to gain access to accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n#### Possible investigation steps\n\n- Investigate the logon failure reason code and the targeted user names.\n- Investigate the source IP address of the failed Network Logon attempts.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Trust relationship between the primary domain and the trusted domain issue.\n- Infrastructure or availability issue.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the host is a domain controller (DC):\n - Activate your incident response plan for total Active Directory compromise.\n - Review the privileges assigned to users that can access the DCs, to ensure that the least privilege principle is\n being followed and to reduce the attack surface.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4625"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip with maxspan=10s\n [authentication where event.action == \"logon-failed\" and\n winlog.logon.type : \"Network\" and\n source.ip != null and source.ip != \"127.0.0.1\" and source.ip != \"::1\" and user.name : \"*admin*\" and\n\n /* noisy failure status codes often associated to authentication misconfiguration */\n not winlog.event_data.Status : (\"0xC000015B\", \"0XC000005E\", \"0XC0000133\", \"0XC0000192\")] with runs=5\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.Status","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Privileged Account Brute Force v1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple consecutive logon failures targeting an Admin account from the same source address and within a short time interval. Adversaries will often brute force login attempts across multiple users with a common or known password, in an attempt to gain access to accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n#### Possible investigation steps\n\n- Investigate the logon failure reason code and the targeted user names.\n- Investigate the source IP address of the failed Network Logon attempts.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Trust relationship between the primary domain and the trusted domain issue.\n- Infrastructure or availability issue.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the host is a domain controller (DC):\n - Activate your incident response plan for total Active Directory compromise.\n - Review the privileges assigned to users that can access the DCs, to ensure that the least privilege principle is\n being followed and to reduce the attack surface.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4625"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip with maxspan=10s\n [authentication where event.action == \"logon-failed\" and\n winlog.logon.type : \"Network\" and\n source.ip != null and source.ip != \"127.0.0.1\" and source.ip != \"::1\" and user.name : \"*admin*\" and\n\n /* noisy failure status codes often associated to authentication misconfiguration */\n not winlog.event_data.Status : (\"0xC000015B\", \"0XC000005E\", \"0XC0000133\", \"0XC0000192\")] with runs=5\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.Status","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Privileged Account Brute Force v1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple consecutive logon failures targeting an Admin account from the same source address and within a short time interval. Adversaries will often brute force login attempts across multiple users with a common or known password, in an attempt to gain access to accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n#### Possible investigation steps\n\n- Investigate the logon failure reason code and the targeted user names.\n- Investigate the source IP address of the failed Network Logon attempts.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Trust relationship between the primary domain and the trusted domain issue.\n- Infrastructure or availability issue.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the host is a domain controller (DC):\n - Activate your incident response plan for total Active Directory compromise.\n - Review the privileges assigned to users that can access the DCs, to ensure that the least privilege principle is\n being followed and to reduce the attack surface.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4625"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip with maxspan=10s\n [authentication where event.action == \"logon-failed\" and\n winlog.logon.type : \"Network\" and\n source.ip != null and source.ip != \"127.0.0.1\" and source.ip != \"::1\" and user.name : \"*admin*\" and\n\n /* noisy failure status codes often associated to authentication misconfiguration */\n not winlog.event_data.Status : (\"0xC000015B\", \"0XC000005E\", \"0XC0000133\", \"0XC0000192\")] with runs=5\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.Status","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"f9790abf-bd0c-45f9-8b5f-d0b74015e029","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/f994964f-6fce-4d75-8e79-e16ccc412588.json b/fleet-packages/detection-rules-composite/kibana/security_rule/f994964f-6fce-4d75-8e79-e16ccc412588.json new file mode 100644 index 0000000000000..5f179006644c1 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/f994964f-6fce-4d75-8e79-e16ccc412588.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"f994964f-6fce-4d75-8e79-e16ccc412588","versions":[{"name":"Suspicious Activity Reported by Okta User v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a user reports suspicious activity for their Okta account. These events should be investigated, as they can help security teams identify when an adversary is attempting to gain access to their network.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A user may report suspicious activity on their Okta account in error."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.account.report_suspicious_activity_by_enduser\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Suspicious Activity Reported by Okta User v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a user reports suspicious activity for their Okta account. These events should be investigated, as they can help security teams identify when an adversary is attempting to gain access to their network.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A user may report suspicious activity on their Okta account in error."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.account.report_suspicious_activity_by_enduser\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Suspicious Activity Reported by Okta User v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a user reports suspicious activity for their Okta account. These events should be investigated, as they can help security teams identify when an adversary is attempting to gain access to their network.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A user may report suspicious activity on their Okta account in error."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.account.report_suspicious_activity_by_enduser\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"f994964f-6fce-4d75-8e79-e16ccc412588","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/fa01341d-6662-426b-9d0c-6d81e33c8a9d.json b/fleet-packages/detection-rules-composite/kibana/security_rule/fa01341d-6662-426b-9d0c-6d81e33c8a9d.json new file mode 100644 index 0000000000000..553f95ad8184b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/fa01341d-6662-426b-9d0c-6d81e33c8a9d.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"fa01341d-6662-426b-9d0c-6d81e33c8a9d","versions":[{"name":"Remote File Copy to a Hidden Share v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a remote file copy attempt to a hidden network share. This may indicate lateral movement or data staging activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"cmd.exe\", \"powershell.exe\", \"robocopy.exe\", \"xcopy.exe\") and\n process.args : (\"copy*\", \"move*\", \"cp\", \"mv\") and process.args : \"*$*\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Remote File Copy to a Hidden Share v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a remote file copy attempt to a hidden network share. This may indicate lateral movement or data staging activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"cmd.exe\", \"powershell.exe\", \"robocopy.exe\", \"xcopy.exe\") and\n process.args : (\"copy*\", \"move*\", \"cp\", \"mv\") and process.args : \"*$*\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Remote File Copy to a Hidden Share v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a remote file copy attempt to a hidden network share. This may indicate lateral movement or data staging activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"cmd.exe\", \"powershell.exe\", \"robocopy.exe\", \"xcopy.exe\") and\n process.args : (\"copy*\", \"move*\", \"cp\", \"mv\") and process.args : \"*$*\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"fa01341d-6662-426b-9d0c-6d81e33c8a9d","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/fb02b8d3-71ee-4af1-bacd-215d23f17efa.json b/fleet-packages/detection-rules-composite/kibana/security_rule/fb02b8d3-71ee-4af1-bacd-215d23f17efa.json new file mode 100644 index 0000000000000..3e67d15c5ba0b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/fb02b8d3-71ee-4af1-bacd-215d23f17efa.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"fb02b8d3-71ee-4af1-bacd-215d23f17efa","versions":[{"name":"Network Connection via Registration Utility v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the native Windows tools regsvr32.exe, regsvr64.exe, RegSvcs.exe, or RegAsm.exe making a network connection. This may be indicative of an attacker bypassing allowlists or running arbitrary scripts via a signed Microsoft binary.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Security testing may produce events like this. Activity of this kind performed by non-engineers and ordinary users is unusual."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.010","name":"Regsvr32","reference":"https://attack.mitre.org/techniques/T1218/010/"}]}]}],"language":"eql","query":"sequence by process.entity_id\n [process where event.type == \"start\" and\n process.name : (\"regsvr32.exe\", \"RegAsm.exe\", \"RegSvcs.exe\") and\n not (\n (?process.Ext.token.integrity_level_name : \"System\" or ?winlog.event_data.IntegrityLevel : \"System\") and\n (process.parent.name : \"msiexec.exe\" or process.parent.executable : (\"C:\\\\Program Files (x86)\\\\*.exe\", \"C:\\\\Program Files\\\\*.exe\"))\n )\n ]\n [network where process.name : (\"regsvr32.exe\", \"RegAsm.exe\", \"RegSvcs.exe\") and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\",\n \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\",\n \"100.64.0.0/10\", \"192.175.48.0/24\",\"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\") and network.protocol != \"dns\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.IntegrityLevel","type":"keyword"}]},{"name":"Network Connection via Registration Utility v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the native Windows tools regsvr32.exe, regsvr64.exe, RegSvcs.exe, or RegAsm.exe making a network connection. This may be indicative of an attacker bypassing allowlists or running arbitrary scripts via a signed Microsoft binary.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Security testing may produce events like this. Activity of this kind performed by non-engineers and ordinary users is unusual."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.010","name":"Regsvr32","reference":"https://attack.mitre.org/techniques/T1218/010/"}]}]}],"language":"eql","query":"sequence by process.entity_id\n [process where event.type == \"start\" and\n process.name : (\"regsvr32.exe\", \"RegAsm.exe\", \"RegSvcs.exe\") and\n not (\n (?process.Ext.token.integrity_level_name : \"System\" or ?winlog.event_data.IntegrityLevel : \"System\") and\n (process.parent.name : \"msiexec.exe\" or process.parent.executable : (\"C:\\\\Program Files (x86)\\\\*.exe\", \"C:\\\\Program Files\\\\*.exe\"))\n )\n ]\n [network where process.name : (\"regsvr32.exe\", \"RegAsm.exe\", \"RegSvcs.exe\") and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\",\n \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\",\n \"100.64.0.0/10\", \"192.175.48.0/24\",\"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\") and network.protocol != \"dns\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.IntegrityLevel","type":"keyword"}]},{"name":"Network Connection via Registration Utility v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the native Windows tools regsvr32.exe, regsvr64.exe, RegSvcs.exe, or RegAsm.exe making a network connection. This may be indicative of an attacker bypassing allowlists or running arbitrary scripts via a signed Microsoft binary.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Security testing may produce events like this. Activity of this kind performed by non-engineers and ordinary users is unusual."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.010","name":"Regsvr32","reference":"https://attack.mitre.org/techniques/T1218/010/"}]}]}],"language":"eql","query":"sequence by process.entity_id\n [process where event.type == \"start\" and\n process.name : (\"regsvr32.exe\", \"RegAsm.exe\", \"RegSvcs.exe\") and\n not (\n (?process.Ext.token.integrity_level_name : \"System\" or ?winlog.event_data.IntegrityLevel : \"System\") and\n (process.parent.name : \"msiexec.exe\" or process.parent.executable : (\"C:\\\\Program Files (x86)\\\\*.exe\", \"C:\\\\Program Files\\\\*.exe\"))\n )\n ]\n [network where process.name : (\"regsvr32.exe\", \"RegAsm.exe\", \"RegSvcs.exe\") and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\",\n \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\",\n \"100.64.0.0/10\", \"192.175.48.0/24\",\"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\") and network.protocol != \"dns\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.IntegrityLevel","type":"keyword"}]}]},"id":"fb02b8d3-71ee-4af1-bacd-215d23f17efa","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/fbd44836-0d69-4004-a0b4-03c20370c435.json b/fleet-packages/detection-rules-composite/kibana/security_rule/fbd44836-0d69-4004-a0b4-03c20370c435.json new file mode 100644 index 0000000000000..11ee90d30b9fe --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/fbd44836-0d69-4004-a0b4-03c20370c435.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"fbd44836-0d69-4004-a0b4-03c20370c435","versions":[{"name":"AWS Configuration Recorder Stopped v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an AWS configuration change to stop recording a designated set of resources.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Recording changes from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/stop-configuration-recorder.html","https://docs.aws.amazon.com/config/latest/APIReference/API_StopConfigurationRecorder.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:config.amazonaws.com and event.action:StopConfigurationRecorder and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Configuration Recorder Stopped v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an AWS configuration change to stop recording a designated set of resources.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Recording changes from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/stop-configuration-recorder.html","https://docs.aws.amazon.com/config/latest/APIReference/API_StopConfigurationRecorder.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:config.amazonaws.com and event.action:StopConfigurationRecorder and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"AWS Configuration Recorder Stopped v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an AWS configuration change to stop recording a designated set of resources.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Recording changes from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/stop-configuration-recorder.html","https://docs.aws.amazon.com/config/latest/APIReference/API_StopConfigurationRecorder.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:config.amazonaws.com and event.action:StopConfigurationRecorder and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"fbd44836-0d69-4004-a0b4-03c20370c435","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/fc7c0fa4-8f03-4b3e-8336-c5feab0be022.json b/fleet-packages/detection-rules-composite/kibana/security_rule/fc7c0fa4-8f03-4b3e-8336-c5feab0be022.json new file mode 100644 index 0000000000000..dbf9b198609cf --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/fc7c0fa4-8f03-4b3e-8336-c5feab0be022.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"fc7c0fa4-8f03-4b3e-8336-c5feab0be022","versions":[{"name":"UAC Bypass Attempt via Elevated COM Internet Explorer Add-On Installer v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies User Account Control (UAC) bypass attempts by abusing an elevated COM Interface to launch a malicious program. Attackers may attempt to bypass UAC to stealthily execute code with elevated permissions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://swapcontext.blogspot.com/2020/11/uac-bypasses-from-comautoapprovallist.html"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.executable : \"C:\\\\*\\\\AppData\\\\*\\\\Temp\\\\IDC*.tmp\\\\*.exe\" and\n process.parent.name : \"ieinstal.exe\" and process.parent.args : \"-Embedding\"\n\n /* uncomment once in winlogbeat */\n /* and not (process.code_signature.subject_name == \"Microsoft Corporation\" and process.code_signature.trusted == true) */\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"UAC Bypass Attempt via Elevated COM Internet Explorer Add-On Installer v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies User Account Control (UAC) bypass attempts by abusing an elevated COM Interface to launch a malicious program. Attackers may attempt to bypass UAC to stealthily execute code with elevated permissions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://swapcontext.blogspot.com/2020/11/uac-bypasses-from-comautoapprovallist.html"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.executable : \"C:\\\\*\\\\AppData\\\\*\\\\Temp\\\\IDC*.tmp\\\\*.exe\" and\n process.parent.name : \"ieinstal.exe\" and process.parent.args : \"-Embedding\"\n\n /* uncomment once in winlogbeat */\n /* and not (process.code_signature.subject_name == \"Microsoft Corporation\" and process.code_signature.trusted == true) */\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"UAC Bypass Attempt via Elevated COM Internet Explorer Add-On Installer v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies User Account Control (UAC) bypass attempts by abusing an elevated COM Interface to launch a malicious program. Attackers may attempt to bypass UAC to stealthily execute code with elevated permissions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://swapcontext.blogspot.com/2020/11/uac-bypasses-from-comautoapprovallist.html"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.executable : \"C:\\\\*\\\\AppData\\\\*\\\\Temp\\\\IDC*.tmp\\\\*.exe\" and\n process.parent.name : \"ieinstal.exe\" and process.parent.args : \"-Embedding\"\n\n /* uncomment once in winlogbeat */\n /* and not (process.code_signature.subject_name == \"Microsoft Corporation\" and process.code_signature.trusted == true) */\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"fc7c0fa4-8f03-4b3e-8336-c5feab0be022","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/fd4a992d-6130-4802-9ff8-829b89ae801f.json b/fleet-packages/detection-rules-composite/kibana/security_rule/fd4a992d-6130-4802-9ff8-829b89ae801f.json new file mode 100644 index 0000000000000..f1238c1ba2451 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/fd4a992d-6130-4802-9ff8-829b89ae801f.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"fd4a992d-6130-4802-9ff8-829b89ae801f","versions":[{"name":"Potential Application Shimming via Sdbinst v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The Application Shim was created to allow for backward compatibility of software as the operating system codebase changes over time. This Windows functionality has been abused by attackers to stealthily gain persistence and arbitrary code execution in legitimate Windows processes.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.011","name":"Application Shimming","reference":"https://attack.mitre.org/techniques/T1546/011/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.011","name":"Application Shimming","reference":"https://attack.mitre.org/techniques/T1546/011/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.name : \"sdbinst.exe\" and \n not (process.args : \"-m\" and process.args : \"-bg\") and \n not process.args : \"-mm\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Application Shimming via Sdbinst v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The Application Shim was created to allow for backward compatibility of software as the operating system codebase changes over time. This Windows functionality has been abused by attackers to stealthily gain persistence and arbitrary code execution in legitimate Windows processes.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.011","name":"Application Shimming","reference":"https://attack.mitre.org/techniques/T1546/011/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.011","name":"Application Shimming","reference":"https://attack.mitre.org/techniques/T1546/011/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.name : \"sdbinst.exe\" and \n not (process.args : \"-m\" and process.args : \"-bg\") and \n not process.args : \"-mm\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Potential Application Shimming via Sdbinst v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The Application Shim was created to allow for backward compatibility of software as the operating system codebase changes over time. This Windows functionality has been abused by attackers to stealthily gain persistence and arbitrary code execution in legitimate Windows processes.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.011","name":"Application Shimming","reference":"https://attack.mitre.org/techniques/T1546/011/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.011","name":"Application Shimming","reference":"https://attack.mitre.org/techniques/T1546/011/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.name : \"sdbinst.exe\" and \n not (process.args : \"-m\" and process.args : \"-bg\") and \n not process.args : \"-mm\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"fd4a992d-6130-4802-9ff8-829b89ae801f","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/fd70c98a-c410-42dc-a2e3-761c71848acf.json b/fleet-packages/detection-rules-composite/kibana/security_rule/fd70c98a-c410-42dc-a2e3-761c71848acf.json new file mode 100644 index 0000000000000..5eed92ae2361e --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/fd70c98a-c410-42dc-a2e3-761c71848acf.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"fd70c98a-c410-42dc-a2e3-761c71848acf","versions":[{"name":"Suspicious CertUtil Commands v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious commands being used with certutil.exe. CertUtil is a native Windows component which is part of Certificate Services. CertUtil is often abused by attackers to live off the land for stealthier command and control or data exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timeline_id":"e70679c2-6cde-4510-9764-4823df18f7db","timeline_title":"Comprehensive Process Timeline","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"from":"now-9m","references":["https://twitter.com/Moriarty_Meng/status/984380793383370752","https://twitter.com/egre55/status/1087685529016193025","https://www.sysadmins.lv/blog-en/certutil-tips-and-tricks-working-with-x509-file-format.aspx","https://docs.microsoft.com/en-us/archive/blogs/pki/basic-crl-checking-with-certutil"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1140","name":"Deobfuscate/Decode Files or Information","reference":"https://attack.mitre.org/techniques/T1140/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"certutil.exe\" or process.pe.original_file_name == \"CertUtil.exe\") and\n process.args : (\"?decode\", \"?encode\", \"?urlcache\", \"?verifyctl\", \"?encodehex\", \"?decodehex\", \"?exportPFX\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious CertUtil Commands v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious commands being used with certutil.exe. CertUtil is a native Windows component which is part of Certificate Services. CertUtil is often abused by attackers to live off the land for stealthier command and control or data exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timeline_id":"e70679c2-6cde-4510-9764-4823df18f7db","timeline_title":"Comprehensive Process Timeline","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"from":"now-9m","references":["https://twitter.com/Moriarty_Meng/status/984380793383370752","https://twitter.com/egre55/status/1087685529016193025","https://www.sysadmins.lv/blog-en/certutil-tips-and-tricks-working-with-x509-file-format.aspx","https://docs.microsoft.com/en-us/archive/blogs/pki/basic-crl-checking-with-certutil"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1140","name":"Deobfuscate/Decode Files or Information","reference":"https://attack.mitre.org/techniques/T1140/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"certutil.exe\" or process.pe.original_file_name == \"CertUtil.exe\") and\n process.args : (\"?decode\", \"?encode\", \"?urlcache\", \"?verifyctl\", \"?encodehex\", \"?decodehex\", \"?exportPFX\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Suspicious CertUtil Commands v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious commands being used with certutil.exe. CertUtil is a native Windows component which is part of Certificate Services. CertUtil is often abused by attackers to live off the land for stealthier command and control or data exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timeline_id":"e70679c2-6cde-4510-9764-4823df18f7db","timeline_title":"Comprehensive Process Timeline","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"from":"now-9m","references":["https://twitter.com/Moriarty_Meng/status/984380793383370752","https://twitter.com/egre55/status/1087685529016193025","https://www.sysadmins.lv/blog-en/certutil-tips-and-tricks-working-with-x509-file-format.aspx","https://docs.microsoft.com/en-us/archive/blogs/pki/basic-crl-checking-with-certutil"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1140","name":"Deobfuscate/Decode Files or Information","reference":"https://attack.mitre.org/techniques/T1140/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"certutil.exe\" or process.pe.original_file_name == \"CertUtil.exe\") and\n process.args : (\"?decode\", \"?encode\", \"?urlcache\", \"?verifyctl\", \"?encodehex\", \"?decodehex\", \"?exportPFX\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"fd70c98a-c410-42dc-a2e3-761c71848acf","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/fd7a6052-58fa-4397-93c3-4795249ccfa2.json b/fleet-packages/detection-rules-composite/kibana/security_rule/fd7a6052-58fa-4397-93c3-4795249ccfa2.json new file mode 100644 index 0000000000000..0858e7453a64b --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/fd7a6052-58fa-4397-93c3-4795249ccfa2.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"fd7a6052-58fa-4397-93c3-4795249ccfa2","versions":[{"name":"Svchost spawning Cmd v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious parent child process relationship with cmd.exe descending from svchost.exe","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Svchost spawning Cmd\n\nThe Service Host process (SvcHost) is a system process that can host one, or multiple, Windows services in the Windows\nNT family of operating systems. Note that `Svchost.exe` is reserved for use by the operating system and should not be\nused by non-Windows services.\n\nThis rule looks for the creation of the `cmd.exe` process with `svchost.exe` as its parent process. This is an unusual\nbehavior that can indicate the masquerading of a malicious process as `svchost.exe` or exploitation for privilege\nescalation.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timeline_id":"e70679c2-6cde-4510-9764-4823df18f7db","timeline_title":"Comprehensive Process Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://nasbench.medium.com/demystifying-the-svchost-exe-process-and-its-command-line-options-508e9114e747"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n\n process.parent.name : \"svchost.exe\" and process.name : \"cmd.exe\" and\n\n not process.args :\n (\"??:\\\\Program Files\\\\Npcap\\\\CheckStatus.bat?\",\n \"?:\\\\Program Files\\\\Npcap\\\\CheckStatus.bat\",\n \"\\\\system32\\\\cleanmgr.exe\",\n \"?:\\\\Windows\\\\system32\\\\silcollector.cmd\",\n \"\\\\system32\\\\AppHostRegistrationVerifier.exe\",\n \"\\\\system32\\\\ServerManagerLauncher.exe\",\n \"dir\",\n \"?:\\\\Program Files\\\\*\",\n \"?:\\\\Program Files (x86)\\\\*\",\n \"?:\\\\Windows\\\\LSDeployment\\\\Lspush.exe\",\n \"(x86)\\\\FMAuditOnsite\\\\watchdog.bat\",\n \"?:\\\\ProgramData\\\\chocolatey\\\\bin\\\\choco-upgrade-all.bat\",\n \"Files\\\\Npcap\\\\CheckStatus.bat\") and\n\n /* very noisy pattern - bat or cmd script executed via scheduled tasks */\n not (process.parent.args : \"netsvcs\" and process.args : (\"?:\\\\*.bat\", \"?:\\\\*.cmd\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Svchost spawning Cmd v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious parent child process relationship with cmd.exe descending from svchost.exe","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Svchost spawning Cmd\n\nThe Service Host process (SvcHost) is a system process that can host one, or multiple, Windows services in the Windows\nNT family of operating systems. Note that `Svchost.exe` is reserved for use by the operating system and should not be\nused by non-Windows services.\n\nThis rule looks for the creation of the `cmd.exe` process with `svchost.exe` as its parent process. This is an unusual\nbehavior that can indicate the masquerading of a malicious process as `svchost.exe` or exploitation for privilege\nescalation.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timeline_id":"e70679c2-6cde-4510-9764-4823df18f7db","timeline_title":"Comprehensive Process Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://nasbench.medium.com/demystifying-the-svchost-exe-process-and-its-command-line-options-508e9114e747"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n\n process.parent.name : \"svchost.exe\" and process.name : \"cmd.exe\" and\n\n not process.args :\n (\"??:\\\\Program Files\\\\Npcap\\\\CheckStatus.bat?\",\n \"?:\\\\Program Files\\\\Npcap\\\\CheckStatus.bat\",\n \"\\\\system32\\\\cleanmgr.exe\",\n \"?:\\\\Windows\\\\system32\\\\silcollector.cmd\",\n \"\\\\system32\\\\AppHostRegistrationVerifier.exe\",\n \"\\\\system32\\\\ServerManagerLauncher.exe\",\n \"dir\",\n \"?:\\\\Program Files\\\\*\",\n \"?:\\\\Program Files (x86)\\\\*\",\n \"?:\\\\Windows\\\\LSDeployment\\\\Lspush.exe\",\n \"(x86)\\\\FMAuditOnsite\\\\watchdog.bat\",\n \"?:\\\\ProgramData\\\\chocolatey\\\\bin\\\\choco-upgrade-all.bat\",\n \"Files\\\\Npcap\\\\CheckStatus.bat\") and\n\n /* very noisy pattern - bat or cmd script executed via scheduled tasks */\n not (process.parent.args : \"netsvcs\" and process.args : (\"?:\\\\*.bat\", \"?:\\\\*.cmd\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Svchost spawning Cmd v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious parent child process relationship with cmd.exe descending from svchost.exe","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Svchost spawning Cmd\n\nThe Service Host process (SvcHost) is a system process that can host one, or multiple, Windows services in the Windows\nNT family of operating systems. Note that `Svchost.exe` is reserved for use by the operating system and should not be\nused by non-Windows services.\n\nThis rule looks for the creation of the `cmd.exe` process with `svchost.exe` as its parent process. This is an unusual\nbehavior that can indicate the masquerading of a malicious process as `svchost.exe` or exploitation for privilege\nescalation.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timeline_id":"e70679c2-6cde-4510-9764-4823df18f7db","timeline_title":"Comprehensive Process Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://nasbench.medium.com/demystifying-the-svchost-exe-process-and-its-command-line-options-508e9114e747"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n\n process.parent.name : \"svchost.exe\" and process.name : \"cmd.exe\" and\n\n not process.args :\n (\"??:\\\\Program Files\\\\Npcap\\\\CheckStatus.bat?\",\n \"?:\\\\Program Files\\\\Npcap\\\\CheckStatus.bat\",\n \"\\\\system32\\\\cleanmgr.exe\",\n \"?:\\\\Windows\\\\system32\\\\silcollector.cmd\",\n \"\\\\system32\\\\AppHostRegistrationVerifier.exe\",\n \"\\\\system32\\\\ServerManagerLauncher.exe\",\n \"dir\",\n \"?:\\\\Program Files\\\\*\",\n \"?:\\\\Program Files (x86)\\\\*\",\n \"?:\\\\Windows\\\\LSDeployment\\\\Lspush.exe\",\n \"(x86)\\\\FMAuditOnsite\\\\watchdog.bat\",\n \"?:\\\\ProgramData\\\\chocolatey\\\\bin\\\\choco-upgrade-all.bat\",\n \"Files\\\\Npcap\\\\CheckStatus.bat\") and\n\n /* very noisy pattern - bat or cmd script executed via scheduled tasks */\n not (process.parent.args : \"netsvcs\" and process.args : (\"?:\\\\*.bat\", \"?:\\\\*.cmd\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"fd7a6052-58fa-4397-93c3-4795249ccfa2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/fe794edd-487f-4a90-b285-3ee54f2af2d3.json b/fleet-packages/detection-rules-composite/kibana/security_rule/fe794edd-487f-4a90-b285-3ee54f2af2d3.json new file mode 100644 index 0000000000000..8b201446f02d1 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/fe794edd-487f-4a90-b285-3ee54f2af2d3.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"fe794edd-487f-4a90-b285-3ee54f2af2d3","versions":[{"name":"Microsoft Windows Defender Tampering v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when one or more features on Microsoft Defender are disabled. Adversaries may disable or tamper with Microsoft Defender features to evade detection and conceal malicious behavior.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Microsoft Windows Defender Tampering\n\nMicrosoft Windows Defender is an antivirus product built into Microsoft Windows, which makes it popular across multiple\nenvironments. Disabling it is a common step in threat actor playbooks.\n\nThis rule monitors the registry for modifications that disable Windows Defender features.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine which features have been disabled, and check if this operation is done under change management and approved\naccording to the organization's policy.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity,\nthe configuration is justified (for example, it is being used to deploy other security solutions or troubleshooting),\nand no other suspicious activity has been observed.\n\n### Related rules\n\n- Windows Defender Disabled via Registry Modification - 2ffa1f1e-b6db-47fa-994b-1512743847eb\n- Disabling Windows Defender Security Settings via PowerShell - c8cccb06-faf2-4cd5-886e-2c9636cfcb87\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Take actions to restore the appropriate Windows Defender antivirus configurations.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Legitimate Windows Defender configuration changes"],"from":"now-9m","references":["https://thedfirreport.com/2021/10/18/icedid-to-xinglocker-ransomware-in-24-hours/","https://www.tenforums.com/tutorials/32236-enable-disable-microsoft-defender-pua-protection-windows-10-a.html","https://www.tenforums.com/tutorials/104025-turn-off-core-isolation-memory-integrity-windows-10-a.html","https://www.tenforums.com/tutorials/105533-enable-disable-windows-defender-exploit-protection-settings.html","https://www.tenforums.com/tutorials/123792-turn-off-tamper-protection-microsoft-defender-antivirus.html","https://www.tenforums.com/tutorials/51514-turn-off-microsoft-defender-periodic-scanning-windows-10-a.html","https://www.tenforums.com/tutorials/3569-turn-off-real-time-protection-microsoft-defender-antivirus.html","https://www.tenforums.com/tutorials/99576-how-schedule-scan-microsoft-defender-antivirus-windows-10-a.html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\PUAProtection\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender Security Center\\\\App and Browser protection\\\\DisallowExploitProtectionOverride\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\DisableAntiSpyware\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Features\\\\TamperProtection\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Real-Time Protection\\\\DisableRealtimeMonitoring\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Real-Time Protection\\\\DisableIntrusionPreventionSystem\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Real-Time Protection\\\\DisableScriptScanning\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Windows Defender Exploit Guard\\\\Controlled Folder Access\\\\EnableControlledFolderAccess\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Real-Time Protection\\\\DisableIOAVProtection\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Reporting\\\\DisableEnhancedNotifications\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\SpyNet\\\\DisableBlockAtFirstSeen\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\SpyNet\\\\SpynetReporting\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\SpyNet\\\\SubmitSamplesConsent\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Real-Time Protection\\\\DisableBehaviorMonitoring\" and\n registry.data.strings : (\"1\", \"0x00000001\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Microsoft Windows Defender Tampering v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when one or more features on Microsoft Defender are disabled. Adversaries may disable or tamper with Microsoft Defender features to evade detection and conceal malicious behavior.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Microsoft Windows Defender Tampering\n\nMicrosoft Windows Defender is an antivirus product built into Microsoft Windows, which makes it popular across multiple\nenvironments. Disabling it is a common step in threat actor playbooks.\n\nThis rule monitors the registry for modifications that disable Windows Defender features.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine which features have been disabled, and check if this operation is done under change management and approved\naccording to the organization's policy.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity,\nthe configuration is justified (for example, it is being used to deploy other security solutions or troubleshooting),\nand no other suspicious activity has been observed.\n\n### Related rules\n\n- Windows Defender Disabled via Registry Modification - 2ffa1f1e-b6db-47fa-994b-1512743847eb\n- Disabling Windows Defender Security Settings via PowerShell - c8cccb06-faf2-4cd5-886e-2c9636cfcb87\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Take actions to restore the appropriate Windows Defender antivirus configurations.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Legitimate Windows Defender configuration changes"],"from":"now-9m","references":["https://thedfirreport.com/2021/10/18/icedid-to-xinglocker-ransomware-in-24-hours/","https://www.tenforums.com/tutorials/32236-enable-disable-microsoft-defender-pua-protection-windows-10-a.html","https://www.tenforums.com/tutorials/104025-turn-off-core-isolation-memory-integrity-windows-10-a.html","https://www.tenforums.com/tutorials/105533-enable-disable-windows-defender-exploit-protection-settings.html","https://www.tenforums.com/tutorials/123792-turn-off-tamper-protection-microsoft-defender-antivirus.html","https://www.tenforums.com/tutorials/51514-turn-off-microsoft-defender-periodic-scanning-windows-10-a.html","https://www.tenforums.com/tutorials/3569-turn-off-real-time-protection-microsoft-defender-antivirus.html","https://www.tenforums.com/tutorials/99576-how-schedule-scan-microsoft-defender-antivirus-windows-10-a.html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\PUAProtection\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender Security Center\\\\App and Browser protection\\\\DisallowExploitProtectionOverride\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\DisableAntiSpyware\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Features\\\\TamperProtection\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Real-Time Protection\\\\DisableRealtimeMonitoring\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Real-Time Protection\\\\DisableIntrusionPreventionSystem\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Real-Time Protection\\\\DisableScriptScanning\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Windows Defender Exploit Guard\\\\Controlled Folder Access\\\\EnableControlledFolderAccess\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Real-Time Protection\\\\DisableIOAVProtection\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Reporting\\\\DisableEnhancedNotifications\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\SpyNet\\\\DisableBlockAtFirstSeen\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\SpyNet\\\\SpynetReporting\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\SpyNet\\\\SubmitSamplesConsent\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Real-Time Protection\\\\DisableBehaviorMonitoring\" and\n registry.data.strings : (\"1\", \"0x00000001\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"Microsoft Windows Defender Tampering v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when one or more features on Microsoft Defender are disabled. Adversaries may disable or tamper with Microsoft Defender features to evade detection and conceal malicious behavior.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Microsoft Windows Defender Tampering\n\nMicrosoft Windows Defender is an antivirus product built into Microsoft Windows, which makes it popular across multiple\nenvironments. Disabling it is a common step in threat actor playbooks.\n\nThis rule monitors the registry for modifications that disable Windows Defender features.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine which features have been disabled, and check if this operation is done under change management and approved\naccording to the organization's policy.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity,\nthe configuration is justified (for example, it is being used to deploy other security solutions or troubleshooting),\nand no other suspicious activity has been observed.\n\n### Related rules\n\n- Windows Defender Disabled via Registry Modification - 2ffa1f1e-b6db-47fa-994b-1512743847eb\n- Disabling Windows Defender Security Settings via PowerShell - c8cccb06-faf2-4cd5-886e-2c9636cfcb87\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Take actions to restore the appropriate Windows Defender antivirus configurations.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Legitimate Windows Defender configuration changes"],"from":"now-9m","references":["https://thedfirreport.com/2021/10/18/icedid-to-xinglocker-ransomware-in-24-hours/","https://www.tenforums.com/tutorials/32236-enable-disable-microsoft-defender-pua-protection-windows-10-a.html","https://www.tenforums.com/tutorials/104025-turn-off-core-isolation-memory-integrity-windows-10-a.html","https://www.tenforums.com/tutorials/105533-enable-disable-windows-defender-exploit-protection-settings.html","https://www.tenforums.com/tutorials/123792-turn-off-tamper-protection-microsoft-defender-antivirus.html","https://www.tenforums.com/tutorials/51514-turn-off-microsoft-defender-periodic-scanning-windows-10-a.html","https://www.tenforums.com/tutorials/3569-turn-off-real-time-protection-microsoft-defender-antivirus.html","https://www.tenforums.com/tutorials/99576-how-schedule-scan-microsoft-defender-antivirus-windows-10-a.html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\PUAProtection\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender Security Center\\\\App and Browser protection\\\\DisallowExploitProtectionOverride\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\DisableAntiSpyware\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Features\\\\TamperProtection\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Real-Time Protection\\\\DisableRealtimeMonitoring\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Real-Time Protection\\\\DisableIntrusionPreventionSystem\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Real-Time Protection\\\\DisableScriptScanning\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Windows Defender Exploit Guard\\\\Controlled Folder Access\\\\EnableControlledFolderAccess\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Real-Time Protection\\\\DisableIOAVProtection\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Reporting\\\\DisableEnhancedNotifications\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\SpyNet\\\\DisableBlockAtFirstSeen\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\SpyNet\\\\SpynetReporting\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\SpyNet\\\\SubmitSamplesConsent\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Real-Time Protection\\\\DisableBehaviorMonitoring\" and\n registry.data.strings : (\"1\", \"0x00000001\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"fe794edd-487f-4a90-b285-3ee54f2af2d3","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/feeed87c-5e95-4339-aef1-47fd79bcfbe3.json b/fleet-packages/detection-rules-composite/kibana/security_rule/feeed87c-5e95-4339-aef1-47fd79bcfbe3.json new file mode 100644 index 0000000000000..4120918fe60c9 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/feeed87c-5e95-4339-aef1-47fd79bcfbe3.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"feeed87c-5e95-4339-aef1-47fd79bcfbe3","versions":[{"name":"MS Office Macro Security Registry Modifications v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Microsoft Office Products offer options for users and developers to control the security settings for running and using Macros. Adversaries may abuse these security settings to modify the default behavior of the Office Application to trust future macros and/or disable security warnings, which could increase their chances of establishing persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating MS Office Macro Security Registry Modifications\n\nMacros are small programs that are used to automate repetitive tasks in Microsoft Office applications.\nHistorically, macros have been used for a variety of reasons -- from automating part of a job, to\nbuilding entire processes and data flows. Macros are written in Visual Basic for Applications (VBA) and are saved as\npart of Microsoft Office files.\n\nMacros are often created for legitimate reasons, but they can also be written by attackers to gain access, harm a\nsystem, or bypass other security controls such as application allow listing. In fact, exploitation from malicious macros\nis one of the top ways that organizations are compromised today. These attacks are often conducted through phishing or\nspear phishing campaigns.\n\nAttackers can convince victims to modify Microsoft Office security settings, so their macros are trusted by default and\nno warnings are displayed when they are executed. These settings include:\n\n* *Trust access to the VBA project object model* - When enabled, Microsoft Office will trust all macros and run any code\nwithout showing a security warning or requiring user permission.\n* *VbaWarnings* - When set to 1, Microsoft Office will trust all macros and run any code without showing a security\nwarning or requiring user permission.\n\nThis rule looks for registry changes affecting the conditions above.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the user and check if the change was done manually.\n- Verify whether malicious macros were executed after the registry change.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve recently executed Office documents and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity should not happen legitimately. The security team should address any potential benign true\npositives (B-TPs), as this configuration can put the user and the domain at risk.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Reset the registry key value.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Explore using GPOs to manage security settings for Microsoft Office macros.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1112","name":"Modify Registry","reference":"https://attack.mitre.org/techniques/T1112/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1204","name":"User Execution","reference":"https://attack.mitre.org/techniques/T1204/","subtechnique":[{"id":"T1204.002","name":"Malicious File","reference":"https://attack.mitre.org/techniques/T1204/002/"}]}]}],"language":"eql","query":"registry where event.type == \"change\" and\n registry.path : (\n \"HKU\\\\S-1-5-21-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\AccessVBOM\",\n \"HKU\\\\S-1-5-21-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\VbaWarnings\",\n \"HKU\\\\S-1-12-1-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\AccessVBOM\",\n \"HKU\\\\S-1-12-1-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\VbaWarnings\",\n \"\\\\REGISTRY\\\\USER\\\\S-1-5-21-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\AccessVBOM\",\n \"\\\\REGISTRY\\\\USER\\\\S-1-5-21-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\VbaWarnings\",\n \"\\\\REGISTRY\\\\USER\\\\S-1-12-1-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\AccessVBOM\",\n \"\\\\REGISTRY\\\\USER\\\\S-1-12-1-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\VbaWarnings\"\n ) and\n registry.data.strings : (\"0x00000001\", \"1\") and\n process.name : (\"cscript.exe\", \"wscript.exe\", \"mshta.exe\", \"mshta.exe\", \"winword.exe\", \"excel.exe\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"MS Office Macro Security Registry Modifications v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Microsoft Office Products offer options for users and developers to control the security settings for running and using Macros. Adversaries may abuse these security settings to modify the default behavior of the Office Application to trust future macros and/or disable security warnings, which could increase their chances of establishing persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating MS Office Macro Security Registry Modifications\n\nMacros are small programs that are used to automate repetitive tasks in Microsoft Office applications.\nHistorically, macros have been used for a variety of reasons -- from automating part of a job, to\nbuilding entire processes and data flows. Macros are written in Visual Basic for Applications (VBA) and are saved as\npart of Microsoft Office files.\n\nMacros are often created for legitimate reasons, but they can also be written by attackers to gain access, harm a\nsystem, or bypass other security controls such as application allow listing. In fact, exploitation from malicious macros\nis one of the top ways that organizations are compromised today. These attacks are often conducted through phishing or\nspear phishing campaigns.\n\nAttackers can convince victims to modify Microsoft Office security settings, so their macros are trusted by default and\nno warnings are displayed when they are executed. These settings include:\n\n* *Trust access to the VBA project object model* - When enabled, Microsoft Office will trust all macros and run any code\nwithout showing a security warning or requiring user permission.\n* *VbaWarnings* - When set to 1, Microsoft Office will trust all macros and run any code without showing a security\nwarning or requiring user permission.\n\nThis rule looks for registry changes affecting the conditions above.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the user and check if the change was done manually.\n- Verify whether malicious macros were executed after the registry change.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve recently executed Office documents and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity should not happen legitimately. The security team should address any potential benign true\npositives (B-TPs), as this configuration can put the user and the domain at risk.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Reset the registry key value.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Explore using GPOs to manage security settings for Microsoft Office macros.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1112","name":"Modify Registry","reference":"https://attack.mitre.org/techniques/T1112/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1204","name":"User Execution","reference":"https://attack.mitre.org/techniques/T1204/","subtechnique":[{"id":"T1204.002","name":"Malicious File","reference":"https://attack.mitre.org/techniques/T1204/002/"}]}]}],"language":"eql","query":"registry where event.type == \"change\" and\n registry.path : (\n \"HKU\\\\S-1-5-21-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\AccessVBOM\",\n \"HKU\\\\S-1-5-21-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\VbaWarnings\",\n \"HKU\\\\S-1-12-1-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\AccessVBOM\",\n \"HKU\\\\S-1-12-1-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\VbaWarnings\",\n \"\\\\REGISTRY\\\\USER\\\\S-1-5-21-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\AccessVBOM\",\n \"\\\\REGISTRY\\\\USER\\\\S-1-5-21-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\VbaWarnings\",\n \"\\\\REGISTRY\\\\USER\\\\S-1-12-1-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\AccessVBOM\",\n \"\\\\REGISTRY\\\\USER\\\\S-1-12-1-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\VbaWarnings\"\n ) and\n registry.data.strings : (\"0x00000001\", \"1\") and\n process.name : (\"cscript.exe\", \"wscript.exe\", \"mshta.exe\", \"mshta.exe\", \"winword.exe\", \"excel.exe\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},{"name":"MS Office Macro Security Registry Modifications v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Microsoft Office Products offer options for users and developers to control the security settings for running and using Macros. Adversaries may abuse these security settings to modify the default behavior of the Office Application to trust future macros and/or disable security warnings, which could increase their chances of establishing persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating MS Office Macro Security Registry Modifications\n\nMacros are small programs that are used to automate repetitive tasks in Microsoft Office applications.\nHistorically, macros have been used for a variety of reasons -- from automating part of a job, to\nbuilding entire processes and data flows. Macros are written in Visual Basic for Applications (VBA) and are saved as\npart of Microsoft Office files.\n\nMacros are often created for legitimate reasons, but they can also be written by attackers to gain access, harm a\nsystem, or bypass other security controls such as application allow listing. In fact, exploitation from malicious macros\nis one of the top ways that organizations are compromised today. These attacks are often conducted through phishing or\nspear phishing campaigns.\n\nAttackers can convince victims to modify Microsoft Office security settings, so their macros are trusted by default and\nno warnings are displayed when they are executed. These settings include:\n\n* *Trust access to the VBA project object model* - When enabled, Microsoft Office will trust all macros and run any code\nwithout showing a security warning or requiring user permission.\n* *VbaWarnings* - When set to 1, Microsoft Office will trust all macros and run any code without showing a security\nwarning or requiring user permission.\n\nThis rule looks for registry changes affecting the conditions above.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the user and check if the change was done manually.\n- Verify whether malicious macros were executed after the registry change.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve recently executed Office documents and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity should not happen legitimately. The security team should address any potential benign true\npositives (B-TPs), as this configuration can put the user and the domain at risk.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Reset the registry key value.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Explore using GPOs to manage security settings for Microsoft Office macros.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1112","name":"Modify Registry","reference":"https://attack.mitre.org/techniques/T1112/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1204","name":"User Execution","reference":"https://attack.mitre.org/techniques/T1204/","subtechnique":[{"id":"T1204.002","name":"Malicious File","reference":"https://attack.mitre.org/techniques/T1204/002/"}]}]}],"language":"eql","query":"registry where event.type == \"change\" and\n registry.path : (\n \"HKU\\\\S-1-5-21-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\AccessVBOM\",\n \"HKU\\\\S-1-5-21-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\VbaWarnings\",\n \"HKU\\\\S-1-12-1-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\AccessVBOM\",\n \"HKU\\\\S-1-12-1-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\VbaWarnings\",\n \"\\\\REGISTRY\\\\USER\\\\S-1-5-21-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\AccessVBOM\",\n \"\\\\REGISTRY\\\\USER\\\\S-1-5-21-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\VbaWarnings\",\n \"\\\\REGISTRY\\\\USER\\\\S-1-12-1-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\AccessVBOM\",\n \"\\\\REGISTRY\\\\USER\\\\S-1-12-1-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\VbaWarnings\"\n ) and\n registry.data.strings : (\"0x00000001\", \"1\") and\n process.name : (\"cscript.exe\", \"wscript.exe\", \"mshta.exe\", \"mshta.exe\", \"winword.exe\", \"excel.exe\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."}]},"id":"feeed87c-5e95-4339-aef1-47fd79bcfbe3","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/ff013cb4-274d-434a-96bb-fe15ddd3ae92.json b/fleet-packages/detection-rules-composite/kibana/security_rule/ff013cb4-274d-434a-96bb-fe15ddd3ae92.json new file mode 100644 index 0000000000000..92f3bf182665a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/ff013cb4-274d-434a-96bb-fe15ddd3ae92.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"ff013cb4-274d-434a-96bb-fe15ddd3ae92","versions":[{"name":"Roshal Archive (RAR) or PowerShell File Downloaded from the Internet v100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects a Roshal Archive (RAR) file or PowerShell script downloaded from the internet by an internal host. Gaining initial access to a system and then downloading encoded or encrypted tools to move laterally is a common practice for adversaries as a way to protect their more valuable tools and tactics, techniques, and procedures (TTPs). This may be atypical behavior for a managed network and can be indicative of malware, exfiltration, or command and control.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Threat intel\n\nThis activity has been observed in FIN7 campaigns.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Downloading RAR or PowerShell files from the Internet may be expected for certain systems. This rule should be tailored to either exclude systems as sources or destinations in which this behavior is expected."],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2017/04/fin7-phishing-lnk.html","https://www.justice.gov/opa/press-release/file/1084361/download","https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.protocol:http and\n (url.extension:(ps1 or rar) or url.path:(*.ps1 or *.rar)) and\n not destination.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n ) and\n source.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"url.extension","type":"keyword"},{"ecs":true,"name":"url.path","type":"wildcard"}]},{"name":"Roshal Archive (RAR) or PowerShell File Downloaded from the Internet v100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects a Roshal Archive (RAR) file or PowerShell script downloaded from the internet by an internal host. Gaining initial access to a system and then downloading encoded or encrypted tools to move laterally is a common practice for adversaries as a way to protect their more valuable tools and tactics, techniques, and procedures (TTPs). This may be atypical behavior for a managed network and can be indicative of malware, exfiltration, or command and control.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Threat intel\n\nThis activity has been observed in FIN7 campaigns.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Downloading RAR or PowerShell files from the Internet may be expected for certain systems. This rule should be tailored to either exclude systems as sources or destinations in which this behavior is expected."],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2017/04/fin7-phishing-lnk.html","https://www.justice.gov/opa/press-release/file/1084361/download","https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.protocol:http and\n (url.extension:(ps1 or rar) or url.path:(*.ps1 or *.rar)) and\n not destination.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n ) and\n source.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"url.extension","type":"keyword"},{"ecs":true,"name":"url.path","type":"wildcard"}]},{"name":"Roshal Archive (RAR) or PowerShell File Downloaded from the Internet v100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects a Roshal Archive (RAR) file or PowerShell script downloaded from the internet by an internal host. Gaining initial access to a system and then downloading encoded or encrypted tools to move laterally is a common practice for adversaries as a way to protect their more valuable tools and tactics, techniques, and procedures (TTPs). This may be atypical behavior for a managed network and can be indicative of malware, exfiltration, or command and control.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Threat intel\n\nThis activity has been observed in FIN7 campaigns.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Downloading RAR or PowerShell files from the Internet may be expected for certain systems. This rule should be tailored to either exclude systems as sources or destinations in which this behavior is expected."],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2017/04/fin7-phishing-lnk.html","https://www.justice.gov/opa/press-release/file/1084361/download","https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.protocol:http and\n (url.extension:(ps1 or rar) or url.path:(*.ps1 or *.rar)) and\n not destination.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n ) and\n source.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"url.extension","type":"keyword"},{"ecs":true,"name":"url.path","type":"wildcard"}]}]},"id":"ff013cb4-274d-434a-96bb-fe15ddd3ae92","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/ff4dd44a-0ac6-44c4-8609-3f81bc820f02.json b/fleet-packages/detection-rules-composite/kibana/security_rule/ff4dd44a-0ac6-44c4-8609-3f81bc820f02.json new file mode 100644 index 0000000000000..b055bb3bd1872 --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/ff4dd44a-0ac6-44c4-8609-3f81bc820f02.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"ff4dd44a-0ac6-44c4-8609-3f81bc820f02","versions":[{"name":"Microsoft 365 Exchange Transport Rule Creation v101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a transport rule creation in Microsoft 365. As a best practice, Exchange Online mail transport rules should not be set to forward email to domains outside of your organization. An adversary may create transport rules to exfiltrate data.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A new transport rule may be created by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/new-transportrule?view=exchange-ps","https://docs.microsoft.com/en-us/exchange/security-and-compliance/mail-flow-rules/mail-flow-rules"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"New-TransportRule\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Exchange Transport Rule Creation v101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a transport rule creation in Microsoft 365. As a best practice, Exchange Online mail transport rules should not be set to forward email to domains outside of your organization. An adversary may create transport rules to exfiltrate data.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A new transport rule may be created by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/new-transportrule?view=exchange-ps","https://docs.microsoft.com/en-us/exchange/security-and-compliance/mail-flow-rules/mail-flow-rules"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"New-TransportRule\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"Microsoft 365 Exchange Transport Rule Creation v101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a transport rule creation in Microsoft 365. As a best practice, Exchange Online mail transport rules should not be set to forward email to domains outside of your organization. An adversary may create transport rules to exfiltrate data.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A new transport rule may be created by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/new-transportrule?view=exchange-ps","https://docs.microsoft.com/en-us/exchange/security-and-compliance/mail-flow-rules/mail-flow-rules"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"New-TransportRule\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"ff4dd44a-0ac6-44c4-8609-3f81bc820f02","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/kibana/security_rule/ff9b571e-61d6-4f6c-9561-eb4cca3bafe1.json b/fleet-packages/detection-rules-composite/kibana/security_rule/ff9b571e-61d6-4f6c-9561-eb4cca3bafe1.json new file mode 100644 index 0000000000000..52aba0322c38a --- /dev/null +++ b/fleet-packages/detection-rules-composite/kibana/security_rule/ff9b571e-61d6-4f6c-9561-eb4cca3bafe1.json @@ -0,0 +1 @@ +{"attributes":{"rule_id":"ff9b571e-61d6-4f6c-9561-eb4cca3bafe1","versions":[{"name":"GCP Firewall Rule Deletion v102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a firewall rule is deleted in Google Cloud Platform (GCP) for Virtual Private Cloud (VPC) or App Engine. These firewall rules can be configured to allow or deny connections to or from virtual machine (VM) instances or specific applications. An adversary may delete a firewall rule in order to weaken their target's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Firewall rules may be deleted by system administrators. Verify that the firewall configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/firewalls","https://cloud.google.com/appengine/docs/standard/python/understanding-firewalls"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:(*.compute.firewalls.delete or google.appengine.*.Firewall.Delete*Rule)\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Firewall Rule Deletion v102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a firewall rule is deleted in Google Cloud Platform (GCP) for Virtual Private Cloud (VPC) or App Engine. These firewall rules can be configured to allow or deny connections to or from virtual machine (VM) instances or specific applications. An adversary may delete a firewall rule in order to weaken their target's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Firewall rules may be deleted by system administrators. Verify that the firewall configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/firewalls","https://cloud.google.com/appengine/docs/standard/python/understanding-firewalls"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:(*.compute.firewalls.delete or google.appengine.*.Firewall.Delete*Rule)\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},{"name":"GCP Firewall Rule Deletion v102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a firewall rule is deleted in Google Cloud Platform (GCP) for Virtual Private Cloud (VPC) or App Engine. These firewall rules can be configured to allow or deny connections to or from virtual machine (VM) instances or specific applications. An adversary may delete a firewall rule in order to weaken their target's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Firewall rules may be deleted by system administrators. Verify that the firewall configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/firewalls","https://cloud.google.com/appengine/docs/standard/python/understanding-firewalls"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:(*.compute.firewalls.delete or google.appengine.*.Firewall.Delete*Rule)\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."}]},"id":"ff9b571e-61d6-4f6c-9561-eb4cca3bafe1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-composite/manifest.yml b/fleet-packages/detection-rules-composite/manifest.yml new file mode 100644 index 0000000000000..593bb483cc439 --- /dev/null +++ b/fleet-packages/detection-rules-composite/manifest.yml @@ -0,0 +1,18 @@ +categories: + - security +conditions: + kibana.version: ^8.3.0 +description: Prebuilt detection rules (composite) +format_version: 1.0.0 +icons: + - size: 16x16 + src: /img/sample-logo.svg + type: image/svg+xml +license: basic +name: security_rules_composite +owner: + github: elastic/protections +release: ga +title: Prebuilt detection rules (composite) +type: integration +version: 8.3.2 \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/LICENSE.txt b/fleet-packages/detection-rules-flat/LICENSE.txt new file mode 100644 index 0000000000000..809108b857ffd --- /dev/null +++ b/fleet-packages/detection-rules-flat/LICENSE.txt @@ -0,0 +1,93 @@ +Elastic License 2.0 + +URL: https://www.elastic.co/licensing/elastic-license + +## Acceptance + +By using the software, you agree to all of the terms and conditions below. + +## Copyright License + +The licensor grants you a non-exclusive, royalty-free, worldwide, +non-sublicensable, non-transferable license to use, copy, distribute, make +available, and prepare derivative works of the software, in each case subject to +the limitations and conditions below. + +## Limitations + +You may not provide the software to third parties as a hosted or managed +service, where the service provides users with access to any substantial set of +the features or functionality of the software. + +You may not move, change, disable, or circumvent the license key functionality +in the software, and you may not remove or obscure any functionality in the +software that is protected by the license key. + +You may not alter, remove, or obscure any licensing, copyright, or other notices +of the licensor in the software. Any use of the licensor’s trademarks is subject +to applicable law. + +## Patents + +The licensor grants you a license, under any patent claims the licensor can +license, or becomes able to license, to make, have made, use, sell, offer for +sale, import and have imported the software, in each case subject to the +limitations and conditions in this license. This license does not cover any +patent claims that you cause to be infringed by modifications or additions to +the software. If you or your company make any written claim that the software +infringes or contributes to infringement of any patent, your patent license for +the software granted under these terms ends immediately. If your company makes +such a claim, your patent license ends immediately for work on behalf of your +company. + +## Notices + +You must ensure that anyone who gets a copy of any part of the software from you +also gets a copy of these terms. + +If you modify the software, you must include in any modified copies of the +software prominent notices stating that you have modified the software. + +## No Other Rights + +These terms do not imply any licenses other than those expressly granted in +these terms. + +## Termination + +If you use the software in violation of these terms, such use is not licensed, +and your licenses will automatically terminate. If the licensor provides you +with a notice of your violation, and you cease all violation of this license no +later than 30 days after you receive that notice, your licenses will be +reinstated retroactively. However, if you violate these terms after such +reinstatement, any additional violation of these terms will cause your licenses +to terminate automatically and permanently. + +## No Liability + +*As far as the law allows, the software comes as is, without any warranty or +condition, and the licensor will not be liable to you for any damages arising +out of these terms or the use or nature of the software, under any kind of +legal claim.* + +## Definitions + +The **licensor** is the entity offering these terms, and the **software** is the +software the licensor makes available under these terms, including any portion +of it. + +**you** refers to the individual or entity agreeing to these terms. + +**your company** is any legal entity, sole proprietorship, or other kind of +organization that you work for, plus all organizations that have control over, +are under the control of, or are under common control with that +organization. **control** means ownership of substantially all the assets of an +entity, or the power to direct its management and policies by vote, contract, or +otherwise. Control can be direct or indirect. + +**your licenses** are all the licenses granted to you for the software under +these terms. + +**use** means anything you do with the software requiring one of your licenses. + +**trademark** means trademarks, service marks, and similar rights. diff --git a/fleet-packages/detection-rules-flat/changelog.yml b/fleet-packages/detection-rules-flat/changelog.yml new file mode 100644 index 0000000000000..bb0320a5243f7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/changelog.yml @@ -0,0 +1,6 @@ +# newer versions go on top +- version: "0.0.1" + changes: + - description: Initial draft of the package + type: enhancement + link: https://github.com/elastic/integrations/pull/1 # FIXME Replace with the real PR link diff --git a/fleet-packages/detection-rules-flat/docs/README.md b/fleet-packages/detection-rules-flat/docs/README.md new file mode 100644 index 0000000000000..6c4735aec1564 --- /dev/null +++ b/fleet-packages/detection-rules-flat/docs/README.md @@ -0,0 +1,84 @@ + + + +# New Package + + + +## Data streams + + + + + + + + + + + +## Requirements + +You need Elasticsearch for storing and searching your data and Kibana for visualizing and managing it. +You can use our hosted Elasticsearch Service on Elastic Cloud, which is recommended, or self-manage the Elastic Stack on your own hardware. + + + +## Setup + + + +For step-by-step instructions on how to set up an integration, see the +[Getting started](https://www.elastic.co/guide/en/welcome-to-elastic/current/getting-started-observability.html) guide. + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/img/sample-logo.svg b/fleet-packages/detection-rules-flat/img/sample-logo.svg new file mode 100644 index 0000000000000..6268dd88f3b3d --- /dev/null +++ b/fleet-packages/detection-rules-flat/img/sample-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/img/sample-screenshot.png b/fleet-packages/detection-rules-flat/img/sample-screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..d7a56a3ecc078c38636698cefba33f86291dd178 GIT binary patch literal 18849 zcmeEu^S~#!E#4Tq;}?6chqwB{?k=6jc5D4>l%v(rleJ2Y%tW zDj9g7px}|*e;{M?LDwiK3@FNS(lDRTd-MJYIyUJCN948~OJk1M(DrJyI#iV;P4k~& zFZo35IfQt0RwlUN`48^6(1dv_wm(y1xhEdMld=Y?!%u=fPT_*{3( zwBwz3#qR}_)t>C*jp5@U)Ti~B)Y;qq*TRxZJ7ZRN_^A3TDAEM*@7Ve%(Ro7=1%1B< zVj6GBUTxXev>_^SFA zgKZ=g4aTS}9>Ofj7cSB0WO?gQ)x=+!hs_)b$6#>ScFZ>XAoIX)%Bc|BDC~JFBk0f0 z0NY}6gb)&!qx^FWC(!ji+Kl$V$2|ocA=vN0TM0Y`U?tX+T)c*C zA!IL(T2Vm%MCLa85^if@J@Kkprx8QN5!6eCR@4Oa5S?4-4|ou?90mFCM8D!;n(5xz zO}-*t!TntN>|a$s(kGQg1P-U?hqvGF2_fGvd&~yZ_l3Qf&j~XWa=;>N3#-~#zjzcc z*m18L`A-K2o!d@J>a8SRbm4P&-q1(H>|JgIymDbnJF&@008`=X!P?4DGgZb>voUl^ zNJKgPR4S={)3vuk_{n@=M8q;;aJL>q+VLdTnO=}`&x;1DKjJA3*f*idS{jP5?+;!W zn-^7021Z4zv`Aq`hmX1aid997RNh3fa-@PG(W7TzKa1W&5^y3|lPeETP7j9qXpo4)7%(W0_2 z^Nmq;t@rb1eP3?%kOkH`P%!zTC7ZHjSfNN3*Sb#=3#jB*KpNGNfnRZ{N(6DrW(;B2Bwom<%m?VQP%K+ zsFeF1-(DY}oP@)w^Kw~gPg03q?N;)Ec6^|nikA34T~RynX*z}H>R~qgT$`Zbhn8wzZs$j2fsGN&rOK-mIBBvzD@a8FgbLpL!h5N^u&0wG} zq!#md3MHITv?3@$37J?lc_5*LWJTTjel;IiU-Yq;(g9I^D&KN_NKVS0O~GvB~FzPM6}=4d%fG4Nw4pZshcyLqK@`b8?RhD38haIyr@+8+0r5TC1*C7^WleJ zZN3_ngTD#RQvNL*;qD2H@cBWJbCC#d!}=oKfod5SE9a?!?j%DVt1z@inN}Iy$r+96 zM@P?AC+(`cM;z6J94BYGJ;+P-N#yj$?`G26ydS&OVH?~JY(N4l()Fh+x+DoJ@r<+i zhm^ck@QP`=fLApr62@KyOef~}zuG;(VbDQmw|Wb+oSHSw=%w9R)=et0cY*~ytX)#M zEXlK^p;zM@vTnXn+C1vwP)~TJv|TvDE2($;;EzC5_5IL#H;u z)#CO8)TSzbt8)wHB8$I8KcIojx&GoE)3QNu{CQ+_xBmQ&`mL5-u=BX(hs^hMY^ zae!!*Q;Tr$@(0~GoBJAohGw*d{l8~!aXop87aaSUb2jm)Tk>#$1*cdo5Sl+?oD!l4Og~yX+soottl4 zp4OartUuAN(dD~yLJ}`A1*!D4-|L^hM;`_DM^1KYs-VF(}h(BjRO``b+xV~%O=-)?p z7ciJH7Fnl?V&=ay_AB{oQoa2iR;6$^tiE|-eRCFy|3F@%j#6gUxkZX@?K`F$u#;T< z4IZORpUthmB?U`;zrOkp?P(Rvd5TFRWrBJmVg;KEZvJ+;Q}FRY%QZ?c^&$oPXW+C5 zdN#c>v%U?QuE+hMQdzxS1Q(BT90;29qu#^A?a^)Ui;{TJ;%`nLgm2ew$J4NvREjCJ z$`C7&?tH$CrVG@M3J1-KJw_*9BKeL*JX{ zN+Vg_TXb9^jJO$ZGkXO6BBFDjt~w5`w2TB*z$&1W5Il3IiDs=ZMDt|9iRtKET*wF6 z0Z+|N87p-5Fh)^(*l>OVr5^aY5LW(@PuM>Qo@&)yj6XRkPm1>eTF#Y_c*aRF^ZY5A z9FAU7lKEHG@i{wJMPg;n6z2|69d-)q9@<7t()d-zPy&X zdXG7{Uw{k23)CzzQAXw#iqj<1u~W@K_Ljc#?ukh;fRKHeJ2l~Z+52b2n^bGiDF2oX zm25FLx|4AP8>rAi@koY03lrtS#X?zK591c?2iZ_jjc>0y>q9>fU<08o6zG%z9WK+S zDwZMW4~28wu#ye#V*@#5t^S@NiAA`3{SF$xINmc_WW^u-C9M=H>RQ1>WM=|R!660{ z6E6%DwX`eu<3pkmz7Z=FCRd$(vhDkc3yMnSr)5C*aho)DZ<12$`$TXj<8Z70)|rK7 zXFD8QzksfWZU`qL2K8X{C~TcF{KVW`3Y{IMb&)T9%1V`tv(HY1 z+LXkLyM|3mtLD{x-#hOw-U?sr-iLeHFA|=-sGZ4#hX)atL!a91(tWJc+og&5W}VfZ zpgE7`{5D`~?yGR++y7~xA&eU0N*ZezDjF$> zUeK&1aTFQRg*?v^Z2e7u<`lk$czR6}b6Cl-qA9%A`#A6q0*zyTu)X`3rhjR86NK3= zLdw{+-F}+b2gxd-qF7>Rla}dFkj|L#c|pg5Ni+MRA|BZH(@ME*o<1ijKcoXb%PVfJ ztp_uf=G%kvU((pHcw90Xut=}atA!giM-5By)f40nKp zv7Wdb{;^<}VRvruH~rYr~wEuYY2ov-5Q|p@u3Da9+z7PeIpBAwi?RxnxN3Kt+N9L(LUS%wxY` z>e&1VV;{CYw8DNRlvBH)>!I49SU4R!t3I4=y;mCevPZh!-}~G+F>6hcL_Rli4r zC4(WN)`j$>^S=~GMGR=^)A6wrqi(-x{xK37&Vx!OS6t=KQ2JVZo#GrSODtTe=TVh%*qfF%91nqsMNLNL^Gp|_ zz%I*HUkMQGqb!1eh{{bp|0GSCDbkG_D_d)8<(0r<6-%Qi7qDa7xZjcdZ$?Rth9L!f z$erCcs3<~mtupywbaT8NWZF#v?iZkvqSz3@p`RiXs7P!GUa~-U9hEG(NgI#3BzO-# z!9JWf(;r!*A=@g$f}>wi|6Q@9z8AmYf~x8G%sp>C5cfuJY;hs1o3Ozu^{pH0AFbs%yU)Xy5>Cf?qXiHn*-PAfKDRiy`U0sFSKFsgEZ6_ z9#ma!<#Izr^}_z*>PRSt564u6We*XmZUx^jv*dK; z4zyFZ*ZFSE!00<6!|+#33&R)@RA8V9YRjp$HS9?CGq*xDSDRbX#i;}mateEF{fqTI zt?X}Efkq_Ap*_ETgaikOBbQ|;47}hwX44K`(DUI@C)QiG&6UJ1UmRn*Q@6%e`+x(gpQp74O{;yli8YLCV}qD z4gIyZd_(8ED~WWaeXOb0^r=9=AiDT}by~+$KVF~M{ywbQl zng-h?a_E;yX?DCr4|_h7JMc7>xgWf7Ek-VmH^hCYunVp3{(d{---&%-GZ=rK#V5Jo zJvP8b!2AA5?9)G8gwzB6ze3TU<5*Pqms^Q-?C9-CN~4hb-`U0D@kAkTWn23``cao^ z8IWAp8h7`%ZA+eI?w$sJktq5m>e&0@mQn>2BdpKAxbj1$m$8Z;`!iFvl9($Lb9Ff? zT^6cTZ~HgIeR6R*;G(rzpgsJP41Fx9Df;G6{;k6T(i}&8hX(jHSC@~#X@70h#)g(( z*9vUC+a*b%oAdf1$}Z3NR;|c5nY4^Z51pfqk(tmJbB;Q#ka#tf5eae;-kq$I{xO3<(TI$0lSe-JQzJ*es;il=Kn_?&?E zfLbs{qErPqm)-*ZfwbA*D-shgb|1;X;cH*yA|q8gS=HiosF=-kbdk6--SR+`F^H_` z0*i`J==@XSe=HT;_``G}ulE=H@*3GU*?gVd@h*`eT^GKjI;C@8+h~;(u3bA#b&bN{ zYw>dJ$(;RfHDLlndS`CWOE=g0jOocCc&;w(dOzrLf4-DK*MD@P_;u&CbfMw=#Q-B` zDq8hGwKN-O7(hQA_bP3f5XrZH+@*FGw~ppmDgNWcf|Lf*Pc%e5dw1DcJ1BWm!z7z3 zr^toEU*P(>G#;_1X}Rz(5lbDtCui%hY^d3lm)kw0vyk zX~K4$AG#7cG`6s2%9g9zsaQ9o?;3yzW4Pt!;NlS zzI#G7tiq&@eV&}qDtY(e$1JwscAfle%Al{3>Nr%``n?`Jac^CdOXUbFgI3;m{RkA~ zokl+lxuw9=%W&MmzA+G%ZdFMMP&N2^6BWjG2Lt|xKx)lMCR@b0n+xgw<)&Dwi?}>- z+$_e|@M;uW@3z6)q&L7bYitZ%huzGqH_qHOr&G5o!?(8TJv_MN1ka|&c6_!Q>#PgHSFoPWiLg|k_{ zQd#Zy&BPkU(0OE5S35!B5qb6%T3Wd#J(zBl8dw6I#xIDDF-LBPi-jXv1E?!gE|1OIdTejK)+U3ooC^otSIRsWZf-`&K}6}s!407Y58zH zK(oYx*7sN1O|Z_1YIJS_H$E@DH(hB4QKNCGQT3PTvwYoe2&8WKi5`5tU-r4!>_V3XUT}N)>8V;+z-!@-IGCKiD>E9RC(K`NMx=;Qp zf$2g^t?)zpU0L!BZi(oE#)^Z_biT*Svh>r#%1=O+Wo37G`Q)4@k#Pe?^mgBIugC)8 zyEICH=`{A~^x#X&%tr-$j|(nXrIrGQYNY+C3M+LO;yUU4-|v>a5#P)XYp>_|C0f0n{_p0mvwWmghfd%!Cm}$qBDxOqA3htLs~ghSA1>6^dVgd~ zVHHBBy6;Pp=El;dkTE=ttp~BoOJ$L@EB3Z37T1kTNG3tm4PY5O-7hP5DA$-k=vV&6 z?RiAm;W~*o)R7!x9>u$&@|&D4xMmJ*y+^-6t!F0u8G~78t&Bs#W>w_NbW>W9M3tXWXRf zI86FWVx%iXXh6MJ>dg#?lNu{K@S#nzMIG4PXQd%!Bvc*H0c7F_Y=adptJr*cHevMQ z%?Xu~q8CFw>^L*S_83kVhq=)hf0%_Lq}SE*g(Da_A{kXVZfAd*YCwp~bG32wi&SNM z#QZ7}Ug5-=+s^uqAh_|}gzya<(&E?XAZ%0ybd9nraj?|z1YfPr*{N?Q{ji}YG`T#| z=uwJZHIMlsmevnenT#-)t$L*=2wh|1EYXW?_36TR?L!sUItJVxaC0$Gb|gq4{|4gA z(v0ODFj!T)jc5>65ys)* z7$aBHfbKdz@QJq1b`NT`344*g()$>5*Ey`TPB7WI;|_8o8t9-_4ikFub|I{66>ge> zHA+6onzFKY*eaiA!77SD*^&LyumAR6gSvxY6Q?;!AvI{rZ##!G$%ZfIgce4F`aF;e z?jVh%+B-vj69ei~bh_zA9w}S4B4rzRKQ1~u$gwVu_x5PlRKDXX2(_2Mm7fs%6{SS7Qh1gWT8xaxc=f8`mW38ukIZxwU;lmHABwFSg50*o zrj%f%j~IKR?N5Dxwrq|sTa?!pd{b3sFM&~{4~_^YH4$bI^Fq2W4-y`))^|7fS?i0) zJ&Z9wY!8%l7@gAr`2{fqA;L;ptQR*X2|xUtrT47KK%XN+dydN$*M?65LuXTRabgERR{n>;E;(&vS0_@COY!p<%5LsRqGpER%~YjkSK zwBo9-2|-ZFiU3TT&S+@}3gDT35t0IXTzX@yHA(v>Y8;-mZNySQ&fE7RJ1^tzJfvdApX& z*!+tE)Y{oR%jk8A)3EiI3i*(TOwP!;B3hAOj?KQ6^h-q~1V^166uYS~mH*2Hh*0}r z`R3u1#^LG9IW|^QT^|61H(T1Jz?n;(Z>52lU0BO>Q6*zgpP*gTFk2Uw)!3zt>3F~_ ztil4!R*-j}wjh%&(kSB%}X=u4RbFRp@^l+$SmM@nW9B;yGbf@nasjFMEE{m9Oe

}qal5$moSACwfNXLXG5|3R0AtBcN` z?%yS)&>O>sqxU64U~C3&Q^>z-Zt}WuX4Wh3dKj9EO zfSbV!c3e;EOeKHQmWEw#NM4;*tw-2o@x&kKT?rsmy-F|$jw-F>WgA7?C@{O1qPg*J zf92|RTBMh&ptHADFc{T+cB?+mOj>h2HKgwkxq6w&XBxPc?>=JKvU2K9aU93@vp-R% z{5T=P$9U}AYZ5QU{3%7}YZ+ACWXw#-U zWyxU(OP#Q9-2AeGmCwcp`zWghf2hvsOjWjDQbU?U`v0&a--f1`v0Bd8HLiLmo)PKz5!A1|XVO+89 zm3h2~6yI~cpWor!_yt-?Lt>z`c0a7cJAW)#d8N8nNIf0H<+v;s4{0guDD(?T7Z<~$ zd`$vpZ_QQgFaMT0_d5&+(jwGU?M1FqUu6wjA-9z?mRM}(CmSdK;2e$Na}F-8jbhgN z9)@AIQeghf{xCC^{9P%VdYW1PP#}2BJwWt z0Hd8%st1NK5%h+)UB^mVwh{e#8TIm$xxgGo6I5;e{~VUeeMGRpM_Z%=eH5$X1}?Z5 z`|*_Vp~K&ziz45-Ih9y>EOr(Buy0&n$dbQ4$5eSr=Ti z#~7^n8dmem;$0D4+6eV7&G2D~d@ z+R#u8+nw_N%7_U_1e53P?~&10^m|ZUXrZhVp04lQLsGos%0fRDhS=@>8TOAAxK;Cy z9GZw_1pfSxD5~xoR!INI?tU0wrKDd6^Tv{jL>`Xb49kBaNPlhMaIfh_nq_)zB7NcX z05XeQKz`@BDUx7*i!V~%dc8XQ#ngBw0A2tSr(npSCrNy5Z7>48v&Zz?0{%FRElh_h zN2|?#EhJL5HQMIu6m1=ypTR?tVymHK)xQvS9ir7FzMp?CjlND39PK`od#GytVhZWp zQ1@>MTE1*Ip>hnXSWa?XbMH#708@j12yPbm`JfcqIgmJepn$5YgkJn_%5I)mr`Q(k z-a0yFR3A`houhvf&|wNpIsV{2p%MqhR@`@R(l6`}iufEgI*UxWq~26?WTpZCV{JtG zYL?&#I98fyf_;2S0?_V{=Aa4t^x%vy$pF$_Lh7W2f*~5uPvGYh;vZhMv|u+Z?2t0~ zcYPXdxbg6OS*LUjR_=jLDt)ab6;?g1IuySLG@UE;jLpt-wjLX&RlY>fnd@f&?0NyT zht5vhP^};k6`U76$%&I)iWPNxG6KPjdh`S6>g9GN@;KObQsLG zKyjfrPR0PU1B0a0=)3@9eCDl?mB9rFdlTMtTAeZv2}F*|@JWleq2+H1bt>>x!^wTk z+I)cgsZwzCMwoRpW_*!3IySTQu!`HWugAXe(Ai(a9Rsu;*0#o6torxwNMxPzEAjt` z>70Vw;HCQ?AnP`RKQ;2R8h%;LI#tx^(MO*lMWJe4_?)Q571P`kTmN#(ez21V!<6+S z@Uap+y%#8&cGgdf+E@y$dUx3g#)=#5k31Vqv0p!%L`*=-PiQAiSg-d9lKRZQDuJ-| zA96zwwomG+4}X$vR*IU=NC!vL<`rUTbf_uRJC4FS;k&HtV<=<)p(qymH)=MDV^aqK z#%sid7K|~!H`J!7hRr~Z!emxgWq6#GpQs%c#BM+scvNGz|Gi4G`;8Z~dP8)+51iB8 zw)0fazNz5(iK$LJeC_4e^8&@wT(DZ~~>SStz3P(>V8CLNlZqgv=2K-|Lu~si@XFwMN>QE^k zVS2U_A?Q$?M`NkU}^!M8m%O&T=kW>dG}1s2I~hxp9Y=a=1XX-(fB5) zej3`e5Et~R^r%?CZK0)UZsF_+tSOGIBMdrtMf#oJjGF9U`*P8t>i*TWed$Z2WNUZ* z_1Qw4Yr+Q0@bD?hD0P-^v}?FpPBg~zz5~g@J#J76C695|P>1l;OS8%~hZh5&-9Ji# z50%&56ZK4FC9}{jHL0!=qo9Yd(GGHCEX2|-F(f}q6@NMT4P3rQd{Q!=bz-8N(Z^!N;;ZzAWRf@C?X>mG=_NgyQX_?Jv$m(9$W>P;+e}O|&w&DjbsJPdWp0A2$yLr*!BY73Z z5d*BCaTI)w=sTlofc>n}@v_tSXIK?8(g`G_06u>SD*fOZJ~visq3lBVS2+cf-r$UQ zZ(8A0g&5M$IV7w5nqL(m$VS0X?=yy-e6>S>Ca3wZNT)b{GF39_gJdONflqc-j$b~o z2l@@h{$KVfC)V?#We*)@xYC;L^<@cHo>8axRMbSzw|eYTl|8pkabsQJ(3`z{>5H}c z`psz_Y6t)hvzL^=}P#++XUl6v`-j)SuXd6BynjNZ!&c2hnyE&4*K$nXn31Zk)cm+lx;> zya{T?{MRtSu?^3Y9bS&O$*mW^vRUpv!J3Tz12?3&Y62b_oiZ$24O(75Z)JWb+Rj)ACbK`f<&tSwtT$|Sy z$41kRPiM-jnPY9PKrLyI`pHm6LusMsrO*HpmE){Kp1^u2t%6nW^;GB|!4k!Ik8oav zjM?DBKh9G@W0gEwiU-M}0B)}olvoM71RccgiZBCs)L?q_GX&JDhegx4k2&cNatr5w zU)1#2USb8&`etO5Vk z?0}K+*2*@a5yt*X{qg0@8jEz~jcylVj>-042p1PBnabI#xUiCRD!ouw3?u-wwsqwF z8(@m8-Lk7q@v154g6yvx_tRDa>}oqpVda)wfI9(;ZVGt1v^{<|X?vC_(i@IJC+2I_lusrT=$h zF1lPc*Neb`;Xgrdf`p$w)~MzQW0M3_FYRKu{2$VU82J^B=X1#^<&P$_`=S$Ey04WU zTxG;hrFNLhWC*p+sH3x=JVcBJ9*7>eO20)n671SxQhZQlHMRP8FyO}yai~OTsbms0 zQ3b$C1Cn!>jMHDq{VX1ab^~_Q!z+f75+_AuwiN0*wA_#M#0|rU{+NlB%>Y+TNT0Gj z`3^LKMSJjz2(?lwg~ixDl_5%rzzZ}o_6Fj9e)T7gpH4=BgT1zmwJpC@g(f%&0`}8B z%7Y&qlP3aFmI#nmT`|R3+Lwzp+PLXt|5g%vlY_$fvse7zjus0D0fA##r+i4G4K-2Y zC#H95NGoYfWP#ZF_v$^Li{PZpm}fc&)aL?5doPcb835Cr6`T+EzzcEvLtmXcbAb<^ zw!_Zgk6Az7YA@*vb)(G{_W-B|zrf76z^`X%jOgqIIaqi~5nUup3vugzzg&rA^w(zR z+qCzvIV~nGR=47pDOcNTzuBw#5a=<=DMvGa)g zPw$^pmq9Fg&b#BZrPSoml(149rZS!fioV*Dy$z440U3MXDJmI?RZqLy0}IKSxN)o( z8+8wIZs#q(|KTg6y;Z(=96>xfpUsr@SP}I^v zN^R;ZVrDaWmNrM5-<X@k6JyjvA3;jHhma|Y|7!Vk& zgf(UK_6~cC;!|b!YTjke=nBiUqQdb#I9TY}!s5P)H+^c;9cW(QO8O%n5J^8Xfktd*qrn)+?-gP`m%B&q zi^}7jKm`yMW8ITFOMN#!QIB6$SWx*75tnCMaNg*_J*WuwBh~AT>0($nS8%&zmFQDp z$dL65niDtTV%!Kg1`6epWoQGNG`$`doy;Zjaa`keyL0F6iJMae6FIgnhAfzU%m@V+ zm5rQihLwS~b6{-bVR1ZSzBI7(Yj+V6T-8V*7I`ptWArGdy~8pnV>fALpi~NQLZ7;^ zpaj35=md<~-(tNmF69UX3?ua}A7UIn)q5i1iPYEGlhYSbkfeX`5epkxtzk3Qbu| zlgA`7ts%IvF4HJ}-98akyRnjCo{u-`A4&b+r?s|o`4wdYAHs-yh91p$7C_|+EdYH5 z10`!*=n+W9g>V&dfU1H!J}ASZi&-?`2IlDOAHnu306rD`y>jT)4^@S(X4XhN2{g9i zj-ym98+RT|d0ejIFJCM5>S{mT-8uGmRRqkJ3sMO_AQDrv77Q zv$t>zaVpVF6eBguE%9M2u?E-Oleft8z5+~W`G}KXD(Yc;7m4{Op>Le(k`g1UK7(1# zt6g}$n=Tdn{T4pu>v!c;xRCd_WI$Ali13x=U_0T!Ga-U~9W88q-lU+RLn2`N8Ouho z^0@SvC>$DguHWx)?^*ms-{PVq%dn(U3vrLj9zITDqQZ`H>Wsp@Gf%}SG=m)Vh}F$ztQAbwVGdDgd!28j&yX9wLW&s! zNR~6`nYg;ULAq8zi<;gUchAV5ib67Y##l2 zy+%gaD(|~G4@||{A;TYDSoS>q2o{t23t-^!NDSDEm8j3ao7Ei>KYLEpb$jz}7ciAM zD}trDN+AVVT_lXW<++~>8>Cj8fzJo@R;>%nGq)6+w?(#mNc#1J4W+!hA}?g$0Xqo? zn67qJmss)e%k(xO*&K@z6+}nHA(lCkb6n-|{pSztys$8HiOWTVR)tCO*Q9~if%3n7`uxGzE+OCu zwcVV|tgQdq60952$>85-GHk$lwM(uI+CU1?i{sVnKd0+UNq#eSSKjUKfDDgLnBG1y z^v?f#MRFkph~TgkoKBvM`L_~we8__xpLcjh`GwV|87q`vazJq?SX=mXhdvK>VqUf~ z4sYoTIpt5S)KrE-?>&=cRoBumD7;b5pq!Y07)#I$`)<@U+mo*dE*P~773p*u^6waO z2#thJahX_ySlYMpjx%h<)i43ao~Is`^Ya zMNZkuChEA7+ZJe6$>-C*dzTYf3#1SY82yFG?S&Q)5rTbKS-XLjckTLEc7>^sFcntQ zBeNXCSg&q1N3Bi^4zlQ%mcEBQ%2ab$?(;t-$HYd2%cnX$uuwU#I_6D3($m zR(>gHzM9ODf;r8b0l5LuEIQVZiQ0-|3Y_xzJkZc*CD=bPJ+&J+>>se%D4uTq?Ny{l z0Z5~og*Wa1O&anlcRWu_%o)(x?IZ0CfUNk_R-ik>GyvdFmpu1wHZaKTDGhL zqxsji)n<+)VKbV0_BRq9E;Kb`f=&vn(BK0Ba-gL?ZN;^^b3YFg6R=!q#zM;tcX0dM zdy5PPx@6pJPXHzH7$dGjM|6@6777nXPWV;CIQdNf(*Znv)sMy&Xcq> zhCq+6h6&v8<0}vd2(sKqU3j>fr7&#Xy%qZHcMU3m{wld^Nstkz8GagB?Y=SI&H z&{&BSA-|(i35$9(l6LpFyLm$0M0fK`Dz!~ezL?yEInsXAFR!bHe;ZL>Gd(#Hv?<$%`^b)oi?x%(jkylCPb=juPlF znMo&o961=NZ_$gd{xp1ZY2dNDOS!=XVj!M^A z+$z`EK4v=m{Bs{&I4W)({`&<5*^BV#z{IBAI_d+9Qx;~ zby?2zEjzUUeZWBDo5cz>%;z||z)<+6UtC)y60yD5J5`oo_zSM;l21@CY<0_|)NME5 zs)kHCMBa5YzB#N=W2aR?y9((~WuYwwf+HAc2mvU>NYlxOTvGf^Ye3za?*f-qUs^`a zT3>RPh9*Jf%3*bf|kqtnD_Buxv!<9N>BbuD#uYv-q^ z%RDnd7a3O4M9Y~TNISS@9K}JDkdg@>x8E6@n8jF=6qiDV+}{!V)(o?ykcr0sxBGEx zo!X;pc=r{H^vw6ztV5VZXBa4~(ujB$rZQ|AaGN@J7#q%2nU9gJ)g6dcj}zYB1& z@iFE0vMQVxa|v7tDHS$gwX$Ihc#M^DXRC>J@Zk?dC(3uB_s~*W&m-01DFMQGWjj5x z5po1@1gPl!v1Yra@qPG{D;$bYLM3qOwpl~7f~l)#n< zP+6`!NYe3EE~4RFR#_e=7YctPRBt6$He@`%e5m}f$M%yzC2S0<1}hRPjO>HJY~ z*dx(nbMbjv*;o&k{qzBdF|lS;UNVKziV=gbLq}UOCwr8GT5E9oRYQ}+>DhbQ1R=lj zgcNJN8|D)$Mx3#c+t@lhqcDUnHGVt0&EyQ{b5)=52B(VTzw=pQ^ba3`JB@BU^lS`_ zJEiLzgU#Acd_!}FMxCWC**FP^i#P}bYzNs78)#uSejEtYLbG>JJ7Igtho2oKQ;XW~ z4eMGO+t!_;G^V6c&R`5Tg+Pz2ToN(aybq4Q0ssie_{`t*DO%V7FaZ`{MBobFc9|pV z70o5ayHGJo9$$&Pgbs)pWNzduAcbh?~U?_P)(ve0S*3H%eNF&a5XR=!J#4c z;t992n7ZJr{*%`^dU1d-ALE8!3i#v;3r4r%j+JFCe=%3Vj=8{aXe zs)jrcUBZ=;LudcTUXj2ub>K5!{HHFHJ}Trx(PYugbQ8yK7&sqX;(;|UWjk3tGs3zuceeX)i4i_jA8Qz2Bc%DxN8 zXw!$+9jBtEHd1y90bYG4f8DcJM)Ab!M39tH5zz94*MAvnhA377@buNupSOUU3j8~> zd6&hk^ENRCp9T?_QUHk<=(&9Q^MJ^pi;nKOYNR@?L=RCSmKMJ5UQJQ`X!i~(gD*P! zs`RobzJG3Ra_Pg+WZUXUmMU$ilpwfcEti6)mw(~MZ0q!^sza>#jv!-+7B6F3QuMWg zVO!rXwD+lF1BBTito?ml-CV3vxuek~TKuOX^N6sol$v*{_%nAuD7i81eXm^Lz(Z~I z2Xj_Dts#G0&C;PV_Wkq*1QvB7+Post4={v;gk7b9u%#DC_bh(iJm$rqog^{JEx6NE zrs5^2SEL$|98#2WV#iG@L6cq|)SuTMSfGocPl65wUd^|5Lbpnb(;t>-Qu2jvANLgv zdte0vED-3C@^BdyHWLL(7{G$WA02z@JG!T-U^Q7HZ(7Bs&vchkh(p&}KvnS{MG^i6 z4r){gJp9p7WyWOEiKA2Cm6EXIn&&gk|Fc6^78OpPrX4ExCFE=SD$xcH;C2eB^{XTI zaxz_Cef*Yj==w_i_BTGXP;8C&f? z*QEM>={jFM8)lWAR870pG4XEWsl%%K|82S5b=9hVz7p_6i-d(Iyvq76&a#PV zR;VbQV|n?mg}&(ehClg%tK%IjgtnTR-u)lxH06XxXqH0soAZbB_Rm)XX=6Nge1uoG7 z9vQM_S~2h53n|W`y{{R9+=08rv~MohI_v4-BU^7fZ0-A}#b5{AOSTJm+(J;9yw%pD zX6u62GJ&@HKX5zQwq~j8T!Hrv-Mk^QSB5cu09L03{ToDO7jikM0WAcsjW>D}^jqCF zT0DEZ@K^KO_MD*%M!+V)lGVU6?LpX)eQVXEmq}R`NIJv;kBitJ!nW?0OxTVlu2ADf zE{A!*0g3%nwVcBD+AgT5bGx@WOnQk{zRpiZ4HhP`3BF%N|HdqPbbiV5)7x)kzC3ID zZ;27>0^mrMgWc7evsbQY`l`l})wr+e;=8U_!2&B77;1qL!N8y)eTJ2lf#CvhR~!Qa mc;sM|90DP5A*JW%f2r=u1xt!e4gwD_V(@hJb6Mw<&;$SznOm^{ literal 0 HcmV?d00001 diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/000047bb-b27a-47ec-8b62-ef1a5d2c9e19:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/000047bb-b27a-47ec-8b62-ef1a5d2c9e19:102.0.0.json new file mode 100644 index 0000000000000..7e73fde9a7196 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/000047bb-b27a-47ec-8b62-ef1a5d2c9e19:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Modify an Okta Policy Rule v102.0.0","rule_id":"000047bb-b27a-47ec-8b62-ef1a5d2c9e19:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to modify a rule within an Okta policy. An adversary may attempt to modify an Okta policy rule in order to weaken an organization's security controls.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Okta MFA rules are regularly modified in your organization."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/Security_Policies.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.rule.update\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"000047bb-b27a-47ec-8b62-ef1a5d2c9e19:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/000047bb-b27a-47ec-8b62-ef1a5d2c9e19:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/000047bb-b27a-47ec-8b62-ef1a5d2c9e19:102.0.1.json new file mode 100644 index 0000000000000..d614ce6735031 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/000047bb-b27a-47ec-8b62-ef1a5d2c9e19:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Modify an Okta Policy Rule v102.0.1","rule_id":"000047bb-b27a-47ec-8b62-ef1a5d2c9e19:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to modify a rule within an Okta policy. An adversary may attempt to modify an Okta policy rule in order to weaken an organization's security controls.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Okta MFA rules are regularly modified in your organization."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/Security_Policies.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.rule.update\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"000047bb-b27a-47ec-8b62-ef1a5d2c9e19:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/000047bb-b27a-47ec-8b62-ef1a5d2c9e19:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/000047bb-b27a-47ec-8b62-ef1a5d2c9e19:102.0.2.json new file mode 100644 index 0000000000000..740bfea67c688 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/000047bb-b27a-47ec-8b62-ef1a5d2c9e19:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Modify an Okta Policy Rule v102.0.2","rule_id":"000047bb-b27a-47ec-8b62-ef1a5d2c9e19:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to modify a rule within an Okta policy. An adversary may attempt to modify an Okta policy rule in order to weaken an organization's security controls.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Okta MFA rules are regularly modified in your organization."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/Security_Policies.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.rule.update\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"000047bb-b27a-47ec-8b62-ef1a5d2c9e19:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/00140285-b827-4aee-aa09-8113f58a08f3:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/00140285-b827-4aee-aa09-8113f58a08f3:102.0.0.json new file mode 100644 index 0000000000000..041439eab0b20 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/00140285-b827-4aee-aa09-8113f58a08f3:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Credential Access via Windows Utilities v102.0.0","rule_id":"00140285-b827-4aee-aa09-8113f58a08f3:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of known Windows utilities often abused to dump LSASS memory or the Active Directory database (NTDS.dit) in preparation for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Credential Access via Windows Utilities\n\nLocal Security Authority Server Service (LSASS) is a process in Microsoft Windows operating systems that is responsible\nfor enforcing security policy on the system. It verifies users logging on to a Windows computer or server, handles\npassword changes, and creates access tokens.\n\nThe `Ntds.dit` file is a database that stores Active Directory data, including information about user objects, groups, and\ngroup membership.\n\nThis rule looks for the execution of utilities that can extract credential data from the LSASS memory and Active\nDirectory `Ntds.dit` file.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the command line to identify what information was targeted.\n- Identify the target computer and its role in the IT environment.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently malicious\nmust be monitored by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the host is a domain controller (DC):\n - Activate your incident response plan for total Active Directory compromise.\n - Review the privileges assigned to users that can access the DCs, to ensure that the least privilege principle is\n being followed and to reduce the attack surface.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://lolbas-project.github.io/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"},{"id":"T1003.003","name":"NTDS","reference":"https://attack.mitre.org/techniques/T1003/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n/* update here with any new lolbas with dump capability */\n(process.pe.original_file_name == \"procdump\" and process.args : \"-ma\") or\n(process.name : \"ProcessDump.exe\" and not process.parent.executable regex~ \"\"\"C:\\\\Program Files( \\(x86\\))?\\\\Cisco Systems\\\\.*\"\"\") or\n(process.pe.original_file_name == \"WriteMiniDump.exe\" and not process.parent.executable regex~ \"\"\"C:\\\\Program Files( \\(x86\\))?\\\\Steam\\\\.*\"\"\") or\n(process.pe.original_file_name == \"RUNDLL32.EXE\" and (process.args : \"MiniDump*\" or process.command_line : \"*comsvcs.dll*#24*\")) or\n(process.pe.original_file_name == \"RdrLeakDiag.exe\" and process.args : \"/fullmemdmp\") or\n(process.pe.original_file_name == \"SqlDumper.exe\" and process.args : \"0x01100*\") or\n(process.pe.original_file_name == \"TTTracer.exe\" and process.args : \"-dumpFull\" and process.args : \"-attach\") or\n(process.pe.original_file_name == \"ntdsutil.exe\" and process.args : \"create*full*\") or\n(process.pe.original_file_name == \"diskshadow.exe\" and process.args : \"/s\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"00140285-b827-4aee-aa09-8113f58a08f3:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/00140285-b827-4aee-aa09-8113f58a08f3:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/00140285-b827-4aee-aa09-8113f58a08f3:102.0.1.json new file mode 100644 index 0000000000000..4bb1bd5cd3e2f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/00140285-b827-4aee-aa09-8113f58a08f3:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Credential Access via Windows Utilities v102.0.1","rule_id":"00140285-b827-4aee-aa09-8113f58a08f3:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of known Windows utilities often abused to dump LSASS memory or the Active Directory database (NTDS.dit) in preparation for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Credential Access via Windows Utilities\n\nLocal Security Authority Server Service (LSASS) is a process in Microsoft Windows operating systems that is responsible\nfor enforcing security policy on the system. It verifies users logging on to a Windows computer or server, handles\npassword changes, and creates access tokens.\n\nThe `Ntds.dit` file is a database that stores Active Directory data, including information about user objects, groups, and\ngroup membership.\n\nThis rule looks for the execution of utilities that can extract credential data from the LSASS memory and Active\nDirectory `Ntds.dit` file.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the command line to identify what information was targeted.\n- Identify the target computer and its role in the IT environment.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently malicious\nmust be monitored by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the host is a domain controller (DC):\n - Activate your incident response plan for total Active Directory compromise.\n - Review the privileges assigned to users that can access the DCs, to ensure that the least privilege principle is\n being followed and to reduce the attack surface.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://lolbas-project.github.io/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"},{"id":"T1003.003","name":"NTDS","reference":"https://attack.mitre.org/techniques/T1003/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n/* update here with any new lolbas with dump capability */\n(process.pe.original_file_name == \"procdump\" and process.args : \"-ma\") or\n(process.name : \"ProcessDump.exe\" and not process.parent.executable regex~ \"\"\"C:\\\\Program Files( \\(x86\\))?\\\\Cisco Systems\\\\.*\"\"\") or\n(process.pe.original_file_name == \"WriteMiniDump.exe\" and not process.parent.executable regex~ \"\"\"C:\\\\Program Files( \\(x86\\))?\\\\Steam\\\\.*\"\"\") or\n(process.pe.original_file_name == \"RUNDLL32.EXE\" and (process.args : \"MiniDump*\" or process.command_line : \"*comsvcs.dll*#24*\")) or\n(process.pe.original_file_name == \"RdrLeakDiag.exe\" and process.args : \"/fullmemdmp\") or\n(process.pe.original_file_name == \"SqlDumper.exe\" and process.args : \"0x01100*\") or\n(process.pe.original_file_name == \"TTTracer.exe\" and process.args : \"-dumpFull\" and process.args : \"-attach\") or\n(process.pe.original_file_name == \"ntdsutil.exe\" and process.args : \"create*full*\") or\n(process.pe.original_file_name == \"diskshadow.exe\" and process.args : \"/s\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"00140285-b827-4aee-aa09-8113f58a08f3:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/00140285-b827-4aee-aa09-8113f58a08f3:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/00140285-b827-4aee-aa09-8113f58a08f3:102.0.2.json new file mode 100644 index 0000000000000..1cb645e0aa4b5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/00140285-b827-4aee-aa09-8113f58a08f3:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Credential Access via Windows Utilities v102.0.2","rule_id":"00140285-b827-4aee-aa09-8113f58a08f3:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of known Windows utilities often abused to dump LSASS memory or the Active Directory database (NTDS.dit) in preparation for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Credential Access via Windows Utilities\n\nLocal Security Authority Server Service (LSASS) is a process in Microsoft Windows operating systems that is responsible\nfor enforcing security policy on the system. It verifies users logging on to a Windows computer or server, handles\npassword changes, and creates access tokens.\n\nThe `Ntds.dit` file is a database that stores Active Directory data, including information about user objects, groups, and\ngroup membership.\n\nThis rule looks for the execution of utilities that can extract credential data from the LSASS memory and Active\nDirectory `Ntds.dit` file.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the command line to identify what information was targeted.\n- Identify the target computer and its role in the IT environment.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently malicious\nmust be monitored by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the host is a domain controller (DC):\n - Activate your incident response plan for total Active Directory compromise.\n - Review the privileges assigned to users that can access the DCs, to ensure that the least privilege principle is\n being followed and to reduce the attack surface.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://lolbas-project.github.io/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"},{"id":"T1003.003","name":"NTDS","reference":"https://attack.mitre.org/techniques/T1003/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n/* update here with any new lolbas with dump capability */\n(process.pe.original_file_name == \"procdump\" and process.args : \"-ma\") or\n(process.name : \"ProcessDump.exe\" and not process.parent.executable regex~ \"\"\"C:\\\\Program Files( \\(x86\\))?\\\\Cisco Systems\\\\.*\"\"\") or\n(process.pe.original_file_name == \"WriteMiniDump.exe\" and not process.parent.executable regex~ \"\"\"C:\\\\Program Files( \\(x86\\))?\\\\Steam\\\\.*\"\"\") or\n(process.pe.original_file_name == \"RUNDLL32.EXE\" and (process.args : \"MiniDump*\" or process.command_line : \"*comsvcs.dll*#24*\")) or\n(process.pe.original_file_name == \"RdrLeakDiag.exe\" and process.args : \"/fullmemdmp\") or\n(process.pe.original_file_name == \"SqlDumper.exe\" and process.args : \"0x01100*\") or\n(process.pe.original_file_name == \"TTTracer.exe\" and process.args : \"-dumpFull\" and process.args : \"-attach\") or\n(process.pe.original_file_name == \"ntdsutil.exe\" and process.args : \"create*full*\") or\n(process.pe.original_file_name == \"diskshadow.exe\" and process.args : \"/s\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"00140285-b827-4aee-aa09-8113f58a08f3:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0022d47d-39c7-4f69-a232-4fe9dc7a3acd:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0022d47d-39c7-4f69-a232-4fe9dc7a3acd:102.0.0.json new file mode 100644 index 0000000000000..34b2375ea8939 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0022d47d-39c7-4f69-a232-4fe9dc7a3acd:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"System Shells via Services v102.0.0","rule_id":"0022d47d-39c7-4f69-a232-4fe9dc7a3acd:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Windows services typically run as SYSTEM and can be used as a privilege escalation opportunity. Malware or penetration testers may run a shell as a service to gain SYSTEM permissions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating System Shells via Services\n\nAttackers may configure existing services or create new ones to execute system shells to elevate their privileges from\nadministrator to SYSTEM. They can also configure services to execute these shells with persistence payloads.\n\nThis rule looks for system shells being spawned by `services.exe`, which is compatible with the above behavior.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify how the service was created or modified. Look for registry changes events or Windows events related to\nservice activities (for example, 4697 and/or 7045).\n - Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Check for commands executed under the spawned shell.\n\n### False positive analysis\n\n- This activity should not happen legitimately. The security team should address any potential benign true positive\n(B-TP), as this configuration can put the user and the domain at risk.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Delete the service or restore it to the original configuration.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"services.exe\" and\n process.name : (\"cmd.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and\n\n /* Third party FP's */\n not process.args : \"NVDisplay.ContainerLocalSystem\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"0022d47d-39c7-4f69-a232-4fe9dc7a3acd:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0022d47d-39c7-4f69-a232-4fe9dc7a3acd:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0022d47d-39c7-4f69-a232-4fe9dc7a3acd:102.0.1.json new file mode 100644 index 0000000000000..8cb6b01eee54e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0022d47d-39c7-4f69-a232-4fe9dc7a3acd:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"System Shells via Services v102.0.1","rule_id":"0022d47d-39c7-4f69-a232-4fe9dc7a3acd:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Windows services typically run as SYSTEM and can be used as a privilege escalation opportunity. Malware or penetration testers may run a shell as a service to gain SYSTEM permissions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating System Shells via Services\n\nAttackers may configure existing services or create new ones to execute system shells to elevate their privileges from\nadministrator to SYSTEM. They can also configure services to execute these shells with persistence payloads.\n\nThis rule looks for system shells being spawned by `services.exe`, which is compatible with the above behavior.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify how the service was created or modified. Look for registry changes events or Windows events related to\nservice activities (for example, 4697 and/or 7045).\n - Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Check for commands executed under the spawned shell.\n\n### False positive analysis\n\n- This activity should not happen legitimately. The security team should address any potential benign true positive\n(B-TP), as this configuration can put the user and the domain at risk.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Delete the service or restore it to the original configuration.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"services.exe\" and\n process.name : (\"cmd.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and\n\n /* Third party FP's */\n not process.args : \"NVDisplay.ContainerLocalSystem\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"0022d47d-39c7-4f69-a232-4fe9dc7a3acd:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0022d47d-39c7-4f69-a232-4fe9dc7a3acd:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0022d47d-39c7-4f69-a232-4fe9dc7a3acd:102.0.2.json new file mode 100644 index 0000000000000..8b5a997041407 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0022d47d-39c7-4f69-a232-4fe9dc7a3acd:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"System Shells via Services v102.0.2","rule_id":"0022d47d-39c7-4f69-a232-4fe9dc7a3acd:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Windows services typically run as SYSTEM and can be used as a privilege escalation opportunity. Malware or penetration testers may run a shell as a service to gain SYSTEM permissions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating System Shells via Services\n\nAttackers may configure existing services or create new ones to execute system shells to elevate their privileges from\nadministrator to SYSTEM. They can also configure services to execute these shells with persistence payloads.\n\nThis rule looks for system shells being spawned by `services.exe`, which is compatible with the above behavior.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify how the service was created or modified. Look for registry changes events or Windows events related to\nservice activities (for example, 4697 and/or 7045).\n - Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Check for commands executed under the spawned shell.\n\n### False positive analysis\n\n- This activity should not happen legitimately. The security team should address any potential benign true positive\n(B-TP), as this configuration can put the user and the domain at risk.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Delete the service or restore it to the original configuration.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"services.exe\" and\n process.name : (\"cmd.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and\n\n /* Third party FP's */\n not process.args : \"NVDisplay.ContainerLocalSystem\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"0022d47d-39c7-4f69-a232-4fe9dc7a3acd:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0136b315-b566-482f-866c-1d8e2477ba16:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0136b315-b566-482f-866c-1d8e2477ba16:101.0.0.json new file mode 100644 index 0000000000000..90b7e56db6e10 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0136b315-b566-482f-866c-1d8e2477ba16:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 User Restricted from Sending Email v101.0.0","rule_id":"0136b315-b566-482f-866c-1d8e2477ba16:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user has been restricted from sending email due to exceeding sending limits of the service policies per the Security Compliance Center.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["A user sending emails using personal distribution folders may trigger the event."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/cloud-app-security/anomaly-detection-policy","https://docs.microsoft.com/en-us/cloud-app-security/policy-template-reference"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:SecurityComplianceCenter and event.category:web and event.action:\"User restricted from sending email\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"0136b315-b566-482f-866c-1d8e2477ba16:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0136b315-b566-482f-866c-1d8e2477ba16:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0136b315-b566-482f-866c-1d8e2477ba16:101.0.1.json new file mode 100644 index 0000000000000..57cbbf3d0e981 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0136b315-b566-482f-866c-1d8e2477ba16:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 User Restricted from Sending Email v101.0.1","rule_id":"0136b315-b566-482f-866c-1d8e2477ba16:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user has been restricted from sending email due to exceeding sending limits of the service policies per the Security Compliance Center.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["A user sending emails using personal distribution folders may trigger the event."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/cloud-app-security/anomaly-detection-policy","https://docs.microsoft.com/en-us/cloud-app-security/policy-template-reference"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:SecurityComplianceCenter and event.category:web and event.action:\"User restricted from sending email\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"0136b315-b566-482f-866c-1d8e2477ba16:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0136b315-b566-482f-866c-1d8e2477ba16:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0136b315-b566-482f-866c-1d8e2477ba16:101.0.2.json new file mode 100644 index 0000000000000..dfbf1dd47ae2c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0136b315-b566-482f-866c-1d8e2477ba16:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 User Restricted from Sending Email v101.0.2","rule_id":"0136b315-b566-482f-866c-1d8e2477ba16:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user has been restricted from sending email due to exceeding sending limits of the service policies per the Security Compliance Center.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["A user sending emails using personal distribution folders may trigger the event."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/cloud-app-security/anomaly-detection-policy","https://docs.microsoft.com/en-us/cloud-app-security/policy-template-reference"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:SecurityComplianceCenter and event.category:web and event.action:\"User restricted from sending email\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"0136b315-b566-482f-866c-1d8e2477ba16:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/015cca13-8832-49ac-a01b-a396114809f6:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/015cca13-8832-49ac-a01b-a396114809f6:101.0.0.json new file mode 100644 index 0000000000000..07ce074aab0c9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/015cca13-8832-49ac-a01b-a396114809f6:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Redshift Cluster Creation v101.0.0","rule_id":"015cca13-8832-49ac-a01b-a396114809f6:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an Amazon Redshift cluster. Unexpected creation of this cluster by a non-administrative user may indicate a permission or role issue with current users. If unexpected, the resource may not properly be configured and could introduce security vulnerabilities.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Valid clusters may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Cluster creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/redshift/latest/APIReference/API_CreateCluster.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:redshift.amazonaws.com and event.action:CreateCluster and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"015cca13-8832-49ac-a01b-a396114809f6:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/015cca13-8832-49ac-a01b-a396114809f6:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/015cca13-8832-49ac-a01b-a396114809f6:101.0.1.json new file mode 100644 index 0000000000000..700102f69197f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/015cca13-8832-49ac-a01b-a396114809f6:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Redshift Cluster Creation v101.0.1","rule_id":"015cca13-8832-49ac-a01b-a396114809f6:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an Amazon Redshift cluster. Unexpected creation of this cluster by a non-administrative user may indicate a permission or role issue with current users. If unexpected, the resource may not properly be configured and could introduce security vulnerabilities.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Valid clusters may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Cluster creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/redshift/latest/APIReference/API_CreateCluster.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:redshift.amazonaws.com and event.action:CreateCluster and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"015cca13-8832-49ac-a01b-a396114809f6:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/015cca13-8832-49ac-a01b-a396114809f6:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/015cca13-8832-49ac-a01b-a396114809f6:101.0.2.json new file mode 100644 index 0000000000000..2b31d4908b771 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/015cca13-8832-49ac-a01b-a396114809f6:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Redshift Cluster Creation v101.0.2","rule_id":"015cca13-8832-49ac-a01b-a396114809f6:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an Amazon Redshift cluster. Unexpected creation of this cluster by a non-administrative user may indicate a permission or role issue with current users. If unexpected, the resource may not properly be configured and could introduce security vulnerabilities.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Valid clusters may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Cluster creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/redshift/latest/APIReference/API_CreateCluster.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:redshift.amazonaws.com and event.action:CreateCluster and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"015cca13-8832-49ac-a01b-a396114809f6:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/027ff9ea-85e7-42e3-99d2-bbb7069e02eb:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/027ff9ea-85e7-42e3-99d2-bbb7069e02eb:100.0.0.json new file mode 100644 index 0000000000000..27d719cba37a8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/027ff9ea-85e7-42e3-99d2-bbb7069e02eb:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Cookies Theft via Browser Debugging v100.0.0","rule_id":"027ff9ea-85e7-42e3-99d2-bbb7069e02eb:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a Chromium based browser with the debugging process argument, which may indicate an attempt to steal authentication cookies. An adversary may steal web application or service session cookies and use them to gain access web applications or Internet services as an authenticated user without needing credentials.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Developers performing browsers plugin or extension debugging."],"from":"now-9m","max_signals":33,"references":["https://github.com/defaultnamehere/cookie_crimes","https://embracethered.com/blog/posts/2020/cookie-crimes-on-mirosoft-edge/","https://github.com/rapid7/metasploit-framework/blob/master/documentation/modules/post/multi/gather/chrome_cookies.md","https://posts.specterops.io/hands-in-the-cookie-jar-dumping-cookies-with-chromiums-remote-debugger-port-34c4f468844e"],"tags":["Elastic","Host","Linux","Windows","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1539","name":"Steal Web Session Cookie","reference":"https://attack.mitre.org/techniques/T1539/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\", \"info\") and\n process.name in (\n \"Microsoft Edge\",\n \"chrome.exe\",\n \"Google Chrome\",\n \"google-chrome-stable\",\n \"google-chrome-beta\",\n \"google-chrome\",\n \"msedge.exe\") and\n process.args : (\"--remote-debugging-port=*\",\n \"--remote-debugging-targets=*\",\n \"--remote-debugging-pipe=*\") and\n process.args : \"--user-data-dir=*\" and not process.args:\"--remote-debugging-port=0\"\n","type":"eql","index":["auditbeat-*","winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"027ff9ea-85e7-42e3-99d2-bbb7069e02eb:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/027ff9ea-85e7-42e3-99d2-bbb7069e02eb:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/027ff9ea-85e7-42e3-99d2-bbb7069e02eb:100.0.1.json new file mode 100644 index 0000000000000..e7ed5de4dd521 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/027ff9ea-85e7-42e3-99d2-bbb7069e02eb:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Cookies Theft via Browser Debugging v100.0.1","rule_id":"027ff9ea-85e7-42e3-99d2-bbb7069e02eb:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a Chromium based browser with the debugging process argument, which may indicate an attempt to steal authentication cookies. An adversary may steal web application or service session cookies and use them to gain access web applications or Internet services as an authenticated user without needing credentials.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Developers performing browsers plugin or extension debugging."],"from":"now-9m","max_signals":33,"references":["https://github.com/defaultnamehere/cookie_crimes","https://embracethered.com/blog/posts/2020/cookie-crimes-on-mirosoft-edge/","https://github.com/rapid7/metasploit-framework/blob/master/documentation/modules/post/multi/gather/chrome_cookies.md","https://posts.specterops.io/hands-in-the-cookie-jar-dumping-cookies-with-chromiums-remote-debugger-port-34c4f468844e"],"tags":["Elastic","Host","Linux","Windows","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1539","name":"Steal Web Session Cookie","reference":"https://attack.mitre.org/techniques/T1539/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\", \"info\") and\n process.name in (\n \"Microsoft Edge\",\n \"chrome.exe\",\n \"Google Chrome\",\n \"google-chrome-stable\",\n \"google-chrome-beta\",\n \"google-chrome\",\n \"msedge.exe\") and\n process.args : (\"--remote-debugging-port=*\",\n \"--remote-debugging-targets=*\",\n \"--remote-debugging-pipe=*\") and\n process.args : \"--user-data-dir=*\" and not process.args:\"--remote-debugging-port=0\"\n","type":"eql","index":["auditbeat-*","winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"027ff9ea-85e7-42e3-99d2-bbb7069e02eb:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/027ff9ea-85e7-42e3-99d2-bbb7069e02eb:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/027ff9ea-85e7-42e3-99d2-bbb7069e02eb:100.0.2.json new file mode 100644 index 0000000000000..a519893d84c90 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/027ff9ea-85e7-42e3-99d2-bbb7069e02eb:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Cookies Theft via Browser Debugging v100.0.2","rule_id":"027ff9ea-85e7-42e3-99d2-bbb7069e02eb:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a Chromium based browser with the debugging process argument, which may indicate an attempt to steal authentication cookies. An adversary may steal web application or service session cookies and use them to gain access web applications or Internet services as an authenticated user without needing credentials.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Developers performing browsers plugin or extension debugging."],"from":"now-9m","max_signals":33,"references":["https://github.com/defaultnamehere/cookie_crimes","https://embracethered.com/blog/posts/2020/cookie-crimes-on-mirosoft-edge/","https://github.com/rapid7/metasploit-framework/blob/master/documentation/modules/post/multi/gather/chrome_cookies.md","https://posts.specterops.io/hands-in-the-cookie-jar-dumping-cookies-with-chromiums-remote-debugger-port-34c4f468844e"],"tags":["Elastic","Host","Linux","Windows","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1539","name":"Steal Web Session Cookie","reference":"https://attack.mitre.org/techniques/T1539/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\", \"info\") and\n process.name in (\n \"Microsoft Edge\",\n \"chrome.exe\",\n \"Google Chrome\",\n \"google-chrome-stable\",\n \"google-chrome-beta\",\n \"google-chrome\",\n \"msedge.exe\") and\n process.args : (\"--remote-debugging-port=*\",\n \"--remote-debugging-targets=*\",\n \"--remote-debugging-pipe=*\") and\n process.args : \"--user-data-dir=*\" and not process.args:\"--remote-debugging-port=0\"\n","type":"eql","index":["auditbeat-*","winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"027ff9ea-85e7-42e3-99d2-bbb7069e02eb:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/02a23ee7-c8f8-4701-b99d-e9038ce313cb:1.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/02a23ee7-c8f8-4701-b99d-e9038ce313cb:1.0.0.json new file mode 100644 index 0000000000000..07ff150efef8e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/02a23ee7-c8f8-4701-b99d-e9038ce313cb:1.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Process Created with an Elevated Token v1.0.0","rule_id":"02a23ee7-c8f8-4701-b99d-e9038ce313cb:1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a process running as SYSTEM and impersonating a Windows core binary privileges. Adversaries may create a new process with a different token to escalate privileges and bypass access controls.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://lengjibo.github.io/token/","https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-createprocesswithtokenw"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/","subtechnique":[{"id":"T1134.002","name":"Create Process with Token","reference":"https://attack.mitre.org/techniques/T1134/002/"}]}]}],"language":"eql","query":"/* This rule is only compatible with Elastic Endpoint 8.4+ */\n\nprocess where event.action == \"start\" and\n\n /* CreateProcessWithToken and effective parent is a privileged MS native binary used as a target for token theft */\n user.id : \"S-1-5-18\" and\n\n /* Token Theft target process usually running as service are located in one of the following paths */\n process.Ext.effective_parent.executable :\n (\"?:\\\\Windows\\\\*.exe\",\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\ProgramData\\\\*\") and\n\n not (process.Ext.effective_parent.executable : \"?:\\\\Windows\\\\System32\\\\Utilman.exe\" and\n process.parent.executable : \"?:\\\\Windows\\\\System32\\\\Utilman.exe\" and process.parent.args : \"/debug\") and\n\n not process.executable : (\"?:\\\\Windows\\\\System32\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerFaultSecure.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\WerFaultSecure.exe\",\n \"?:\\\\windows\\\\system32\\\\WerMgr.exe\",\n \"?:\\\\Windows\\\\SoftwareDistribution\\\\Download\\\\Install\\\\securityhealthsetup.exe\") and\n\n not process.parent.executable : (\"?:\\\\Windows\\\\System32\\\\AtBroker.exe\", \"?:\\\\Windows\\\\system32\\\\svchost.exe\", \"?:\\\\Program Files (x86)\\\\*.exe\", \"?:\\\\Program Files\\\\*.exe\", \"?:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"C:\\\\Windows\\\\System32\\\\DriverStore\\\\*\") and\n\n\n not (process.code_signature.trusted == true and\n process.code_signature.subject_name in (\"philandro Software GmbH\", \"Freedom Scientific Inc.\", \"TeamViewer Germany GmbH\", \"Projector.is, Inc.\", \"TeamViewer GmbH\", \"Cisco WebEx LLC\", \"Dell Inc\"))\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":false,"name":"process.Ext.effective_parent.executable","type":"unknown"},{"ecs":true,"name":"process.code_signature.subject_name","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"02a23ee7-c8f8-4701-b99d-e9038ce313cb:1.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/02a23ee7-c8f8-4701-b99d-e9038ce313cb:1.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/02a23ee7-c8f8-4701-b99d-e9038ce313cb:1.0.1.json new file mode 100644 index 0000000000000..854c6c5edb048 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/02a23ee7-c8f8-4701-b99d-e9038ce313cb:1.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Process Created with an Elevated Token v1.0.1","rule_id":"02a23ee7-c8f8-4701-b99d-e9038ce313cb:1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a process running as SYSTEM and impersonating a Windows core binary privileges. Adversaries may create a new process with a different token to escalate privileges and bypass access controls.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://lengjibo.github.io/token/","https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-createprocesswithtokenw"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/","subtechnique":[{"id":"T1134.002","name":"Create Process with Token","reference":"https://attack.mitre.org/techniques/T1134/002/"}]}]}],"language":"eql","query":"/* This rule is only compatible with Elastic Endpoint 8.4+ */\n\nprocess where event.action == \"start\" and\n\n /* CreateProcessWithToken and effective parent is a privileged MS native binary used as a target for token theft */\n user.id : \"S-1-5-18\" and\n\n /* Token Theft target process usually running as service are located in one of the following paths */\n process.Ext.effective_parent.executable :\n (\"?:\\\\Windows\\\\*.exe\",\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\ProgramData\\\\*\") and\n\n not (process.Ext.effective_parent.executable : \"?:\\\\Windows\\\\System32\\\\Utilman.exe\" and\n process.parent.executable : \"?:\\\\Windows\\\\System32\\\\Utilman.exe\" and process.parent.args : \"/debug\") and\n\n not process.executable : (\"?:\\\\Windows\\\\System32\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerFaultSecure.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\WerFaultSecure.exe\",\n \"?:\\\\windows\\\\system32\\\\WerMgr.exe\",\n \"?:\\\\Windows\\\\SoftwareDistribution\\\\Download\\\\Install\\\\securityhealthsetup.exe\") and\n\n not process.parent.executable : (\"?:\\\\Windows\\\\System32\\\\AtBroker.exe\", \"?:\\\\Windows\\\\system32\\\\svchost.exe\", \"?:\\\\Program Files (x86)\\\\*.exe\", \"?:\\\\Program Files\\\\*.exe\", \"?:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"C:\\\\Windows\\\\System32\\\\DriverStore\\\\*\") and\n\n\n not (process.code_signature.trusted == true and\n process.code_signature.subject_name in (\"philandro Software GmbH\", \"Freedom Scientific Inc.\", \"TeamViewer Germany GmbH\", \"Projector.is, Inc.\", \"TeamViewer GmbH\", \"Cisco WebEx LLC\", \"Dell Inc\"))\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":false,"name":"process.Ext.effective_parent.executable","type":"unknown"},{"ecs":true,"name":"process.code_signature.subject_name","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"02a23ee7-c8f8-4701-b99d-e9038ce313cb:1.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/02a23ee7-c8f8-4701-b99d-e9038ce313cb:1.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/02a23ee7-c8f8-4701-b99d-e9038ce313cb:1.0.2.json new file mode 100644 index 0000000000000..203fd65208c59 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/02a23ee7-c8f8-4701-b99d-e9038ce313cb:1.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Process Created with an Elevated Token v1.0.2","rule_id":"02a23ee7-c8f8-4701-b99d-e9038ce313cb:1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a process running as SYSTEM and impersonating a Windows core binary privileges. Adversaries may create a new process with a different token to escalate privileges and bypass access controls.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://lengjibo.github.io/token/","https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-createprocesswithtokenw"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/","subtechnique":[{"id":"T1134.002","name":"Create Process with Token","reference":"https://attack.mitre.org/techniques/T1134/002/"}]}]}],"language":"eql","query":"/* This rule is only compatible with Elastic Endpoint 8.4+ */\n\nprocess where event.action == \"start\" and\n\n /* CreateProcessWithToken and effective parent is a privileged MS native binary used as a target for token theft */\n user.id : \"S-1-5-18\" and\n\n /* Token Theft target process usually running as service are located in one of the following paths */\n process.Ext.effective_parent.executable :\n (\"?:\\\\Windows\\\\*.exe\",\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\ProgramData\\\\*\") and\n\n not (process.Ext.effective_parent.executable : \"?:\\\\Windows\\\\System32\\\\Utilman.exe\" and\n process.parent.executable : \"?:\\\\Windows\\\\System32\\\\Utilman.exe\" and process.parent.args : \"/debug\") and\n\n not process.executable : (\"?:\\\\Windows\\\\System32\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerFaultSecure.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\WerFaultSecure.exe\",\n \"?:\\\\windows\\\\system32\\\\WerMgr.exe\",\n \"?:\\\\Windows\\\\SoftwareDistribution\\\\Download\\\\Install\\\\securityhealthsetup.exe\") and\n\n not process.parent.executable : (\"?:\\\\Windows\\\\System32\\\\AtBroker.exe\", \"?:\\\\Windows\\\\system32\\\\svchost.exe\", \"?:\\\\Program Files (x86)\\\\*.exe\", \"?:\\\\Program Files\\\\*.exe\", \"?:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"C:\\\\Windows\\\\System32\\\\DriverStore\\\\*\") and\n\n\n not (process.code_signature.trusted == true and\n process.code_signature.subject_name in (\"philandro Software GmbH\", \"Freedom Scientific Inc.\", \"TeamViewer Germany GmbH\", \"Projector.is, Inc.\", \"TeamViewer GmbH\", \"Cisco WebEx LLC\", \"Dell Inc\"))\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":false,"name":"process.Ext.effective_parent.executable","type":"unknown"},{"ecs":true,"name":"process.code_signature.subject_name","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"02a23ee7-c8f8-4701-b99d-e9038ce313cb:1.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/02a4576a-7480-4284-9327-548a806b5e48:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/02a4576a-7480-4284-9327-548a806b5e48:101.0.0.json new file mode 100644 index 0000000000000..1baa669791ad1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/02a4576a-7480-4284-9327-548a806b5e48:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Credential Access via DuplicateHandle in LSASS v101.0.0","rule_id":"02a4576a-7480-4284-9327-548a806b5e48:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious access to an LSASS handle via DuplicateHandle from an unknown call trace module. This may indicate an attempt to bypass the NtOpenProcess API to evade detection and dump LSASS memory for credential access.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/CCob/MirrorDump"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"process where event.code == \"10\" and\n\n /* LSASS requesting DuplicateHandle access right to another process */\n process.name : \"lsass.exe\" and winlog.event_data.GrantedAccess == \"0x40\" and\n\n /* call is coming from an unknown executable region */\n winlog.event_data.CallTrace : \"*UNKNOWN*\"\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallTrace","type":"unknown"},{"ecs":false,"name":"winlog.event_data.GrantedAccess","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"02a4576a-7480-4284-9327-548a806b5e48:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/02a4576a-7480-4284-9327-548a806b5e48:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/02a4576a-7480-4284-9327-548a806b5e48:101.0.1.json new file mode 100644 index 0000000000000..79fb06a938382 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/02a4576a-7480-4284-9327-548a806b5e48:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Credential Access via DuplicateHandle in LSASS v101.0.1","rule_id":"02a4576a-7480-4284-9327-548a806b5e48:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious access to an LSASS handle via DuplicateHandle from an unknown call trace module. This may indicate an attempt to bypass the NtOpenProcess API to evade detection and dump LSASS memory for credential access.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/CCob/MirrorDump"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"process where event.code == \"10\" and\n\n /* LSASS requesting DuplicateHandle access right to another process */\n process.name : \"lsass.exe\" and winlog.event_data.GrantedAccess == \"0x40\" and\n\n /* call is coming from an unknown executable region */\n winlog.event_data.CallTrace : \"*UNKNOWN*\"\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallTrace","type":"unknown"},{"ecs":false,"name":"winlog.event_data.GrantedAccess","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"02a4576a-7480-4284-9327-548a806b5e48:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/02a4576a-7480-4284-9327-548a806b5e48:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/02a4576a-7480-4284-9327-548a806b5e48:101.0.2.json new file mode 100644 index 0000000000000..527f3b46b2e5a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/02a4576a-7480-4284-9327-548a806b5e48:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Credential Access via DuplicateHandle in LSASS v101.0.2","rule_id":"02a4576a-7480-4284-9327-548a806b5e48:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious access to an LSASS handle via DuplicateHandle from an unknown call trace module. This may indicate an attempt to bypass the NtOpenProcess API to evade detection and dump LSASS memory for credential access.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/CCob/MirrorDump"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"process where event.code == \"10\" and\n\n /* LSASS requesting DuplicateHandle access right to another process */\n process.name : \"lsass.exe\" and winlog.event_data.GrantedAccess == \"0x40\" and\n\n /* call is coming from an unknown executable region */\n winlog.event_data.CallTrace : \"*UNKNOWN*\"\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallTrace","type":"unknown"},{"ecs":false,"name":"winlog.event_data.GrantedAccess","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"02a4576a-7480-4284-9327-548a806b5e48:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/02ea4563-ec10-4974-b7de-12e65aa4f9b3:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/02ea4563-ec10-4974-b7de-12e65aa4f9b3:100.0.0.json new file mode 100644 index 0000000000000..c0c5386508437 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/02ea4563-ec10-4974-b7de-12e65aa4f9b3:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Dumping Account Hashes via Built-In Commands v100.0.0","rule_id":"02ea4563-ec10-4974-b7de-12e65aa4f9b3:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of macOS built-in commands used to dump user account hashes. Adversaries may attempt to dump credentials to obtain account login information in the form of a hash. These hashes can be cracked or leveraged for lateral movement.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://apple.stackexchange.com/questions/186893/os-x-10-9-where-are-password-hashes-stored","https://www.unix.com/man-page/osx/8/mkpassdb/"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and\n process.name:(defaults or mkpassdb) and process.args:(ShadowHashData or \"-dump\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"02ea4563-ec10-4974-b7de-12e65aa4f9b3:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/02ea4563-ec10-4974-b7de-12e65aa4f9b3:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/02ea4563-ec10-4974-b7de-12e65aa4f9b3:100.0.1.json new file mode 100644 index 0000000000000..de1805edaa9ad --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/02ea4563-ec10-4974-b7de-12e65aa4f9b3:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Dumping Account Hashes via Built-In Commands v100.0.1","rule_id":"02ea4563-ec10-4974-b7de-12e65aa4f9b3:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of macOS built-in commands used to dump user account hashes. Adversaries may attempt to dump credentials to obtain account login information in the form of a hash. These hashes can be cracked or leveraged for lateral movement.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://apple.stackexchange.com/questions/186893/os-x-10-9-where-are-password-hashes-stored","https://www.unix.com/man-page/osx/8/mkpassdb/"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and\n process.name:(defaults or mkpassdb) and process.args:(ShadowHashData or \"-dump\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"02ea4563-ec10-4974-b7de-12e65aa4f9b3:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/02ea4563-ec10-4974-b7de-12e65aa4f9b3:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/02ea4563-ec10-4974-b7de-12e65aa4f9b3:100.0.2.json new file mode 100644 index 0000000000000..d758cd24ebf09 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/02ea4563-ec10-4974-b7de-12e65aa4f9b3:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Dumping Account Hashes via Built-In Commands v100.0.2","rule_id":"02ea4563-ec10-4974-b7de-12e65aa4f9b3:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of macOS built-in commands used to dump user account hashes. Adversaries may attempt to dump credentials to obtain account login information in the form of a hash. These hashes can be cracked or leveraged for lateral movement.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://apple.stackexchange.com/questions/186893/os-x-10-9-where-are-password-hashes-stored","https://www.unix.com/man-page/osx/8/mkpassdb/"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and\n process.name:(defaults or mkpassdb) and process.args:(ShadowHashData or \"-dump\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"02ea4563-ec10-4974-b7de-12e65aa4f9b3:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/03024bd9-d23f-4ec1-8674-3cf1a21e130b:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/03024bd9-d23f-4ec1-8674-3cf1a21e130b:101.0.0.json new file mode 100644 index 0000000000000..27ed436f67d3e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/03024bd9-d23f-4ec1-8674-3cf1a21e130b:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange Safe Attachment Rule Disabled v101.0.0","rule_id":"03024bd9-d23f-4ec1-8674-3cf1a21e130b:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a safe attachment rule is disabled in Microsoft 365. Safe attachment rules can extend malware protections to include routing all messages and attachments without a known malware signature to a special hypervisor environment. An adversary or insider threat may disable a safe attachment rule to exfiltrate data or evade defenses.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A safe attachment rule may be disabled by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/disable-safeattachmentrule?view=exchange-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Disable-SafeAttachmentRule\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"03024bd9-d23f-4ec1-8674-3cf1a21e130b:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/03024bd9-d23f-4ec1-8674-3cf1a21e130b:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/03024bd9-d23f-4ec1-8674-3cf1a21e130b:101.0.1.json new file mode 100644 index 0000000000000..2047fbc4d9efa --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/03024bd9-d23f-4ec1-8674-3cf1a21e130b:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange Safe Attachment Rule Disabled v101.0.1","rule_id":"03024bd9-d23f-4ec1-8674-3cf1a21e130b:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a safe attachment rule is disabled in Microsoft 365. Safe attachment rules can extend malware protections to include routing all messages and attachments without a known malware signature to a special hypervisor environment. An adversary or insider threat may disable a safe attachment rule to exfiltrate data or evade defenses.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A safe attachment rule may be disabled by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/disable-safeattachmentrule?view=exchange-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Disable-SafeAttachmentRule\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"03024bd9-d23f-4ec1-8674-3cf1a21e130b:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/03024bd9-d23f-4ec1-8674-3cf1a21e130b:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/03024bd9-d23f-4ec1-8674-3cf1a21e130b:101.0.2.json new file mode 100644 index 0000000000000..5241afda39402 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/03024bd9-d23f-4ec1-8674-3cf1a21e130b:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange Safe Attachment Rule Disabled v101.0.2","rule_id":"03024bd9-d23f-4ec1-8674-3cf1a21e130b:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a safe attachment rule is disabled in Microsoft 365. Safe attachment rules can extend malware protections to include routing all messages and attachments without a known malware signature to a special hypervisor environment. An adversary or insider threat may disable a safe attachment rule to exfiltrate data or evade defenses.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A safe attachment rule may be disabled by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/disable-safeattachmentrule?view=exchange-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Disable-SafeAttachmentRule\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"03024bd9-d23f-4ec1-8674-3cf1a21e130b:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/035889c4-2686-4583-a7df-67f89c292f2c:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/035889c4-2686-4583-a7df-67f89c292f2c:102.0.0.json new file mode 100644 index 0000000000000..e98267fdd4a9c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/035889c4-2686-4583-a7df-67f89c292f2c:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"High Number of Process and/or Service Terminations v102.0.0","rule_id":"035889c4-2686-4583-a7df-67f89c292f2c:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule identifies a high number (10) of process terminations (stop, delete, or suspend) from the same host within a short time period.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating High Number of Process and/or Service Terminations\n\nAttackers can stop services and kill processes for a variety of purposes. For example, they can stop services associated\nwith business applications and databases to release the lock on files used by these applications so they may be encrypted,\nor stop security and backup solutions, etc.\n\nThis rule identifies a high number (10) of service and/or process terminations (stop, delete, or suspend) from the same\nhost within a short time period.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check if any files on the host machine have been encrypted.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further destructive behavior, which is commonly associated with this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system or restore it to the operational state.\n- If any other destructive action was identified on the host, it is recommended to prioritize the investigation and look\nfor ransomware preparation and execution activities.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/security-labs/luna-ransomware-attack-pattern"],"tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"query":"event.category:process and event.type:start and process.name:(net.exe or sc.exe or taskkill.exe) and\n process.args:(stop or pause or delete or \"/PID\" or \"/IM\" or \"/T\" or \"/F\" or \"/t\" or \"/f\" or \"/im\" or \"/pid\")\n","threshold":{"field":["host.id"],"value":10},"type":"threshold","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"035889c4-2686-4583-a7df-67f89c292f2c:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/035889c4-2686-4583-a7df-67f89c292f2c:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/035889c4-2686-4583-a7df-67f89c292f2c:102.0.1.json new file mode 100644 index 0000000000000..1111287ea9488 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/035889c4-2686-4583-a7df-67f89c292f2c:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"High Number of Process and/or Service Terminations v102.0.1","rule_id":"035889c4-2686-4583-a7df-67f89c292f2c:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule identifies a high number (10) of process terminations (stop, delete, or suspend) from the same host within a short time period.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating High Number of Process and/or Service Terminations\n\nAttackers can stop services and kill processes for a variety of purposes. For example, they can stop services associated\nwith business applications and databases to release the lock on files used by these applications so they may be encrypted,\nor stop security and backup solutions, etc.\n\nThis rule identifies a high number (10) of service and/or process terminations (stop, delete, or suspend) from the same\nhost within a short time period.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check if any files on the host machine have been encrypted.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further destructive behavior, which is commonly associated with this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system or restore it to the operational state.\n- If any other destructive action was identified on the host, it is recommended to prioritize the investigation and look\nfor ransomware preparation and execution activities.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/security-labs/luna-ransomware-attack-pattern"],"tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"query":"event.category:process and event.type:start and process.name:(net.exe or sc.exe or taskkill.exe) and\n process.args:(stop or pause or delete or \"/PID\" or \"/IM\" or \"/T\" or \"/F\" or \"/t\" or \"/f\" or \"/im\" or \"/pid\")\n","threshold":{"field":["host.id"],"value":10},"type":"threshold","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"035889c4-2686-4583-a7df-67f89c292f2c:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/035889c4-2686-4583-a7df-67f89c292f2c:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/035889c4-2686-4583-a7df-67f89c292f2c:102.0.2.json new file mode 100644 index 0000000000000..43b90b744fbfb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/035889c4-2686-4583-a7df-67f89c292f2c:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"High Number of Process and/or Service Terminations v102.0.2","rule_id":"035889c4-2686-4583-a7df-67f89c292f2c:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule identifies a high number (10) of process terminations (stop, delete, or suspend) from the same host within a short time period.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating High Number of Process and/or Service Terminations\n\nAttackers can stop services and kill processes for a variety of purposes. For example, they can stop services associated\nwith business applications and databases to release the lock on files used by these applications so they may be encrypted,\nor stop security and backup solutions, etc.\n\nThis rule identifies a high number (10) of service and/or process terminations (stop, delete, or suspend) from the same\nhost within a short time period.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check if any files on the host machine have been encrypted.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further destructive behavior, which is commonly associated with this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system or restore it to the operational state.\n- If any other destructive action was identified on the host, it is recommended to prioritize the investigation and look\nfor ransomware preparation and execution activities.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/security-labs/luna-ransomware-attack-pattern"],"tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"query":"event.category:process and event.type:start and process.name:(net.exe or sc.exe or taskkill.exe) and\n process.args:(stop or pause or delete or \"/PID\" or \"/IM\" or \"/T\" or \"/F\" or \"/t\" or \"/f\" or \"/im\" or \"/pid\")\n","threshold":{"field":["host.id"],"value":10},"type":"threshold","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"035889c4-2686-4583-a7df-67f89c292f2c:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0415f22a-2336-45fa-ba07-618a5942e22c:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0415f22a-2336-45fa-ba07-618a5942e22c:100.0.0.json new file mode 100644 index 0000000000000..e871e50512096 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0415f22a-2336-45fa-ba07-618a5942e22c:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Modification of OpenSSH Binaries v100.0.0","rule_id":"0415f22a-2336-45fa-ba07-618a5942e22c:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may modify SSH related binaries for persistence or credential access by patching sensitive functions to enable unauthorized access or by logging SSH credentials for exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted OpenSSH executable updates. It's recommended to verify the integrity of OpenSSH binary changes."],"from":"now-9m","references":["https://blog.angelalonso.es/2016/09/anatomy-of-real-linux-intrusion-part-ii.html"],"tags":["Elastic","Host","Linux","Threat Detection","Credential Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and event.type:change and\n process.name:* and\n (file.path:(/usr/sbin/sshd or /usr/bin/ssh or /usr/bin/sftp or /usr/bin/scp) or file.name:libkeyutils.so) and\n not process.name:(\"dpkg\" or \"yum\" or \"dnf\" or \"dnf-automatic\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"0415f22a-2336-45fa-ba07-618a5942e22c:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0415f22a-2336-45fa-ba07-618a5942e22c:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0415f22a-2336-45fa-ba07-618a5942e22c:100.0.1.json new file mode 100644 index 0000000000000..eb7f6104b25e9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0415f22a-2336-45fa-ba07-618a5942e22c:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Modification of OpenSSH Binaries v100.0.1","rule_id":"0415f22a-2336-45fa-ba07-618a5942e22c:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may modify SSH related binaries for persistence or credential access by patching sensitive functions to enable unauthorized access or by logging SSH credentials for exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted OpenSSH executable updates. It's recommended to verify the integrity of OpenSSH binary changes."],"from":"now-9m","references":["https://blog.angelalonso.es/2016/09/anatomy-of-real-linux-intrusion-part-ii.html"],"tags":["Elastic","Host","Linux","Threat Detection","Credential Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and event.type:change and\n process.name:* and\n (file.path:(/usr/sbin/sshd or /usr/bin/ssh or /usr/bin/sftp or /usr/bin/scp) or file.name:libkeyutils.so) and\n not process.name:(\"dpkg\" or \"yum\" or \"dnf\" or \"dnf-automatic\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"0415f22a-2336-45fa-ba07-618a5942e22c:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0415f22a-2336-45fa-ba07-618a5942e22c:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0415f22a-2336-45fa-ba07-618a5942e22c:100.0.2.json new file mode 100644 index 0000000000000..f48b8ac4685a5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0415f22a-2336-45fa-ba07-618a5942e22c:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Modification of OpenSSH Binaries v100.0.2","rule_id":"0415f22a-2336-45fa-ba07-618a5942e22c:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may modify SSH related binaries for persistence or credential access by patching sensitive functions to enable unauthorized access or by logging SSH credentials for exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted OpenSSH executable updates. It's recommended to verify the integrity of OpenSSH binary changes."],"from":"now-9m","references":["https://blog.angelalonso.es/2016/09/anatomy-of-real-linux-intrusion-part-ii.html"],"tags":["Elastic","Host","Linux","Threat Detection","Credential Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and event.type:change and\n process.name:* and\n (file.path:(/usr/sbin/sshd or /usr/bin/ssh or /usr/bin/sftp or /usr/bin/scp) or file.name:libkeyutils.so) and\n not process.name:(\"dpkg\" or \"yum\" or \"dnf\" or \"dnf-automatic\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"0415f22a-2336-45fa-ba07-618a5942e22c:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/041d4d41-9589-43e2-ba13-5680af75ebc2:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/041d4d41-9589-43e2-ba13-5680af75ebc2:100.0.0.json new file mode 100644 index 0000000000000..9803b8be56d33 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/041d4d41-9589-43e2-ba13-5680af75ebc2:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential DNS Tunneling via Iodine v100.0.0","rule_id":"041d4d41-9589-43e2-ba13-5680af75ebc2:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Iodine is a tool for tunneling Internet protocol version 4 (IPV4) traffic over the DNS protocol to circumvent firewalls, network security groups, and network access lists while evading detection.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Normal use of Iodine is uncommon apart from security testing and research. Use by non-security engineers is very uncommon."],"from":"now-9m","references":["https://code.kryo.se/iodine/"],"tags":["Elastic","Host","Linux","Threat Detection","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1572","name":"Protocol Tunneling","reference":"https://attack.mitre.org/techniques/T1572/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:(iodine or iodined)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"041d4d41-9589-43e2-ba13-5680af75ebc2:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/041d4d41-9589-43e2-ba13-5680af75ebc2:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/041d4d41-9589-43e2-ba13-5680af75ebc2:100.0.1.json new file mode 100644 index 0000000000000..b5c8d8229d011 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/041d4d41-9589-43e2-ba13-5680af75ebc2:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential DNS Tunneling via Iodine v100.0.1","rule_id":"041d4d41-9589-43e2-ba13-5680af75ebc2:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Iodine is a tool for tunneling Internet protocol version 4 (IPV4) traffic over the DNS protocol to circumvent firewalls, network security groups, and network access lists while evading detection.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Normal use of Iodine is uncommon apart from security testing and research. Use by non-security engineers is very uncommon."],"from":"now-9m","references":["https://code.kryo.se/iodine/"],"tags":["Elastic","Host","Linux","Threat Detection","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1572","name":"Protocol Tunneling","reference":"https://attack.mitre.org/techniques/T1572/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:(iodine or iodined)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"041d4d41-9589-43e2-ba13-5680af75ebc2:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/041d4d41-9589-43e2-ba13-5680af75ebc2:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/041d4d41-9589-43e2-ba13-5680af75ebc2:100.0.2.json new file mode 100644 index 0000000000000..bb9be32b3930a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/041d4d41-9589-43e2-ba13-5680af75ebc2:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential DNS Tunneling via Iodine v100.0.2","rule_id":"041d4d41-9589-43e2-ba13-5680af75ebc2:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Iodine is a tool for tunneling Internet protocol version 4 (IPV4) traffic over the DNS protocol to circumvent firewalls, network security groups, and network access lists while evading detection.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Normal use of Iodine is uncommon apart from security testing and research. Use by non-security engineers is very uncommon."],"from":"now-9m","references":["https://code.kryo.se/iodine/"],"tags":["Elastic","Host","Linux","Threat Detection","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1572","name":"Protocol Tunneling","reference":"https://attack.mitre.org/techniques/T1572/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:(iodine or iodined)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"041d4d41-9589-43e2-ba13-5680af75ebc2:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/04c5a96f-19c5-44fd-9571-a0b033f9086f:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/04c5a96f-19c5-44fd-9571-a0b033f9086f:101.0.0.json new file mode 100644 index 0000000000000..952e1fcc1ce3f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/04c5a96f-19c5-44fd-9571-a0b033f9086f:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure AD Global Administrator Role Assigned v101.0.0","rule_id":"04c5a96f-19c5-44fd-9571-a0b033f9086f:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"In Azure Active Directory (Azure AD), permissions to manage resources are assigned using roles. The Global Administrator is a role that enables users to have access to all administrative features in Azure AD and services that use Azure AD identities like the Microsoft 365 Defender portal, the Microsoft 365 compliance center, Exchange, SharePoint Online, and Skype for Business Online. Attackers can add users as Global Administrators to maintain access and manage all subscriptions and their settings and resources.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/roles/permissions-reference#global-administrator"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.003","name":"Additional Cloud Roles","reference":"https://attack.mitre.org/techniques/T1098/003/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.properties.category:RoleManagement and\nazure.auditlogs.operation_name:\"Add member to role\" and\nazure.auditlogs.properties.target_resources.0.modified_properties.1.new_value:\"\\\"Global Administrator\\\"\"\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.properties.category","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.properties.target_resources.0.modified_properties.1.new_value","type":"unknown"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"04c5a96f-19c5-44fd-9571-a0b033f9086f:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/04c5a96f-19c5-44fd-9571-a0b033f9086f:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/04c5a96f-19c5-44fd-9571-a0b033f9086f:101.0.1.json new file mode 100644 index 0000000000000..cf21f92dd6b97 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/04c5a96f-19c5-44fd-9571-a0b033f9086f:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure AD Global Administrator Role Assigned v101.0.1","rule_id":"04c5a96f-19c5-44fd-9571-a0b033f9086f:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"In Azure Active Directory (Azure AD), permissions to manage resources are assigned using roles. The Global Administrator is a role that enables users to have access to all administrative features in Azure AD and services that use Azure AD identities like the Microsoft 365 Defender portal, the Microsoft 365 compliance center, Exchange, SharePoint Online, and Skype for Business Online. Attackers can add users as Global Administrators to maintain access and manage all subscriptions and their settings and resources.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/roles/permissions-reference#global-administrator"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.003","name":"Additional Cloud Roles","reference":"https://attack.mitre.org/techniques/T1098/003/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.properties.category:RoleManagement and\nazure.auditlogs.operation_name:\"Add member to role\" and\nazure.auditlogs.properties.target_resources.0.modified_properties.1.new_value:\"\\\"Global Administrator\\\"\"\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.properties.category","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.properties.target_resources.0.modified_properties.1.new_value","type":"unknown"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"04c5a96f-19c5-44fd-9571-a0b033f9086f:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/04c5a96f-19c5-44fd-9571-a0b033f9086f:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/04c5a96f-19c5-44fd-9571-a0b033f9086f:101.0.2.json new file mode 100644 index 0000000000000..c500bb8fcc97a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/04c5a96f-19c5-44fd-9571-a0b033f9086f:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure AD Global Administrator Role Assigned v101.0.2","rule_id":"04c5a96f-19c5-44fd-9571-a0b033f9086f:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"In Azure Active Directory (Azure AD), permissions to manage resources are assigned using roles. The Global Administrator is a role that enables users to have access to all administrative features in Azure AD and services that use Azure AD identities like the Microsoft 365 Defender portal, the Microsoft 365 compliance center, Exchange, SharePoint Online, and Skype for Business Online. Attackers can add users as Global Administrators to maintain access and manage all subscriptions and their settings and resources.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/roles/permissions-reference#global-administrator"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.003","name":"Additional Cloud Roles","reference":"https://attack.mitre.org/techniques/T1098/003/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.properties.category:RoleManagement and\nazure.auditlogs.operation_name:\"Add member to role\" and\nazure.auditlogs.properties.target_resources.0.modified_properties.1.new_value:\"\\\"Global Administrator\\\"\"\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.properties.category","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.properties.target_resources.0.modified_properties.1.new_value","type":"unknown"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"04c5a96f-19c5-44fd-9571-a0b033f9086f:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/053a0387-f3b5-4ba5-8245-8002cca2bd08:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/053a0387-f3b5-4ba5-8245-8002cca2bd08:101.0.0.json new file mode 100644 index 0000000000000..47c010bf6b842 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/053a0387-f3b5-4ba5-8245-8002cca2bd08:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential DLL Side-Loading via Microsoft Antimalware Service Executable v101.0.0","rule_id":"053a0387-f3b5-4ba5-8245-8002cca2bd08:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a Windows trusted program that is known to be vulnerable to DLL Search Order Hijacking starting after being renamed or from a non-standard path. This is uncommon behavior and may indicate an attempt to evade defenses via side-loading a malicious DLL within the memory space of one of those processes.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Dennis Perto"],"false_positives":["Microsoft Antimalware Service Executable installed on non default installation path."],"from":"now-9m","references":["https://news.sophos.com/en-us/2021/07/04/independence-day-revil-uses-supply-chain-exploit-to-attack-hundreds-of-businesses/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.002","name":"DLL Side-Loading","reference":"https://attack.mitre.org/techniques/T1574/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.pe.original_file_name == \"MsMpEng.exe\" and not process.name : \"MsMpEng.exe\") or\n (process.name : \"MsMpEng.exe\" and not\n process.executable : (\"?:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\*.exe\",\n \"?:\\\\Program Files\\\\Windows Defender\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\Windows Defender\\\\*.exe\",\n \"?:\\\\Program Files\\\\Microsoft Security Client\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\Microsoft Security Client\\\\*.exe\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"053a0387-f3b5-4ba5-8245-8002cca2bd08:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/053a0387-f3b5-4ba5-8245-8002cca2bd08:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/053a0387-f3b5-4ba5-8245-8002cca2bd08:101.0.1.json new file mode 100644 index 0000000000000..392c452bca751 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/053a0387-f3b5-4ba5-8245-8002cca2bd08:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential DLL Side-Loading via Microsoft Antimalware Service Executable v101.0.1","rule_id":"053a0387-f3b5-4ba5-8245-8002cca2bd08:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a Windows trusted program that is known to be vulnerable to DLL Search Order Hijacking starting after being renamed or from a non-standard path. This is uncommon behavior and may indicate an attempt to evade defenses via side-loading a malicious DLL within the memory space of one of those processes.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Dennis Perto"],"false_positives":["Microsoft Antimalware Service Executable installed on non default installation path."],"from":"now-9m","references":["https://news.sophos.com/en-us/2021/07/04/independence-day-revil-uses-supply-chain-exploit-to-attack-hundreds-of-businesses/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.002","name":"DLL Side-Loading","reference":"https://attack.mitre.org/techniques/T1574/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.pe.original_file_name == \"MsMpEng.exe\" and not process.name : \"MsMpEng.exe\") or\n (process.name : \"MsMpEng.exe\" and not\n process.executable : (\"?:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\*.exe\",\n \"?:\\\\Program Files\\\\Windows Defender\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\Windows Defender\\\\*.exe\",\n \"?:\\\\Program Files\\\\Microsoft Security Client\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\Microsoft Security Client\\\\*.exe\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"053a0387-f3b5-4ba5-8245-8002cca2bd08:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/053a0387-f3b5-4ba5-8245-8002cca2bd08:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/053a0387-f3b5-4ba5-8245-8002cca2bd08:101.0.2.json new file mode 100644 index 0000000000000..fa4eccac4299e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/053a0387-f3b5-4ba5-8245-8002cca2bd08:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential DLL Side-Loading via Microsoft Antimalware Service Executable v101.0.2","rule_id":"053a0387-f3b5-4ba5-8245-8002cca2bd08:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a Windows trusted program that is known to be vulnerable to DLL Search Order Hijacking starting after being renamed or from a non-standard path. This is uncommon behavior and may indicate an attempt to evade defenses via side-loading a malicious DLL within the memory space of one of those processes.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Dennis Perto"],"false_positives":["Microsoft Antimalware Service Executable installed on non default installation path."],"from":"now-9m","references":["https://news.sophos.com/en-us/2021/07/04/independence-day-revil-uses-supply-chain-exploit-to-attack-hundreds-of-businesses/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.002","name":"DLL Side-Loading","reference":"https://attack.mitre.org/techniques/T1574/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.pe.original_file_name == \"MsMpEng.exe\" and not process.name : \"MsMpEng.exe\") or\n (process.name : \"MsMpEng.exe\" and not\n process.executable : (\"?:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\*.exe\",\n \"?:\\\\Program Files\\\\Windows Defender\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\Windows Defender\\\\*.exe\",\n \"?:\\\\Program Files\\\\Microsoft Security Client\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\Microsoft Security Client\\\\*.exe\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"053a0387-f3b5-4ba5-8245-8002cca2bd08:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0564fb9d-90b9-4234-a411-82a546dc1343:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0564fb9d-90b9-4234-a411-82a546dc1343:102.0.0.json new file mode 100644 index 0000000000000..e0285dafc77bb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0564fb9d-90b9-4234-a411-82a546dc1343:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft IIS Service Account Password Dumped v102.0.0","rule_id":"0564fb9d-90b9-4234-a411-82a546dc1343:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the Internet Information Services (IIS) command-line tool, AppCmd, being used to list passwords. An attacker with IIS web server access via a web shell can decrypt and dump the IIS AppPool service account password using AppCmd.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"references":["https://blog.netspi.com/decrypting-iis-passwords-to-break-out-of-the-dmz-part-1/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"appcmd.exe\" or process.pe.original_file_name == \"appcmd.exe\") and\n process.args : \"/list\" and process.args : \"/text*password\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"0564fb9d-90b9-4234-a411-82a546dc1343:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0564fb9d-90b9-4234-a411-82a546dc1343:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0564fb9d-90b9-4234-a411-82a546dc1343:102.0.1.json new file mode 100644 index 0000000000000..f12c0e0081f3e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0564fb9d-90b9-4234-a411-82a546dc1343:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft IIS Service Account Password Dumped v102.0.1","rule_id":"0564fb9d-90b9-4234-a411-82a546dc1343:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the Internet Information Services (IIS) command-line tool, AppCmd, being used to list passwords. An attacker with IIS web server access via a web shell can decrypt and dump the IIS AppPool service account password using AppCmd.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"references":["https://blog.netspi.com/decrypting-iis-passwords-to-break-out-of-the-dmz-part-1/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"appcmd.exe\" or process.pe.original_file_name == \"appcmd.exe\") and\n process.args : \"/list\" and process.args : \"/text*password\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"0564fb9d-90b9-4234-a411-82a546dc1343:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0564fb9d-90b9-4234-a411-82a546dc1343:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0564fb9d-90b9-4234-a411-82a546dc1343:102.0.2.json new file mode 100644 index 0000000000000..3a0fa9df2a65a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0564fb9d-90b9-4234-a411-82a546dc1343:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft IIS Service Account Password Dumped v102.0.2","rule_id":"0564fb9d-90b9-4234-a411-82a546dc1343:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the Internet Information Services (IIS) command-line tool, AppCmd, being used to list passwords. An attacker with IIS web server access via a web shell can decrypt and dump the IIS AppPool service account password using AppCmd.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"references":["https://blog.netspi.com/decrypting-iis-passwords-to-break-out-of-the-dmz-part-1/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"appcmd.exe\" or process.pe.original_file_name == \"appcmd.exe\") and\n process.args : \"/list\" and process.args : \"/text*password\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"0564fb9d-90b9-4234-a411-82a546dc1343:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/05b358de-aa6d-4f6c-89e6-78f74018b43b:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/05b358de-aa6d-4f6c-89e6-78f74018b43b:102.0.0.json new file mode 100644 index 0000000000000..f893ed671d699 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/05b358de-aa6d-4f6c-89e6-78f74018b43b:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Conhost Spawned By Suspicious Parent Process v102.0.0","rule_id":"05b358de-aa6d-4f6c-89e6-78f74018b43b:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when the Console Window Host (conhost.exe) process is spawned by a suspicious parent process, which could be indicative of code injection.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Conhost Spawned By Suspicious Parent Process\n\nThe Windows Console Host, or `conhost.exe`, is both the server application for all of the Windows Console APIs as well as\nthe classic Windows user interface for working with command-line applications.\n\nAttackers often rely on custom shell implementations to avoid using built-in command interpreters like `cmd.exe` and\n`PowerShell.exe` and bypass application allowlisting and security features. Attackers commonly inject these implementations into\nlegitimate system processes.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Retrieve the parent process executable and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- Suspicious Process from Conhost - 28896382-7d4f-4d50-9b72-67091901fd26\n- Suspicious PowerShell Engine ImageLoad - 852c1f19-68e8-43a6-9dce-340771fe1be3\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2017/08/monitoring-windows-console-activity-part-one.html"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"conhost.exe\" and\n process.parent.name : (\"lsass.exe\", \"services.exe\", \"smss.exe\", \"winlogon.exe\", \"explorer.exe\", \"dllhost.exe\", \"rundll32.exe\",\n \"regsvr32.exe\", \"userinit.exe\", \"wininit.exe\", \"spoolsv.exe\", \"ctfmon.exe\") and\n not (process.parent.name : \"rundll32.exe\" and\n process.parent.args : (\"?:\\\\Windows\\\\Installer\\\\MSI*.tmp,zzzzInvokeManagedCustomActionOutOfProc\",\n \"?:\\\\WINDOWS\\\\system32\\\\PcaSvc.dll,PcaPatchSdbTask\",\n \"?:\\\\WINDOWS\\\\system32\\\\davclnt.dll,DavSetCookie\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"05b358de-aa6d-4f6c-89e6-78f74018b43b:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/05b358de-aa6d-4f6c-89e6-78f74018b43b:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/05b358de-aa6d-4f6c-89e6-78f74018b43b:102.0.1.json new file mode 100644 index 0000000000000..6a40ce93c32e0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/05b358de-aa6d-4f6c-89e6-78f74018b43b:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Conhost Spawned By Suspicious Parent Process v102.0.1","rule_id":"05b358de-aa6d-4f6c-89e6-78f74018b43b:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when the Console Window Host (conhost.exe) process is spawned by a suspicious parent process, which could be indicative of code injection.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Conhost Spawned By Suspicious Parent Process\n\nThe Windows Console Host, or `conhost.exe`, is both the server application for all of the Windows Console APIs as well as\nthe classic Windows user interface for working with command-line applications.\n\nAttackers often rely on custom shell implementations to avoid using built-in command interpreters like `cmd.exe` and\n`PowerShell.exe` and bypass application allowlisting and security features. Attackers commonly inject these implementations into\nlegitimate system processes.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Retrieve the parent process executable and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- Suspicious Process from Conhost - 28896382-7d4f-4d50-9b72-67091901fd26\n- Suspicious PowerShell Engine ImageLoad - 852c1f19-68e8-43a6-9dce-340771fe1be3\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2017/08/monitoring-windows-console-activity-part-one.html"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"conhost.exe\" and\n process.parent.name : (\"lsass.exe\", \"services.exe\", \"smss.exe\", \"winlogon.exe\", \"explorer.exe\", \"dllhost.exe\", \"rundll32.exe\",\n \"regsvr32.exe\", \"userinit.exe\", \"wininit.exe\", \"spoolsv.exe\", \"ctfmon.exe\") and\n not (process.parent.name : \"rundll32.exe\" and\n process.parent.args : (\"?:\\\\Windows\\\\Installer\\\\MSI*.tmp,zzzzInvokeManagedCustomActionOutOfProc\",\n \"?:\\\\WINDOWS\\\\system32\\\\PcaSvc.dll,PcaPatchSdbTask\",\n \"?:\\\\WINDOWS\\\\system32\\\\davclnt.dll,DavSetCookie\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"05b358de-aa6d-4f6c-89e6-78f74018b43b:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/05b358de-aa6d-4f6c-89e6-78f74018b43b:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/05b358de-aa6d-4f6c-89e6-78f74018b43b:102.0.2.json new file mode 100644 index 0000000000000..13e02b535def1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/05b358de-aa6d-4f6c-89e6-78f74018b43b:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Conhost Spawned By Suspicious Parent Process v102.0.2","rule_id":"05b358de-aa6d-4f6c-89e6-78f74018b43b:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when the Console Window Host (conhost.exe) process is spawned by a suspicious parent process, which could be indicative of code injection.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Conhost Spawned By Suspicious Parent Process\n\nThe Windows Console Host, or `conhost.exe`, is both the server application for all of the Windows Console APIs as well as\nthe classic Windows user interface for working with command-line applications.\n\nAttackers often rely on custom shell implementations to avoid using built-in command interpreters like `cmd.exe` and\n`PowerShell.exe` and bypass application allowlisting and security features. Attackers commonly inject these implementations into\nlegitimate system processes.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Retrieve the parent process executable and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- Suspicious Process from Conhost - 28896382-7d4f-4d50-9b72-67091901fd26\n- Suspicious PowerShell Engine ImageLoad - 852c1f19-68e8-43a6-9dce-340771fe1be3\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2017/08/monitoring-windows-console-activity-part-one.html"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"conhost.exe\" and\n process.parent.name : (\"lsass.exe\", \"services.exe\", \"smss.exe\", \"winlogon.exe\", \"explorer.exe\", \"dllhost.exe\", \"rundll32.exe\",\n \"regsvr32.exe\", \"userinit.exe\", \"wininit.exe\", \"spoolsv.exe\", \"ctfmon.exe\") and\n not (process.parent.name : \"rundll32.exe\" and\n process.parent.args : (\"?:\\\\Windows\\\\Installer\\\\MSI*.tmp,zzzzInvokeManagedCustomActionOutOfProc\",\n \"?:\\\\WINDOWS\\\\system32\\\\PcaSvc.dll,PcaPatchSdbTask\",\n \"?:\\\\WINDOWS\\\\system32\\\\davclnt.dll,DavSetCookie\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"05b358de-aa6d-4f6c-89e6-78f74018b43b:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/05e5a668-7b51-4a67-93ab-e9af405c9ef3:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/05e5a668-7b51-4a67-93ab-e9af405c9ef3:100.0.0.json new file mode 100644 index 0000000000000..6efff94ea8ec8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/05e5a668-7b51-4a67-93ab-e9af405c9ef3:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Interactive Terminal Spawned via Perl v100.0.0","rule_id":"05e5a668-7b51-4a67-93ab-e9af405c9ef3:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a terminal (tty) is spawned via Perl. Attackers may upgrade a simple reverse shell to a fully interactive tty after obtaining initial access to a host.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:perl and\n process.args:(\"exec \\\"/bin/sh\\\";\" or \"exec \\\"/bin/dash\\\";\" or \"exec \\\"/bin/bash\\\";\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"05e5a668-7b51-4a67-93ab-e9af405c9ef3:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/05e5a668-7b51-4a67-93ab-e9af405c9ef3:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/05e5a668-7b51-4a67-93ab-e9af405c9ef3:100.0.1.json new file mode 100644 index 0000000000000..dada594f6fd53 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/05e5a668-7b51-4a67-93ab-e9af405c9ef3:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Interactive Terminal Spawned via Perl v100.0.1","rule_id":"05e5a668-7b51-4a67-93ab-e9af405c9ef3:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a terminal (tty) is spawned via Perl. Attackers may upgrade a simple reverse shell to a fully interactive tty after obtaining initial access to a host.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:perl and\n process.args:(\"exec \\\"/bin/sh\\\";\" or \"exec \\\"/bin/dash\\\";\" or \"exec \\\"/bin/bash\\\";\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"05e5a668-7b51-4a67-93ab-e9af405c9ef3:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/05e5a668-7b51-4a67-93ab-e9af405c9ef3:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/05e5a668-7b51-4a67-93ab-e9af405c9ef3:100.0.2.json new file mode 100644 index 0000000000000..0d59380b30306 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/05e5a668-7b51-4a67-93ab-e9af405c9ef3:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Interactive Terminal Spawned via Perl v100.0.2","rule_id":"05e5a668-7b51-4a67-93ab-e9af405c9ef3:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a terminal (tty) is spawned via Perl. Attackers may upgrade a simple reverse shell to a fully interactive tty after obtaining initial access to a host.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:perl and\n process.args:(\"exec \\\"/bin/sh\\\";\" or \"exec \\\"/bin/dash\\\";\" or \"exec \\\"/bin/bash\\\";\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"05e5a668-7b51-4a67-93ab-e9af405c9ef3:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0635c542-1b96-4335-9b47-126582d2c19a:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0635c542-1b96-4335-9b47-126582d2c19a:102.0.0.json new file mode 100644 index 0000000000000..af4b12ddb887f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0635c542-1b96-4335-9b47-126582d2c19a:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote System Discovery Commands v102.0.0","rule_id":"0635c542-1b96-4335-9b47-126582d2c19a:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Discovery of remote system information using built-in commands, which may be used to move laterally.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote System Discovery Commands\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `arp` or `nbstat` utilities to enumerate remote systems in the environment,\nwhich is useful for attackers to identify lateral movement targets.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1016","name":"System Network Configuration Discovery","reference":"https://attack.mitre.org/techniques/T1016/"},{"id":"T1018","name":"Remote System Discovery","reference":"https://attack.mitre.org/techniques/T1018/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n ((process.name : \"nbtstat.exe\" and process.args : (\"-n\", \"-s\")) or\n (process.name : \"arp.exe\" and process.args : \"-a\"))\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"0635c542-1b96-4335-9b47-126582d2c19a:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0635c542-1b96-4335-9b47-126582d2c19a:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0635c542-1b96-4335-9b47-126582d2c19a:102.0.1.json new file mode 100644 index 0000000000000..ec88b6d943f8c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0635c542-1b96-4335-9b47-126582d2c19a:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote System Discovery Commands v102.0.1","rule_id":"0635c542-1b96-4335-9b47-126582d2c19a:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Discovery of remote system information using built-in commands, which may be used to move laterally.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote System Discovery Commands\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `arp` or `nbstat` utilities to enumerate remote systems in the environment,\nwhich is useful for attackers to identify lateral movement targets.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1016","name":"System Network Configuration Discovery","reference":"https://attack.mitre.org/techniques/T1016/"},{"id":"T1018","name":"Remote System Discovery","reference":"https://attack.mitre.org/techniques/T1018/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n ((process.name : \"nbtstat.exe\" and process.args : (\"-n\", \"-s\")) or\n (process.name : \"arp.exe\" and process.args : \"-a\"))\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"0635c542-1b96-4335-9b47-126582d2c19a:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0635c542-1b96-4335-9b47-126582d2c19a:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0635c542-1b96-4335-9b47-126582d2c19a:102.0.2.json new file mode 100644 index 0000000000000..0d579aa279b05 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0635c542-1b96-4335-9b47-126582d2c19a:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote System Discovery Commands v102.0.2","rule_id":"0635c542-1b96-4335-9b47-126582d2c19a:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Discovery of remote system information using built-in commands, which may be used to move laterally.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote System Discovery Commands\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `arp` or `nbstat` utilities to enumerate remote systems in the environment,\nwhich is useful for attackers to identify lateral movement targets.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1016","name":"System Network Configuration Discovery","reference":"https://attack.mitre.org/techniques/T1016/"},{"id":"T1018","name":"Remote System Discovery","reference":"https://attack.mitre.org/techniques/T1018/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n ((process.name : \"nbtstat.exe\" and process.args : (\"-n\", \"-s\")) or\n (process.name : \"arp.exe\" and process.args : \"-a\"))\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"0635c542-1b96-4335-9b47-126582d2c19a:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/06dceabf-adca-48af-ac79-ffdf4c3b1e9a:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/06dceabf-adca-48af-ac79-ffdf4c3b1e9a:102.0.0.json new file mode 100644 index 0000000000000..d7eef87c7eb53 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/06dceabf-adca-48af-ac79-ffdf4c3b1e9a:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Evasion via Filter Manager v102.0.0","rule_id":"06dceabf-adca-48af-ac79-ffdf4c3b1e9a:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The Filter Manager Control Program (fltMC.exe) binary may be abused by adversaries to unload a filter driver and evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"fltMC.exe\" and process.args : \"unload\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"06dceabf-adca-48af-ac79-ffdf4c3b1e9a:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/06dceabf-adca-48af-ac79-ffdf4c3b1e9a:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/06dceabf-adca-48af-ac79-ffdf4c3b1e9a:102.0.1.json new file mode 100644 index 0000000000000..52e267664290f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/06dceabf-adca-48af-ac79-ffdf4c3b1e9a:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Evasion via Filter Manager v102.0.1","rule_id":"06dceabf-adca-48af-ac79-ffdf4c3b1e9a:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The Filter Manager Control Program (fltMC.exe) binary may be abused by adversaries to unload a filter driver and evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"fltMC.exe\" and process.args : \"unload\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"06dceabf-adca-48af-ac79-ffdf4c3b1e9a:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/06dceabf-adca-48af-ac79-ffdf4c3b1e9a:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/06dceabf-adca-48af-ac79-ffdf4c3b1e9a:102.0.2.json new file mode 100644 index 0000000000000..c9d5aa9ee928d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/06dceabf-adca-48af-ac79-ffdf4c3b1e9a:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Evasion via Filter Manager v102.0.2","rule_id":"06dceabf-adca-48af-ac79-ffdf4c3b1e9a:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The Filter Manager Control Program (fltMC.exe) binary may be abused by adversaries to unload a filter driver and evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"fltMC.exe\" and process.args : \"unload\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"06dceabf-adca-48af-ac79-ffdf4c3b1e9a:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/074464f9-f30d-4029-8c03-0ed237fffec7:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/074464f9-f30d-4029-8c03-0ed237fffec7:102.0.0.json new file mode 100644 index 0000000000000..73f630587b907 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/074464f9-f30d-4029-8c03-0ed237fffec7:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote Desktop Enabled in Windows Firewall by Netsh v102.0.0","rule_id":"074464f9-f30d-4029-8c03-0ed237fffec7:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the network shell utility (netsh.exe) to enable inbound Remote Desktop Protocol (RDP) connections in the Windows Firewall.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote Desktop Enabled in Windows Firewall by Netsh\n\nMicrosoft Remote Desktop Protocol (RDP) is a proprietary Microsoft protocol that enables remote connections to other\ncomputers, typically over TCP port 3389.\n\nAttackers can use RDP to conduct their actions interactively. Ransomware operators frequently use RDP to access\nvictim servers, often using privileged accounts.\n\nThis rule detects the creation of a Windows Firewall inbound rule that would allow inbound RDP traffic using the\n`netsh.exe` utility.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the user to check if they are aware of the operation.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check whether it makes sense to enable RDP to this host, given its role in the environment.\n- Check if the host is directly exposed to the internet.\n- Check whether privileged accounts accessed the host shortly after the modification.\n- Review network events within a short timespan of this alert for incoming RDP connection attempts.\n\n### False positive analysis\n\n- The `netsh.exe` utility can be used legitimately. Check whether the user should be performing this kind of activity, whether the user is aware\nof it, whether RDP should be open, and whether the action exposes the environment to unnecessary risks.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If RDP is needed, make sure to secure it:\n - Allowlist RDP traffic to specific trusted hosts.\n - Restrict RDP logins to authorized non-administrator accounts, where possible.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.004","name":"Disable or Modify System Firewall","reference":"https://attack.mitre.org/techniques/T1562/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"netsh.exe\" or process.pe.original_file_name == \"netsh.exe\") and\n process.args : (\"localport=3389\", \"RemoteDesktop\", \"group=\\\"remote desktop\\\"\") and\n process.args : (\"action=allow\", \"enable=Yes\", \"enable\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"074464f9-f30d-4029-8c03-0ed237fffec7:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/074464f9-f30d-4029-8c03-0ed237fffec7:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/074464f9-f30d-4029-8c03-0ed237fffec7:102.0.1.json new file mode 100644 index 0000000000000..c52620431d693 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/074464f9-f30d-4029-8c03-0ed237fffec7:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote Desktop Enabled in Windows Firewall by Netsh v102.0.1","rule_id":"074464f9-f30d-4029-8c03-0ed237fffec7:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the network shell utility (netsh.exe) to enable inbound Remote Desktop Protocol (RDP) connections in the Windows Firewall.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote Desktop Enabled in Windows Firewall by Netsh\n\nMicrosoft Remote Desktop Protocol (RDP) is a proprietary Microsoft protocol that enables remote connections to other\ncomputers, typically over TCP port 3389.\n\nAttackers can use RDP to conduct their actions interactively. Ransomware operators frequently use RDP to access\nvictim servers, often using privileged accounts.\n\nThis rule detects the creation of a Windows Firewall inbound rule that would allow inbound RDP traffic using the\n`netsh.exe` utility.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the user to check if they are aware of the operation.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check whether it makes sense to enable RDP to this host, given its role in the environment.\n- Check if the host is directly exposed to the internet.\n- Check whether privileged accounts accessed the host shortly after the modification.\n- Review network events within a short timespan of this alert for incoming RDP connection attempts.\n\n### False positive analysis\n\n- The `netsh.exe` utility can be used legitimately. Check whether the user should be performing this kind of activity, whether the user is aware\nof it, whether RDP should be open, and whether the action exposes the environment to unnecessary risks.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If RDP is needed, make sure to secure it:\n - Allowlist RDP traffic to specific trusted hosts.\n - Restrict RDP logins to authorized non-administrator accounts, where possible.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.004","name":"Disable or Modify System Firewall","reference":"https://attack.mitre.org/techniques/T1562/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"netsh.exe\" or process.pe.original_file_name == \"netsh.exe\") and\n process.args : (\"localport=3389\", \"RemoteDesktop\", \"group=\\\"remote desktop\\\"\") and\n process.args : (\"action=allow\", \"enable=Yes\", \"enable\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"074464f9-f30d-4029-8c03-0ed237fffec7:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/074464f9-f30d-4029-8c03-0ed237fffec7:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/074464f9-f30d-4029-8c03-0ed237fffec7:102.0.2.json new file mode 100644 index 0000000000000..9571eba79334b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/074464f9-f30d-4029-8c03-0ed237fffec7:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote Desktop Enabled in Windows Firewall by Netsh v102.0.2","rule_id":"074464f9-f30d-4029-8c03-0ed237fffec7:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the network shell utility (netsh.exe) to enable inbound Remote Desktop Protocol (RDP) connections in the Windows Firewall.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote Desktop Enabled in Windows Firewall by Netsh\n\nMicrosoft Remote Desktop Protocol (RDP) is a proprietary Microsoft protocol that enables remote connections to other\ncomputers, typically over TCP port 3389.\n\nAttackers can use RDP to conduct their actions interactively. Ransomware operators frequently use RDP to access\nvictim servers, often using privileged accounts.\n\nThis rule detects the creation of a Windows Firewall inbound rule that would allow inbound RDP traffic using the\n`netsh.exe` utility.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the user to check if they are aware of the operation.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check whether it makes sense to enable RDP to this host, given its role in the environment.\n- Check if the host is directly exposed to the internet.\n- Check whether privileged accounts accessed the host shortly after the modification.\n- Review network events within a short timespan of this alert for incoming RDP connection attempts.\n\n### False positive analysis\n\n- The `netsh.exe` utility can be used legitimately. Check whether the user should be performing this kind of activity, whether the user is aware\nof it, whether RDP should be open, and whether the action exposes the environment to unnecessary risks.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If RDP is needed, make sure to secure it:\n - Allowlist RDP traffic to specific trusted hosts.\n - Restrict RDP logins to authorized non-administrator accounts, where possible.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.004","name":"Disable or Modify System Firewall","reference":"https://attack.mitre.org/techniques/T1562/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"netsh.exe\" or process.pe.original_file_name == \"netsh.exe\") and\n process.args : (\"localport=3389\", \"RemoteDesktop\", \"group=\\\"remote desktop\\\"\") and\n process.args : (\"action=allow\", \"enable=Yes\", \"enable\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"074464f9-f30d-4029-8c03-0ed237fffec7:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/07b1ef73-1fde-4a49-a34a-5dd40011b076:1.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/07b1ef73-1fde-4a49-a34a-5dd40011b076:1.0.0.json new file mode 100644 index 0000000000000..2edf5378739c6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/07b1ef73-1fde-4a49-a34a-5dd40011b076:1.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Local Account TokenFilter Policy Disabled v1.0.0","rule_id":"07b1ef73-1fde-4a49-a34a-5dd40011b076:1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies registry modification to the LocalAccountTokenFilterPolicy policy. If this value exists (which doesn't by default) and is set to 1, then remote connections from all local members of Administrators are granted full high-integrity tokens during negotiation.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.stigviewer.com/stig/windows_server_2008_r2_member_server/2014-04-02/finding/V-36439","https://posts.specterops.io/pass-the-hash-is-dead-long-live-localaccounttokenfilterpolicy-506c25a7c167","https://www.welivesecurity.com/wp-content/uploads/2018/01/ESET_Turla_Mosquito.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Privilege Escalation","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1112","name":"Modify Registry","reference":"https://attack.mitre.org/techniques/T1112/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.003","name":"Local Accounts","reference":"https://attack.mitre.org/techniques/T1078/003/"}]}]}],"language":"eql","query":"registry where registry.path : (\n \"HKLM\\\\*\\\\LocalAccountTokenFilterPolicy\",\n \"\\\\REGISTRY\\\\MACHINE\\\\*\\\\LocalAccountTokenFilterPolicy\") and\n registry.data.strings : (\"1\", \"0x00000001\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"07b1ef73-1fde-4a49-a34a-5dd40011b076:1.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/07b1ef73-1fde-4a49-a34a-5dd40011b076:1.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/07b1ef73-1fde-4a49-a34a-5dd40011b076:1.0.1.json new file mode 100644 index 0000000000000..a5083df580475 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/07b1ef73-1fde-4a49-a34a-5dd40011b076:1.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Local Account TokenFilter Policy Disabled v1.0.1","rule_id":"07b1ef73-1fde-4a49-a34a-5dd40011b076:1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies registry modification to the LocalAccountTokenFilterPolicy policy. If this value exists (which doesn't by default) and is set to 1, then remote connections from all local members of Administrators are granted full high-integrity tokens during negotiation.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.stigviewer.com/stig/windows_server_2008_r2_member_server/2014-04-02/finding/V-36439","https://posts.specterops.io/pass-the-hash-is-dead-long-live-localaccounttokenfilterpolicy-506c25a7c167","https://www.welivesecurity.com/wp-content/uploads/2018/01/ESET_Turla_Mosquito.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Privilege Escalation","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1112","name":"Modify Registry","reference":"https://attack.mitre.org/techniques/T1112/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.003","name":"Local Accounts","reference":"https://attack.mitre.org/techniques/T1078/003/"}]}]}],"language":"eql","query":"registry where registry.path : (\n \"HKLM\\\\*\\\\LocalAccountTokenFilterPolicy\",\n \"\\\\REGISTRY\\\\MACHINE\\\\*\\\\LocalAccountTokenFilterPolicy\") and\n registry.data.strings : (\"1\", \"0x00000001\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"07b1ef73-1fde-4a49-a34a-5dd40011b076:1.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/07b1ef73-1fde-4a49-a34a-5dd40011b076:1.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/07b1ef73-1fde-4a49-a34a-5dd40011b076:1.0.2.json new file mode 100644 index 0000000000000..0d2da41d3d146 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/07b1ef73-1fde-4a49-a34a-5dd40011b076:1.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Local Account TokenFilter Policy Disabled v1.0.2","rule_id":"07b1ef73-1fde-4a49-a34a-5dd40011b076:1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies registry modification to the LocalAccountTokenFilterPolicy policy. If this value exists (which doesn't by default) and is set to 1, then remote connections from all local members of Administrators are granted full high-integrity tokens during negotiation.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.stigviewer.com/stig/windows_server_2008_r2_member_server/2014-04-02/finding/V-36439","https://posts.specterops.io/pass-the-hash-is-dead-long-live-localaccounttokenfilterpolicy-506c25a7c167","https://www.welivesecurity.com/wp-content/uploads/2018/01/ESET_Turla_Mosquito.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Privilege Escalation","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1112","name":"Modify Registry","reference":"https://attack.mitre.org/techniques/T1112/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.003","name":"Local Accounts","reference":"https://attack.mitre.org/techniques/T1078/003/"}]}]}],"language":"eql","query":"registry where registry.path : (\n \"HKLM\\\\*\\\\LocalAccountTokenFilterPolicy\",\n \"\\\\REGISTRY\\\\MACHINE\\\\*\\\\LocalAccountTokenFilterPolicy\") and\n registry.data.strings : (\"1\", \"0x00000001\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"07b1ef73-1fde-4a49-a34a-5dd40011b076:1.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/07b5f85a-240f-11ed-b3d9-f661ea17fbce:2.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/07b5f85a-240f-11ed-b3d9-f661ea17fbce:2.0.0.json new file mode 100644 index 0000000000000..e01aebdc43fe0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/07b5f85a-240f-11ed-b3d9-f661ea17fbce:2.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Drive Ownership Transferred via Google Workspace v2.0.0","rule_id":"07b5f85a-240f-11ed-b3d9-f661ea17fbce:2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Drive and Docs is a Google Workspace service that allows users to leverage Google Drive and Google Docs. Access to files is based on inherited permissions from the child organizational unit the user belongs to which is scoped by administrators. Typically if a user is removed, their files can be transferred to another user by the administrator. This service can also be abused by adversaries to transfer files to an adversary account for potential exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrators may transfer file ownership during employee leave or absence to ensure continued operations by a new or existing employee."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/1247799?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Collection"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1074","name":"Data Staged","reference":"https://attack.mitre.org/techniques/T1074/","subtechnique":[{"id":"T1074.002","name":"Remote Data Staging","reference":"https://attack.mitre.org/techniques/T1074/002/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:\"CREATE_DATA_TRANSFER_REQUEST\"\n and event.category:\"iam\" and google_workspace.admin.application.name:Drive*\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.application.name","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"07b5f85a-240f-11ed-b3d9-f661ea17fbce:2.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/07b5f85a-240f-11ed-b3d9-f661ea17fbce:2.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/07b5f85a-240f-11ed-b3d9-f661ea17fbce:2.0.1.json new file mode 100644 index 0000000000000..b54b622f54dc6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/07b5f85a-240f-11ed-b3d9-f661ea17fbce:2.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Drive Ownership Transferred via Google Workspace v2.0.1","rule_id":"07b5f85a-240f-11ed-b3d9-f661ea17fbce:2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Drive and Docs is a Google Workspace service that allows users to leverage Google Drive and Google Docs. Access to files is based on inherited permissions from the child organizational unit the user belongs to which is scoped by administrators. Typically if a user is removed, their files can be transferred to another user by the administrator. This service can also be abused by adversaries to transfer files to an adversary account for potential exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrators may transfer file ownership during employee leave or absence to ensure continued operations by a new or existing employee."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/1247799?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Collection"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1074","name":"Data Staged","reference":"https://attack.mitre.org/techniques/T1074/","subtechnique":[{"id":"T1074.002","name":"Remote Data Staging","reference":"https://attack.mitre.org/techniques/T1074/002/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:\"CREATE_DATA_TRANSFER_REQUEST\"\n and event.category:\"iam\" and google_workspace.admin.application.name:Drive*\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.application.name","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"07b5f85a-240f-11ed-b3d9-f661ea17fbce:2.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/07b5f85a-240f-11ed-b3d9-f661ea17fbce:2.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/07b5f85a-240f-11ed-b3d9-f661ea17fbce:2.0.2.json new file mode 100644 index 0000000000000..a6fe406bc79fe --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/07b5f85a-240f-11ed-b3d9-f661ea17fbce:2.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Drive Ownership Transferred via Google Workspace v2.0.2","rule_id":"07b5f85a-240f-11ed-b3d9-f661ea17fbce:2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Drive and Docs is a Google Workspace service that allows users to leverage Google Drive and Google Docs. Access to files is based on inherited permissions from the child organizational unit the user belongs to which is scoped by administrators. Typically if a user is removed, their files can be transferred to another user by the administrator. This service can also be abused by adversaries to transfer files to an adversary account for potential exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrators may transfer file ownership during employee leave or absence to ensure continued operations by a new or existing employee."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/1247799?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Collection"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1074","name":"Data Staged","reference":"https://attack.mitre.org/techniques/T1074/","subtechnique":[{"id":"T1074.002","name":"Remote Data Staging","reference":"https://attack.mitre.org/techniques/T1074/002/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:\"CREATE_DATA_TRANSFER_REQUEST\"\n and event.category:\"iam\" and google_workspace.admin.application.name:Drive*\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.application.name","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"07b5f85a-240f-11ed-b3d9-f661ea17fbce:2.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/080bc66a-5d56-4d1f-8071-817671716db9:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/080bc66a-5d56-4d1f-8071-817671716db9:100.0.0.json new file mode 100644 index 0000000000000..51c4ea4975ac1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/080bc66a-5d56-4d1f-8071-817671716db9:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Browser Child Process v100.0.0","rule_id":"080bc66a-5d56-4d1f-8071-817671716db9:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a suspicious browser child process. Adversaries may gain access to a system through a user visiting a website over the normal course of browsing. With this technique, the user's web browser is typically targeted for exploitation.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://objective-see.com/blog/blog_0x43.html","https://fr.slideshare.net/codeblue_jp/cb19-recent-apt-attack-on-crypto-exchange-employees-by-heungsoo-kang"],"tags":["Elastic","Host","macOS","Threat Detection","Initial Access","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1203","name":"Exploitation for Client Execution","reference":"https://attack.mitre.org/techniques/T1203/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1189","name":"Drive-by Compromise","reference":"https://attack.mitre.org/techniques/T1189/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.parent.name : (\"Google Chrome\", \"Google Chrome Helper*\", \"firefox\", \"Opera\", \"Safari\", \"com.apple.WebKit.WebContent\", \"Microsoft Edge\") and\n process.name : (\"sh\", \"bash\", \"dash\", \"ksh\", \"tcsh\", \"zsh\", \"curl\", \"wget\", \"python*\", \"perl*\", \"php*\", \"osascript\", \"pwsh\") and\n process.command_line != null and\n not process.command_line : \"*/Library/Application Support/Microsoft/MAU*/Microsoft AutoUpdate.app/Contents/MacOS/msupdate*\" and\n not process.args :\n (\n \"hw.model\",\n \"IOPlatformExpertDevice\",\n \"/Volumes/Google Chrome/Google Chrome.app/Contents/Frameworks/*/Resources/install.sh\",\n \"--defaults-torrc\",\n \"*Chrome.app\",\n \"Framework.framework/Versions/*/Resources/keystone_promote_preflight.sh\",\n \"/Users/*/Library/Application Support/Google/Chrome/recovery/*/ChromeRecovery\",\n \"$DISPLAY\",\n \"*GIO_LAUNCHED_DESKTOP_FILE_PID=$$*\",\n \"/opt/homebrew/*\",\n \"/usr/local/*brew*\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},"id":"080bc66a-5d56-4d1f-8071-817671716db9:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/080bc66a-5d56-4d1f-8071-817671716db9:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/080bc66a-5d56-4d1f-8071-817671716db9:100.0.1.json new file mode 100644 index 0000000000000..37cb030693110 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/080bc66a-5d56-4d1f-8071-817671716db9:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Browser Child Process v100.0.1","rule_id":"080bc66a-5d56-4d1f-8071-817671716db9:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a suspicious browser child process. Adversaries may gain access to a system through a user visiting a website over the normal course of browsing. With this technique, the user's web browser is typically targeted for exploitation.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://objective-see.com/blog/blog_0x43.html","https://fr.slideshare.net/codeblue_jp/cb19-recent-apt-attack-on-crypto-exchange-employees-by-heungsoo-kang"],"tags":["Elastic","Host","macOS","Threat Detection","Initial Access","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1203","name":"Exploitation for Client Execution","reference":"https://attack.mitre.org/techniques/T1203/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1189","name":"Drive-by Compromise","reference":"https://attack.mitre.org/techniques/T1189/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.parent.name : (\"Google Chrome\", \"Google Chrome Helper*\", \"firefox\", \"Opera\", \"Safari\", \"com.apple.WebKit.WebContent\", \"Microsoft Edge\") and\n process.name : (\"sh\", \"bash\", \"dash\", \"ksh\", \"tcsh\", \"zsh\", \"curl\", \"wget\", \"python*\", \"perl*\", \"php*\", \"osascript\", \"pwsh\") and\n process.command_line != null and\n not process.command_line : \"*/Library/Application Support/Microsoft/MAU*/Microsoft AutoUpdate.app/Contents/MacOS/msupdate*\" and\n not process.args :\n (\n \"hw.model\",\n \"IOPlatformExpertDevice\",\n \"/Volumes/Google Chrome/Google Chrome.app/Contents/Frameworks/*/Resources/install.sh\",\n \"--defaults-torrc\",\n \"*Chrome.app\",\n \"Framework.framework/Versions/*/Resources/keystone_promote_preflight.sh\",\n \"/Users/*/Library/Application Support/Google/Chrome/recovery/*/ChromeRecovery\",\n \"$DISPLAY\",\n \"*GIO_LAUNCHED_DESKTOP_FILE_PID=$$*\",\n \"/opt/homebrew/*\",\n \"/usr/local/*brew*\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},"id":"080bc66a-5d56-4d1f-8071-817671716db9:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/080bc66a-5d56-4d1f-8071-817671716db9:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/080bc66a-5d56-4d1f-8071-817671716db9:100.0.2.json new file mode 100644 index 0000000000000..70821a642a6be --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/080bc66a-5d56-4d1f-8071-817671716db9:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Browser Child Process v100.0.2","rule_id":"080bc66a-5d56-4d1f-8071-817671716db9:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a suspicious browser child process. Adversaries may gain access to a system through a user visiting a website over the normal course of browsing. With this technique, the user's web browser is typically targeted for exploitation.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://objective-see.com/blog/blog_0x43.html","https://fr.slideshare.net/codeblue_jp/cb19-recent-apt-attack-on-crypto-exchange-employees-by-heungsoo-kang"],"tags":["Elastic","Host","macOS","Threat Detection","Initial Access","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1203","name":"Exploitation for Client Execution","reference":"https://attack.mitre.org/techniques/T1203/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1189","name":"Drive-by Compromise","reference":"https://attack.mitre.org/techniques/T1189/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.parent.name : (\"Google Chrome\", \"Google Chrome Helper*\", \"firefox\", \"Opera\", \"Safari\", \"com.apple.WebKit.WebContent\", \"Microsoft Edge\") and\n process.name : (\"sh\", \"bash\", \"dash\", \"ksh\", \"tcsh\", \"zsh\", \"curl\", \"wget\", \"python*\", \"perl*\", \"php*\", \"osascript\", \"pwsh\") and\n process.command_line != null and\n not process.command_line : \"*/Library/Application Support/Microsoft/MAU*/Microsoft AutoUpdate.app/Contents/MacOS/msupdate*\" and\n not process.args :\n (\n \"hw.model\",\n \"IOPlatformExpertDevice\",\n \"/Volumes/Google Chrome/Google Chrome.app/Contents/Frameworks/*/Resources/install.sh\",\n \"--defaults-torrc\",\n \"*Chrome.app\",\n \"Framework.framework/Versions/*/Resources/keystone_promote_preflight.sh\",\n \"/Users/*/Library/Application Support/Google/Chrome/recovery/*/ChromeRecovery\",\n \"$DISPLAY\",\n \"*GIO_LAUNCHED_DESKTOP_FILE_PID=$$*\",\n \"/opt/homebrew/*\",\n \"/usr/local/*brew*\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},"id":"080bc66a-5d56-4d1f-8071-817671716db9:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/082e3f8c-6f80-485c-91eb-5b112cb79b28:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/082e3f8c-6f80-485c-91eb-5b112cb79b28:100.0.0.json new file mode 100644 index 0000000000000..2d6a12b0c5511 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/082e3f8c-6f80-485c-91eb-5b112cb79b28:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Launch Agent Creation or Modification and Immediate Loading v100.0.0","rule_id":"082e3f8c-6f80-485c-91eb-5b112cb79b28:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary can establish persistence by installing a new launch agent that executes at login by using launchd or launchctl to load a plist into the appropriate directories.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Trusted applications persisting via LaunchAgent"],"from":"now-9m","references":["https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.001","name":"Launch Agent","reference":"https://attack.mitre.org/techniques/T1543/001/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n [file where event.type != \"deletion\" and\n file.path : (\"/System/Library/LaunchAgents/*\", \"/Library/LaunchAgents/*\", \"/Users/*/Library/LaunchAgents/*\")\n ]\n [process where event.type in (\"start\", \"process_started\") and process.name == \"launchctl\" and process.args == \"load\"]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"082e3f8c-6f80-485c-91eb-5b112cb79b28:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/082e3f8c-6f80-485c-91eb-5b112cb79b28:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/082e3f8c-6f80-485c-91eb-5b112cb79b28:100.0.1.json new file mode 100644 index 0000000000000..81d2c8457631f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/082e3f8c-6f80-485c-91eb-5b112cb79b28:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Launch Agent Creation or Modification and Immediate Loading v100.0.1","rule_id":"082e3f8c-6f80-485c-91eb-5b112cb79b28:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary can establish persistence by installing a new launch agent that executes at login by using launchd or launchctl to load a plist into the appropriate directories.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Trusted applications persisting via LaunchAgent"],"from":"now-9m","references":["https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.001","name":"Launch Agent","reference":"https://attack.mitre.org/techniques/T1543/001/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n [file where event.type != \"deletion\" and\n file.path : (\"/System/Library/LaunchAgents/*\", \"/Library/LaunchAgents/*\", \"/Users/*/Library/LaunchAgents/*\")\n ]\n [process where event.type in (\"start\", \"process_started\") and process.name == \"launchctl\" and process.args == \"load\"]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"082e3f8c-6f80-485c-91eb-5b112cb79b28:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/082e3f8c-6f80-485c-91eb-5b112cb79b28:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/082e3f8c-6f80-485c-91eb-5b112cb79b28:100.0.2.json new file mode 100644 index 0000000000000..83107d2ff4c10 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/082e3f8c-6f80-485c-91eb-5b112cb79b28:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Launch Agent Creation or Modification and Immediate Loading v100.0.2","rule_id":"082e3f8c-6f80-485c-91eb-5b112cb79b28:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary can establish persistence by installing a new launch agent that executes at login by using launchd or launchctl to load a plist into the appropriate directories.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Trusted applications persisting via LaunchAgent"],"from":"now-9m","references":["https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.001","name":"Launch Agent","reference":"https://attack.mitre.org/techniques/T1543/001/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n [file where event.type != \"deletion\" and\n file.path : (\"/System/Library/LaunchAgents/*\", \"/Library/LaunchAgents/*\", \"/Users/*/Library/LaunchAgents/*\")\n ]\n [process where event.type in (\"start\", \"process_started\") and process.name == \"launchctl\" and process.args == \"load\"]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"082e3f8c-6f80-485c-91eb-5b112cb79b28:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/083fa162-e790-4d85-9aeb-4fea04188adb:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/083fa162-e790-4d85-9aeb-4fea04188adb:100.0.0.json new file mode 100644 index 0000000000000..22be1030f4a26 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/083fa162-e790-4d85-9aeb-4fea04188adb:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Hidden Child Process of Launchd v100.0.0","rule_id":"083fa162-e790-4d85-9aeb-4fea04188adb:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a launchd child process with a hidden file. An adversary can establish persistence by installing a new logon item, launch agent, or daemon that executes upon login.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://objective-see.com/blog/blog_0x61.html","https://www.intezer.com/blog/research/operation-electrorat-attacker-creates-fake-companies-to-drain-your-crypto-wallets/","https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.001","name":"Launch Agent","reference":"https://attack.mitre.org/techniques/T1543/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.001","name":"Hidden Files and Directories","reference":"https://attack.mitre.org/techniques/T1564/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:.* and process.parent.executable:/sbin/launchd\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},"id":"083fa162-e790-4d85-9aeb-4fea04188adb:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/083fa162-e790-4d85-9aeb-4fea04188adb:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/083fa162-e790-4d85-9aeb-4fea04188adb:100.0.1.json new file mode 100644 index 0000000000000..b30e15fc42f54 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/083fa162-e790-4d85-9aeb-4fea04188adb:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Hidden Child Process of Launchd v100.0.1","rule_id":"083fa162-e790-4d85-9aeb-4fea04188adb:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a launchd child process with a hidden file. An adversary can establish persistence by installing a new logon item, launch agent, or daemon that executes upon login.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://objective-see.com/blog/blog_0x61.html","https://www.intezer.com/blog/research/operation-electrorat-attacker-creates-fake-companies-to-drain-your-crypto-wallets/","https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.001","name":"Launch Agent","reference":"https://attack.mitre.org/techniques/T1543/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.001","name":"Hidden Files and Directories","reference":"https://attack.mitre.org/techniques/T1564/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:.* and process.parent.executable:/sbin/launchd\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},"id":"083fa162-e790-4d85-9aeb-4fea04188adb:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/083fa162-e790-4d85-9aeb-4fea04188adb:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/083fa162-e790-4d85-9aeb-4fea04188adb:100.0.2.json new file mode 100644 index 0000000000000..44ccda6b277b7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/083fa162-e790-4d85-9aeb-4fea04188adb:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Hidden Child Process of Launchd v100.0.2","rule_id":"083fa162-e790-4d85-9aeb-4fea04188adb:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a launchd child process with a hidden file. An adversary can establish persistence by installing a new logon item, launch agent, or daemon that executes upon login.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://objective-see.com/blog/blog_0x61.html","https://www.intezer.com/blog/research/operation-electrorat-attacker-creates-fake-companies-to-drain-your-crypto-wallets/","https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.001","name":"Launch Agent","reference":"https://attack.mitre.org/techniques/T1543/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.001","name":"Hidden Files and Directories","reference":"https://attack.mitre.org/techniques/T1564/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:.* and process.parent.executable:/sbin/launchd\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},"id":"083fa162-e790-4d85-9aeb-4fea04188adb:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/092b068f-84ac-485d-8a55-7dd9e006715f:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/092b068f-84ac-485d-8a55-7dd9e006715f:100.0.0.json new file mode 100644 index 0000000000000..d4708ead9dcee --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/092b068f-84ac-485d-8a55-7dd9e006715f:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Creation of Hidden Launch Agent or Daemon v100.0.0","rule_id":"092b068f-84ac-485d-8a55-7dd9e006715f:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a hidden launch agent or daemon. An adversary may establish persistence by installing a new launch agent or daemon which executes at login.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.001","name":"Launch Agent","reference":"https://attack.mitre.org/techniques/T1543/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.001","name":"Hidden Files and Directories","reference":"https://attack.mitre.org/techniques/T1564/001/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path :\n (\n \"/System/Library/LaunchAgents/.*.plist\",\n \"/Library/LaunchAgents/.*.plist\",\n \"/Users/*/Library/LaunchAgents/.*.plist\",\n \"/System/Library/LaunchDaemons/.*.plist\",\n \"/Library/LaunchDaemons/.*.plist\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"092b068f-84ac-485d-8a55-7dd9e006715f:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/092b068f-84ac-485d-8a55-7dd9e006715f:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/092b068f-84ac-485d-8a55-7dd9e006715f:100.0.1.json new file mode 100644 index 0000000000000..24e3e00888b0a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/092b068f-84ac-485d-8a55-7dd9e006715f:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Creation of Hidden Launch Agent or Daemon v100.0.1","rule_id":"092b068f-84ac-485d-8a55-7dd9e006715f:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a hidden launch agent or daemon. An adversary may establish persistence by installing a new launch agent or daemon which executes at login.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.001","name":"Launch Agent","reference":"https://attack.mitre.org/techniques/T1543/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.001","name":"Hidden Files and Directories","reference":"https://attack.mitre.org/techniques/T1564/001/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path :\n (\n \"/System/Library/LaunchAgents/.*.plist\",\n \"/Library/LaunchAgents/.*.plist\",\n \"/Users/*/Library/LaunchAgents/.*.plist\",\n \"/System/Library/LaunchDaemons/.*.plist\",\n \"/Library/LaunchDaemons/.*.plist\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"092b068f-84ac-485d-8a55-7dd9e006715f:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/092b068f-84ac-485d-8a55-7dd9e006715f:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/092b068f-84ac-485d-8a55-7dd9e006715f:100.0.2.json new file mode 100644 index 0000000000000..8fb5539388fb1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/092b068f-84ac-485d-8a55-7dd9e006715f:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Creation of Hidden Launch Agent or Daemon v100.0.2","rule_id":"092b068f-84ac-485d-8a55-7dd9e006715f:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a hidden launch agent or daemon. An adversary may establish persistence by installing a new launch agent or daemon which executes at login.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.001","name":"Launch Agent","reference":"https://attack.mitre.org/techniques/T1543/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.001","name":"Hidden Files and Directories","reference":"https://attack.mitre.org/techniques/T1564/001/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path :\n (\n \"/System/Library/LaunchAgents/.*.plist\",\n \"/Library/LaunchAgents/.*.plist\",\n \"/Users/*/Library/LaunchAgents/.*.plist\",\n \"/System/Library/LaunchDaemons/.*.plist\",\n \"/Library/LaunchDaemons/.*.plist\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"092b068f-84ac-485d-8a55-7dd9e006715f:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/09443c92-46b3-45a4-8f25-383b028b258d:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/09443c92-46b3-45a4-8f25-383b028b258d:101.0.0.json new file mode 100644 index 0000000000000..a6e92b84e4ffd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/09443c92-46b3-45a4-8f25-383b028b258d:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Process Termination followed by Deletion v101.0.0","rule_id":"09443c92-46b3-45a4-8f25-383b028b258d:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a process termination event quickly followed by the deletion of its executable file. Malware tools and other non-native files dropped or created on a system by an adversary may leave traces to indicate to what occurred. Removal of these files can occur during an intrusion, or as part of a post-intrusion process to minimize the adversary's footprint.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.004","name":"File Deletion","reference":"https://attack.mitre.org/techniques/T1070/004/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=5s\n [process where event.type == \"end\" and\n process.code_signature.trusted != true and\n not process.executable : (\"C:\\\\Windows\\\\SoftwareDistribution\\\\*.exe\", \"C:\\\\Windows\\\\WinSxS\\\\*.exe\")\n ] by process.executable\n [file where event.type == \"deletion\" and file.extension : (\"exe\", \"scr\", \"com\") and\n not process.executable :\n (\"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Windows\\\\System32\\\\drvinst.exe\") and\n not file.path : (\"?:\\\\Program Files\\\\*.exe\", \"?:\\\\Program Files (x86)\\\\*.exe\")\n ] by file.path\n","type":"eql","index":["logs-endpoint.events.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.executable","type":"keyword"}]},"id":"09443c92-46b3-45a4-8f25-383b028b258d:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/09443c92-46b3-45a4-8f25-383b028b258d:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/09443c92-46b3-45a4-8f25-383b028b258d:101.0.1.json new file mode 100644 index 0000000000000..be084f6257721 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/09443c92-46b3-45a4-8f25-383b028b258d:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Process Termination followed by Deletion v101.0.1","rule_id":"09443c92-46b3-45a4-8f25-383b028b258d:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a process termination event quickly followed by the deletion of its executable file. Malware tools and other non-native files dropped or created on a system by an adversary may leave traces to indicate to what occurred. Removal of these files can occur during an intrusion, or as part of a post-intrusion process to minimize the adversary's footprint.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.004","name":"File Deletion","reference":"https://attack.mitre.org/techniques/T1070/004/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=5s\n [process where event.type == \"end\" and\n process.code_signature.trusted != true and\n not process.executable : (\"C:\\\\Windows\\\\SoftwareDistribution\\\\*.exe\", \"C:\\\\Windows\\\\WinSxS\\\\*.exe\")\n ] by process.executable\n [file where event.type == \"deletion\" and file.extension : (\"exe\", \"scr\", \"com\") and\n not process.executable :\n (\"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Windows\\\\System32\\\\drvinst.exe\") and\n not file.path : (\"?:\\\\Program Files\\\\*.exe\", \"?:\\\\Program Files (x86)\\\\*.exe\")\n ] by file.path\n","type":"eql","index":["logs-endpoint.events.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.executable","type":"keyword"}]},"id":"09443c92-46b3-45a4-8f25-383b028b258d:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/09443c92-46b3-45a4-8f25-383b028b258d:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/09443c92-46b3-45a4-8f25-383b028b258d:101.0.2.json new file mode 100644 index 0000000000000..85f7d5f4a0adc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/09443c92-46b3-45a4-8f25-383b028b258d:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Process Termination followed by Deletion v101.0.2","rule_id":"09443c92-46b3-45a4-8f25-383b028b258d:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a process termination event quickly followed by the deletion of its executable file. Malware tools and other non-native files dropped or created on a system by an adversary may leave traces to indicate to what occurred. Removal of these files can occur during an intrusion, or as part of a post-intrusion process to minimize the adversary's footprint.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.004","name":"File Deletion","reference":"https://attack.mitre.org/techniques/T1070/004/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=5s\n [process where event.type == \"end\" and\n process.code_signature.trusted != true and\n not process.executable : (\"C:\\\\Windows\\\\SoftwareDistribution\\\\*.exe\", \"C:\\\\Windows\\\\WinSxS\\\\*.exe\")\n ] by process.executable\n [file where event.type == \"deletion\" and file.extension : (\"exe\", \"scr\", \"com\") and\n not process.executable :\n (\"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Windows\\\\System32\\\\drvinst.exe\") and\n not file.path : (\"?:\\\\Program Files\\\\*.exe\", \"?:\\\\Program Files (x86)\\\\*.exe\")\n ] by file.path\n","type":"eql","index":["logs-endpoint.events.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.executable","type":"keyword"}]},"id":"09443c92-46b3-45a4-8f25-383b028b258d:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/09d028a5-dcde-409f-8ae0-557cef1b7082:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/09d028a5-dcde-409f-8ae0-557cef1b7082:101.0.0.json new file mode 100644 index 0000000000000..e9e39d603db4e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/09d028a5-dcde-409f-8ae0-557cef1b7082:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Frontdoor Web Application Firewall (WAF) Policy Deleted v101.0.0","rule_id":"09d028a5-dcde-409f-8ae0-557cef1b7082:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a Frontdoor Web Application Firewall (WAF) Policy in Azure. An adversary may delete a Frontdoor Web Application Firewall (WAF) Policy in an attempt to evade defenses and/or to eliminate barriers to their objective.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Azure Front Web Application Firewall (WAF) Policy deletions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Azure Front Web Application Firewall (WAF) Policy deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#networking"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.NETWORK/FRONTDOORWEBAPPLICATIONFIREWALLPOLICIES/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"09d028a5-dcde-409f-8ae0-557cef1b7082:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/09d028a5-dcde-409f-8ae0-557cef1b7082:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/09d028a5-dcde-409f-8ae0-557cef1b7082:101.0.1.json new file mode 100644 index 0000000000000..69c042bd261b0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/09d028a5-dcde-409f-8ae0-557cef1b7082:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Frontdoor Web Application Firewall (WAF) Policy Deleted v101.0.1","rule_id":"09d028a5-dcde-409f-8ae0-557cef1b7082:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a Frontdoor Web Application Firewall (WAF) Policy in Azure. An adversary may delete a Frontdoor Web Application Firewall (WAF) Policy in an attempt to evade defenses and/or to eliminate barriers to their objective.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Azure Front Web Application Firewall (WAF) Policy deletions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Azure Front Web Application Firewall (WAF) Policy deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#networking"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.NETWORK/FRONTDOORWEBAPPLICATIONFIREWALLPOLICIES/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"09d028a5-dcde-409f-8ae0-557cef1b7082:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/09d028a5-dcde-409f-8ae0-557cef1b7082:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/09d028a5-dcde-409f-8ae0-557cef1b7082:101.0.2.json new file mode 100644 index 0000000000000..05f65273ea7a3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/09d028a5-dcde-409f-8ae0-557cef1b7082:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Frontdoor Web Application Firewall (WAF) Policy Deleted v101.0.2","rule_id":"09d028a5-dcde-409f-8ae0-557cef1b7082:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a Frontdoor Web Application Firewall (WAF) Policy in Azure. An adversary may delete a Frontdoor Web Application Firewall (WAF) Policy in an attempt to evade defenses and/or to eliminate barriers to their objective.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Azure Front Web Application Firewall (WAF) Policy deletions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Azure Front Web Application Firewall (WAF) Policy deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#networking"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.NETWORK/FRONTDOORWEBAPPLICATIONFIREWALLPOLICIES/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"09d028a5-dcde-409f-8ae0-557cef1b7082:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0a97b20f-4144-49ea-be32-b540ecc445de:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0a97b20f-4144-49ea-be32-b540ecc445de:100.0.0.json new file mode 100644 index 0000000000000..cf6dd1817a869 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0a97b20f-4144-49ea-be32-b540ecc445de:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Malware - Detected - Elastic Endgame v100.0.0","rule_id":"0a97b20f-4144-49ea-be32-b540ecc445de:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected Malware. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":99,"severity":"critical","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame"],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:file_classification_event or endgame.event_subtype_full:file_classification_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"0a97b20f-4144-49ea-be32-b540ecc445de:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0a97b20f-4144-49ea-be32-b540ecc445de:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0a97b20f-4144-49ea-be32-b540ecc445de:100.0.1.json new file mode 100644 index 0000000000000..a6f5ac1f91ff2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0a97b20f-4144-49ea-be32-b540ecc445de:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Malware - Detected - Elastic Endgame v100.0.1","rule_id":"0a97b20f-4144-49ea-be32-b540ecc445de:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected Malware. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":99,"severity":"critical","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame"],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:file_classification_event or endgame.event_subtype_full:file_classification_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"0a97b20f-4144-49ea-be32-b540ecc445de:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0a97b20f-4144-49ea-be32-b540ecc445de:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0a97b20f-4144-49ea-be32-b540ecc445de:100.0.2.json new file mode 100644 index 0000000000000..80c8e4dfa19b2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0a97b20f-4144-49ea-be32-b540ecc445de:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Malware - Detected - Elastic Endgame v100.0.2","rule_id":"0a97b20f-4144-49ea-be32-b540ecc445de:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected Malware. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":99,"severity":"critical","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame"],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:file_classification_event or endgame.event_subtype_full:file_classification_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"0a97b20f-4144-49ea-be32-b540ecc445de:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0b29cab4-dbbd-4a3f-9e8e-1287c7c11ae5:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0b29cab4-dbbd-4a3f-9e8e-1287c7c11ae5:100.0.0.json new file mode 100644 index 0000000000000..e6567daf9ef1e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0b29cab4-dbbd-4a3f-9e8e-1287c7c11ae5:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Anomalous Windows Process Creation v100.0.0","rule_id":"0b29cab4-dbbd-4a3f-9e8e-1287c7c11ae5:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual parent-child process relationships that can indicate malware execution or persistence mechanisms. Malicious scripts often call on other applications and processes as part of their exploit payload. For example, when a malicious Office document runs scripts as part of an exploit payload, Excel or Word may start a script interpreter process, which, in turn, runs a script that downloads and executes malware. Another common scenario is Outlook running an unusual process when malware is downloaded in an email. Monitoring and identifying anomalous process relationships is a method of detecting new and emerging malware that is not yet recognized by anti-virus scanners.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Users running scripts in the course of technical support operations of software upgrades could trigger this alert. A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_process_creation"],"type":"machine_learning"},"id":"0b29cab4-dbbd-4a3f-9e8e-1287c7c11ae5:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0b29cab4-dbbd-4a3f-9e8e-1287c7c11ae5:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0b29cab4-dbbd-4a3f-9e8e-1287c7c11ae5:100.0.1.json new file mode 100644 index 0000000000000..0fd178e5aa976 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0b29cab4-dbbd-4a3f-9e8e-1287c7c11ae5:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Anomalous Windows Process Creation v100.0.1","rule_id":"0b29cab4-dbbd-4a3f-9e8e-1287c7c11ae5:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual parent-child process relationships that can indicate malware execution or persistence mechanisms. Malicious scripts often call on other applications and processes as part of their exploit payload. For example, when a malicious Office document runs scripts as part of an exploit payload, Excel or Word may start a script interpreter process, which, in turn, runs a script that downloads and executes malware. Another common scenario is Outlook running an unusual process when malware is downloaded in an email. Monitoring and identifying anomalous process relationships is a method of detecting new and emerging malware that is not yet recognized by anti-virus scanners.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Users running scripts in the course of technical support operations of software upgrades could trigger this alert. A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_process_creation"],"type":"machine_learning"},"id":"0b29cab4-dbbd-4a3f-9e8e-1287c7c11ae5:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0b29cab4-dbbd-4a3f-9e8e-1287c7c11ae5:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0b29cab4-dbbd-4a3f-9e8e-1287c7c11ae5:100.0.2.json new file mode 100644 index 0000000000000..efa2bff63210a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0b29cab4-dbbd-4a3f-9e8e-1287c7c11ae5:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Anomalous Windows Process Creation v100.0.2","rule_id":"0b29cab4-dbbd-4a3f-9e8e-1287c7c11ae5:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual parent-child process relationships that can indicate malware execution or persistence mechanisms. Malicious scripts often call on other applications and processes as part of their exploit payload. For example, when a malicious Office document runs scripts as part of an exploit payload, Excel or Word may start a script interpreter process, which, in turn, runs a script that downloads and executes malware. Another common scenario is Outlook running an unusual process when malware is downloaded in an email. Monitoring and identifying anomalous process relationships is a method of detecting new and emerging malware that is not yet recognized by anti-virus scanners.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Users running scripts in the course of technical support operations of software upgrades could trigger this alert. A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_process_creation"],"type":"machine_learning"},"id":"0b29cab4-dbbd-4a3f-9e8e-1287c7c11ae5:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0b2f3da5-b5ec-47d1-908b-6ebb74814289:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0b2f3da5-b5ec-47d1-908b-6ebb74814289:102.0.0.json new file mode 100644 index 0000000000000..d4059ba3eb2ce --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0b2f3da5-b5ec-47d1-908b-6ebb74814289:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"User account exposed to Kerberoasting v102.0.0","rule_id":"0b2f3da5-b5ec-47d1-908b-6ebb74814289:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a user account has the servicePrincipalName attribute modified. Attackers can abuse write privileges over a user to configure Service Principle Names (SPNs) so that they can perform Kerberoasting. Administrators can also configure this for legitimate purposes, exposing the account to Kerberoasting.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating User account exposed to Kerberoasting\n\nService Principal Names (SPNs) are names by which Kerberos clients uniquely identify service instances for Kerberos target\ncomputers.\n\nBy default, only computer accounts have SPNs, which creates no significant risk, since machine accounts have a default\ndomain policy that rotates their passwords every 30 days, and the password is composed of 120 random characters, making\nthem invulnerable to Kerberoasting.\n\nA user account with an SPN assigned is considered a service account, and is accessible to the entire domain. If any\nuser in the directory requests a ticket-granting service (TGS), the domain controller will encrypt it with the secret\nkey of the account executing the service. An attacker can potentially perform a Kerberoasting attack with this\ninformation, as the human-defined password is likely to be less complex.\n\nFor scenarios where SPNs cannot be avoided on user accounts, Microsoft provides the Group Managed Service Accounts (gMSA)\nfeature, which ensures that account passwords are robust and changed regularly and automatically. More information can\nbe found [here](https://docs.microsoft.com/en-us/windows-server/security/group-managed-service-accounts/group-managed-service-accounts-overview).\n\nAttackers can also perform \"Targeted Kerberoasting\", which consists of adding fake SPNs to user accounts that they have\nwrite privileges to, making them potentially vulnerable to Kerberoasting.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate if the target account is a member of privileged groups (Domain Admins, Enterprise Admins, etc.).\n- Investigate if tickets have been requested for the target account.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- The use of user accounts as service accounts is a bad security practice and should not be allowed in the domain. The\nsecurity team should map and monitor any potential benign true positive (B-TP), especially if the account is privileged.\nDomain Administrators that define this kind of setting can put the domain at risk as user accounts don't have the same\nsecurity standards as computer accounts (which have long, complex, random passwords that change frequently), exposing\nthem to credential cracking attacks (Kerberoasting, brute force, etc.).\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services. Prioritize privileged accounts.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.thehacker.recipes/ad/movement/access-controls/targeted-kerberoasting","https://www.qomplx.com/qomplx-knowledge-kerberoasting-attacks-explained/","https://www.thehacker.recipes/ad/movement/kerberos/kerberoast","https://attack.stealthbits.com/cracking-kerberos-tgs-tickets-using-kerberoasting","https://adsecurity.org/?p=280","https://github.com/OTRF/Set-AuditRule"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/","subtechnique":[{"id":"T1558.003","name":"Kerberoasting","reference":"https://attack.mitre.org/techniques/T1558/003/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"Directory Service Changes\" and event.code:5136 and winlog.event_data.ObjectClass:\"user\"\nand winlog.event_data.AttributeLDAPDisplayName:\"servicePrincipalName\"\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ObjectClass","type":"unknown"}],"setup":"The 'Audit Directory Service Changes' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```\n\nThe above policy does not cover User objects, so set up an AuditRule using https://github.com/OTRF/Set-AuditRule.\nAs this specifies the servicePrincipalName Attribute GUID, it is expected to be low noise.\n\n```\nSet-AuditRule -AdObjectPath 'AD:\\CN=Users,DC=Domain,DC=com' -WellKnownSidType WorldSid -Rights WriteProperty -InheritanceFlags Children -AttributeGUID f3a64788-5306-11d1-a9c5-0000f80367c1 -AuditFlags Success\n```"},"id":"0b2f3da5-b5ec-47d1-908b-6ebb74814289:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0b2f3da5-b5ec-47d1-908b-6ebb74814289:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0b2f3da5-b5ec-47d1-908b-6ebb74814289:102.0.1.json new file mode 100644 index 0000000000000..35e7082708b02 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0b2f3da5-b5ec-47d1-908b-6ebb74814289:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"User account exposed to Kerberoasting v102.0.1","rule_id":"0b2f3da5-b5ec-47d1-908b-6ebb74814289:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a user account has the servicePrincipalName attribute modified. Attackers can abuse write privileges over a user to configure Service Principle Names (SPNs) so that they can perform Kerberoasting. Administrators can also configure this for legitimate purposes, exposing the account to Kerberoasting.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating User account exposed to Kerberoasting\n\nService Principal Names (SPNs) are names by which Kerberos clients uniquely identify service instances for Kerberos target\ncomputers.\n\nBy default, only computer accounts have SPNs, which creates no significant risk, since machine accounts have a default\ndomain policy that rotates their passwords every 30 days, and the password is composed of 120 random characters, making\nthem invulnerable to Kerberoasting.\n\nA user account with an SPN assigned is considered a service account, and is accessible to the entire domain. If any\nuser in the directory requests a ticket-granting service (TGS), the domain controller will encrypt it with the secret\nkey of the account executing the service. An attacker can potentially perform a Kerberoasting attack with this\ninformation, as the human-defined password is likely to be less complex.\n\nFor scenarios where SPNs cannot be avoided on user accounts, Microsoft provides the Group Managed Service Accounts (gMSA)\nfeature, which ensures that account passwords are robust and changed regularly and automatically. More information can\nbe found [here](https://docs.microsoft.com/en-us/windows-server/security/group-managed-service-accounts/group-managed-service-accounts-overview).\n\nAttackers can also perform \"Targeted Kerberoasting\", which consists of adding fake SPNs to user accounts that they have\nwrite privileges to, making them potentially vulnerable to Kerberoasting.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate if the target account is a member of privileged groups (Domain Admins, Enterprise Admins, etc.).\n- Investigate if tickets have been requested for the target account.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- The use of user accounts as service accounts is a bad security practice and should not be allowed in the domain. The\nsecurity team should map and monitor any potential benign true positive (B-TP), especially if the account is privileged.\nDomain Administrators that define this kind of setting can put the domain at risk as user accounts don't have the same\nsecurity standards as computer accounts (which have long, complex, random passwords that change frequently), exposing\nthem to credential cracking attacks (Kerberoasting, brute force, etc.).\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services. Prioritize privileged accounts.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.thehacker.recipes/ad/movement/access-controls/targeted-kerberoasting","https://www.qomplx.com/qomplx-knowledge-kerberoasting-attacks-explained/","https://www.thehacker.recipes/ad/movement/kerberos/kerberoast","https://attack.stealthbits.com/cracking-kerberos-tgs-tickets-using-kerberoasting","https://adsecurity.org/?p=280","https://github.com/OTRF/Set-AuditRule"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/","subtechnique":[{"id":"T1558.003","name":"Kerberoasting","reference":"https://attack.mitre.org/techniques/T1558/003/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"Directory Service Changes\" and event.code:5136 and winlog.event_data.ObjectClass:\"user\"\nand winlog.event_data.AttributeLDAPDisplayName:\"servicePrincipalName\"\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ObjectClass","type":"unknown"}],"setup":"The 'Audit Directory Service Changes' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```\n\nThe above policy does not cover User objects, so set up an AuditRule using https://github.com/OTRF/Set-AuditRule.\nAs this specifies the servicePrincipalName Attribute GUID, it is expected to be low noise.\n\n```\nSet-AuditRule -AdObjectPath 'AD:\\CN=Users,DC=Domain,DC=com' -WellKnownSidType WorldSid -Rights WriteProperty -InheritanceFlags Children -AttributeGUID f3a64788-5306-11d1-a9c5-0000f80367c1 -AuditFlags Success\n```"},"id":"0b2f3da5-b5ec-47d1-908b-6ebb74814289:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0b2f3da5-b5ec-47d1-908b-6ebb74814289:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0b2f3da5-b5ec-47d1-908b-6ebb74814289:102.0.2.json new file mode 100644 index 0000000000000..b6212faa97bc8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0b2f3da5-b5ec-47d1-908b-6ebb74814289:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"User account exposed to Kerberoasting v102.0.2","rule_id":"0b2f3da5-b5ec-47d1-908b-6ebb74814289:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a user account has the servicePrincipalName attribute modified. Attackers can abuse write privileges over a user to configure Service Principle Names (SPNs) so that they can perform Kerberoasting. Administrators can also configure this for legitimate purposes, exposing the account to Kerberoasting.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating User account exposed to Kerberoasting\n\nService Principal Names (SPNs) are names by which Kerberos clients uniquely identify service instances for Kerberos target\ncomputers.\n\nBy default, only computer accounts have SPNs, which creates no significant risk, since machine accounts have a default\ndomain policy that rotates their passwords every 30 days, and the password is composed of 120 random characters, making\nthem invulnerable to Kerberoasting.\n\nA user account with an SPN assigned is considered a service account, and is accessible to the entire domain. If any\nuser in the directory requests a ticket-granting service (TGS), the domain controller will encrypt it with the secret\nkey of the account executing the service. An attacker can potentially perform a Kerberoasting attack with this\ninformation, as the human-defined password is likely to be less complex.\n\nFor scenarios where SPNs cannot be avoided on user accounts, Microsoft provides the Group Managed Service Accounts (gMSA)\nfeature, which ensures that account passwords are robust and changed regularly and automatically. More information can\nbe found [here](https://docs.microsoft.com/en-us/windows-server/security/group-managed-service-accounts/group-managed-service-accounts-overview).\n\nAttackers can also perform \"Targeted Kerberoasting\", which consists of adding fake SPNs to user accounts that they have\nwrite privileges to, making them potentially vulnerable to Kerberoasting.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate if the target account is a member of privileged groups (Domain Admins, Enterprise Admins, etc.).\n- Investigate if tickets have been requested for the target account.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- The use of user accounts as service accounts is a bad security practice and should not be allowed in the domain. The\nsecurity team should map and monitor any potential benign true positive (B-TP), especially if the account is privileged.\nDomain Administrators that define this kind of setting can put the domain at risk as user accounts don't have the same\nsecurity standards as computer accounts (which have long, complex, random passwords that change frequently), exposing\nthem to credential cracking attacks (Kerberoasting, brute force, etc.).\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services. Prioritize privileged accounts.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.thehacker.recipes/ad/movement/access-controls/targeted-kerberoasting","https://www.qomplx.com/qomplx-knowledge-kerberoasting-attacks-explained/","https://www.thehacker.recipes/ad/movement/kerberos/kerberoast","https://attack.stealthbits.com/cracking-kerberos-tgs-tickets-using-kerberoasting","https://adsecurity.org/?p=280","https://github.com/OTRF/Set-AuditRule"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/","subtechnique":[{"id":"T1558.003","name":"Kerberoasting","reference":"https://attack.mitre.org/techniques/T1558/003/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"Directory Service Changes\" and event.code:5136 and winlog.event_data.ObjectClass:\"user\"\nand winlog.event_data.AttributeLDAPDisplayName:\"servicePrincipalName\"\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ObjectClass","type":"unknown"}],"setup":"The 'Audit Directory Service Changes' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```\n\nThe above policy does not cover User objects, so set up an AuditRule using https://github.com/OTRF/Set-AuditRule.\nAs this specifies the servicePrincipalName Attribute GUID, it is expected to be low noise.\n\n```\nSet-AuditRule -AdObjectPath 'AD:\\CN=Users,DC=Domain,DC=com' -WellKnownSidType WorldSid -Rights WriteProperty -InheritanceFlags Children -AttributeGUID f3a64788-5306-11d1-a9c5-0000f80367c1 -AuditFlags Success\n```"},"id":"0b2f3da5-b5ec-47d1-908b-6ebb74814289:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0c7ca5c2-728d-4ad9-b1c5-bbba83ecb1f4:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0c7ca5c2-728d-4ad9-b1c5-bbba83ecb1f4:102.0.0.json new file mode 100644 index 0000000000000..15fb36bb07e94 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0c7ca5c2-728d-4ad9-b1c5-bbba83ecb1f4:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Peripheral Device Discovery v102.0.0","rule_id":"0c7ca5c2-728d-4ad9-b1c5-bbba83ecb1f4:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the Windows file system utility (fsutil.exe) to gather information about attached peripheral devices and components connected to a computer system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Peripheral Device Discovery\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `fsutil` utility with the `fsinfo` subcommand to enumerate drives attached to\nthe computer, which can be used to identify secondary drives used for backups, mapped network drives, and removable\nmedia. These devices can contain valuable information for attackers.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Determine whether this activity was followed by suspicious file access/copy operations or uploads to file storage\nservices.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1120","name":"Peripheral Device Discovery","reference":"https://attack.mitre.org/techniques/T1120/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"fsutil.exe\" or process.pe.original_file_name == \"fsutil.exe\") and\n process.args : \"fsinfo\" and process.args : \"drives\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"0c7ca5c2-728d-4ad9-b1c5-bbba83ecb1f4:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0c7ca5c2-728d-4ad9-b1c5-bbba83ecb1f4:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0c7ca5c2-728d-4ad9-b1c5-bbba83ecb1f4:102.0.1.json new file mode 100644 index 0000000000000..d19dd98d32972 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0c7ca5c2-728d-4ad9-b1c5-bbba83ecb1f4:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Peripheral Device Discovery v102.0.1","rule_id":"0c7ca5c2-728d-4ad9-b1c5-bbba83ecb1f4:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the Windows file system utility (fsutil.exe) to gather information about attached peripheral devices and components connected to a computer system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Peripheral Device Discovery\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `fsutil` utility with the `fsinfo` subcommand to enumerate drives attached to\nthe computer, which can be used to identify secondary drives used for backups, mapped network drives, and removable\nmedia. These devices can contain valuable information for attackers.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Determine whether this activity was followed by suspicious file access/copy operations or uploads to file storage\nservices.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1120","name":"Peripheral Device Discovery","reference":"https://attack.mitre.org/techniques/T1120/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"fsutil.exe\" or process.pe.original_file_name == \"fsutil.exe\") and\n process.args : \"fsinfo\" and process.args : \"drives\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"0c7ca5c2-728d-4ad9-b1c5-bbba83ecb1f4:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0c7ca5c2-728d-4ad9-b1c5-bbba83ecb1f4:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0c7ca5c2-728d-4ad9-b1c5-bbba83ecb1f4:102.0.2.json new file mode 100644 index 0000000000000..3007de894f1f4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0c7ca5c2-728d-4ad9-b1c5-bbba83ecb1f4:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Peripheral Device Discovery v102.0.2","rule_id":"0c7ca5c2-728d-4ad9-b1c5-bbba83ecb1f4:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the Windows file system utility (fsutil.exe) to gather information about attached peripheral devices and components connected to a computer system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Peripheral Device Discovery\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `fsutil` utility with the `fsinfo` subcommand to enumerate drives attached to\nthe computer, which can be used to identify secondary drives used for backups, mapped network drives, and removable\nmedia. These devices can contain valuable information for attackers.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Determine whether this activity was followed by suspicious file access/copy operations or uploads to file storage\nservices.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1120","name":"Peripheral Device Discovery","reference":"https://attack.mitre.org/techniques/T1120/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"fsutil.exe\" or process.pe.original_file_name == \"fsutil.exe\") and\n process.args : \"fsinfo\" and process.args : \"drives\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"0c7ca5c2-728d-4ad9-b1c5-bbba83ecb1f4:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0c9a14d9-d65d-486f-9b5b-91e4e6b22bd0:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0c9a14d9-d65d-486f-9b5b-91e4e6b22bd0:102.0.0.json new file mode 100644 index 0000000000000..067bcc6ff4767 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0c9a14d9-d65d-486f-9b5b-91e4e6b22bd0:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Threat Intel Indicator Match v102.0.0","rule_id":"0c9a14d9-d65d-486f-9b5b-91e4e6b22bd0:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule is triggered when indicators from the Threat Intel integrations have a match against local file or network observations.","risk_score":99,"severity":"critical","license":"Elastic License v2","note":"## Triage and Analysis\n\n### Investigating Threat Intel Indicator Matches\n\nThreat Intel indicator match rules allow matching from a local observation such as an endpoint event that records a file\nhash with an entry of a file hash stored within the Threat Intel integrations. Matches can also occur on\nan IP address, registry path, URL, or imphash.\n\nThe matches will be based on the incoming last 30 days feed data so it's important to validate the data and review the results by\ninvestigating the associated activity to determine if it requires further investigation.\n\nIf an indicator matches a local observation, the following enriched fields will be generated to identify the indicator, field, and type matched.\n\n- `threat.indicator.matched.atomic` - this identifies the atomic indicator that matched the local observation\n- `threat.indicator.matched.field` - this identifies the indicator field that matched the local observation\n- `threat.indicator.matched.type` - this identifies the indicator type that matched the local observation\n\n#### Possible investigation steps:\n- Investigation should be validated and reviewed based on the data (file hash, registry path, URL, imphash) that was matched\nand by viewing the source of that activity.\n- Consider the history of the indicator that was matched. Has it happened before? Is it happening on multiple machines?\nThese kinds of questions can help understand if the activity is related to legitimate behavior.\n- Consider the user and their role within the company: is this something related to their job or work function?\n\n### False Positive Analysis\n- For any matches found, it's important to consider the initial release date of that indicator. Threat intelligence can\nbe a great tool for augmenting existing security processes, while at the same time it should be understood that threat\nintelligence can represent a specific set of activity observed at a point in time. For example, an IP address\nmay have hosted malware observed in a Dridex campaign months ago, but it's possible that IP has been remediated and\nno longer represents any threat.\n- Adversaries often use legitimate tools as network administrators such as `PsExec` or `AdFind`; these tools often find their\nway into indicator lists creating the potential for false positives.\n- It's possible after large and publicly written campaigns, curious employees might end up going directly to attacker infrastructure and triggering these rules.\n\n### Response and Remediation\n- If suspicious or malicious behavior is observed, take immediate action to isolate activity to prevent further\npost-compromise behavior.\n- One example of a response if a machine matched a command and control IP address would be to add an entry to a network\ndevice such as a firewall or proxy appliance to prevent any outbound activity from leaving that machine.\n- Another example of a response with a malicious file hash match would involve validating if the file was properly quarantined,\nreviewing current running processes for any abnormal activity, and investigating for any other follow-up actions such as persistence or lateral movement.\n","timeline_id":"495ad7a7-316e-4544-8a0f-9c098daee76e","timeline_title":"Generic Threat Match Timeline","author":["Elastic"],"from":"now-65m","interval":"1h","references":["https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-threatintel.html"],"tags":["Elastic","Windows","Elastic Endgame","Network","Continuous Monitoring","SecOps","Monitoring","Investigation Guide"],"query":"file.hash.*:* or file.pe.imphash:* or source.ip:* or destination.ip:* or url.full:* or registry.path:*\n","threat_index":["logs-ti_*"],"threat_mapping":[{"entries":[{"field":"file.hash.md5","type":"mapping","value":"threat.indicator.file.hash.md5"}]},{"entries":[{"field":"file.hash.sha1","type":"mapping","value":"threat.indicator.file.hash.sha1"}]},{"entries":[{"field":"file.hash.sha256","type":"mapping","value":"threat.indicator.file.hash.sha256"}]},{"entries":[{"field":"file.pe.imphash","type":"mapping","value":"threat.indicator.file.pe.imphash"}]},{"entries":[{"field":"source.ip","type":"mapping","value":"threat.indicator.ip"}]},{"entries":[{"field":"destination.ip","type":"mapping","value":"threat.indicator.ip"}]},{"entries":[{"field":"url.full","type":"mapping","value":"threat.indicator.url.full"}]},{"entries":[{"field":"registry.path","type":"mapping","value":"threat.indicator.registry.path"}]}],"threat_query":"@timestamp >= \"now-30d/d\" and event.dataset:ti_* and (threat.indicator.file.hash.*:* or threat.indicator.file.pe.imphash:* or threat.indicator.ip:* or threat.indicator.registry.path:* or threat.indicator.url.full:*)","type":"threat_match","index":["auditbeat-*","endgame-*","filebeat-*","logs-*","packetbeat-*","winlogbeat-*"],"threat_filters":[{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.dataset","negate":false,"params":{"query":"ti_*"},"type":"phrase"},"query":{"match_phrase":{"event.dataset":"ti_*"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.category","negate":false,"params":{"query":"threat"},"type":"phrase"},"query":{"match_phrase":{"event.category":"threat"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.kind","negate":false,"params":{"query":"enrichment"},"type":"phrase"},"query":{"match_phrase":{"event.kind":"enrichment"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.type","negate":false,"params":{"query":"indicator"},"type":"phrase"},"query":{"match_phrase":{"event.type":"indicator"}}}],"threat_indicator_path":"threat.indicator","threat_language":"kuery","language":"kuery","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":false,"name":"file.hash.*","type":"unknown"},{"ecs":true,"name":"file.pe.imphash","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"url.full","type":"wildcard"}]},"id":"0c9a14d9-d65d-486f-9b5b-91e4e6b22bd0:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0c9a14d9-d65d-486f-9b5b-91e4e6b22bd0:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0c9a14d9-d65d-486f-9b5b-91e4e6b22bd0:102.0.1.json new file mode 100644 index 0000000000000..67d8178167416 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0c9a14d9-d65d-486f-9b5b-91e4e6b22bd0:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Threat Intel Indicator Match v102.0.1","rule_id":"0c9a14d9-d65d-486f-9b5b-91e4e6b22bd0:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule is triggered when indicators from the Threat Intel integrations have a match against local file or network observations.","risk_score":99,"severity":"critical","license":"Elastic License v2","note":"## Triage and Analysis\n\n### Investigating Threat Intel Indicator Matches\n\nThreat Intel indicator match rules allow matching from a local observation such as an endpoint event that records a file\nhash with an entry of a file hash stored within the Threat Intel integrations. Matches can also occur on\nan IP address, registry path, URL, or imphash.\n\nThe matches will be based on the incoming last 30 days feed data so it's important to validate the data and review the results by\ninvestigating the associated activity to determine if it requires further investigation.\n\nIf an indicator matches a local observation, the following enriched fields will be generated to identify the indicator, field, and type matched.\n\n- `threat.indicator.matched.atomic` - this identifies the atomic indicator that matched the local observation\n- `threat.indicator.matched.field` - this identifies the indicator field that matched the local observation\n- `threat.indicator.matched.type` - this identifies the indicator type that matched the local observation\n\n#### Possible investigation steps:\n- Investigation should be validated and reviewed based on the data (file hash, registry path, URL, imphash) that was matched\nand by viewing the source of that activity.\n- Consider the history of the indicator that was matched. Has it happened before? Is it happening on multiple machines?\nThese kinds of questions can help understand if the activity is related to legitimate behavior.\n- Consider the user and their role within the company: is this something related to their job or work function?\n\n### False Positive Analysis\n- For any matches found, it's important to consider the initial release date of that indicator. Threat intelligence can\nbe a great tool for augmenting existing security processes, while at the same time it should be understood that threat\nintelligence can represent a specific set of activity observed at a point in time. For example, an IP address\nmay have hosted malware observed in a Dridex campaign months ago, but it's possible that IP has been remediated and\nno longer represents any threat.\n- Adversaries often use legitimate tools as network administrators such as `PsExec` or `AdFind`; these tools often find their\nway into indicator lists creating the potential for false positives.\n- It's possible after large and publicly written campaigns, curious employees might end up going directly to attacker infrastructure and triggering these rules.\n\n### Response and Remediation\n- If suspicious or malicious behavior is observed, take immediate action to isolate activity to prevent further\npost-compromise behavior.\n- One example of a response if a machine matched a command and control IP address would be to add an entry to a network\ndevice such as a firewall or proxy appliance to prevent any outbound activity from leaving that machine.\n- Another example of a response with a malicious file hash match would involve validating if the file was properly quarantined,\nreviewing current running processes for any abnormal activity, and investigating for any other follow-up actions such as persistence or lateral movement.\n","timeline_id":"495ad7a7-316e-4544-8a0f-9c098daee76e","timeline_title":"Generic Threat Match Timeline","author":["Elastic"],"from":"now-65m","interval":"1h","references":["https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-threatintel.html"],"tags":["Elastic","Windows","Elastic Endgame","Network","Continuous Monitoring","SecOps","Monitoring","Investigation Guide"],"query":"file.hash.*:* or file.pe.imphash:* or source.ip:* or destination.ip:* or url.full:* or registry.path:*\n","threat_index":["logs-ti_*"],"threat_mapping":[{"entries":[{"field":"file.hash.md5","type":"mapping","value":"threat.indicator.file.hash.md5"}]},{"entries":[{"field":"file.hash.sha1","type":"mapping","value":"threat.indicator.file.hash.sha1"}]},{"entries":[{"field":"file.hash.sha256","type":"mapping","value":"threat.indicator.file.hash.sha256"}]},{"entries":[{"field":"file.pe.imphash","type":"mapping","value":"threat.indicator.file.pe.imphash"}]},{"entries":[{"field":"source.ip","type":"mapping","value":"threat.indicator.ip"}]},{"entries":[{"field":"destination.ip","type":"mapping","value":"threat.indicator.ip"}]},{"entries":[{"field":"url.full","type":"mapping","value":"threat.indicator.url.full"}]},{"entries":[{"field":"registry.path","type":"mapping","value":"threat.indicator.registry.path"}]}],"threat_query":"@timestamp >= \"now-30d/d\" and event.dataset:ti_* and (threat.indicator.file.hash.*:* or threat.indicator.file.pe.imphash:* or threat.indicator.ip:* or threat.indicator.registry.path:* or threat.indicator.url.full:*)","type":"threat_match","index":["auditbeat-*","endgame-*","filebeat-*","logs-*","packetbeat-*","winlogbeat-*"],"threat_filters":[{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.dataset","negate":false,"params":{"query":"ti_*"},"type":"phrase"},"query":{"match_phrase":{"event.dataset":"ti_*"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.category","negate":false,"params":{"query":"threat"},"type":"phrase"},"query":{"match_phrase":{"event.category":"threat"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.kind","negate":false,"params":{"query":"enrichment"},"type":"phrase"},"query":{"match_phrase":{"event.kind":"enrichment"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.type","negate":false,"params":{"query":"indicator"},"type":"phrase"},"query":{"match_phrase":{"event.type":"indicator"}}}],"threat_indicator_path":"threat.indicator","threat_language":"kuery","language":"kuery","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":false,"name":"file.hash.*","type":"unknown"},{"ecs":true,"name":"file.pe.imphash","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"url.full","type":"wildcard"}]},"id":"0c9a14d9-d65d-486f-9b5b-91e4e6b22bd0:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0c9a14d9-d65d-486f-9b5b-91e4e6b22bd0:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0c9a14d9-d65d-486f-9b5b-91e4e6b22bd0:102.0.2.json new file mode 100644 index 0000000000000..b2fb82c1f02ad --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0c9a14d9-d65d-486f-9b5b-91e4e6b22bd0:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Threat Intel Indicator Match v102.0.2","rule_id":"0c9a14d9-d65d-486f-9b5b-91e4e6b22bd0:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule is triggered when indicators from the Threat Intel integrations have a match against local file or network observations.","risk_score":99,"severity":"critical","license":"Elastic License v2","note":"## Triage and Analysis\n\n### Investigating Threat Intel Indicator Matches\n\nThreat Intel indicator match rules allow matching from a local observation such as an endpoint event that records a file\nhash with an entry of a file hash stored within the Threat Intel integrations. Matches can also occur on\nan IP address, registry path, URL, or imphash.\n\nThe matches will be based on the incoming last 30 days feed data so it's important to validate the data and review the results by\ninvestigating the associated activity to determine if it requires further investigation.\n\nIf an indicator matches a local observation, the following enriched fields will be generated to identify the indicator, field, and type matched.\n\n- `threat.indicator.matched.atomic` - this identifies the atomic indicator that matched the local observation\n- `threat.indicator.matched.field` - this identifies the indicator field that matched the local observation\n- `threat.indicator.matched.type` - this identifies the indicator type that matched the local observation\n\n#### Possible investigation steps:\n- Investigation should be validated and reviewed based on the data (file hash, registry path, URL, imphash) that was matched\nand by viewing the source of that activity.\n- Consider the history of the indicator that was matched. Has it happened before? Is it happening on multiple machines?\nThese kinds of questions can help understand if the activity is related to legitimate behavior.\n- Consider the user and their role within the company: is this something related to their job or work function?\n\n### False Positive Analysis\n- For any matches found, it's important to consider the initial release date of that indicator. Threat intelligence can\nbe a great tool for augmenting existing security processes, while at the same time it should be understood that threat\nintelligence can represent a specific set of activity observed at a point in time. For example, an IP address\nmay have hosted malware observed in a Dridex campaign months ago, but it's possible that IP has been remediated and\nno longer represents any threat.\n- Adversaries often use legitimate tools as network administrators such as `PsExec` or `AdFind`; these tools often find their\nway into indicator lists creating the potential for false positives.\n- It's possible after large and publicly written campaigns, curious employees might end up going directly to attacker infrastructure and triggering these rules.\n\n### Response and Remediation\n- If suspicious or malicious behavior is observed, take immediate action to isolate activity to prevent further\npost-compromise behavior.\n- One example of a response if a machine matched a command and control IP address would be to add an entry to a network\ndevice such as a firewall or proxy appliance to prevent any outbound activity from leaving that machine.\n- Another example of a response with a malicious file hash match would involve validating if the file was properly quarantined,\nreviewing current running processes for any abnormal activity, and investigating for any other follow-up actions such as persistence or lateral movement.\n","timeline_id":"495ad7a7-316e-4544-8a0f-9c098daee76e","timeline_title":"Generic Threat Match Timeline","author":["Elastic"],"from":"now-65m","interval":"1h","references":["https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-threatintel.html"],"tags":["Elastic","Windows","Elastic Endgame","Network","Continuous Monitoring","SecOps","Monitoring","Investigation Guide"],"query":"file.hash.*:* or file.pe.imphash:* or source.ip:* or destination.ip:* or url.full:* or registry.path:*\n","threat_index":["logs-ti_*"],"threat_mapping":[{"entries":[{"field":"file.hash.md5","type":"mapping","value":"threat.indicator.file.hash.md5"}]},{"entries":[{"field":"file.hash.sha1","type":"mapping","value":"threat.indicator.file.hash.sha1"}]},{"entries":[{"field":"file.hash.sha256","type":"mapping","value":"threat.indicator.file.hash.sha256"}]},{"entries":[{"field":"file.pe.imphash","type":"mapping","value":"threat.indicator.file.pe.imphash"}]},{"entries":[{"field":"source.ip","type":"mapping","value":"threat.indicator.ip"}]},{"entries":[{"field":"destination.ip","type":"mapping","value":"threat.indicator.ip"}]},{"entries":[{"field":"url.full","type":"mapping","value":"threat.indicator.url.full"}]},{"entries":[{"field":"registry.path","type":"mapping","value":"threat.indicator.registry.path"}]}],"threat_query":"@timestamp >= \"now-30d/d\" and event.dataset:ti_* and (threat.indicator.file.hash.*:* or threat.indicator.file.pe.imphash:* or threat.indicator.ip:* or threat.indicator.registry.path:* or threat.indicator.url.full:*)","type":"threat_match","index":["auditbeat-*","endgame-*","filebeat-*","logs-*","packetbeat-*","winlogbeat-*"],"threat_filters":[{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.dataset","negate":false,"params":{"query":"ti_*"},"type":"phrase"},"query":{"match_phrase":{"event.dataset":"ti_*"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.category","negate":false,"params":{"query":"threat"},"type":"phrase"},"query":{"match_phrase":{"event.category":"threat"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.kind","negate":false,"params":{"query":"enrichment"},"type":"phrase"},"query":{"match_phrase":{"event.kind":"enrichment"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.type","negate":false,"params":{"query":"indicator"},"type":"phrase"},"query":{"match_phrase":{"event.type":"indicator"}}}],"threat_indicator_path":"threat.indicator","threat_language":"kuery","language":"kuery","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":false,"name":"file.hash.*","type":"unknown"},{"ecs":true,"name":"file.pe.imphash","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"url.full","type":"wildcard"}]},"id":"0c9a14d9-d65d-486f-9b5b-91e4e6b22bd0:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0ce6487d-8069-4888-9ddd-61b52490cebc:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0ce6487d-8069-4888-9ddd-61b52490cebc:101.0.0.json new file mode 100644 index 0000000000000..f085c62b1651d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0ce6487d-8069-4888-9ddd-61b52490cebc:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"O365 Exchange Suspicious Mailbox Right Delegation v101.0.0","rule_id":"0ce6487d-8069-4888-9ddd-61b52490cebc:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the assignment of rights to access content from another mailbox. An adversary may use the compromised account to send messages to other accounts in the network of the target organization while creating inbox rules, so messages can evade spam/phishing detection mechanisms.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Assignment of rights to a service account."],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.002","name":"Additional Email Delegate Permissions","reference":"https://attack.mitre.org/techniques/T1098/002/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.action:Add-MailboxPermission and\no365.audit.Parameters.AccessRights:(FullAccess or SendAs or SendOnBehalf) and event.outcome:success and\nnot user.id : \"NT AUTHORITY\\SYSTEM (Microsoft.Exchange.Servicehost)\"\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Parameters.AccessRights","type":"unknown"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"0ce6487d-8069-4888-9ddd-61b52490cebc:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0ce6487d-8069-4888-9ddd-61b52490cebc:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0ce6487d-8069-4888-9ddd-61b52490cebc:101.0.1.json new file mode 100644 index 0000000000000..848b48f988a03 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0ce6487d-8069-4888-9ddd-61b52490cebc:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"O365 Exchange Suspicious Mailbox Right Delegation v101.0.1","rule_id":"0ce6487d-8069-4888-9ddd-61b52490cebc:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the assignment of rights to access content from another mailbox. An adversary may use the compromised account to send messages to other accounts in the network of the target organization while creating inbox rules, so messages can evade spam/phishing detection mechanisms.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Assignment of rights to a service account."],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.002","name":"Additional Email Delegate Permissions","reference":"https://attack.mitre.org/techniques/T1098/002/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.action:Add-MailboxPermission and\no365.audit.Parameters.AccessRights:(FullAccess or SendAs or SendOnBehalf) and event.outcome:success and\nnot user.id : \"NT AUTHORITY\\SYSTEM (Microsoft.Exchange.Servicehost)\"\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Parameters.AccessRights","type":"unknown"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"0ce6487d-8069-4888-9ddd-61b52490cebc:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0ce6487d-8069-4888-9ddd-61b52490cebc:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0ce6487d-8069-4888-9ddd-61b52490cebc:101.0.2.json new file mode 100644 index 0000000000000..6bc2995b053ac --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0ce6487d-8069-4888-9ddd-61b52490cebc:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"O365 Exchange Suspicious Mailbox Right Delegation v101.0.2","rule_id":"0ce6487d-8069-4888-9ddd-61b52490cebc:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the assignment of rights to access content from another mailbox. An adversary may use the compromised account to send messages to other accounts in the network of the target organization while creating inbox rules, so messages can evade spam/phishing detection mechanisms.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Assignment of rights to a service account."],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.002","name":"Additional Email Delegate Permissions","reference":"https://attack.mitre.org/techniques/T1098/002/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.action:Add-MailboxPermission and\no365.audit.Parameters.AccessRights:(FullAccess or SendAs or SendOnBehalf) and event.outcome:success and\nnot user.id : \"NT AUTHORITY\\SYSTEM (Microsoft.Exchange.Servicehost)\"\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Parameters.AccessRights","type":"unknown"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"0ce6487d-8069-4888-9ddd-61b52490cebc:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0d69150b-96f8-467c-a86d-a67a3378ce77:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0d69150b-96f8-467c-a86d-a67a3378ce77:100.0.0.json new file mode 100644 index 0000000000000..84d69a01c4d4a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0d69150b-96f8-467c-a86d-a67a3378ce77:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Nping Process Activity v100.0.0","rule_id":"0d69150b-96f8-467c-a86d-a67a3378ce77:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Nping ran on a Linux host. Nping is part of the Nmap tool suite and has the ability to construct raw packets for a wide variety of security testing applications, including denial of service testing.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some normal use of this command may originate from security engineers and network or server administrators, but this is usually not routine or unannounced. Use of `Nping` by non-engineers or ordinary users is uncommon."],"from":"now-9m","references":["https://en.wikipedia.org/wiki/Nmap"],"tags":["Elastic","Host","Linux","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1046","name":"Network Service Discovery","reference":"https://attack.mitre.org/techniques/T1046/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:nping\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"0d69150b-96f8-467c-a86d-a67a3378ce77:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0d69150b-96f8-467c-a86d-a67a3378ce77:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0d69150b-96f8-467c-a86d-a67a3378ce77:100.0.1.json new file mode 100644 index 0000000000000..da33f87698471 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0d69150b-96f8-467c-a86d-a67a3378ce77:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Nping Process Activity v100.0.1","rule_id":"0d69150b-96f8-467c-a86d-a67a3378ce77:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Nping ran on a Linux host. Nping is part of the Nmap tool suite and has the ability to construct raw packets for a wide variety of security testing applications, including denial of service testing.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some normal use of this command may originate from security engineers and network or server administrators, but this is usually not routine or unannounced. Use of `Nping` by non-engineers or ordinary users is uncommon."],"from":"now-9m","references":["https://en.wikipedia.org/wiki/Nmap"],"tags":["Elastic","Host","Linux","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1046","name":"Network Service Discovery","reference":"https://attack.mitre.org/techniques/T1046/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:nping\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"0d69150b-96f8-467c-a86d-a67a3378ce77:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0d69150b-96f8-467c-a86d-a67a3378ce77:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0d69150b-96f8-467c-a86d-a67a3378ce77:100.0.2.json new file mode 100644 index 0000000000000..f4b618a872a92 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0d69150b-96f8-467c-a86d-a67a3378ce77:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Nping Process Activity v100.0.2","rule_id":"0d69150b-96f8-467c-a86d-a67a3378ce77:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Nping ran on a Linux host. Nping is part of the Nmap tool suite and has the ability to construct raw packets for a wide variety of security testing applications, including denial of service testing.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some normal use of this command may originate from security engineers and network or server administrators, but this is usually not routine or unannounced. Use of `Nping` by non-engineers or ordinary users is uncommon."],"from":"now-9m","references":["https://en.wikipedia.org/wiki/Nmap"],"tags":["Elastic","Host","Linux","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1046","name":"Network Service Discovery","reference":"https://attack.mitre.org/techniques/T1046/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:nping\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"0d69150b-96f8-467c-a86d-a67a3378ce77:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0d8ad79f-9025-45d8-80c1-4f0cd3c5e8e5:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0d8ad79f-9025-45d8-80c1-4f0cd3c5e8e5:102.0.0.json new file mode 100644 index 0000000000000..05e37275b7e46 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0d8ad79f-9025-45d8-80c1-4f0cd3c5e8e5:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Execution of File Written or Modified by Microsoft Office v102.0.0","rule_id":"0d8ad79f-9025-45d8-80c1-4f0cd3c5e8e5:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an executable created by a Microsoft Office application and subsequently executed. These processes are often launched via scripts inside documents or during exploitation of Microsoft Office applications.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Execution of File Written or Modified by Microsoft Office\n\nMicrosoft Office is a suite of applications designed to help with productivity and completing common tasks on a computer.\nYou can create and edit documents containing text and images, work with data in spreadsheets and databases, and create\npresentations and posters. As it is some of the most-used software across companies, MS Office is frequently\ntargeted for initial access. It also has a wide variety of capabilities that attackers can take advantage of.\n\nThis rule searches for executable files written by MS Office applications executed in sequence. This is most likely the result\nof the execution of malicious documents or exploitation for initial access or privilege escalation. This rule can also detect\nsuspicious processes masquerading as the MS Office applications.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve MS Office documents received and opened by the user that could cause this behavior. Common locations include,\nbut are not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-120m","interval":"60m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"},{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]}],"language":"eql","query":"sequence with maxspan=2h\n [file where event.type != \"deletion\" and file.extension : \"exe\" and\n (process.name : \"WINWORD.EXE\" or\n process.name : \"EXCEL.EXE\" or\n process.name : \"OUTLOOK.EXE\" or\n process.name : \"POWERPNT.EXE\" or\n process.name : \"eqnedt32.exe\" or\n process.name : \"fltldr.exe\" or\n process.name : \"MSPUB.EXE\" or\n process.name : \"MSACCESS.EXE\")\n ] by host.id, file.path\n [process where event.type == \"start\"] by host.id, process.executable\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"0d8ad79f-9025-45d8-80c1-4f0cd3c5e8e5:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0d8ad79f-9025-45d8-80c1-4f0cd3c5e8e5:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0d8ad79f-9025-45d8-80c1-4f0cd3c5e8e5:102.0.1.json new file mode 100644 index 0000000000000..efa1604836780 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0d8ad79f-9025-45d8-80c1-4f0cd3c5e8e5:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Execution of File Written or Modified by Microsoft Office v102.0.1","rule_id":"0d8ad79f-9025-45d8-80c1-4f0cd3c5e8e5:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an executable created by a Microsoft Office application and subsequently executed. These processes are often launched via scripts inside documents or during exploitation of Microsoft Office applications.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Execution of File Written or Modified by Microsoft Office\n\nMicrosoft Office is a suite of applications designed to help with productivity and completing common tasks on a computer.\nYou can create and edit documents containing text and images, work with data in spreadsheets and databases, and create\npresentations and posters. As it is some of the most-used software across companies, MS Office is frequently\ntargeted for initial access. It also has a wide variety of capabilities that attackers can take advantage of.\n\nThis rule searches for executable files written by MS Office applications executed in sequence. This is most likely the result\nof the execution of malicious documents or exploitation for initial access or privilege escalation. This rule can also detect\nsuspicious processes masquerading as the MS Office applications.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve MS Office documents received and opened by the user that could cause this behavior. Common locations include,\nbut are not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-120m","interval":"60m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"},{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]}],"language":"eql","query":"sequence with maxspan=2h\n [file where event.type != \"deletion\" and file.extension : \"exe\" and\n (process.name : \"WINWORD.EXE\" or\n process.name : \"EXCEL.EXE\" or\n process.name : \"OUTLOOK.EXE\" or\n process.name : \"POWERPNT.EXE\" or\n process.name : \"eqnedt32.exe\" or\n process.name : \"fltldr.exe\" or\n process.name : \"MSPUB.EXE\" or\n process.name : \"MSACCESS.EXE\")\n ] by host.id, file.path\n [process where event.type == \"start\"] by host.id, process.executable\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"0d8ad79f-9025-45d8-80c1-4f0cd3c5e8e5:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0d8ad79f-9025-45d8-80c1-4f0cd3c5e8e5:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0d8ad79f-9025-45d8-80c1-4f0cd3c5e8e5:102.0.2.json new file mode 100644 index 0000000000000..3dcc409390efb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0d8ad79f-9025-45d8-80c1-4f0cd3c5e8e5:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Execution of File Written or Modified by Microsoft Office v102.0.2","rule_id":"0d8ad79f-9025-45d8-80c1-4f0cd3c5e8e5:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an executable created by a Microsoft Office application and subsequently executed. These processes are often launched via scripts inside documents or during exploitation of Microsoft Office applications.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Execution of File Written or Modified by Microsoft Office\n\nMicrosoft Office is a suite of applications designed to help with productivity and completing common tasks on a computer.\nYou can create and edit documents containing text and images, work with data in spreadsheets and databases, and create\npresentations and posters. As it is some of the most-used software across companies, MS Office is frequently\ntargeted for initial access. It also has a wide variety of capabilities that attackers can take advantage of.\n\nThis rule searches for executable files written by MS Office applications executed in sequence. This is most likely the result\nof the execution of malicious documents or exploitation for initial access or privilege escalation. This rule can also detect\nsuspicious processes masquerading as the MS Office applications.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve MS Office documents received and opened by the user that could cause this behavior. Common locations include,\nbut are not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-120m","interval":"60m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"},{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]}],"language":"eql","query":"sequence with maxspan=2h\n [file where event.type != \"deletion\" and file.extension : \"exe\" and\n (process.name : \"WINWORD.EXE\" or\n process.name : \"EXCEL.EXE\" or\n process.name : \"OUTLOOK.EXE\" or\n process.name : \"POWERPNT.EXE\" or\n process.name : \"eqnedt32.exe\" or\n process.name : \"fltldr.exe\" or\n process.name : \"MSPUB.EXE\" or\n process.name : \"MSACCESS.EXE\")\n ] by host.id, file.path\n [process where event.type == \"start\"] by host.id, process.executable\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"0d8ad79f-9025-45d8-80c1-4f0cd3c5e8e5:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0e52157a-8e96-4a95-a6e3-5faae5081a74:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0e52157a-8e96-4a95-a6e3-5faae5081a74:101.0.0.json new file mode 100644 index 0000000000000..1e61480d6fb8e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0e52157a-8e96-4a95-a6e3-5faae5081a74:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"SharePoint Malware File Upload v101.0.0","rule_id":"0e52157a-8e96-4a95-a6e3-5faae5081a74:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the occurence of files uploaded to SharePoint being detected as Malware by the file scanning engine. Attackers can use File Sharing and Organization Repositories to spread laterally within the company and amplify their access. Users can inadvertently share these files without knowing their maliciousness, giving adversaries opportunities to gain initial access to other endpoints in the environment.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Benign files can trigger signatures in the built-in virus protection"],"from":"now-30m","references":["https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/virus-detection-in-spo?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1080","name":"Taint Shared Content","reference":"https://attack.mitre.org/techniques/T1080/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:SharePoint and event.code:SharePointFileOperation and event.action:FileMalwareDetected\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"0e52157a-8e96-4a95-a6e3-5faae5081a74:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0e52157a-8e96-4a95-a6e3-5faae5081a74:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0e52157a-8e96-4a95-a6e3-5faae5081a74:101.0.1.json new file mode 100644 index 0000000000000..7f699b3fcf26b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0e52157a-8e96-4a95-a6e3-5faae5081a74:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"SharePoint Malware File Upload v101.0.1","rule_id":"0e52157a-8e96-4a95-a6e3-5faae5081a74:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the occurence of files uploaded to SharePoint being detected as Malware by the file scanning engine. Attackers can use File Sharing and Organization Repositories to spread laterally within the company and amplify their access. Users can inadvertently share these files without knowing their maliciousness, giving adversaries opportunities to gain initial access to other endpoints in the environment.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Benign files can trigger signatures in the built-in virus protection"],"from":"now-30m","references":["https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/virus-detection-in-spo?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1080","name":"Taint Shared Content","reference":"https://attack.mitre.org/techniques/T1080/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:SharePoint and event.code:SharePointFileOperation and event.action:FileMalwareDetected\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"0e52157a-8e96-4a95-a6e3-5faae5081a74:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0e52157a-8e96-4a95-a6e3-5faae5081a74:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0e52157a-8e96-4a95-a6e3-5faae5081a74:101.0.2.json new file mode 100644 index 0000000000000..41c75043c32a0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0e52157a-8e96-4a95-a6e3-5faae5081a74:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"SharePoint Malware File Upload v101.0.2","rule_id":"0e52157a-8e96-4a95-a6e3-5faae5081a74:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the occurence of files uploaded to SharePoint being detected as Malware by the file scanning engine. Attackers can use File Sharing and Organization Repositories to spread laterally within the company and amplify their access. Users can inadvertently share these files without knowing their maliciousness, giving adversaries opportunities to gain initial access to other endpoints in the environment.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Benign files can trigger signatures in the built-in virus protection"],"from":"now-30m","references":["https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/virus-detection-in-spo?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1080","name":"Taint Shared Content","reference":"https://attack.mitre.org/techniques/T1080/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:SharePoint and event.code:SharePointFileOperation and event.action:FileMalwareDetected\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"0e52157a-8e96-4a95-a6e3-5faae5081a74:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0e5acaae-6a64-4bbc-adb8-27649c03f7e1:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0e5acaae-6a64-4bbc-adb8-27649c03f7e1:102.0.0.json new file mode 100644 index 0000000000000..af1241fb1f7ee --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0e5acaae-6a64-4bbc-adb8-27649c03f7e1:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Service Account Key Creation v102.0.0","rule_id":"0e5acaae-6a64-4bbc-adb8-27649c03f7e1:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new key is created for a service account in Google Cloud Platform (GCP). A service account is a special type of account used by an application or a virtual machine (VM) instance, not a person. Applications use service accounts to make authorized API calls, authorized as either the service account itself, or as G Suite or Cloud Identity users through domain-wide delegation. If private keys are not tracked and managed properly, they can present a security risk. An adversary may create a new key for a service account in order to attempt to abuse the permissions assigned to that account and evade detection.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Service account keys may be created by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/iam/docs/service-accounts","https://cloud.google.com/iam/docs/creating-managing-service-account-keys"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.CreateServiceAccountKey and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"0e5acaae-6a64-4bbc-adb8-27649c03f7e1:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0e5acaae-6a64-4bbc-adb8-27649c03f7e1:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0e5acaae-6a64-4bbc-adb8-27649c03f7e1:102.0.1.json new file mode 100644 index 0000000000000..f551c496ebbde --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0e5acaae-6a64-4bbc-adb8-27649c03f7e1:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Service Account Key Creation v102.0.1","rule_id":"0e5acaae-6a64-4bbc-adb8-27649c03f7e1:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new key is created for a service account in Google Cloud Platform (GCP). A service account is a special type of account used by an application or a virtual machine (VM) instance, not a person. Applications use service accounts to make authorized API calls, authorized as either the service account itself, or as G Suite or Cloud Identity users through domain-wide delegation. If private keys are not tracked and managed properly, they can present a security risk. An adversary may create a new key for a service account in order to attempt to abuse the permissions assigned to that account and evade detection.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Service account keys may be created by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/iam/docs/service-accounts","https://cloud.google.com/iam/docs/creating-managing-service-account-keys"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.CreateServiceAccountKey and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"0e5acaae-6a64-4bbc-adb8-27649c03f7e1:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0e5acaae-6a64-4bbc-adb8-27649c03f7e1:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0e5acaae-6a64-4bbc-adb8-27649c03f7e1:102.0.2.json new file mode 100644 index 0000000000000..136d6ccc1abf7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0e5acaae-6a64-4bbc-adb8-27649c03f7e1:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Service Account Key Creation v102.0.2","rule_id":"0e5acaae-6a64-4bbc-adb8-27649c03f7e1:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new key is created for a service account in Google Cloud Platform (GCP). A service account is a special type of account used by an application or a virtual machine (VM) instance, not a person. Applications use service accounts to make authorized API calls, authorized as either the service account itself, or as G Suite or Cloud Identity users through domain-wide delegation. If private keys are not tracked and managed properly, they can present a security risk. An adversary may create a new key for a service account in order to attempt to abuse the permissions assigned to that account and evade detection.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Service account keys may be created by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/iam/docs/service-accounts","https://cloud.google.com/iam/docs/creating-managing-service-account-keys"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.CreateServiceAccountKey and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"0e5acaae-6a64-4bbc-adb8-27649c03f7e1:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0e79980b-4250-4a50-a509-69294c14e84b:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0e79980b-4250-4a50-a509-69294c14e84b:100.0.0.json new file mode 100644 index 0000000000000..4d7d3da9deccd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0e79980b-4250-4a50-a509-69294c14e84b:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"MsBuild Making Network Connections v100.0.0","rule_id":"0e79980b-4250-4a50-a509-69294c14e84b:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies MsBuild.exe making outbound network connections. This may indicate adversarial activity as MsBuild is often leveraged by adversaries to execute code and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/","subtechnique":[{"id":"T1127.001","name":"MSBuild","reference":"https://attack.mitre.org/techniques/T1127/001/"}]}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"MSBuild.exe\" and event.type == \"start\"]\n [network where process.name : \"MSBuild.exe\" and\n not cidrmatch(destination.ip, \"127.0.0.1\", \"::1\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"0e79980b-4250-4a50-a509-69294c14e84b:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0e79980b-4250-4a50-a509-69294c14e84b:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0e79980b-4250-4a50-a509-69294c14e84b:100.0.1.json new file mode 100644 index 0000000000000..a341e712ef7ae --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0e79980b-4250-4a50-a509-69294c14e84b:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"MsBuild Making Network Connections v100.0.1","rule_id":"0e79980b-4250-4a50-a509-69294c14e84b:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies MsBuild.exe making outbound network connections. This may indicate adversarial activity as MsBuild is often leveraged by adversaries to execute code and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/","subtechnique":[{"id":"T1127.001","name":"MSBuild","reference":"https://attack.mitre.org/techniques/T1127/001/"}]}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"MSBuild.exe\" and event.type == \"start\"]\n [network where process.name : \"MSBuild.exe\" and\n not cidrmatch(destination.ip, \"127.0.0.1\", \"::1\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"0e79980b-4250-4a50-a509-69294c14e84b:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0e79980b-4250-4a50-a509-69294c14e84b:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0e79980b-4250-4a50-a509-69294c14e84b:100.0.2.json new file mode 100644 index 0000000000000..18d7b1a8c965e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0e79980b-4250-4a50-a509-69294c14e84b:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"MsBuild Making Network Connections v100.0.2","rule_id":"0e79980b-4250-4a50-a509-69294c14e84b:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies MsBuild.exe making outbound network connections. This may indicate adversarial activity as MsBuild is often leveraged by adversaries to execute code and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/","subtechnique":[{"id":"T1127.001","name":"MSBuild","reference":"https://attack.mitre.org/techniques/T1127/001/"}]}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"MSBuild.exe\" and event.type == \"start\"]\n [network where process.name : \"MSBuild.exe\" and\n not cidrmatch(destination.ip, \"127.0.0.1\", \"::1\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"0e79980b-4250-4a50-a509-69294c14e84b:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0f93cb9a-1931-48c2-8cd0-f173fd3e5283:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0f93cb9a-1931-48c2-8cd0-f173fd3e5283:101.0.0.json new file mode 100644 index 0000000000000..b87b9cae67f5e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0f93cb9a-1931-48c2-8cd0-f173fd3e5283:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential LSASS Memory Dump via PssCaptureSnapShot v101.0.0","rule_id":"0f93cb9a-1931-48c2-8cd0-f173fd3e5283:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious access to an LSASS handle via PssCaptureSnapShot where two successive process accesses are performed by the same process and target two different instances of LSASS. This may indicate an attempt to evade detection and dump LSASS memory for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.matteomalvica.com/blog/2019/12/02/win-defender-atp-cred-bypass/","https://twitter.com/sbousseaden/status/1280619931516747777?lang=en"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"query":"event.category:process and event.code:10 and\n winlog.event_data.TargetImage:(\"C:\\\\Windows\\\\system32\\\\lsass.exe\" or\n \"c:\\\\Windows\\\\system32\\\\lsass.exe\" or\n \"c:\\\\Windows\\\\System32\\\\lsass.exe\")\n","threshold":{"field":["process.entity_id"],"value":2,"cardinality":[{"field":"winlog.event_data.TargetProcessId","value":2}]},"type":"threshold","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetImage","type":"unknown"}],"setup":"This is meant to run only on datasources using Elastic Agent 7.14+ since versions prior to that will be missing the threshold\nrule cardinality feature."},"id":"0f93cb9a-1931-48c2-8cd0-f173fd3e5283:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0f93cb9a-1931-48c2-8cd0-f173fd3e5283:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0f93cb9a-1931-48c2-8cd0-f173fd3e5283:101.0.1.json new file mode 100644 index 0000000000000..c97f625e03cda --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0f93cb9a-1931-48c2-8cd0-f173fd3e5283:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential LSASS Memory Dump via PssCaptureSnapShot v101.0.1","rule_id":"0f93cb9a-1931-48c2-8cd0-f173fd3e5283:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious access to an LSASS handle via PssCaptureSnapShot where two successive process accesses are performed by the same process and target two different instances of LSASS. This may indicate an attempt to evade detection and dump LSASS memory for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.matteomalvica.com/blog/2019/12/02/win-defender-atp-cred-bypass/","https://twitter.com/sbousseaden/status/1280619931516747777?lang=en"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"query":"event.category:process and event.code:10 and\n winlog.event_data.TargetImage:(\"C:\\\\Windows\\\\system32\\\\lsass.exe\" or\n \"c:\\\\Windows\\\\system32\\\\lsass.exe\" or\n \"c:\\\\Windows\\\\System32\\\\lsass.exe\")\n","threshold":{"field":["process.entity_id"],"value":2,"cardinality":[{"field":"winlog.event_data.TargetProcessId","value":2}]},"type":"threshold","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetImage","type":"unknown"}],"setup":"This is meant to run only on datasources using Elastic Agent 7.14+ since versions prior to that will be missing the threshold\nrule cardinality feature."},"id":"0f93cb9a-1931-48c2-8cd0-f173fd3e5283:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0f93cb9a-1931-48c2-8cd0-f173fd3e5283:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0f93cb9a-1931-48c2-8cd0-f173fd3e5283:101.0.2.json new file mode 100644 index 0000000000000..a37cb19ddbb7a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0f93cb9a-1931-48c2-8cd0-f173fd3e5283:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential LSASS Memory Dump via PssCaptureSnapShot v101.0.2","rule_id":"0f93cb9a-1931-48c2-8cd0-f173fd3e5283:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious access to an LSASS handle via PssCaptureSnapShot where two successive process accesses are performed by the same process and target two different instances of LSASS. This may indicate an attempt to evade detection and dump LSASS memory for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.matteomalvica.com/blog/2019/12/02/win-defender-atp-cred-bypass/","https://twitter.com/sbousseaden/status/1280619931516747777?lang=en"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"query":"event.category:process and event.code:10 and\n winlog.event_data.TargetImage:(\"C:\\\\Windows\\\\system32\\\\lsass.exe\" or\n \"c:\\\\Windows\\\\system32\\\\lsass.exe\" or\n \"c:\\\\Windows\\\\System32\\\\lsass.exe\")\n","threshold":{"field":["process.entity_id"],"value":2,"cardinality":[{"field":"winlog.event_data.TargetProcessId","value":2}]},"type":"threshold","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetImage","type":"unknown"}],"setup":"This is meant to run only on datasources using Elastic Agent 7.14+ since versions prior to that will be missing the threshold\nrule cardinality feature."},"id":"0f93cb9a-1931-48c2-8cd0-f173fd3e5283:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0ff84c42-873d-41a2-a4ed-08d74d352d01:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0ff84c42-873d-41a2-a4ed-08d74d352d01:100.0.0.json new file mode 100644 index 0000000000000..2a0b0902a193c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0ff84c42-873d-41a2-a4ed-08d74d352d01:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Privilege Escalation via Root Crontab File Modification v100.0.0","rule_id":"0ff84c42-873d-41a2-a4ed-08d74d352d01:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to the root crontab file. Adversaries may overwrite this file to gain code execution with root privileges by exploiting privileged file write or move related vulnerabilities.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://phoenhex.re/2017-06-09/pwn2own-diskarbitrationd-privesc","https://www.exploit-db.com/exploits/42146"],"tags":["Elastic","Host","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.003","name":"Cron","reference":"https://attack.mitre.org/techniques/T1053/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and not event.type:deletion and\n file.path:/private/var/at/tabs/root and not process.executable:/usr/bin/crontab\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},"id":"0ff84c42-873d-41a2-a4ed-08d74d352d01:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0ff84c42-873d-41a2-a4ed-08d74d352d01:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0ff84c42-873d-41a2-a4ed-08d74d352d01:100.0.1.json new file mode 100644 index 0000000000000..d37248cc0b66f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0ff84c42-873d-41a2-a4ed-08d74d352d01:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Privilege Escalation via Root Crontab File Modification v100.0.1","rule_id":"0ff84c42-873d-41a2-a4ed-08d74d352d01:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to the root crontab file. Adversaries may overwrite this file to gain code execution with root privileges by exploiting privileged file write or move related vulnerabilities.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://phoenhex.re/2017-06-09/pwn2own-diskarbitrationd-privesc","https://www.exploit-db.com/exploits/42146"],"tags":["Elastic","Host","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.003","name":"Cron","reference":"https://attack.mitre.org/techniques/T1053/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and not event.type:deletion and\n file.path:/private/var/at/tabs/root and not process.executable:/usr/bin/crontab\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},"id":"0ff84c42-873d-41a2-a4ed-08d74d352d01:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/0ff84c42-873d-41a2-a4ed-08d74d352d01:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/0ff84c42-873d-41a2-a4ed-08d74d352d01:100.0.2.json new file mode 100644 index 0000000000000..9681e61034125 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/0ff84c42-873d-41a2-a4ed-08d74d352d01:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Privilege Escalation via Root Crontab File Modification v100.0.2","rule_id":"0ff84c42-873d-41a2-a4ed-08d74d352d01:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to the root crontab file. Adversaries may overwrite this file to gain code execution with root privileges by exploiting privileged file write or move related vulnerabilities.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://phoenhex.re/2017-06-09/pwn2own-diskarbitrationd-privesc","https://www.exploit-db.com/exploits/42146"],"tags":["Elastic","Host","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.003","name":"Cron","reference":"https://attack.mitre.org/techniques/T1053/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and not event.type:deletion and\n file.path:/private/var/at/tabs/root and not process.executable:/usr/bin/crontab\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},"id":"0ff84c42-873d-41a2-a4ed-08d74d352d01:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/10a500bb-a28f-418e-ba29-ca4c8d1a9f2f:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/10a500bb-a28f-418e-ba29-ca4c8d1a9f2f:100.0.0.json new file mode 100644 index 0000000000000..9043f3bcc5ad0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/10a500bb-a28f-418e-ba29-ca4c8d1a9f2f:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"WebProxy Settings Modification v100.0.0","rule_id":"10a500bb-a28f-418e-ba29-ca4c8d1a9f2f:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the built-in networksetup command to configure webproxy settings. This may indicate an attempt to hijack web browser traffic for credential access via traffic sniffing or redirection.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate WebProxy Settings Modification"],"from":"now-9m","references":["https://unit42.paloaltonetworks.com/mac-malware-steals-cryptocurrency-exchanges-cookies/","https://objectivebythesea.com/v2/talks/OBTS_v2_Zohar.pdf"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1539","name":"Steal Web Session Cookie","reference":"https://attack.mitre.org/techniques/T1539/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category : process and event.type : start and\n process.name : networksetup and process.args : ((\"-setwebproxy\" or \"-setsecurewebproxy\" or \"-setautoproxyurl\") and not (Bluetooth or off)) and\n not process.parent.executable : (\"/Library/PrivilegedHelperTools/com.80pct.FreedomHelper\" or\n \"/Applications/Fiddler Everywhere.app/Contents/Resources/app/out/WebServer/Fiddler.WebUi\" or\n \"/usr/libexec/xpcproxy\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},"id":"10a500bb-a28f-418e-ba29-ca4c8d1a9f2f:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/10a500bb-a28f-418e-ba29-ca4c8d1a9f2f:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/10a500bb-a28f-418e-ba29-ca4c8d1a9f2f:100.0.1.json new file mode 100644 index 0000000000000..6a73205a7477c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/10a500bb-a28f-418e-ba29-ca4c8d1a9f2f:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"WebProxy Settings Modification v100.0.1","rule_id":"10a500bb-a28f-418e-ba29-ca4c8d1a9f2f:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the built-in networksetup command to configure webproxy settings. This may indicate an attempt to hijack web browser traffic for credential access via traffic sniffing or redirection.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate WebProxy Settings Modification"],"from":"now-9m","references":["https://unit42.paloaltonetworks.com/mac-malware-steals-cryptocurrency-exchanges-cookies/","https://objectivebythesea.com/v2/talks/OBTS_v2_Zohar.pdf"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1539","name":"Steal Web Session Cookie","reference":"https://attack.mitre.org/techniques/T1539/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category : process and event.type : start and\n process.name : networksetup and process.args : ((\"-setwebproxy\" or \"-setsecurewebproxy\" or \"-setautoproxyurl\") and not (Bluetooth or off)) and\n not process.parent.executable : (\"/Library/PrivilegedHelperTools/com.80pct.FreedomHelper\" or\n \"/Applications/Fiddler Everywhere.app/Contents/Resources/app/out/WebServer/Fiddler.WebUi\" or\n \"/usr/libexec/xpcproxy\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},"id":"10a500bb-a28f-418e-ba29-ca4c8d1a9f2f:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/10a500bb-a28f-418e-ba29-ca4c8d1a9f2f:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/10a500bb-a28f-418e-ba29-ca4c8d1a9f2f:100.0.2.json new file mode 100644 index 0000000000000..df8c1bfa428be --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/10a500bb-a28f-418e-ba29-ca4c8d1a9f2f:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"WebProxy Settings Modification v100.0.2","rule_id":"10a500bb-a28f-418e-ba29-ca4c8d1a9f2f:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the built-in networksetup command to configure webproxy settings. This may indicate an attempt to hijack web browser traffic for credential access via traffic sniffing or redirection.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate WebProxy Settings Modification"],"from":"now-9m","references":["https://unit42.paloaltonetworks.com/mac-malware-steals-cryptocurrency-exchanges-cookies/","https://objectivebythesea.com/v2/talks/OBTS_v2_Zohar.pdf"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1539","name":"Steal Web Session Cookie","reference":"https://attack.mitre.org/techniques/T1539/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category : process and event.type : start and\n process.name : networksetup and process.args : ((\"-setwebproxy\" or \"-setsecurewebproxy\" or \"-setautoproxyurl\") and not (Bluetooth or off)) and\n not process.parent.executable : (\"/Library/PrivilegedHelperTools/com.80pct.FreedomHelper\" or\n \"/Applications/Fiddler Everywhere.app/Contents/Resources/app/out/WebServer/Fiddler.WebUi\" or\n \"/usr/libexec/xpcproxy\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},"id":"10a500bb-a28f-418e-ba29-ca4c8d1a9f2f:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/11013227-0301-4a8c-b150-4db924484475:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/11013227-0301-4a8c-b150-4db924484475:102.0.0.json new file mode 100644 index 0000000000000..b04a954c480dd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/11013227-0301-4a8c-b150-4db924484475:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Abnormally Large DNS Response v102.0.0","rule_id":"11013227-0301-4a8c-b150-4db924484475:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Specially crafted DNS requests can manipulate a known overflow vulnerability in some Windows DNS servers, resulting in Remote Code Execution (RCE) or a Denial of Service (DoS) from crashing the service.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Abnormally Large DNS Response\n\nDetection alerts from this rule indicate possible anomalous activity around large byte DNS responses from a Windows DNS\nserver. This detection rule was created based on activity represented in exploitation of vulnerability (CVE-2020-1350)\nalso known as [SigRed](https://www.elastic.co/blog/detection-rules-for-sigred-vulnerability) during July 2020.\n\n#### Possible investigation steps\n\n- This specific rule is sourced from network log activity such as DNS or network level data. It's important to validate\nthe source of the incoming traffic and determine if this activity has been observed previously within an environment.\n- Activity can be further investigated and validated by reviewing any associated Intrusion Detection Signatures (IDS) alerts.\n- Further examination can include a review of the `dns.question_type` network fieldset with a protocol analyzer, such as\nZeek, Packetbeat, or Suricata, for `SIG` or `RRSIG` data.\n- Validate the patch level and OS of the targeted DNS server to validate the observed activity was not large-scale\ninternet vulnerability scanning.\n- Validate that the source of the network activity was not from an authorized vulnerability scan or compromise assessment.\n\n#### False positive analysis\n\n- Based on this rule, which looks for a threshold of 60k bytes, it is possible for activity to be generated under 65k bytes\nand related to legitimate behavior. In packet capture files received by the [SANS Internet Storm Center](https://isc.sans.edu/forums/diary/PATCH+NOW+SIGRed+CVE20201350+Microsoft+DNS+Server+Vulnerability/26356/), byte responses\nwere all observed as greater than 65k bytes.\n- This activity can be triggered by compliance/vulnerability scanning or compromise assessment; it's important to\ndetermine the source of the activity and potentially allowlist the source host.\n\n### Related rules\n\n- Unusual Child Process of dns.exe - 8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45\n- Unusual File Modification by dns.exe - c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Ensure that you have deployed the latest Microsoft [Security Update](https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-1350)\n(Monthly Rollup or Security Only) and restarted the patched machines. If unable to patch immediately, Microsoft [released](https://support.microsoft.com/en-us/help/4569509/windows-dns-server-remote-code-execution-vulnerability)\na registry-based workaround that doesn’t require a restart. This can be used as a temporary solution before the patch is applied.\n- Maintain backups of your critical systems to aid in quick recovery.\n- Perform routine vulnerability scans of your systems, monitor [CISA advisories](https://us-cert.cisa.gov/ncas/current-activity) and patch identified vulnerabilities.\n- If you observe a true positive, implement a remediation plan and monitor host-based artifacts for additional post-exploitation behavior.\n","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Environments that leverage DNS responses over 60k bytes will result in false positives - if this traffic is predictable and expected, it should be filtered out. Additionally, this detection rule could be triggered by an authorized vulnerability scan or compromise assessment."],"references":["https://research.checkpoint.com/2020/resolving-your-way-into-domain-admin-exploiting-a-17-year-old-bug-in-windows-dns-servers/","https://msrc-blog.microsoft.com/2020/07/14/july-2020-security-update-cve-2020-1350-vulnerability-in-windows-domain-name-system-dns-server/","https://github.com/maxpl0it/CVE-2020-1350-DoS","https://www.elastic.co/security-labs/detection-rules-for-sigred-vulnerability"],"tags":["Elastic","Network","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1210","name":"Exploitation of Remote Services","reference":"https://attack.mitre.org/techniques/T1210/"}]}],"type":"query","index":["packetbeat-*","filebeat-*"],"language":"kuery","query":"event.category:(network or network_traffic) and destination.port:53 and\n (event.dataset:zeek.dns or type:dns or event.type:connection) and network.bytes > 60000\n","required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"network.bytes","type":"long"},{"ecs":false,"name":"type","type":"keyword"}]},"id":"11013227-0301-4a8c-b150-4db924484475:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/11013227-0301-4a8c-b150-4db924484475:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/11013227-0301-4a8c-b150-4db924484475:102.0.1.json new file mode 100644 index 0000000000000..c08ee880f4382 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/11013227-0301-4a8c-b150-4db924484475:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Abnormally Large DNS Response v102.0.1","rule_id":"11013227-0301-4a8c-b150-4db924484475:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Specially crafted DNS requests can manipulate a known overflow vulnerability in some Windows DNS servers, resulting in Remote Code Execution (RCE) or a Denial of Service (DoS) from crashing the service.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Abnormally Large DNS Response\n\nDetection alerts from this rule indicate possible anomalous activity around large byte DNS responses from a Windows DNS\nserver. This detection rule was created based on activity represented in exploitation of vulnerability (CVE-2020-1350)\nalso known as [SigRed](https://www.elastic.co/blog/detection-rules-for-sigred-vulnerability) during July 2020.\n\n#### Possible investigation steps\n\n- This specific rule is sourced from network log activity such as DNS or network level data. It's important to validate\nthe source of the incoming traffic and determine if this activity has been observed previously within an environment.\n- Activity can be further investigated and validated by reviewing any associated Intrusion Detection Signatures (IDS) alerts.\n- Further examination can include a review of the `dns.question_type` network fieldset with a protocol analyzer, such as\nZeek, Packetbeat, or Suricata, for `SIG` or `RRSIG` data.\n- Validate the patch level and OS of the targeted DNS server to validate the observed activity was not large-scale\ninternet vulnerability scanning.\n- Validate that the source of the network activity was not from an authorized vulnerability scan or compromise assessment.\n\n#### False positive analysis\n\n- Based on this rule, which looks for a threshold of 60k bytes, it is possible for activity to be generated under 65k bytes\nand related to legitimate behavior. In packet capture files received by the [SANS Internet Storm Center](https://isc.sans.edu/forums/diary/PATCH+NOW+SIGRed+CVE20201350+Microsoft+DNS+Server+Vulnerability/26356/), byte responses\nwere all observed as greater than 65k bytes.\n- This activity can be triggered by compliance/vulnerability scanning or compromise assessment; it's important to\ndetermine the source of the activity and potentially allowlist the source host.\n\n### Related rules\n\n- Unusual Child Process of dns.exe - 8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45\n- Unusual File Modification by dns.exe - c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Ensure that you have deployed the latest Microsoft [Security Update](https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-1350)\n(Monthly Rollup or Security Only) and restarted the patched machines. If unable to patch immediately, Microsoft [released](https://support.microsoft.com/en-us/help/4569509/windows-dns-server-remote-code-execution-vulnerability)\na registry-based workaround that doesn’t require a restart. This can be used as a temporary solution before the patch is applied.\n- Maintain backups of your critical systems to aid in quick recovery.\n- Perform routine vulnerability scans of your systems, monitor [CISA advisories](https://us-cert.cisa.gov/ncas/current-activity) and patch identified vulnerabilities.\n- If you observe a true positive, implement a remediation plan and monitor host-based artifacts for additional post-exploitation behavior.\n","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Environments that leverage DNS responses over 60k bytes will result in false positives - if this traffic is predictable and expected, it should be filtered out. Additionally, this detection rule could be triggered by an authorized vulnerability scan or compromise assessment."],"references":["https://research.checkpoint.com/2020/resolving-your-way-into-domain-admin-exploiting-a-17-year-old-bug-in-windows-dns-servers/","https://msrc-blog.microsoft.com/2020/07/14/july-2020-security-update-cve-2020-1350-vulnerability-in-windows-domain-name-system-dns-server/","https://github.com/maxpl0it/CVE-2020-1350-DoS","https://www.elastic.co/security-labs/detection-rules-for-sigred-vulnerability"],"tags":["Elastic","Network","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1210","name":"Exploitation of Remote Services","reference":"https://attack.mitre.org/techniques/T1210/"}]}],"type":"query","index":["packetbeat-*","filebeat-*"],"language":"kuery","query":"event.category:(network or network_traffic) and destination.port:53 and\n (event.dataset:zeek.dns or type:dns or event.type:connection) and network.bytes > 60000\n","required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"network.bytes","type":"long"},{"ecs":false,"name":"type","type":"keyword"}]},"id":"11013227-0301-4a8c-b150-4db924484475:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/11013227-0301-4a8c-b150-4db924484475:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/11013227-0301-4a8c-b150-4db924484475:102.0.2.json new file mode 100644 index 0000000000000..74c41dcf9fa9d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/11013227-0301-4a8c-b150-4db924484475:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Abnormally Large DNS Response v102.0.2","rule_id":"11013227-0301-4a8c-b150-4db924484475:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Specially crafted DNS requests can manipulate a known overflow vulnerability in some Windows DNS servers, resulting in Remote Code Execution (RCE) or a Denial of Service (DoS) from crashing the service.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Abnormally Large DNS Response\n\nDetection alerts from this rule indicate possible anomalous activity around large byte DNS responses from a Windows DNS\nserver. This detection rule was created based on activity represented in exploitation of vulnerability (CVE-2020-1350)\nalso known as [SigRed](https://www.elastic.co/blog/detection-rules-for-sigred-vulnerability) during July 2020.\n\n#### Possible investigation steps\n\n- This specific rule is sourced from network log activity such as DNS or network level data. It's important to validate\nthe source of the incoming traffic and determine if this activity has been observed previously within an environment.\n- Activity can be further investigated and validated by reviewing any associated Intrusion Detection Signatures (IDS) alerts.\n- Further examination can include a review of the `dns.question_type` network fieldset with a protocol analyzer, such as\nZeek, Packetbeat, or Suricata, for `SIG` or `RRSIG` data.\n- Validate the patch level and OS of the targeted DNS server to validate the observed activity was not large-scale\ninternet vulnerability scanning.\n- Validate that the source of the network activity was not from an authorized vulnerability scan or compromise assessment.\n\n#### False positive analysis\n\n- Based on this rule, which looks for a threshold of 60k bytes, it is possible for activity to be generated under 65k bytes\nand related to legitimate behavior. In packet capture files received by the [SANS Internet Storm Center](https://isc.sans.edu/forums/diary/PATCH+NOW+SIGRed+CVE20201350+Microsoft+DNS+Server+Vulnerability/26356/), byte responses\nwere all observed as greater than 65k bytes.\n- This activity can be triggered by compliance/vulnerability scanning or compromise assessment; it's important to\ndetermine the source of the activity and potentially allowlist the source host.\n\n### Related rules\n\n- Unusual Child Process of dns.exe - 8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45\n- Unusual File Modification by dns.exe - c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Ensure that you have deployed the latest Microsoft [Security Update](https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-1350)\n(Monthly Rollup or Security Only) and restarted the patched machines. If unable to patch immediately, Microsoft [released](https://support.microsoft.com/en-us/help/4569509/windows-dns-server-remote-code-execution-vulnerability)\na registry-based workaround that doesn’t require a restart. This can be used as a temporary solution before the patch is applied.\n- Maintain backups of your critical systems to aid in quick recovery.\n- Perform routine vulnerability scans of your systems, monitor [CISA advisories](https://us-cert.cisa.gov/ncas/current-activity) and patch identified vulnerabilities.\n- If you observe a true positive, implement a remediation plan and monitor host-based artifacts for additional post-exploitation behavior.\n","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Environments that leverage DNS responses over 60k bytes will result in false positives - if this traffic is predictable and expected, it should be filtered out. Additionally, this detection rule could be triggered by an authorized vulnerability scan or compromise assessment."],"references":["https://research.checkpoint.com/2020/resolving-your-way-into-domain-admin-exploiting-a-17-year-old-bug-in-windows-dns-servers/","https://msrc-blog.microsoft.com/2020/07/14/july-2020-security-update-cve-2020-1350-vulnerability-in-windows-domain-name-system-dns-server/","https://github.com/maxpl0it/CVE-2020-1350-DoS","https://www.elastic.co/security-labs/detection-rules-for-sigred-vulnerability"],"tags":["Elastic","Network","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1210","name":"Exploitation of Remote Services","reference":"https://attack.mitre.org/techniques/T1210/"}]}],"type":"query","index":["packetbeat-*","filebeat-*"],"language":"kuery","query":"event.category:(network or network_traffic) and destination.port:53 and\n (event.dataset:zeek.dns or type:dns or event.type:connection) and network.bytes > 60000\n","required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"network.bytes","type":"long"},{"ecs":false,"name":"type","type":"keyword"}]},"id":"11013227-0301-4a8c-b150-4db924484475:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1160dcdb-0a0a-4a79-91d8-9b84616edebd:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1160dcdb-0a0a-4a79-91d8-9b84616edebd:101.0.0.json new file mode 100644 index 0000000000000..f94089c6023fc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1160dcdb-0a0a-4a79-91d8-9b84616edebd:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential DLL SideLoading via Trusted Microsoft Programs v101.0.0","rule_id":"1160dcdb-0a0a-4a79-91d8-9b84616edebd:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an instance of a Windows trusted program that is known to be vulnerable to DLL Search Order Hijacking starting after being renamed or from a non-standard path. This is uncommon behavior and may indicate an attempt to evade defenses via side loading a malicious DLL within the memory space of one of those processes.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name in (\"WinWord.exe\", \"EXPLORER.EXE\", \"w3wp.exe\", \"DISM.EXE\") and\n not (process.name : (\"winword.exe\", \"explorer.exe\", \"w3wp.exe\", \"Dism.exe\") or\n process.executable : (\"?:\\\\Windows\\\\explorer.exe\",\n \"?:\\\\Program Files\\\\Microsoft Office\\\\root\\\\Office*\\\\WINWORD.EXE\",\n \"?:\\\\Program Files?(x86)\\\\Microsoft Office\\\\root\\\\Office*\\\\WINWORD.EXE\",\n \"?:\\\\Windows\\\\System32\\\\Dism.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\Dism.exe\",\n \"?:\\\\Windows\\\\System32\\\\inetsrv\\\\w3wp.exe\")\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"1160dcdb-0a0a-4a79-91d8-9b84616edebd:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1160dcdb-0a0a-4a79-91d8-9b84616edebd:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1160dcdb-0a0a-4a79-91d8-9b84616edebd:101.0.1.json new file mode 100644 index 0000000000000..3ba057a375a37 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1160dcdb-0a0a-4a79-91d8-9b84616edebd:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential DLL SideLoading via Trusted Microsoft Programs v101.0.1","rule_id":"1160dcdb-0a0a-4a79-91d8-9b84616edebd:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an instance of a Windows trusted program that is known to be vulnerable to DLL Search Order Hijacking starting after being renamed or from a non-standard path. This is uncommon behavior and may indicate an attempt to evade defenses via side loading a malicious DLL within the memory space of one of those processes.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name in (\"WinWord.exe\", \"EXPLORER.EXE\", \"w3wp.exe\", \"DISM.EXE\") and\n not (process.name : (\"winword.exe\", \"explorer.exe\", \"w3wp.exe\", \"Dism.exe\") or\n process.executable : (\"?:\\\\Windows\\\\explorer.exe\",\n \"?:\\\\Program Files\\\\Microsoft Office\\\\root\\\\Office*\\\\WINWORD.EXE\",\n \"?:\\\\Program Files?(x86)\\\\Microsoft Office\\\\root\\\\Office*\\\\WINWORD.EXE\",\n \"?:\\\\Windows\\\\System32\\\\Dism.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\Dism.exe\",\n \"?:\\\\Windows\\\\System32\\\\inetsrv\\\\w3wp.exe\")\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"1160dcdb-0a0a-4a79-91d8-9b84616edebd:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1160dcdb-0a0a-4a79-91d8-9b84616edebd:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1160dcdb-0a0a-4a79-91d8-9b84616edebd:101.0.2.json new file mode 100644 index 0000000000000..01babd9a2184d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1160dcdb-0a0a-4a79-91d8-9b84616edebd:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential DLL SideLoading via Trusted Microsoft Programs v101.0.2","rule_id":"1160dcdb-0a0a-4a79-91d8-9b84616edebd:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an instance of a Windows trusted program that is known to be vulnerable to DLL Search Order Hijacking starting after being renamed or from a non-standard path. This is uncommon behavior and may indicate an attempt to evade defenses via side loading a malicious DLL within the memory space of one of those processes.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name in (\"WinWord.exe\", \"EXPLORER.EXE\", \"w3wp.exe\", \"DISM.EXE\") and\n not (process.name : (\"winword.exe\", \"explorer.exe\", \"w3wp.exe\", \"Dism.exe\") or\n process.executable : (\"?:\\\\Windows\\\\explorer.exe\",\n \"?:\\\\Program Files\\\\Microsoft Office\\\\root\\\\Office*\\\\WINWORD.EXE\",\n \"?:\\\\Program Files?(x86)\\\\Microsoft Office\\\\root\\\\Office*\\\\WINWORD.EXE\",\n \"?:\\\\Windows\\\\System32\\\\Dism.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\Dism.exe\",\n \"?:\\\\Windows\\\\System32\\\\inetsrv\\\\w3wp.exe\")\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"1160dcdb-0a0a-4a79-91d8-9b84616edebd:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1178ae09-5aff-460a-9f2f-455cd0ac4d8e:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1178ae09-5aff-460a-9f2f-455cd0ac4d8e:102.0.0.json new file mode 100644 index 0000000000000..5525002aa7352 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1178ae09-5aff-460a-9f2f-455cd0ac4d8e:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"UAC Bypass via Windows Firewall Snap-In Hijack v102.0.0","rule_id":"1178ae09-5aff-460a-9f2f-455cd0ac4d8e:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to bypass User Account Control (UAC) by hijacking the Microsoft Management Console (MMC) Windows Firewall snap-in. Attackers bypass UAC to stealthily execute code with elevated permissions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating UAC Bypass via Windows Firewall Snap-In Hijack\n\nWindows User Account Control (UAC) allows a program to elevate its privileges (tracked as low to high integrity levels)\nto perform a task under administrator-level permissions, possibly by prompting the user for confirmation.\nUAC can deny an operation under high-integrity enforcement, or allow the user to perform the action if they are in the\nlocal administrators group and enter an administrator password when prompted.\n\nFor more information about the UAC and how it works, check the [official Microsoft docs page](https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/how-user-account-control-works).\n\nThis rule identifies attempts to bypass User Account Control (UAC) by hijacking the Microsoft Management Console (MMC)\nWindows Firewall snap-in. Attackers bypass UAC to stealthily execute code with elevated permissions.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze any suspicious spawned processes using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/AzAgarampur/byeintegrity-uac"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name == \"mmc.exe\" and\n /* process.Ext.token.integrity_level_name == \"high\" can be added in future for tuning */\n /* args of the Windows Firewall SnapIn */\n process.parent.args == \"WF.msc\" and process.name != \"WerFault.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"1178ae09-5aff-460a-9f2f-455cd0ac4d8e:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1178ae09-5aff-460a-9f2f-455cd0ac4d8e:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1178ae09-5aff-460a-9f2f-455cd0ac4d8e:102.0.1.json new file mode 100644 index 0000000000000..2da46ce53dfbe --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1178ae09-5aff-460a-9f2f-455cd0ac4d8e:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"UAC Bypass via Windows Firewall Snap-In Hijack v102.0.1","rule_id":"1178ae09-5aff-460a-9f2f-455cd0ac4d8e:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to bypass User Account Control (UAC) by hijacking the Microsoft Management Console (MMC) Windows Firewall snap-in. Attackers bypass UAC to stealthily execute code with elevated permissions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating UAC Bypass via Windows Firewall Snap-In Hijack\n\nWindows User Account Control (UAC) allows a program to elevate its privileges (tracked as low to high integrity levels)\nto perform a task under administrator-level permissions, possibly by prompting the user for confirmation.\nUAC can deny an operation under high-integrity enforcement, or allow the user to perform the action if they are in the\nlocal administrators group and enter an administrator password when prompted.\n\nFor more information about the UAC and how it works, check the [official Microsoft docs page](https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/how-user-account-control-works).\n\nThis rule identifies attempts to bypass User Account Control (UAC) by hijacking the Microsoft Management Console (MMC)\nWindows Firewall snap-in. Attackers bypass UAC to stealthily execute code with elevated permissions.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze any suspicious spawned processes using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/AzAgarampur/byeintegrity-uac"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name == \"mmc.exe\" and\n /* process.Ext.token.integrity_level_name == \"high\" can be added in future for tuning */\n /* args of the Windows Firewall SnapIn */\n process.parent.args == \"WF.msc\" and process.name != \"WerFault.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"1178ae09-5aff-460a-9f2f-455cd0ac4d8e:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1178ae09-5aff-460a-9f2f-455cd0ac4d8e:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1178ae09-5aff-460a-9f2f-455cd0ac4d8e:102.0.2.json new file mode 100644 index 0000000000000..a6a3156cb4728 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1178ae09-5aff-460a-9f2f-455cd0ac4d8e:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"UAC Bypass via Windows Firewall Snap-In Hijack v102.0.2","rule_id":"1178ae09-5aff-460a-9f2f-455cd0ac4d8e:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to bypass User Account Control (UAC) by hijacking the Microsoft Management Console (MMC) Windows Firewall snap-in. Attackers bypass UAC to stealthily execute code with elevated permissions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating UAC Bypass via Windows Firewall Snap-In Hijack\n\nWindows User Account Control (UAC) allows a program to elevate its privileges (tracked as low to high integrity levels)\nto perform a task under administrator-level permissions, possibly by prompting the user for confirmation.\nUAC can deny an operation under high-integrity enforcement, or allow the user to perform the action if they are in the\nlocal administrators group and enter an administrator password when prompted.\n\nFor more information about the UAC and how it works, check the [official Microsoft docs page](https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/how-user-account-control-works).\n\nThis rule identifies attempts to bypass User Account Control (UAC) by hijacking the Microsoft Management Console (MMC)\nWindows Firewall snap-in. Attackers bypass UAC to stealthily execute code with elevated permissions.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze any suspicious spawned processes using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/AzAgarampur/byeintegrity-uac"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name == \"mmc.exe\" and\n /* process.Ext.token.integrity_level_name == \"high\" can be added in future for tuning */\n /* args of the Windows Firewall SnapIn */\n process.parent.args == \"WF.msc\" and process.name != \"WerFault.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"1178ae09-5aff-460a-9f2f-455cd0ac4d8e:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/119c8877-8613-416d-a98a-96b6664ee73a:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/119c8877-8613-416d-a98a-96b6664ee73a:101.0.0.json new file mode 100644 index 0000000000000..e9fb8ce6a4238 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/119c8877-8613-416d-a98a-96b6664ee73a:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS RDS Snapshot Export v101.0.0","rule_id":"119c8877-8613-416d-a98a-96b6664ee73a:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the export of an Amazon Relational Database Service (RDS) Aurora database snapshot.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Exporting snapshots may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Snapshot exports from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_StartExportTask.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility","Exfiltration"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:StartExportTask and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"119c8877-8613-416d-a98a-96b6664ee73a:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/119c8877-8613-416d-a98a-96b6664ee73a:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/119c8877-8613-416d-a98a-96b6664ee73a:101.0.1.json new file mode 100644 index 0000000000000..03f5cc59e51b9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/119c8877-8613-416d-a98a-96b6664ee73a:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS RDS Snapshot Export v101.0.1","rule_id":"119c8877-8613-416d-a98a-96b6664ee73a:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the export of an Amazon Relational Database Service (RDS) Aurora database snapshot.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Exporting snapshots may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Snapshot exports from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_StartExportTask.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility","Exfiltration"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:StartExportTask and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"119c8877-8613-416d-a98a-96b6664ee73a:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/119c8877-8613-416d-a98a-96b6664ee73a:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/119c8877-8613-416d-a98a-96b6664ee73a:101.0.2.json new file mode 100644 index 0000000000000..95d365ebbf8e3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/119c8877-8613-416d-a98a-96b6664ee73a:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS RDS Snapshot Export v101.0.2","rule_id":"119c8877-8613-416d-a98a-96b6664ee73a:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the export of an Amazon Relational Database Service (RDS) Aurora database snapshot.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Exporting snapshots may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Snapshot exports from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_StartExportTask.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility","Exfiltration"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:StartExportTask and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"119c8877-8613-416d-a98a-96b6664ee73a:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/11dd9713-0ec6-4110-9707-32daae1ee68c:1.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/11dd9713-0ec6-4110-9707-32daae1ee68c:1.0.0.json new file mode 100644 index 0000000000000..e5ec1dab8da89 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/11dd9713-0ec6-4110-9707-32daae1ee68c:1.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell Script with Token Impersonation Capabilities v1.0.0","rule_id":"11dd9713-0ec6-4110-9707-32daae1ee68c:1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects scripts that contain PowerShell functions, structures, or Windows API functions related to token impersonation/theft. Attackers may duplicate then impersonate another user's token to escalate privileges and bypass access controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/decoder-it/psgetsystem","https://github.com/PowerShellMafia/PowerSploit/blob/master/Privesc/Get-System.ps1","https://github.com/EmpireProject/Empire/blob/master/data/module_source/privesc/Invoke-MS16032.ps1","https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/","subtechnique":[{"id":"T1134.001","name":"Token Impersonation/Theft","reference":"https://attack.mitre.org/techniques/T1134/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]},{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text:(\n \"Invoke-TokenManipulation\" or\n \"ImpersonateNamedPipeClient\" or\n \"NtImpersonateThread\" or\n (\n \"STARTUPINFOEX\" and\n \"UpdateProcThreadAttribute\"\n ) or\n (\n \"AdjustTokenPrivileges\" and\n \"SeDebugPrivilege\"\n ) or\n (\n (\"DuplicateToken\" or\n \"DuplicateTokenEx\") and\n (\"SetThreadToken\" or\n \"ImpersonateLoggedOnUser\" or \n\t \"CreateProcessWithTokenW\" or \n\t \"CreatePRocessAsUserW\" or \n\t \"CreateProcessAsUserA\")\n ) \n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"11dd9713-0ec6-4110-9707-32daae1ee68c:1.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/11dd9713-0ec6-4110-9707-32daae1ee68c:1.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/11dd9713-0ec6-4110-9707-32daae1ee68c:1.0.1.json new file mode 100644 index 0000000000000..d316c6ee7329f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/11dd9713-0ec6-4110-9707-32daae1ee68c:1.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell Script with Token Impersonation Capabilities v1.0.1","rule_id":"11dd9713-0ec6-4110-9707-32daae1ee68c:1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects scripts that contain PowerShell functions, structures, or Windows API functions related to token impersonation/theft. Attackers may duplicate then impersonate another user's token to escalate privileges and bypass access controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/decoder-it/psgetsystem","https://github.com/PowerShellMafia/PowerSploit/blob/master/Privesc/Get-System.ps1","https://github.com/EmpireProject/Empire/blob/master/data/module_source/privesc/Invoke-MS16032.ps1","https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/","subtechnique":[{"id":"T1134.001","name":"Token Impersonation/Theft","reference":"https://attack.mitre.org/techniques/T1134/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]},{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text:(\n \"Invoke-TokenManipulation\" or\n \"ImpersonateNamedPipeClient\" or\n \"NtImpersonateThread\" or\n (\n \"STARTUPINFOEX\" and\n \"UpdateProcThreadAttribute\"\n ) or\n (\n \"AdjustTokenPrivileges\" and\n \"SeDebugPrivilege\"\n ) or\n (\n (\"DuplicateToken\" or\n \"DuplicateTokenEx\") and\n (\"SetThreadToken\" or\n \"ImpersonateLoggedOnUser\" or \n\t \"CreateProcessWithTokenW\" or \n\t \"CreatePRocessAsUserW\" or \n\t \"CreateProcessAsUserA\")\n ) \n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"11dd9713-0ec6-4110-9707-32daae1ee68c:1.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/11dd9713-0ec6-4110-9707-32daae1ee68c:1.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/11dd9713-0ec6-4110-9707-32daae1ee68c:1.0.2.json new file mode 100644 index 0000000000000..7a364cdc1c8b2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/11dd9713-0ec6-4110-9707-32daae1ee68c:1.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell Script with Token Impersonation Capabilities v1.0.2","rule_id":"11dd9713-0ec6-4110-9707-32daae1ee68c:1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects scripts that contain PowerShell functions, structures, or Windows API functions related to token impersonation/theft. Attackers may duplicate then impersonate another user's token to escalate privileges and bypass access controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/decoder-it/psgetsystem","https://github.com/PowerShellMafia/PowerSploit/blob/master/Privesc/Get-System.ps1","https://github.com/EmpireProject/Empire/blob/master/data/module_source/privesc/Invoke-MS16032.ps1","https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/","subtechnique":[{"id":"T1134.001","name":"Token Impersonation/Theft","reference":"https://attack.mitre.org/techniques/T1134/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]},{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text:(\n \"Invoke-TokenManipulation\" or\n \"ImpersonateNamedPipeClient\" or\n \"NtImpersonateThread\" or\n (\n \"STARTUPINFOEX\" and\n \"UpdateProcThreadAttribute\"\n ) or\n (\n \"AdjustTokenPrivileges\" and\n \"SeDebugPrivilege\"\n ) or\n (\n (\"DuplicateToken\" or\n \"DuplicateTokenEx\") and\n (\"SetThreadToken\" or\n \"ImpersonateLoggedOnUser\" or \n\t \"CreateProcessWithTokenW\" or \n\t \"CreatePRocessAsUserW\" or \n\t \"CreateProcessAsUserA\")\n ) \n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"11dd9713-0ec6-4110-9707-32daae1ee68c:1.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/11ea6bec-ebde-4d71-a8e9-784948f8e3e9:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/11ea6bec-ebde-4d71-a8e9-784948f8e3e9:102.0.0.json new file mode 100644 index 0000000000000..928dd54c02ba2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/11ea6bec-ebde-4d71-a8e9-784948f8e3e9:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Third-party Backup Files Deleted via Unexpected Process v102.0.0","rule_id":"11ea6bec-ebde-4d71-a8e9-784948f8e3e9:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of backup files, saved using third-party software, by a process outside of the backup suite. Adversaries may delete Backup files to ensure that recovery from a ransomware attack is less likely.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Third-party Backup Files Deleted via Unexpected Process\n\nBackups are a significant obstacle for any ransomware operation. They allow the victim to resume business by performing\ndata recovery, making them a valuable target.\n\nAttackers can delete backups from the host and gain access to backup servers to remove centralized backups for the\nenvironment, ensuring that victims have no alternatives to paying the ransom.\n\nThis rule identifies file deletions performed by a process that does not belong to the backup suite and aims to delete\nVeritas or Veeam backups.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check if any files on the host machine have been encrypted.\n\n### False positive analysis\n\n- This rule can be triggered by the manual removal of backup files and by removal using other third-party tools that are\nnot from the backup suite. Exceptions can be added for specific accounts and executables, preferably tied together.\n\n### Related rules\n\n- Deleting Backup Catalogs with Wbadmin - 581add16-df76-42bb-af8e-c979bfb39a59\n- Volume Shadow Copy Deleted or Resized via VssAdmin - b5ea4bfe-a1b2-421f-9d47-22a75a6f2921\n- Volume Shadow Copy Deletion via PowerShell - d99a037b-c8e2-47a5-97b9-170d076827c4\n- Volume Shadow Copy Deletion via WMIC - dc9c1f74-dac3-48e3-b47f-eb79db358f57\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- Perform data recovery locally or restore the backups from replicated copies (Cloud, other servers, etc.).\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain utilities that delete files for disk cleanup or Administrators manually removing backup files."],"from":"now-9m","references":["https://www.advintel.io/post/backup-removal-solutions-from-conti-ransomware-with-love"],"tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"file where event.type == \"deletion\" and\n (\n /* Veeam Related Backup Files */\n (file.extension : (\"VBK\", \"VIB\", \"VBM\") and\n not process.executable : (\"?:\\\\Windows\\\\Veeam\\\\Backup\\\\*\",\n \"?:\\\\Program Files\\\\Veeam\\\\Backup and Replication\\\\*\",\n \"?:\\\\Program Files (x86)\\\\Veeam\\\\Backup and Replication\\\\*\")) or\n\n /* Veritas Backup Exec Related Backup File */\n (file.extension : \"BKF\" and\n not process.executable : (\"?:\\\\Program Files\\\\Veritas\\\\Backup Exec\\\\*\",\n \"?:\\\\Program Files (x86)\\\\Veritas\\\\Backup Exec\\\\*\"))\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"11ea6bec-ebde-4d71-a8e9-784948f8e3e9:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/11ea6bec-ebde-4d71-a8e9-784948f8e3e9:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/11ea6bec-ebde-4d71-a8e9-784948f8e3e9:102.0.1.json new file mode 100644 index 0000000000000..b5058040e752b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/11ea6bec-ebde-4d71-a8e9-784948f8e3e9:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Third-party Backup Files Deleted via Unexpected Process v102.0.1","rule_id":"11ea6bec-ebde-4d71-a8e9-784948f8e3e9:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of backup files, saved using third-party software, by a process outside of the backup suite. Adversaries may delete Backup files to ensure that recovery from a ransomware attack is less likely.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Third-party Backup Files Deleted via Unexpected Process\n\nBackups are a significant obstacle for any ransomware operation. They allow the victim to resume business by performing\ndata recovery, making them a valuable target.\n\nAttackers can delete backups from the host and gain access to backup servers to remove centralized backups for the\nenvironment, ensuring that victims have no alternatives to paying the ransom.\n\nThis rule identifies file deletions performed by a process that does not belong to the backup suite and aims to delete\nVeritas or Veeam backups.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check if any files on the host machine have been encrypted.\n\n### False positive analysis\n\n- This rule can be triggered by the manual removal of backup files and by removal using other third-party tools that are\nnot from the backup suite. Exceptions can be added for specific accounts and executables, preferably tied together.\n\n### Related rules\n\n- Deleting Backup Catalogs with Wbadmin - 581add16-df76-42bb-af8e-c979bfb39a59\n- Volume Shadow Copy Deleted or Resized via VssAdmin - b5ea4bfe-a1b2-421f-9d47-22a75a6f2921\n- Volume Shadow Copy Deletion via PowerShell - d99a037b-c8e2-47a5-97b9-170d076827c4\n- Volume Shadow Copy Deletion via WMIC - dc9c1f74-dac3-48e3-b47f-eb79db358f57\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- Perform data recovery locally or restore the backups from replicated copies (Cloud, other servers, etc.).\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain utilities that delete files for disk cleanup or Administrators manually removing backup files."],"from":"now-9m","references":["https://www.advintel.io/post/backup-removal-solutions-from-conti-ransomware-with-love"],"tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"file where event.type == \"deletion\" and\n (\n /* Veeam Related Backup Files */\n (file.extension : (\"VBK\", \"VIB\", \"VBM\") and\n not process.executable : (\"?:\\\\Windows\\\\Veeam\\\\Backup\\\\*\",\n \"?:\\\\Program Files\\\\Veeam\\\\Backup and Replication\\\\*\",\n \"?:\\\\Program Files (x86)\\\\Veeam\\\\Backup and Replication\\\\*\")) or\n\n /* Veritas Backup Exec Related Backup File */\n (file.extension : \"BKF\" and\n not process.executable : (\"?:\\\\Program Files\\\\Veritas\\\\Backup Exec\\\\*\",\n \"?:\\\\Program Files (x86)\\\\Veritas\\\\Backup Exec\\\\*\"))\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"11ea6bec-ebde-4d71-a8e9-784948f8e3e9:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/11ea6bec-ebde-4d71-a8e9-784948f8e3e9:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/11ea6bec-ebde-4d71-a8e9-784948f8e3e9:102.0.2.json new file mode 100644 index 0000000000000..e51c9c264b544 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/11ea6bec-ebde-4d71-a8e9-784948f8e3e9:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Third-party Backup Files Deleted via Unexpected Process v102.0.2","rule_id":"11ea6bec-ebde-4d71-a8e9-784948f8e3e9:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of backup files, saved using third-party software, by a process outside of the backup suite. Adversaries may delete Backup files to ensure that recovery from a ransomware attack is less likely.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Third-party Backup Files Deleted via Unexpected Process\n\nBackups are a significant obstacle for any ransomware operation. They allow the victim to resume business by performing\ndata recovery, making them a valuable target.\n\nAttackers can delete backups from the host and gain access to backup servers to remove centralized backups for the\nenvironment, ensuring that victims have no alternatives to paying the ransom.\n\nThis rule identifies file deletions performed by a process that does not belong to the backup suite and aims to delete\nVeritas or Veeam backups.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check if any files on the host machine have been encrypted.\n\n### False positive analysis\n\n- This rule can be triggered by the manual removal of backup files and by removal using other third-party tools that are\nnot from the backup suite. Exceptions can be added for specific accounts and executables, preferably tied together.\n\n### Related rules\n\n- Deleting Backup Catalogs with Wbadmin - 581add16-df76-42bb-af8e-c979bfb39a59\n- Volume Shadow Copy Deleted or Resized via VssAdmin - b5ea4bfe-a1b2-421f-9d47-22a75a6f2921\n- Volume Shadow Copy Deletion via PowerShell - d99a037b-c8e2-47a5-97b9-170d076827c4\n- Volume Shadow Copy Deletion via WMIC - dc9c1f74-dac3-48e3-b47f-eb79db358f57\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- Perform data recovery locally or restore the backups from replicated copies (Cloud, other servers, etc.).\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain utilities that delete files for disk cleanup or Administrators manually removing backup files."],"from":"now-9m","references":["https://www.advintel.io/post/backup-removal-solutions-from-conti-ransomware-with-love"],"tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"file where event.type == \"deletion\" and\n (\n /* Veeam Related Backup Files */\n (file.extension : (\"VBK\", \"VIB\", \"VBM\") and\n not process.executable : (\"?:\\\\Windows\\\\Veeam\\\\Backup\\\\*\",\n \"?:\\\\Program Files\\\\Veeam\\\\Backup and Replication\\\\*\",\n \"?:\\\\Program Files (x86)\\\\Veeam\\\\Backup and Replication\\\\*\")) or\n\n /* Veritas Backup Exec Related Backup File */\n (file.extension : \"BKF\" and\n not process.executable : (\"?:\\\\Program Files\\\\Veritas\\\\Backup Exec\\\\*\",\n \"?:\\\\Program Files (x86)\\\\Veritas\\\\Backup Exec\\\\*\"))\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"11ea6bec-ebde-4d71-a8e9-784948f8e3e9:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/12051077-0124-4394-9522-8f4f4db1d674:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/12051077-0124-4394-9522-8f4f4db1d674:101.0.0.json new file mode 100644 index 0000000000000..bfc22b1ef9046 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/12051077-0124-4394-9522-8f4f4db1d674:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Route 53 Domain Transfer Lock Disabled v101.0.0","rule_id":"12051077-0124-4394-9522-8f4f4db1d674:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a transfer lock was removed from a Route 53 domain. It is recommended to refrain from performing this action unless intending to transfer the domain to a different registrar.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["A domain transfer lock may be disabled by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Activity from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/Route53/latest/APIReference/API_Operations_Amazon_Route_53.html","https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_DisableDomainTransferLock.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:route53.amazonaws.com and event.action:DisableDomainTransferLock and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"12051077-0124-4394-9522-8f4f4db1d674:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/12051077-0124-4394-9522-8f4f4db1d674:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/12051077-0124-4394-9522-8f4f4db1d674:101.0.1.json new file mode 100644 index 0000000000000..06670937a1fd0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/12051077-0124-4394-9522-8f4f4db1d674:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Route 53 Domain Transfer Lock Disabled v101.0.1","rule_id":"12051077-0124-4394-9522-8f4f4db1d674:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a transfer lock was removed from a Route 53 domain. It is recommended to refrain from performing this action unless intending to transfer the domain to a different registrar.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["A domain transfer lock may be disabled by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Activity from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/Route53/latest/APIReference/API_Operations_Amazon_Route_53.html","https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_DisableDomainTransferLock.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:route53.amazonaws.com and event.action:DisableDomainTransferLock and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"12051077-0124-4394-9522-8f4f4db1d674:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/12051077-0124-4394-9522-8f4f4db1d674:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/12051077-0124-4394-9522-8f4f4db1d674:101.0.2.json new file mode 100644 index 0000000000000..d36780e1c07a2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/12051077-0124-4394-9522-8f4f4db1d674:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Route 53 Domain Transfer Lock Disabled v101.0.2","rule_id":"12051077-0124-4394-9522-8f4f4db1d674:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a transfer lock was removed from a Route 53 domain. It is recommended to refrain from performing this action unless intending to transfer the domain to a different registrar.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["A domain transfer lock may be disabled by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Activity from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/Route53/latest/APIReference/API_Operations_Amazon_Route_53.html","https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_DisableDomainTransferLock.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:route53.amazonaws.com and event.action:DisableDomainTransferLock and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"12051077-0124-4394-9522-8f4f4db1d674:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/12a2f15d-597e-4334-88ff-38a02cb1330b:200.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/12a2f15d-597e-4334-88ff-38a02cb1330b:200.0.0.json new file mode 100644 index 0000000000000..00fe9979df553 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/12a2f15d-597e-4334-88ff-38a02cb1330b:200.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Suspicious Self-Subject Review v200.0.0","rule_id":"12a2f15d-597e-4334-88ff-38a02cb1330b:200.0.0","rule_version":"200.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects when a service account or node attempts to enumerate their own permissions via the selfsubjectaccessreview or selfsubjectrulesreview APIs. This is highly unusual behavior for non-human identities like service accounts and nodes. An adversary may have gained access to credentials/tokens and this could be an attempt to determine what privileges they have to facilitate further movement or execution within the cluster.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator may submit this request as an \"impersonatedUser\" to determine what privileges a particular service account has been granted. However, an adversary may utilize the same technique as a means to determine the privileges of another token other than that of the compromised account."],"references":["https://www.paloaltonetworks.com/apps/pan/public/downloadResource?pagePath=/content/pan/en_US/resources/whitepapers/kubernetes-privilege-escalation-excessive-permissions-in-popular-platforms","https://kubernetes.io/docs/reference/access-authn-authz/authorization/#checking-api-access","https://techcommunity.microsoft.com/t5/microsoft-defender-for-cloud/detecting-identity-attacks-in-kubernetes/ba-p/3232340"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1613","name":"Container and Resource Discovery","reference":"https://attack.mitre.org/techniques/T1613/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\"\n and kubernetes.audit.verb:\"create\"\n and kubernetes.audit.objectRef.resource:(\"selfsubjectaccessreviews\" or \"selfsubjectrulesreviews\")\n and (kubernetes.audit.user.username:(system\\:serviceaccount\\:* or system\\:node\\:*) \n or kubernetes.audit.impersonatedUser.username:(system\\:serviceaccount\\:* or system\\:node\\:*))\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.impersonatedUser.username","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.user.username","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"12a2f15d-597e-4334-88ff-38a02cb1330b:200.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/12a2f15d-597e-4334-88ff-38a02cb1330b:200.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/12a2f15d-597e-4334-88ff-38a02cb1330b:200.0.1.json new file mode 100644 index 0000000000000..4da3d3c32f8c4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/12a2f15d-597e-4334-88ff-38a02cb1330b:200.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Suspicious Self-Subject Review v200.0.1","rule_id":"12a2f15d-597e-4334-88ff-38a02cb1330b:200.0.1","rule_version":"200.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects when a service account or node attempts to enumerate their own permissions via the selfsubjectaccessreview or selfsubjectrulesreview APIs. This is highly unusual behavior for non-human identities like service accounts and nodes. An adversary may have gained access to credentials/tokens and this could be an attempt to determine what privileges they have to facilitate further movement or execution within the cluster.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator may submit this request as an \"impersonatedUser\" to determine what privileges a particular service account has been granted. However, an adversary may utilize the same technique as a means to determine the privileges of another token other than that of the compromised account."],"references":["https://www.paloaltonetworks.com/apps/pan/public/downloadResource?pagePath=/content/pan/en_US/resources/whitepapers/kubernetes-privilege-escalation-excessive-permissions-in-popular-platforms","https://kubernetes.io/docs/reference/access-authn-authz/authorization/#checking-api-access","https://techcommunity.microsoft.com/t5/microsoft-defender-for-cloud/detecting-identity-attacks-in-kubernetes/ba-p/3232340"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1613","name":"Container and Resource Discovery","reference":"https://attack.mitre.org/techniques/T1613/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\"\n and kubernetes.audit.verb:\"create\"\n and kubernetes.audit.objectRef.resource:(\"selfsubjectaccessreviews\" or \"selfsubjectrulesreviews\")\n and (kubernetes.audit.user.username:(system\\:serviceaccount\\:* or system\\:node\\:*) \n or kubernetes.audit.impersonatedUser.username:(system\\:serviceaccount\\:* or system\\:node\\:*))\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.impersonatedUser.username","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.user.username","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"12a2f15d-597e-4334-88ff-38a02cb1330b:200.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/12a2f15d-597e-4334-88ff-38a02cb1330b:200.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/12a2f15d-597e-4334-88ff-38a02cb1330b:200.0.2.json new file mode 100644 index 0000000000000..25a4f7a8130e6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/12a2f15d-597e-4334-88ff-38a02cb1330b:200.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Suspicious Self-Subject Review v200.0.2","rule_id":"12a2f15d-597e-4334-88ff-38a02cb1330b:200.0.2","rule_version":"200.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects when a service account or node attempts to enumerate their own permissions via the selfsubjectaccessreview or selfsubjectrulesreview APIs. This is highly unusual behavior for non-human identities like service accounts and nodes. An adversary may have gained access to credentials/tokens and this could be an attempt to determine what privileges they have to facilitate further movement or execution within the cluster.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator may submit this request as an \"impersonatedUser\" to determine what privileges a particular service account has been granted. However, an adversary may utilize the same technique as a means to determine the privileges of another token other than that of the compromised account."],"references":["https://www.paloaltonetworks.com/apps/pan/public/downloadResource?pagePath=/content/pan/en_US/resources/whitepapers/kubernetes-privilege-escalation-excessive-permissions-in-popular-platforms","https://kubernetes.io/docs/reference/access-authn-authz/authorization/#checking-api-access","https://techcommunity.microsoft.com/t5/microsoft-defender-for-cloud/detecting-identity-attacks-in-kubernetes/ba-p/3232340"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1613","name":"Container and Resource Discovery","reference":"https://attack.mitre.org/techniques/T1613/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\"\n and kubernetes.audit.verb:\"create\"\n and kubernetes.audit.objectRef.resource:(\"selfsubjectaccessreviews\" or \"selfsubjectrulesreviews\")\n and (kubernetes.audit.user.username:(system\\:serviceaccount\\:* or system\\:node\\:*) \n or kubernetes.audit.impersonatedUser.username:(system\\:serviceaccount\\:* or system\\:node\\:*))\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.impersonatedUser.username","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.user.username","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"12a2f15d-597e-4334-88ff-38a02cb1330b:200.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/12cbf709-69e8-4055-94f9-24314385c27e:200.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/12cbf709-69e8-4055-94f9-24314385c27e:200.0.0.json new file mode 100644 index 0000000000000..676253fb9492d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/12cbf709-69e8-4055-94f9-24314385c27e:200.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Pod Created With HostNetwork v200.0.0","rule_id":"12cbf709-69e8-4055-94f9-24314385c27e:200.0.0","rule_version":"200.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rules detects an attempt to create or modify a pod attached to the host network. HostNetwork allows a pod to use the node network namespace. Doing so gives the pod access to any service running on localhost of the host. An attacker could use this access to snoop on network activity of other pods on the same node or bypass restrictive network policies applied to its given namespace.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator or developer may want to use a pod that runs as root and shares the hosts IPC, Network, and PID namespaces for debugging purposes. If something is going wrong in the cluster and there is no easy way to SSH onto the host nodes directly, a privileged pod of this nature can be useful for viewing things like iptable rules and network namespaces from the host's perspective. Add exceptions for trusted container images using the query field \"kubernetes.audit.requestObject.spec.container.image\""],"references":["https://research.nccgroup.com/2021/11/10/detection-engineering-for-kubernetes-clusters/#part3-kubernetes-detections","https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces","https://bishopfox.com/blog/kubernetes-pod-privilege-escalation"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.objectRef.resource:\"pods\" \n and kubernetes.audit.verb:(\"create\" or \"update\" or \"patch\") \n and kubernetes.audit.requestObject.spec.hostNetwork:true\n and not kubernetes.audit.requestObject.spec.containers.image: (\"docker.elastic.co/beats/elastic-agent:8.4.0\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.hostNetwork","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"12cbf709-69e8-4055-94f9-24314385c27e:200.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/12cbf709-69e8-4055-94f9-24314385c27e:200.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/12cbf709-69e8-4055-94f9-24314385c27e:200.0.1.json new file mode 100644 index 0000000000000..faab00fc9a8cd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/12cbf709-69e8-4055-94f9-24314385c27e:200.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Pod Created With HostNetwork v200.0.1","rule_id":"12cbf709-69e8-4055-94f9-24314385c27e:200.0.1","rule_version":"200.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rules detects an attempt to create or modify a pod attached to the host network. HostNetwork allows a pod to use the node network namespace. Doing so gives the pod access to any service running on localhost of the host. An attacker could use this access to snoop on network activity of other pods on the same node or bypass restrictive network policies applied to its given namespace.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator or developer may want to use a pod that runs as root and shares the hosts IPC, Network, and PID namespaces for debugging purposes. If something is going wrong in the cluster and there is no easy way to SSH onto the host nodes directly, a privileged pod of this nature can be useful for viewing things like iptable rules and network namespaces from the host's perspective. Add exceptions for trusted container images using the query field \"kubernetes.audit.requestObject.spec.container.image\""],"references":["https://research.nccgroup.com/2021/11/10/detection-engineering-for-kubernetes-clusters/#part3-kubernetes-detections","https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces","https://bishopfox.com/blog/kubernetes-pod-privilege-escalation"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.objectRef.resource:\"pods\" \n and kubernetes.audit.verb:(\"create\" or \"update\" or \"patch\") \n and kubernetes.audit.requestObject.spec.hostNetwork:true\n and not kubernetes.audit.requestObject.spec.containers.image: (\"docker.elastic.co/beats/elastic-agent:8.4.0\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.hostNetwork","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"12cbf709-69e8-4055-94f9-24314385c27e:200.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/12cbf709-69e8-4055-94f9-24314385c27e:200.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/12cbf709-69e8-4055-94f9-24314385c27e:200.0.2.json new file mode 100644 index 0000000000000..ce39d739a5de6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/12cbf709-69e8-4055-94f9-24314385c27e:200.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Pod Created With HostNetwork v200.0.2","rule_id":"12cbf709-69e8-4055-94f9-24314385c27e:200.0.2","rule_version":"200.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rules detects an attempt to create or modify a pod attached to the host network. HostNetwork allows a pod to use the node network namespace. Doing so gives the pod access to any service running on localhost of the host. An attacker could use this access to snoop on network activity of other pods on the same node or bypass restrictive network policies applied to its given namespace.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator or developer may want to use a pod that runs as root and shares the hosts IPC, Network, and PID namespaces for debugging purposes. If something is going wrong in the cluster and there is no easy way to SSH onto the host nodes directly, a privileged pod of this nature can be useful for viewing things like iptable rules and network namespaces from the host's perspective. Add exceptions for trusted container images using the query field \"kubernetes.audit.requestObject.spec.container.image\""],"references":["https://research.nccgroup.com/2021/11/10/detection-engineering-for-kubernetes-clusters/#part3-kubernetes-detections","https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces","https://bishopfox.com/blog/kubernetes-pod-privilege-escalation"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.objectRef.resource:\"pods\" \n and kubernetes.audit.verb:(\"create\" or \"update\" or \"patch\") \n and kubernetes.audit.requestObject.spec.hostNetwork:true\n and not kubernetes.audit.requestObject.spec.containers.image: (\"docker.elastic.co/beats/elastic-agent:8.4.0\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.hostNetwork","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"12cbf709-69e8-4055-94f9-24314385c27e:200.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/12f07955-1674-44f7-86b5-c35da0a6f41a:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/12f07955-1674-44f7-86b5-c35da0a6f41a:102.0.0.json new file mode 100644 index 0000000000000..09eaf46ab5a26 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/12f07955-1674-44f7-86b5-c35da0a6f41a:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Cmd Execution via WMI v102.0.0","rule_id":"12f07955-1674-44f7-86b5-c35da0a6f41a:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious command execution (cmd) via Windows Management Instrumentation (WMI) on a remote host. This could be indicative of adversary lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1047","name":"Windows Management Instrumentation","reference":"https://attack.mitre.org/techniques/T1047/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"WmiPrvSE.exe\" and process.name : \"cmd.exe\" and\n process.args : \"\\\\\\\\127.0.0.1\\\\*\" and process.args : (\"2>&1\", \"1>\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"12f07955-1674-44f7-86b5-c35da0a6f41a:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/12f07955-1674-44f7-86b5-c35da0a6f41a:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/12f07955-1674-44f7-86b5-c35da0a6f41a:102.0.1.json new file mode 100644 index 0000000000000..9f19965aab591 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/12f07955-1674-44f7-86b5-c35da0a6f41a:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Cmd Execution via WMI v102.0.1","rule_id":"12f07955-1674-44f7-86b5-c35da0a6f41a:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious command execution (cmd) via Windows Management Instrumentation (WMI) on a remote host. This could be indicative of adversary lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1047","name":"Windows Management Instrumentation","reference":"https://attack.mitre.org/techniques/T1047/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"WmiPrvSE.exe\" and process.name : \"cmd.exe\" and\n process.args : \"\\\\\\\\127.0.0.1\\\\*\" and process.args : (\"2>&1\", \"1>\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"12f07955-1674-44f7-86b5-c35da0a6f41a:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/12f07955-1674-44f7-86b5-c35da0a6f41a:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/12f07955-1674-44f7-86b5-c35da0a6f41a:102.0.2.json new file mode 100644 index 0000000000000..7c8cb2e21bd2f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/12f07955-1674-44f7-86b5-c35da0a6f41a:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Cmd Execution via WMI v102.0.2","rule_id":"12f07955-1674-44f7-86b5-c35da0a6f41a:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious command execution (cmd) via Windows Management Instrumentation (WMI) on a remote host. This could be indicative of adversary lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1047","name":"Windows Management Instrumentation","reference":"https://attack.mitre.org/techniques/T1047/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"WmiPrvSE.exe\" and process.name : \"cmd.exe\" and\n process.args : \"\\\\\\\\127.0.0.1\\\\*\" and process.args : (\"2>&1\", \"1>\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"12f07955-1674-44f7-86b5-c35da0a6f41a:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1327384f-00f3-44d5-9a8c-2373ba071e92:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1327384f-00f3-44d5-9a8c-2373ba071e92:100.0.0.json new file mode 100644 index 0000000000000..bef03bcda890b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1327384f-00f3-44d5-9a8c-2373ba071e92:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via Scheduled Job Creation v100.0.0","rule_id":"1327384f-00f3-44d5-9a8c-2373ba071e92:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A job can be used to schedule programs or scripts to be executed at a specified date and time. Adversaries may abuse task scheduling functionality to facilitate initial or recurring execution of malicious code.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate scheduled jobs may be created during installation of new software."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path : \"?:\\\\Windows\\\\Tasks\\\\*\" and file.extension : \"job\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"1327384f-00f3-44d5-9a8c-2373ba071e92:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1327384f-00f3-44d5-9a8c-2373ba071e92:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1327384f-00f3-44d5-9a8c-2373ba071e92:100.0.1.json new file mode 100644 index 0000000000000..3ce7ede1ab0ea --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1327384f-00f3-44d5-9a8c-2373ba071e92:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via Scheduled Job Creation v100.0.1","rule_id":"1327384f-00f3-44d5-9a8c-2373ba071e92:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A job can be used to schedule programs or scripts to be executed at a specified date and time. Adversaries may abuse task scheduling functionality to facilitate initial or recurring execution of malicious code.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate scheduled jobs may be created during installation of new software."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path : \"?:\\\\Windows\\\\Tasks\\\\*\" and file.extension : \"job\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"1327384f-00f3-44d5-9a8c-2373ba071e92:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1327384f-00f3-44d5-9a8c-2373ba071e92:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1327384f-00f3-44d5-9a8c-2373ba071e92:100.0.2.json new file mode 100644 index 0000000000000..f748da5ee72b0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1327384f-00f3-44d5-9a8c-2373ba071e92:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via Scheduled Job Creation v100.0.2","rule_id":"1327384f-00f3-44d5-9a8c-2373ba071e92:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A job can be used to schedule programs or scripts to be executed at a specified date and time. Adversaries may abuse task scheduling functionality to facilitate initial or recurring execution of malicious code.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate scheduled jobs may be created during installation of new software."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path : \"?:\\\\Windows\\\\Tasks\\\\*\" and file.extension : \"job\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"1327384f-00f3-44d5-9a8c-2373ba071e92:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/138c5dd5-838b-446e-b1ac-c995c7f8108a:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/138c5dd5-838b-446e-b1ac-c995c7f8108a:100.0.0.json new file mode 100644 index 0000000000000..18822840ff4c1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/138c5dd5-838b-446e-b1ac-c995c7f8108a:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Rare User Logon v100.0.0","rule_id":"138c5dd5-838b-446e-b1ac-c995c7f8108a:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job found an unusual user name in the authentication logs. An unusual user name is one way of detecting credentialed access by means of a new or dormant user account. An inactive user account (because the user has left the organization) that becomes active may be due to credentialed access using a compromised account password. Threat actors will sometimes also create new users as a means of persisting in a compromised web application.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["User accounts that are rarely active, such as a site reliability engineer (SRE) or developer logging into a production server for troubleshooting, may trigger this alert. Under some conditions, a newly created user account may briefly trigger this alert while the model is learning."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_rare_user","type":"machine_learning"},"id":"138c5dd5-838b-446e-b1ac-c995c7f8108a:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/138c5dd5-838b-446e-b1ac-c995c7f8108a:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/138c5dd5-838b-446e-b1ac-c995c7f8108a:100.0.1.json new file mode 100644 index 0000000000000..ddc64a8633e29 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/138c5dd5-838b-446e-b1ac-c995c7f8108a:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Rare User Logon v100.0.1","rule_id":"138c5dd5-838b-446e-b1ac-c995c7f8108a:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job found an unusual user name in the authentication logs. An unusual user name is one way of detecting credentialed access by means of a new or dormant user account. An inactive user account (because the user has left the organization) that becomes active may be due to credentialed access using a compromised account password. Threat actors will sometimes also create new users as a means of persisting in a compromised web application.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["User accounts that are rarely active, such as a site reliability engineer (SRE) or developer logging into a production server for troubleshooting, may trigger this alert. Under some conditions, a newly created user account may briefly trigger this alert while the model is learning."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_rare_user","type":"machine_learning"},"id":"138c5dd5-838b-446e-b1ac-c995c7f8108a:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/138c5dd5-838b-446e-b1ac-c995c7f8108a:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/138c5dd5-838b-446e-b1ac-c995c7f8108a:100.0.2.json new file mode 100644 index 0000000000000..39ba139b52b2f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/138c5dd5-838b-446e-b1ac-c995c7f8108a:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Rare User Logon v100.0.2","rule_id":"138c5dd5-838b-446e-b1ac-c995c7f8108a:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job found an unusual user name in the authentication logs. An unusual user name is one way of detecting credentialed access by means of a new or dormant user account. An inactive user account (because the user has left the organization) that becomes active may be due to credentialed access using a compromised account password. Threat actors will sometimes also create new users as a means of persisting in a compromised web application.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["User accounts that are rarely active, such as a site reliability engineer (SRE) or developer logging into a production server for troubleshooting, may trigger this alert. Under some conditions, a newly created user account may briefly trigger this alert while the model is learning."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_rare_user","type":"machine_learning"},"id":"138c5dd5-838b-446e-b1ac-c995c7f8108a:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/141e9b3a-ff37-4756-989d-05d7cbf35b0e:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/141e9b3a-ff37-4756-989d-05d7cbf35b0e:101.0.0.json new file mode 100644 index 0000000000000..501bb5c8fc573 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/141e9b3a-ff37-4756-989d-05d7cbf35b0e:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure External Guest User Invitation v101.0.0","rule_id":"141e9b3a-ff37-4756-989d-05d7cbf35b0e:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an invitation to an external user in Azure Active Directory (AD). Azure AD is extended to include collaboration, allowing you to invite people from outside your organization to be guest users in your cloud account. Unless there is a business need to provision guest access, it is best practice avoid creating guest users. Guest users could potentially be overlooked indefinitely leading to a potential vulnerability.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Guest user invitations may be sent out by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Guest user invitations from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/governance/policy/samples/cis-azure-1-1-0"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Invite external user\" and azure.auditlogs.properties.target_resources.*.display_name:guest and event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.properties.target_resources.*.display_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"141e9b3a-ff37-4756-989d-05d7cbf35b0e:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/141e9b3a-ff37-4756-989d-05d7cbf35b0e:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/141e9b3a-ff37-4756-989d-05d7cbf35b0e:101.0.1.json new file mode 100644 index 0000000000000..23d0a30061e00 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/141e9b3a-ff37-4756-989d-05d7cbf35b0e:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure External Guest User Invitation v101.0.1","rule_id":"141e9b3a-ff37-4756-989d-05d7cbf35b0e:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an invitation to an external user in Azure Active Directory (AD). Azure AD is extended to include collaboration, allowing you to invite people from outside your organization to be guest users in your cloud account. Unless there is a business need to provision guest access, it is best practice avoid creating guest users. Guest users could potentially be overlooked indefinitely leading to a potential vulnerability.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Guest user invitations may be sent out by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Guest user invitations from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/governance/policy/samples/cis-azure-1-1-0"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Invite external user\" and azure.auditlogs.properties.target_resources.*.display_name:guest and event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.properties.target_resources.*.display_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"141e9b3a-ff37-4756-989d-05d7cbf35b0e:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/141e9b3a-ff37-4756-989d-05d7cbf35b0e:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/141e9b3a-ff37-4756-989d-05d7cbf35b0e:101.0.2.json new file mode 100644 index 0000000000000..df20b0050772b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/141e9b3a-ff37-4756-989d-05d7cbf35b0e:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure External Guest User Invitation v101.0.2","rule_id":"141e9b3a-ff37-4756-989d-05d7cbf35b0e:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an invitation to an external user in Azure Active Directory (AD). Azure AD is extended to include collaboration, allowing you to invite people from outside your organization to be guest users in your cloud account. Unless there is a business need to provision guest access, it is best practice avoid creating guest users. Guest users could potentially be overlooked indefinitely leading to a potential vulnerability.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Guest user invitations may be sent out by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Guest user invitations from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/governance/policy/samples/cis-azure-1-1-0"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Invite external user\" and azure.auditlogs.properties.target_resources.*.display_name:guest and event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.properties.target_resources.*.display_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"141e9b3a-ff37-4756-989d-05d7cbf35b0e:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/143cb236-0956-4f42-a706-814bcaa0cf5a:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/143cb236-0956-4f42-a706-814bcaa0cf5a:100.0.0.json new file mode 100644 index 0000000000000..ea793143e4218 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/143cb236-0956-4f42-a706-814bcaa0cf5a:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"RPC (Remote Procedure Call) from the Internet v100.0.0","rule_id":"143cb236-0956-4f42-a706-814bcaa0cf5a:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of RPC traffic from the Internet. RPC is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Initial Access","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and (destination.port:135 or event.dataset:zeek.dce_rpc) and\n not source.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n ) and\n destination.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},"id":"143cb236-0956-4f42-a706-814bcaa0cf5a:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/143cb236-0956-4f42-a706-814bcaa0cf5a:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/143cb236-0956-4f42-a706-814bcaa0cf5a:100.0.1.json new file mode 100644 index 0000000000000..9b08f958a2b1e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/143cb236-0956-4f42-a706-814bcaa0cf5a:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"RPC (Remote Procedure Call) from the Internet v100.0.1","rule_id":"143cb236-0956-4f42-a706-814bcaa0cf5a:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of RPC traffic from the Internet. RPC is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Initial Access","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and (destination.port:135 or event.dataset:zeek.dce_rpc) and\n not source.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n ) and\n destination.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},"id":"143cb236-0956-4f42-a706-814bcaa0cf5a:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/143cb236-0956-4f42-a706-814bcaa0cf5a:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/143cb236-0956-4f42-a706-814bcaa0cf5a:100.0.2.json new file mode 100644 index 0000000000000..d75ab356379bb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/143cb236-0956-4f42-a706-814bcaa0cf5a:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"RPC (Remote Procedure Call) from the Internet v100.0.2","rule_id":"143cb236-0956-4f42-a706-814bcaa0cf5a:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of RPC traffic from the Internet. RPC is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Initial Access","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and (destination.port:135 or event.dataset:zeek.dce_rpc) and\n not source.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n ) and\n destination.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},"id":"143cb236-0956-4f42-a706-814bcaa0cf5a:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/14de811c-d60f-11ec-9fd7-f661ea17fbce:200.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/14de811c-d60f-11ec-9fd7-f661ea17fbce:200.0.0.json new file mode 100644 index 0000000000000..b89dc86350587 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/14de811c-d60f-11ec-9fd7-f661ea17fbce:200.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes User Exec into Pod v200.0.0","rule_id":"14de811c-d60f-11ec-9fd7-f661ea17fbce:200.0.0","rule_version":"200.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects a user attempt to establish a shell session into a pod using the 'exec' command. Using the 'exec' command in a pod allows a user to establish a temporary shell session and execute any process/commands in the pod. An adversary may call bash to gain a persistent interactive shell which will allow access to any data the pod has permissions to, including secrets.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator may need to exec into a pod for a legitimate reason like debugging purposes. Containers built from Linux and Windows OS images, tend to include debugging utilities. In this case, an admin may choose to run commands inside a specific container with kubectl exec ${POD_NAME} -c ${CONTAINER_NAME} -- ${CMD} ${ARG1} ${ARG2} ... ${ARGN}. For example, the following command can be used to look at logs from a running Cassandra pod: kubectl exec cassandra --cat /var/log/cassandra/system.log . Additionally, the -i and -t arguments might be used to run a shell connected to the terminal: kubectl exec -i -t cassandra -- sh"],"references":["https://kubernetes.io/docs/tasks/debug/debug-application/debug-running-pod/","https://kubernetes.io/docs/tasks/debug/debug-application/get-shell-running-container/"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1609","name":"Container Administration Command","reference":"https://attack.mitre.org/techniques/T1609/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.verb:\"create\" \n and kubernetes.audit.objectRef.resource:\"pods\"\n and kubernetes.audit.objectRef.subresource:\"exec\"\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.subresource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"14de811c-d60f-11ec-9fd7-f661ea17fbce:200.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/14de811c-d60f-11ec-9fd7-f661ea17fbce:200.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/14de811c-d60f-11ec-9fd7-f661ea17fbce:200.0.1.json new file mode 100644 index 0000000000000..9f22b25024dcc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/14de811c-d60f-11ec-9fd7-f661ea17fbce:200.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes User Exec into Pod v200.0.1","rule_id":"14de811c-d60f-11ec-9fd7-f661ea17fbce:200.0.1","rule_version":"200.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects a user attempt to establish a shell session into a pod using the 'exec' command. Using the 'exec' command in a pod allows a user to establish a temporary shell session and execute any process/commands in the pod. An adversary may call bash to gain a persistent interactive shell which will allow access to any data the pod has permissions to, including secrets.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator may need to exec into a pod for a legitimate reason like debugging purposes. Containers built from Linux and Windows OS images, tend to include debugging utilities. In this case, an admin may choose to run commands inside a specific container with kubectl exec ${POD_NAME} -c ${CONTAINER_NAME} -- ${CMD} ${ARG1} ${ARG2} ... ${ARGN}. For example, the following command can be used to look at logs from a running Cassandra pod: kubectl exec cassandra --cat /var/log/cassandra/system.log . Additionally, the -i and -t arguments might be used to run a shell connected to the terminal: kubectl exec -i -t cassandra -- sh"],"references":["https://kubernetes.io/docs/tasks/debug/debug-application/debug-running-pod/","https://kubernetes.io/docs/tasks/debug/debug-application/get-shell-running-container/"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1609","name":"Container Administration Command","reference":"https://attack.mitre.org/techniques/T1609/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.verb:\"create\" \n and kubernetes.audit.objectRef.resource:\"pods\"\n and kubernetes.audit.objectRef.subresource:\"exec\"\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.subresource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"14de811c-d60f-11ec-9fd7-f661ea17fbce:200.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/14de811c-d60f-11ec-9fd7-f661ea17fbce:200.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/14de811c-d60f-11ec-9fd7-f661ea17fbce:200.0.2.json new file mode 100644 index 0000000000000..8011cfbc7918b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/14de811c-d60f-11ec-9fd7-f661ea17fbce:200.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes User Exec into Pod v200.0.2","rule_id":"14de811c-d60f-11ec-9fd7-f661ea17fbce:200.0.2","rule_version":"200.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects a user attempt to establish a shell session into a pod using the 'exec' command. Using the 'exec' command in a pod allows a user to establish a temporary shell session and execute any process/commands in the pod. An adversary may call bash to gain a persistent interactive shell which will allow access to any data the pod has permissions to, including secrets.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator may need to exec into a pod for a legitimate reason like debugging purposes. Containers built from Linux and Windows OS images, tend to include debugging utilities. In this case, an admin may choose to run commands inside a specific container with kubectl exec ${POD_NAME} -c ${CONTAINER_NAME} -- ${CMD} ${ARG1} ${ARG2} ... ${ARGN}. For example, the following command can be used to look at logs from a running Cassandra pod: kubectl exec cassandra --cat /var/log/cassandra/system.log . Additionally, the -i and -t arguments might be used to run a shell connected to the terminal: kubectl exec -i -t cassandra -- sh"],"references":["https://kubernetes.io/docs/tasks/debug/debug-application/debug-running-pod/","https://kubernetes.io/docs/tasks/debug/debug-application/get-shell-running-container/"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1609","name":"Container Administration Command","reference":"https://attack.mitre.org/techniques/T1609/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.verb:\"create\" \n and kubernetes.audit.objectRef.resource:\"pods\"\n and kubernetes.audit.objectRef.subresource:\"exec\"\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.subresource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"14de811c-d60f-11ec-9fd7-f661ea17fbce:200.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/14ed1aa9-ebfd-4cf9-a463-0ac59ec55204:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/14ed1aa9-ebfd-4cf9-a463-0ac59ec55204:100.0.0.json new file mode 100644 index 0000000000000..92755c405e60e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/14ed1aa9-ebfd-4cf9-a463-0ac59ec55204:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Persistence via Time Provider Modification v100.0.0","rule_id":"14ed1aa9-ebfd-4cf9-a463-0ac59ec55204:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modification of the Time Provider. Adversaries may establish persistence by registering and enabling a malicious DLL as a time provider. Windows uses the time provider architecture to obtain accurate time stamps from other network devices or clients in the network. Time providers are implemented in the form of a DLL file which resides in the System32 folder. The service W32Time initiates during the startup of Windows and loads w32time.dll.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://pentestlab.blog/2019/10/22/persistence-time-providers/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.003","name":"Time Providers","reference":"https://attack.mitre.org/techniques/T1547/003/"}]}]}],"language":"eql","query":"registry where event.type:\"change\" and\n registry.path:\"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\W32Time\\\\TimeProviders\\\\*\" and\n registry.data.strings:\"*.dll\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"14ed1aa9-ebfd-4cf9-a463-0ac59ec55204:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/14ed1aa9-ebfd-4cf9-a463-0ac59ec55204:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/14ed1aa9-ebfd-4cf9-a463-0ac59ec55204:100.0.1.json new file mode 100644 index 0000000000000..bc305deebb838 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/14ed1aa9-ebfd-4cf9-a463-0ac59ec55204:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Persistence via Time Provider Modification v100.0.1","rule_id":"14ed1aa9-ebfd-4cf9-a463-0ac59ec55204:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modification of the Time Provider. Adversaries may establish persistence by registering and enabling a malicious DLL as a time provider. Windows uses the time provider architecture to obtain accurate time stamps from other network devices or clients in the network. Time providers are implemented in the form of a DLL file which resides in the System32 folder. The service W32Time initiates during the startup of Windows and loads w32time.dll.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://pentestlab.blog/2019/10/22/persistence-time-providers/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.003","name":"Time Providers","reference":"https://attack.mitre.org/techniques/T1547/003/"}]}]}],"language":"eql","query":"registry where event.type:\"change\" and\n registry.path:\"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\W32Time\\\\TimeProviders\\\\*\" and\n registry.data.strings:\"*.dll\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"14ed1aa9-ebfd-4cf9-a463-0ac59ec55204:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/14ed1aa9-ebfd-4cf9-a463-0ac59ec55204:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/14ed1aa9-ebfd-4cf9-a463-0ac59ec55204:100.0.2.json new file mode 100644 index 0000000000000..ec26aaba1a82a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/14ed1aa9-ebfd-4cf9-a463-0ac59ec55204:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Persistence via Time Provider Modification v100.0.2","rule_id":"14ed1aa9-ebfd-4cf9-a463-0ac59ec55204:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modification of the Time Provider. Adversaries may establish persistence by registering and enabling a malicious DLL as a time provider. Windows uses the time provider architecture to obtain accurate time stamps from other network devices or clients in the network. Time providers are implemented in the form of a DLL file which resides in the System32 folder. The service W32Time initiates during the startup of Windows and loads w32time.dll.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://pentestlab.blog/2019/10/22/persistence-time-providers/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.003","name":"Time Providers","reference":"https://attack.mitre.org/techniques/T1547/003/"}]}]}],"language":"eql","query":"registry where event.type:\"change\" and\n registry.path:\"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\W32Time\\\\TimeProviders\\\\*\" and\n registry.data.strings:\"*.dll\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"14ed1aa9-ebfd-4cf9-a463-0ac59ec55204:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/15a8ba77-1c13-4274-88fe-6bd14133861e:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/15a8ba77-1c13-4274-88fe-6bd14133861e:102.0.0.json new file mode 100644 index 0000000000000..a256d38903e3b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/15a8ba77-1c13-4274-88fe-6bd14133861e:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Scheduled Task Execution at Scale via GPO v102.0.0","rule_id":"15a8ba77-1c13-4274-88fe-6bd14133861e:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the modification of Group Policy Object attributes to execute a scheduled task in the objects controlled by the GPO.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Scheduled Task Execution at Scale via GPO\n\nGroup Policy Objects (GPOs) can be used by attackers to execute scheduled tasks at scale to compromise objects controlled\nby a given GPO. This is done by changing the contents of the `\\Machine\\Preferences\\ScheduledTasks\\ScheduledTasks.xml`\nfile.\n\n#### Possible investigation steps\n\n- This attack abuses a legitimate mechanism of Active Directory, so it is important to determine whether the activity\nis legitimate and the administrator is authorized to perform this operation.\n- Retrieve the contents of the `ScheduledTasks.xml` file, and check the `` and `` XML tags for any\npotentially malicious commands or binaries.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Scope which objects may be compromised by retrieving information about which objects are controlled by the GPO.\n\n### False positive analysis\n\n- Verify if the execution is allowed and done under change management, and if the execution is legitimate.\n\n### Related rules\n\n- Group Policy Abuse for Privilege Addition - b9554892-5e0e-424b-83a0-5aef95aa43bf\n- Startup/Logon Script added to Group Policy Object - 16fac1a1-21ee-4ca6-b720-458e3855d046\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- The investigation and containment must be performed in every computer controlled by the GPO, where necessary.\n- Remove the script from the GPO.\n- Check if other GPOs have suspicious scheduled tasks attached.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0025_windows_audit_directory_service_changes.md","https://github.com/atc-project/atc-data/blob/f2bbb51ecf68e2c9f488e3c70dcdd3df51d2a46b/docs/Logging_Policies/LP_0029_windows_audit_detailed_file_share.md","https://labs.f-secure.com/tools/sharpgpoabuse","https://twitter.com/menasec1/status/1106899890377052160","https://github.com/SigmaHQ/sigma/blob/master/rules/windows/builtin/security/win_gpo_scheduledtasks.yml"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]},{"id":"T1484","name":"Domain Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/","subtechnique":[{"id":"T1484.001","name":"Group Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"(event.code: \"5136\" and winlog.event_data.AttributeLDAPDisplayName:(\"gPCMachineExtensionNames\" or \"gPCUserExtensionNames\") and\n winlog.event_data.AttributeValue:(*CAB54552-DEEA-4691-817E-ED4A4D1AFC72* and *AADCED64-746C-4633-A97C-D61349046527*))\nor\n(event.code: \"5145\" and winlog.event_data.ShareName: \"\\\\\\\\*\\\\SYSVOL\" and winlog.event_data.RelativeTargetName: *ScheduledTasks.xml and\n (message: WriteData or winlog.event_data.AccessList: *%%4417*))\n","required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"message","type":"match_only_text"},{"ecs":false,"name":"winlog.event_data.AccessList","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeValue","type":"unknown"},{"ecs":false,"name":"winlog.event_data.RelativeTargetName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ShareName","type":"unknown"}],"setup":"The 'Audit Detailed File Share' audit policy must be configured (Success Failure).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nObject Access >\nAudit Detailed File Share (Success,Failure)\n```\n\nThe 'Audit Directory Service Changes' audit policy must be configured (Success Failure).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```"},"id":"15a8ba77-1c13-4274-88fe-6bd14133861e:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/15a8ba77-1c13-4274-88fe-6bd14133861e:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/15a8ba77-1c13-4274-88fe-6bd14133861e:102.0.1.json new file mode 100644 index 0000000000000..03a0328419ed3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/15a8ba77-1c13-4274-88fe-6bd14133861e:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Scheduled Task Execution at Scale via GPO v102.0.1","rule_id":"15a8ba77-1c13-4274-88fe-6bd14133861e:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the modification of Group Policy Object attributes to execute a scheduled task in the objects controlled by the GPO.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Scheduled Task Execution at Scale via GPO\n\nGroup Policy Objects (GPOs) can be used by attackers to execute scheduled tasks at scale to compromise objects controlled\nby a given GPO. This is done by changing the contents of the `\\Machine\\Preferences\\ScheduledTasks\\ScheduledTasks.xml`\nfile.\n\n#### Possible investigation steps\n\n- This attack abuses a legitimate mechanism of Active Directory, so it is important to determine whether the activity\nis legitimate and the administrator is authorized to perform this operation.\n- Retrieve the contents of the `ScheduledTasks.xml` file, and check the `` and `` XML tags for any\npotentially malicious commands or binaries.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Scope which objects may be compromised by retrieving information about which objects are controlled by the GPO.\n\n### False positive analysis\n\n- Verify if the execution is allowed and done under change management, and if the execution is legitimate.\n\n### Related rules\n\n- Group Policy Abuse for Privilege Addition - b9554892-5e0e-424b-83a0-5aef95aa43bf\n- Startup/Logon Script added to Group Policy Object - 16fac1a1-21ee-4ca6-b720-458e3855d046\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- The investigation and containment must be performed in every computer controlled by the GPO, where necessary.\n- Remove the script from the GPO.\n- Check if other GPOs have suspicious scheduled tasks attached.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0025_windows_audit_directory_service_changes.md","https://github.com/atc-project/atc-data/blob/f2bbb51ecf68e2c9f488e3c70dcdd3df51d2a46b/docs/Logging_Policies/LP_0029_windows_audit_detailed_file_share.md","https://labs.f-secure.com/tools/sharpgpoabuse","https://twitter.com/menasec1/status/1106899890377052160","https://github.com/SigmaHQ/sigma/blob/master/rules/windows/builtin/security/win_gpo_scheduledtasks.yml"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]},{"id":"T1484","name":"Domain Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/","subtechnique":[{"id":"T1484.001","name":"Group Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"(event.code: \"5136\" and winlog.event_data.AttributeLDAPDisplayName:(\"gPCMachineExtensionNames\" or \"gPCUserExtensionNames\") and\n winlog.event_data.AttributeValue:(*CAB54552-DEEA-4691-817E-ED4A4D1AFC72* and *AADCED64-746C-4633-A97C-D61349046527*))\nor\n(event.code: \"5145\" and winlog.event_data.ShareName: \"\\\\\\\\*\\\\SYSVOL\" and winlog.event_data.RelativeTargetName: *ScheduledTasks.xml and\n (message: WriteData or winlog.event_data.AccessList: *%%4417*))\n","required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"message","type":"match_only_text"},{"ecs":false,"name":"winlog.event_data.AccessList","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeValue","type":"unknown"},{"ecs":false,"name":"winlog.event_data.RelativeTargetName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ShareName","type":"unknown"}],"setup":"The 'Audit Detailed File Share' audit policy must be configured (Success Failure).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nObject Access >\nAudit Detailed File Share (Success,Failure)\n```\n\nThe 'Audit Directory Service Changes' audit policy must be configured (Success Failure).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```"},"id":"15a8ba77-1c13-4274-88fe-6bd14133861e:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/15a8ba77-1c13-4274-88fe-6bd14133861e:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/15a8ba77-1c13-4274-88fe-6bd14133861e:102.0.2.json new file mode 100644 index 0000000000000..c3a0260f14c8e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/15a8ba77-1c13-4274-88fe-6bd14133861e:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Scheduled Task Execution at Scale via GPO v102.0.2","rule_id":"15a8ba77-1c13-4274-88fe-6bd14133861e:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the modification of Group Policy Object attributes to execute a scheduled task in the objects controlled by the GPO.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Scheduled Task Execution at Scale via GPO\n\nGroup Policy Objects (GPOs) can be used by attackers to execute scheduled tasks at scale to compromise objects controlled\nby a given GPO. This is done by changing the contents of the `\\Machine\\Preferences\\ScheduledTasks\\ScheduledTasks.xml`\nfile.\n\n#### Possible investigation steps\n\n- This attack abuses a legitimate mechanism of Active Directory, so it is important to determine whether the activity\nis legitimate and the administrator is authorized to perform this operation.\n- Retrieve the contents of the `ScheduledTasks.xml` file, and check the `` and `` XML tags for any\npotentially malicious commands or binaries.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Scope which objects may be compromised by retrieving information about which objects are controlled by the GPO.\n\n### False positive analysis\n\n- Verify if the execution is allowed and done under change management, and if the execution is legitimate.\n\n### Related rules\n\n- Group Policy Abuse for Privilege Addition - b9554892-5e0e-424b-83a0-5aef95aa43bf\n- Startup/Logon Script added to Group Policy Object - 16fac1a1-21ee-4ca6-b720-458e3855d046\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- The investigation and containment must be performed in every computer controlled by the GPO, where necessary.\n- Remove the script from the GPO.\n- Check if other GPOs have suspicious scheduled tasks attached.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0025_windows_audit_directory_service_changes.md","https://github.com/atc-project/atc-data/blob/f2bbb51ecf68e2c9f488e3c70dcdd3df51d2a46b/docs/Logging_Policies/LP_0029_windows_audit_detailed_file_share.md","https://labs.f-secure.com/tools/sharpgpoabuse","https://twitter.com/menasec1/status/1106899890377052160","https://github.com/SigmaHQ/sigma/blob/master/rules/windows/builtin/security/win_gpo_scheduledtasks.yml"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]},{"id":"T1484","name":"Domain Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/","subtechnique":[{"id":"T1484.001","name":"Group Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"(event.code: \"5136\" and winlog.event_data.AttributeLDAPDisplayName:(\"gPCMachineExtensionNames\" or \"gPCUserExtensionNames\") and\n winlog.event_data.AttributeValue:(*CAB54552-DEEA-4691-817E-ED4A4D1AFC72* and *AADCED64-746C-4633-A97C-D61349046527*))\nor\n(event.code: \"5145\" and winlog.event_data.ShareName: \"\\\\\\\\*\\\\SYSVOL\" and winlog.event_data.RelativeTargetName: *ScheduledTasks.xml and\n (message: WriteData or winlog.event_data.AccessList: *%%4417*))\n","required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"message","type":"match_only_text"},{"ecs":false,"name":"winlog.event_data.AccessList","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeValue","type":"unknown"},{"ecs":false,"name":"winlog.event_data.RelativeTargetName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ShareName","type":"unknown"}],"setup":"The 'Audit Detailed File Share' audit policy must be configured (Success Failure).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nObject Access >\nAudit Detailed File Share (Success,Failure)\n```\n\nThe 'Audit Directory Service Changes' audit policy must be configured (Success Failure).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```"},"id":"15a8ba77-1c13-4274-88fe-6bd14133861e:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/15c0b7a7-9c34-4869-b25b-fa6518414899:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/15c0b7a7-9c34-4869-b25b-fa6518414899:102.0.0.json new file mode 100644 index 0000000000000..546cc12a0a746 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/15c0b7a7-9c34-4869-b25b-fa6518414899:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote File Download via Desktopimgdownldr Utility v102.0.0","rule_id":"15c0b7a7-9c34-4869-b25b-fa6518414899:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the desktopimgdownldr utility being used to download a remote file. An adversary may use desktopimgdownldr to download arbitrary files as an alternative to certutil.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote File Download via Desktopimgdownldr Utility\n\nAttackers commonly transfer tooling or malware from external systems into a compromised environment using the command\nand control channel. However, they can also abuse signed utilities to drop these files.\n\nThe `Desktopimgdownldr.exe` utility is used to to configure lockscreen/desktop image, and can be abused with the\n`lockscreenurl` argument to download remote files and tools, this rule looks for this behavior.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Check the reputation of the domain or IP address used to host the downloaded file or if the user downloaded the file\nfrom an internal system.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unusual but can be done by administrators. Benign true positives (B-TPs) can be added as exceptions\nif necessary.\n- Analysts can dismiss the alert if the downloaded file is a legitimate image.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://labs.sentinelone.com/living-off-windows-land-a-new-native-file-downldr/"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"desktopimgdownldr.exe\" or process.pe.original_file_name == \"desktopimgdownldr.exe\") and\n process.args : \"/lockscreenurl:http*\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"15c0b7a7-9c34-4869-b25b-fa6518414899:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/15c0b7a7-9c34-4869-b25b-fa6518414899:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/15c0b7a7-9c34-4869-b25b-fa6518414899:102.0.1.json new file mode 100644 index 0000000000000..8a4e71e520f09 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/15c0b7a7-9c34-4869-b25b-fa6518414899:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote File Download via Desktopimgdownldr Utility v102.0.1","rule_id":"15c0b7a7-9c34-4869-b25b-fa6518414899:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the desktopimgdownldr utility being used to download a remote file. An adversary may use desktopimgdownldr to download arbitrary files as an alternative to certutil.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote File Download via Desktopimgdownldr Utility\n\nAttackers commonly transfer tooling or malware from external systems into a compromised environment using the command\nand control channel. However, they can also abuse signed utilities to drop these files.\n\nThe `Desktopimgdownldr.exe` utility is used to to configure lockscreen/desktop image, and can be abused with the\n`lockscreenurl` argument to download remote files and tools, this rule looks for this behavior.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Check the reputation of the domain or IP address used to host the downloaded file or if the user downloaded the file\nfrom an internal system.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unusual but can be done by administrators. Benign true positives (B-TPs) can be added as exceptions\nif necessary.\n- Analysts can dismiss the alert if the downloaded file is a legitimate image.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://labs.sentinelone.com/living-off-windows-land-a-new-native-file-downldr/"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"desktopimgdownldr.exe\" or process.pe.original_file_name == \"desktopimgdownldr.exe\") and\n process.args : \"/lockscreenurl:http*\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"15c0b7a7-9c34-4869-b25b-fa6518414899:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/15c0b7a7-9c34-4869-b25b-fa6518414899:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/15c0b7a7-9c34-4869-b25b-fa6518414899:102.0.2.json new file mode 100644 index 0000000000000..13e0c0bfb1237 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/15c0b7a7-9c34-4869-b25b-fa6518414899:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote File Download via Desktopimgdownldr Utility v102.0.2","rule_id":"15c0b7a7-9c34-4869-b25b-fa6518414899:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the desktopimgdownldr utility being used to download a remote file. An adversary may use desktopimgdownldr to download arbitrary files as an alternative to certutil.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote File Download via Desktopimgdownldr Utility\n\nAttackers commonly transfer tooling or malware from external systems into a compromised environment using the command\nand control channel. However, they can also abuse signed utilities to drop these files.\n\nThe `Desktopimgdownldr.exe` utility is used to to configure lockscreen/desktop image, and can be abused with the\n`lockscreenurl` argument to download remote files and tools, this rule looks for this behavior.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Check the reputation of the domain or IP address used to host the downloaded file or if the user downloaded the file\nfrom an internal system.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unusual but can be done by administrators. Benign true positives (B-TPs) can be added as exceptions\nif necessary.\n- Analysts can dismiss the alert if the downloaded file is a legitimate image.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://labs.sentinelone.com/living-off-windows-land-a-new-native-file-downldr/"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"desktopimgdownldr.exe\" or process.pe.original_file_name == \"desktopimgdownldr.exe\") and\n process.args : \"/lockscreenurl:http*\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"15c0b7a7-9c34-4869-b25b-fa6518414899:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/15dacaa0-5b90-466b-acab-63435a59701a:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/15dacaa0-5b90-466b-acab-63435a59701a:100.0.0.json new file mode 100644 index 0000000000000..5449bd0004fa3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/15dacaa0-5b90-466b-acab-63435a59701a:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Virtual Private Network Connection Attempt v100.0.0","rule_id":"15dacaa0-5b90-466b-acab-63435a59701a:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of macOS built-in commands to connect to an existing Virtual Private Network (VPN). Adversaries may use VPN connections to laterally move and control remote systems on a network.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/rapid7/metasploit-framework/blob/master/modules/post/osx/manage/vpn.rb","https://www.unix.com/man-page/osx/8/networksetup/","https://superuser.com/questions/358513/start-configured-vpn-from-command-line-osx"],"tags":["Elastic","Host","macOS","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n (\n (process.name : \"networksetup\" and process.args : \"-connectpppoeservice\") or\n (process.name : \"scutil\" and process.args : \"--nc\" and process.args : \"start\") or\n (process.name : \"osascript\" and process.command_line : \"osascript*set VPN to service*\")\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"15dacaa0-5b90-466b-acab-63435a59701a:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/15dacaa0-5b90-466b-acab-63435a59701a:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/15dacaa0-5b90-466b-acab-63435a59701a:100.0.1.json new file mode 100644 index 0000000000000..56703ebfd29d7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/15dacaa0-5b90-466b-acab-63435a59701a:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Virtual Private Network Connection Attempt v100.0.1","rule_id":"15dacaa0-5b90-466b-acab-63435a59701a:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of macOS built-in commands to connect to an existing Virtual Private Network (VPN). Adversaries may use VPN connections to laterally move and control remote systems on a network.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/rapid7/metasploit-framework/blob/master/modules/post/osx/manage/vpn.rb","https://www.unix.com/man-page/osx/8/networksetup/","https://superuser.com/questions/358513/start-configured-vpn-from-command-line-osx"],"tags":["Elastic","Host","macOS","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n (\n (process.name : \"networksetup\" and process.args : \"-connectpppoeservice\") or\n (process.name : \"scutil\" and process.args : \"--nc\" and process.args : \"start\") or\n (process.name : \"osascript\" and process.command_line : \"osascript*set VPN to service*\")\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"15dacaa0-5b90-466b-acab-63435a59701a:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/15dacaa0-5b90-466b-acab-63435a59701a:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/15dacaa0-5b90-466b-acab-63435a59701a:100.0.2.json new file mode 100644 index 0000000000000..47dcbb058dacb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/15dacaa0-5b90-466b-acab-63435a59701a:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Virtual Private Network Connection Attempt v100.0.2","rule_id":"15dacaa0-5b90-466b-acab-63435a59701a:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of macOS built-in commands to connect to an existing Virtual Private Network (VPN). Adversaries may use VPN connections to laterally move and control remote systems on a network.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/rapid7/metasploit-framework/blob/master/modules/post/osx/manage/vpn.rb","https://www.unix.com/man-page/osx/8/networksetup/","https://superuser.com/questions/358513/start-configured-vpn-from-command-line-osx"],"tags":["Elastic","Host","macOS","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n (\n (process.name : \"networksetup\" and process.args : \"-connectpppoeservice\") or\n (process.name : \"scutil\" and process.args : \"--nc\" and process.args : \"start\") or\n (process.name : \"osascript\" and process.command_line : \"osascript*set VPN to service*\")\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"15dacaa0-5b90-466b-acab-63435a59701a:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/16280f1e-57e6-4242-aa21-bb4d16f13b2f:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/16280f1e-57e6-4242-aa21-bb4d16f13b2f:101.0.0.json new file mode 100644 index 0000000000000..5762af6a4e179 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/16280f1e-57e6-4242-aa21-bb4d16f13b2f:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Automation Runbook Created or Modified v101.0.0","rule_id":"16280f1e-57e6-4242-aa21-bb4d16f13b2f:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Azure Automation runbook is created or modified. An adversary may create or modify an Azure Automation runbook to execute malicious code and maintain persistence in their target's environment.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://powerzure.readthedocs.io/en/latest/Functions/operational.html#create-backdoor","https://github.com/hausec/PowerZure","https://posts.specterops.io/attacking-azure-azure-ad-and-introducing-powerzure-ca70b330511a","https://azure.microsoft.com/en-in/blog/azure-automation-runbook-management/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and\n azure.activitylogs.operation_name:\n (\n \"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/RUNBOOKS/DRAFT/WRITE\" or\n \"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/RUNBOOKS/WRITE\" or\n \"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/RUNBOOKS/PUBLISH/ACTION\"\n ) and\n event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"16280f1e-57e6-4242-aa21-bb4d16f13b2f:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/16280f1e-57e6-4242-aa21-bb4d16f13b2f:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/16280f1e-57e6-4242-aa21-bb4d16f13b2f:101.0.1.json new file mode 100644 index 0000000000000..d651be27cab7b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/16280f1e-57e6-4242-aa21-bb4d16f13b2f:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Automation Runbook Created or Modified v101.0.1","rule_id":"16280f1e-57e6-4242-aa21-bb4d16f13b2f:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Azure Automation runbook is created or modified. An adversary may create or modify an Azure Automation runbook to execute malicious code and maintain persistence in their target's environment.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://powerzure.readthedocs.io/en/latest/Functions/operational.html#create-backdoor","https://github.com/hausec/PowerZure","https://posts.specterops.io/attacking-azure-azure-ad-and-introducing-powerzure-ca70b330511a","https://azure.microsoft.com/en-in/blog/azure-automation-runbook-management/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and\n azure.activitylogs.operation_name:\n (\n \"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/RUNBOOKS/DRAFT/WRITE\" or\n \"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/RUNBOOKS/WRITE\" or\n \"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/RUNBOOKS/PUBLISH/ACTION\"\n ) and\n event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"16280f1e-57e6-4242-aa21-bb4d16f13b2f:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/16280f1e-57e6-4242-aa21-bb4d16f13b2f:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/16280f1e-57e6-4242-aa21-bb4d16f13b2f:101.0.2.json new file mode 100644 index 0000000000000..9b8b35489fa53 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/16280f1e-57e6-4242-aa21-bb4d16f13b2f:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Automation Runbook Created or Modified v101.0.2","rule_id":"16280f1e-57e6-4242-aa21-bb4d16f13b2f:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Azure Automation runbook is created or modified. An adversary may create or modify an Azure Automation runbook to execute malicious code and maintain persistence in their target's environment.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://powerzure.readthedocs.io/en/latest/Functions/operational.html#create-backdoor","https://github.com/hausec/PowerZure","https://posts.specterops.io/attacking-azure-azure-ad-and-introducing-powerzure-ca70b330511a","https://azure.microsoft.com/en-in/blog/azure-automation-runbook-management/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and\n azure.activitylogs.operation_name:\n (\n \"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/RUNBOOKS/DRAFT/WRITE\" or\n \"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/RUNBOOKS/WRITE\" or\n \"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/RUNBOOKS/PUBLISH/ACTION\"\n ) and\n event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"16280f1e-57e6-4242-aa21-bb4d16f13b2f:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/16904215-2c95-4ac8-bf5c-12354e047192:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/16904215-2c95-4ac8-bf5c-12354e047192:100.0.0.json new file mode 100644 index 0000000000000..aace52af58635 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/16904215-2c95-4ac8-bf5c-12354e047192:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Kerberos Attack via Bifrost v100.0.0","rule_id":"16904215-2c95-4ac8-bf5c-12354e047192:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of Bifrost, a known macOS Kerberos pentesting tool, which can be used to dump cached Kerberos tickets or attempt unauthorized authentication techniques such as pass-the-ticket/hash and kerberoasting.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/its-a-feature/bifrost"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.003","name":"Pass the Ticket","reference":"https://attack.mitre.org/techniques/T1550/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/","subtechnique":[{"id":"T1558.003","name":"Kerberoasting","reference":"https://attack.mitre.org/techniques/T1558/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and\n process.args:(\"-action\" and (\"-kerberoast\" or askhash or asktgs or asktgt or s4u or (\"-ticket\" and ptt) or (dump and (tickets or keytab))))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},"id":"16904215-2c95-4ac8-bf5c-12354e047192:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/16904215-2c95-4ac8-bf5c-12354e047192:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/16904215-2c95-4ac8-bf5c-12354e047192:100.0.1.json new file mode 100644 index 0000000000000..c22c3692f9f33 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/16904215-2c95-4ac8-bf5c-12354e047192:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Kerberos Attack via Bifrost v100.0.1","rule_id":"16904215-2c95-4ac8-bf5c-12354e047192:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of Bifrost, a known macOS Kerberos pentesting tool, which can be used to dump cached Kerberos tickets or attempt unauthorized authentication techniques such as pass-the-ticket/hash and kerberoasting.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/its-a-feature/bifrost"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.003","name":"Pass the Ticket","reference":"https://attack.mitre.org/techniques/T1550/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/","subtechnique":[{"id":"T1558.003","name":"Kerberoasting","reference":"https://attack.mitre.org/techniques/T1558/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and\n process.args:(\"-action\" and (\"-kerberoast\" or askhash or asktgs or asktgt or s4u or (\"-ticket\" and ptt) or (dump and (tickets or keytab))))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},"id":"16904215-2c95-4ac8-bf5c-12354e047192:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/16904215-2c95-4ac8-bf5c-12354e047192:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/16904215-2c95-4ac8-bf5c-12354e047192:100.0.2.json new file mode 100644 index 0000000000000..13e3c11778c39 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/16904215-2c95-4ac8-bf5c-12354e047192:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Kerberos Attack via Bifrost v100.0.2","rule_id":"16904215-2c95-4ac8-bf5c-12354e047192:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of Bifrost, a known macOS Kerberos pentesting tool, which can be used to dump cached Kerberos tickets or attempt unauthorized authentication techniques such as pass-the-ticket/hash and kerberoasting.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/its-a-feature/bifrost"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.003","name":"Pass the Ticket","reference":"https://attack.mitre.org/techniques/T1550/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/","subtechnique":[{"id":"T1558.003","name":"Kerberoasting","reference":"https://attack.mitre.org/techniques/T1558/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and\n process.args:(\"-action\" and (\"-kerberoast\" or askhash or asktgs or asktgt or s4u or (\"-ticket\" and ptt) or (dump and (tickets or keytab))))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},"id":"16904215-2c95-4ac8-bf5c-12354e047192:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/169f3a93-efc7-4df2-94d6-0d9438c310d1:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/169f3a93-efc7-4df2-94d6-0d9438c310d1:101.0.0.json new file mode 100644 index 0000000000000..209de08dad748 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/169f3a93-efc7-4df2-94d6-0d9438c310d1:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS IAM Group Creation v101.0.0","rule_id":"169f3a93-efc7-4df2-94d6-0d9438c310d1:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a group in AWS Identity and Access Management (IAM). Groups specify permissions for multiple users. Any user in a group automatically has the permissions that are assigned to the group.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A group may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Group creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-group.html","https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/","subtechnique":[{"id":"T1136.003","name":"Cloud Account","reference":"https://attack.mitre.org/techniques/T1136/003/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:CreateGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"169f3a93-efc7-4df2-94d6-0d9438c310d1:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/169f3a93-efc7-4df2-94d6-0d9438c310d1:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/169f3a93-efc7-4df2-94d6-0d9438c310d1:101.0.1.json new file mode 100644 index 0000000000000..bc2d11913b048 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/169f3a93-efc7-4df2-94d6-0d9438c310d1:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS IAM Group Creation v101.0.1","rule_id":"169f3a93-efc7-4df2-94d6-0d9438c310d1:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a group in AWS Identity and Access Management (IAM). Groups specify permissions for multiple users. Any user in a group automatically has the permissions that are assigned to the group.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A group may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Group creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-group.html","https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/","subtechnique":[{"id":"T1136.003","name":"Cloud Account","reference":"https://attack.mitre.org/techniques/T1136/003/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:CreateGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"169f3a93-efc7-4df2-94d6-0d9438c310d1:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/169f3a93-efc7-4df2-94d6-0d9438c310d1:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/169f3a93-efc7-4df2-94d6-0d9438c310d1:101.0.2.json new file mode 100644 index 0000000000000..98ccda74adebe --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/169f3a93-efc7-4df2-94d6-0d9438c310d1:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS IAM Group Creation v101.0.2","rule_id":"169f3a93-efc7-4df2-94d6-0d9438c310d1:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a group in AWS Identity and Access Management (IAM). Groups specify permissions for multiple users. Any user in a group automatically has the permissions that are assigned to the group.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A group may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Group creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-group.html","https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/","subtechnique":[{"id":"T1136.003","name":"Cloud Account","reference":"https://attack.mitre.org/techniques/T1136/003/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:CreateGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"169f3a93-efc7-4df2-94d6-0d9438c310d1:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/16a52c14-7883-47af-8745-9357803f0d4c:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/16a52c14-7883-47af-8745-9357803f0d4c:102.0.0.json new file mode 100644 index 0000000000000..f1870c04e02bb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/16a52c14-7883-47af-8745-9357803f0d4c:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Component Object Model Hijacking v102.0.0","rule_id":"16a52c14-7883-47af-8745-9357803f0d4c:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Component Object Model (COM) hijacking via registry modification. Adversaries may establish persistence by executing malicious content triggered by hijacked references to COM objects.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Component Object Model Hijacking\n\nAdversaries can insert malicious code that can be executed in place of legitimate software through hijacking the COM references and relationships as a means of persistence.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Retrieve the file referenced in the registry and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- Some Microsoft executables will reference the LocalServer32 registry key value for the location of external COM objects.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://bohops.com/2018/08/18/abusing-the-com-registry-structure-part-2-loading-techniques-for-evasion-and-persistence/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.015","name":"Component Object Model Hijacking","reference":"https://attack.mitre.org/techniques/T1546/015/"}]}]}],"language":"eql","query":"registry where\n /* not necessary but good for filtering privileged installations */\n user.domain != \"NT AUTHORITY\" and\n\n(\n (registry.path : \"HK*\\\\InprocServer32\\\\\" and registry.data.strings: (\"scrobj.dll\", \"C:\\\\*\\\\scrobj.dll\") and\n not registry.path : \"*\\\\{06290BD*-48AA-11D2-8432-006008C3FBFC}\\\\*\") or\n\n /* in general COM Registry changes on Users Hive is less noisy and worth alerting */\n (registry.path : (\"HKEY_USERS\\\\*\\\\InprocServer32\\\\*\",\n \"HKEY_USERS\\\\*\\\\LocalServer32\\\\*\",\n \"HKEY_USERS\\\\*\\\\DelegateExecute\\\\*\",\n \"HKEY_USERS\\\\*\\\\TreatAs\\\\*\",\n \"HKEY_USERS\\\\*\\\\ScriptletURL\\\\*\") and\n not (process.executable : \"?:\\\\Program Files*\\\\Veeam\\\\Backup and Replication\\\\Console\\\\veeam.backup.shell.exe\" and\n registry.path : \"HKEY_USERS\\\\S-1-*_Classes\\\\CLSID\\\\*\\\\LocalServer32\\\\\")) or\n\n (registry.path : \"HKLM\\\\*\\\\InProcServer32\\\\*\" and registry.data.strings : (\"*\\\\Users\\\\*\", \"*\\\\ProgramData\\\\*\"))\n\n) and\n\n /* removes false-positives generated by OneDrive and Teams */\n not process.name : (\"OneDrive.exe\",\"OneDriveSetup.exe\",\"FileSyncConfig.exe\",\"Teams.exe\") and\n\n /* Teams DLL loaded by regsvr */\n not (process.name: \"regsvr32.exe\" and registry.data.strings : \"*Microsoft.Teams.*.dll\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"16a52c14-7883-47af-8745-9357803f0d4c:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/16a52c14-7883-47af-8745-9357803f0d4c:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/16a52c14-7883-47af-8745-9357803f0d4c:102.0.1.json new file mode 100644 index 0000000000000..e96defcf883fc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/16a52c14-7883-47af-8745-9357803f0d4c:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Component Object Model Hijacking v102.0.1","rule_id":"16a52c14-7883-47af-8745-9357803f0d4c:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Component Object Model (COM) hijacking via registry modification. Adversaries may establish persistence by executing malicious content triggered by hijacked references to COM objects.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Component Object Model Hijacking\n\nAdversaries can insert malicious code that can be executed in place of legitimate software through hijacking the COM references and relationships as a means of persistence.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Retrieve the file referenced in the registry and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- Some Microsoft executables will reference the LocalServer32 registry key value for the location of external COM objects.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://bohops.com/2018/08/18/abusing-the-com-registry-structure-part-2-loading-techniques-for-evasion-and-persistence/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.015","name":"Component Object Model Hijacking","reference":"https://attack.mitre.org/techniques/T1546/015/"}]}]}],"language":"eql","query":"registry where\n /* not necessary but good for filtering privileged installations */\n user.domain != \"NT AUTHORITY\" and\n\n(\n (registry.path : \"HK*\\\\InprocServer32\\\\\" and registry.data.strings: (\"scrobj.dll\", \"C:\\\\*\\\\scrobj.dll\") and\n not registry.path : \"*\\\\{06290BD*-48AA-11D2-8432-006008C3FBFC}\\\\*\") or\n\n /* in general COM Registry changes on Users Hive is less noisy and worth alerting */\n (registry.path : (\"HKEY_USERS\\\\*\\\\InprocServer32\\\\*\",\n \"HKEY_USERS\\\\*\\\\LocalServer32\\\\*\",\n \"HKEY_USERS\\\\*\\\\DelegateExecute\\\\*\",\n \"HKEY_USERS\\\\*\\\\TreatAs\\\\*\",\n \"HKEY_USERS\\\\*\\\\ScriptletURL\\\\*\") and\n not (process.executable : \"?:\\\\Program Files*\\\\Veeam\\\\Backup and Replication\\\\Console\\\\veeam.backup.shell.exe\" and\n registry.path : \"HKEY_USERS\\\\S-1-*_Classes\\\\CLSID\\\\*\\\\LocalServer32\\\\\")) or\n\n (registry.path : \"HKLM\\\\*\\\\InProcServer32\\\\*\" and registry.data.strings : (\"*\\\\Users\\\\*\", \"*\\\\ProgramData\\\\*\"))\n\n) and\n\n /* removes false-positives generated by OneDrive and Teams */\n not process.name : (\"OneDrive.exe\",\"OneDriveSetup.exe\",\"FileSyncConfig.exe\",\"Teams.exe\") and\n\n /* Teams DLL loaded by regsvr */\n not (process.name: \"regsvr32.exe\" and registry.data.strings : \"*Microsoft.Teams.*.dll\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"16a52c14-7883-47af-8745-9357803f0d4c:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/16a52c14-7883-47af-8745-9357803f0d4c:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/16a52c14-7883-47af-8745-9357803f0d4c:102.0.2.json new file mode 100644 index 0000000000000..96efa8fd4a8ac --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/16a52c14-7883-47af-8745-9357803f0d4c:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Component Object Model Hijacking v102.0.2","rule_id":"16a52c14-7883-47af-8745-9357803f0d4c:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Component Object Model (COM) hijacking via registry modification. Adversaries may establish persistence by executing malicious content triggered by hijacked references to COM objects.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Component Object Model Hijacking\n\nAdversaries can insert malicious code that can be executed in place of legitimate software through hijacking the COM references and relationships as a means of persistence.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Retrieve the file referenced in the registry and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- Some Microsoft executables will reference the LocalServer32 registry key value for the location of external COM objects.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://bohops.com/2018/08/18/abusing-the-com-registry-structure-part-2-loading-techniques-for-evasion-and-persistence/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.015","name":"Component Object Model Hijacking","reference":"https://attack.mitre.org/techniques/T1546/015/"}]}]}],"language":"eql","query":"registry where\n /* not necessary but good for filtering privileged installations */\n user.domain != \"NT AUTHORITY\" and\n\n(\n (registry.path : \"HK*\\\\InprocServer32\\\\\" and registry.data.strings: (\"scrobj.dll\", \"C:\\\\*\\\\scrobj.dll\") and\n not registry.path : \"*\\\\{06290BD*-48AA-11D2-8432-006008C3FBFC}\\\\*\") or\n\n /* in general COM Registry changes on Users Hive is less noisy and worth alerting */\n (registry.path : (\"HKEY_USERS\\\\*\\\\InprocServer32\\\\*\",\n \"HKEY_USERS\\\\*\\\\LocalServer32\\\\*\",\n \"HKEY_USERS\\\\*\\\\DelegateExecute\\\\*\",\n \"HKEY_USERS\\\\*\\\\TreatAs\\\\*\",\n \"HKEY_USERS\\\\*\\\\ScriptletURL\\\\*\") and\n not (process.executable : \"?:\\\\Program Files*\\\\Veeam\\\\Backup and Replication\\\\Console\\\\veeam.backup.shell.exe\" and\n registry.path : \"HKEY_USERS\\\\S-1-*_Classes\\\\CLSID\\\\*\\\\LocalServer32\\\\\")) or\n\n (registry.path : \"HKLM\\\\*\\\\InProcServer32\\\\*\" and registry.data.strings : (\"*\\\\Users\\\\*\", \"*\\\\ProgramData\\\\*\"))\n\n) and\n\n /* removes false-positives generated by OneDrive and Teams */\n not process.name : (\"OneDrive.exe\",\"OneDriveSetup.exe\",\"FileSyncConfig.exe\",\"Teams.exe\") and\n\n /* Teams DLL loaded by regsvr */\n not (process.name: \"regsvr32.exe\" and registry.data.strings : \"*Microsoft.Teams.*.dll\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"16a52c14-7883-47af-8745-9357803f0d4c:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/16fac1a1-21ee-4ca6-b720-458e3855d046:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/16fac1a1-21ee-4ca6-b720-458e3855d046:102.0.0.json new file mode 100644 index 0000000000000..40656e715202a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/16fac1a1-21ee-4ca6-b720-458e3855d046:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Startup/Logon Script added to Group Policy Object v102.0.0","rule_id":"16fac1a1-21ee-4ca6-b720-458e3855d046:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the modification of Group Policy Objects (GPO) to add a startup/logon script to users or computer objects.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Scheduled Task Execution at Scale via GPO\n\nGroup Policy Objects (GPOs) can be used by attackers to instruct arbitrarily large groups of\nclients to execute specified commands at startup, logon, shutdown, and logoff. This is done by creating or modifying the\n`scripts.ini` or `psscripts.ini` files. The scripts are stored in the following path: `\\Machine\\Scripts\\`,\n`\\User\\Scripts\\`\n\n#### Possible investigation steps\n\n- This attack abuses a legitimate mechanism of Active Directory, so it is important to determine whether the activity\nis legitimate and the administrator is authorized to perform this operation.\n- Retrieve the contents of the `ScheduledTasks.xml` file, and check the `` and `` XML tags for any\npotentially malicious commands or binaries.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Scope which objects may be compromised by retrieving information about which objects are controlled by the GPO.\n\n### False positive analysis\n\n- Verify if the execution is legitimately authorized and executed under a change management process.\n\n### Related rules\n\n- Group Policy Abuse for Privilege Addition - b9554892-5e0e-424b-83a0-5aef95aa43bf\n- Scheduled Task Execution at Scale via GPO - 15a8ba77-1c13-4274-88fe-6bd14133861e\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- The investigation and containment must be performed in every computer controlled by the GPO, where necessary.\n- Remove the script from the GPO.\n- Check if other GPOs have suspicious scripts attached.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate Administrative Activity"],"references":["https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0025_windows_audit_directory_service_changes.md","https://github.com/atc-project/atc-data/blob/f2bbb51ecf68e2c9f488e3c70dcdd3df51d2a46b/docs/Logging_Policies/LP_0029_windows_audit_detailed_file_share.md","https://labs.f-secure.com/tools/sharpgpoabuse"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/"},{"id":"T1484","name":"Domain Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/","subtechnique":[{"id":"T1484.001","name":"Group Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"(\n event.code:5136 and winlog.event_data.AttributeLDAPDisplayName:(gPCMachineExtensionNames or gPCUserExtensionNames) and\n winlog.event_data.AttributeValue:(*42B5FAAE-6536-11D2-AE5A-0000F87571E3* and\n (*40B66650-4972-11D1-A7CA-0000F87571E3* or *40B6664F-4972-11D1-A7CA-0000F87571E3*))\n)\nor\n(\n event.code:5145 and winlog.event_data.ShareName:\\\\\\\\*\\\\SYSVOL and\n winlog.event_data.RelativeTargetName:(*\\\\scripts.ini or *\\\\psscripts.ini) and\n (message:WriteData or winlog.event_data.AccessList:*%%4417*)\n)\n","required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"message","type":"match_only_text"},{"ecs":false,"name":"winlog.event_data.AccessList","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeValue","type":"unknown"},{"ecs":false,"name":"winlog.event_data.RelativeTargetName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ShareName","type":"unknown"}],"setup":"The 'Audit Detailed File Share' audit policy must be configured (Success Failure).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nObject Access >\nAudit Detailed File Share (Success,Failure)\n```\n\nThe 'Audit Directory Service Changes' audit policy must be configured (Success Failure).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```"},"id":"16fac1a1-21ee-4ca6-b720-458e3855d046:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/16fac1a1-21ee-4ca6-b720-458e3855d046:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/16fac1a1-21ee-4ca6-b720-458e3855d046:102.0.1.json new file mode 100644 index 0000000000000..6bea394138a80 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/16fac1a1-21ee-4ca6-b720-458e3855d046:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Startup/Logon Script added to Group Policy Object v102.0.1","rule_id":"16fac1a1-21ee-4ca6-b720-458e3855d046:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the modification of Group Policy Objects (GPO) to add a startup/logon script to users or computer objects.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Scheduled Task Execution at Scale via GPO\n\nGroup Policy Objects (GPOs) can be used by attackers to instruct arbitrarily large groups of\nclients to execute specified commands at startup, logon, shutdown, and logoff. This is done by creating or modifying the\n`scripts.ini` or `psscripts.ini` files. The scripts are stored in the following path: `\\Machine\\Scripts\\`,\n`\\User\\Scripts\\`\n\n#### Possible investigation steps\n\n- This attack abuses a legitimate mechanism of Active Directory, so it is important to determine whether the activity\nis legitimate and the administrator is authorized to perform this operation.\n- Retrieve the contents of the `ScheduledTasks.xml` file, and check the `` and `` XML tags for any\npotentially malicious commands or binaries.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Scope which objects may be compromised by retrieving information about which objects are controlled by the GPO.\n\n### False positive analysis\n\n- Verify if the execution is legitimately authorized and executed under a change management process.\n\n### Related rules\n\n- Group Policy Abuse for Privilege Addition - b9554892-5e0e-424b-83a0-5aef95aa43bf\n- Scheduled Task Execution at Scale via GPO - 15a8ba77-1c13-4274-88fe-6bd14133861e\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- The investigation and containment must be performed in every computer controlled by the GPO, where necessary.\n- Remove the script from the GPO.\n- Check if other GPOs have suspicious scripts attached.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate Administrative Activity"],"references":["https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0025_windows_audit_directory_service_changes.md","https://github.com/atc-project/atc-data/blob/f2bbb51ecf68e2c9f488e3c70dcdd3df51d2a46b/docs/Logging_Policies/LP_0029_windows_audit_detailed_file_share.md","https://labs.f-secure.com/tools/sharpgpoabuse"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/"},{"id":"T1484","name":"Domain Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/","subtechnique":[{"id":"T1484.001","name":"Group Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"(\n event.code:5136 and winlog.event_data.AttributeLDAPDisplayName:(gPCMachineExtensionNames or gPCUserExtensionNames) and\n winlog.event_data.AttributeValue:(*42B5FAAE-6536-11D2-AE5A-0000F87571E3* and\n (*40B66650-4972-11D1-A7CA-0000F87571E3* or *40B6664F-4972-11D1-A7CA-0000F87571E3*))\n)\nor\n(\n event.code:5145 and winlog.event_data.ShareName:\\\\\\\\*\\\\SYSVOL and\n winlog.event_data.RelativeTargetName:(*\\\\scripts.ini or *\\\\psscripts.ini) and\n (message:WriteData or winlog.event_data.AccessList:*%%4417*)\n)\n","required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"message","type":"match_only_text"},{"ecs":false,"name":"winlog.event_data.AccessList","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeValue","type":"unknown"},{"ecs":false,"name":"winlog.event_data.RelativeTargetName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ShareName","type":"unknown"}],"setup":"The 'Audit Detailed File Share' audit policy must be configured (Success Failure).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nObject Access >\nAudit Detailed File Share (Success,Failure)\n```\n\nThe 'Audit Directory Service Changes' audit policy must be configured (Success Failure).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```"},"id":"16fac1a1-21ee-4ca6-b720-458e3855d046:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/16fac1a1-21ee-4ca6-b720-458e3855d046:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/16fac1a1-21ee-4ca6-b720-458e3855d046:102.0.2.json new file mode 100644 index 0000000000000..1dfb831a03144 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/16fac1a1-21ee-4ca6-b720-458e3855d046:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Startup/Logon Script added to Group Policy Object v102.0.2","rule_id":"16fac1a1-21ee-4ca6-b720-458e3855d046:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the modification of Group Policy Objects (GPO) to add a startup/logon script to users or computer objects.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Scheduled Task Execution at Scale via GPO\n\nGroup Policy Objects (GPOs) can be used by attackers to instruct arbitrarily large groups of\nclients to execute specified commands at startup, logon, shutdown, and logoff. This is done by creating or modifying the\n`scripts.ini` or `psscripts.ini` files. The scripts are stored in the following path: `\\Machine\\Scripts\\`,\n`\\User\\Scripts\\`\n\n#### Possible investigation steps\n\n- This attack abuses a legitimate mechanism of Active Directory, so it is important to determine whether the activity\nis legitimate and the administrator is authorized to perform this operation.\n- Retrieve the contents of the `ScheduledTasks.xml` file, and check the `` and `` XML tags for any\npotentially malicious commands or binaries.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Scope which objects may be compromised by retrieving information about which objects are controlled by the GPO.\n\n### False positive analysis\n\n- Verify if the execution is legitimately authorized and executed under a change management process.\n\n### Related rules\n\n- Group Policy Abuse for Privilege Addition - b9554892-5e0e-424b-83a0-5aef95aa43bf\n- Scheduled Task Execution at Scale via GPO - 15a8ba77-1c13-4274-88fe-6bd14133861e\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- The investigation and containment must be performed in every computer controlled by the GPO, where necessary.\n- Remove the script from the GPO.\n- Check if other GPOs have suspicious scripts attached.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate Administrative Activity"],"references":["https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0025_windows_audit_directory_service_changes.md","https://github.com/atc-project/atc-data/blob/f2bbb51ecf68e2c9f488e3c70dcdd3df51d2a46b/docs/Logging_Policies/LP_0029_windows_audit_detailed_file_share.md","https://labs.f-secure.com/tools/sharpgpoabuse"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/"},{"id":"T1484","name":"Domain Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/","subtechnique":[{"id":"T1484.001","name":"Group Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"(\n event.code:5136 and winlog.event_data.AttributeLDAPDisplayName:(gPCMachineExtensionNames or gPCUserExtensionNames) and\n winlog.event_data.AttributeValue:(*42B5FAAE-6536-11D2-AE5A-0000F87571E3* and\n (*40B66650-4972-11D1-A7CA-0000F87571E3* or *40B6664F-4972-11D1-A7CA-0000F87571E3*))\n)\nor\n(\n event.code:5145 and winlog.event_data.ShareName:\\\\\\\\*\\\\SYSVOL and\n winlog.event_data.RelativeTargetName:(*\\\\scripts.ini or *\\\\psscripts.ini) and\n (message:WriteData or winlog.event_data.AccessList:*%%4417*)\n)\n","required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"message","type":"match_only_text"},{"ecs":false,"name":"winlog.event_data.AccessList","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeValue","type":"unknown"},{"ecs":false,"name":"winlog.event_data.RelativeTargetName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ShareName","type":"unknown"}],"setup":"The 'Audit Detailed File Share' audit policy must be configured (Success Failure).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nObject Access >\nAudit Detailed File Share (Success,Failure)\n```\n\nThe 'Audit Directory Service Changes' audit policy must be configured (Success Failure).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```"},"id":"16fac1a1-21ee-4ca6-b720-458e3855d046:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9c59-fc0fa58336a5:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9c59-fc0fa58336a5:100.0.0.json new file mode 100644 index 0000000000000..f83a299f36d7b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9c59-fc0fa58336a5:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Windows Username v100.0.0","rule_id":"1781d055-5c66-4adf-9c59-fc0fa58336a5:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected activity for a username that is not normally active, which can indicate unauthorized changes, activity by unauthorized users, lateral movement, or compromised credentials. In many organizations, new usernames are not often created apart from specific types of system activities, such as creating new accounts for new employees. These user accounts quickly become active and routine. Events from rarely used usernames can point to suspicious activity. Additionally, automated Linux fleets tend to see activity from rarely used usernames only when personnel log in to make authorized or unauthorized changes, or threat actors have acquired credentials and log in for malicious purposes. Unusual usernames can also indicate pivoting, where compromised credentials are used to try and move laterally from one host to another.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Windows User\nDetection alerts from this rule indicate activity for a Windows user name that is rare and unusual. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is this program part of an expected workflow for the user who ran this program on this host? Could this be related to occasional troubleshooting or support activity?\n- Examine the history of user activity. If this user only manifested recently, it might be a service account for a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks that the user is performing.\n- Consider the same for the parent process. If the parent process is a legitimate system utility or service, this could be related to software updates or system management. If the parent process is something user-facing like an Office application, this process could be more suspicious.","author":["Elastic"],"false_positives":["Uncommon user activity can be due to an administrator or help desk technician logging onto a workstation or server in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_user_name"],"type":"machine_learning"},"id":"1781d055-5c66-4adf-9c59-fc0fa58336a5:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9c59-fc0fa58336a5:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9c59-fc0fa58336a5:100.0.1.json new file mode 100644 index 0000000000000..b669922493c74 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9c59-fc0fa58336a5:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Windows Username v100.0.1","rule_id":"1781d055-5c66-4adf-9c59-fc0fa58336a5:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected activity for a username that is not normally active, which can indicate unauthorized changes, activity by unauthorized users, lateral movement, or compromised credentials. In many organizations, new usernames are not often created apart from specific types of system activities, such as creating new accounts for new employees. These user accounts quickly become active and routine. Events from rarely used usernames can point to suspicious activity. Additionally, automated Linux fleets tend to see activity from rarely used usernames only when personnel log in to make authorized or unauthorized changes, or threat actors have acquired credentials and log in for malicious purposes. Unusual usernames can also indicate pivoting, where compromised credentials are used to try and move laterally from one host to another.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Windows User\nDetection alerts from this rule indicate activity for a Windows user name that is rare and unusual. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is this program part of an expected workflow for the user who ran this program on this host? Could this be related to occasional troubleshooting or support activity?\n- Examine the history of user activity. If this user only manifested recently, it might be a service account for a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks that the user is performing.\n- Consider the same for the parent process. If the parent process is a legitimate system utility or service, this could be related to software updates or system management. If the parent process is something user-facing like an Office application, this process could be more suspicious.","author":["Elastic"],"false_positives":["Uncommon user activity can be due to an administrator or help desk technician logging onto a workstation or server in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_user_name"],"type":"machine_learning"},"id":"1781d055-5c66-4adf-9c59-fc0fa58336a5:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9c59-fc0fa58336a5:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9c59-fc0fa58336a5:100.0.2.json new file mode 100644 index 0000000000000..29e3c629683bf --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9c59-fc0fa58336a5:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Windows Username v100.0.2","rule_id":"1781d055-5c66-4adf-9c59-fc0fa58336a5:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected activity for a username that is not normally active, which can indicate unauthorized changes, activity by unauthorized users, lateral movement, or compromised credentials. In many organizations, new usernames are not often created apart from specific types of system activities, such as creating new accounts for new employees. These user accounts quickly become active and routine. Events from rarely used usernames can point to suspicious activity. Additionally, automated Linux fleets tend to see activity from rarely used usernames only when personnel log in to make authorized or unauthorized changes, or threat actors have acquired credentials and log in for malicious purposes. Unusual usernames can also indicate pivoting, where compromised credentials are used to try and move laterally from one host to another.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Windows User\nDetection alerts from this rule indicate activity for a Windows user name that is rare and unusual. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is this program part of an expected workflow for the user who ran this program on this host? Could this be related to occasional troubleshooting or support activity?\n- Examine the history of user activity. If this user only manifested recently, it might be a service account for a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks that the user is performing.\n- Consider the same for the parent process. If the parent process is a legitimate system utility or service, this could be related to software updates or system management. If the parent process is something user-facing like an Office application, this process could be more suspicious.","author":["Elastic"],"false_positives":["Uncommon user activity can be due to an administrator or help desk technician logging onto a workstation or server in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_user_name"],"type":"machine_learning"},"id":"1781d055-5c66-4adf-9c59-fc0fa58336a5:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9c71-fc0fa58338c7:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9c71-fc0fa58338c7:100.0.0.json new file mode 100644 index 0000000000000..12f6d3f976289 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9c71-fc0fa58338c7:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Windows Service v100.0.0","rule_id":"1781d055-5c66-4adf-9c71-fc0fa58338c7:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusual Windows service, This can indicate execution of unauthorized services, malware, or persistence mechanisms. In corporate Windows environments, hosts do not generally run many rare or unique services. This job helps detect malware and persistence mechanisms that have been installed and run as a service.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_service"],"type":"machine_learning"},"id":"1781d055-5c66-4adf-9c71-fc0fa58338c7:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9c71-fc0fa58338c7:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9c71-fc0fa58338c7:100.0.1.json new file mode 100644 index 0000000000000..6131ed78768ea --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9c71-fc0fa58338c7:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Windows Service v100.0.1","rule_id":"1781d055-5c66-4adf-9c71-fc0fa58338c7:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusual Windows service, This can indicate execution of unauthorized services, malware, or persistence mechanisms. In corporate Windows environments, hosts do not generally run many rare or unique services. This job helps detect malware and persistence mechanisms that have been installed and run as a service.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_service"],"type":"machine_learning"},"id":"1781d055-5c66-4adf-9c71-fc0fa58338c7:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9c71-fc0fa58338c7:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9c71-fc0fa58338c7:100.0.2.json new file mode 100644 index 0000000000000..8242d6a50cafe --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9c71-fc0fa58338c7:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Windows Service v100.0.2","rule_id":"1781d055-5c66-4adf-9c71-fc0fa58338c7:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusual Windows service, This can indicate execution of unauthorized services, malware, or persistence mechanisms. In corporate Windows environments, hosts do not generally run many rare or unique services. This job helps detect malware and persistence mechanisms that have been installed and run as a service.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_service"],"type":"machine_learning"},"id":"1781d055-5c66-4adf-9c71-fc0fa58338c7:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9d60-fc0fa58337b6:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9d60-fc0fa58337b6:101.0.0.json new file mode 100644 index 0000000000000..34f4de27b15ac --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9d60-fc0fa58337b6:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Powershell Script v101.0.0","rule_id":"1781d055-5c66-4adf-9d60-fc0fa58337b6:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a PowerShell script with unusual data characteristics, such as obfuscation, that may be a characteristic of malicious PowerShell script text blocks.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Certain kinds of security testing may trigger this alert. PowerShell scripts that use high levels of obfuscation or have unusual script block payloads may trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html","https://www.elastic.co/security-labs/detecting-living-off-the-land-attacks-with-new-elastic-integration"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_script"],"type":"machine_learning"},"id":"1781d055-5c66-4adf-9d60-fc0fa58337b6:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9d60-fc0fa58337b6:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9d60-fc0fa58337b6:101.0.1.json new file mode 100644 index 0000000000000..98275e6362787 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9d60-fc0fa58337b6:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Powershell Script v101.0.1","rule_id":"1781d055-5c66-4adf-9d60-fc0fa58337b6:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a PowerShell script with unusual data characteristics, such as obfuscation, that may be a characteristic of malicious PowerShell script text blocks.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Certain kinds of security testing may trigger this alert. PowerShell scripts that use high levels of obfuscation or have unusual script block payloads may trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html","https://www.elastic.co/security-labs/detecting-living-off-the-land-attacks-with-new-elastic-integration"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_script"],"type":"machine_learning"},"id":"1781d055-5c66-4adf-9d60-fc0fa58337b6:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9d60-fc0fa58337b6:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9d60-fc0fa58337b6:101.0.2.json new file mode 100644 index 0000000000000..ed6f79b0d7621 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9d60-fc0fa58337b6:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Powershell Script v101.0.2","rule_id":"1781d055-5c66-4adf-9d60-fc0fa58337b6:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a PowerShell script with unusual data characteristics, such as obfuscation, that may be a characteristic of malicious PowerShell script text blocks.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Certain kinds of security testing may trigger this alert. PowerShell scripts that use high levels of obfuscation or have unusual script block payloads may trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html","https://www.elastic.co/security-labs/detecting-living-off-the-land-attacks-with-new-elastic-integration"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_script"],"type":"machine_learning"},"id":"1781d055-5c66-4adf-9d60-fc0fa58337b6:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9d82-fc0fa58449c8:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9d82-fc0fa58449c8:100.0.0.json new file mode 100644 index 0000000000000..1d7383d48552e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9d82-fc0fa58449c8:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Windows User Privilege Elevation Activity v100.0.0","rule_id":"1781d055-5c66-4adf-9d82-fc0fa58449c8:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusual user context switch, using the runas command or similar techniques, which can indicate account takeover or privilege escalation using compromised accounts. Privilege elevation using tools like runas are more commonly used by domain and network administrators than by regular Windows users.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user privilege elevation activity can be due to an administrator, help desk technician, or a user performing manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_rare_user_runas_event"],"type":"machine_learning"},"id":"1781d055-5c66-4adf-9d82-fc0fa58449c8:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9d82-fc0fa58449c8:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9d82-fc0fa58449c8:100.0.1.json new file mode 100644 index 0000000000000..7b139b3f3869d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9d82-fc0fa58449c8:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Windows User Privilege Elevation Activity v100.0.1","rule_id":"1781d055-5c66-4adf-9d82-fc0fa58449c8:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusual user context switch, using the runas command or similar techniques, which can indicate account takeover or privilege escalation using compromised accounts. Privilege elevation using tools like runas are more commonly used by domain and network administrators than by regular Windows users.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user privilege elevation activity can be due to an administrator, help desk technician, or a user performing manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_rare_user_runas_event"],"type":"machine_learning"},"id":"1781d055-5c66-4adf-9d82-fc0fa58449c8:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9d82-fc0fa58449c8:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9d82-fc0fa58449c8:100.0.2.json new file mode 100644 index 0000000000000..e7e83add94105 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9d82-fc0fa58449c8:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Windows User Privilege Elevation Activity v100.0.2","rule_id":"1781d055-5c66-4adf-9d82-fc0fa58449c8:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusual user context switch, using the runas command or similar techniques, which can indicate account takeover or privilege escalation using compromised accounts. Privilege elevation using tools like runas are more commonly used by domain and network administrators than by regular Windows users.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user privilege elevation activity can be due to an administrator, help desk technician, or a user performing manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_rare_user_runas_event"],"type":"machine_learning"},"id":"1781d055-5c66-4adf-9d82-fc0fa58449c8:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9e93-fc0fa69550c9:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9e93-fc0fa69550c9:100.0.0.json new file mode 100644 index 0000000000000..54bded7ede18e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9e93-fc0fa69550c9:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Windows Remote User v100.0.0","rule_id":"1781d055-5c66-4adf-9e93-fc0fa69550c9:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusual remote desktop protocol (RDP) username, which can indicate account takeover or credentialed persistence using compromised accounts. RDP attacks, such as BlueKeep, also tend to use unusual usernames.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Windows User\nDetection alerts from this rule indicate activity for a rare and unusual Windows RDP (remote desktop) user. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is the user part of a group who normally logs into Windows hosts using RDP (remote desktop protocol)? Is this logon activity part of an expected workflow for the user?\n- Consider the source of the login. If the source is remote, could this be related to occasional troubleshooting or support activity by a vendor or an employee working remotely?","author":["Elastic"],"false_positives":["Uncommon username activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_rare_user_type10_remote_login"],"type":"machine_learning"},"id":"1781d055-5c66-4adf-9e93-fc0fa69550c9:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9e93-fc0fa69550c9:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9e93-fc0fa69550c9:100.0.1.json new file mode 100644 index 0000000000000..8acc547e5294d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9e93-fc0fa69550c9:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Windows Remote User v100.0.1","rule_id":"1781d055-5c66-4adf-9e93-fc0fa69550c9:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusual remote desktop protocol (RDP) username, which can indicate account takeover or credentialed persistence using compromised accounts. RDP attacks, such as BlueKeep, also tend to use unusual usernames.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Windows User\nDetection alerts from this rule indicate activity for a rare and unusual Windows RDP (remote desktop) user. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is the user part of a group who normally logs into Windows hosts using RDP (remote desktop protocol)? Is this logon activity part of an expected workflow for the user?\n- Consider the source of the login. If the source is remote, could this be related to occasional troubleshooting or support activity by a vendor or an employee working remotely?","author":["Elastic"],"false_positives":["Uncommon username activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_rare_user_type10_remote_login"],"type":"machine_learning"},"id":"1781d055-5c66-4adf-9e93-fc0fa69550c9:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9e93-fc0fa69550c9:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9e93-fc0fa69550c9:100.0.2.json new file mode 100644 index 0000000000000..9690d081dfac3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1781d055-5c66-4adf-9e93-fc0fa69550c9:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Windows Remote User v100.0.2","rule_id":"1781d055-5c66-4adf-9e93-fc0fa69550c9:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusual remote desktop protocol (RDP) username, which can indicate account takeover or credentialed persistence using compromised accounts. RDP attacks, such as BlueKeep, also tend to use unusual usernames.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Windows User\nDetection alerts from this rule indicate activity for a rare and unusual Windows RDP (remote desktop) user. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is the user part of a group who normally logs into Windows hosts using RDP (remote desktop protocol)? Is this logon activity part of an expected workflow for the user?\n- Consider the source of the login. If the source is remote, could this be related to occasional troubleshooting or support activity by a vendor or an employee working remotely?","author":["Elastic"],"false_positives":["Uncommon username activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_rare_user_type10_remote_login"],"type":"machine_learning"},"id":"1781d055-5c66-4adf-9e93-fc0fa69550c9:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/17c7f6a5-5bc9-4e1f-92bf-13632d24384d:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/17c7f6a5-5bc9-4e1f-92bf-13632d24384d:102.0.0.json new file mode 100644 index 0000000000000..da5201e016a0e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/17c7f6a5-5bc9-4e1f-92bf-13632d24384d:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Execution - Short Program Name v102.0.0","rule_id":"17c7f6a5-5bc9-4e1f-92bf-13632d24384d:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies process execution with a single character process name. This is often done by adversaries while staging or executing temporary utilities.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.003","name":"Rename System Utilities","reference":"https://attack.mitre.org/techniques/T1036/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and length(process.name) > 0 and\n length(process.name) == 5 and host.os.name == \"Windows\" and length(process.pe.original_file_name) > 5\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.os.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"17c7f6a5-5bc9-4e1f-92bf-13632d24384d:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/17c7f6a5-5bc9-4e1f-92bf-13632d24384d:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/17c7f6a5-5bc9-4e1f-92bf-13632d24384d:102.0.1.json new file mode 100644 index 0000000000000..689b3d86faedf --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/17c7f6a5-5bc9-4e1f-92bf-13632d24384d:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Execution - Short Program Name v102.0.1","rule_id":"17c7f6a5-5bc9-4e1f-92bf-13632d24384d:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies process execution with a single character process name. This is often done by adversaries while staging or executing temporary utilities.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.003","name":"Rename System Utilities","reference":"https://attack.mitre.org/techniques/T1036/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and length(process.name) > 0 and\n length(process.name) == 5 and host.os.name == \"Windows\" and length(process.pe.original_file_name) > 5\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.os.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"17c7f6a5-5bc9-4e1f-92bf-13632d24384d:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/17c7f6a5-5bc9-4e1f-92bf-13632d24384d:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/17c7f6a5-5bc9-4e1f-92bf-13632d24384d:102.0.2.json new file mode 100644 index 0000000000000..526e5c0db0d98 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/17c7f6a5-5bc9-4e1f-92bf-13632d24384d:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Execution - Short Program Name v102.0.2","rule_id":"17c7f6a5-5bc9-4e1f-92bf-13632d24384d:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies process execution with a single character process name. This is often done by adversaries while staging or executing temporary utilities.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.003","name":"Rename System Utilities","reference":"https://attack.mitre.org/techniques/T1036/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and length(process.name) > 0 and\n length(process.name) == 5 and host.os.name == \"Windows\" and length(process.pe.original_file_name) > 5\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.os.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"17c7f6a5-5bc9-4e1f-92bf-13632d24384d:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/17e68559-b274-4948-ad0b-f8415bb31126:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/17e68559-b274-4948-ad0b-f8415bb31126:100.0.0.json new file mode 100644 index 0000000000000..af3ad62f16f26 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/17e68559-b274-4948-ad0b-f8415bb31126:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Network Destination Domain Name v100.0.0","rule_id":"17e68559-b274-4948-ad0b-f8415bb31126:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusual network destination domain name. This can be due to initial access, persistence, command-and-control, or exfiltration activity. For example, when a user clicks on a link in a phishing email or opens a malicious document, a request may be sent to download and run a payload from an uncommon web server name. When malware is already running, it may send requests to an uncommon DNS domain the malware uses for command-and-control communication.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Web activity that occurs rarely in small quantities can trigger this alert. Possible examples are browsing technical support or vendor URLs that are used very sparsely. A user who visits a new and unique web destination may trigger this alert when the activity is sparse. Web applications that generate URLs unique to a transaction may trigger this when they are used sparsely. Web domains can be excluded in cases such as these."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML"],"anomaly_threshold":50,"machine_learning_job_id":"packetbeat_rare_server_domain","type":"machine_learning"},"id":"17e68559-b274-4948-ad0b-f8415bb31126:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/17e68559-b274-4948-ad0b-f8415bb31126:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/17e68559-b274-4948-ad0b-f8415bb31126:100.0.1.json new file mode 100644 index 0000000000000..5433785f85fa0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/17e68559-b274-4948-ad0b-f8415bb31126:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Network Destination Domain Name v100.0.1","rule_id":"17e68559-b274-4948-ad0b-f8415bb31126:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusual network destination domain name. This can be due to initial access, persistence, command-and-control, or exfiltration activity. For example, when a user clicks on a link in a phishing email or opens a malicious document, a request may be sent to download and run a payload from an uncommon web server name. When malware is already running, it may send requests to an uncommon DNS domain the malware uses for command-and-control communication.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Web activity that occurs rarely in small quantities can trigger this alert. Possible examples are browsing technical support or vendor URLs that are used very sparsely. A user who visits a new and unique web destination may trigger this alert when the activity is sparse. Web applications that generate URLs unique to a transaction may trigger this when they are used sparsely. Web domains can be excluded in cases such as these."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML"],"anomaly_threshold":50,"machine_learning_job_id":"packetbeat_rare_server_domain","type":"machine_learning"},"id":"17e68559-b274-4948-ad0b-f8415bb31126:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/17e68559-b274-4948-ad0b-f8415bb31126:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/17e68559-b274-4948-ad0b-f8415bb31126:100.0.2.json new file mode 100644 index 0000000000000..66b80e17759e4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/17e68559-b274-4948-ad0b-f8415bb31126:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Network Destination Domain Name v100.0.2","rule_id":"17e68559-b274-4948-ad0b-f8415bb31126:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusual network destination domain name. This can be due to initial access, persistence, command-and-control, or exfiltration activity. For example, when a user clicks on a link in a phishing email or opens a malicious document, a request may be sent to download and run a payload from an uncommon web server name. When malware is already running, it may send requests to an uncommon DNS domain the malware uses for command-and-control communication.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Web activity that occurs rarely in small quantities can trigger this alert. Possible examples are browsing technical support or vendor URLs that are used very sparsely. A user who visits a new and unique web destination may trigger this alert when the activity is sparse. Web applications that generate URLs unique to a transaction may trigger this when they are used sparsely. Web domains can be excluded in cases such as these."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML"],"anomaly_threshold":50,"machine_learning_job_id":"packetbeat_rare_server_domain","type":"machine_learning"},"id":"17e68559-b274-4948-ad0b-f8415bb31126:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/184dfe52-2999-42d9-b9d1-d1ca54495a61:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/184dfe52-2999-42d9-b9d1-d1ca54495a61:102.0.0.json new file mode 100644 index 0000000000000..241863f18a8d2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/184dfe52-2999-42d9-b9d1-d1ca54495a61:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Logging Sink Modification v102.0.0","rule_id":"184dfe52-2999-42d9-b9d1-d1ca54495a61:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a modification to a Logging sink in Google Cloud Platform (GCP). Logging compares the log entry to the sinks in that resource. Each sink whose filter matches the log entry writes a copy of the log entry to the sink's export destination. An adversary may update a Logging sink to exfiltrate logs to a different export destination.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Logging sink modifications may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Sink modifications from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/logging/docs/export#how_sinks_work"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.logging.v*.ConfigServiceV*.UpdateSink and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"184dfe52-2999-42d9-b9d1-d1ca54495a61:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/184dfe52-2999-42d9-b9d1-d1ca54495a61:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/184dfe52-2999-42d9-b9d1-d1ca54495a61:102.0.1.json new file mode 100644 index 0000000000000..1fb4dbf489652 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/184dfe52-2999-42d9-b9d1-d1ca54495a61:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Logging Sink Modification v102.0.1","rule_id":"184dfe52-2999-42d9-b9d1-d1ca54495a61:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a modification to a Logging sink in Google Cloud Platform (GCP). Logging compares the log entry to the sinks in that resource. Each sink whose filter matches the log entry writes a copy of the log entry to the sink's export destination. An adversary may update a Logging sink to exfiltrate logs to a different export destination.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Logging sink modifications may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Sink modifications from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/logging/docs/export#how_sinks_work"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.logging.v*.ConfigServiceV*.UpdateSink and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"184dfe52-2999-42d9-b9d1-d1ca54495a61:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/184dfe52-2999-42d9-b9d1-d1ca54495a61:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/184dfe52-2999-42d9-b9d1-d1ca54495a61:102.0.2.json new file mode 100644 index 0000000000000..1e357ade1ad7c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/184dfe52-2999-42d9-b9d1-d1ca54495a61:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Logging Sink Modification v102.0.2","rule_id":"184dfe52-2999-42d9-b9d1-d1ca54495a61:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a modification to a Logging sink in Google Cloud Platform (GCP). Logging compares the log entry to the sinks in that resource. Each sink whose filter matches the log entry writes a copy of the log entry to the sink's export destination. An adversary may update a Logging sink to exfiltrate logs to a different export destination.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Logging sink modifications may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Sink modifications from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/logging/docs/export#how_sinks_work"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.logging.v*.ConfigServiceV*.UpdateSink and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"184dfe52-2999-42d9-b9d1-d1ca54495a61:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/19de8096-e2b0-4bd8-80c9-34a820813fff:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/19de8096-e2b0-4bd8-80c9-34a820813fff:102.0.0.json new file mode 100644 index 0000000000000..3d63542aa8d4b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/19de8096-e2b0-4bd8-80c9-34a820813fff:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Rare AWS Error Code v102.0.0","rule_id":"19de8096-e2b0-4bd8-80c9-34a820813fff:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusual error in a CloudTrail message. These can be byproducts of attempted or successful persistence, privilege escalation, defense evasion, discovery, lateral movement, or collection.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Rare AWS Error Code\n\nCloudTrail logging provides visibility on actions taken within an AWS environment. By monitoring these events and\nunderstanding what is considered normal behavior within an organization, you can spot suspicious or malicious activity\nwhen deviations occur.\n\nThis rule uses a machine learning job to detect an unusual error in a CloudTrail message. This can be byproducts of\nattempted or successful persistence, privilege escalation, defense evasion, discovery, lateral movement, or collection.\n\nDetection alerts from this rule indicate a rare and unusual error code that was associated with the response to an AWS\nAPI command or method call.\n\n#### Possible investigation steps\n\n- Examine the history of the error. If the error only manifested recently, it might be related to recent changes in an\nautomation module or script. You can find the error in the `aws.cloudtrail.error_code field` field.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, or network administrator activity.\n- Examine the request parameters. These may indicate the source of the program or the nature of the task being performed\nwhen the error occurred.\n - Check whether the error is related to unsuccessful attempts to enumerate or access objects, data, or secrets.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Contact the account owner and confirm whether they are aware of this activity if suspicious.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- Examine the history of the command. If the command only manifested recently, it might be part of a new automation\nmodule or script. If it has a consistent cadence (for example, it appears in small numbers on a weekly or monthly cadence),\nit might be part of a housekeeping or maintenance process. You can find the command in the `event.action field` field.\n- The adoption of new services or the addition of new functionality to scripts may generate false positives.\n\n### Related Rules\n\n- Unusual City For an AWS Command - 809b70d3-e2c3-455e-af1b-2626a5a1a276\n- Unusual Country For an AWS Command - dca28dee-c999-400f-b640-50a081cc0fd1\n- Unusual AWS Command for a User - ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1\n- Spike in AWS Error Messages - 78d3d8d9-b476-451d-a9e0-7a5addd70670\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"false_positives":["Rare and unusual errors may indicate an impending service failure state. Rare and unusual user error activity can also be due to manual troubleshooting or reconfiguration attempts by insufficiently privileged users, bugs in cloud automation scripts or workflows, or changes to IAM privileges."],"from":"now-2h","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Cloud","AWS","ML","Investigation Guide"],"anomaly_threshold":50,"machine_learning_job_id":"rare_error_code","type":"machine_learning","related_integrations":[],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"19de8096-e2b0-4bd8-80c9-34a820813fff:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/19de8096-e2b0-4bd8-80c9-34a820813fff:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/19de8096-e2b0-4bd8-80c9-34a820813fff:102.0.1.json new file mode 100644 index 0000000000000..8c84a71812f20 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/19de8096-e2b0-4bd8-80c9-34a820813fff:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Rare AWS Error Code v102.0.1","rule_id":"19de8096-e2b0-4bd8-80c9-34a820813fff:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusual error in a CloudTrail message. These can be byproducts of attempted or successful persistence, privilege escalation, defense evasion, discovery, lateral movement, or collection.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Rare AWS Error Code\n\nCloudTrail logging provides visibility on actions taken within an AWS environment. By monitoring these events and\nunderstanding what is considered normal behavior within an organization, you can spot suspicious or malicious activity\nwhen deviations occur.\n\nThis rule uses a machine learning job to detect an unusual error in a CloudTrail message. This can be byproducts of\nattempted or successful persistence, privilege escalation, defense evasion, discovery, lateral movement, or collection.\n\nDetection alerts from this rule indicate a rare and unusual error code that was associated with the response to an AWS\nAPI command or method call.\n\n#### Possible investigation steps\n\n- Examine the history of the error. If the error only manifested recently, it might be related to recent changes in an\nautomation module or script. You can find the error in the `aws.cloudtrail.error_code field` field.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, or network administrator activity.\n- Examine the request parameters. These may indicate the source of the program or the nature of the task being performed\nwhen the error occurred.\n - Check whether the error is related to unsuccessful attempts to enumerate or access objects, data, or secrets.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Contact the account owner and confirm whether they are aware of this activity if suspicious.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- Examine the history of the command. If the command only manifested recently, it might be part of a new automation\nmodule or script. If it has a consistent cadence (for example, it appears in small numbers on a weekly or monthly cadence),\nit might be part of a housekeeping or maintenance process. You can find the command in the `event.action field` field.\n- The adoption of new services or the addition of new functionality to scripts may generate false positives.\n\n### Related Rules\n\n- Unusual City For an AWS Command - 809b70d3-e2c3-455e-af1b-2626a5a1a276\n- Unusual Country For an AWS Command - dca28dee-c999-400f-b640-50a081cc0fd1\n- Unusual AWS Command for a User - ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1\n- Spike in AWS Error Messages - 78d3d8d9-b476-451d-a9e0-7a5addd70670\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"false_positives":["Rare and unusual errors may indicate an impending service failure state. Rare and unusual user error activity can also be due to manual troubleshooting or reconfiguration attempts by insufficiently privileged users, bugs in cloud automation scripts or workflows, or changes to IAM privileges."],"from":"now-2h","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Cloud","AWS","ML","Investigation Guide"],"anomaly_threshold":50,"machine_learning_job_id":"rare_error_code","type":"machine_learning","related_integrations":[],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"19de8096-e2b0-4bd8-80c9-34a820813fff:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/19de8096-e2b0-4bd8-80c9-34a820813fff:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/19de8096-e2b0-4bd8-80c9-34a820813fff:102.0.2.json new file mode 100644 index 0000000000000..7f209f2c953da --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/19de8096-e2b0-4bd8-80c9-34a820813fff:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Rare AWS Error Code v102.0.2","rule_id":"19de8096-e2b0-4bd8-80c9-34a820813fff:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusual error in a CloudTrail message. These can be byproducts of attempted or successful persistence, privilege escalation, defense evasion, discovery, lateral movement, or collection.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Rare AWS Error Code\n\nCloudTrail logging provides visibility on actions taken within an AWS environment. By monitoring these events and\nunderstanding what is considered normal behavior within an organization, you can spot suspicious or malicious activity\nwhen deviations occur.\n\nThis rule uses a machine learning job to detect an unusual error in a CloudTrail message. This can be byproducts of\nattempted or successful persistence, privilege escalation, defense evasion, discovery, lateral movement, or collection.\n\nDetection alerts from this rule indicate a rare and unusual error code that was associated with the response to an AWS\nAPI command or method call.\n\n#### Possible investigation steps\n\n- Examine the history of the error. If the error only manifested recently, it might be related to recent changes in an\nautomation module or script. You can find the error in the `aws.cloudtrail.error_code field` field.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, or network administrator activity.\n- Examine the request parameters. These may indicate the source of the program or the nature of the task being performed\nwhen the error occurred.\n - Check whether the error is related to unsuccessful attempts to enumerate or access objects, data, or secrets.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Contact the account owner and confirm whether they are aware of this activity if suspicious.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- Examine the history of the command. If the command only manifested recently, it might be part of a new automation\nmodule or script. If it has a consistent cadence (for example, it appears in small numbers on a weekly or monthly cadence),\nit might be part of a housekeeping or maintenance process. You can find the command in the `event.action field` field.\n- The adoption of new services or the addition of new functionality to scripts may generate false positives.\n\n### Related Rules\n\n- Unusual City For an AWS Command - 809b70d3-e2c3-455e-af1b-2626a5a1a276\n- Unusual Country For an AWS Command - dca28dee-c999-400f-b640-50a081cc0fd1\n- Unusual AWS Command for a User - ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1\n- Spike in AWS Error Messages - 78d3d8d9-b476-451d-a9e0-7a5addd70670\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"false_positives":["Rare and unusual errors may indicate an impending service failure state. Rare and unusual user error activity can also be due to manual troubleshooting or reconfiguration attempts by insufficiently privileged users, bugs in cloud automation scripts or workflows, or changes to IAM privileges."],"from":"now-2h","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Cloud","AWS","ML","Investigation Guide"],"anomaly_threshold":50,"machine_learning_job_id":"rare_error_code","type":"machine_learning","related_integrations":[],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"19de8096-e2b0-4bd8-80c9-34a820813fff:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1a36cace-11a7-43a8-9a10-b497c5a02cd3:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1a36cace-11a7-43a8-9a10-b497c5a02cd3:101.0.0.json new file mode 100644 index 0000000000000..5fb144f2e970d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1a36cace-11a7-43a8-9a10-b497c5a02cd3:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Application Credential Modification v101.0.0","rule_id":"1a36cace-11a7-43a8-9a10-b497c5a02cd3:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new credential is added to an application in Azure. An application may use a certificate or secret string to prove its identity when requesting a token. Multiple certificates and secrets can be added for an application and an adversary may abuse this by creating an additional authentication method to evade defenses or persist in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Application credential additions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Application credential additions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://msrc-blog.microsoft.com/2020/12/13/customer-guidance-on-recent-nation-state-cyber-attacks/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.001","name":"Application Access Token","reference":"https://attack.mitre.org/techniques/T1550/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Update application - Certificates and secrets management\" and event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"1a36cace-11a7-43a8-9a10-b497c5a02cd3:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1a36cace-11a7-43a8-9a10-b497c5a02cd3:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1a36cace-11a7-43a8-9a10-b497c5a02cd3:101.0.1.json new file mode 100644 index 0000000000000..9037320b7b7d2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1a36cace-11a7-43a8-9a10-b497c5a02cd3:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Application Credential Modification v101.0.1","rule_id":"1a36cace-11a7-43a8-9a10-b497c5a02cd3:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new credential is added to an application in Azure. An application may use a certificate or secret string to prove its identity when requesting a token. Multiple certificates and secrets can be added for an application and an adversary may abuse this by creating an additional authentication method to evade defenses or persist in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Application credential additions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Application credential additions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://msrc-blog.microsoft.com/2020/12/13/customer-guidance-on-recent-nation-state-cyber-attacks/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.001","name":"Application Access Token","reference":"https://attack.mitre.org/techniques/T1550/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Update application - Certificates and secrets management\" and event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"1a36cace-11a7-43a8-9a10-b497c5a02cd3:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1a36cace-11a7-43a8-9a10-b497c5a02cd3:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1a36cace-11a7-43a8-9a10-b497c5a02cd3:101.0.2.json new file mode 100644 index 0000000000000..d293c42c5dbd1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1a36cace-11a7-43a8-9a10-b497c5a02cd3:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Application Credential Modification v101.0.2","rule_id":"1a36cace-11a7-43a8-9a10-b497c5a02cd3:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new credential is added to an application in Azure. An application may use a certificate or secret string to prove its identity when requesting a token. Multiple certificates and secrets can be added for an application and an adversary may abuse this by creating an additional authentication method to evade defenses or persist in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Application credential additions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Application credential additions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://msrc-blog.microsoft.com/2020/12/13/customer-guidance-on-recent-nation-state-cyber-attacks/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.001","name":"Application Access Token","reference":"https://attack.mitre.org/techniques/T1550/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Update application - Certificates and secrets management\" and event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"1a36cace-11a7-43a8-9a10-b497c5a02cd3:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1a6075b0-7479-450e-8fe7-b8b8438ac570:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1a6075b0-7479-450e-8fe7-b8b8438ac570:102.0.0.json new file mode 100644 index 0000000000000..5ebdb0fe0fe74 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1a6075b0-7479-450e-8fe7-b8b8438ac570:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Execution of COM object via Xwizard v102.0.0","rule_id":"1a6075b0-7479-450e-8fe7-b8b8438ac570:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Windows Component Object Model (COM) is an inter-process communication (IPC) component of the native Windows application programming interface (API) that enables interaction between software objects or executable code. Xwizard can be used to run a COM object created in registry to evade defensive counter measures.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://lolbas-project.github.io/lolbas/Binaries/Xwizard/","http://www.hexacorn.com/blog/2017/07/31/the-wizard-of-x-oppa-plugx-style/"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1559","name":"Inter-Process Communication","reference":"https://attack.mitre.org/techniques/T1559/","subtechnique":[{"id":"T1559.001","name":"Component Object Model","reference":"https://attack.mitre.org/techniques/T1559/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name : \"xwizard.exe\" and\n (\n (process.args : \"RunWizard\" and process.args : \"{*}\") or\n (process.executable != null and\n not process.executable : (\"C:\\\\Windows\\\\SysWOW64\\\\xwizard.exe\", \"C:\\\\Windows\\\\System32\\\\xwizard.exe\")\n )\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"1a6075b0-7479-450e-8fe7-b8b8438ac570:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1a6075b0-7479-450e-8fe7-b8b8438ac570:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1a6075b0-7479-450e-8fe7-b8b8438ac570:102.0.1.json new file mode 100644 index 0000000000000..77d65f03204d2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1a6075b0-7479-450e-8fe7-b8b8438ac570:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Execution of COM object via Xwizard v102.0.1","rule_id":"1a6075b0-7479-450e-8fe7-b8b8438ac570:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Windows Component Object Model (COM) is an inter-process communication (IPC) component of the native Windows application programming interface (API) that enables interaction between software objects or executable code. Xwizard can be used to run a COM object created in registry to evade defensive counter measures.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://lolbas-project.github.io/lolbas/Binaries/Xwizard/","http://www.hexacorn.com/blog/2017/07/31/the-wizard-of-x-oppa-plugx-style/"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1559","name":"Inter-Process Communication","reference":"https://attack.mitre.org/techniques/T1559/","subtechnique":[{"id":"T1559.001","name":"Component Object Model","reference":"https://attack.mitre.org/techniques/T1559/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name : \"xwizard.exe\" and\n (\n (process.args : \"RunWizard\" and process.args : \"{*}\") or\n (process.executable != null and\n not process.executable : (\"C:\\\\Windows\\\\SysWOW64\\\\xwizard.exe\", \"C:\\\\Windows\\\\System32\\\\xwizard.exe\")\n )\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"1a6075b0-7479-450e-8fe7-b8b8438ac570:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1a6075b0-7479-450e-8fe7-b8b8438ac570:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1a6075b0-7479-450e-8fe7-b8b8438ac570:102.0.2.json new file mode 100644 index 0000000000000..233cdfa7d3a62 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1a6075b0-7479-450e-8fe7-b8b8438ac570:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Execution of COM object via Xwizard v102.0.2","rule_id":"1a6075b0-7479-450e-8fe7-b8b8438ac570:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Windows Component Object Model (COM) is an inter-process communication (IPC) component of the native Windows application programming interface (API) that enables interaction between software objects or executable code. Xwizard can be used to run a COM object created in registry to evade defensive counter measures.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://lolbas-project.github.io/lolbas/Binaries/Xwizard/","http://www.hexacorn.com/blog/2017/07/31/the-wizard-of-x-oppa-plugx-style/"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1559","name":"Inter-Process Communication","reference":"https://attack.mitre.org/techniques/T1559/","subtechnique":[{"id":"T1559.001","name":"Component Object Model","reference":"https://attack.mitre.org/techniques/T1559/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name : \"xwizard.exe\" and\n (\n (process.args : \"RunWizard\" and process.args : \"{*}\") or\n (process.executable != null and\n not process.executable : (\"C:\\\\Windows\\\\SysWOW64\\\\xwizard.exe\", \"C:\\\\Windows\\\\System32\\\\xwizard.exe\")\n )\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"1a6075b0-7479-450e-8fe7-b8b8438ac570:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1aa8fa52-44a7-4dae-b058-f3333b91c8d7:103.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1aa8fa52-44a7-4dae-b058-f3333b91c8d7:103.0.0.json new file mode 100644 index 0000000000000..9964a3204adf0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1aa8fa52-44a7-4dae-b058-f3333b91c8d7:103.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS CloudTrail Log Suspended v103.0.0","rule_id":"1aa8fa52-44a7-4dae-b058-f3333b91c8d7:103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspending the recording of AWS API calls and log file delivery for the specified trail. An adversary may suspend trails in an attempt to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudTrail Log Suspended\n\nAmazon CloudTrail is a service that enables governance, compliance, operational auditing, and risk auditing of your\nAmazon Web Services account. With CloudTrail, you can log, continuously monitor, and retain account activity related to\nactions across your Amazon Web Services infrastructure. CloudTrail provides event history of your Amazon Web Services\naccount activity, including actions taken through the Amazon Management Console, Amazon SDKs, command line tools, and\nother Amazon Web Services services. This event history simplifies security analysis, resource change tracking, and\ntroubleshooting.\n\nThis rule identifies the suspension of an AWS log trail using the API `StopLogging` action. Attackers can do this to\ncover their tracks and impact security monitoring that relies on this source.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Investigate the deleted log trail's criticality and whether the responsible team is aware of the deletion.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Suspending the recording of a trail may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Trail suspensions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_StopLogging.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudtrail/stop-logging.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:StopLogging and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"1aa8fa52-44a7-4dae-b058-f3333b91c8d7:103.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1aa8fa52-44a7-4dae-b058-f3333b91c8d7:103.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1aa8fa52-44a7-4dae-b058-f3333b91c8d7:103.0.1.json new file mode 100644 index 0000000000000..4bf869866629c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1aa8fa52-44a7-4dae-b058-f3333b91c8d7:103.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS CloudTrail Log Suspended v103.0.1","rule_id":"1aa8fa52-44a7-4dae-b058-f3333b91c8d7:103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspending the recording of AWS API calls and log file delivery for the specified trail. An adversary may suspend trails in an attempt to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudTrail Log Suspended\n\nAmazon CloudTrail is a service that enables governance, compliance, operational auditing, and risk auditing of your\nAmazon Web Services account. With CloudTrail, you can log, continuously monitor, and retain account activity related to\nactions across your Amazon Web Services infrastructure. CloudTrail provides event history of your Amazon Web Services\naccount activity, including actions taken through the Amazon Management Console, Amazon SDKs, command line tools, and\nother Amazon Web Services services. This event history simplifies security analysis, resource change tracking, and\ntroubleshooting.\n\nThis rule identifies the suspension of an AWS log trail using the API `StopLogging` action. Attackers can do this to\ncover their tracks and impact security monitoring that relies on this source.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Investigate the deleted log trail's criticality and whether the responsible team is aware of the deletion.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Suspending the recording of a trail may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Trail suspensions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_StopLogging.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudtrail/stop-logging.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:StopLogging and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"1aa8fa52-44a7-4dae-b058-f3333b91c8d7:103.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1aa8fa52-44a7-4dae-b058-f3333b91c8d7:103.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1aa8fa52-44a7-4dae-b058-f3333b91c8d7:103.0.2.json new file mode 100644 index 0000000000000..0b6d801712508 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1aa8fa52-44a7-4dae-b058-f3333b91c8d7:103.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS CloudTrail Log Suspended v103.0.2","rule_id":"1aa8fa52-44a7-4dae-b058-f3333b91c8d7:103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspending the recording of AWS API calls and log file delivery for the specified trail. An adversary may suspend trails in an attempt to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudTrail Log Suspended\n\nAmazon CloudTrail is a service that enables governance, compliance, operational auditing, and risk auditing of your\nAmazon Web Services account. With CloudTrail, you can log, continuously monitor, and retain account activity related to\nactions across your Amazon Web Services infrastructure. CloudTrail provides event history of your Amazon Web Services\naccount activity, including actions taken through the Amazon Management Console, Amazon SDKs, command line tools, and\nother Amazon Web Services services. This event history simplifies security analysis, resource change tracking, and\ntroubleshooting.\n\nThis rule identifies the suspension of an AWS log trail using the API `StopLogging` action. Attackers can do this to\ncover their tracks and impact security monitoring that relies on this source.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Investigate the deleted log trail's criticality and whether the responsible team is aware of the deletion.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Suspending the recording of a trail may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Trail suspensions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_StopLogging.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudtrail/stop-logging.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:StopLogging and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"1aa8fa52-44a7-4dae-b058-f3333b91c8d7:103.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1aa9181a-492b-4c01-8b16-fa0735786b2b:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1aa9181a-492b-4c01-8b16-fa0735786b2b:102.0.0.json new file mode 100644 index 0000000000000..0d59ec55368ae --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1aa9181a-492b-4c01-8b16-fa0735786b2b:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"User Account Creation v102.0.0","rule_id":"1aa9181a-492b-4c01-8b16-fa0735786b2b:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to create new users. This is sometimes done by attackers to increase access or establish persistence on a system or domain.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating User Account Creation\n\nAttackers may create new accounts (both local and domain) to maintain access to victim systems.\n\nThis rule identifies the usage of `net.exe` to create new accounts.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Identify if the account was added to privileged groups or assigned special privileges after creation.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- Account creation is a common administrative task, so there is a high chance of the activity being legitimate. Before\ninvestigating further, verify that this activity is not benign.\n\n### Related rules\n\n- Creation of a Hidden Local User Account - 2edc8076-291e-41e9-81e4-e3fcbc97ae5e\n- Windows User Account Creation - 38e17753-f581-4644-84da-0d60a8318694\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Delete the created account.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/","subtechnique":[{"id":"T1136.001","name":"Local Account","reference":"https://attack.mitre.org/techniques/T1136/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"net.exe\", \"net1.exe\") and\n not process.parent.name : \"net.exe\" and\n (process.args : \"user\" and process.args : (\"/ad\", \"/add\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"1aa9181a-492b-4c01-8b16-fa0735786b2b:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1aa9181a-492b-4c01-8b16-fa0735786b2b:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1aa9181a-492b-4c01-8b16-fa0735786b2b:102.0.1.json new file mode 100644 index 0000000000000..0e46b2a85608f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1aa9181a-492b-4c01-8b16-fa0735786b2b:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"User Account Creation v102.0.1","rule_id":"1aa9181a-492b-4c01-8b16-fa0735786b2b:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to create new users. This is sometimes done by attackers to increase access or establish persistence on a system or domain.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating User Account Creation\n\nAttackers may create new accounts (both local and domain) to maintain access to victim systems.\n\nThis rule identifies the usage of `net.exe` to create new accounts.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Identify if the account was added to privileged groups or assigned special privileges after creation.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- Account creation is a common administrative task, so there is a high chance of the activity being legitimate. Before\ninvestigating further, verify that this activity is not benign.\n\n### Related rules\n\n- Creation of a Hidden Local User Account - 2edc8076-291e-41e9-81e4-e3fcbc97ae5e\n- Windows User Account Creation - 38e17753-f581-4644-84da-0d60a8318694\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Delete the created account.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/","subtechnique":[{"id":"T1136.001","name":"Local Account","reference":"https://attack.mitre.org/techniques/T1136/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"net.exe\", \"net1.exe\") and\n not process.parent.name : \"net.exe\" and\n (process.args : \"user\" and process.args : (\"/ad\", \"/add\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"1aa9181a-492b-4c01-8b16-fa0735786b2b:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1aa9181a-492b-4c01-8b16-fa0735786b2b:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1aa9181a-492b-4c01-8b16-fa0735786b2b:102.0.2.json new file mode 100644 index 0000000000000..26d50faf6c3c8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1aa9181a-492b-4c01-8b16-fa0735786b2b:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"User Account Creation v102.0.2","rule_id":"1aa9181a-492b-4c01-8b16-fa0735786b2b:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to create new users. This is sometimes done by attackers to increase access or establish persistence on a system or domain.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating User Account Creation\n\nAttackers may create new accounts (both local and domain) to maintain access to victim systems.\n\nThis rule identifies the usage of `net.exe` to create new accounts.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Identify if the account was added to privileged groups or assigned special privileges after creation.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- Account creation is a common administrative task, so there is a high chance of the activity being legitimate. Before\ninvestigating further, verify that this activity is not benign.\n\n### Related rules\n\n- Creation of a Hidden Local User Account - 2edc8076-291e-41e9-81e4-e3fcbc97ae5e\n- Windows User Account Creation - 38e17753-f581-4644-84da-0d60a8318694\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Delete the created account.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/","subtechnique":[{"id":"T1136.001","name":"Local Account","reference":"https://attack.mitre.org/techniques/T1136/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"net.exe\", \"net1.exe\") and\n not process.parent.name : \"net.exe\" and\n (process.args : \"user\" and process.args : (\"/ad\", \"/add\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"1aa9181a-492b-4c01-8b16-fa0735786b2b:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1b21abcc-4d9f-4b08-a7f5-316f5f94b973:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1b21abcc-4d9f-4b08-a7f5-316f5f94b973:100.0.0.json new file mode 100644 index 0000000000000..56d5742ea2160 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1b21abcc-4d9f-4b08-a7f5-316f5f94b973:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Connection to Internal Network via Telnet v100.0.0","rule_id":"1b21abcc-4d9f-4b08-a7f5-316f5f94b973:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Telnet provides a command line interface for communication with a remote device or server. This rule identifies Telnet network connections to non-publicly routable IP addresses.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Telnet can be used for both benign or malicious purposes. Telnet is included by default in some Linux distributions, so its presence is not inherently suspicious. The use of Telnet to manage devices remotely has declined in recent years in favor of more secure protocols such as SSH. Telnet usage by non-automated tools or frameworks may be suspicious."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Linux","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name == \"telnet\" and event.type == \"start\"]\n [network where process.name == \"telnet\" and\n cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\",\n \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\",\n \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"1b21abcc-4d9f-4b08-a7f5-316f5f94b973:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1b21abcc-4d9f-4b08-a7f5-316f5f94b973:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1b21abcc-4d9f-4b08-a7f5-316f5f94b973:100.0.1.json new file mode 100644 index 0000000000000..c22a03fc3d302 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1b21abcc-4d9f-4b08-a7f5-316f5f94b973:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Connection to Internal Network via Telnet v100.0.1","rule_id":"1b21abcc-4d9f-4b08-a7f5-316f5f94b973:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Telnet provides a command line interface for communication with a remote device or server. This rule identifies Telnet network connections to non-publicly routable IP addresses.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Telnet can be used for both benign or malicious purposes. Telnet is included by default in some Linux distributions, so its presence is not inherently suspicious. The use of Telnet to manage devices remotely has declined in recent years in favor of more secure protocols such as SSH. Telnet usage by non-automated tools or frameworks may be suspicious."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Linux","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name == \"telnet\" and event.type == \"start\"]\n [network where process.name == \"telnet\" and\n cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\",\n \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\",\n \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"1b21abcc-4d9f-4b08-a7f5-316f5f94b973:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1b21abcc-4d9f-4b08-a7f5-316f5f94b973:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1b21abcc-4d9f-4b08-a7f5-316f5f94b973:100.0.2.json new file mode 100644 index 0000000000000..d3a77632b521c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1b21abcc-4d9f-4b08-a7f5-316f5f94b973:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Connection to Internal Network via Telnet v100.0.2","rule_id":"1b21abcc-4d9f-4b08-a7f5-316f5f94b973:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Telnet provides a command line interface for communication with a remote device or server. This rule identifies Telnet network connections to non-publicly routable IP addresses.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Telnet can be used for both benign or malicious purposes. Telnet is included by default in some Linux distributions, so its presence is not inherently suspicious. The use of Telnet to manage devices remotely has declined in recent years in favor of more secure protocols such as SSH. Telnet usage by non-automated tools or frameworks may be suspicious."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Linux","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name == \"telnet\" and event.type == \"start\"]\n [network where process.name == \"telnet\" and\n cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\",\n \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\",\n \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"1b21abcc-4d9f-4b08-a7f5-316f5f94b973:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1ba5160d-f5a2-4624-b0ff-6a1dc55d2516:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1ba5160d-f5a2-4624-b0ff-6a1dc55d2516:101.0.0.json new file mode 100644 index 0000000000000..3f97bd80c0adc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1ba5160d-f5a2-4624-b0ff-6a1dc55d2516:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS ElastiCache Security Group Modified or Deleted v101.0.0","rule_id":"1ba5160d-f5a2-4624-b0ff-6a1dc55d2516:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an ElastiCache security group has been modified or deleted.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["A ElastiCache security group deletion may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Security Group deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/Welcome.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:elasticache.amazonaws.com and event.action:(\"Delete Cache Security Group\" or\n\"Authorize Cache Security Group Ingress\" or \"Revoke Cache Security Group Ingress\" or \"AuthorizeCacheSecurityGroupEgress\" or\n\"RevokeCacheSecurityGroupEgress\") and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"1ba5160d-f5a2-4624-b0ff-6a1dc55d2516:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1ba5160d-f5a2-4624-b0ff-6a1dc55d2516:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1ba5160d-f5a2-4624-b0ff-6a1dc55d2516:101.0.1.json new file mode 100644 index 0000000000000..10c54dba36986 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1ba5160d-f5a2-4624-b0ff-6a1dc55d2516:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS ElastiCache Security Group Modified or Deleted v101.0.1","rule_id":"1ba5160d-f5a2-4624-b0ff-6a1dc55d2516:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an ElastiCache security group has been modified or deleted.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["A ElastiCache security group deletion may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Security Group deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/Welcome.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:elasticache.amazonaws.com and event.action:(\"Delete Cache Security Group\" or\n\"Authorize Cache Security Group Ingress\" or \"Revoke Cache Security Group Ingress\" or \"AuthorizeCacheSecurityGroupEgress\" or\n\"RevokeCacheSecurityGroupEgress\") and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"1ba5160d-f5a2-4624-b0ff-6a1dc55d2516:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1ba5160d-f5a2-4624-b0ff-6a1dc55d2516:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1ba5160d-f5a2-4624-b0ff-6a1dc55d2516:101.0.2.json new file mode 100644 index 0000000000000..e3e83dc001e14 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1ba5160d-f5a2-4624-b0ff-6a1dc55d2516:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS ElastiCache Security Group Modified or Deleted v101.0.2","rule_id":"1ba5160d-f5a2-4624-b0ff-6a1dc55d2516:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an ElastiCache security group has been modified or deleted.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["A ElastiCache security group deletion may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Security Group deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/Welcome.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:elasticache.amazonaws.com and event.action:(\"Delete Cache Security Group\" or\n\"Authorize Cache Security Group Ingress\" or \"Revoke Cache Security Group Ingress\" or \"AuthorizeCacheSecurityGroupEgress\" or\n\"RevokeCacheSecurityGroupEgress\") and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"1ba5160d-f5a2-4624-b0ff-6a1dc55d2516:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1c27fa22-7727-4dd3-81c0-de6da5555feb:1.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1c27fa22-7727-4dd3-81c0-de6da5555feb:1.0.0.json new file mode 100644 index 0000000000000..683af1a8a7eea --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1c27fa22-7727-4dd3-81c0-de6da5555feb:1.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Linux SSH Brute Force Detected v1.0.0","rule_id":"1c27fa22-7727-4dd3-81c0-de6da5555feb:1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple consecutive login failures targeting an user account from the same source address and within a short time interval. Adversaries will often brute force login attempts across multiple users with a common or known password, in an attempt to gain access to accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential SSH Brute Force Attack\n\nThe rule identifies consecutive SSH login failures targeting a user account from the same source IP address to the\nsame target host indicating brute force login attempts.\n\n#### Possible investigation steps\n\n- Investigate the login failure user name(s).\n- Investigate the source IP address of the failed ssh login attempt(s).\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Infrastructure or availability issue.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified.\n- Reset passwords for these accounts and other potentially compromised credentials.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip, user.name with maxspan=10s\n [authentication where event.action in (\"ssh_login\", \"user_login\") and\n event.outcome == \"failure\" and source.ip != null and source.ip != \"0.0.0.0\" and source.ip != \"::\" ] with runs=10\n","type":"eql","index":["auditbeat-*","logs-system.auth-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"1c27fa22-7727-4dd3-81c0-de6da5555feb:1.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1c27fa22-7727-4dd3-81c0-de6da5555feb:1.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1c27fa22-7727-4dd3-81c0-de6da5555feb:1.0.1.json new file mode 100644 index 0000000000000..8dabfc9c5a11b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1c27fa22-7727-4dd3-81c0-de6da5555feb:1.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Linux SSH Brute Force Detected v1.0.1","rule_id":"1c27fa22-7727-4dd3-81c0-de6da5555feb:1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple consecutive login failures targeting an user account from the same source address and within a short time interval. Adversaries will often brute force login attempts across multiple users with a common or known password, in an attempt to gain access to accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential SSH Brute Force Attack\n\nThe rule identifies consecutive SSH login failures targeting a user account from the same source IP address to the\nsame target host indicating brute force login attempts.\n\n#### Possible investigation steps\n\n- Investigate the login failure user name(s).\n- Investigate the source IP address of the failed ssh login attempt(s).\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Infrastructure or availability issue.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified.\n- Reset passwords for these accounts and other potentially compromised credentials.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip, user.name with maxspan=10s\n [authentication where event.action in (\"ssh_login\", \"user_login\") and\n event.outcome == \"failure\" and source.ip != null and source.ip != \"0.0.0.0\" and source.ip != \"::\" ] with runs=10\n","type":"eql","index":["auditbeat-*","logs-system.auth-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"1c27fa22-7727-4dd3-81c0-de6da5555feb:1.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1c27fa22-7727-4dd3-81c0-de6da5555feb:1.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1c27fa22-7727-4dd3-81c0-de6da5555feb:1.0.2.json new file mode 100644 index 0000000000000..cef259746586e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1c27fa22-7727-4dd3-81c0-de6da5555feb:1.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Linux SSH Brute Force Detected v1.0.2","rule_id":"1c27fa22-7727-4dd3-81c0-de6da5555feb:1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple consecutive login failures targeting an user account from the same source address and within a short time interval. Adversaries will often brute force login attempts across multiple users with a common or known password, in an attempt to gain access to accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential SSH Brute Force Attack\n\nThe rule identifies consecutive SSH login failures targeting a user account from the same source IP address to the\nsame target host indicating brute force login attempts.\n\n#### Possible investigation steps\n\n- Investigate the login failure user name(s).\n- Investigate the source IP address of the failed ssh login attempt(s).\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Infrastructure or availability issue.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified.\n- Reset passwords for these accounts and other potentially compromised credentials.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip, user.name with maxspan=10s\n [authentication where event.action in (\"ssh_login\", \"user_login\") and\n event.outcome == \"failure\" and source.ip != null and source.ip != \"0.0.0.0\" and source.ip != \"::\" ] with runs=10\n","type":"eql","index":["auditbeat-*","logs-system.auth-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"1c27fa22-7727-4dd3-81c0-de6da5555feb:1.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1c6a8c7a-5cb6-4a82-ba27-d5a5b8a40a38:103.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1c6a8c7a-5cb6-4a82-ba27-d5a5b8a40a38:103.0.0.json new file mode 100644 index 0000000000000..080c35e9e2eaa --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1c6a8c7a-5cb6-4a82-ba27-d5a5b8a40a38:103.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Possible Consent Grant Attack via Azure-Registered Application v103.0.0","rule_id":"1c6a8c7a-5cb6-4a82-ba27-d5a5b8a40a38:103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a user grants permissions to an Azure-registered application or when an administrator grants tenant-wide permissions to an application. An adversary may create an Azure-registered application that requests access to data such as contact information, email, or documents.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Possible Consent Grant Attack via Azure-Registered Application\n\nIn an illicit consent grant attack, the attacker creates an Azure-registered application that requests access to data\nsuch as contact information, email, or documents. The attacker then tricks an end user into granting that application\nconsent to access their data either through a phishing attack, or by injecting illicit code into a trusted website.\nAfter the illicit application has been granted consent, it has account-level access to data without the need for an\norganizational account. Normal remediation steps like resetting passwords for breached accounts or requiring multi-factor\nauthentication (MFA) on accounts are not effective against this type of attack, since these are third-party applications\nand are external to the organization.\n\nOfficial Microsoft guidance for detecting and remediating this attack can be found [here](https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/detect-and-remediate-illicit-consent-grants).\n\n#### Possible investigation steps\n\n- From the Azure AD portal, Review the application that was granted permissions:\n - Click on the `Review permissions` button on the `Permissions` blade of the application.\n - An app should require only permissions related to the app's purpose. If that's not the case, the app might be risky.\n - Apps that require high privileges or admin consent are more likely to be risky.\n- Investigate the app and the publisher. The following characteristics can indicate suspicious apps:\n - A low number of downloads.\n - Low rating or score or bad comments.\n - Apps with a suspicious publisher or website.\n - Apps whose last update is not recent. This might indicate an app that is no longer supported.\n- Export and examine the [Oauth app auditing](https://docs.microsoft.com/en-us/defender-cloud-apps/manage-app-permissions#oauth-app-auditing) to identify users affected.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Malicious applications abuse the same workflow used by legitimate apps.\nThus, analysts must review each app consent to ensure that only desired apps are granted access.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Disable the malicious application to stop user access and the application access to your data.\n- Revoke the application Oauth consent grant. The `Remove-AzureADOAuth2PermissionGrant` cmdlet can be used to complete\nthis task.\n- Remove the service principal application role assignment. The `Remove-AzureADServiceAppRoleAssignment` cmdlet can be\nused to complete this task.\n- Revoke the refresh token for all users assigned to the application. Azure provides a [playbook](https://github.com/Azure/Azure-Sentinel/tree/master/Playbooks/Revoke-AADSignInSessions) for this task.\n- [Report](https://docs.microsoft.com/en-us/defender-cloud-apps/manage-app-permissions#send-feedback) the application as malicious to Microsoft.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Investigate the potential for data compromise from the user's email and file sharing services. Activate your Data Loss\nincident response playbook.\n- Disable the permission for a user to set consent permission on their behalf.\n - Enable the [Admin consent request](https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/configure-admin-consent-workflow) feature.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/detect-and-remediate-illicit-consent-grants?view=o365-worldwide","https://www.cloud-architekt.net/detection-and-mitigation-consent-grant-attacks-azuread/","https://docs.microsoft.com/en-us/defender-cloud-apps/investigate-risky-oauth#how-to-detect-risky-oauth-apps"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1528","name":"Steal Application Access Token","reference":"https://attack.mitre.org/techniques/T1528/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:(azure.activitylogs or azure.auditlogs or o365.audit) and\n (\n azure.activitylogs.operation_name:\"Consent to application\" or\n azure.auditlogs.operation_name:\"Consent to application\" or\n o365.audit.Operation:\"Consent to application.\"\n ) and\n event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"},{"package":"azure","version":"^1.0.0"},{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":false,"name":"o365.audit.Operation","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"1c6a8c7a-5cb6-4a82-ba27-d5a5b8a40a38:103.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1c6a8c7a-5cb6-4a82-ba27-d5a5b8a40a38:103.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1c6a8c7a-5cb6-4a82-ba27-d5a5b8a40a38:103.0.1.json new file mode 100644 index 0000000000000..3df408c639f6b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1c6a8c7a-5cb6-4a82-ba27-d5a5b8a40a38:103.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Possible Consent Grant Attack via Azure-Registered Application v103.0.1","rule_id":"1c6a8c7a-5cb6-4a82-ba27-d5a5b8a40a38:103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a user grants permissions to an Azure-registered application or when an administrator grants tenant-wide permissions to an application. An adversary may create an Azure-registered application that requests access to data such as contact information, email, or documents.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Possible Consent Grant Attack via Azure-Registered Application\n\nIn an illicit consent grant attack, the attacker creates an Azure-registered application that requests access to data\nsuch as contact information, email, or documents. The attacker then tricks an end user into granting that application\nconsent to access their data either through a phishing attack, or by injecting illicit code into a trusted website.\nAfter the illicit application has been granted consent, it has account-level access to data without the need for an\norganizational account. Normal remediation steps like resetting passwords for breached accounts or requiring multi-factor\nauthentication (MFA) on accounts are not effective against this type of attack, since these are third-party applications\nand are external to the organization.\n\nOfficial Microsoft guidance for detecting and remediating this attack can be found [here](https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/detect-and-remediate-illicit-consent-grants).\n\n#### Possible investigation steps\n\n- From the Azure AD portal, Review the application that was granted permissions:\n - Click on the `Review permissions` button on the `Permissions` blade of the application.\n - An app should require only permissions related to the app's purpose. If that's not the case, the app might be risky.\n - Apps that require high privileges or admin consent are more likely to be risky.\n- Investigate the app and the publisher. The following characteristics can indicate suspicious apps:\n - A low number of downloads.\n - Low rating or score or bad comments.\n - Apps with a suspicious publisher or website.\n - Apps whose last update is not recent. This might indicate an app that is no longer supported.\n- Export and examine the [Oauth app auditing](https://docs.microsoft.com/en-us/defender-cloud-apps/manage-app-permissions#oauth-app-auditing) to identify users affected.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Malicious applications abuse the same workflow used by legitimate apps.\nThus, analysts must review each app consent to ensure that only desired apps are granted access.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Disable the malicious application to stop user access and the application access to your data.\n- Revoke the application Oauth consent grant. The `Remove-AzureADOAuth2PermissionGrant` cmdlet can be used to complete\nthis task.\n- Remove the service principal application role assignment. The `Remove-AzureADServiceAppRoleAssignment` cmdlet can be\nused to complete this task.\n- Revoke the refresh token for all users assigned to the application. Azure provides a [playbook](https://github.com/Azure/Azure-Sentinel/tree/master/Playbooks/Revoke-AADSignInSessions) for this task.\n- [Report](https://docs.microsoft.com/en-us/defender-cloud-apps/manage-app-permissions#send-feedback) the application as malicious to Microsoft.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Investigate the potential for data compromise from the user's email and file sharing services. Activate your Data Loss\nincident response playbook.\n- Disable the permission for a user to set consent permission on their behalf.\n - Enable the [Admin consent request](https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/configure-admin-consent-workflow) feature.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/detect-and-remediate-illicit-consent-grants?view=o365-worldwide","https://www.cloud-architekt.net/detection-and-mitigation-consent-grant-attacks-azuread/","https://docs.microsoft.com/en-us/defender-cloud-apps/investigate-risky-oauth#how-to-detect-risky-oauth-apps"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1528","name":"Steal Application Access Token","reference":"https://attack.mitre.org/techniques/T1528/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:(azure.activitylogs or azure.auditlogs or o365.audit) and\n (\n azure.activitylogs.operation_name:\"Consent to application\" or\n azure.auditlogs.operation_name:\"Consent to application\" or\n o365.audit.Operation:\"Consent to application.\"\n ) and\n event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"},{"package":"azure","version":"^1.0.0"},{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":false,"name":"o365.audit.Operation","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"1c6a8c7a-5cb6-4a82-ba27-d5a5b8a40a38:103.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1c6a8c7a-5cb6-4a82-ba27-d5a5b8a40a38:103.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1c6a8c7a-5cb6-4a82-ba27-d5a5b8a40a38:103.0.2.json new file mode 100644 index 0000000000000..cab3769c1afa9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1c6a8c7a-5cb6-4a82-ba27-d5a5b8a40a38:103.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Possible Consent Grant Attack via Azure-Registered Application v103.0.2","rule_id":"1c6a8c7a-5cb6-4a82-ba27-d5a5b8a40a38:103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a user grants permissions to an Azure-registered application or when an administrator grants tenant-wide permissions to an application. An adversary may create an Azure-registered application that requests access to data such as contact information, email, or documents.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Possible Consent Grant Attack via Azure-Registered Application\n\nIn an illicit consent grant attack, the attacker creates an Azure-registered application that requests access to data\nsuch as contact information, email, or documents. The attacker then tricks an end user into granting that application\nconsent to access their data either through a phishing attack, or by injecting illicit code into a trusted website.\nAfter the illicit application has been granted consent, it has account-level access to data without the need for an\norganizational account. Normal remediation steps like resetting passwords for breached accounts or requiring multi-factor\nauthentication (MFA) on accounts are not effective against this type of attack, since these are third-party applications\nand are external to the organization.\n\nOfficial Microsoft guidance for detecting and remediating this attack can be found [here](https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/detect-and-remediate-illicit-consent-grants).\n\n#### Possible investigation steps\n\n- From the Azure AD portal, Review the application that was granted permissions:\n - Click on the `Review permissions` button on the `Permissions` blade of the application.\n - An app should require only permissions related to the app's purpose. If that's not the case, the app might be risky.\n - Apps that require high privileges or admin consent are more likely to be risky.\n- Investigate the app and the publisher. The following characteristics can indicate suspicious apps:\n - A low number of downloads.\n - Low rating or score or bad comments.\n - Apps with a suspicious publisher or website.\n - Apps whose last update is not recent. This might indicate an app that is no longer supported.\n- Export and examine the [Oauth app auditing](https://docs.microsoft.com/en-us/defender-cloud-apps/manage-app-permissions#oauth-app-auditing) to identify users affected.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Malicious applications abuse the same workflow used by legitimate apps.\nThus, analysts must review each app consent to ensure that only desired apps are granted access.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Disable the malicious application to stop user access and the application access to your data.\n- Revoke the application Oauth consent grant. The `Remove-AzureADOAuth2PermissionGrant` cmdlet can be used to complete\nthis task.\n- Remove the service principal application role assignment. The `Remove-AzureADServiceAppRoleAssignment` cmdlet can be\nused to complete this task.\n- Revoke the refresh token for all users assigned to the application. Azure provides a [playbook](https://github.com/Azure/Azure-Sentinel/tree/master/Playbooks/Revoke-AADSignInSessions) for this task.\n- [Report](https://docs.microsoft.com/en-us/defender-cloud-apps/manage-app-permissions#send-feedback) the application as malicious to Microsoft.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Investigate the potential for data compromise from the user's email and file sharing services. Activate your Data Loss\nincident response playbook.\n- Disable the permission for a user to set consent permission on their behalf.\n - Enable the [Admin consent request](https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/configure-admin-consent-workflow) feature.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/detect-and-remediate-illicit-consent-grants?view=o365-worldwide","https://www.cloud-architekt.net/detection-and-mitigation-consent-grant-attacks-azuread/","https://docs.microsoft.com/en-us/defender-cloud-apps/investigate-risky-oauth#how-to-detect-risky-oauth-apps"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1528","name":"Steal Application Access Token","reference":"https://attack.mitre.org/techniques/T1528/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:(azure.activitylogs or azure.auditlogs or o365.audit) and\n (\n azure.activitylogs.operation_name:\"Consent to application\" or\n azure.auditlogs.operation_name:\"Consent to application\" or\n o365.audit.Operation:\"Consent to application.\"\n ) and\n event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"},{"package":"azure","version":"^1.0.0"},{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":false,"name":"o365.audit.Operation","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"1c6a8c7a-5cb6-4a82-ba27-d5a5b8a40a38:103.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1c84dd64-7e6c-4bad-ac73-a5014ee37042:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1c84dd64-7e6c-4bad-ac73-a5014ee37042:101.0.0.json new file mode 100644 index 0000000000000..15f82d07775d8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1c84dd64-7e6c-4bad-ac73-a5014ee37042:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious File Creation in /etc for Persistence v101.0.0","rule_id":"1c84dd64-7e6c-4bad-ac73-a5014ee37042:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the manual creation of files in specific etc directories, via user root, used by Linux malware to persist and elevate privileges on compromised systems. File creation in these directories should not be entirely common and could indicate a malicious binary or script installing persistence for long term access.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.intezer.com/blog/incident-response/orbit-new-undetected-linux-threat/","https://www.intezer.com/blog/research/lightning-framework-new-linux-threat/"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Orbit","Lightning Framework"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1037","name":"Boot or Logon Initialization Scripts","reference":"https://attack.mitre.org/techniques/T1037/","subtechnique":[{"id":"T1037.004","name":"RC Scripts","reference":"https://attack.mitre.org/techniques/T1037/004/"}]},{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.006","name":"Dynamic Linker Hijacking","reference":"https://attack.mitre.org/techniques/T1574/006/"}]},{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.002","name":"Systemd Service","reference":"https://attack.mitre.org/techniques/T1543/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.003","name":"Cron","reference":"https://attack.mitre.org/techniques/T1053/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.003","name":"Sudo and Sudo Caching","reference":"https://attack.mitre.org/techniques/T1548/003/"}]}]}],"language":"eql","query":"file where event.action == \"creation\" and user.name == \"root\" and\nfile.path : (\"/etc/ld.so.conf.d/*\", \"/etc/cron.d/*\", \"/etc/sudoers.d/*\", \"/etc/rc.d/init.d/*\", \"/etc/systemd/system/*\")\nand not process.executable : (\"*/dpkg\", \"*/yum\", \"*/apt\", \"*/dnf\", \"*/systemd\", \"*/snapd\", \"*/dnf-automatic\",\n \"*/yum-cron\", \"*/elastic-agent\", \"*/dnfdaemon-system\")\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"1c84dd64-7e6c-4bad-ac73-a5014ee37042:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1c84dd64-7e6c-4bad-ac73-a5014ee37042:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1c84dd64-7e6c-4bad-ac73-a5014ee37042:101.0.1.json new file mode 100644 index 0000000000000..94317b362cc5a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1c84dd64-7e6c-4bad-ac73-a5014ee37042:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious File Creation in /etc for Persistence v101.0.1","rule_id":"1c84dd64-7e6c-4bad-ac73-a5014ee37042:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the manual creation of files in specific etc directories, via user root, used by Linux malware to persist and elevate privileges on compromised systems. File creation in these directories should not be entirely common and could indicate a malicious binary or script installing persistence for long term access.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.intezer.com/blog/incident-response/orbit-new-undetected-linux-threat/","https://www.intezer.com/blog/research/lightning-framework-new-linux-threat/"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Orbit","Lightning Framework"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1037","name":"Boot or Logon Initialization Scripts","reference":"https://attack.mitre.org/techniques/T1037/","subtechnique":[{"id":"T1037.004","name":"RC Scripts","reference":"https://attack.mitre.org/techniques/T1037/004/"}]},{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.006","name":"Dynamic Linker Hijacking","reference":"https://attack.mitre.org/techniques/T1574/006/"}]},{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.002","name":"Systemd Service","reference":"https://attack.mitre.org/techniques/T1543/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.003","name":"Cron","reference":"https://attack.mitre.org/techniques/T1053/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.003","name":"Sudo and Sudo Caching","reference":"https://attack.mitre.org/techniques/T1548/003/"}]}]}],"language":"eql","query":"file where event.action == \"creation\" and user.name == \"root\" and\nfile.path : (\"/etc/ld.so.conf.d/*\", \"/etc/cron.d/*\", \"/etc/sudoers.d/*\", \"/etc/rc.d/init.d/*\", \"/etc/systemd/system/*\")\nand not process.executable : (\"*/dpkg\", \"*/yum\", \"*/apt\", \"*/dnf\", \"*/systemd\", \"*/snapd\", \"*/dnf-automatic\",\n \"*/yum-cron\", \"*/elastic-agent\", \"*/dnfdaemon-system\")\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"1c84dd64-7e6c-4bad-ac73-a5014ee37042:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1c84dd64-7e6c-4bad-ac73-a5014ee37042:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1c84dd64-7e6c-4bad-ac73-a5014ee37042:101.0.2.json new file mode 100644 index 0000000000000..305c44daeba27 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1c84dd64-7e6c-4bad-ac73-a5014ee37042:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious File Creation in /etc for Persistence v101.0.2","rule_id":"1c84dd64-7e6c-4bad-ac73-a5014ee37042:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the manual creation of files in specific etc directories, via user root, used by Linux malware to persist and elevate privileges on compromised systems. File creation in these directories should not be entirely common and could indicate a malicious binary or script installing persistence for long term access.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.intezer.com/blog/incident-response/orbit-new-undetected-linux-threat/","https://www.intezer.com/blog/research/lightning-framework-new-linux-threat/"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Orbit","Lightning Framework"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1037","name":"Boot or Logon Initialization Scripts","reference":"https://attack.mitre.org/techniques/T1037/","subtechnique":[{"id":"T1037.004","name":"RC Scripts","reference":"https://attack.mitre.org/techniques/T1037/004/"}]},{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.006","name":"Dynamic Linker Hijacking","reference":"https://attack.mitre.org/techniques/T1574/006/"}]},{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.002","name":"Systemd Service","reference":"https://attack.mitre.org/techniques/T1543/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.003","name":"Cron","reference":"https://attack.mitre.org/techniques/T1053/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.003","name":"Sudo and Sudo Caching","reference":"https://attack.mitre.org/techniques/T1548/003/"}]}]}],"language":"eql","query":"file where event.action == \"creation\" and user.name == \"root\" and\nfile.path : (\"/etc/ld.so.conf.d/*\", \"/etc/cron.d/*\", \"/etc/sudoers.d/*\", \"/etc/rc.d/init.d/*\", \"/etc/systemd/system/*\")\nand not process.executable : (\"*/dpkg\", \"*/yum\", \"*/apt\", \"*/dnf\", \"*/systemd\", \"*/snapd\", \"*/dnf-automatic\",\n \"*/yum-cron\", \"*/elastic-agent\", \"*/dnfdaemon-system\")\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"1c84dd64-7e6c-4bad-ac73-a5014ee37042:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1c966416-60c1-436b-bfd0-e002fddbfd89:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1c966416-60c1-436b-bfd0-e002fddbfd89:101.0.0.json new file mode 100644 index 0000000000000..970a7011c7ad4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1c966416-60c1-436b-bfd0-e002fddbfd89:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Kubernetes Rolebindings Created v101.0.0","rule_id":"1c966416-60c1-436b-bfd0-e002fddbfd89:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of role binding or cluster role bindings. You can assign these roles to Kubernetes subjects (users, groups, or service accounts) with role bindings and cluster role bindings. An adversary who has permissions to create bindings and cluster-bindings in the cluster can create a binding to the cluster-admin ClusterRole or to other high privileges roles.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"from":"now-20m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkubernetes","https://www.microsoft.com/security/blog/2020/04/02/attack-matrix-kubernetes/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\n\t(\"MICROSOFT.KUBERNETES/CONNECTEDCLUSTERS/RBAC.AUTHORIZATION.K8S.IO/ROLEBINDINGS/WRITE\" or\n\t \"MICROSOFT.KUBERNETES/CONNECTEDCLUSTERS/RBAC.AUTHORIZATION.K8S.IO/CLUSTERROLEBINDINGS/WRITE\") and\nevent.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"1c966416-60c1-436b-bfd0-e002fddbfd89:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1c966416-60c1-436b-bfd0-e002fddbfd89:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1c966416-60c1-436b-bfd0-e002fddbfd89:101.0.1.json new file mode 100644 index 0000000000000..411bcc873ead3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1c966416-60c1-436b-bfd0-e002fddbfd89:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Kubernetes Rolebindings Created v101.0.1","rule_id":"1c966416-60c1-436b-bfd0-e002fddbfd89:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of role binding or cluster role bindings. You can assign these roles to Kubernetes subjects (users, groups, or service accounts) with role bindings and cluster role bindings. An adversary who has permissions to create bindings and cluster-bindings in the cluster can create a binding to the cluster-admin ClusterRole or to other high privileges roles.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"from":"now-20m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkubernetes","https://www.microsoft.com/security/blog/2020/04/02/attack-matrix-kubernetes/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\n\t(\"MICROSOFT.KUBERNETES/CONNECTEDCLUSTERS/RBAC.AUTHORIZATION.K8S.IO/ROLEBINDINGS/WRITE\" or\n\t \"MICROSOFT.KUBERNETES/CONNECTEDCLUSTERS/RBAC.AUTHORIZATION.K8S.IO/CLUSTERROLEBINDINGS/WRITE\") and\nevent.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"1c966416-60c1-436b-bfd0-e002fddbfd89:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1c966416-60c1-436b-bfd0-e002fddbfd89:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1c966416-60c1-436b-bfd0-e002fddbfd89:101.0.2.json new file mode 100644 index 0000000000000..fc3363e678e1a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1c966416-60c1-436b-bfd0-e002fddbfd89:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Kubernetes Rolebindings Created v101.0.2","rule_id":"1c966416-60c1-436b-bfd0-e002fddbfd89:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of role binding or cluster role bindings. You can assign these roles to Kubernetes subjects (users, groups, or service accounts) with role bindings and cluster role bindings. An adversary who has permissions to create bindings and cluster-bindings in the cluster can create a binding to the cluster-admin ClusterRole or to other high privileges roles.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"from":"now-20m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkubernetes","https://www.microsoft.com/security/blog/2020/04/02/attack-matrix-kubernetes/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\n\t(\"MICROSOFT.KUBERNETES/CONNECTEDCLUSTERS/RBAC.AUTHORIZATION.K8S.IO/ROLEBINDINGS/WRITE\" or\n\t \"MICROSOFT.KUBERNETES/CONNECTEDCLUSTERS/RBAC.AUTHORIZATION.K8S.IO/CLUSTERROLEBINDINGS/WRITE\") and\nevent.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"1c966416-60c1-436b-bfd0-e002fddbfd89:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1cd01db9-be24-4bef-8e7c-e923f0ff78ab:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1cd01db9-be24-4bef-8e7c-e923f0ff78ab:100.0.0.json new file mode 100644 index 0000000000000..e30a5fe7f18d5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1cd01db9-be24-4bef-8e7c-e923f0ff78ab:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Incoming Execution via WinRM Remote Shell v100.0.0","rule_id":"1cd01db9-be24-4bef-8e7c-e923f0ff78ab:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote execution via Windows Remote Management (WinRM) remote shell on a target host. This could be an indication of lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["WinRM is a dual-use protocol that can be used for benign or malicious activity. It's important to baseline your environment to determine the amount of noise to expect from this tool."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by host.id with maxspan=30s\n [network where process.pid == 4 and network.direction : (\"incoming\", \"ingress\") and\n destination.port in (5985, 5986) and network.protocol == \"http\" and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ]\n [process where event.type == \"start\" and process.parent.name : \"winrshost.exe\" and not process.name : \"conhost.exe\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"},{"ecs":true,"name":"source.ip","type":"ip"}]},"id":"1cd01db9-be24-4bef-8e7c-e923f0ff78ab:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1cd01db9-be24-4bef-8e7c-e923f0ff78ab:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1cd01db9-be24-4bef-8e7c-e923f0ff78ab:100.0.1.json new file mode 100644 index 0000000000000..05f6713e5d1db --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1cd01db9-be24-4bef-8e7c-e923f0ff78ab:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Incoming Execution via WinRM Remote Shell v100.0.1","rule_id":"1cd01db9-be24-4bef-8e7c-e923f0ff78ab:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote execution via Windows Remote Management (WinRM) remote shell on a target host. This could be an indication of lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["WinRM is a dual-use protocol that can be used for benign or malicious activity. It's important to baseline your environment to determine the amount of noise to expect from this tool."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by host.id with maxspan=30s\n [network where process.pid == 4 and network.direction : (\"incoming\", \"ingress\") and\n destination.port in (5985, 5986) and network.protocol == \"http\" and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ]\n [process where event.type == \"start\" and process.parent.name : \"winrshost.exe\" and not process.name : \"conhost.exe\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"},{"ecs":true,"name":"source.ip","type":"ip"}]},"id":"1cd01db9-be24-4bef-8e7c-e923f0ff78ab:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1cd01db9-be24-4bef-8e7c-e923f0ff78ab:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1cd01db9-be24-4bef-8e7c-e923f0ff78ab:100.0.2.json new file mode 100644 index 0000000000000..b755584f34540 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1cd01db9-be24-4bef-8e7c-e923f0ff78ab:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Incoming Execution via WinRM Remote Shell v100.0.2","rule_id":"1cd01db9-be24-4bef-8e7c-e923f0ff78ab:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote execution via Windows Remote Management (WinRM) remote shell on a target host. This could be an indication of lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["WinRM is a dual-use protocol that can be used for benign or malicious activity. It's important to baseline your environment to determine the amount of noise to expect from this tool."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by host.id with maxspan=30s\n [network where process.pid == 4 and network.direction : (\"incoming\", \"ingress\") and\n destination.port in (5985, 5986) and network.protocol == \"http\" and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ]\n [process where event.type == \"start\" and process.parent.name : \"winrshost.exe\" and not process.name : \"conhost.exe\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"},{"ecs":true,"name":"source.ip","type":"ip"}]},"id":"1cd01db9-be24-4bef-8e7c-e923f0ff78ab:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1d276579-3380-4095-ad38-e596a01bc64f:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1d276579-3380-4095-ad38-e596a01bc64f:102.0.0.json new file mode 100644 index 0000000000000..2bdb6402e0aac --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1d276579-3380-4095-ad38-e596a01bc64f:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote File Download via Script Interpreter v102.0.0","rule_id":"1d276579-3380-4095-ad38-e596a01bc64f:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies built-in Windows script interpreters (cscript.exe or wscript.exe) being used to download an executable file from a remote destination.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote File Download via Script Interpreter\n\nThe Windows Script Host (WSH) is a Windows automation technology, which is ideal for non-interactive scripting needs,\nsuch as logon scripting, administrative scripting, and machine automation.\n\nAttackers commonly use WSH scripts as their initial access method, acting like droppers for second stage payloads, but\ncan also use them to download tools and utilities needed to accomplish their goals.\n\nThis rule looks for DLLs and executables downloaded using `cscript.exe` or `wscript.exe`.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze both the script and the executable involved using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- The usage of these script engines by regular users is unlikely. In the case of authorized benign true positives\n(B-TPs), exceptions can be added.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"sequence by host.id, process.entity_id\n [network where process.name : (\"wscript.exe\", \"cscript.exe\") and network.protocol != \"dns\" and\n network.direction : (\"outgoing\", \"egress\") and network.type == \"ipv4\" and destination.ip != \"127.0.0.1\"\n ]\n [file where event.type == \"creation\" and file.extension : (\"exe\", \"dll\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"network.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"1d276579-3380-4095-ad38-e596a01bc64f:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1d276579-3380-4095-ad38-e596a01bc64f:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1d276579-3380-4095-ad38-e596a01bc64f:102.0.1.json new file mode 100644 index 0000000000000..5837621e19530 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1d276579-3380-4095-ad38-e596a01bc64f:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote File Download via Script Interpreter v102.0.1","rule_id":"1d276579-3380-4095-ad38-e596a01bc64f:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies built-in Windows script interpreters (cscript.exe or wscript.exe) being used to download an executable file from a remote destination.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote File Download via Script Interpreter\n\nThe Windows Script Host (WSH) is a Windows automation technology, which is ideal for non-interactive scripting needs,\nsuch as logon scripting, administrative scripting, and machine automation.\n\nAttackers commonly use WSH scripts as their initial access method, acting like droppers for second stage payloads, but\ncan also use them to download tools and utilities needed to accomplish their goals.\n\nThis rule looks for DLLs and executables downloaded using `cscript.exe` or `wscript.exe`.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze both the script and the executable involved using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- The usage of these script engines by regular users is unlikely. In the case of authorized benign true positives\n(B-TPs), exceptions can be added.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"sequence by host.id, process.entity_id\n [network where process.name : (\"wscript.exe\", \"cscript.exe\") and network.protocol != \"dns\" and\n network.direction : (\"outgoing\", \"egress\") and network.type == \"ipv4\" and destination.ip != \"127.0.0.1\"\n ]\n [file where event.type == \"creation\" and file.extension : (\"exe\", \"dll\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"network.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"1d276579-3380-4095-ad38-e596a01bc64f:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1d276579-3380-4095-ad38-e596a01bc64f:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1d276579-3380-4095-ad38-e596a01bc64f:102.0.2.json new file mode 100644 index 0000000000000..903f6eae157a8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1d276579-3380-4095-ad38-e596a01bc64f:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote File Download via Script Interpreter v102.0.2","rule_id":"1d276579-3380-4095-ad38-e596a01bc64f:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies built-in Windows script interpreters (cscript.exe or wscript.exe) being used to download an executable file from a remote destination.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote File Download via Script Interpreter\n\nThe Windows Script Host (WSH) is a Windows automation technology, which is ideal for non-interactive scripting needs,\nsuch as logon scripting, administrative scripting, and machine automation.\n\nAttackers commonly use WSH scripts as their initial access method, acting like droppers for second stage payloads, but\ncan also use them to download tools and utilities needed to accomplish their goals.\n\nThis rule looks for DLLs and executables downloaded using `cscript.exe` or `wscript.exe`.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze both the script and the executable involved using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- The usage of these script engines by regular users is unlikely. In the case of authorized benign true positives\n(B-TPs), exceptions can be added.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"sequence by host.id, process.entity_id\n [network where process.name : (\"wscript.exe\", \"cscript.exe\") and network.protocol != \"dns\" and\n network.direction : (\"outgoing\", \"egress\") and network.type == \"ipv4\" and destination.ip != \"127.0.0.1\"\n ]\n [file where event.type == \"creation\" and file.extension : (\"exe\", \"dll\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"network.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"1d276579-3380-4095-ad38-e596a01bc64f:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1d72d014-e2ab-4707-b056-9b96abe7b511:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1d72d014-e2ab-4707-b056-9b96abe7b511:102.0.0.json new file mode 100644 index 0000000000000..5b3e11c9baebf --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1d72d014-e2ab-4707-b056-9b96abe7b511:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"External IP Lookup from Non-Browser Process v102.0.0","rule_id":"1d72d014-e2ab-4707-b056-9b96abe7b511:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies domains commonly used by adversaries for post-exploitation IP lookups. It is common for adversaries to test for Internet access and acquire their external IP address after they have gained access to a system. Among others, this has been observed in campaigns leveraging the information stealer, Trickbot.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating External IP Lookup from Non-Browser Process\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for connections to known IP lookup services through non-browser processes or non-installed programs.\nUsing only the IP address of the compromised system, attackers can obtain valuable information such as the system's\ngeographic location, the company that owns the IP, whether the system is cloud-hosted, and more.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Use the data collected through the analysis to investigate other machines affected in the environment.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If the domains listed in this rule are used as part of an authorized workflow, this rule will be triggered by those events. Validate that this is expected activity and tune the rule to fit your environment variables."],"from":"now-9m","references":["https://community.jisc.ac.uk/blogs/csirt/article/trickbot-analysis-and-mitigation","https://www.cybereason.com/blog/dropping-anchor-from-a-trickbot-infection-to-the-discovery-of-the-anchor-malware"],"tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1614","name":"System Location Discovery","reference":"https://attack.mitre.org/techniques/T1614/"},{"id":"T1016","name":"System Network Configuration Discovery","reference":"https://attack.mitre.org/techniques/T1016/","subtechnique":[{"id":"T1016.001","name":"Internet Connection Discovery","reference":"https://attack.mitre.org/techniques/T1016/001/"}]}]}],"language":"eql","query":"network where network.protocol == \"dns\" and\n process.name != null and user.id not in (\"S-1-5-19\", \"S-1-5-20\") and\n event.action == \"lookup_requested\" and\n /* Add new external IP lookup services here */\n dns.question.name :\n (\n \"*api.ipify.org\",\n \"*freegeoip.app\",\n \"*checkip.amazonaws.com\",\n \"*checkip.dyndns.org\",\n \"*freegeoip.app\",\n \"*icanhazip.com\",\n \"*ifconfig.*\",\n \"*ipecho.net\",\n \"*ipgeoapi.com\",\n \"*ipinfo.io\",\n \"*ip.anysrc.net\",\n \"*myexternalip.com\",\n \"*myipaddress.com\",\n \"*showipaddress.com\",\n \"*whatismyipaddress.com\",\n \"*wtfismyip.com\",\n \"*ipapi.co\",\n \"*ip-lookup.net\",\n \"*ipstack.com\"\n ) and\n /* Insert noisy false positives here */\n not process.executable :\n (\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\WWAHost.exe\",\n \"?:\\\\Windows\\\\System32\\\\smartscreen.exe\",\n \"?:\\\\Windows\\\\System32\\\\MicrosoftEdgeCP.exe\",\n \"?:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\Platform\\\\*\\\\MsMpEng.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Programs\\\\Fiddler\\\\Fiddler.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Programs\\\\Microsoft VS Code\\\\Code.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Microsoft\\\\OneDrive\\\\OneDrive.exe\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"dns.question.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"1d72d014-e2ab-4707-b056-9b96abe7b511:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1d72d014-e2ab-4707-b056-9b96abe7b511:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1d72d014-e2ab-4707-b056-9b96abe7b511:102.0.1.json new file mode 100644 index 0000000000000..1fa6b5b8b166e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1d72d014-e2ab-4707-b056-9b96abe7b511:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"External IP Lookup from Non-Browser Process v102.0.1","rule_id":"1d72d014-e2ab-4707-b056-9b96abe7b511:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies domains commonly used by adversaries for post-exploitation IP lookups. It is common for adversaries to test for Internet access and acquire their external IP address after they have gained access to a system. Among others, this has been observed in campaigns leveraging the information stealer, Trickbot.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating External IP Lookup from Non-Browser Process\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for connections to known IP lookup services through non-browser processes or non-installed programs.\nUsing only the IP address of the compromised system, attackers can obtain valuable information such as the system's\ngeographic location, the company that owns the IP, whether the system is cloud-hosted, and more.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Use the data collected through the analysis to investigate other machines affected in the environment.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If the domains listed in this rule are used as part of an authorized workflow, this rule will be triggered by those events. Validate that this is expected activity and tune the rule to fit your environment variables."],"from":"now-9m","references":["https://community.jisc.ac.uk/blogs/csirt/article/trickbot-analysis-and-mitigation","https://www.cybereason.com/blog/dropping-anchor-from-a-trickbot-infection-to-the-discovery-of-the-anchor-malware"],"tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1614","name":"System Location Discovery","reference":"https://attack.mitre.org/techniques/T1614/"},{"id":"T1016","name":"System Network Configuration Discovery","reference":"https://attack.mitre.org/techniques/T1016/","subtechnique":[{"id":"T1016.001","name":"Internet Connection Discovery","reference":"https://attack.mitre.org/techniques/T1016/001/"}]}]}],"language":"eql","query":"network where network.protocol == \"dns\" and\n process.name != null and user.id not in (\"S-1-5-19\", \"S-1-5-20\") and\n event.action == \"lookup_requested\" and\n /* Add new external IP lookup services here */\n dns.question.name :\n (\n \"*api.ipify.org\",\n \"*freegeoip.app\",\n \"*checkip.amazonaws.com\",\n \"*checkip.dyndns.org\",\n \"*freegeoip.app\",\n \"*icanhazip.com\",\n \"*ifconfig.*\",\n \"*ipecho.net\",\n \"*ipgeoapi.com\",\n \"*ipinfo.io\",\n \"*ip.anysrc.net\",\n \"*myexternalip.com\",\n \"*myipaddress.com\",\n \"*showipaddress.com\",\n \"*whatismyipaddress.com\",\n \"*wtfismyip.com\",\n \"*ipapi.co\",\n \"*ip-lookup.net\",\n \"*ipstack.com\"\n ) and\n /* Insert noisy false positives here */\n not process.executable :\n (\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\WWAHost.exe\",\n \"?:\\\\Windows\\\\System32\\\\smartscreen.exe\",\n \"?:\\\\Windows\\\\System32\\\\MicrosoftEdgeCP.exe\",\n \"?:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\Platform\\\\*\\\\MsMpEng.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Programs\\\\Fiddler\\\\Fiddler.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Programs\\\\Microsoft VS Code\\\\Code.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Microsoft\\\\OneDrive\\\\OneDrive.exe\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"dns.question.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"1d72d014-e2ab-4707-b056-9b96abe7b511:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1d72d014-e2ab-4707-b056-9b96abe7b511:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1d72d014-e2ab-4707-b056-9b96abe7b511:102.0.2.json new file mode 100644 index 0000000000000..1dd20e9671c9c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1d72d014-e2ab-4707-b056-9b96abe7b511:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"External IP Lookup from Non-Browser Process v102.0.2","rule_id":"1d72d014-e2ab-4707-b056-9b96abe7b511:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies domains commonly used by adversaries for post-exploitation IP lookups. It is common for adversaries to test for Internet access and acquire their external IP address after they have gained access to a system. Among others, this has been observed in campaigns leveraging the information stealer, Trickbot.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating External IP Lookup from Non-Browser Process\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for connections to known IP lookup services through non-browser processes or non-installed programs.\nUsing only the IP address of the compromised system, attackers can obtain valuable information such as the system's\ngeographic location, the company that owns the IP, whether the system is cloud-hosted, and more.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Use the data collected through the analysis to investigate other machines affected in the environment.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If the domains listed in this rule are used as part of an authorized workflow, this rule will be triggered by those events. Validate that this is expected activity and tune the rule to fit your environment variables."],"from":"now-9m","references":["https://community.jisc.ac.uk/blogs/csirt/article/trickbot-analysis-and-mitigation","https://www.cybereason.com/blog/dropping-anchor-from-a-trickbot-infection-to-the-discovery-of-the-anchor-malware"],"tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1614","name":"System Location Discovery","reference":"https://attack.mitre.org/techniques/T1614/"},{"id":"T1016","name":"System Network Configuration Discovery","reference":"https://attack.mitre.org/techniques/T1016/","subtechnique":[{"id":"T1016.001","name":"Internet Connection Discovery","reference":"https://attack.mitre.org/techniques/T1016/001/"}]}]}],"language":"eql","query":"network where network.protocol == \"dns\" and\n process.name != null and user.id not in (\"S-1-5-19\", \"S-1-5-20\") and\n event.action == \"lookup_requested\" and\n /* Add new external IP lookup services here */\n dns.question.name :\n (\n \"*api.ipify.org\",\n \"*freegeoip.app\",\n \"*checkip.amazonaws.com\",\n \"*checkip.dyndns.org\",\n \"*freegeoip.app\",\n \"*icanhazip.com\",\n \"*ifconfig.*\",\n \"*ipecho.net\",\n \"*ipgeoapi.com\",\n \"*ipinfo.io\",\n \"*ip.anysrc.net\",\n \"*myexternalip.com\",\n \"*myipaddress.com\",\n \"*showipaddress.com\",\n \"*whatismyipaddress.com\",\n \"*wtfismyip.com\",\n \"*ipapi.co\",\n \"*ip-lookup.net\",\n \"*ipstack.com\"\n ) and\n /* Insert noisy false positives here */\n not process.executable :\n (\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\WWAHost.exe\",\n \"?:\\\\Windows\\\\System32\\\\smartscreen.exe\",\n \"?:\\\\Windows\\\\System32\\\\MicrosoftEdgeCP.exe\",\n \"?:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\Platform\\\\*\\\\MsMpEng.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Programs\\\\Fiddler\\\\Fiddler.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Programs\\\\Microsoft VS Code\\\\Code.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Microsoft\\\\OneDrive\\\\OneDrive.exe\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"dns.question.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"1d72d014-e2ab-4707-b056-9b96abe7b511:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1dcc51f6-ba26-49e7-9ef4-2655abb2361e:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1dcc51f6-ba26-49e7-9ef4-2655abb2361e:100.0.0.json new file mode 100644 index 0000000000000..db2bdf758079b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1dcc51f6-ba26-49e7-9ef4-2655abb2361e:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"UAC Bypass via DiskCleanup Scheduled Task Hijack v100.0.0","rule_id":"1dcc51f6-ba26-49e7-9ef4-2655abb2361e:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies User Account Control (UAC) bypass via hijacking DiskCleanup Scheduled Task. Attackers bypass UAC to stealthily execute code with elevated permissions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.args : \"/autoclean\" and process.args : \"/d\" and\n not process.executable : (\"C:\\\\Windows\\\\System32\\\\cleanmgr.exe\",\n \"C:\\\\Windows\\\\SysWOW64\\\\cleanmgr.exe\",\n \"C:\\\\Windows\\\\System32\\\\taskhostw.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"1dcc51f6-ba26-49e7-9ef4-2655abb2361e:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1dcc51f6-ba26-49e7-9ef4-2655abb2361e:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1dcc51f6-ba26-49e7-9ef4-2655abb2361e:100.0.1.json new file mode 100644 index 0000000000000..13cf53dc128f7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1dcc51f6-ba26-49e7-9ef4-2655abb2361e:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"UAC Bypass via DiskCleanup Scheduled Task Hijack v100.0.1","rule_id":"1dcc51f6-ba26-49e7-9ef4-2655abb2361e:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies User Account Control (UAC) bypass via hijacking DiskCleanup Scheduled Task. Attackers bypass UAC to stealthily execute code with elevated permissions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.args : \"/autoclean\" and process.args : \"/d\" and\n not process.executable : (\"C:\\\\Windows\\\\System32\\\\cleanmgr.exe\",\n \"C:\\\\Windows\\\\SysWOW64\\\\cleanmgr.exe\",\n \"C:\\\\Windows\\\\System32\\\\taskhostw.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"1dcc51f6-ba26-49e7-9ef4-2655abb2361e:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1dcc51f6-ba26-49e7-9ef4-2655abb2361e:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1dcc51f6-ba26-49e7-9ef4-2655abb2361e:100.0.2.json new file mode 100644 index 0000000000000..388faeff768c1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1dcc51f6-ba26-49e7-9ef4-2655abb2361e:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"UAC Bypass via DiskCleanup Scheduled Task Hijack v100.0.2","rule_id":"1dcc51f6-ba26-49e7-9ef4-2655abb2361e:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies User Account Control (UAC) bypass via hijacking DiskCleanup Scheduled Task. Attackers bypass UAC to stealthily execute code with elevated permissions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.args : \"/autoclean\" and process.args : \"/d\" and\n not process.executable : (\"C:\\\\Windows\\\\System32\\\\cleanmgr.exe\",\n \"C:\\\\Windows\\\\SysWOW64\\\\cleanmgr.exe\",\n \"C:\\\\Windows\\\\System32\\\\taskhostw.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"1dcc51f6-ba26-49e7-9ef4-2655abb2361e:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1defdd62-cd8d-426e-a246-81a37751bb2b:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1defdd62-cd8d-426e-a246-81a37751bb2b:102.0.0.json new file mode 100644 index 0000000000000..62d032ed73105 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1defdd62-cd8d-426e-a246-81a37751bb2b:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Execution of File Written or Modified by PDF Reader v102.0.0","rule_id":"1defdd62-cd8d-426e-a246-81a37751bb2b:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious file that was written by a PDF reader application and subsequently executed. These processes are often launched via exploitation of PDF applications.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Execution of File Written or Modified by PDF Reader\n\nPDF is a common file type used in corporate environments and most machines have software to\nhandle these files. This creates a vector where attackers can exploit the engines and technology behind this class of\nsoftware for initial access or privilege escalation.\n\nThis rule searches for executable files written by PDF reader software and executed in sequence. This is most likely the\nresult of exploitation for privilege escalation or initial access. This rule can also detect suspicious processes masquerading as\nPDF readers.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve the PDF documents received and opened by the user that could cause this behavior. Common locations include,\nbut are not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-120m","interval":"60m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"},{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]}],"language":"eql","query":"sequence with maxspan=2h\n [file where event.type != \"deletion\" and file.extension : \"exe\" and\n (process.name : \"AcroRd32.exe\" or\n process.name : \"rdrcef.exe\" or\n process.name : \"FoxitPhantomPDF.exe\" or\n process.name : \"FoxitReader.exe\") and\n not (file.name : \"FoxitPhantomPDF.exe\" or\n file.name : \"FoxitPhantomPDFUpdater.exe\" or\n file.name : \"FoxitReader.exe\" or\n file.name : \"FoxitReaderUpdater.exe\" or\n file.name : \"AcroRd32.exe\" or\n file.name : \"rdrcef.exe\")\n ] by host.id, file.path\n [process where event.type == \"start\"] by host.id, process.executable\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"1defdd62-cd8d-426e-a246-81a37751bb2b:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1defdd62-cd8d-426e-a246-81a37751bb2b:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1defdd62-cd8d-426e-a246-81a37751bb2b:102.0.1.json new file mode 100644 index 0000000000000..ec442730ec7a4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1defdd62-cd8d-426e-a246-81a37751bb2b:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Execution of File Written or Modified by PDF Reader v102.0.1","rule_id":"1defdd62-cd8d-426e-a246-81a37751bb2b:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious file that was written by a PDF reader application and subsequently executed. These processes are often launched via exploitation of PDF applications.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Execution of File Written or Modified by PDF Reader\n\nPDF is a common file type used in corporate environments and most machines have software to\nhandle these files. This creates a vector where attackers can exploit the engines and technology behind this class of\nsoftware for initial access or privilege escalation.\n\nThis rule searches for executable files written by PDF reader software and executed in sequence. This is most likely the\nresult of exploitation for privilege escalation or initial access. This rule can also detect suspicious processes masquerading as\nPDF readers.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve the PDF documents received and opened by the user that could cause this behavior. Common locations include,\nbut are not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-120m","interval":"60m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"},{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]}],"language":"eql","query":"sequence with maxspan=2h\n [file where event.type != \"deletion\" and file.extension : \"exe\" and\n (process.name : \"AcroRd32.exe\" or\n process.name : \"rdrcef.exe\" or\n process.name : \"FoxitPhantomPDF.exe\" or\n process.name : \"FoxitReader.exe\") and\n not (file.name : \"FoxitPhantomPDF.exe\" or\n file.name : \"FoxitPhantomPDFUpdater.exe\" or\n file.name : \"FoxitReader.exe\" or\n file.name : \"FoxitReaderUpdater.exe\" or\n file.name : \"AcroRd32.exe\" or\n file.name : \"rdrcef.exe\")\n ] by host.id, file.path\n [process where event.type == \"start\"] by host.id, process.executable\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"1defdd62-cd8d-426e-a246-81a37751bb2b:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1defdd62-cd8d-426e-a246-81a37751bb2b:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1defdd62-cd8d-426e-a246-81a37751bb2b:102.0.2.json new file mode 100644 index 0000000000000..08feb3e42afd6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1defdd62-cd8d-426e-a246-81a37751bb2b:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Execution of File Written or Modified by PDF Reader v102.0.2","rule_id":"1defdd62-cd8d-426e-a246-81a37751bb2b:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious file that was written by a PDF reader application and subsequently executed. These processes are often launched via exploitation of PDF applications.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Execution of File Written or Modified by PDF Reader\n\nPDF is a common file type used in corporate environments and most machines have software to\nhandle these files. This creates a vector where attackers can exploit the engines and technology behind this class of\nsoftware for initial access or privilege escalation.\n\nThis rule searches for executable files written by PDF reader software and executed in sequence. This is most likely the\nresult of exploitation for privilege escalation or initial access. This rule can also detect suspicious processes masquerading as\nPDF readers.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve the PDF documents received and opened by the user that could cause this behavior. Common locations include,\nbut are not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-120m","interval":"60m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"},{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]}],"language":"eql","query":"sequence with maxspan=2h\n [file where event.type != \"deletion\" and file.extension : \"exe\" and\n (process.name : \"AcroRd32.exe\" or\n process.name : \"rdrcef.exe\" or\n process.name : \"FoxitPhantomPDF.exe\" or\n process.name : \"FoxitReader.exe\") and\n not (file.name : \"FoxitPhantomPDF.exe\" or\n file.name : \"FoxitPhantomPDFUpdater.exe\" or\n file.name : \"FoxitReader.exe\" or\n file.name : \"FoxitReaderUpdater.exe\" or\n file.name : \"AcroRd32.exe\" or\n file.name : \"rdrcef.exe\")\n ] by host.id, file.path\n [process where event.type == \"start\"] by host.id, process.executable\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"1defdd62-cd8d-426e-a246-81a37751bb2b:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1e0b832e-957e-43ae-b319-db82d228c908:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1e0b832e-957e-43ae-b319-db82d228c908:101.0.0.json new file mode 100644 index 0000000000000..1d8ab59b5e808 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1e0b832e-957e-43ae-b319-db82d228c908:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Storage Account Key Regenerated v101.0.0","rule_id":"1e0b832e-957e-43ae-b319-db82d228c908:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a rotation to storage account access keys in Azure. Regenerating access keys can affect any applications or Azure services that are dependent on the storage account key. Adversaries may regenerate a key as a means of acquiring credentials to access systems and resources.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["It's recommended that you rotate your access keys periodically to help keep your storage account secure. Normal key rotation can be exempted from the rule. An abnormal time frame and/or a key rotation from unfamiliar users, hosts, or locations should be investigated."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/storage/common/storage-account-keys-manage?tabs=azure-portal"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1528","name":"Steal Application Access Token","reference":"https://attack.mitre.org/techniques/T1528/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.STORAGE/STORAGEACCOUNTS/REGENERATEKEY/ACTION\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"1e0b832e-957e-43ae-b319-db82d228c908:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1e0b832e-957e-43ae-b319-db82d228c908:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1e0b832e-957e-43ae-b319-db82d228c908:101.0.1.json new file mode 100644 index 0000000000000..9412ada58f698 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1e0b832e-957e-43ae-b319-db82d228c908:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Storage Account Key Regenerated v101.0.1","rule_id":"1e0b832e-957e-43ae-b319-db82d228c908:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a rotation to storage account access keys in Azure. Regenerating access keys can affect any applications or Azure services that are dependent on the storage account key. Adversaries may regenerate a key as a means of acquiring credentials to access systems and resources.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["It's recommended that you rotate your access keys periodically to help keep your storage account secure. Normal key rotation can be exempted from the rule. An abnormal time frame and/or a key rotation from unfamiliar users, hosts, or locations should be investigated."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/storage/common/storage-account-keys-manage?tabs=azure-portal"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1528","name":"Steal Application Access Token","reference":"https://attack.mitre.org/techniques/T1528/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.STORAGE/STORAGEACCOUNTS/REGENERATEKEY/ACTION\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"1e0b832e-957e-43ae-b319-db82d228c908:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1e0b832e-957e-43ae-b319-db82d228c908:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1e0b832e-957e-43ae-b319-db82d228c908:101.0.2.json new file mode 100644 index 0000000000000..f8f77f65e255a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1e0b832e-957e-43ae-b319-db82d228c908:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Storage Account Key Regenerated v101.0.2","rule_id":"1e0b832e-957e-43ae-b319-db82d228c908:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a rotation to storage account access keys in Azure. Regenerating access keys can affect any applications or Azure services that are dependent on the storage account key. Adversaries may regenerate a key as a means of acquiring credentials to access systems and resources.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["It's recommended that you rotate your access keys periodically to help keep your storage account secure. Normal key rotation can be exempted from the rule. An abnormal time frame and/or a key rotation from unfamiliar users, hosts, or locations should be investigated."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/storage/common/storage-account-keys-manage?tabs=azure-portal"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1528","name":"Steal Application Access Token","reference":"https://attack.mitre.org/techniques/T1528/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.STORAGE/STORAGEACCOUNTS/REGENERATEKEY/ACTION\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"1e0b832e-957e-43ae-b319-db82d228c908:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1e9fc667-9ff1-4b33-9f40-fefca8537eb0:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1e9fc667-9ff1-4b33-9f40-fefca8537eb0:100.0.0.json new file mode 100644 index 0000000000000..f56918937a5a1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1e9fc667-9ff1-4b33-9f40-fefca8537eb0:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Sudo Activity v100.0.0","rule_id":"1e9fc667-9ff1-4b33-9f40-fefca8537eb0:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for sudo activity from an unusual user context. An unusual sudo user could be due to troubleshooting activity or it could be a sign of credentialed access via compromised accounts.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon sudo activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]}],"anomaly_threshold":75,"machine_learning_job_id":["v3_linux_rare_sudo_user"],"type":"machine_learning"},"id":"1e9fc667-9ff1-4b33-9f40-fefca8537eb0:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1e9fc667-9ff1-4b33-9f40-fefca8537eb0:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1e9fc667-9ff1-4b33-9f40-fefca8537eb0:100.0.1.json new file mode 100644 index 0000000000000..1135a8d4e9cc7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1e9fc667-9ff1-4b33-9f40-fefca8537eb0:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Sudo Activity v100.0.1","rule_id":"1e9fc667-9ff1-4b33-9f40-fefca8537eb0:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for sudo activity from an unusual user context. An unusual sudo user could be due to troubleshooting activity or it could be a sign of credentialed access via compromised accounts.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon sudo activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]}],"anomaly_threshold":75,"machine_learning_job_id":["v3_linux_rare_sudo_user"],"type":"machine_learning"},"id":"1e9fc667-9ff1-4b33-9f40-fefca8537eb0:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1e9fc667-9ff1-4b33-9f40-fefca8537eb0:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1e9fc667-9ff1-4b33-9f40-fefca8537eb0:100.0.2.json new file mode 100644 index 0000000000000..8d56ebe4d2438 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1e9fc667-9ff1-4b33-9f40-fefca8537eb0:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Sudo Activity v100.0.2","rule_id":"1e9fc667-9ff1-4b33-9f40-fefca8537eb0:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for sudo activity from an unusual user context. An unusual sudo user could be due to troubleshooting activity or it could be a sign of credentialed access via compromised accounts.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon sudo activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]}],"anomaly_threshold":75,"machine_learning_job_id":["v3_linux_rare_sudo_user"],"type":"machine_learning"},"id":"1e9fc667-9ff1-4b33-9f40-fefca8537eb0:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1faec04b-d902-4f89-8aff-92cd9043c16f:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1faec04b-d902-4f89-8aff-92cd9043c16f:100.0.0.json new file mode 100644 index 0000000000000..c54c2f30e849d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1faec04b-d902-4f89-8aff-92cd9043c16f:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Linux User Calling the Metadata Service v100.0.0","rule_id":"1faec04b-d902-4f89-8aff-92cd9043c16f:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for anomalous access to the cloud platform metadata service by an unusual user. The metadata service may be targeted in order to harvest credentials or user data scripts containing secrets.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program, or one that runs under a new or rarely used user context, could trigger this detection rule. Manual interrogation of the metadata service during debugging or troubleshooting could trigger this rule."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.005","name":"Cloud Instance Metadata API","reference":"https://attack.mitre.org/techniques/T1552/005/"}]}]}],"anomaly_threshold":75,"machine_learning_job_id":["v3_linux_rare_metadata_user"],"type":"machine_learning"},"id":"1faec04b-d902-4f89-8aff-92cd9043c16f:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1faec04b-d902-4f89-8aff-92cd9043c16f:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1faec04b-d902-4f89-8aff-92cd9043c16f:100.0.1.json new file mode 100644 index 0000000000000..cdd96244e7854 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1faec04b-d902-4f89-8aff-92cd9043c16f:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Linux User Calling the Metadata Service v100.0.1","rule_id":"1faec04b-d902-4f89-8aff-92cd9043c16f:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for anomalous access to the cloud platform metadata service by an unusual user. The metadata service may be targeted in order to harvest credentials or user data scripts containing secrets.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program, or one that runs under a new or rarely used user context, could trigger this detection rule. Manual interrogation of the metadata service during debugging or troubleshooting could trigger this rule."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.005","name":"Cloud Instance Metadata API","reference":"https://attack.mitre.org/techniques/T1552/005/"}]}]}],"anomaly_threshold":75,"machine_learning_job_id":["v3_linux_rare_metadata_user"],"type":"machine_learning"},"id":"1faec04b-d902-4f89-8aff-92cd9043c16f:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1faec04b-d902-4f89-8aff-92cd9043c16f:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1faec04b-d902-4f89-8aff-92cd9043c16f:100.0.2.json new file mode 100644 index 0000000000000..8888cb2be083e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1faec04b-d902-4f89-8aff-92cd9043c16f:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Linux User Calling the Metadata Service v100.0.2","rule_id":"1faec04b-d902-4f89-8aff-92cd9043c16f:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for anomalous access to the cloud platform metadata service by an unusual user. The metadata service may be targeted in order to harvest credentials or user data scripts containing secrets.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program, or one that runs under a new or rarely used user context, could trigger this detection rule. Manual interrogation of the metadata service during debugging or troubleshooting could trigger this rule."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.005","name":"Cloud Instance Metadata API","reference":"https://attack.mitre.org/techniques/T1552/005/"}]}]}],"anomaly_threshold":75,"machine_learning_job_id":["v3_linux_rare_metadata_user"],"type":"machine_learning"},"id":"1faec04b-d902-4f89-8aff-92cd9043c16f:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1fe3b299-fbb5-4657-a937-1d746f2c711a:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1fe3b299-fbb5-4657-a937-1d746f2c711a:101.0.0.json new file mode 100644 index 0000000000000..d4e73535d807c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1fe3b299-fbb5-4657-a937-1d746f2c711a:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Network Activity from a Windows System Binary v101.0.0","rule_id":"1fe3b299-fbb5-4657-a937-1d746f2c711a:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies network activity from unexpected system applications. This may indicate adversarial activity as these applications are often leveraged by adversaries to execute code and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/"}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=5m\n [process where event.type == \"start\" and\n\n /* known applocker bypasses */\n (process.name : \"bginfo.exe\" or\n process.name : \"cdb.exe\" or\n process.name : \"control.exe\" or\n process.name : \"cmstp.exe\" or\n process.name : \"csi.exe\" or\n process.name : \"dnx.exe\" or\n process.name : \"fsi.exe\" or\n process.name : \"ieexec.exe\" or\n process.name : \"iexpress.exe\" or\n process.name : \"installutil.exe\" or\n process.name : \"Microsoft.Workflow.Compiler.exe\" or\n process.name : \"MSBuild.exe\" or\n process.name : \"msdt.exe\" or\n process.name : \"mshta.exe\" or\n process.name : \"msiexec.exe\" or\n process.name : \"msxsl.exe\" or\n process.name : \"odbcconf.exe\" or\n process.name : \"rcsi.exe\" or\n process.name : \"regsvr32.exe\" or\n process.name : \"xwizard.exe\")]\n [network where\n (process.name : \"bginfo.exe\" or\n process.name : \"cdb.exe\" or\n process.name : \"control.exe\" or\n process.name : \"cmstp.exe\" or\n process.name : \"csi.exe\" or\n process.name : \"dnx.exe\" or\n process.name : \"fsi.exe\" or\n process.name : \"ieexec.exe\" or\n process.name : \"iexpress.exe\" or\n process.name : \"installutil.exe\" or\n process.name : \"Microsoft.Workflow.Compiler.exe\" or\n process.name : \"MSBuild.exe\" or\n process.name : \"msdt.exe\" or\n process.name : \"mshta.exe\" or\n process.name : \"msiexec.exe\" or\n process.name : \"msxsl.exe\" or\n process.name : \"odbcconf.exe\" or\n process.name : \"rcsi.exe\" or\n process.name : \"regsvr32.exe\" or\n process.name : \"xwizard.exe\")]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"1fe3b299-fbb5-4657-a937-1d746f2c711a:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1fe3b299-fbb5-4657-a937-1d746f2c711a:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1fe3b299-fbb5-4657-a937-1d746f2c711a:101.0.1.json new file mode 100644 index 0000000000000..856c3ca0a4dbb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1fe3b299-fbb5-4657-a937-1d746f2c711a:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Network Activity from a Windows System Binary v101.0.1","rule_id":"1fe3b299-fbb5-4657-a937-1d746f2c711a:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies network activity from unexpected system applications. This may indicate adversarial activity as these applications are often leveraged by adversaries to execute code and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/"}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=5m\n [process where event.type == \"start\" and\n\n /* known applocker bypasses */\n (process.name : \"bginfo.exe\" or\n process.name : \"cdb.exe\" or\n process.name : \"control.exe\" or\n process.name : \"cmstp.exe\" or\n process.name : \"csi.exe\" or\n process.name : \"dnx.exe\" or\n process.name : \"fsi.exe\" or\n process.name : \"ieexec.exe\" or\n process.name : \"iexpress.exe\" or\n process.name : \"installutil.exe\" or\n process.name : \"Microsoft.Workflow.Compiler.exe\" or\n process.name : \"MSBuild.exe\" or\n process.name : \"msdt.exe\" or\n process.name : \"mshta.exe\" or\n process.name : \"msiexec.exe\" or\n process.name : \"msxsl.exe\" or\n process.name : \"odbcconf.exe\" or\n process.name : \"rcsi.exe\" or\n process.name : \"regsvr32.exe\" or\n process.name : \"xwizard.exe\")]\n [network where\n (process.name : \"bginfo.exe\" or\n process.name : \"cdb.exe\" or\n process.name : \"control.exe\" or\n process.name : \"cmstp.exe\" or\n process.name : \"csi.exe\" or\n process.name : \"dnx.exe\" or\n process.name : \"fsi.exe\" or\n process.name : \"ieexec.exe\" or\n process.name : \"iexpress.exe\" or\n process.name : \"installutil.exe\" or\n process.name : \"Microsoft.Workflow.Compiler.exe\" or\n process.name : \"MSBuild.exe\" or\n process.name : \"msdt.exe\" or\n process.name : \"mshta.exe\" or\n process.name : \"msiexec.exe\" or\n process.name : \"msxsl.exe\" or\n process.name : \"odbcconf.exe\" or\n process.name : \"rcsi.exe\" or\n process.name : \"regsvr32.exe\" or\n process.name : \"xwizard.exe\")]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"1fe3b299-fbb5-4657-a937-1d746f2c711a:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/1fe3b299-fbb5-4657-a937-1d746f2c711a:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/1fe3b299-fbb5-4657-a937-1d746f2c711a:101.0.2.json new file mode 100644 index 0000000000000..80d0ba29f8d08 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/1fe3b299-fbb5-4657-a937-1d746f2c711a:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Network Activity from a Windows System Binary v101.0.2","rule_id":"1fe3b299-fbb5-4657-a937-1d746f2c711a:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies network activity from unexpected system applications. This may indicate adversarial activity as these applications are often leveraged by adversaries to execute code and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/"}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=5m\n [process where event.type == \"start\" and\n\n /* known applocker bypasses */\n (process.name : \"bginfo.exe\" or\n process.name : \"cdb.exe\" or\n process.name : \"control.exe\" or\n process.name : \"cmstp.exe\" or\n process.name : \"csi.exe\" or\n process.name : \"dnx.exe\" or\n process.name : \"fsi.exe\" or\n process.name : \"ieexec.exe\" or\n process.name : \"iexpress.exe\" or\n process.name : \"installutil.exe\" or\n process.name : \"Microsoft.Workflow.Compiler.exe\" or\n process.name : \"MSBuild.exe\" or\n process.name : \"msdt.exe\" or\n process.name : \"mshta.exe\" or\n process.name : \"msiexec.exe\" or\n process.name : \"msxsl.exe\" or\n process.name : \"odbcconf.exe\" or\n process.name : \"rcsi.exe\" or\n process.name : \"regsvr32.exe\" or\n process.name : \"xwizard.exe\")]\n [network where\n (process.name : \"bginfo.exe\" or\n process.name : \"cdb.exe\" or\n process.name : \"control.exe\" or\n process.name : \"cmstp.exe\" or\n process.name : \"csi.exe\" or\n process.name : \"dnx.exe\" or\n process.name : \"fsi.exe\" or\n process.name : \"ieexec.exe\" or\n process.name : \"iexpress.exe\" or\n process.name : \"installutil.exe\" or\n process.name : \"Microsoft.Workflow.Compiler.exe\" or\n process.name : \"MSBuild.exe\" or\n process.name : \"msdt.exe\" or\n process.name : \"mshta.exe\" or\n process.name : \"msiexec.exe\" or\n process.name : \"msxsl.exe\" or\n process.name : \"odbcconf.exe\" or\n process.name : \"rcsi.exe\" or\n process.name : \"regsvr32.exe\" or\n process.name : \"xwizard.exe\")]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"1fe3b299-fbb5-4657-a937-1d746f2c711a:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2003cdc8-8d83-4aa5-b132-1f9a8eb48514:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2003cdc8-8d83-4aa5-b132-1f9a8eb48514:100.0.0.json new file mode 100644 index 0000000000000..6cff66b13b21f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2003cdc8-8d83-4aa5-b132-1f9a8eb48514:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Exploit - Detected - Elastic Endgame v100.0.0","rule_id":"2003cdc8-8d83-4aa5-b132-1f9a8eb48514:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected an Exploit. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:exploit_event or endgame.event_subtype_full:exploit_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"2003cdc8-8d83-4aa5-b132-1f9a8eb48514:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2003cdc8-8d83-4aa5-b132-1f9a8eb48514:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2003cdc8-8d83-4aa5-b132-1f9a8eb48514:100.0.1.json new file mode 100644 index 0000000000000..939ee49a56608 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2003cdc8-8d83-4aa5-b132-1f9a8eb48514:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Exploit - Detected - Elastic Endgame v100.0.1","rule_id":"2003cdc8-8d83-4aa5-b132-1f9a8eb48514:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected an Exploit. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:exploit_event or endgame.event_subtype_full:exploit_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"2003cdc8-8d83-4aa5-b132-1f9a8eb48514:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2003cdc8-8d83-4aa5-b132-1f9a8eb48514:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2003cdc8-8d83-4aa5-b132-1f9a8eb48514:100.0.2.json new file mode 100644 index 0000000000000..80c9d5ac02d06 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2003cdc8-8d83-4aa5-b132-1f9a8eb48514:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Exploit - Detected - Elastic Endgame v100.0.2","rule_id":"2003cdc8-8d83-4aa5-b132-1f9a8eb48514:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected an Exploit. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:exploit_event or endgame.event_subtype_full:exploit_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"2003cdc8-8d83-4aa5-b132-1f9a8eb48514:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/201200f1-a99b-43fb-88ed-f65a45c4972c:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/201200f1-a99b-43fb-88ed-f65a45c4972c:102.0.0.json new file mode 100644 index 0000000000000..16fc959574a0a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/201200f1-a99b-43fb-88ed-f65a45c4972c:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious .NET Code Compilation v102.0.0","rule_id":"201200f1-a99b-43fb-88ed-f65a45c4972c:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious .NET code execution. connections.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1027","name":"Obfuscated Files or Information","reference":"https://attack.mitre.org/techniques/T1027/","subtechnique":[{"id":"T1027.004","name":"Compile After Delivery","reference":"https://attack.mitre.org/techniques/T1027/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"csc.exe\", \"vbc.exe\") and\n process.parent.name : (\"wscript.exe\", \"mshta.exe\", \"cscript.exe\", \"wmic.exe\", \"svchost.exe\", \"rundll32.exe\", \"cmstp.exe\", \"regsvr32.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"201200f1-a99b-43fb-88ed-f65a45c4972c:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/201200f1-a99b-43fb-88ed-f65a45c4972c:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/201200f1-a99b-43fb-88ed-f65a45c4972c:102.0.1.json new file mode 100644 index 0000000000000..f1af46e790047 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/201200f1-a99b-43fb-88ed-f65a45c4972c:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious .NET Code Compilation v102.0.1","rule_id":"201200f1-a99b-43fb-88ed-f65a45c4972c:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious .NET code execution. connections.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1027","name":"Obfuscated Files or Information","reference":"https://attack.mitre.org/techniques/T1027/","subtechnique":[{"id":"T1027.004","name":"Compile After Delivery","reference":"https://attack.mitre.org/techniques/T1027/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"csc.exe\", \"vbc.exe\") and\n process.parent.name : (\"wscript.exe\", \"mshta.exe\", \"cscript.exe\", \"wmic.exe\", \"svchost.exe\", \"rundll32.exe\", \"cmstp.exe\", \"regsvr32.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"201200f1-a99b-43fb-88ed-f65a45c4972c:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/201200f1-a99b-43fb-88ed-f65a45c4972c:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/201200f1-a99b-43fb-88ed-f65a45c4972c:102.0.2.json new file mode 100644 index 0000000000000..f336a875cef1f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/201200f1-a99b-43fb-88ed-f65a45c4972c:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious .NET Code Compilation v102.0.2","rule_id":"201200f1-a99b-43fb-88ed-f65a45c4972c:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious .NET code execution. connections.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1027","name":"Obfuscated Files or Information","reference":"https://attack.mitre.org/techniques/T1027/","subtechnique":[{"id":"T1027.004","name":"Compile After Delivery","reference":"https://attack.mitre.org/techniques/T1027/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"csc.exe\", \"vbc.exe\") and\n process.parent.name : (\"wscript.exe\", \"mshta.exe\", \"cscript.exe\", \"wmic.exe\", \"svchost.exe\", \"rundll32.exe\", \"cmstp.exe\", \"regsvr32.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"201200f1-a99b-43fb-88ed-f65a45c4972c:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/203ab79b-239b-4aa5-8e54-fc50623ee8e4:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/203ab79b-239b-4aa5-8e54-fc50623ee8e4:102.0.0.json new file mode 100644 index 0000000000000..27546dc5823b2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/203ab79b-239b-4aa5-8e54-fc50623ee8e4:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Creation or Modification of Root Certificate v102.0.0","rule_id":"203ab79b-239b-4aa5-8e54-fc50623ee8e4:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of a local trusted root certificate in Windows. The install of a malicious root certificate would allow an attacker the ability to masquerade malicious files as valid signed components from any entity (for example, Microsoft). It could also allow an attacker to decrypt SSL traffic.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Creation or Modification of Root Certificate\n\nRoot certificates are the primary level of certifications that tell a browser that the communication is trusted and\nlegitimate. This verification is based upon the identification of a certification authority. Windows\nadds several trusted root certificates so browsers can use them to communicate with websites.\n\n[Check out this post](https://www.thewindowsclub.com/what-are-root-certificates-windows) for more details on root certificates and the involved cryptography.\n\nThis rule identifies the creation or modification of a root certificate by monitoring registry modifications. The\ninstallation of a malicious root certificate would allow an attacker the ability to masquerade malicious files as valid\nsigned components from any entity (for example, Microsoft). It could also allow an attacker to decrypt SSL traffic.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate abnormal behaviors observed by the subject process such as network connections, other registry or file\nmodifications, and any spawned child processes.\n- If one of the processes is suspicious, retrieve it and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This detection may be triggered by certain applications that install root certificates for the purpose of inspecting\nSSL traffic. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove the malicious certificate from the root certificate store.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain applications may install root certificates for the purpose of inspecting SSL traffic."],"from":"now-9m","references":["https://posts.specterops.io/code-signing-certificate-cloning-attacks-and-defenses-6f98657fc6ec","https://www.ired.team/offensive-security/persistence/t1130-install-root-certificate"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1553","name":"Subvert Trust Controls","reference":"https://attack.mitre.org/techniques/T1553/","subtechnique":[{"id":"T1553.004","name":"Install Root Certificate","reference":"https://attack.mitre.org/techniques/T1553/004/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n registry.path :\n (\n \"HKLM\\\\Software\\\\Microsoft\\\\SystemCertificates\\\\Root\\\\Certificates\\\\*\\\\Blob\",\n \"HKLM\\\\Software\\\\Microsoft\\\\SystemCertificates\\\\AuthRoot\\\\Certificates\\\\*\\\\Blob\",\n \"HKLM\\\\Software\\\\Policies\\\\Microsoft\\\\SystemCertificates\\\\Root\\\\Certificates\\\\*\\\\Blob\",\n \"HKLM\\\\Software\\\\Policies\\\\Microsoft\\\\SystemCertificates\\\\AuthRoot\\\\Certificates\\\\*\\\\Blob\",\n \"\\\\REGISTRY\\\\MACHINE\\\\Software\\\\Microsoft\\\\SystemCertificates\\\\Root\\\\Certificates\\\\*\\\\Blob\",\n \"\\\\REGISTRY\\\\MACHINE\\\\Software\\\\Microsoft\\\\SystemCertificates\\\\AuthRoot\\\\Certificates\\\\*\\\\Blob\",\n \"\\\\REGISTRY\\\\MACHINE\\\\Software\\\\Policies\\\\Microsoft\\\\SystemCertificates\\\\Root\\\\Certificates\\\\*\\\\Blob\",\n \"\\\\REGISTRY\\\\MACHINE\\\\Software\\\\Policies\\\\Microsoft\\\\SystemCertificates\\\\AuthRoot\\\\Certificates\\\\*\\\\Blob\"\n ) and\n not process.executable :\n (\"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\*.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\*.exe\",\n \"?:\\\\Windows\\\\Sysmon64.exe\",\n \"?:\\\\Windows\\\\Sysmon.exe\",\n \"?:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\Platform\\\\*\\\\MsMpEng.exe\",\n \"?:\\\\Windows\\\\WinSxS\\\\*.exe\",\n \"?:\\\\Windows\\\\UUS\\\\amd64\\\\MoUsoCoreWorker.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"203ab79b-239b-4aa5-8e54-fc50623ee8e4:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/203ab79b-239b-4aa5-8e54-fc50623ee8e4:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/203ab79b-239b-4aa5-8e54-fc50623ee8e4:102.0.1.json new file mode 100644 index 0000000000000..5251c8345b957 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/203ab79b-239b-4aa5-8e54-fc50623ee8e4:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Creation or Modification of Root Certificate v102.0.1","rule_id":"203ab79b-239b-4aa5-8e54-fc50623ee8e4:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of a local trusted root certificate in Windows. The install of a malicious root certificate would allow an attacker the ability to masquerade malicious files as valid signed components from any entity (for example, Microsoft). It could also allow an attacker to decrypt SSL traffic.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Creation or Modification of Root Certificate\n\nRoot certificates are the primary level of certifications that tell a browser that the communication is trusted and\nlegitimate. This verification is based upon the identification of a certification authority. Windows\nadds several trusted root certificates so browsers can use them to communicate with websites.\n\n[Check out this post](https://www.thewindowsclub.com/what-are-root-certificates-windows) for more details on root certificates and the involved cryptography.\n\nThis rule identifies the creation or modification of a root certificate by monitoring registry modifications. The\ninstallation of a malicious root certificate would allow an attacker the ability to masquerade malicious files as valid\nsigned components from any entity (for example, Microsoft). It could also allow an attacker to decrypt SSL traffic.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate abnormal behaviors observed by the subject process such as network connections, other registry or file\nmodifications, and any spawned child processes.\n- If one of the processes is suspicious, retrieve it and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This detection may be triggered by certain applications that install root certificates for the purpose of inspecting\nSSL traffic. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove the malicious certificate from the root certificate store.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain applications may install root certificates for the purpose of inspecting SSL traffic."],"from":"now-9m","references":["https://posts.specterops.io/code-signing-certificate-cloning-attacks-and-defenses-6f98657fc6ec","https://www.ired.team/offensive-security/persistence/t1130-install-root-certificate"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1553","name":"Subvert Trust Controls","reference":"https://attack.mitre.org/techniques/T1553/","subtechnique":[{"id":"T1553.004","name":"Install Root Certificate","reference":"https://attack.mitre.org/techniques/T1553/004/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n registry.path :\n (\n \"HKLM\\\\Software\\\\Microsoft\\\\SystemCertificates\\\\Root\\\\Certificates\\\\*\\\\Blob\",\n \"HKLM\\\\Software\\\\Microsoft\\\\SystemCertificates\\\\AuthRoot\\\\Certificates\\\\*\\\\Blob\",\n \"HKLM\\\\Software\\\\Policies\\\\Microsoft\\\\SystemCertificates\\\\Root\\\\Certificates\\\\*\\\\Blob\",\n \"HKLM\\\\Software\\\\Policies\\\\Microsoft\\\\SystemCertificates\\\\AuthRoot\\\\Certificates\\\\*\\\\Blob\",\n \"\\\\REGISTRY\\\\MACHINE\\\\Software\\\\Microsoft\\\\SystemCertificates\\\\Root\\\\Certificates\\\\*\\\\Blob\",\n \"\\\\REGISTRY\\\\MACHINE\\\\Software\\\\Microsoft\\\\SystemCertificates\\\\AuthRoot\\\\Certificates\\\\*\\\\Blob\",\n \"\\\\REGISTRY\\\\MACHINE\\\\Software\\\\Policies\\\\Microsoft\\\\SystemCertificates\\\\Root\\\\Certificates\\\\*\\\\Blob\",\n \"\\\\REGISTRY\\\\MACHINE\\\\Software\\\\Policies\\\\Microsoft\\\\SystemCertificates\\\\AuthRoot\\\\Certificates\\\\*\\\\Blob\"\n ) and\n not process.executable :\n (\"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\*.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\*.exe\",\n \"?:\\\\Windows\\\\Sysmon64.exe\",\n \"?:\\\\Windows\\\\Sysmon.exe\",\n \"?:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\Platform\\\\*\\\\MsMpEng.exe\",\n \"?:\\\\Windows\\\\WinSxS\\\\*.exe\",\n \"?:\\\\Windows\\\\UUS\\\\amd64\\\\MoUsoCoreWorker.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"203ab79b-239b-4aa5-8e54-fc50623ee8e4:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/203ab79b-239b-4aa5-8e54-fc50623ee8e4:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/203ab79b-239b-4aa5-8e54-fc50623ee8e4:102.0.2.json new file mode 100644 index 0000000000000..de0813c550375 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/203ab79b-239b-4aa5-8e54-fc50623ee8e4:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Creation or Modification of Root Certificate v102.0.2","rule_id":"203ab79b-239b-4aa5-8e54-fc50623ee8e4:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of a local trusted root certificate in Windows. The install of a malicious root certificate would allow an attacker the ability to masquerade malicious files as valid signed components from any entity (for example, Microsoft). It could also allow an attacker to decrypt SSL traffic.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Creation or Modification of Root Certificate\n\nRoot certificates are the primary level of certifications that tell a browser that the communication is trusted and\nlegitimate. This verification is based upon the identification of a certification authority. Windows\nadds several trusted root certificates so browsers can use them to communicate with websites.\n\n[Check out this post](https://www.thewindowsclub.com/what-are-root-certificates-windows) for more details on root certificates and the involved cryptography.\n\nThis rule identifies the creation or modification of a root certificate by monitoring registry modifications. The\ninstallation of a malicious root certificate would allow an attacker the ability to masquerade malicious files as valid\nsigned components from any entity (for example, Microsoft). It could also allow an attacker to decrypt SSL traffic.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate abnormal behaviors observed by the subject process such as network connections, other registry or file\nmodifications, and any spawned child processes.\n- If one of the processes is suspicious, retrieve it and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This detection may be triggered by certain applications that install root certificates for the purpose of inspecting\nSSL traffic. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove the malicious certificate from the root certificate store.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain applications may install root certificates for the purpose of inspecting SSL traffic."],"from":"now-9m","references":["https://posts.specterops.io/code-signing-certificate-cloning-attacks-and-defenses-6f98657fc6ec","https://www.ired.team/offensive-security/persistence/t1130-install-root-certificate"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1553","name":"Subvert Trust Controls","reference":"https://attack.mitre.org/techniques/T1553/","subtechnique":[{"id":"T1553.004","name":"Install Root Certificate","reference":"https://attack.mitre.org/techniques/T1553/004/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n registry.path :\n (\n \"HKLM\\\\Software\\\\Microsoft\\\\SystemCertificates\\\\Root\\\\Certificates\\\\*\\\\Blob\",\n \"HKLM\\\\Software\\\\Microsoft\\\\SystemCertificates\\\\AuthRoot\\\\Certificates\\\\*\\\\Blob\",\n \"HKLM\\\\Software\\\\Policies\\\\Microsoft\\\\SystemCertificates\\\\Root\\\\Certificates\\\\*\\\\Blob\",\n \"HKLM\\\\Software\\\\Policies\\\\Microsoft\\\\SystemCertificates\\\\AuthRoot\\\\Certificates\\\\*\\\\Blob\",\n \"\\\\REGISTRY\\\\MACHINE\\\\Software\\\\Microsoft\\\\SystemCertificates\\\\Root\\\\Certificates\\\\*\\\\Blob\",\n \"\\\\REGISTRY\\\\MACHINE\\\\Software\\\\Microsoft\\\\SystemCertificates\\\\AuthRoot\\\\Certificates\\\\*\\\\Blob\",\n \"\\\\REGISTRY\\\\MACHINE\\\\Software\\\\Policies\\\\Microsoft\\\\SystemCertificates\\\\Root\\\\Certificates\\\\*\\\\Blob\",\n \"\\\\REGISTRY\\\\MACHINE\\\\Software\\\\Policies\\\\Microsoft\\\\SystemCertificates\\\\AuthRoot\\\\Certificates\\\\*\\\\Blob\"\n ) and\n not process.executable :\n (\"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\*.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\*.exe\",\n \"?:\\\\Windows\\\\Sysmon64.exe\",\n \"?:\\\\Windows\\\\Sysmon.exe\",\n \"?:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\Platform\\\\*\\\\MsMpEng.exe\",\n \"?:\\\\Windows\\\\WinSxS\\\\*.exe\",\n \"?:\\\\Windows\\\\UUS\\\\amd64\\\\MoUsoCoreWorker.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"203ab79b-239b-4aa5-8e54-fc50623ee8e4:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2045567e-b0af-444a-8c0b-0b6e2dae9e13:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2045567e-b0af-444a-8c0b-0b6e2dae9e13:101.0.0.json new file mode 100644 index 0000000000000..d4c5b5d9a0a9f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2045567e-b0af-444a-8c0b-0b6e2dae9e13:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Route 53 Domain Transferred to Another Account v101.0.0","rule_id":"2045567e-b0af-444a-8c0b-0b6e2dae9e13:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a request has been made to transfer a Route 53 domain to another AWS account.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["A domain may be transferred to another AWS account by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Domain transfers from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/Route53/latest/APIReference/API_Operations_Amazon_Route_53.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:route53.amazonaws.com and event.action:TransferDomainToAnotherAwsAccount and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"2045567e-b0af-444a-8c0b-0b6e2dae9e13:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2045567e-b0af-444a-8c0b-0b6e2dae9e13:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2045567e-b0af-444a-8c0b-0b6e2dae9e13:101.0.1.json new file mode 100644 index 0000000000000..7743867cefc68 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2045567e-b0af-444a-8c0b-0b6e2dae9e13:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Route 53 Domain Transferred to Another Account v101.0.1","rule_id":"2045567e-b0af-444a-8c0b-0b6e2dae9e13:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a request has been made to transfer a Route 53 domain to another AWS account.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["A domain may be transferred to another AWS account by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Domain transfers from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/Route53/latest/APIReference/API_Operations_Amazon_Route_53.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:route53.amazonaws.com and event.action:TransferDomainToAnotherAwsAccount and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"2045567e-b0af-444a-8c0b-0b6e2dae9e13:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2045567e-b0af-444a-8c0b-0b6e2dae9e13:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2045567e-b0af-444a-8c0b-0b6e2dae9e13:101.0.2.json new file mode 100644 index 0000000000000..a5d13e7f19126 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2045567e-b0af-444a-8c0b-0b6e2dae9e13:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Route 53 Domain Transferred to Another Account v101.0.2","rule_id":"2045567e-b0af-444a-8c0b-0b6e2dae9e13:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a request has been made to transfer a Route 53 domain to another AWS account.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["A domain may be transferred to another AWS account by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Domain transfers from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/Route53/latest/APIReference/API_Operations_Amazon_Route_53.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:route53.amazonaws.com and event.action:TransferDomainToAnotherAwsAccount and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"2045567e-b0af-444a-8c0b-0b6e2dae9e13:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/20457e4f-d1de-4b92-ae69-142e27a4342a:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/20457e4f-d1de-4b92-ae69-142e27a4342a:100.0.0.json new file mode 100644 index 0000000000000..85a5dc13b709f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/20457e4f-d1de-4b92-ae69-142e27a4342a:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Access of Stored Browser Credentials v100.0.0","rule_id":"20457e4f-d1de-4b92-ae69-142e27a4342a:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a process with arguments pointing to known browser files that store passwords and cookies. Adversaries may acquire credentials from web browsers by reading files specific to the target browser.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://securelist.com/calisto-trojan-for-macos/86543/"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1539","name":"Steal Web Session Cookie","reference":"https://attack.mitre.org/techniques/T1539/"},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.003","name":"Credentials from Web Browsers","reference":"https://attack.mitre.org/techniques/T1555/003/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.args :\n (\n \"/Users/*/Library/Application Support/Google/Chrome/Default/Login Data\",\n \"/Users/*/Library/Application Support/Google/Chrome/Default/Cookies\",\n \"/Users/*/Library/Application Support/Google/Chrome/Profile*/Cookies\",\n \"/Users/*/Library/Cookies*\",\n \"/Users/*/Library/Application Support/Firefox/Profiles/*.default/cookies.sqlite\",\n \"/Users/*/Library/Application Support/Firefox/Profiles/*.default/key*.db\",\n \"/Users/*/Library/Application Support/Firefox/Profiles/*.default/logins.json\",\n \"Login Data\",\n \"Cookies.binarycookies\",\n \"key4.db\",\n \"key3.db\",\n \"logins.json\",\n \"cookies.sqlite\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"20457e4f-d1de-4b92-ae69-142e27a4342a:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/20457e4f-d1de-4b92-ae69-142e27a4342a:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/20457e4f-d1de-4b92-ae69-142e27a4342a:100.0.1.json new file mode 100644 index 0000000000000..fd9fb06b0fe54 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/20457e4f-d1de-4b92-ae69-142e27a4342a:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Access of Stored Browser Credentials v100.0.1","rule_id":"20457e4f-d1de-4b92-ae69-142e27a4342a:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a process with arguments pointing to known browser files that store passwords and cookies. Adversaries may acquire credentials from web browsers by reading files specific to the target browser.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://securelist.com/calisto-trojan-for-macos/86543/"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1539","name":"Steal Web Session Cookie","reference":"https://attack.mitre.org/techniques/T1539/"},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.003","name":"Credentials from Web Browsers","reference":"https://attack.mitre.org/techniques/T1555/003/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.args :\n (\n \"/Users/*/Library/Application Support/Google/Chrome/Default/Login Data\",\n \"/Users/*/Library/Application Support/Google/Chrome/Default/Cookies\",\n \"/Users/*/Library/Application Support/Google/Chrome/Profile*/Cookies\",\n \"/Users/*/Library/Cookies*\",\n \"/Users/*/Library/Application Support/Firefox/Profiles/*.default/cookies.sqlite\",\n \"/Users/*/Library/Application Support/Firefox/Profiles/*.default/key*.db\",\n \"/Users/*/Library/Application Support/Firefox/Profiles/*.default/logins.json\",\n \"Login Data\",\n \"Cookies.binarycookies\",\n \"key4.db\",\n \"key3.db\",\n \"logins.json\",\n \"cookies.sqlite\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"20457e4f-d1de-4b92-ae69-142e27a4342a:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/20457e4f-d1de-4b92-ae69-142e27a4342a:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/20457e4f-d1de-4b92-ae69-142e27a4342a:100.0.2.json new file mode 100644 index 0000000000000..9404aa61331f2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/20457e4f-d1de-4b92-ae69-142e27a4342a:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Access of Stored Browser Credentials v100.0.2","rule_id":"20457e4f-d1de-4b92-ae69-142e27a4342a:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a process with arguments pointing to known browser files that store passwords and cookies. Adversaries may acquire credentials from web browsers by reading files specific to the target browser.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://securelist.com/calisto-trojan-for-macos/86543/"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1539","name":"Steal Web Session Cookie","reference":"https://attack.mitre.org/techniques/T1539/"},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.003","name":"Credentials from Web Browsers","reference":"https://attack.mitre.org/techniques/T1555/003/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.args :\n (\n \"/Users/*/Library/Application Support/Google/Chrome/Default/Login Data\",\n \"/Users/*/Library/Application Support/Google/Chrome/Default/Cookies\",\n \"/Users/*/Library/Application Support/Google/Chrome/Profile*/Cookies\",\n \"/Users/*/Library/Cookies*\",\n \"/Users/*/Library/Application Support/Firefox/Profiles/*.default/cookies.sqlite\",\n \"/Users/*/Library/Application Support/Firefox/Profiles/*.default/key*.db\",\n \"/Users/*/Library/Application Support/Firefox/Profiles/*.default/logins.json\",\n \"Login Data\",\n \"Cookies.binarycookies\",\n \"key4.db\",\n \"key3.db\",\n \"logins.json\",\n \"cookies.sqlite\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"20457e4f-d1de-4b92-ae69-142e27a4342a:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/208dbe77-01ed-4954-8d44-1e5751cb20de:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/208dbe77-01ed-4954-8d44-1e5751cb20de:102.0.0.json new file mode 100644 index 0000000000000..4875e0d36bc47 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/208dbe77-01ed-4954-8d44-1e5751cb20de:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"LSASS Memory Dump Handle Access v102.0.0","rule_id":"208dbe77-01ed-4954-8d44-1e5751cb20de:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies handle requests for the Local Security Authority Subsystem Service (LSASS) object access with specific access masks that many tools with a capability to dump memory to disk use (0x1fffff, 0x1010, 0x120089). This rule is tool agnostic as it has been validated against a host of various LSASS dump tools such as SharpDump, Procdump, Mimikatz, Comsvcs etc. It detects this behavior at a low level and does not depend on a specific tool or dump file name.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating LSASS Memory Dump Handle Access\n\nLocal Security Authority Server Service (LSASS) is a process in Microsoft Windows operating systems that is responsible\nfor enforcing security policy on the system. It verifies users logging on to a Windows computer or server, handles\npassword changes, and creates access tokens.\n\nAdversaries may attempt to access credential material stored in LSASS process memory. After a user logs on,the system\ngenerates and stores a variety of credential materials in LSASS process memory. This is meant to facilitate single\nsign-on (SSO) ensuring a user isn’t prompted each time resource access is requested. These credential materials can be\nharvested by an adversary using administrative user or SYSTEM privileges to conduct lateral movement using\n[alternate authentication material](https://attack.mitre.org/techniques/T1550/).\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- There should be very few or no false positives for this rule. If this activity is expected or noisy in your environment,\nconsider adding exceptions — preferably with a combination of user and command line conditions.\n- If the process is related to antivirus or endpoint detection and response solutions, validate that it is installed on\nthe correct path and signed with the company's valid digital signature.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Scope compromised credentials and disable the accounts.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\nEnsure advanced audit policies for Windows are enabled, specifically:\nObject Access policies [Event ID 4656](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4656) (Handle to an Object was Requested)\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nSystem Audit Policies >\nObject Access >\nAudit File System (Success,Failure)\nAudit Handle Manipulation (Success,Failure)\n```\n\nAlso, this event generates only if the object’s [SACL](https://docs.microsoft.com/en-us/windows/win32/secauthz/access-control-lists) has the required access control entry (ACE) to handle the use of specific access rights.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4656","https://twitter.com/jsecurity101/status/1227987828534956033?s=20","https://attack.mitre.org/techniques/T1003/001/","https://threathunterplaybook.com/notebooks/windows/06_credential_access/WIN-170105221010.html","http://findingbad.blogspot.com/2017/","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"any where event.action == \"File System\" and event.code == \"4656\" and\n\n winlog.event_data.ObjectName : (\n \"?:\\\\Windows\\\\System32\\\\lsass.exe\",\n \"\\\\Device\\\\HarddiskVolume?\\\\Windows\\\\System32\\\\lsass.exe\",\n \"\\\\Device\\\\HarddiskVolume??\\\\Windows\\\\System32\\\\lsass.exe\") and\n\n /* The right to perform an operation controlled by an extended access right. */\n\n (winlog.event_data.AccessMask : (\"0x1fffff\" , \"0x1010\", \"0x120089\", \"0x1F3FFF\") or\n winlog.event_data.AccessMaskDescription : (\"READ_CONTROL\", \"Read from process memory\"))\n\n /* Common Noisy False Positives */\n\n and not winlog.event_data.ProcessName : (\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\system32\\\\wbem\\\\WmiPrvSE.exe\",\n \"?:\\\\Windows\\\\System32\\\\dllhost.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"?:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\*.exe\",\n \"?:\\\\Windows\\\\explorer.exe\")\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AccessMask","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AccessMaskDescription","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ObjectName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ProcessName","type":"keyword"}],"setup":"Ensure advanced audit policies for Windows are enabled, specifically:\nObject Access policies Event ID 4656 (Handle to an Object was Requested)\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nSystem Audit Policies >\nObject Access >\nAudit File System (Success,Failure)\nAudit Handle Manipulation (Success,Failure)\n```\n\nAlso, this event generates only if the object’s SACL has the required access control entry (ACE) to handle the use of specific access rights.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"208dbe77-01ed-4954-8d44-1e5751cb20de:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/208dbe77-01ed-4954-8d44-1e5751cb20de:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/208dbe77-01ed-4954-8d44-1e5751cb20de:102.0.1.json new file mode 100644 index 0000000000000..f195ac70ef2c4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/208dbe77-01ed-4954-8d44-1e5751cb20de:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"LSASS Memory Dump Handle Access v102.0.1","rule_id":"208dbe77-01ed-4954-8d44-1e5751cb20de:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies handle requests for the Local Security Authority Subsystem Service (LSASS) object access with specific access masks that many tools with a capability to dump memory to disk use (0x1fffff, 0x1010, 0x120089). This rule is tool agnostic as it has been validated against a host of various LSASS dump tools such as SharpDump, Procdump, Mimikatz, Comsvcs etc. It detects this behavior at a low level and does not depend on a specific tool or dump file name.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating LSASS Memory Dump Handle Access\n\nLocal Security Authority Server Service (LSASS) is a process in Microsoft Windows operating systems that is responsible\nfor enforcing security policy on the system. It verifies users logging on to a Windows computer or server, handles\npassword changes, and creates access tokens.\n\nAdversaries may attempt to access credential material stored in LSASS process memory. After a user logs on,the system\ngenerates and stores a variety of credential materials in LSASS process memory. This is meant to facilitate single\nsign-on (SSO) ensuring a user isn’t prompted each time resource access is requested. These credential materials can be\nharvested by an adversary using administrative user or SYSTEM privileges to conduct lateral movement using\n[alternate authentication material](https://attack.mitre.org/techniques/T1550/).\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- There should be very few or no false positives for this rule. If this activity is expected or noisy in your environment,\nconsider adding exceptions — preferably with a combination of user and command line conditions.\n- If the process is related to antivirus or endpoint detection and response solutions, validate that it is installed on\nthe correct path and signed with the company's valid digital signature.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Scope compromised credentials and disable the accounts.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\nEnsure advanced audit policies for Windows are enabled, specifically:\nObject Access policies [Event ID 4656](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4656) (Handle to an Object was Requested)\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nSystem Audit Policies >\nObject Access >\nAudit File System (Success,Failure)\nAudit Handle Manipulation (Success,Failure)\n```\n\nAlso, this event generates only if the object’s [SACL](https://docs.microsoft.com/en-us/windows/win32/secauthz/access-control-lists) has the required access control entry (ACE) to handle the use of specific access rights.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4656","https://twitter.com/jsecurity101/status/1227987828534956033?s=20","https://attack.mitre.org/techniques/T1003/001/","https://threathunterplaybook.com/notebooks/windows/06_credential_access/WIN-170105221010.html","http://findingbad.blogspot.com/2017/","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"any where event.action == \"File System\" and event.code == \"4656\" and\n\n winlog.event_data.ObjectName : (\n \"?:\\\\Windows\\\\System32\\\\lsass.exe\",\n \"\\\\Device\\\\HarddiskVolume?\\\\Windows\\\\System32\\\\lsass.exe\",\n \"\\\\Device\\\\HarddiskVolume??\\\\Windows\\\\System32\\\\lsass.exe\") and\n\n /* The right to perform an operation controlled by an extended access right. */\n\n (winlog.event_data.AccessMask : (\"0x1fffff\" , \"0x1010\", \"0x120089\", \"0x1F3FFF\") or\n winlog.event_data.AccessMaskDescription : (\"READ_CONTROL\", \"Read from process memory\"))\n\n /* Common Noisy False Positives */\n\n and not winlog.event_data.ProcessName : (\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\system32\\\\wbem\\\\WmiPrvSE.exe\",\n \"?:\\\\Windows\\\\System32\\\\dllhost.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"?:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\*.exe\",\n \"?:\\\\Windows\\\\explorer.exe\")\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AccessMask","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AccessMaskDescription","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ObjectName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ProcessName","type":"keyword"}],"setup":"Ensure advanced audit policies for Windows are enabled, specifically:\nObject Access policies Event ID 4656 (Handle to an Object was Requested)\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nSystem Audit Policies >\nObject Access >\nAudit File System (Success,Failure)\nAudit Handle Manipulation (Success,Failure)\n```\n\nAlso, this event generates only if the object’s SACL has the required access control entry (ACE) to handle the use of specific access rights.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"208dbe77-01ed-4954-8d44-1e5751cb20de:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/208dbe77-01ed-4954-8d44-1e5751cb20de:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/208dbe77-01ed-4954-8d44-1e5751cb20de:102.0.2.json new file mode 100644 index 0000000000000..9d2cb347c103c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/208dbe77-01ed-4954-8d44-1e5751cb20de:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"LSASS Memory Dump Handle Access v102.0.2","rule_id":"208dbe77-01ed-4954-8d44-1e5751cb20de:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies handle requests for the Local Security Authority Subsystem Service (LSASS) object access with specific access masks that many tools with a capability to dump memory to disk use (0x1fffff, 0x1010, 0x120089). This rule is tool agnostic as it has been validated against a host of various LSASS dump tools such as SharpDump, Procdump, Mimikatz, Comsvcs etc. It detects this behavior at a low level and does not depend on a specific tool or dump file name.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating LSASS Memory Dump Handle Access\n\nLocal Security Authority Server Service (LSASS) is a process in Microsoft Windows operating systems that is responsible\nfor enforcing security policy on the system. It verifies users logging on to a Windows computer or server, handles\npassword changes, and creates access tokens.\n\nAdversaries may attempt to access credential material stored in LSASS process memory. After a user logs on,the system\ngenerates and stores a variety of credential materials in LSASS process memory. This is meant to facilitate single\nsign-on (SSO) ensuring a user isn’t prompted each time resource access is requested. These credential materials can be\nharvested by an adversary using administrative user or SYSTEM privileges to conduct lateral movement using\n[alternate authentication material](https://attack.mitre.org/techniques/T1550/).\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- There should be very few or no false positives for this rule. If this activity is expected or noisy in your environment,\nconsider adding exceptions — preferably with a combination of user and command line conditions.\n- If the process is related to antivirus or endpoint detection and response solutions, validate that it is installed on\nthe correct path and signed with the company's valid digital signature.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Scope compromised credentials and disable the accounts.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\nEnsure advanced audit policies for Windows are enabled, specifically:\nObject Access policies [Event ID 4656](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4656) (Handle to an Object was Requested)\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nSystem Audit Policies >\nObject Access >\nAudit File System (Success,Failure)\nAudit Handle Manipulation (Success,Failure)\n```\n\nAlso, this event generates only if the object’s [SACL](https://docs.microsoft.com/en-us/windows/win32/secauthz/access-control-lists) has the required access control entry (ACE) to handle the use of specific access rights.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4656","https://twitter.com/jsecurity101/status/1227987828534956033?s=20","https://attack.mitre.org/techniques/T1003/001/","https://threathunterplaybook.com/notebooks/windows/06_credential_access/WIN-170105221010.html","http://findingbad.blogspot.com/2017/","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"any where event.action == \"File System\" and event.code == \"4656\" and\n\n winlog.event_data.ObjectName : (\n \"?:\\\\Windows\\\\System32\\\\lsass.exe\",\n \"\\\\Device\\\\HarddiskVolume?\\\\Windows\\\\System32\\\\lsass.exe\",\n \"\\\\Device\\\\HarddiskVolume??\\\\Windows\\\\System32\\\\lsass.exe\") and\n\n /* The right to perform an operation controlled by an extended access right. */\n\n (winlog.event_data.AccessMask : (\"0x1fffff\" , \"0x1010\", \"0x120089\", \"0x1F3FFF\") or\n winlog.event_data.AccessMaskDescription : (\"READ_CONTROL\", \"Read from process memory\"))\n\n /* Common Noisy False Positives */\n\n and not winlog.event_data.ProcessName : (\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\system32\\\\wbem\\\\WmiPrvSE.exe\",\n \"?:\\\\Windows\\\\System32\\\\dllhost.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"?:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\*.exe\",\n \"?:\\\\Windows\\\\explorer.exe\")\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AccessMask","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AccessMaskDescription","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ObjectName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ProcessName","type":"keyword"}],"setup":"Ensure advanced audit policies for Windows are enabled, specifically:\nObject Access policies Event ID 4656 (Handle to an Object was Requested)\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nSystem Audit Policies >\nObject Access >\nAudit File System (Success,Failure)\nAudit Handle Manipulation (Success,Failure)\n```\n\nAlso, this event generates only if the object’s SACL has the required access control entry (ACE) to handle the use of specific access rights.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"208dbe77-01ed-4954-8d44-1e5751cb20de:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/220be143-5c67-4fdb-b6ce-dd6826d024fd:1.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/220be143-5c67-4fdb-b6ce-dd6826d024fd:1.0.0.json new file mode 100644 index 0000000000000..aba47947df717 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/220be143-5c67-4fdb-b6ce-dd6826d024fd:1.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Full User-Mode Dumps Enabled System-Wide v1.0.0","rule_id":"220be143-5c67-4fdb-b6ce-dd6826d024fd:1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the enable of the full user-mode dumps feature system-wide. This feature allows Windows Error Reporting (WER) to collect data after an application crashes. This setting is a requirement for the LSASS Shtinkering attack, which fakes the communication of a crash on LSASS, generating a dump of the process memory, which gives the attacker access to the credentials present on the system without having to bring malware to the system. This setting is not enabled by default, and applications must create their registry subkeys to hold settings that enable them to collect dumps.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/win32/wer/collecting-user-mode-dumps","https://github.com/deepinstinct/Lsass-Shtinkering","https://media.defcon.org/DEF%20CON%2030/DEF%20CON%2030%20presentations/Asaf%20Gilboa%20-%20LSASS%20Shtinkering%20Abusing%20Windows%20Error%20Reporting%20to%20Dump%20LSASS.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1112","name":"Modify Registry","reference":"https://attack.mitre.org/techniques/T1112/"}]}],"language":"eql","query":"registry where registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\Windows Error Reporting\\\\LocalDumps\\\\DumpType\" and\n registry.data.strings : (\"2\", \"0x00000002\") and\n not (process.executable : \"?:\\\\Windows\\\\system32\\\\svchost.exe\" and user.id : (\"S-1-5-18\", \"S-1-5-19\", \"S-1-5-20\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"220be143-5c67-4fdb-b6ce-dd6826d024fd:1.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/220be143-5c67-4fdb-b6ce-dd6826d024fd:1.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/220be143-5c67-4fdb-b6ce-dd6826d024fd:1.0.1.json new file mode 100644 index 0000000000000..2d26e69386f12 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/220be143-5c67-4fdb-b6ce-dd6826d024fd:1.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Full User-Mode Dumps Enabled System-Wide v1.0.1","rule_id":"220be143-5c67-4fdb-b6ce-dd6826d024fd:1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the enable of the full user-mode dumps feature system-wide. This feature allows Windows Error Reporting (WER) to collect data after an application crashes. This setting is a requirement for the LSASS Shtinkering attack, which fakes the communication of a crash on LSASS, generating a dump of the process memory, which gives the attacker access to the credentials present on the system without having to bring malware to the system. This setting is not enabled by default, and applications must create their registry subkeys to hold settings that enable them to collect dumps.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/win32/wer/collecting-user-mode-dumps","https://github.com/deepinstinct/Lsass-Shtinkering","https://media.defcon.org/DEF%20CON%2030/DEF%20CON%2030%20presentations/Asaf%20Gilboa%20-%20LSASS%20Shtinkering%20Abusing%20Windows%20Error%20Reporting%20to%20Dump%20LSASS.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1112","name":"Modify Registry","reference":"https://attack.mitre.org/techniques/T1112/"}]}],"language":"eql","query":"registry where registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\Windows Error Reporting\\\\LocalDumps\\\\DumpType\" and\n registry.data.strings : (\"2\", \"0x00000002\") and\n not (process.executable : \"?:\\\\Windows\\\\system32\\\\svchost.exe\" and user.id : (\"S-1-5-18\", \"S-1-5-19\", \"S-1-5-20\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"220be143-5c67-4fdb-b6ce-dd6826d024fd:1.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/220be143-5c67-4fdb-b6ce-dd6826d024fd:1.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/220be143-5c67-4fdb-b6ce-dd6826d024fd:1.0.2.json new file mode 100644 index 0000000000000..c30d5b9c6eb36 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/220be143-5c67-4fdb-b6ce-dd6826d024fd:1.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Full User-Mode Dumps Enabled System-Wide v1.0.2","rule_id":"220be143-5c67-4fdb-b6ce-dd6826d024fd:1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the enable of the full user-mode dumps feature system-wide. This feature allows Windows Error Reporting (WER) to collect data after an application crashes. This setting is a requirement for the LSASS Shtinkering attack, which fakes the communication of a crash on LSASS, generating a dump of the process memory, which gives the attacker access to the credentials present on the system without having to bring malware to the system. This setting is not enabled by default, and applications must create their registry subkeys to hold settings that enable them to collect dumps.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/win32/wer/collecting-user-mode-dumps","https://github.com/deepinstinct/Lsass-Shtinkering","https://media.defcon.org/DEF%20CON%2030/DEF%20CON%2030%20presentations/Asaf%20Gilboa%20-%20LSASS%20Shtinkering%20Abusing%20Windows%20Error%20Reporting%20to%20Dump%20LSASS.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1112","name":"Modify Registry","reference":"https://attack.mitre.org/techniques/T1112/"}]}],"language":"eql","query":"registry where registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\Windows Error Reporting\\\\LocalDumps\\\\DumpType\" and\n registry.data.strings : (\"2\", \"0x00000002\") and\n not (process.executable : \"?:\\\\Windows\\\\system32\\\\svchost.exe\" and user.id : (\"S-1-5-18\", \"S-1-5-19\", \"S-1-5-20\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"220be143-5c67-4fdb-b6ce-dd6826d024fd:1.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2215b8bd-1759-4ffa-8ab8-55c8e6b32e7f:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2215b8bd-1759-4ffa-8ab8-55c8e6b32e7f:100.0.0.json new file mode 100644 index 0000000000000..7b1d1271b3813 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2215b8bd-1759-4ffa-8ab8-55c8e6b32e7f:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"SSH Authorized Keys File Modification v100.0.0","rule_id":"2215b8bd-1759-4ffa-8ab8-55c8e6b32e7f:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The Secure Shell (SSH) authorized_keys file specifies which users are allowed to log into a server using public key authentication. Adversaries may modify it to maintain persistence on a victim host by adding their own public key(s).","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.004","name":"SSH Authorized Keys","reference":"https://attack.mitre.org/techniques/T1098/004/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and event.type:(change or creation) and\n file.name:(\"authorized_keys\" or \"authorized_keys2\") and\n not process.executable:\n (/Library/Developer/CommandLineTools/usr/bin/git or\n /usr/local/Cellar/maven/*/libexec/bin/mvn or\n /Library/Java/JavaVirtualMachines/jdk*.jdk/Contents/Home/bin/java or\n /usr/bin/vim or\n /usr/local/Cellar/coreutils/*/bin/gcat or\n /usr/bin/bsdtar or\n /usr/bin/nautilus or\n /usr/bin/scp or\n /usr/bin/touch or\n /var/lib/docker/* or\n /usr/bin/google_guest_agent)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},"id":"2215b8bd-1759-4ffa-8ab8-55c8e6b32e7f:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2215b8bd-1759-4ffa-8ab8-55c8e6b32e7f:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2215b8bd-1759-4ffa-8ab8-55c8e6b32e7f:100.0.1.json new file mode 100644 index 0000000000000..d714300d3a153 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2215b8bd-1759-4ffa-8ab8-55c8e6b32e7f:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"SSH Authorized Keys File Modification v100.0.1","rule_id":"2215b8bd-1759-4ffa-8ab8-55c8e6b32e7f:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The Secure Shell (SSH) authorized_keys file specifies which users are allowed to log into a server using public key authentication. Adversaries may modify it to maintain persistence on a victim host by adding their own public key(s).","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.004","name":"SSH Authorized Keys","reference":"https://attack.mitre.org/techniques/T1098/004/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and event.type:(change or creation) and\n file.name:(\"authorized_keys\" or \"authorized_keys2\") and\n not process.executable:\n (/Library/Developer/CommandLineTools/usr/bin/git or\n /usr/local/Cellar/maven/*/libexec/bin/mvn or\n /Library/Java/JavaVirtualMachines/jdk*.jdk/Contents/Home/bin/java or\n /usr/bin/vim or\n /usr/local/Cellar/coreutils/*/bin/gcat or\n /usr/bin/bsdtar or\n /usr/bin/nautilus or\n /usr/bin/scp or\n /usr/bin/touch or\n /var/lib/docker/* or\n /usr/bin/google_guest_agent)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},"id":"2215b8bd-1759-4ffa-8ab8-55c8e6b32e7f:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2215b8bd-1759-4ffa-8ab8-55c8e6b32e7f:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2215b8bd-1759-4ffa-8ab8-55c8e6b32e7f:100.0.2.json new file mode 100644 index 0000000000000..58e1542f9603a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2215b8bd-1759-4ffa-8ab8-55c8e6b32e7f:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"SSH Authorized Keys File Modification v100.0.2","rule_id":"2215b8bd-1759-4ffa-8ab8-55c8e6b32e7f:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The Secure Shell (SSH) authorized_keys file specifies which users are allowed to log into a server using public key authentication. Adversaries may modify it to maintain persistence on a victim host by adding their own public key(s).","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.004","name":"SSH Authorized Keys","reference":"https://attack.mitre.org/techniques/T1098/004/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and event.type:(change or creation) and\n file.name:(\"authorized_keys\" or \"authorized_keys2\") and\n not process.executable:\n (/Library/Developer/CommandLineTools/usr/bin/git or\n /usr/local/Cellar/maven/*/libexec/bin/mvn or\n /Library/Java/JavaVirtualMachines/jdk*.jdk/Contents/Home/bin/java or\n /usr/bin/vim or\n /usr/local/Cellar/coreutils/*/bin/gcat or\n /usr/bin/bsdtar or\n /usr/bin/nautilus or\n /usr/bin/scp or\n /usr/bin/touch or\n /var/lib/docker/* or\n /usr/bin/google_guest_agent)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},"id":"2215b8bd-1759-4ffa-8ab8-55c8e6b32e7f:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/22599847-5d13-48cb-8872-5796fee8692b:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/22599847-5d13-48cb-8872-5796fee8692b:102.0.0.json new file mode 100644 index 0000000000000..542b0165b83a9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/22599847-5d13-48cb-8872-5796fee8692b:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"SUNBURST Command and Control Activity v102.0.0","rule_id":"22599847-5d13-48cb-8872-5796fee8692b:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The malware known as SUNBURST targets the SolarWind's Orion business software for command and control. This rule detects post-exploitation command and control activity of the SUNBURST backdoor.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating SUNBURST Command and Control Activity\n\nSUNBURST is a trojanized version of a digitally signed SolarWinds Orion plugin called\nSolarWinds.Orion.Core.BusinessLayer.dll. The plugin contains a backdoor that communicates via HTTP to third-party\nservers. After an initial dormant period of up to two weeks, SUNBURST may retrieve and execute commands that instruct\nthe backdoor to transfer files, execute files, profile the system, reboot the system, and disable system services.\nThe malware's network traffic attempts to blend in with legitimate SolarWinds activity by imitating the Orion\nImprovement Program (OIP) protocol, and the malware stores persistent state data within legitimate plugin configuration files. The\nbackdoor uses multiple obfuscated blocklists to identify processes, services, and drivers associated with forensic and\nanti-virus tools.\n\nMore details on SUNBURST can be found on the [Mandiant Report](https://www.mandiant.com/resources/sunburst-additional-technical-details).\n\nThis rule identifies suspicious network connections that attempt to blend in with legitimate SolarWinds activity\nby imitating the Orion Improvement Program (OIP) protocol behavior.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the executable involved using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity should not happen legitimately. The security team should address any potential benign true positive\n(B-TP), as this configuration can put the environment at risk.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Reimage the host operating system and restore compromised files to clean versions.\n- Upgrade SolarWinds systems to the latest version to eradicate the chance of reinfection by abusing the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2020/12/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor.html"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.001","name":"Web Protocols","reference":"https://attack.mitre.org/techniques/T1071/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1195","name":"Supply Chain Compromise","reference":"https://attack.mitre.org/techniques/T1195/","subtechnique":[{"id":"T1195.002","name":"Compromise Software Supply Chain","reference":"https://attack.mitre.org/techniques/T1195/002/"}]}]}],"language":"eql","query":"network where event.type == \"protocol\" and network.protocol == \"http\" and\n process.name : (\"ConfigurationWizard.exe\",\n \"NetFlowService.exe\",\n \"NetflowDatabaseMaintenance.exe\",\n \"SolarWinds.Administration.exe\",\n \"SolarWinds.BusinessLayerHost.exe\",\n \"SolarWinds.BusinessLayerHostx64.exe\",\n \"SolarWinds.Collector.Service.exe\",\n \"SolarwindsDiagnostics.exe\") and\n (\n (\n (http.request.body.content : \"*/swip/Upload.ashx*\" and http.request.body.content : (\"POST*\", \"PUT*\")) or\n (http.request.body.content : (\"*/swip/SystemDescription*\", \"*/swip/Events*\") and http.request.body.content : (\"GET*\", \"HEAD*\"))\n ) and\n not http.request.body.content : \"*solarwinds.com*\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"http.request.body.content","type":"wildcard"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"22599847-5d13-48cb-8872-5796fee8692b:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/22599847-5d13-48cb-8872-5796fee8692b:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/22599847-5d13-48cb-8872-5796fee8692b:102.0.1.json new file mode 100644 index 0000000000000..ac0fb83026504 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/22599847-5d13-48cb-8872-5796fee8692b:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"SUNBURST Command and Control Activity v102.0.1","rule_id":"22599847-5d13-48cb-8872-5796fee8692b:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The malware known as SUNBURST targets the SolarWind's Orion business software for command and control. This rule detects post-exploitation command and control activity of the SUNBURST backdoor.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating SUNBURST Command and Control Activity\n\nSUNBURST is a trojanized version of a digitally signed SolarWinds Orion plugin called\nSolarWinds.Orion.Core.BusinessLayer.dll. The plugin contains a backdoor that communicates via HTTP to third-party\nservers. After an initial dormant period of up to two weeks, SUNBURST may retrieve and execute commands that instruct\nthe backdoor to transfer files, execute files, profile the system, reboot the system, and disable system services.\nThe malware's network traffic attempts to blend in with legitimate SolarWinds activity by imitating the Orion\nImprovement Program (OIP) protocol, and the malware stores persistent state data within legitimate plugin configuration files. The\nbackdoor uses multiple obfuscated blocklists to identify processes, services, and drivers associated with forensic and\nanti-virus tools.\n\nMore details on SUNBURST can be found on the [Mandiant Report](https://www.mandiant.com/resources/sunburst-additional-technical-details).\n\nThis rule identifies suspicious network connections that attempt to blend in with legitimate SolarWinds activity\nby imitating the Orion Improvement Program (OIP) protocol behavior.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the executable involved using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity should not happen legitimately. The security team should address any potential benign true positive\n(B-TP), as this configuration can put the environment at risk.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Reimage the host operating system and restore compromised files to clean versions.\n- Upgrade SolarWinds systems to the latest version to eradicate the chance of reinfection by abusing the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2020/12/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor.html"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.001","name":"Web Protocols","reference":"https://attack.mitre.org/techniques/T1071/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1195","name":"Supply Chain Compromise","reference":"https://attack.mitre.org/techniques/T1195/","subtechnique":[{"id":"T1195.002","name":"Compromise Software Supply Chain","reference":"https://attack.mitre.org/techniques/T1195/002/"}]}]}],"language":"eql","query":"network where event.type == \"protocol\" and network.protocol == \"http\" and\n process.name : (\"ConfigurationWizard.exe\",\n \"NetFlowService.exe\",\n \"NetflowDatabaseMaintenance.exe\",\n \"SolarWinds.Administration.exe\",\n \"SolarWinds.BusinessLayerHost.exe\",\n \"SolarWinds.BusinessLayerHostx64.exe\",\n \"SolarWinds.Collector.Service.exe\",\n \"SolarwindsDiagnostics.exe\") and\n (\n (\n (http.request.body.content : \"*/swip/Upload.ashx*\" and http.request.body.content : (\"POST*\", \"PUT*\")) or\n (http.request.body.content : (\"*/swip/SystemDescription*\", \"*/swip/Events*\") and http.request.body.content : (\"GET*\", \"HEAD*\"))\n ) and\n not http.request.body.content : \"*solarwinds.com*\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"http.request.body.content","type":"wildcard"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"22599847-5d13-48cb-8872-5796fee8692b:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/22599847-5d13-48cb-8872-5796fee8692b:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/22599847-5d13-48cb-8872-5796fee8692b:102.0.2.json new file mode 100644 index 0000000000000..3a2733681d2c5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/22599847-5d13-48cb-8872-5796fee8692b:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"SUNBURST Command and Control Activity v102.0.2","rule_id":"22599847-5d13-48cb-8872-5796fee8692b:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The malware known as SUNBURST targets the SolarWind's Orion business software for command and control. This rule detects post-exploitation command and control activity of the SUNBURST backdoor.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating SUNBURST Command and Control Activity\n\nSUNBURST is a trojanized version of a digitally signed SolarWinds Orion plugin called\nSolarWinds.Orion.Core.BusinessLayer.dll. The plugin contains a backdoor that communicates via HTTP to third-party\nservers. After an initial dormant period of up to two weeks, SUNBURST may retrieve and execute commands that instruct\nthe backdoor to transfer files, execute files, profile the system, reboot the system, and disable system services.\nThe malware's network traffic attempts to blend in with legitimate SolarWinds activity by imitating the Orion\nImprovement Program (OIP) protocol, and the malware stores persistent state data within legitimate plugin configuration files. The\nbackdoor uses multiple obfuscated blocklists to identify processes, services, and drivers associated with forensic and\nanti-virus tools.\n\nMore details on SUNBURST can be found on the [Mandiant Report](https://www.mandiant.com/resources/sunburst-additional-technical-details).\n\nThis rule identifies suspicious network connections that attempt to blend in with legitimate SolarWinds activity\nby imitating the Orion Improvement Program (OIP) protocol behavior.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the executable involved using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity should not happen legitimately. The security team should address any potential benign true positive\n(B-TP), as this configuration can put the environment at risk.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Reimage the host operating system and restore compromised files to clean versions.\n- Upgrade SolarWinds systems to the latest version to eradicate the chance of reinfection by abusing the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2020/12/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor.html"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.001","name":"Web Protocols","reference":"https://attack.mitre.org/techniques/T1071/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1195","name":"Supply Chain Compromise","reference":"https://attack.mitre.org/techniques/T1195/","subtechnique":[{"id":"T1195.002","name":"Compromise Software Supply Chain","reference":"https://attack.mitre.org/techniques/T1195/002/"}]}]}],"language":"eql","query":"network where event.type == \"protocol\" and network.protocol == \"http\" and\n process.name : (\"ConfigurationWizard.exe\",\n \"NetFlowService.exe\",\n \"NetflowDatabaseMaintenance.exe\",\n \"SolarWinds.Administration.exe\",\n \"SolarWinds.BusinessLayerHost.exe\",\n \"SolarWinds.BusinessLayerHostx64.exe\",\n \"SolarWinds.Collector.Service.exe\",\n \"SolarwindsDiagnostics.exe\") and\n (\n (\n (http.request.body.content : \"*/swip/Upload.ashx*\" and http.request.body.content : (\"POST*\", \"PUT*\")) or\n (http.request.body.content : (\"*/swip/SystemDescription*\", \"*/swip/Events*\") and http.request.body.content : (\"GET*\", \"HEAD*\"))\n ) and\n not http.request.body.content : \"*solarwinds.com*\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"http.request.body.content","type":"wildcard"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"22599847-5d13-48cb-8872-5796fee8692b:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/227dc608-e558-43d9-b521-150772250bae:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/227dc608-e558-43d9-b521-150772250bae:101.0.0.json new file mode 100644 index 0000000000000..2665afa4484bf --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/227dc608-e558-43d9-b521-150772250bae:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS S3 Bucket Configuration Deletion v101.0.0","rule_id":"227dc608-e558-43d9-b521-150772250bae:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of various Amazon Simple Storage Service (S3) bucket configuration components.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Bucket components may be deleted by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Bucket component deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketPolicy.html","https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html","https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html","https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html","https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:s3.amazonaws.com and\n event.action:(DeleteBucketPolicy or DeleteBucketReplication or DeleteBucketCors or\n DeleteBucketEncryption or DeleteBucketLifecycle)\n and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"227dc608-e558-43d9-b521-150772250bae:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/227dc608-e558-43d9-b521-150772250bae:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/227dc608-e558-43d9-b521-150772250bae:101.0.1.json new file mode 100644 index 0000000000000..78e89929c7884 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/227dc608-e558-43d9-b521-150772250bae:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS S3 Bucket Configuration Deletion v101.0.1","rule_id":"227dc608-e558-43d9-b521-150772250bae:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of various Amazon Simple Storage Service (S3) bucket configuration components.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Bucket components may be deleted by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Bucket component deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketPolicy.html","https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html","https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html","https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html","https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:s3.amazonaws.com and\n event.action:(DeleteBucketPolicy or DeleteBucketReplication or DeleteBucketCors or\n DeleteBucketEncryption or DeleteBucketLifecycle)\n and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"227dc608-e558-43d9-b521-150772250bae:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/227dc608-e558-43d9-b521-150772250bae:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/227dc608-e558-43d9-b521-150772250bae:101.0.2.json new file mode 100644 index 0000000000000..40c34d971e36a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/227dc608-e558-43d9-b521-150772250bae:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS S3 Bucket Configuration Deletion v101.0.2","rule_id":"227dc608-e558-43d9-b521-150772250bae:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of various Amazon Simple Storage Service (S3) bucket configuration components.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Bucket components may be deleted by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Bucket component deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketPolicy.html","https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html","https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html","https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html","https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:s3.amazonaws.com and\n event.action:(DeleteBucketPolicy or DeleteBucketReplication or DeleteBucketCors or\n DeleteBucketEncryption or DeleteBucketLifecycle)\n and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"227dc608-e558-43d9-b521-150772250bae:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/231876e7-4d1f-4d63-a47c-47dd1acdc1cb:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/231876e7-4d1f-4d63-a47c-47dd1acdc1cb:102.0.0.json new file mode 100644 index 0000000000000..3a26a375480dc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/231876e7-4d1f-4d63-a47c-47dd1acdc1cb:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Shell via Web Server v102.0.0","rule_id":"231876e7-4d1f-4d63-a47c-47dd1acdc1cb:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious commands executed via a web server, which may suggest a vulnerability and remote shell access.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Shell via Web Server\n\nAdversaries may backdoor web servers with web shells to establish persistent access to systems. A web shell is a web\nscript that is placed on an openly accessible web server to allow an adversary to use the web server as a gateway into a\nnetwork. A web shell may provide a set of functions to execute or a command line interface on the system that hosts the\nweb server.\n\nThis rule detects a web server process spawning script and command line interface programs, potentially indicating\nattackers executing commands using the web shell.\n\n#### Possible investigation steps\n\n- Investigate abnormal behaviors observed by the subject process such as network connections, file modifications, and\nany other spawned child processes.\n- Examine the command line to determine which commands or scripts were executed.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- If scripts or executables were dropped, retrieve the files and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - Check if the domain is newly registered or unexpected.\n - Check the reputation of the domain or IP address.\n - File access, modification, and creation activities.\n - Cron jobs, services and other persistence mechanisms.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently\nmalicious must be monitored by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Network monitoring or management products may have a web server component that runs shell commands as part of normal behavior."],"from":"now-9m","references":["https://pentestlab.blog/tag/web-shell/","https://www.elastic.co/security-labs/elastic-response-to-the-the-spring4shell-vulnerability-cve-2022-22965"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1505","name":"Server Software Component","reference":"https://attack.mitre.org/techniques/T1505/","subtechnique":[{"id":"T1505.003","name":"Web Shell","reference":"https://attack.mitre.org/techniques/T1505/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\nprocess.name:(bash or dash or ash or zsh or \"python*\" or \"perl*\" or \"php*\") and\nprocess.parent.name:(\"apache\" or \"nginx\" or \"www\" or \"apache2\" or \"httpd\" or \"www-data\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},"id":"231876e7-4d1f-4d63-a47c-47dd1acdc1cb:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/231876e7-4d1f-4d63-a47c-47dd1acdc1cb:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/231876e7-4d1f-4d63-a47c-47dd1acdc1cb:102.0.1.json new file mode 100644 index 0000000000000..8b255e4a7bd44 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/231876e7-4d1f-4d63-a47c-47dd1acdc1cb:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Shell via Web Server v102.0.1","rule_id":"231876e7-4d1f-4d63-a47c-47dd1acdc1cb:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious commands executed via a web server, which may suggest a vulnerability and remote shell access.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Shell via Web Server\n\nAdversaries may backdoor web servers with web shells to establish persistent access to systems. A web shell is a web\nscript that is placed on an openly accessible web server to allow an adversary to use the web server as a gateway into a\nnetwork. A web shell may provide a set of functions to execute or a command line interface on the system that hosts the\nweb server.\n\nThis rule detects a web server process spawning script and command line interface programs, potentially indicating\nattackers executing commands using the web shell.\n\n#### Possible investigation steps\n\n- Investigate abnormal behaviors observed by the subject process such as network connections, file modifications, and\nany other spawned child processes.\n- Examine the command line to determine which commands or scripts were executed.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- If scripts or executables were dropped, retrieve the files and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - Check if the domain is newly registered or unexpected.\n - Check the reputation of the domain or IP address.\n - File access, modification, and creation activities.\n - Cron jobs, services and other persistence mechanisms.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently\nmalicious must be monitored by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Network monitoring or management products may have a web server component that runs shell commands as part of normal behavior."],"from":"now-9m","references":["https://pentestlab.blog/tag/web-shell/","https://www.elastic.co/security-labs/elastic-response-to-the-the-spring4shell-vulnerability-cve-2022-22965"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1505","name":"Server Software Component","reference":"https://attack.mitre.org/techniques/T1505/","subtechnique":[{"id":"T1505.003","name":"Web Shell","reference":"https://attack.mitre.org/techniques/T1505/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\nprocess.name:(bash or dash or ash or zsh or \"python*\" or \"perl*\" or \"php*\") and\nprocess.parent.name:(\"apache\" or \"nginx\" or \"www\" or \"apache2\" or \"httpd\" or \"www-data\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},"id":"231876e7-4d1f-4d63-a47c-47dd1acdc1cb:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/231876e7-4d1f-4d63-a47c-47dd1acdc1cb:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/231876e7-4d1f-4d63-a47c-47dd1acdc1cb:102.0.2.json new file mode 100644 index 0000000000000..4242d55162e5e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/231876e7-4d1f-4d63-a47c-47dd1acdc1cb:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Shell via Web Server v102.0.2","rule_id":"231876e7-4d1f-4d63-a47c-47dd1acdc1cb:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious commands executed via a web server, which may suggest a vulnerability and remote shell access.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Shell via Web Server\n\nAdversaries may backdoor web servers with web shells to establish persistent access to systems. A web shell is a web\nscript that is placed on an openly accessible web server to allow an adversary to use the web server as a gateway into a\nnetwork. A web shell may provide a set of functions to execute or a command line interface on the system that hosts the\nweb server.\n\nThis rule detects a web server process spawning script and command line interface programs, potentially indicating\nattackers executing commands using the web shell.\n\n#### Possible investigation steps\n\n- Investigate abnormal behaviors observed by the subject process such as network connections, file modifications, and\nany other spawned child processes.\n- Examine the command line to determine which commands or scripts were executed.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- If scripts or executables were dropped, retrieve the files and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - Check if the domain is newly registered or unexpected.\n - Check the reputation of the domain or IP address.\n - File access, modification, and creation activities.\n - Cron jobs, services and other persistence mechanisms.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently\nmalicious must be monitored by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Network monitoring or management products may have a web server component that runs shell commands as part of normal behavior."],"from":"now-9m","references":["https://pentestlab.blog/tag/web-shell/","https://www.elastic.co/security-labs/elastic-response-to-the-the-spring4shell-vulnerability-cve-2022-22965"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1505","name":"Server Software Component","reference":"https://attack.mitre.org/techniques/T1505/","subtechnique":[{"id":"T1505.003","name":"Web Shell","reference":"https://attack.mitre.org/techniques/T1505/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\nprocess.name:(bash or dash or ash or zsh or \"python*\" or \"perl*\" or \"php*\") and\nprocess.parent.name:(\"apache\" or \"nginx\" or \"www\" or \"apache2\" or \"httpd\" or \"www-data\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},"id":"231876e7-4d1f-4d63-a47c-47dd1acdc1cb:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2326d1b2-9acf-4dee-bd21-867ea7378b4d:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2326d1b2-9acf-4dee-bd21-867ea7378b4d:102.0.0.json new file mode 100644 index 0000000000000..63245dc480885 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2326d1b2-9acf-4dee-bd21-867ea7378b4d:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Storage Bucket Permissions Modification v102.0.0","rule_id":"2326d1b2-9acf-4dee-bd21-867ea7378b4d:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when the Identity and Access Management (IAM) permissions are modified for a Google Cloud Platform (GCP) storage bucket. An adversary may modify the permissions on a storage bucket to weaken their target's security controls or an administrator may inadvertently modify the permissions, which could lead to data exposure or loss.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Storage bucket permissions may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/storage/docs/access-control/iam-permissions"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1222","name":"File and Directory Permissions Modification","reference":"https://attack.mitre.org/techniques/T1222/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:\"storage.setIamPermissions\" and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"2326d1b2-9acf-4dee-bd21-867ea7378b4d:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2326d1b2-9acf-4dee-bd21-867ea7378b4d:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2326d1b2-9acf-4dee-bd21-867ea7378b4d:102.0.1.json new file mode 100644 index 0000000000000..0e7562d78fe99 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2326d1b2-9acf-4dee-bd21-867ea7378b4d:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Storage Bucket Permissions Modification v102.0.1","rule_id":"2326d1b2-9acf-4dee-bd21-867ea7378b4d:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when the Identity and Access Management (IAM) permissions are modified for a Google Cloud Platform (GCP) storage bucket. An adversary may modify the permissions on a storage bucket to weaken their target's security controls or an administrator may inadvertently modify the permissions, which could lead to data exposure or loss.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Storage bucket permissions may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/storage/docs/access-control/iam-permissions"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1222","name":"File and Directory Permissions Modification","reference":"https://attack.mitre.org/techniques/T1222/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:\"storage.setIamPermissions\" and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"2326d1b2-9acf-4dee-bd21-867ea7378b4d:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2326d1b2-9acf-4dee-bd21-867ea7378b4d:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2326d1b2-9acf-4dee-bd21-867ea7378b4d:102.0.2.json new file mode 100644 index 0000000000000..d36d462f74738 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2326d1b2-9acf-4dee-bd21-867ea7378b4d:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Storage Bucket Permissions Modification v102.0.2","rule_id":"2326d1b2-9acf-4dee-bd21-867ea7378b4d:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when the Identity and Access Management (IAM) permissions are modified for a Google Cloud Platform (GCP) storage bucket. An adversary may modify the permissions on a storage bucket to weaken their target's security controls or an administrator may inadvertently modify the permissions, which could lead to data exposure or loss.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Storage bucket permissions may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/storage/docs/access-control/iam-permissions"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1222","name":"File and Directory Permissions Modification","reference":"https://attack.mitre.org/techniques/T1222/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:\"storage.setIamPermissions\" and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"2326d1b2-9acf-4dee-bd21-867ea7378b4d:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2339f03c-f53f-40fa-834b-40c5983fc41f:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2339f03c-f53f-40fa-834b-40c5983fc41f:100.0.0.json new file mode 100644 index 0000000000000..bf44dbd10d00d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2339f03c-f53f-40fa-834b-40c5983fc41f:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kernel module load via insmod v100.0.0","rule_id":"2339f03c-f53f-40fa-834b-40c5983fc41f:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of the insmod binary to load a Linux kernel object file. Threat actors can use this binary, given they have root privileges, to load a rootkit on a system providing them with complete control and the ability to hide from security products. Manually loading a kernel module in this manner should not be at all common and can indicate suspcious or malicious behavior.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://decoded.avast.io/davidalvarez/linux-threat-hunting-syslogk-a-kernel-rootkit-found-under-development-in-the-wild/"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Rootkit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.006","name":"Kernel Modules and Extensions","reference":"https://attack.mitre.org/techniques/T1547/006/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.executable : \"/usr/sbin/insmod\" and process.args : \"*.ko\"\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},"id":"2339f03c-f53f-40fa-834b-40c5983fc41f:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2339f03c-f53f-40fa-834b-40c5983fc41f:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2339f03c-f53f-40fa-834b-40c5983fc41f:100.0.1.json new file mode 100644 index 0000000000000..95ede8f72ae83 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2339f03c-f53f-40fa-834b-40c5983fc41f:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kernel module load via insmod v100.0.1","rule_id":"2339f03c-f53f-40fa-834b-40c5983fc41f:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of the insmod binary to load a Linux kernel object file. Threat actors can use this binary, given they have root privileges, to load a rootkit on a system providing them with complete control and the ability to hide from security products. Manually loading a kernel module in this manner should not be at all common and can indicate suspcious or malicious behavior.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://decoded.avast.io/davidalvarez/linux-threat-hunting-syslogk-a-kernel-rootkit-found-under-development-in-the-wild/"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Rootkit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.006","name":"Kernel Modules and Extensions","reference":"https://attack.mitre.org/techniques/T1547/006/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.executable : \"/usr/sbin/insmod\" and process.args : \"*.ko\"\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},"id":"2339f03c-f53f-40fa-834b-40c5983fc41f:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2339f03c-f53f-40fa-834b-40c5983fc41f:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2339f03c-f53f-40fa-834b-40c5983fc41f:100.0.2.json new file mode 100644 index 0000000000000..8b9db229b1801 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2339f03c-f53f-40fa-834b-40c5983fc41f:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kernel module load via insmod v100.0.2","rule_id":"2339f03c-f53f-40fa-834b-40c5983fc41f:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of the insmod binary to load a Linux kernel object file. Threat actors can use this binary, given they have root privileges, to load a rootkit on a system providing them with complete control and the ability to hide from security products. Manually loading a kernel module in this manner should not be at all common and can indicate suspcious or malicious behavior.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://decoded.avast.io/davidalvarez/linux-threat-hunting-syslogk-a-kernel-rootkit-found-under-development-in-the-wild/"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Rootkit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.006","name":"Kernel Modules and Extensions","reference":"https://attack.mitre.org/techniques/T1547/006/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.executable : \"/usr/sbin/insmod\" and process.args : \"*.ko\"\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},"id":"2339f03c-f53f-40fa-834b-40c5983fc41f:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/25224a80-5a4a-4b8a-991e-6ab390465c4f:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/25224a80-5a4a-4b8a-991e-6ab390465c4f:100.0.0.json new file mode 100644 index 0000000000000..a5aebb452b388 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/25224a80-5a4a-4b8a-991e-6ab390465c4f:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Lateral Movement via Startup Folder v100.0.0","rule_id":"25224a80-5a4a-4b8a-991e-6ab390465c4f:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious file creations in the startup folder of a remote system. An adversary could abuse this to move laterally by dropping a malicious script or executable that will be executed after a reboot or user logon.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.mdsec.co.uk/2017/06/rdpinception/"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"file where event.type in (\"creation\", \"change\") and\n\n /* via RDP TSClient mounted share or SMB */\n (process.name : \"mstsc.exe\" or process.pid == 4) and\n\n file.path : (\"?:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\\\\*\",\n \"?:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\\\\*\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"25224a80-5a4a-4b8a-991e-6ab390465c4f:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/25224a80-5a4a-4b8a-991e-6ab390465c4f:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/25224a80-5a4a-4b8a-991e-6ab390465c4f:100.0.1.json new file mode 100644 index 0000000000000..9c5cb42f793b8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/25224a80-5a4a-4b8a-991e-6ab390465c4f:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Lateral Movement via Startup Folder v100.0.1","rule_id":"25224a80-5a4a-4b8a-991e-6ab390465c4f:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious file creations in the startup folder of a remote system. An adversary could abuse this to move laterally by dropping a malicious script or executable that will be executed after a reboot or user logon.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.mdsec.co.uk/2017/06/rdpinception/"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"file where event.type in (\"creation\", \"change\") and\n\n /* via RDP TSClient mounted share or SMB */\n (process.name : \"mstsc.exe\" or process.pid == 4) and\n\n file.path : (\"?:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\\\\*\",\n \"?:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\\\\*\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"25224a80-5a4a-4b8a-991e-6ab390465c4f:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/25224a80-5a4a-4b8a-991e-6ab390465c4f:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/25224a80-5a4a-4b8a-991e-6ab390465c4f:100.0.2.json new file mode 100644 index 0000000000000..9e3332f2140fe --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/25224a80-5a4a-4b8a-991e-6ab390465c4f:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Lateral Movement via Startup Folder v100.0.2","rule_id":"25224a80-5a4a-4b8a-991e-6ab390465c4f:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious file creations in the startup folder of a remote system. An adversary could abuse this to move laterally by dropping a malicious script or executable that will be executed after a reboot or user logon.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.mdsec.co.uk/2017/06/rdpinception/"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"file where event.type in (\"creation\", \"change\") and\n\n /* via RDP TSClient mounted share or SMB */\n (process.name : \"mstsc.exe\" or process.pid == 4) and\n\n file.path : (\"?:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\\\\*\",\n \"?:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\\\\*\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"25224a80-5a4a-4b8a-991e-6ab390465c4f:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2636aa6c-88b5-4337-9c31-8d0192a8ef45:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2636aa6c-88b5-4337-9c31-8d0192a8ef45:101.0.0.json new file mode 100644 index 0000000000000..396f4eb80f851 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2636aa6c-88b5-4337-9c31-8d0192a8ef45:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Blob Container Access Level Modification v101.0.0","rule_id":"2636aa6c-88b5-4337-9c31-8d0192a8ef45:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies changes to container access levels in Azure. Anonymous public read access to containers and blobs in Azure is a way to share data broadly, but can present a security risk if access to sensitive data is not managed judiciously.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Access level modifications may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Access level modifications from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/storage/blobs/anonymous-read-access-prevent"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1526","name":"Cloud Service Discovery","reference":"https://attack.mitre.org/techniques/T1526/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.STORAGE/STORAGEACCOUNTS/BLOBSERVICES/CONTAINERS/WRITE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"2636aa6c-88b5-4337-9c31-8d0192a8ef45:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2636aa6c-88b5-4337-9c31-8d0192a8ef45:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2636aa6c-88b5-4337-9c31-8d0192a8ef45:101.0.1.json new file mode 100644 index 0000000000000..507775f43a049 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2636aa6c-88b5-4337-9c31-8d0192a8ef45:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Blob Container Access Level Modification v101.0.1","rule_id":"2636aa6c-88b5-4337-9c31-8d0192a8ef45:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies changes to container access levels in Azure. Anonymous public read access to containers and blobs in Azure is a way to share data broadly, but can present a security risk if access to sensitive data is not managed judiciously.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Access level modifications may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Access level modifications from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/storage/blobs/anonymous-read-access-prevent"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1526","name":"Cloud Service Discovery","reference":"https://attack.mitre.org/techniques/T1526/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.STORAGE/STORAGEACCOUNTS/BLOBSERVICES/CONTAINERS/WRITE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"2636aa6c-88b5-4337-9c31-8d0192a8ef45:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2636aa6c-88b5-4337-9c31-8d0192a8ef45:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2636aa6c-88b5-4337-9c31-8d0192a8ef45:101.0.2.json new file mode 100644 index 0000000000000..f5649dc06eb71 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2636aa6c-88b5-4337-9c31-8d0192a8ef45:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Blob Container Access Level Modification v101.0.2","rule_id":"2636aa6c-88b5-4337-9c31-8d0192a8ef45:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies changes to container access levels in Azure. Anonymous public read access to containers and blobs in Azure is a way to share data broadly, but can present a security risk if access to sensitive data is not managed judiciously.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Access level modifications may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Access level modifications from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/storage/blobs/anonymous-read-access-prevent"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1526","name":"Cloud Service Discovery","reference":"https://attack.mitre.org/techniques/T1526/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.STORAGE/STORAGEACCOUNTS/BLOBSERVICES/CONTAINERS/WRITE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"2636aa6c-88b5-4337-9c31-8d0192a8ef45:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/265db8f5-fc73-4d0d-b434-6483b56372e2:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/265db8f5-fc73-4d0d-b434-6483b56372e2:102.0.0.json new file mode 100644 index 0000000000000..acb0c3eb2cbde --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/265db8f5-fc73-4d0d-b434-6483b56372e2:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via Update Orchestrator Service Hijack v102.0.0","rule_id":"265db8f5-fc73-4d0d-b434-6483b56372e2:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential hijacking of the Microsoft Update Orchestrator Service to establish persistence with an integrity level of SYSTEM.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Persistence via Update Orchestrator Service Hijack\n\nWindows Update Orchestrator Service is a DCOM service used by other components to install Windows updates that are\nalready downloaded. Windows Update Orchestrator Service was vulnerable to elevation of privileges (any user to local\nsystem) due to an improper authorization of the callers. The vulnerability affected the Windows 10 and Windows Server\nCore products. Fixed by Microsoft on Patch Tuesday June 2020.\n\nThis rule will detect uncommon processes spawned by `svchost.exe` with `UsoSvc` as the command line parameters.\nAttackers can leverage this technique to elevate privileges or maintain persistence.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/irsl/CVE-2020-1313"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","CVE-2020-1313","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.executable : \"C:\\\\Windows\\\\System32\\\\svchost.exe\" and\n process.parent.args : \"UsoSvc\" and\n not process.executable :\n (\"?:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\UUS\\\\Packages\\\\*\\\\amd64\\\\MoUsoCoreWorker.exe\",\n \"?:\\\\Windows\\\\System32\\\\UsoClient.exe\",\n \"?:\\\\Windows\\\\System32\\\\MusNotification.exe\",\n \"?:\\\\Windows\\\\System32\\\\MusNotificationUx.exe\",\n \"?:\\\\Windows\\\\System32\\\\MusNotifyIcon.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerMgr.exe\",\n \"?:\\\\Windows\\\\UUS\\\\amd64\\\\MoUsoCoreWorker.exe\",\n \"?:\\\\Windows\\\\System32\\\\MoUsoCoreWorker.exe\",\n \"?:\\\\Windows\\\\UUS\\\\amd64\\\\UsoCoreWorker.exe\",\n \"?:\\\\Windows\\\\System32\\\\UsoCoreWorker.exe\",\n \"?:\\\\Program Files\\\\Common Files\\\\microsoft shared\\\\ClickToRun\\\\OfficeC2RClient.exe\") and\n not process.name : (\"MoUsoCoreWorker.exe\", \"OfficeC2RClient.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"265db8f5-fc73-4d0d-b434-6483b56372e2:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/265db8f5-fc73-4d0d-b434-6483b56372e2:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/265db8f5-fc73-4d0d-b434-6483b56372e2:102.0.1.json new file mode 100644 index 0000000000000..d29b9d64e7c45 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/265db8f5-fc73-4d0d-b434-6483b56372e2:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via Update Orchestrator Service Hijack v102.0.1","rule_id":"265db8f5-fc73-4d0d-b434-6483b56372e2:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential hijacking of the Microsoft Update Orchestrator Service to establish persistence with an integrity level of SYSTEM.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Persistence via Update Orchestrator Service Hijack\n\nWindows Update Orchestrator Service is a DCOM service used by other components to install Windows updates that are\nalready downloaded. Windows Update Orchestrator Service was vulnerable to elevation of privileges (any user to local\nsystem) due to an improper authorization of the callers. The vulnerability affected the Windows 10 and Windows Server\nCore products. Fixed by Microsoft on Patch Tuesday June 2020.\n\nThis rule will detect uncommon processes spawned by `svchost.exe` with `UsoSvc` as the command line parameters.\nAttackers can leverage this technique to elevate privileges or maintain persistence.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/irsl/CVE-2020-1313"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","CVE-2020-1313","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.executable : \"C:\\\\Windows\\\\System32\\\\svchost.exe\" and\n process.parent.args : \"UsoSvc\" and\n not process.executable :\n (\"?:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\UUS\\\\Packages\\\\*\\\\amd64\\\\MoUsoCoreWorker.exe\",\n \"?:\\\\Windows\\\\System32\\\\UsoClient.exe\",\n \"?:\\\\Windows\\\\System32\\\\MusNotification.exe\",\n \"?:\\\\Windows\\\\System32\\\\MusNotificationUx.exe\",\n \"?:\\\\Windows\\\\System32\\\\MusNotifyIcon.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerMgr.exe\",\n \"?:\\\\Windows\\\\UUS\\\\amd64\\\\MoUsoCoreWorker.exe\",\n \"?:\\\\Windows\\\\System32\\\\MoUsoCoreWorker.exe\",\n \"?:\\\\Windows\\\\UUS\\\\amd64\\\\UsoCoreWorker.exe\",\n \"?:\\\\Windows\\\\System32\\\\UsoCoreWorker.exe\",\n \"?:\\\\Program Files\\\\Common Files\\\\microsoft shared\\\\ClickToRun\\\\OfficeC2RClient.exe\") and\n not process.name : (\"MoUsoCoreWorker.exe\", \"OfficeC2RClient.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"265db8f5-fc73-4d0d-b434-6483b56372e2:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/265db8f5-fc73-4d0d-b434-6483b56372e2:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/265db8f5-fc73-4d0d-b434-6483b56372e2:102.0.2.json new file mode 100644 index 0000000000000..53da4a597ac65 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/265db8f5-fc73-4d0d-b434-6483b56372e2:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via Update Orchestrator Service Hijack v102.0.2","rule_id":"265db8f5-fc73-4d0d-b434-6483b56372e2:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential hijacking of the Microsoft Update Orchestrator Service to establish persistence with an integrity level of SYSTEM.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Persistence via Update Orchestrator Service Hijack\n\nWindows Update Orchestrator Service is a DCOM service used by other components to install Windows updates that are\nalready downloaded. Windows Update Orchestrator Service was vulnerable to elevation of privileges (any user to local\nsystem) due to an improper authorization of the callers. The vulnerability affected the Windows 10 and Windows Server\nCore products. Fixed by Microsoft on Patch Tuesday June 2020.\n\nThis rule will detect uncommon processes spawned by `svchost.exe` with `UsoSvc` as the command line parameters.\nAttackers can leverage this technique to elevate privileges or maintain persistence.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/irsl/CVE-2020-1313"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","CVE-2020-1313","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.executable : \"C:\\\\Windows\\\\System32\\\\svchost.exe\" and\n process.parent.args : \"UsoSvc\" and\n not process.executable :\n (\"?:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\UUS\\\\Packages\\\\*\\\\amd64\\\\MoUsoCoreWorker.exe\",\n \"?:\\\\Windows\\\\System32\\\\UsoClient.exe\",\n \"?:\\\\Windows\\\\System32\\\\MusNotification.exe\",\n \"?:\\\\Windows\\\\System32\\\\MusNotificationUx.exe\",\n \"?:\\\\Windows\\\\System32\\\\MusNotifyIcon.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerMgr.exe\",\n \"?:\\\\Windows\\\\UUS\\\\amd64\\\\MoUsoCoreWorker.exe\",\n \"?:\\\\Windows\\\\System32\\\\MoUsoCoreWorker.exe\",\n \"?:\\\\Windows\\\\UUS\\\\amd64\\\\UsoCoreWorker.exe\",\n \"?:\\\\Windows\\\\System32\\\\UsoCoreWorker.exe\",\n \"?:\\\\Program Files\\\\Common Files\\\\microsoft shared\\\\ClickToRun\\\\OfficeC2RClient.exe\") and\n not process.name : (\"MoUsoCoreWorker.exe\", \"OfficeC2RClient.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"265db8f5-fc73-4d0d-b434-6483b56372e2:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/26b01043-4f04-4d2f-882a-5a1d2e95751b:1.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/26b01043-4f04-4d2f-882a-5a1d2e95751b:1.0.0.json new file mode 100644 index 0000000000000..df2bf428a4690 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/26b01043-4f04-4d2f-882a-5a1d2e95751b:1.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Privileges Elevation via Parent Process PID Spoofing v1.0.0","rule_id":"26b01043-4f04-4d2f-882a-5a1d2e95751b:1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies parent process spoofing used to create an elevated child process. Adversaries may spoof the parent process identifier (PPID) of a new process to evade process-monitoring defenses or to elevate privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://gist.github.com/xpn/a057a26ec81e736518ee50848b9c2cd6","https://blog.didierstevens.com/2017/03/20/","https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-updateprocthreadattribute","https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1134.002/T1134.002.md"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/","subtechnique":[{"id":"T1134.002","name":"Create Process with Token","reference":"https://attack.mitre.org/techniques/T1134/002/"},{"id":"T1134.004","name":"Parent PID Spoofing","reference":"https://attack.mitre.org/techniques/T1134/004/"}]}]}],"language":"eql","query":"/* This rule is compatible with Elastic Endpoint only */\n\nprocess where event.action == \"start\" and\n\n /* process creation via seclogon */\n process.parent.Ext.real.pid > 0 and\n\n /* PrivEsc to SYSTEM */\n user.id : \"S-1-5-18\" and\n\n /* Common FPs - evasion via hollowing is possible, should be covered by code injection */\n not process.executable : (\"?:\\\\Windows\\\\System32\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerFaultSecure.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\WerFaultSecure.exe\",\n \"?:\\\\Windows\\\\System32\\\\Wermgr.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\Wermgr.exe\",\n \"?:\\\\Windows\\\\SoftwareDistribution\\\\Download\\\\Install\\\\securityhealthsetup.exe\") and\n\n not process.parent.executable : \"?:\\\\Windows\\\\System32\\\\AtBroker.exe\" and\n\n not (process.code_signature.subject_name in\n (\"philandro Software GmbH\", \"Freedom Scientific Inc.\", \"TeamViewer Germany GmbH\", \"Projector.is, Inc.\",\n \"TeamViewer GmbH\", \"Cisco WebEx LLC\", \"Dell Inc\") and process.code_signature.trusted == true)\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"process.code_signature.subject_name","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":false,"name":"process.parent.Ext.real.pid","type":"unknown"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"26b01043-4f04-4d2f-882a-5a1d2e95751b:1.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/26b01043-4f04-4d2f-882a-5a1d2e95751b:1.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/26b01043-4f04-4d2f-882a-5a1d2e95751b:1.0.1.json new file mode 100644 index 0000000000000..041d65ef19983 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/26b01043-4f04-4d2f-882a-5a1d2e95751b:1.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Privileges Elevation via Parent Process PID Spoofing v1.0.1","rule_id":"26b01043-4f04-4d2f-882a-5a1d2e95751b:1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies parent process spoofing used to create an elevated child process. Adversaries may spoof the parent process identifier (PPID) of a new process to evade process-monitoring defenses or to elevate privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://gist.github.com/xpn/a057a26ec81e736518ee50848b9c2cd6","https://blog.didierstevens.com/2017/03/20/","https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-updateprocthreadattribute","https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1134.002/T1134.002.md"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/","subtechnique":[{"id":"T1134.002","name":"Create Process with Token","reference":"https://attack.mitre.org/techniques/T1134/002/"},{"id":"T1134.004","name":"Parent PID Spoofing","reference":"https://attack.mitre.org/techniques/T1134/004/"}]}]}],"language":"eql","query":"/* This rule is compatible with Elastic Endpoint only */\n\nprocess where event.action == \"start\" and\n\n /* process creation via seclogon */\n process.parent.Ext.real.pid > 0 and\n\n /* PrivEsc to SYSTEM */\n user.id : \"S-1-5-18\" and\n\n /* Common FPs - evasion via hollowing is possible, should be covered by code injection */\n not process.executable : (\"?:\\\\Windows\\\\System32\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerFaultSecure.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\WerFaultSecure.exe\",\n \"?:\\\\Windows\\\\System32\\\\Wermgr.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\Wermgr.exe\",\n \"?:\\\\Windows\\\\SoftwareDistribution\\\\Download\\\\Install\\\\securityhealthsetup.exe\") and\n\n not process.parent.executable : \"?:\\\\Windows\\\\System32\\\\AtBroker.exe\" and\n\n not (process.code_signature.subject_name in\n (\"philandro Software GmbH\", \"Freedom Scientific Inc.\", \"TeamViewer Germany GmbH\", \"Projector.is, Inc.\",\n \"TeamViewer GmbH\", \"Cisco WebEx LLC\", \"Dell Inc\") and process.code_signature.trusted == true)\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"process.code_signature.subject_name","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":false,"name":"process.parent.Ext.real.pid","type":"unknown"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"26b01043-4f04-4d2f-882a-5a1d2e95751b:1.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/26b01043-4f04-4d2f-882a-5a1d2e95751b:1.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/26b01043-4f04-4d2f-882a-5a1d2e95751b:1.0.2.json new file mode 100644 index 0000000000000..9b3946971fea4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/26b01043-4f04-4d2f-882a-5a1d2e95751b:1.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Privileges Elevation via Parent Process PID Spoofing v1.0.2","rule_id":"26b01043-4f04-4d2f-882a-5a1d2e95751b:1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies parent process spoofing used to create an elevated child process. Adversaries may spoof the parent process identifier (PPID) of a new process to evade process-monitoring defenses or to elevate privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://gist.github.com/xpn/a057a26ec81e736518ee50848b9c2cd6","https://blog.didierstevens.com/2017/03/20/","https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-updateprocthreadattribute","https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1134.002/T1134.002.md"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/","subtechnique":[{"id":"T1134.002","name":"Create Process with Token","reference":"https://attack.mitre.org/techniques/T1134/002/"},{"id":"T1134.004","name":"Parent PID Spoofing","reference":"https://attack.mitre.org/techniques/T1134/004/"}]}]}],"language":"eql","query":"/* This rule is compatible with Elastic Endpoint only */\n\nprocess where event.action == \"start\" and\n\n /* process creation via seclogon */\n process.parent.Ext.real.pid > 0 and\n\n /* PrivEsc to SYSTEM */\n user.id : \"S-1-5-18\" and\n\n /* Common FPs - evasion via hollowing is possible, should be covered by code injection */\n not process.executable : (\"?:\\\\Windows\\\\System32\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerFaultSecure.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\WerFaultSecure.exe\",\n \"?:\\\\Windows\\\\System32\\\\Wermgr.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\Wermgr.exe\",\n \"?:\\\\Windows\\\\SoftwareDistribution\\\\Download\\\\Install\\\\securityhealthsetup.exe\") and\n\n not process.parent.executable : \"?:\\\\Windows\\\\System32\\\\AtBroker.exe\" and\n\n not (process.code_signature.subject_name in\n (\"philandro Software GmbH\", \"Freedom Scientific Inc.\", \"TeamViewer Germany GmbH\", \"Projector.is, Inc.\",\n \"TeamViewer GmbH\", \"Cisco WebEx LLC\", \"Dell Inc\") and process.code_signature.trusted == true)\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"process.code_signature.subject_name","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":false,"name":"process.parent.Ext.real.pid","type":"unknown"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"26b01043-4f04-4d2f-882a-5a1d2e95751b:1.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/26edba02-6979-4bce-920a-70b080a7be81:103.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/26edba02-6979-4bce-920a-70b080a7be81:103.0.0.json new file mode 100644 index 0000000000000..03d13bf1abcc4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/26edba02-6979-4bce-920a-70b080a7be81:103.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Active Directory High Risk User Sign-in Heuristic v103.0.0","rule_id":"26edba02-6979-4bce-920a-70b080a7be81:103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies high risk Azure Active Directory (AD) sign-ins by leveraging Microsoft Identity Protection machine learning and heuristics.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Azure Active Directory High Risk User Sign-in Heuristic\n\nMicrosoft Identity Protection is an Azure AD security tool that detects various types of identity risks and attacks.\n\nThis rule identifies events produced by the Microsoft Identity Protection with a risk state equal to `confirmedCompromised`\nor `atRisk`.\n\n#### Possible investigation steps\n\n- Identify the Risk Detection that triggered the event. A list with descriptions can be found [here](https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/concept-identity-protection-risks#risk-types-and-detection).\n- Identify the user account involved and validate whether the suspicious activity is normal for that user.\n - Consider the source IP address and geolocation for the involved user account. Do they look normal?\n - Consider the device used to sign in. Is it registered and compliant?\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\nIf this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and device conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Austin Songer"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/reports-monitoring/reference-azure-monitor-sign-ins-log-schema","https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/overview-identity-protection","https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/howto-identity-protection-investigate-risk","https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/howto-identity-protection-investigate-risk#investigation-framework"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.signinlogs and\n azure.signinlogs.properties.risk_state:(\"confirmedCompromised\" or \"atRisk\") and event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.signinlogs.properties.risk_state","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"26edba02-6979-4bce-920a-70b080a7be81:103.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/26edba02-6979-4bce-920a-70b080a7be81:103.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/26edba02-6979-4bce-920a-70b080a7be81:103.0.1.json new file mode 100644 index 0000000000000..659521575c82f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/26edba02-6979-4bce-920a-70b080a7be81:103.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Active Directory High Risk User Sign-in Heuristic v103.0.1","rule_id":"26edba02-6979-4bce-920a-70b080a7be81:103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies high risk Azure Active Directory (AD) sign-ins by leveraging Microsoft Identity Protection machine learning and heuristics.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Azure Active Directory High Risk User Sign-in Heuristic\n\nMicrosoft Identity Protection is an Azure AD security tool that detects various types of identity risks and attacks.\n\nThis rule identifies events produced by the Microsoft Identity Protection with a risk state equal to `confirmedCompromised`\nor `atRisk`.\n\n#### Possible investigation steps\n\n- Identify the Risk Detection that triggered the event. A list with descriptions can be found [here](https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/concept-identity-protection-risks#risk-types-and-detection).\n- Identify the user account involved and validate whether the suspicious activity is normal for that user.\n - Consider the source IP address and geolocation for the involved user account. Do they look normal?\n - Consider the device used to sign in. Is it registered and compliant?\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\nIf this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and device conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Austin Songer"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/reports-monitoring/reference-azure-monitor-sign-ins-log-schema","https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/overview-identity-protection","https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/howto-identity-protection-investigate-risk","https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/howto-identity-protection-investigate-risk#investigation-framework"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.signinlogs and\n azure.signinlogs.properties.risk_state:(\"confirmedCompromised\" or \"atRisk\") and event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.signinlogs.properties.risk_state","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"26edba02-6979-4bce-920a-70b080a7be81:103.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/26edba02-6979-4bce-920a-70b080a7be81:103.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/26edba02-6979-4bce-920a-70b080a7be81:103.0.2.json new file mode 100644 index 0000000000000..5854fbcf8d6a8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/26edba02-6979-4bce-920a-70b080a7be81:103.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Active Directory High Risk User Sign-in Heuristic v103.0.2","rule_id":"26edba02-6979-4bce-920a-70b080a7be81:103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies high risk Azure Active Directory (AD) sign-ins by leveraging Microsoft Identity Protection machine learning and heuristics.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Azure Active Directory High Risk User Sign-in Heuristic\n\nMicrosoft Identity Protection is an Azure AD security tool that detects various types of identity risks and attacks.\n\nThis rule identifies events produced by the Microsoft Identity Protection with a risk state equal to `confirmedCompromised`\nor `atRisk`.\n\n#### Possible investigation steps\n\n- Identify the Risk Detection that triggered the event. A list with descriptions can be found [here](https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/concept-identity-protection-risks#risk-types-and-detection).\n- Identify the user account involved and validate whether the suspicious activity is normal for that user.\n - Consider the source IP address and geolocation for the involved user account. Do they look normal?\n - Consider the device used to sign in. Is it registered and compliant?\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\nIf this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and device conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Austin Songer"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/reports-monitoring/reference-azure-monitor-sign-ins-log-schema","https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/overview-identity-protection","https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/howto-identity-protection-investigate-risk","https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/howto-identity-protection-investigate-risk#investigation-framework"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.signinlogs and\n azure.signinlogs.properties.risk_state:(\"confirmedCompromised\" or \"atRisk\") and event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.signinlogs.properties.risk_state","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"26edba02-6979-4bce-920a-70b080a7be81:103.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/26f68dba-ce29-497b-8e13-b4fde1db5a2d:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/26f68dba-ce29-497b-8e13-b4fde1db5a2d:101.0.0.json new file mode 100644 index 0000000000000..7e4201a1eec9d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/26f68dba-ce29-497b-8e13-b4fde1db5a2d:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempts to Brute Force a Microsoft 365 User Account v101.0.0","rule_id":"26f68dba-ce29-497b-8e13-b4fde1db5a2d:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to brute force a Microsoft 365 user account. An adversary may attempt a brute force attack to obtain unauthorized access to user accounts.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic","Willem D'Haese","Austin Songer"],"false_positives":["Automated processes that attempt to authenticate using expired credentials and unbounded retries may lead to false positives."],"from":"now-30m","references":["https://blueteamblog.com/7-ways-to-monitor-your-office-365-logs-using-siem"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:o365.audit and event.provider:(AzureActiveDirectory or Exchange) and\n event.category:authentication and event.action:(UserLoginFailed or PasswordLogonInitialAuthUsingPassword) and\n not o365.audit.LogonError:(UserAccountNotFound or EntitlementGrantsNotFound or UserStrongAuthEnrollmentRequired or\n UserStrongAuthClientAuthNRequired or InvalidReplyTo)\n","threshold":{"field":["user.id"],"value":10},"type":"threshold","index":["filebeat-*","logs-o365*"],"language":"kuery","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.LogonError","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"26f68dba-ce29-497b-8e13-b4fde1db5a2d:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/26f68dba-ce29-497b-8e13-b4fde1db5a2d:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/26f68dba-ce29-497b-8e13-b4fde1db5a2d:101.0.1.json new file mode 100644 index 0000000000000..d232f1f9c58b6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/26f68dba-ce29-497b-8e13-b4fde1db5a2d:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempts to Brute Force a Microsoft 365 User Account v101.0.1","rule_id":"26f68dba-ce29-497b-8e13-b4fde1db5a2d:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to brute force a Microsoft 365 user account. An adversary may attempt a brute force attack to obtain unauthorized access to user accounts.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic","Willem D'Haese","Austin Songer"],"false_positives":["Automated processes that attempt to authenticate using expired credentials and unbounded retries may lead to false positives."],"from":"now-30m","references":["https://blueteamblog.com/7-ways-to-monitor-your-office-365-logs-using-siem"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:o365.audit and event.provider:(AzureActiveDirectory or Exchange) and\n event.category:authentication and event.action:(UserLoginFailed or PasswordLogonInitialAuthUsingPassword) and\n not o365.audit.LogonError:(UserAccountNotFound or EntitlementGrantsNotFound or UserStrongAuthEnrollmentRequired or\n UserStrongAuthClientAuthNRequired or InvalidReplyTo)\n","threshold":{"field":["user.id"],"value":10},"type":"threshold","index":["filebeat-*","logs-o365*"],"language":"kuery","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.LogonError","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"26f68dba-ce29-497b-8e13-b4fde1db5a2d:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/26f68dba-ce29-497b-8e13-b4fde1db5a2d:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/26f68dba-ce29-497b-8e13-b4fde1db5a2d:101.0.2.json new file mode 100644 index 0000000000000..117d172efa10b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/26f68dba-ce29-497b-8e13-b4fde1db5a2d:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempts to Brute Force a Microsoft 365 User Account v101.0.2","rule_id":"26f68dba-ce29-497b-8e13-b4fde1db5a2d:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to brute force a Microsoft 365 user account. An adversary may attempt a brute force attack to obtain unauthorized access to user accounts.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic","Willem D'Haese","Austin Songer"],"false_positives":["Automated processes that attempt to authenticate using expired credentials and unbounded retries may lead to false positives."],"from":"now-30m","references":["https://blueteamblog.com/7-ways-to-monitor-your-office-365-logs-using-siem"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:o365.audit and event.provider:(AzureActiveDirectory or Exchange) and\n event.category:authentication and event.action:(UserLoginFailed or PasswordLogonInitialAuthUsingPassword) and\n not o365.audit.LogonError:(UserAccountNotFound or EntitlementGrantsNotFound or UserStrongAuthEnrollmentRequired or\n UserStrongAuthClientAuthNRequired or InvalidReplyTo)\n","threshold":{"field":["user.id"],"value":10},"type":"threshold","index":["filebeat-*","logs-o365*"],"language":"kuery","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.LogonError","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"26f68dba-ce29-497b-8e13-b4fde1db5a2d:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/272a6484-2663-46db-a532-ef734bf9a796:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/272a6484-2663-46db-a532-ef734bf9a796:101.0.0.json new file mode 100644 index 0000000000000..36b15f56586ff --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/272a6484-2663-46db-a532-ef734bf9a796:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange Transport Rule Modification v101.0.0","rule_id":"272a6484-2663-46db-a532-ef734bf9a796:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a transport rule has been disabled or deleted in Microsoft 365. Mail flow rules (also known as transport rules) are used to identify and take action on messages that flow through your organization. An adversary or insider threat may modify a transport rule to exfiltrate data or evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A transport rule may be modified by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-transportrule?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/disable-transportrule?view=exchange-ps","https://docs.microsoft.com/en-us/exchange/security-and-compliance/mail-flow-rules/mail-flow-rules"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:(\"Remove-TransportRule\" or \"Disable-TransportRule\") and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"272a6484-2663-46db-a532-ef734bf9a796:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/272a6484-2663-46db-a532-ef734bf9a796:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/272a6484-2663-46db-a532-ef734bf9a796:101.0.1.json new file mode 100644 index 0000000000000..f4f38a5278340 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/272a6484-2663-46db-a532-ef734bf9a796:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange Transport Rule Modification v101.0.1","rule_id":"272a6484-2663-46db-a532-ef734bf9a796:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a transport rule has been disabled or deleted in Microsoft 365. Mail flow rules (also known as transport rules) are used to identify and take action on messages that flow through your organization. An adversary or insider threat may modify a transport rule to exfiltrate data or evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A transport rule may be modified by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-transportrule?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/disable-transportrule?view=exchange-ps","https://docs.microsoft.com/en-us/exchange/security-and-compliance/mail-flow-rules/mail-flow-rules"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:(\"Remove-TransportRule\" or \"Disable-TransportRule\") and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"272a6484-2663-46db-a532-ef734bf9a796:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/272a6484-2663-46db-a532-ef734bf9a796:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/272a6484-2663-46db-a532-ef734bf9a796:101.0.2.json new file mode 100644 index 0000000000000..9eeb7c90c8c05 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/272a6484-2663-46db-a532-ef734bf9a796:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange Transport Rule Modification v101.0.2","rule_id":"272a6484-2663-46db-a532-ef734bf9a796:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a transport rule has been disabled or deleted in Microsoft 365. Mail flow rules (also known as transport rules) are used to identify and take action on messages that flow through your organization. An adversary or insider threat may modify a transport rule to exfiltrate data or evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A transport rule may be modified by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-transportrule?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/disable-transportrule?view=exchange-ps","https://docs.microsoft.com/en-us/exchange/security-and-compliance/mail-flow-rules/mail-flow-rules"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:(\"Remove-TransportRule\" or \"Disable-TransportRule\") and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"272a6484-2663-46db-a532-ef734bf9a796:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2772264c-6fb9-4d9d-9014-b416eed21254:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2772264c-6fb9-4d9d-9014-b416eed21254:100.0.0.json new file mode 100644 index 0000000000000..37d45fd771d8e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2772264c-6fb9-4d9d-9014-b416eed21254:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Incoming Execution via PowerShell Remoting v100.0.0","rule_id":"2772264c-6fb9-4d9d-9014-b416eed21254:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote execution via Windows PowerShell remoting. Windows PowerShell remoting allows a user to run any Windows PowerShell command on one or more remote computers. This could be an indication of lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["PowerShell remoting is a dual-use protocol that can be used for benign or malicious activity. It's important to baseline your environment to determine the amount of noise to expect from this tool."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/powershell/scripting/learn/remoting/running-remote-commands?view=powershell-7.1"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by host.id with maxspan = 30s\n [network where network.direction : (\"incoming\", \"ingress\") and destination.port in (5985, 5986) and\n network.protocol == \"http\" and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ]\n [process where event.type == \"start\" and process.parent.name : \"wsmprovhost.exe\" and not process.name : \"conhost.exe\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},"id":"2772264c-6fb9-4d9d-9014-b416eed21254:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2772264c-6fb9-4d9d-9014-b416eed21254:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2772264c-6fb9-4d9d-9014-b416eed21254:100.0.1.json new file mode 100644 index 0000000000000..28d2fb36fa10c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2772264c-6fb9-4d9d-9014-b416eed21254:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Incoming Execution via PowerShell Remoting v100.0.1","rule_id":"2772264c-6fb9-4d9d-9014-b416eed21254:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote execution via Windows PowerShell remoting. Windows PowerShell remoting allows a user to run any Windows PowerShell command on one or more remote computers. This could be an indication of lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["PowerShell remoting is a dual-use protocol that can be used for benign or malicious activity. It's important to baseline your environment to determine the amount of noise to expect from this tool."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/powershell/scripting/learn/remoting/running-remote-commands?view=powershell-7.1"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by host.id with maxspan = 30s\n [network where network.direction : (\"incoming\", \"ingress\") and destination.port in (5985, 5986) and\n network.protocol == \"http\" and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ]\n [process where event.type == \"start\" and process.parent.name : \"wsmprovhost.exe\" and not process.name : \"conhost.exe\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},"id":"2772264c-6fb9-4d9d-9014-b416eed21254:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2772264c-6fb9-4d9d-9014-b416eed21254:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2772264c-6fb9-4d9d-9014-b416eed21254:100.0.2.json new file mode 100644 index 0000000000000..723db02303f7d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2772264c-6fb9-4d9d-9014-b416eed21254:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Incoming Execution via PowerShell Remoting v100.0.2","rule_id":"2772264c-6fb9-4d9d-9014-b416eed21254:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote execution via Windows PowerShell remoting. Windows PowerShell remoting allows a user to run any Windows PowerShell command on one or more remote computers. This could be an indication of lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["PowerShell remoting is a dual-use protocol that can be used for benign or malicious activity. It's important to baseline your environment to determine the amount of noise to expect from this tool."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/powershell/scripting/learn/remoting/running-remote-commands?view=powershell-7.1"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by host.id with maxspan = 30s\n [network where network.direction : (\"incoming\", \"ingress\") and destination.port in (5985, 5986) and\n network.protocol == \"http\" and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ]\n [process where event.type == \"start\" and process.parent.name : \"wsmprovhost.exe\" and not process.name : \"conhost.exe\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},"id":"2772264c-6fb9-4d9d-9014-b416eed21254:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2783d84f-5091-4d7d-9319-9fceda8fa71b:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2783d84f-5091-4d7d-9319-9fceda8fa71b:102.0.0.json new file mode 100644 index 0000000000000..e71d335a06bbc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2783d84f-5091-4d7d-9319-9fceda8fa71b:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Firewall Rule Modification v102.0.0","rule_id":"2783d84f-5091-4d7d-9319-9fceda8fa71b:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a firewall rule is modified in Google Cloud Platform (GCP) for Virtual Private Cloud (VPC) or App Engine. These firewall rules can be modified to allow or deny connections to or from virtual machine (VM) instances or specific applications. An adversary may modify an existing firewall rule in order to weaken their target's security controls and allow more permissive ingress or egress traffic flows for their benefit.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Firewall rules may be modified by system administrators. Verify that the firewall configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/firewalls","https://cloud.google.com/appengine/docs/standard/python/understanding-firewalls"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:(*.compute.firewalls.patch or google.appengine.*.Firewall.Update*Rule)\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"2783d84f-5091-4d7d-9319-9fceda8fa71b:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2783d84f-5091-4d7d-9319-9fceda8fa71b:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2783d84f-5091-4d7d-9319-9fceda8fa71b:102.0.1.json new file mode 100644 index 0000000000000..2c35f255a038a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2783d84f-5091-4d7d-9319-9fceda8fa71b:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Firewall Rule Modification v102.0.1","rule_id":"2783d84f-5091-4d7d-9319-9fceda8fa71b:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a firewall rule is modified in Google Cloud Platform (GCP) for Virtual Private Cloud (VPC) or App Engine. These firewall rules can be modified to allow or deny connections to or from virtual machine (VM) instances or specific applications. An adversary may modify an existing firewall rule in order to weaken their target's security controls and allow more permissive ingress or egress traffic flows for their benefit.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Firewall rules may be modified by system administrators. Verify that the firewall configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/firewalls","https://cloud.google.com/appengine/docs/standard/python/understanding-firewalls"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:(*.compute.firewalls.patch or google.appengine.*.Firewall.Update*Rule)\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"2783d84f-5091-4d7d-9319-9fceda8fa71b:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2783d84f-5091-4d7d-9319-9fceda8fa71b:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2783d84f-5091-4d7d-9319-9fceda8fa71b:102.0.2.json new file mode 100644 index 0000000000000..e486f7f06058c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2783d84f-5091-4d7d-9319-9fceda8fa71b:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Firewall Rule Modification v102.0.2","rule_id":"2783d84f-5091-4d7d-9319-9fceda8fa71b:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a firewall rule is modified in Google Cloud Platform (GCP) for Virtual Private Cloud (VPC) or App Engine. These firewall rules can be modified to allow or deny connections to or from virtual machine (VM) instances or specific applications. An adversary may modify an existing firewall rule in order to weaken their target's security controls and allow more permissive ingress or egress traffic flows for their benefit.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Firewall rules may be modified by system administrators. Verify that the firewall configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/firewalls","https://cloud.google.com/appengine/docs/standard/python/understanding-firewalls"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:(*.compute.firewalls.patch or google.appengine.*.Firewall.Update*Rule)\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"2783d84f-5091-4d7d-9319-9fceda8fa71b:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/27f7c15a-91f8-4c3d-8b9e-1f99cc030a51:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/27f7c15a-91f8-4c3d-8b9e-1f99cc030a51:101.0.0.json new file mode 100644 index 0000000000000..c43f93dbb1cb6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/27f7c15a-91f8-4c3d-8b9e-1f99cc030a51:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Teams External Access Enabled v101.0.0","rule_id":"27f7c15a-91f8-4c3d-8b9e-1f99cc030a51:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when external access is enabled in Microsoft Teams. External access lets Teams and Skype for Business users communicate with other users that are outside their organization. An adversary may enable external access or add an allowed domain to exfiltrate data or maintain persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Teams external access may be enabled by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/microsoftteams/manage-external-access"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:(SkypeForBusiness or MicrosoftTeams) and\nevent.category:web and event.action:\"Set-CsTenantFederationConfiguration\" and\no365.audit.Parameters.AllowFederatedUsers:True and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Parameters.AllowFederatedUsers","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"27f7c15a-91f8-4c3d-8b9e-1f99cc030a51:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/27f7c15a-91f8-4c3d-8b9e-1f99cc030a51:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/27f7c15a-91f8-4c3d-8b9e-1f99cc030a51:101.0.1.json new file mode 100644 index 0000000000000..13a4f3e730f81 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/27f7c15a-91f8-4c3d-8b9e-1f99cc030a51:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Teams External Access Enabled v101.0.1","rule_id":"27f7c15a-91f8-4c3d-8b9e-1f99cc030a51:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when external access is enabled in Microsoft Teams. External access lets Teams and Skype for Business users communicate with other users that are outside their organization. An adversary may enable external access or add an allowed domain to exfiltrate data or maintain persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Teams external access may be enabled by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/microsoftteams/manage-external-access"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:(SkypeForBusiness or MicrosoftTeams) and\nevent.category:web and event.action:\"Set-CsTenantFederationConfiguration\" and\no365.audit.Parameters.AllowFederatedUsers:True and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Parameters.AllowFederatedUsers","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"27f7c15a-91f8-4c3d-8b9e-1f99cc030a51:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/27f7c15a-91f8-4c3d-8b9e-1f99cc030a51:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/27f7c15a-91f8-4c3d-8b9e-1f99cc030a51:101.0.2.json new file mode 100644 index 0000000000000..b207a21f8472a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/27f7c15a-91f8-4c3d-8b9e-1f99cc030a51:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Teams External Access Enabled v101.0.2","rule_id":"27f7c15a-91f8-4c3d-8b9e-1f99cc030a51:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when external access is enabled in Microsoft Teams. External access lets Teams and Skype for Business users communicate with other users that are outside their organization. An adversary may enable external access or add an allowed domain to exfiltrate data or maintain persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Teams external access may be enabled by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/microsoftteams/manage-external-access"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:(SkypeForBusiness or MicrosoftTeams) and\nevent.category:web and event.action:\"Set-CsTenantFederationConfiguration\" and\no365.audit.Parameters.AllowFederatedUsers:True and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Parameters.AllowFederatedUsers","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"27f7c15a-91f8-4c3d-8b9e-1f99cc030a51:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2820c9c2-bcd7-4d6e-9eba-faf3891ba450:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2820c9c2-bcd7-4d6e-9eba-faf3891ba450:101.0.0.json new file mode 100644 index 0000000000000..066923bf763e1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2820c9c2-bcd7-4d6e-9eba-faf3891ba450:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Account Password Reset Remotely v101.0.0","rule_id":"2820c9c2-bcd7-4d6e-9eba-faf3891ba450:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an attempt to reset a potentially privileged account password remotely. Adversaries may manipulate account passwords to maintain access or evade password duration policies and preserve compromised credentials.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Legitimate remote account administration."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4724","https://stealthbits.com/blog/manipulating-user-passwords-with-mimikatz/","https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES/blob/master/Credential%20Access/remote_pwd_reset_rpc_mimikatz_postzerologon_target_DC.evtx","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"language":"eql","query":"sequence by host.id with maxspan=5m\n [authentication where event.action == \"logged-in\" and\n /* event 4624 need to be logged */\n winlog.logon.type : \"Network\" and event.outcome == \"success\" and source.ip != null and\n source.ip != \"127.0.0.1\" and source.ip != \"::1\"] by winlog.event_data.TargetLogonId\n /* event 4724 need to be logged */\n [iam where event.action == \"reset-password\" and\n (\n /*\n This rule is very noisy if not scoped to privileged accounts, duplicate the\n rule and add your own naming convention and accounts of interest here.\n */\n winlog.event_data.TargetUserName: (\"*Admin*\", \"*super*\", \"*SVC*\", \"*DC0*\", \"*service*\", \"*DMZ*\", \"*ADM*\") or\n winlog.event_data.TargetSid : (\"S-1-5-21-*-500\", \"S-1-12-1-*-500\")\n )\n ] by winlog.event_data.SubjectLogonId\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetSid","type":"unknown"},{"ecs":false,"name":"winlog.event_data.TargetUserName","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}]},"id":"2820c9c2-bcd7-4d6e-9eba-faf3891ba450:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2820c9c2-bcd7-4d6e-9eba-faf3891ba450:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2820c9c2-bcd7-4d6e-9eba-faf3891ba450:101.0.1.json new file mode 100644 index 0000000000000..822b91d008903 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2820c9c2-bcd7-4d6e-9eba-faf3891ba450:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Account Password Reset Remotely v101.0.1","rule_id":"2820c9c2-bcd7-4d6e-9eba-faf3891ba450:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an attempt to reset a potentially privileged account password remotely. Adversaries may manipulate account passwords to maintain access or evade password duration policies and preserve compromised credentials.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Legitimate remote account administration."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4724","https://stealthbits.com/blog/manipulating-user-passwords-with-mimikatz/","https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES/blob/master/Credential%20Access/remote_pwd_reset_rpc_mimikatz_postzerologon_target_DC.evtx","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"language":"eql","query":"sequence by host.id with maxspan=5m\n [authentication where event.action == \"logged-in\" and\n /* event 4624 need to be logged */\n winlog.logon.type : \"Network\" and event.outcome == \"success\" and source.ip != null and\n source.ip != \"127.0.0.1\" and source.ip != \"::1\"] by winlog.event_data.TargetLogonId\n /* event 4724 need to be logged */\n [iam where event.action == \"reset-password\" and\n (\n /*\n This rule is very noisy if not scoped to privileged accounts, duplicate the\n rule and add your own naming convention and accounts of interest here.\n */\n winlog.event_data.TargetUserName: (\"*Admin*\", \"*super*\", \"*SVC*\", \"*DC0*\", \"*service*\", \"*DMZ*\", \"*ADM*\") or\n winlog.event_data.TargetSid : (\"S-1-5-21-*-500\", \"S-1-12-1-*-500\")\n )\n ] by winlog.event_data.SubjectLogonId\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetSid","type":"unknown"},{"ecs":false,"name":"winlog.event_data.TargetUserName","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}]},"id":"2820c9c2-bcd7-4d6e-9eba-faf3891ba450:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2820c9c2-bcd7-4d6e-9eba-faf3891ba450:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2820c9c2-bcd7-4d6e-9eba-faf3891ba450:101.0.2.json new file mode 100644 index 0000000000000..01bb02b8ebd35 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2820c9c2-bcd7-4d6e-9eba-faf3891ba450:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Account Password Reset Remotely v101.0.2","rule_id":"2820c9c2-bcd7-4d6e-9eba-faf3891ba450:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an attempt to reset a potentially privileged account password remotely. Adversaries may manipulate account passwords to maintain access or evade password duration policies and preserve compromised credentials.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Legitimate remote account administration."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4724","https://stealthbits.com/blog/manipulating-user-passwords-with-mimikatz/","https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES/blob/master/Credential%20Access/remote_pwd_reset_rpc_mimikatz_postzerologon_target_DC.evtx","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"language":"eql","query":"sequence by host.id with maxspan=5m\n [authentication where event.action == \"logged-in\" and\n /* event 4624 need to be logged */\n winlog.logon.type : \"Network\" and event.outcome == \"success\" and source.ip != null and\n source.ip != \"127.0.0.1\" and source.ip != \"::1\"] by winlog.event_data.TargetLogonId\n /* event 4724 need to be logged */\n [iam where event.action == \"reset-password\" and\n (\n /*\n This rule is very noisy if not scoped to privileged accounts, duplicate the\n rule and add your own naming convention and accounts of interest here.\n */\n winlog.event_data.TargetUserName: (\"*Admin*\", \"*super*\", \"*SVC*\", \"*DC0*\", \"*service*\", \"*DMZ*\", \"*ADM*\") or\n winlog.event_data.TargetSid : (\"S-1-5-21-*-500\", \"S-1-12-1-*-500\")\n )\n ] by winlog.event_data.SubjectLogonId\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetSid","type":"unknown"},{"ecs":false,"name":"winlog.event_data.TargetUserName","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}]},"id":"2820c9c2-bcd7-4d6e-9eba-faf3891ba450:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2856446a-34e6-435b-9fb5-f8f040bfa7ed:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2856446a-34e6-435b-9fb5-f8f040bfa7ed:102.0.0.json new file mode 100644 index 0000000000000..a863b4d6cdbc2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2856446a-34e6-435b-9fb5-f8f040bfa7ed:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Account Discovery Command via SYSTEM Account v102.0.0","rule_id":"2856446a-34e6-435b-9fb5-f8f040bfa7ed:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when the SYSTEM account uses an account discovery utility. This could be a sign of discovery activity after an adversary has achieved privilege escalation.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Account Discovery Command via SYSTEM Account\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of account discovery utilities using the SYSTEM account, which is commonly observed\nafter attackers successfully perform privilege escalation or exploit web applications.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n - If the process tree includes a web-application server process such as w3wp, httpd.exe, nginx.exe and alike,\n investigate any suspicious file creation or modification in the last 48 hours to assess the presence of any potential\n webshell backdoor.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Determine how the SYSTEM account is being used. For example, users with administrator privileges can spawn a system\nshell using Windows services, scheduled tasks or other third party utilities.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n- Use the data collected through the analysis to investigate other machines affected in the environment.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1033","name":"System Owner/User Discovery","reference":"https://attack.mitre.org/techniques/T1033/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (?process.Ext.token.integrity_level_name : \"System\" or\n ?winlog.event_data.IntegrityLevel : \"System\") and\n (process.name : \"whoami.exe\" or\n (process.name : \"net1.exe\" and not process.parent.name : \"net.exe\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.IntegrityLevel","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"2856446a-34e6-435b-9fb5-f8f040bfa7ed:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2856446a-34e6-435b-9fb5-f8f040bfa7ed:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2856446a-34e6-435b-9fb5-f8f040bfa7ed:102.0.1.json new file mode 100644 index 0000000000000..6f2f2bcde2c62 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2856446a-34e6-435b-9fb5-f8f040bfa7ed:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Account Discovery Command via SYSTEM Account v102.0.1","rule_id":"2856446a-34e6-435b-9fb5-f8f040bfa7ed:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when the SYSTEM account uses an account discovery utility. This could be a sign of discovery activity after an adversary has achieved privilege escalation.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Account Discovery Command via SYSTEM Account\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of account discovery utilities using the SYSTEM account, which is commonly observed\nafter attackers successfully perform privilege escalation or exploit web applications.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n - If the process tree includes a web-application server process such as w3wp, httpd.exe, nginx.exe and alike,\n investigate any suspicious file creation or modification in the last 48 hours to assess the presence of any potential\n webshell backdoor.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Determine how the SYSTEM account is being used. For example, users with administrator privileges can spawn a system\nshell using Windows services, scheduled tasks or other third party utilities.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n- Use the data collected through the analysis to investigate other machines affected in the environment.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1033","name":"System Owner/User Discovery","reference":"https://attack.mitre.org/techniques/T1033/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (?process.Ext.token.integrity_level_name : \"System\" or\n ?winlog.event_data.IntegrityLevel : \"System\") and\n (process.name : \"whoami.exe\" or\n (process.name : \"net1.exe\" and not process.parent.name : \"net.exe\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.IntegrityLevel","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"2856446a-34e6-435b-9fb5-f8f040bfa7ed:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2856446a-34e6-435b-9fb5-f8f040bfa7ed:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2856446a-34e6-435b-9fb5-f8f040bfa7ed:102.0.2.json new file mode 100644 index 0000000000000..ff8cb808058eb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2856446a-34e6-435b-9fb5-f8f040bfa7ed:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Account Discovery Command via SYSTEM Account v102.0.2","rule_id":"2856446a-34e6-435b-9fb5-f8f040bfa7ed:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when the SYSTEM account uses an account discovery utility. This could be a sign of discovery activity after an adversary has achieved privilege escalation.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Account Discovery Command via SYSTEM Account\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of account discovery utilities using the SYSTEM account, which is commonly observed\nafter attackers successfully perform privilege escalation or exploit web applications.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n - If the process tree includes a web-application server process such as w3wp, httpd.exe, nginx.exe and alike,\n investigate any suspicious file creation or modification in the last 48 hours to assess the presence of any potential\n webshell backdoor.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Determine how the SYSTEM account is being used. For example, users with administrator privileges can spawn a system\nshell using Windows services, scheduled tasks or other third party utilities.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n- Use the data collected through the analysis to investigate other machines affected in the environment.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1033","name":"System Owner/User Discovery","reference":"https://attack.mitre.org/techniques/T1033/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (?process.Ext.token.integrity_level_name : \"System\" or\n ?winlog.event_data.IntegrityLevel : \"System\") and\n (process.name : \"whoami.exe\" or\n (process.name : \"net1.exe\" and not process.parent.name : \"net.exe\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.IntegrityLevel","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"2856446a-34e6-435b-9fb5-f8f040bfa7ed:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2863ffeb-bf77-44dd-b7a5-93ef94b72036:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2863ffeb-bf77-44dd-b7a5-93ef94b72036:100.0.0.json new file mode 100644 index 0000000000000..40f0d98a38fab --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2863ffeb-bf77-44dd-b7a5-93ef94b72036:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Exploit - Prevented - Elastic Endgame v100.0.0","rule_id":"2863ffeb-bf77-44dd-b7a5-93ef94b72036:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented an Exploit. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:exploit_event or endgame.event_subtype_full:exploit_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"2863ffeb-bf77-44dd-b7a5-93ef94b72036:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2863ffeb-bf77-44dd-b7a5-93ef94b72036:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2863ffeb-bf77-44dd-b7a5-93ef94b72036:100.0.1.json new file mode 100644 index 0000000000000..d658cc22a9cb1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2863ffeb-bf77-44dd-b7a5-93ef94b72036:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Exploit - Prevented - Elastic Endgame v100.0.1","rule_id":"2863ffeb-bf77-44dd-b7a5-93ef94b72036:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented an Exploit. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:exploit_event or endgame.event_subtype_full:exploit_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"2863ffeb-bf77-44dd-b7a5-93ef94b72036:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2863ffeb-bf77-44dd-b7a5-93ef94b72036:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2863ffeb-bf77-44dd-b7a5-93ef94b72036:100.0.2.json new file mode 100644 index 0000000000000..cbe51ac967acb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2863ffeb-bf77-44dd-b7a5-93ef94b72036:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Exploit - Prevented - Elastic Endgame v100.0.2","rule_id":"2863ffeb-bf77-44dd-b7a5-93ef94b72036:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented an Exploit. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:exploit_event or endgame.event_subtype_full:exploit_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"2863ffeb-bf77-44dd-b7a5-93ef94b72036:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/29052c19-ff3e-42fd-8363-7be14d7c5469:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/29052c19-ff3e-42fd-8363-7be14d7c5469:101.0.0.json new file mode 100644 index 0000000000000..7e4e3b6fcd13e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/29052c19-ff3e-42fd-8363-7be14d7c5469:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Security Group Configuration Change Detection v101.0.0","rule_id":"29052c19-ff3e-42fd-8363-7be14d7c5469:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a change to an AWS Security Group Configuration. A security group is like a virtual firewall, and modifying configurations may allow unauthorized access. Threat actors may abuse this to establish persistence, exfiltrate data, or pivot in an AWS environment.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["A security group may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Security group creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-30m","interval":"10m","references":["https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-security-groups.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:(AuthorizeSecurityGroupEgress or\nCreateSecurityGroup or ModifyInstanceAttribute or ModifySecurityGroupRules or RevokeSecurityGroupEgress or\nRevokeSecurityGroupIngress) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"29052c19-ff3e-42fd-8363-7be14d7c5469:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/29052c19-ff3e-42fd-8363-7be14d7c5469:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/29052c19-ff3e-42fd-8363-7be14d7c5469:101.0.1.json new file mode 100644 index 0000000000000..a336a960c55dd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/29052c19-ff3e-42fd-8363-7be14d7c5469:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Security Group Configuration Change Detection v101.0.1","rule_id":"29052c19-ff3e-42fd-8363-7be14d7c5469:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a change to an AWS Security Group Configuration. A security group is like a virtual firewall, and modifying configurations may allow unauthorized access. Threat actors may abuse this to establish persistence, exfiltrate data, or pivot in an AWS environment.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["A security group may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Security group creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-30m","interval":"10m","references":["https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-security-groups.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:(AuthorizeSecurityGroupEgress or\nCreateSecurityGroup or ModifyInstanceAttribute or ModifySecurityGroupRules or RevokeSecurityGroupEgress or\nRevokeSecurityGroupIngress) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"29052c19-ff3e-42fd-8363-7be14d7c5469:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/29052c19-ff3e-42fd-8363-7be14d7c5469:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/29052c19-ff3e-42fd-8363-7be14d7c5469:101.0.2.json new file mode 100644 index 0000000000000..2da1f87e57afe --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/29052c19-ff3e-42fd-8363-7be14d7c5469:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Security Group Configuration Change Detection v101.0.2","rule_id":"29052c19-ff3e-42fd-8363-7be14d7c5469:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a change to an AWS Security Group Configuration. A security group is like a virtual firewall, and modifying configurations may allow unauthorized access. Threat actors may abuse this to establish persistence, exfiltrate data, or pivot in an AWS environment.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["A security group may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Security group creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-30m","interval":"10m","references":["https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-security-groups.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:(AuthorizeSecurityGroupEgress or\nCreateSecurityGroup or ModifyInstanceAttribute or ModifySecurityGroupRules or RevokeSecurityGroupEgress or\nRevokeSecurityGroupIngress) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"29052c19-ff3e-42fd-8363-7be14d7c5469:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/290aca65-e94d-403b-ba0f-62f320e63f51:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/290aca65-e94d-403b-ba0f-62f320e63f51:102.0.0.json new file mode 100644 index 0000000000000..4dce6d6867509 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/290aca65-e94d-403b-ba0f-62f320e63f51:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"UAC Bypass Attempt via Windows Directory Masquerading v102.0.0","rule_id":"290aca65-e94d-403b-ba0f-62f320e63f51:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an attempt to bypass User Account Control (UAC) by masquerading as a Microsoft trusted Windows directory. Attackers may bypass UAC to stealthily execute code with elevated permissions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating UAC Bypass Attempt via Windows Directory Masquerading\n\nWindows User Account Control (UAC) allows a program to elevate its privileges (tracked as low to high integrity levels)\nto perform a task under administrator-level permissions, possibly by prompting the user for confirmation.\nUAC can deny an operation under high-integrity enforcement, or allow the user to perform the action if they are in the\nlocal administrators group and enter an administrator password when prompted.\n\nFor more information about the UAC and how it works, check the [official Microsoft docs page](https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/how-user-account-control-works).\n\nThis rule identifies an attempt to bypass User Account Control (UAC) by masquerading as a Microsoft trusted Windows\ndirectory. Attackers may bypass UAC to stealthily execute code with elevated permissions.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze any suspicious spawned processes using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://medium.com/tenable-techblog/uac-bypass-by-mocking-trusted-directories-24a96675f6e"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.args : (\"C:\\\\Windows \\\\system32\\\\*.exe\", \"C:\\\\Windows \\\\SysWOW64\\\\*.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"290aca65-e94d-403b-ba0f-62f320e63f51:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/290aca65-e94d-403b-ba0f-62f320e63f51:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/290aca65-e94d-403b-ba0f-62f320e63f51:102.0.1.json new file mode 100644 index 0000000000000..11f0e45a073d8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/290aca65-e94d-403b-ba0f-62f320e63f51:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"UAC Bypass Attempt via Windows Directory Masquerading v102.0.1","rule_id":"290aca65-e94d-403b-ba0f-62f320e63f51:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an attempt to bypass User Account Control (UAC) by masquerading as a Microsoft trusted Windows directory. Attackers may bypass UAC to stealthily execute code with elevated permissions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating UAC Bypass Attempt via Windows Directory Masquerading\n\nWindows User Account Control (UAC) allows a program to elevate its privileges (tracked as low to high integrity levels)\nto perform a task under administrator-level permissions, possibly by prompting the user for confirmation.\nUAC can deny an operation under high-integrity enforcement, or allow the user to perform the action if they are in the\nlocal administrators group and enter an administrator password when prompted.\n\nFor more information about the UAC and how it works, check the [official Microsoft docs page](https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/how-user-account-control-works).\n\nThis rule identifies an attempt to bypass User Account Control (UAC) by masquerading as a Microsoft trusted Windows\ndirectory. Attackers may bypass UAC to stealthily execute code with elevated permissions.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze any suspicious spawned processes using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://medium.com/tenable-techblog/uac-bypass-by-mocking-trusted-directories-24a96675f6e"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.args : (\"C:\\\\Windows \\\\system32\\\\*.exe\", \"C:\\\\Windows \\\\SysWOW64\\\\*.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"290aca65-e94d-403b-ba0f-62f320e63f51:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/290aca65-e94d-403b-ba0f-62f320e63f51:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/290aca65-e94d-403b-ba0f-62f320e63f51:102.0.2.json new file mode 100644 index 0000000000000..d34c3b52089c0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/290aca65-e94d-403b-ba0f-62f320e63f51:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"UAC Bypass Attempt via Windows Directory Masquerading v102.0.2","rule_id":"290aca65-e94d-403b-ba0f-62f320e63f51:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an attempt to bypass User Account Control (UAC) by masquerading as a Microsoft trusted Windows directory. Attackers may bypass UAC to stealthily execute code with elevated permissions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating UAC Bypass Attempt via Windows Directory Masquerading\n\nWindows User Account Control (UAC) allows a program to elevate its privileges (tracked as low to high integrity levels)\nto perform a task under administrator-level permissions, possibly by prompting the user for confirmation.\nUAC can deny an operation under high-integrity enforcement, or allow the user to perform the action if they are in the\nlocal administrators group and enter an administrator password when prompted.\n\nFor more information about the UAC and how it works, check the [official Microsoft docs page](https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/how-user-account-control-works).\n\nThis rule identifies an attempt to bypass User Account Control (UAC) by masquerading as a Microsoft trusted Windows\ndirectory. Attackers may bypass UAC to stealthily execute code with elevated permissions.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze any suspicious spawned processes using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://medium.com/tenable-techblog/uac-bypass-by-mocking-trusted-directories-24a96675f6e"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.args : (\"C:\\\\Windows \\\\system32\\\\*.exe\", \"C:\\\\Windows \\\\SysWOW64\\\\*.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"290aca65-e94d-403b-ba0f-62f320e63f51:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2917d495-59bd-4250-b395-c29409b76086:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2917d495-59bd-4250-b395-c29409b76086:102.0.0.json new file mode 100644 index 0000000000000..6e87316d34195 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2917d495-59bd-4250-b395-c29409b76086:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Web Shell Detection: Script Process Child of Common Web Processes v102.0.0","rule_id":"2917d495-59bd-4250-b395-c29409b76086:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious commands executed via a web server, which may suggest a vulnerability and remote shell access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Web Shell Detection: Script Process Child of Common Web Processes\n\nAdversaries may backdoor web servers with web shells to establish persistent access to systems. A web shell is a web\nscript that is placed on an openly accessible web server to allow an adversary to use the web server as a gateway into a\nnetwork. A web shell may provide a set of functions to execute or a command-line interface on the system that hosts the\nweb server.\n\nThis rule detects a web server process spawning script and command-line interface programs, potentially indicating\nattackers executing commands using the web shell.\n\n#### Possible investigation steps\n\n- Investigate abnormal behaviors observed by the subject process such as network connections, registry or file\nmodifications, and any other spawned child processes.\n- Examine the command line to determine which commands or scripts were executed.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- If scripts or executables were dropped, retrieve the files and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently\nmalicious must be monitored by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Security audits, maintenance, and network administrative scripts may trigger this alert when run under web processes."],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2020/02/04/ghost-in-the-shell-investigating-web-shell-attacks/","https://www.elastic.co/security-labs/elastic-response-to-the-the-spring4shell-vulnerability-cve-2022-22965","https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-1"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1505","name":"Server Software Component","reference":"https://attack.mitre.org/techniques/T1505/","subtechnique":[{"id":"T1505.003","name":"Web Shell","reference":"https://attack.mitre.org/techniques/T1505/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"w3wp.exe\", \"httpd.exe\", \"nginx.exe\", \"php.exe\", \"php-cgi.exe\", \"tomcat.exe\") and\n process.name : (\"cmd.exe\", \"cscript.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\", \"wmic.exe\", \"wscript.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"2917d495-59bd-4250-b395-c29409b76086:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2917d495-59bd-4250-b395-c29409b76086:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2917d495-59bd-4250-b395-c29409b76086:102.0.1.json new file mode 100644 index 0000000000000..d97d151e0727e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2917d495-59bd-4250-b395-c29409b76086:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Web Shell Detection: Script Process Child of Common Web Processes v102.0.1","rule_id":"2917d495-59bd-4250-b395-c29409b76086:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious commands executed via a web server, which may suggest a vulnerability and remote shell access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Web Shell Detection: Script Process Child of Common Web Processes\n\nAdversaries may backdoor web servers with web shells to establish persistent access to systems. A web shell is a web\nscript that is placed on an openly accessible web server to allow an adversary to use the web server as a gateway into a\nnetwork. A web shell may provide a set of functions to execute or a command-line interface on the system that hosts the\nweb server.\n\nThis rule detects a web server process spawning script and command-line interface programs, potentially indicating\nattackers executing commands using the web shell.\n\n#### Possible investigation steps\n\n- Investigate abnormal behaviors observed by the subject process such as network connections, registry or file\nmodifications, and any other spawned child processes.\n- Examine the command line to determine which commands or scripts were executed.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- If scripts or executables were dropped, retrieve the files and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently\nmalicious must be monitored by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Security audits, maintenance, and network administrative scripts may trigger this alert when run under web processes."],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2020/02/04/ghost-in-the-shell-investigating-web-shell-attacks/","https://www.elastic.co/security-labs/elastic-response-to-the-the-spring4shell-vulnerability-cve-2022-22965","https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-1"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1505","name":"Server Software Component","reference":"https://attack.mitre.org/techniques/T1505/","subtechnique":[{"id":"T1505.003","name":"Web Shell","reference":"https://attack.mitre.org/techniques/T1505/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"w3wp.exe\", \"httpd.exe\", \"nginx.exe\", \"php.exe\", \"php-cgi.exe\", \"tomcat.exe\") and\n process.name : (\"cmd.exe\", \"cscript.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\", \"wmic.exe\", \"wscript.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"2917d495-59bd-4250-b395-c29409b76086:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2917d495-59bd-4250-b395-c29409b76086:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2917d495-59bd-4250-b395-c29409b76086:102.0.2.json new file mode 100644 index 0000000000000..a111fcf7408f7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2917d495-59bd-4250-b395-c29409b76086:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Web Shell Detection: Script Process Child of Common Web Processes v102.0.2","rule_id":"2917d495-59bd-4250-b395-c29409b76086:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious commands executed via a web server, which may suggest a vulnerability and remote shell access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Web Shell Detection: Script Process Child of Common Web Processes\n\nAdversaries may backdoor web servers with web shells to establish persistent access to systems. A web shell is a web\nscript that is placed on an openly accessible web server to allow an adversary to use the web server as a gateway into a\nnetwork. A web shell may provide a set of functions to execute or a command-line interface on the system that hosts the\nweb server.\n\nThis rule detects a web server process spawning script and command-line interface programs, potentially indicating\nattackers executing commands using the web shell.\n\n#### Possible investigation steps\n\n- Investigate abnormal behaviors observed by the subject process such as network connections, registry or file\nmodifications, and any other spawned child processes.\n- Examine the command line to determine which commands or scripts were executed.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- If scripts or executables were dropped, retrieve the files and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently\nmalicious must be monitored by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Security audits, maintenance, and network administrative scripts may trigger this alert when run under web processes."],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2020/02/04/ghost-in-the-shell-investigating-web-shell-attacks/","https://www.elastic.co/security-labs/elastic-response-to-the-the-spring4shell-vulnerability-cve-2022-22965","https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-1"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1505","name":"Server Software Component","reference":"https://attack.mitre.org/techniques/T1505/","subtechnique":[{"id":"T1505.003","name":"Web Shell","reference":"https://attack.mitre.org/techniques/T1505/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"w3wp.exe\", \"httpd.exe\", \"nginx.exe\", \"php.exe\", \"php-cgi.exe\", \"tomcat.exe\") and\n process.name : (\"cmd.exe\", \"cscript.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\", \"wmic.exe\", \"wscript.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"2917d495-59bd-4250-b395-c29409b76086:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/291a0de9-937a-4189-94c0-3e847c8b13e4:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/291a0de9-937a-4189-94c0-3e847c8b13e4:102.0.0.json new file mode 100644 index 0000000000000..30354e3d8f643 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/291a0de9-937a-4189-94c0-3e847c8b13e4:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Enumeration of Privileged Local Groups Membership v102.0.0","rule_id":"291a0de9-937a-4189-94c0-3e847c8b13e4:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies instances of an unusual process enumerating built-in Windows privileged local groups membership like Administrators or Remote Desktop users.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Enumeration of Privileged Local Groups Membership\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the enumeration of privileged local groups' membership by suspicious processes, and excludes known\nlegitimate utilities and programs installed. Attackers can use this information to decide the next steps of the attack,\nsuch as mapping targets for credential compromise and other post-exploitation activities.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Identify the process, host and user involved on the event.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\nThe 'Audit Security Group Management' audit policy must be configured (Success).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nAccount Management >\nAudit Security Group Management (Success)\n```\n\nMicrosoft introduced the [event used](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4799) in this detection rule on Windows 10 and Windows Server 2016 or later operating systems.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1069","name":"Permission Groups Discovery","reference":"https://attack.mitre.org/techniques/T1069/","subtechnique":[{"id":"T1069.001","name":"Local Groups","reference":"https://attack.mitre.org/techniques/T1069/001/"}]}]}],"language":"eql","query":"iam where event.action == \"user-member-enumerated\" and\n\n /* excluding machine account */\n not winlog.event_data.SubjectUserName: (\"*$\", \"LOCAL SERVICE\", \"NETWORK SERVICE\") and\n\n /* noisy and usual legit processes excluded */\n not winlog.event_data.CallerProcessName:\n (\"-\",\n \"?:\\\\Windows\\\\System32\\\\VSSVC.exe\",\n \"?:\\\\Windows\\\\System32\\\\SearchIndexer.exe\",\n \"?:\\\\Windows\\\\System32\\\\CompatTelRunner.exe\",\n \"?:\\\\Windows\\\\System32\\\\oobe\\\\msoobe.exe\",\n \"?:\\\\Windows\\\\System32\\\\net1.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Windows\\\\System32\\\\Netplwiz.exe\",\n \"?:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\System32\\\\CloudExperienceHostBroker.exe\",\n \"?:\\\\Windows\\\\System32\\\\wbem\\\\WmiPrvSE.exe\",\n \"?:\\\\Windows\\\\System32\\\\SrTasks.exe\",\n \"?:\\\\Windows\\\\System32\\\\lsass.exe\",\n \"?:\\\\Windows\\\\System32\\\\diskshadow.exe\",\n \"?:\\\\Windows\\\\System32\\\\dfsrs.exe\",\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\WindowsAzure\\\\*\\\\WaAppAgent.exe\",\n \"?:\\\\Windows\\\\System32\\\\vssadmin.exe\",\n \"?:\\\\Windows\\\\VeeamVssSupport\\\\VeeamGuestHelper.exe\",\n \"?:\\\\Windows\\\\System32\\\\dllhost.exe\",\n \"?:\\\\Windows\\\\System32\\\\mmc.exe\",\n \"?:\\\\Windows\\\\System32\\\\SettingSyncHost.exe\",\n \"?:\\\\Windows\\\\ImmersiveControlPanel\\\\SystemSettings.exe\",\n \"?:\\\\Windows\\\\System32\\\\SystemSettingsAdminFlows.exe\",\n \"?:\\\\Windows\\\\Temp\\\\rubrik_vmware???\\\\snaptool.exe\",\n \"?:\\\\Windows\\\\System32\\\\inetsrv\\\\w3wp.exe\",\n \"?:\\\\$WINDOWS.~BT\\\\Sources\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\wsmprovhost.exe\",\n \"?:\\\\Windows\\\\System32\\\\spool\\\\drivers\\\\x64\\\\3\\\\x3jobt3?.exe\",\n \"?:\\\\Windows\\\\System32\\\\mstsc.exe\",\n \"?:\\\\Windows\\\\System32\\\\esentutl.exe\",\n \"?:\\\\Windows\\\\System32\\\\RecoveryDrive.exe\",\n \"?:\\\\Windows\\\\System32\\\\SystemPropertiesComputerName.exe\") and\n\n /* privileged local groups */\n (group.name:(\"admin*\",\"RemoteDesktopUsers\") or\n winlog.event_data.TargetSid:(\"S-1-5-32-544\",\"S-1-5-32-555\"))\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"group.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallerProcessName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectUserName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetSid","type":"unknown"}],"setup":"The 'Audit Security Group Management' audit policy must be configured (Success).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nAccount Management >\nAudit Security Group Management (Success)\n```\n\nMicrosoft introduced the event used in this detection rule on Windows 10 and Windows Server 2016 or later operating systems.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"291a0de9-937a-4189-94c0-3e847c8b13e4:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/291a0de9-937a-4189-94c0-3e847c8b13e4:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/291a0de9-937a-4189-94c0-3e847c8b13e4:102.0.1.json new file mode 100644 index 0000000000000..e474df4ec5d3d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/291a0de9-937a-4189-94c0-3e847c8b13e4:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Enumeration of Privileged Local Groups Membership v102.0.1","rule_id":"291a0de9-937a-4189-94c0-3e847c8b13e4:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies instances of an unusual process enumerating built-in Windows privileged local groups membership like Administrators or Remote Desktop users.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Enumeration of Privileged Local Groups Membership\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the enumeration of privileged local groups' membership by suspicious processes, and excludes known\nlegitimate utilities and programs installed. Attackers can use this information to decide the next steps of the attack,\nsuch as mapping targets for credential compromise and other post-exploitation activities.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Identify the process, host and user involved on the event.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\nThe 'Audit Security Group Management' audit policy must be configured (Success).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nAccount Management >\nAudit Security Group Management (Success)\n```\n\nMicrosoft introduced the [event used](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4799) in this detection rule on Windows 10 and Windows Server 2016 or later operating systems.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1069","name":"Permission Groups Discovery","reference":"https://attack.mitre.org/techniques/T1069/","subtechnique":[{"id":"T1069.001","name":"Local Groups","reference":"https://attack.mitre.org/techniques/T1069/001/"}]}]}],"language":"eql","query":"iam where event.action == \"user-member-enumerated\" and\n\n /* excluding machine account */\n not winlog.event_data.SubjectUserName: (\"*$\", \"LOCAL SERVICE\", \"NETWORK SERVICE\") and\n\n /* noisy and usual legit processes excluded */\n not winlog.event_data.CallerProcessName:\n (\"-\",\n \"?:\\\\Windows\\\\System32\\\\VSSVC.exe\",\n \"?:\\\\Windows\\\\System32\\\\SearchIndexer.exe\",\n \"?:\\\\Windows\\\\System32\\\\CompatTelRunner.exe\",\n \"?:\\\\Windows\\\\System32\\\\oobe\\\\msoobe.exe\",\n \"?:\\\\Windows\\\\System32\\\\net1.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Windows\\\\System32\\\\Netplwiz.exe\",\n \"?:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\System32\\\\CloudExperienceHostBroker.exe\",\n \"?:\\\\Windows\\\\System32\\\\wbem\\\\WmiPrvSE.exe\",\n \"?:\\\\Windows\\\\System32\\\\SrTasks.exe\",\n \"?:\\\\Windows\\\\System32\\\\lsass.exe\",\n \"?:\\\\Windows\\\\System32\\\\diskshadow.exe\",\n \"?:\\\\Windows\\\\System32\\\\dfsrs.exe\",\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\WindowsAzure\\\\*\\\\WaAppAgent.exe\",\n \"?:\\\\Windows\\\\System32\\\\vssadmin.exe\",\n \"?:\\\\Windows\\\\VeeamVssSupport\\\\VeeamGuestHelper.exe\",\n \"?:\\\\Windows\\\\System32\\\\dllhost.exe\",\n \"?:\\\\Windows\\\\System32\\\\mmc.exe\",\n \"?:\\\\Windows\\\\System32\\\\SettingSyncHost.exe\",\n \"?:\\\\Windows\\\\ImmersiveControlPanel\\\\SystemSettings.exe\",\n \"?:\\\\Windows\\\\System32\\\\SystemSettingsAdminFlows.exe\",\n \"?:\\\\Windows\\\\Temp\\\\rubrik_vmware???\\\\snaptool.exe\",\n \"?:\\\\Windows\\\\System32\\\\inetsrv\\\\w3wp.exe\",\n \"?:\\\\$WINDOWS.~BT\\\\Sources\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\wsmprovhost.exe\",\n \"?:\\\\Windows\\\\System32\\\\spool\\\\drivers\\\\x64\\\\3\\\\x3jobt3?.exe\",\n \"?:\\\\Windows\\\\System32\\\\mstsc.exe\",\n \"?:\\\\Windows\\\\System32\\\\esentutl.exe\",\n \"?:\\\\Windows\\\\System32\\\\RecoveryDrive.exe\",\n \"?:\\\\Windows\\\\System32\\\\SystemPropertiesComputerName.exe\") and\n\n /* privileged local groups */\n (group.name:(\"admin*\",\"RemoteDesktopUsers\") or\n winlog.event_data.TargetSid:(\"S-1-5-32-544\",\"S-1-5-32-555\"))\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"group.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallerProcessName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectUserName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetSid","type":"unknown"}],"setup":"The 'Audit Security Group Management' audit policy must be configured (Success).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nAccount Management >\nAudit Security Group Management (Success)\n```\n\nMicrosoft introduced the event used in this detection rule on Windows 10 and Windows Server 2016 or later operating systems.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"291a0de9-937a-4189-94c0-3e847c8b13e4:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/291a0de9-937a-4189-94c0-3e847c8b13e4:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/291a0de9-937a-4189-94c0-3e847c8b13e4:102.0.2.json new file mode 100644 index 0000000000000..3bb62ae379b57 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/291a0de9-937a-4189-94c0-3e847c8b13e4:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Enumeration of Privileged Local Groups Membership v102.0.2","rule_id":"291a0de9-937a-4189-94c0-3e847c8b13e4:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies instances of an unusual process enumerating built-in Windows privileged local groups membership like Administrators or Remote Desktop users.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Enumeration of Privileged Local Groups Membership\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the enumeration of privileged local groups' membership by suspicious processes, and excludes known\nlegitimate utilities and programs installed. Attackers can use this information to decide the next steps of the attack,\nsuch as mapping targets for credential compromise and other post-exploitation activities.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Identify the process, host and user involved on the event.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\nThe 'Audit Security Group Management' audit policy must be configured (Success).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nAccount Management >\nAudit Security Group Management (Success)\n```\n\nMicrosoft introduced the [event used](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4799) in this detection rule on Windows 10 and Windows Server 2016 or later operating systems.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1069","name":"Permission Groups Discovery","reference":"https://attack.mitre.org/techniques/T1069/","subtechnique":[{"id":"T1069.001","name":"Local Groups","reference":"https://attack.mitre.org/techniques/T1069/001/"}]}]}],"language":"eql","query":"iam where event.action == \"user-member-enumerated\" and\n\n /* excluding machine account */\n not winlog.event_data.SubjectUserName: (\"*$\", \"LOCAL SERVICE\", \"NETWORK SERVICE\") and\n\n /* noisy and usual legit processes excluded */\n not winlog.event_data.CallerProcessName:\n (\"-\",\n \"?:\\\\Windows\\\\System32\\\\VSSVC.exe\",\n \"?:\\\\Windows\\\\System32\\\\SearchIndexer.exe\",\n \"?:\\\\Windows\\\\System32\\\\CompatTelRunner.exe\",\n \"?:\\\\Windows\\\\System32\\\\oobe\\\\msoobe.exe\",\n \"?:\\\\Windows\\\\System32\\\\net1.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Windows\\\\System32\\\\Netplwiz.exe\",\n \"?:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\System32\\\\CloudExperienceHostBroker.exe\",\n \"?:\\\\Windows\\\\System32\\\\wbem\\\\WmiPrvSE.exe\",\n \"?:\\\\Windows\\\\System32\\\\SrTasks.exe\",\n \"?:\\\\Windows\\\\System32\\\\lsass.exe\",\n \"?:\\\\Windows\\\\System32\\\\diskshadow.exe\",\n \"?:\\\\Windows\\\\System32\\\\dfsrs.exe\",\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\WindowsAzure\\\\*\\\\WaAppAgent.exe\",\n \"?:\\\\Windows\\\\System32\\\\vssadmin.exe\",\n \"?:\\\\Windows\\\\VeeamVssSupport\\\\VeeamGuestHelper.exe\",\n \"?:\\\\Windows\\\\System32\\\\dllhost.exe\",\n \"?:\\\\Windows\\\\System32\\\\mmc.exe\",\n \"?:\\\\Windows\\\\System32\\\\SettingSyncHost.exe\",\n \"?:\\\\Windows\\\\ImmersiveControlPanel\\\\SystemSettings.exe\",\n \"?:\\\\Windows\\\\System32\\\\SystemSettingsAdminFlows.exe\",\n \"?:\\\\Windows\\\\Temp\\\\rubrik_vmware???\\\\snaptool.exe\",\n \"?:\\\\Windows\\\\System32\\\\inetsrv\\\\w3wp.exe\",\n \"?:\\\\$WINDOWS.~BT\\\\Sources\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\wsmprovhost.exe\",\n \"?:\\\\Windows\\\\System32\\\\spool\\\\drivers\\\\x64\\\\3\\\\x3jobt3?.exe\",\n \"?:\\\\Windows\\\\System32\\\\mstsc.exe\",\n \"?:\\\\Windows\\\\System32\\\\esentutl.exe\",\n \"?:\\\\Windows\\\\System32\\\\RecoveryDrive.exe\",\n \"?:\\\\Windows\\\\System32\\\\SystemPropertiesComputerName.exe\") and\n\n /* privileged local groups */\n (group.name:(\"admin*\",\"RemoteDesktopUsers\") or\n winlog.event_data.TargetSid:(\"S-1-5-32-544\",\"S-1-5-32-555\"))\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"group.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallerProcessName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectUserName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetSid","type":"unknown"}],"setup":"The 'Audit Security Group Management' audit policy must be configured (Success).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nAccount Management >\nAudit Security Group Management (Success)\n```\n\nMicrosoft introduced the event used in this detection rule on Windows 10 and Windows Server 2016 or later operating systems.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"291a0de9-937a-4189-94c0-3e847c8b13e4:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2abda169-416b-4bb3-9a6b-f8d239fd78ba:200.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2abda169-416b-4bb3-9a6b-f8d239fd78ba:200.0.0.json new file mode 100644 index 0000000000000..f35d70814bb21 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2abda169-416b-4bb3-9a6b-f8d239fd78ba:200.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Pod created with a Sensitive hostPath Volume v200.0.0","rule_id":"2abda169-416b-4bb3-9a6b-f8d239fd78ba:200.0.0","rule_version":"200.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects when a pod is created with a sensitive volume of type hostPath. A hostPath volume type mounts a sensitive file or folder from the node to the container. If the container gets compromised, the attacker can use this mount for gaining access to the node. There are many ways a container with unrestricted access to the host filesystem can escalate privileges, including reading data from other containers, and accessing tokens of more privileged pods.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator may need to attach a hostPath volume for a legitimate reason. This alert should be investigated for legitimacy by determining if the kuberenetes.audit.requestObject.spec.volumes.hostPath.path triggered is one needed by its target container/pod. For example, when the fleet managed elastic agent is deployed as a daemonset it creates several hostPath volume mounts, some of which are sensitive host directories like /proc, /etc/kubernetes, and /var/log. Add exceptions for trusted container images using the query field \"kubernetes.audit.requestObject.spec.container.image\""],"references":["https://blog.appsecco.com/kubernetes-namespace-breakout-using-insecure-host-path-volume-part-1-b382f2a6e216","https://kubernetes.io/docs/concepts/storage/volumes/#hostpath"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.objectRef.resource:\"pods\"\n and kubernetes.audit.verb:(\"create\" or \"update\" or \"patch\")\n and kubernetes.audit.requestObject.spec.volumes.hostPath.path:\n (\"/\" or \n \"/proc\" or \n \"/root\" or \n \"/var\" or \n \"/var/run\" or \n \"/var/run/docker.sock\" or \n \"/var/run/crio/crio.sock\" or \n \"/var/run/cri-dockerd.sock\" or \n \"/var/lib/kubelet\" or \n \"/var/lib/kubelet/pki\" or \n \"/var/lib/docker/overlay2\" or \n \"/etc\" or \n \"/etc/kubernetes\" or \n \"/etc/kubernetes/manifests\" or \n \"/etc/kubernetes/pki\" or\n \"/home/admin\")\n and not kubernetes.audit.requestObject.spec.containers.image: (\"docker.elastic.co/beats/elastic-agent:8.4.0\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.volumes.hostPath.path","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"2abda169-416b-4bb3-9a6b-f8d239fd78ba:200.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2abda169-416b-4bb3-9a6b-f8d239fd78ba:200.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2abda169-416b-4bb3-9a6b-f8d239fd78ba:200.0.1.json new file mode 100644 index 0000000000000..ce45f119cc182 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2abda169-416b-4bb3-9a6b-f8d239fd78ba:200.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Pod created with a Sensitive hostPath Volume v200.0.1","rule_id":"2abda169-416b-4bb3-9a6b-f8d239fd78ba:200.0.1","rule_version":"200.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects when a pod is created with a sensitive volume of type hostPath. A hostPath volume type mounts a sensitive file or folder from the node to the container. If the container gets compromised, the attacker can use this mount for gaining access to the node. There are many ways a container with unrestricted access to the host filesystem can escalate privileges, including reading data from other containers, and accessing tokens of more privileged pods.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator may need to attach a hostPath volume for a legitimate reason. This alert should be investigated for legitimacy by determining if the kuberenetes.audit.requestObject.spec.volumes.hostPath.path triggered is one needed by its target container/pod. For example, when the fleet managed elastic agent is deployed as a daemonset it creates several hostPath volume mounts, some of which are sensitive host directories like /proc, /etc/kubernetes, and /var/log. Add exceptions for trusted container images using the query field \"kubernetes.audit.requestObject.spec.container.image\""],"references":["https://blog.appsecco.com/kubernetes-namespace-breakout-using-insecure-host-path-volume-part-1-b382f2a6e216","https://kubernetes.io/docs/concepts/storage/volumes/#hostpath"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.objectRef.resource:\"pods\"\n and kubernetes.audit.verb:(\"create\" or \"update\" or \"patch\")\n and kubernetes.audit.requestObject.spec.volumes.hostPath.path:\n (\"/\" or \n \"/proc\" or \n \"/root\" or \n \"/var\" or \n \"/var/run\" or \n \"/var/run/docker.sock\" or \n \"/var/run/crio/crio.sock\" or \n \"/var/run/cri-dockerd.sock\" or \n \"/var/lib/kubelet\" or \n \"/var/lib/kubelet/pki\" or \n \"/var/lib/docker/overlay2\" or \n \"/etc\" or \n \"/etc/kubernetes\" or \n \"/etc/kubernetes/manifests\" or \n \"/etc/kubernetes/pki\" or\n \"/home/admin\")\n and not kubernetes.audit.requestObject.spec.containers.image: (\"docker.elastic.co/beats/elastic-agent:8.4.0\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.volumes.hostPath.path","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"2abda169-416b-4bb3-9a6b-f8d239fd78ba:200.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2abda169-416b-4bb3-9a6b-f8d239fd78ba:200.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2abda169-416b-4bb3-9a6b-f8d239fd78ba:200.0.2.json new file mode 100644 index 0000000000000..e0fc92cd78c10 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2abda169-416b-4bb3-9a6b-f8d239fd78ba:200.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Pod created with a Sensitive hostPath Volume v200.0.2","rule_id":"2abda169-416b-4bb3-9a6b-f8d239fd78ba:200.0.2","rule_version":"200.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects when a pod is created with a sensitive volume of type hostPath. A hostPath volume type mounts a sensitive file or folder from the node to the container. If the container gets compromised, the attacker can use this mount for gaining access to the node. There are many ways a container with unrestricted access to the host filesystem can escalate privileges, including reading data from other containers, and accessing tokens of more privileged pods.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator may need to attach a hostPath volume for a legitimate reason. This alert should be investigated for legitimacy by determining if the kuberenetes.audit.requestObject.spec.volumes.hostPath.path triggered is one needed by its target container/pod. For example, when the fleet managed elastic agent is deployed as a daemonset it creates several hostPath volume mounts, some of which are sensitive host directories like /proc, /etc/kubernetes, and /var/log. Add exceptions for trusted container images using the query field \"kubernetes.audit.requestObject.spec.container.image\""],"references":["https://blog.appsecco.com/kubernetes-namespace-breakout-using-insecure-host-path-volume-part-1-b382f2a6e216","https://kubernetes.io/docs/concepts/storage/volumes/#hostpath"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.objectRef.resource:\"pods\"\n and kubernetes.audit.verb:(\"create\" or \"update\" or \"patch\")\n and kubernetes.audit.requestObject.spec.volumes.hostPath.path:\n (\"/\" or \n \"/proc\" or \n \"/root\" or \n \"/var\" or \n \"/var/run\" or \n \"/var/run/docker.sock\" or \n \"/var/run/crio/crio.sock\" or \n \"/var/run/cri-dockerd.sock\" or \n \"/var/lib/kubelet\" or \n \"/var/lib/kubelet/pki\" or \n \"/var/lib/docker/overlay2\" or \n \"/etc\" or \n \"/etc/kubernetes\" or \n \"/etc/kubernetes/manifests\" or \n \"/etc/kubernetes/pki\" or\n \"/home/admin\")\n and not kubernetes.audit.requestObject.spec.containers.image: (\"docker.elastic.co/beats/elastic-agent:8.4.0\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.volumes.hostPath.path","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"2abda169-416b-4bb3-9a6b-f8d239fd78ba:200.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2bf78aa2-9c56-48de-b139-f169bf99cf86:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2bf78aa2-9c56-48de-b139-f169bf99cf86:102.0.0.json new file mode 100644 index 0000000000000..f60ffc555fa0b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2bf78aa2-9c56-48de-b139-f169bf99cf86:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Adobe Hijack Persistence v102.0.0","rule_id":"2bf78aa2-9c56-48de-b139-f169bf99cf86:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects writing executable files that will be automatically launched by Adobe on launch.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Adobe Hijack Persistence\n\nAttackers can replace the `RdrCEF.exe` executable with their own to maintain their access, which will be launched\nwhenever Adobe Acrobat Reader is executed.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://twitter.com/pabraeken/status/997997818362155008"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.010","name":"Services File Permissions Weakness","reference":"https://attack.mitre.org/techniques/T1574/010/"}]}]}],"language":"eql","query":"file where event.type == \"creation\" and\n file.path : (\"?:\\\\Program Files (x86)\\\\Adobe\\\\Acrobat Reader DC\\\\Reader\\\\AcroCEF\\\\RdrCEF.exe\",\n \"?:\\\\Program Files\\\\Adobe\\\\Acrobat Reader DC\\\\Reader\\\\AcroCEF\\\\RdrCEF.exe\") and\n not process.name : \"msiexec.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"2bf78aa2-9c56-48de-b139-f169bf99cf86:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2bf78aa2-9c56-48de-b139-f169bf99cf86:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2bf78aa2-9c56-48de-b139-f169bf99cf86:102.0.1.json new file mode 100644 index 0000000000000..fe909fae64b17 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2bf78aa2-9c56-48de-b139-f169bf99cf86:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Adobe Hijack Persistence v102.0.1","rule_id":"2bf78aa2-9c56-48de-b139-f169bf99cf86:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects writing executable files that will be automatically launched by Adobe on launch.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Adobe Hijack Persistence\n\nAttackers can replace the `RdrCEF.exe` executable with their own to maintain their access, which will be launched\nwhenever Adobe Acrobat Reader is executed.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://twitter.com/pabraeken/status/997997818362155008"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.010","name":"Services File Permissions Weakness","reference":"https://attack.mitre.org/techniques/T1574/010/"}]}]}],"language":"eql","query":"file where event.type == \"creation\" and\n file.path : (\"?:\\\\Program Files (x86)\\\\Adobe\\\\Acrobat Reader DC\\\\Reader\\\\AcroCEF\\\\RdrCEF.exe\",\n \"?:\\\\Program Files\\\\Adobe\\\\Acrobat Reader DC\\\\Reader\\\\AcroCEF\\\\RdrCEF.exe\") and\n not process.name : \"msiexec.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"2bf78aa2-9c56-48de-b139-f169bf99cf86:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2bf78aa2-9c56-48de-b139-f169bf99cf86:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2bf78aa2-9c56-48de-b139-f169bf99cf86:102.0.2.json new file mode 100644 index 0000000000000..398867bfa5e80 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2bf78aa2-9c56-48de-b139-f169bf99cf86:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Adobe Hijack Persistence v102.0.2","rule_id":"2bf78aa2-9c56-48de-b139-f169bf99cf86:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects writing executable files that will be automatically launched by Adobe on launch.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Adobe Hijack Persistence\n\nAttackers can replace the `RdrCEF.exe` executable with their own to maintain their access, which will be launched\nwhenever Adobe Acrobat Reader is executed.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://twitter.com/pabraeken/status/997997818362155008"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.010","name":"Services File Permissions Weakness","reference":"https://attack.mitre.org/techniques/T1574/010/"}]}]}],"language":"eql","query":"file where event.type == \"creation\" and\n file.path : (\"?:\\\\Program Files (x86)\\\\Adobe\\\\Acrobat Reader DC\\\\Reader\\\\AcroCEF\\\\RdrCEF.exe\",\n \"?:\\\\Program Files\\\\Adobe\\\\Acrobat Reader DC\\\\Reader\\\\AcroCEF\\\\RdrCEF.exe\") and\n not process.name : \"msiexec.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"2bf78aa2-9c56-48de-b139-f169bf99cf86:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2c17e5d7-08b9-43b2-b58a-0270d65ac85b:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2c17e5d7-08b9-43b2-b58a-0270d65ac85b:102.0.0.json new file mode 100644 index 0000000000000..3c6c427ab8387 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2c17e5d7-08b9-43b2-b58a-0270d65ac85b:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Windows Defender Exclusions Added via PowerShell v102.0.0","rule_id":"2c17e5d7-08b9-43b2-b58a-0270d65ac85b:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to the Windows Defender configuration settings using PowerShell to add exclusions at the folder directory or process level.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Defender Exclusions Added via PowerShell\n\nMicrosoft Windows Defender is an antivirus product built into Microsoft Windows. Since this software product is\nused to prevent and stop malware, it's important to monitor what specific exclusions are made to the product's configuration\nsettings. These can often be signs of an adversary or malware trying to bypass Windows Defender's capabilities. One of\nthe more notable [examples](https://www.cyberbit.com/blog/endpoint-security/latest-trickbot-variant-has-new-tricks-up-its-sleeve/)\nwas observed in 2018 where Trickbot incorporated mechanisms to disable Windows Defender to avoid detection.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Examine the exclusion in order to determine the intent behind it.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- If the exclusion specifies a suspicious file or path, retrieve the file(s) and determine if malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This rule has a high chance to produce false positives due to how often network administrators legitimately configure\nexclusions. In order to validate the activity further, review the specific exclusion and its intent. There are many\nlegitimate reasons for exclusions, so it's important to gain context.\n\n### Related rules\n\n- Windows Defender Disabled via Registry Modification - 2ffa1f1e-b6db-47fa-994b-1512743847eb\n- Disabling Windows Defender Security Settings via PowerShell - c8cccb06-faf2-4cd5-886e-2c9636cfcb87\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Exclusion lists for antimalware capabilities should always be routinely monitored for review.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.bitdefender.com/files/News/CaseStudies/study/400/Bitdefender-PR-Whitepaper-MosaicLoader-creat5540-en-EN.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"},{"id":"T1562.006","name":"Indicator Blocking","reference":"https://attack.mitre.org/techniques/T1562/006/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") or process.pe.original_file_name in (\"powershell.exe\", \"pwsh.dll\", \"powershell_ise.exe\")) and\n process.args : (\"*Add-MpPreference*\", \"*Set-MpPreference*\") and\n process.args : (\"*-Exclusion*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"2c17e5d7-08b9-43b2-b58a-0270d65ac85b:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2c17e5d7-08b9-43b2-b58a-0270d65ac85b:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2c17e5d7-08b9-43b2-b58a-0270d65ac85b:102.0.1.json new file mode 100644 index 0000000000000..5407b560cf68d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2c17e5d7-08b9-43b2-b58a-0270d65ac85b:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Windows Defender Exclusions Added via PowerShell v102.0.1","rule_id":"2c17e5d7-08b9-43b2-b58a-0270d65ac85b:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to the Windows Defender configuration settings using PowerShell to add exclusions at the folder directory or process level.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Defender Exclusions Added via PowerShell\n\nMicrosoft Windows Defender is an antivirus product built into Microsoft Windows. Since this software product is\nused to prevent and stop malware, it's important to monitor what specific exclusions are made to the product's configuration\nsettings. These can often be signs of an adversary or malware trying to bypass Windows Defender's capabilities. One of\nthe more notable [examples](https://www.cyberbit.com/blog/endpoint-security/latest-trickbot-variant-has-new-tricks-up-its-sleeve/)\nwas observed in 2018 where Trickbot incorporated mechanisms to disable Windows Defender to avoid detection.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Examine the exclusion in order to determine the intent behind it.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- If the exclusion specifies a suspicious file or path, retrieve the file(s) and determine if malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This rule has a high chance to produce false positives due to how often network administrators legitimately configure\nexclusions. In order to validate the activity further, review the specific exclusion and its intent. There are many\nlegitimate reasons for exclusions, so it's important to gain context.\n\n### Related rules\n\n- Windows Defender Disabled via Registry Modification - 2ffa1f1e-b6db-47fa-994b-1512743847eb\n- Disabling Windows Defender Security Settings via PowerShell - c8cccb06-faf2-4cd5-886e-2c9636cfcb87\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Exclusion lists for antimalware capabilities should always be routinely monitored for review.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.bitdefender.com/files/News/CaseStudies/study/400/Bitdefender-PR-Whitepaper-MosaicLoader-creat5540-en-EN.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"},{"id":"T1562.006","name":"Indicator Blocking","reference":"https://attack.mitre.org/techniques/T1562/006/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") or process.pe.original_file_name in (\"powershell.exe\", \"pwsh.dll\", \"powershell_ise.exe\")) and\n process.args : (\"*Add-MpPreference*\", \"*Set-MpPreference*\") and\n process.args : (\"*-Exclusion*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"2c17e5d7-08b9-43b2-b58a-0270d65ac85b:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2c17e5d7-08b9-43b2-b58a-0270d65ac85b:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2c17e5d7-08b9-43b2-b58a-0270d65ac85b:102.0.2.json new file mode 100644 index 0000000000000..29737bdc2de88 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2c17e5d7-08b9-43b2-b58a-0270d65ac85b:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Windows Defender Exclusions Added via PowerShell v102.0.2","rule_id":"2c17e5d7-08b9-43b2-b58a-0270d65ac85b:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to the Windows Defender configuration settings using PowerShell to add exclusions at the folder directory or process level.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Defender Exclusions Added via PowerShell\n\nMicrosoft Windows Defender is an antivirus product built into Microsoft Windows. Since this software product is\nused to prevent and stop malware, it's important to monitor what specific exclusions are made to the product's configuration\nsettings. These can often be signs of an adversary or malware trying to bypass Windows Defender's capabilities. One of\nthe more notable [examples](https://www.cyberbit.com/blog/endpoint-security/latest-trickbot-variant-has-new-tricks-up-its-sleeve/)\nwas observed in 2018 where Trickbot incorporated mechanisms to disable Windows Defender to avoid detection.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Examine the exclusion in order to determine the intent behind it.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- If the exclusion specifies a suspicious file or path, retrieve the file(s) and determine if malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This rule has a high chance to produce false positives due to how often network administrators legitimately configure\nexclusions. In order to validate the activity further, review the specific exclusion and its intent. There are many\nlegitimate reasons for exclusions, so it's important to gain context.\n\n### Related rules\n\n- Windows Defender Disabled via Registry Modification - 2ffa1f1e-b6db-47fa-994b-1512743847eb\n- Disabling Windows Defender Security Settings via PowerShell - c8cccb06-faf2-4cd5-886e-2c9636cfcb87\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Exclusion lists for antimalware capabilities should always be routinely monitored for review.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.bitdefender.com/files/News/CaseStudies/study/400/Bitdefender-PR-Whitepaper-MosaicLoader-creat5540-en-EN.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"},{"id":"T1562.006","name":"Indicator Blocking","reference":"https://attack.mitre.org/techniques/T1562/006/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") or process.pe.original_file_name in (\"powershell.exe\", \"pwsh.dll\", \"powershell_ise.exe\")) and\n process.args : (\"*Add-MpPreference*\", \"*Set-MpPreference*\") and\n process.args : (\"*-Exclusion*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"2c17e5d7-08b9-43b2-b58a-0270d65ac85b:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2c3c29a4-f170-42f8-a3d8-2ceebc18eb6a:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2c3c29a4-f170-42f8-a3d8-2ceebc18eb6a:102.0.0.json new file mode 100644 index 0000000000000..ff0793df3e917 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2c3c29a4-f170-42f8-a3d8-2ceebc18eb6a:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Microsoft Diagnostics Wizard Execution v102.0.0","rule_id":"2c3c29a4-f170-42f8-a3d8-2ceebc18eb6a:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential abuse of the Microsoft Diagnostics Troubleshooting Wizard (MSDT) to proxy malicious command or binary execution via malicious process arguments.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://twitter.com/nao_sec/status/1530196847679401984","https://lolbas-project.github.io/lolbas/Binaries/Msdt/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.pe.original_file_name == \"msdt.exe\" or process.name : \"msdt.exe\") and\n (\n process.args : (\"IT_RebrowseForFile=*\", \"ms-msdt:/id\", \"ms-msdt:-id\", \"*FromBase64*\") or\n\n (process.args : \"-af\" and process.args : \"/skip\" and\n process.parent.name : (\"explorer.exe\", \"cmd.exe\", \"powershell.exe\", \"cscript.exe\", \"wscript.exe\", \"mshta.exe\", \"rundll32.exe\", \"regsvr32.exe\") and\n process.args : (\"?:\\\\WINDOWS\\\\diagnostics\\\\index\\\\PCWDiagnostic.xml\", \"PCWDiagnostic.xml\", \"?:\\\\Users\\\\Public\\\\*\", \"?:\\\\Windows\\\\Temp\\\\*\")) or\n\n (process.pe.original_file_name == \"msdt.exe\" and not process.name : \"msdt.exe\" and process.name != null) or\n\n (process.pe.original_file_name == \"msdt.exe\" and not process.executable : (\"?:\\\\Windows\\\\system32\\\\msdt.exe\", \"?:\\\\Windows\\\\SysWOW64\\\\msdt.exe\"))\n )\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"2c3c29a4-f170-42f8-a3d8-2ceebc18eb6a:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2c3c29a4-f170-42f8-a3d8-2ceebc18eb6a:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2c3c29a4-f170-42f8-a3d8-2ceebc18eb6a:102.0.1.json new file mode 100644 index 0000000000000..5aec44b994e51 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2c3c29a4-f170-42f8-a3d8-2ceebc18eb6a:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Microsoft Diagnostics Wizard Execution v102.0.1","rule_id":"2c3c29a4-f170-42f8-a3d8-2ceebc18eb6a:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential abuse of the Microsoft Diagnostics Troubleshooting Wizard (MSDT) to proxy malicious command or binary execution via malicious process arguments.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://twitter.com/nao_sec/status/1530196847679401984","https://lolbas-project.github.io/lolbas/Binaries/Msdt/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.pe.original_file_name == \"msdt.exe\" or process.name : \"msdt.exe\") and\n (\n process.args : (\"IT_RebrowseForFile=*\", \"ms-msdt:/id\", \"ms-msdt:-id\", \"*FromBase64*\") or\n\n (process.args : \"-af\" and process.args : \"/skip\" and\n process.parent.name : (\"explorer.exe\", \"cmd.exe\", \"powershell.exe\", \"cscript.exe\", \"wscript.exe\", \"mshta.exe\", \"rundll32.exe\", \"regsvr32.exe\") and\n process.args : (\"?:\\\\WINDOWS\\\\diagnostics\\\\index\\\\PCWDiagnostic.xml\", \"PCWDiagnostic.xml\", \"?:\\\\Users\\\\Public\\\\*\", \"?:\\\\Windows\\\\Temp\\\\*\")) or\n\n (process.pe.original_file_name == \"msdt.exe\" and not process.name : \"msdt.exe\" and process.name != null) or\n\n (process.pe.original_file_name == \"msdt.exe\" and not process.executable : (\"?:\\\\Windows\\\\system32\\\\msdt.exe\", \"?:\\\\Windows\\\\SysWOW64\\\\msdt.exe\"))\n )\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"2c3c29a4-f170-42f8-a3d8-2ceebc18eb6a:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2c3c29a4-f170-42f8-a3d8-2ceebc18eb6a:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2c3c29a4-f170-42f8-a3d8-2ceebc18eb6a:102.0.2.json new file mode 100644 index 0000000000000..d0120d3df1944 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2c3c29a4-f170-42f8-a3d8-2ceebc18eb6a:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Microsoft Diagnostics Wizard Execution v102.0.2","rule_id":"2c3c29a4-f170-42f8-a3d8-2ceebc18eb6a:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential abuse of the Microsoft Diagnostics Troubleshooting Wizard (MSDT) to proxy malicious command or binary execution via malicious process arguments.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://twitter.com/nao_sec/status/1530196847679401984","https://lolbas-project.github.io/lolbas/Binaries/Msdt/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.pe.original_file_name == \"msdt.exe\" or process.name : \"msdt.exe\") and\n (\n process.args : (\"IT_RebrowseForFile=*\", \"ms-msdt:/id\", \"ms-msdt:-id\", \"*FromBase64*\") or\n\n (process.args : \"-af\" and process.args : \"/skip\" and\n process.parent.name : (\"explorer.exe\", \"cmd.exe\", \"powershell.exe\", \"cscript.exe\", \"wscript.exe\", \"mshta.exe\", \"rundll32.exe\", \"regsvr32.exe\") and\n process.args : (\"?:\\\\WINDOWS\\\\diagnostics\\\\index\\\\PCWDiagnostic.xml\", \"PCWDiagnostic.xml\", \"?:\\\\Users\\\\Public\\\\*\", \"?:\\\\Windows\\\\Temp\\\\*\")) or\n\n (process.pe.original_file_name == \"msdt.exe\" and not process.name : \"msdt.exe\" and process.name != null) or\n\n (process.pe.original_file_name == \"msdt.exe\" and not process.executable : (\"?:\\\\Windows\\\\system32\\\\msdt.exe\", \"?:\\\\Windows\\\\SysWOW64\\\\msdt.exe\"))\n )\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"2c3c29a4-f170-42f8-a3d8-2ceebc18eb6a:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2d8043ed-5bda-4caf-801c-c1feb7410504:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2d8043ed-5bda-4caf-801c-c1feb7410504:100.0.0.json new file mode 100644 index 0000000000000..5361f31205383 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2d8043ed-5bda-4caf-801c-c1feb7410504:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Enumeration of Kernel Modules v100.0.0","rule_id":"2d8043ed-5bda-4caf-801c-c1feb7410504:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Loadable Kernel Modules (or LKMs) are pieces of code that can be loaded and unloaded into the kernel upon demand. They extend the functionality of the kernel without the need to reboot the system. This identifies attempts to enumerate information about a kernel module.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Security tools and device drivers may run these programs in order to enumerate kernel modules. Use of these programs by ordinary users is uncommon. These can be exempted by process name or username."],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.args:(kmod and list and sudo or sudo and (depmod or lsmod or modinfo))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},"id":"2d8043ed-5bda-4caf-801c-c1feb7410504:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2d8043ed-5bda-4caf-801c-c1feb7410504:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2d8043ed-5bda-4caf-801c-c1feb7410504:100.0.1.json new file mode 100644 index 0000000000000..5136905adfd26 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2d8043ed-5bda-4caf-801c-c1feb7410504:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Enumeration of Kernel Modules v100.0.1","rule_id":"2d8043ed-5bda-4caf-801c-c1feb7410504:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Loadable Kernel Modules (or LKMs) are pieces of code that can be loaded and unloaded into the kernel upon demand. They extend the functionality of the kernel without the need to reboot the system. This identifies attempts to enumerate information about a kernel module.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Security tools and device drivers may run these programs in order to enumerate kernel modules. Use of these programs by ordinary users is uncommon. These can be exempted by process name or username."],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.args:(kmod and list and sudo or sudo and (depmod or lsmod or modinfo))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},"id":"2d8043ed-5bda-4caf-801c-c1feb7410504:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2d8043ed-5bda-4caf-801c-c1feb7410504:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2d8043ed-5bda-4caf-801c-c1feb7410504:100.0.2.json new file mode 100644 index 0000000000000..064273ec5b876 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2d8043ed-5bda-4caf-801c-c1feb7410504:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Enumeration of Kernel Modules v100.0.2","rule_id":"2d8043ed-5bda-4caf-801c-c1feb7410504:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Loadable Kernel Modules (or LKMs) are pieces of code that can be loaded and unloaded into the kernel upon demand. They extend the functionality of the kernel without the need to reboot the system. This identifies attempts to enumerate information about a kernel module.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Security tools and device drivers may run these programs in order to enumerate kernel modules. Use of these programs by ordinary users is uncommon. These can be exempted by process name or username."],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.args:(kmod and list and sudo or sudo and (depmod or lsmod or modinfo))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},"id":"2d8043ed-5bda-4caf-801c-c1feb7410504:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2dd480be-1263-4d9c-8672-172928f6789a:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2dd480be-1263-4d9c-8672-172928f6789a:102.0.0.json new file mode 100644 index 0000000000000..577a418722018 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2dd480be-1263-4d9c-8672-172928f6789a:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Process Access via Direct System Call v102.0.0","rule_id":"2dd480be-1263-4d9c-8672-172928f6789a:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious process access events from an unknown memory region. Endpoint security solutions usually hook userland Windows APIs in order to decide if the code that is being executed is malicious or not. It's possible to bypass hooked functions by writing malicious functions that call syscalls directly.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Process Access via Direct System Call\n\nEndpoint security solutions usually hook userland Windows APIs in order to decide if the code that is being executed is\nmalicious or not. It's possible to bypass hooked functions by writing malicious functions that call syscalls directly.\n\nMore context and technical details can be found in this [research blog](https://outflank.nl/blog/2019/06/19/red-team-tactics-combining-direct-system-calls-and-srdi-to-bypass-av-edr/).\n\nThis rule identifies suspicious process access events from an unknown memory region. Attackers can use direct system\ncalls to bypass security solutions that rely on hooks.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This detection may be triggered by certain applications that install root certificates for the purpose of inspecting\nSSL traffic. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove the malicious certificate from the root certificate store.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://twitter.com/SBousseaden/status/1278013896440324096","https://www.ired.team/offensive-security/defense-evasion/using-syscalls-directly-from-visual-studio-to-bypass-avs-edrs"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"process where event.code == \"10\" and\n length(winlog.event_data.CallTrace) > 0 and\n\n /* Sysmon CallTrace starting with unknown memory module instead of ntdll which host Windows NT Syscalls */\n not winlog.event_data.CallTrace :\n (\"?:\\\\WINDOWS\\\\SYSTEM32\\\\ntdll.dll*\",\n \"?:\\\\WINDOWS\\\\SysWOW64\\\\ntdll.dll*\",\n \"?:\\\\Windows\\\\System32\\\\wow64cpu.dll*\",\n \"?:\\\\WINDOWS\\\\System32\\\\wow64win.dll*\",\n \"?:\\\\Windows\\\\System32\\\\win32u.dll*\") and\n\n not winlog.event_data.TargetImage :\n (\"?:\\\\Program Files (x86)\\\\Malwarebytes Anti-Exploit\\\\mbae-svc.exe\",\n \"?:\\\\Program Files\\\\Cisco\\\\AMP\\\\*\\\\sfc.exe\",\n \"?:\\\\Program Files (x86)\\\\Microsoft\\\\EdgeWebView\\\\Application\\\\*\\\\msedgewebview2.exe\",\n \"?:\\\\Program Files\\\\Adobe\\\\Acrobat DC\\\\Acrobat\\\\*\\\\AcroCEF.exe\") and\n\n not (process.executable : (\"?:\\\\Program Files\\\\Adobe\\\\Acrobat DC\\\\Acrobat\\\\Acrobat.exe\",\n \"?:\\\\Program Files (x86)\\\\World of Warcraft\\\\_classic_\\\\WowClassic.exe\") and\n not winlog.event_data.TargetImage : \"?:\\\\WINDOWS\\\\system32\\\\lsass.exe\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallTrace","type":"unknown"},{"ecs":false,"name":"winlog.event_data.TargetImage","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"2dd480be-1263-4d9c-8672-172928f6789a:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2dd480be-1263-4d9c-8672-172928f6789a:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2dd480be-1263-4d9c-8672-172928f6789a:102.0.1.json new file mode 100644 index 0000000000000..1bc0827ee24bb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2dd480be-1263-4d9c-8672-172928f6789a:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Process Access via Direct System Call v102.0.1","rule_id":"2dd480be-1263-4d9c-8672-172928f6789a:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious process access events from an unknown memory region. Endpoint security solutions usually hook userland Windows APIs in order to decide if the code that is being executed is malicious or not. It's possible to bypass hooked functions by writing malicious functions that call syscalls directly.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Process Access via Direct System Call\n\nEndpoint security solutions usually hook userland Windows APIs in order to decide if the code that is being executed is\nmalicious or not. It's possible to bypass hooked functions by writing malicious functions that call syscalls directly.\n\nMore context and technical details can be found in this [research blog](https://outflank.nl/blog/2019/06/19/red-team-tactics-combining-direct-system-calls-and-srdi-to-bypass-av-edr/).\n\nThis rule identifies suspicious process access events from an unknown memory region. Attackers can use direct system\ncalls to bypass security solutions that rely on hooks.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This detection may be triggered by certain applications that install root certificates for the purpose of inspecting\nSSL traffic. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove the malicious certificate from the root certificate store.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://twitter.com/SBousseaden/status/1278013896440324096","https://www.ired.team/offensive-security/defense-evasion/using-syscalls-directly-from-visual-studio-to-bypass-avs-edrs"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"process where event.code == \"10\" and\n length(winlog.event_data.CallTrace) > 0 and\n\n /* Sysmon CallTrace starting with unknown memory module instead of ntdll which host Windows NT Syscalls */\n not winlog.event_data.CallTrace :\n (\"?:\\\\WINDOWS\\\\SYSTEM32\\\\ntdll.dll*\",\n \"?:\\\\WINDOWS\\\\SysWOW64\\\\ntdll.dll*\",\n \"?:\\\\Windows\\\\System32\\\\wow64cpu.dll*\",\n \"?:\\\\WINDOWS\\\\System32\\\\wow64win.dll*\",\n \"?:\\\\Windows\\\\System32\\\\win32u.dll*\") and\n\n not winlog.event_data.TargetImage :\n (\"?:\\\\Program Files (x86)\\\\Malwarebytes Anti-Exploit\\\\mbae-svc.exe\",\n \"?:\\\\Program Files\\\\Cisco\\\\AMP\\\\*\\\\sfc.exe\",\n \"?:\\\\Program Files (x86)\\\\Microsoft\\\\EdgeWebView\\\\Application\\\\*\\\\msedgewebview2.exe\",\n \"?:\\\\Program Files\\\\Adobe\\\\Acrobat DC\\\\Acrobat\\\\*\\\\AcroCEF.exe\") and\n\n not (process.executable : (\"?:\\\\Program Files\\\\Adobe\\\\Acrobat DC\\\\Acrobat\\\\Acrobat.exe\",\n \"?:\\\\Program Files (x86)\\\\World of Warcraft\\\\_classic_\\\\WowClassic.exe\") and\n not winlog.event_data.TargetImage : \"?:\\\\WINDOWS\\\\system32\\\\lsass.exe\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallTrace","type":"unknown"},{"ecs":false,"name":"winlog.event_data.TargetImage","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"2dd480be-1263-4d9c-8672-172928f6789a:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2dd480be-1263-4d9c-8672-172928f6789a:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2dd480be-1263-4d9c-8672-172928f6789a:102.0.2.json new file mode 100644 index 0000000000000..ff9c453994324 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2dd480be-1263-4d9c-8672-172928f6789a:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Process Access via Direct System Call v102.0.2","rule_id":"2dd480be-1263-4d9c-8672-172928f6789a:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious process access events from an unknown memory region. Endpoint security solutions usually hook userland Windows APIs in order to decide if the code that is being executed is malicious or not. It's possible to bypass hooked functions by writing malicious functions that call syscalls directly.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Process Access via Direct System Call\n\nEndpoint security solutions usually hook userland Windows APIs in order to decide if the code that is being executed is\nmalicious or not. It's possible to bypass hooked functions by writing malicious functions that call syscalls directly.\n\nMore context and technical details can be found in this [research blog](https://outflank.nl/blog/2019/06/19/red-team-tactics-combining-direct-system-calls-and-srdi-to-bypass-av-edr/).\n\nThis rule identifies suspicious process access events from an unknown memory region. Attackers can use direct system\ncalls to bypass security solutions that rely on hooks.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This detection may be triggered by certain applications that install root certificates for the purpose of inspecting\nSSL traffic. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove the malicious certificate from the root certificate store.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://twitter.com/SBousseaden/status/1278013896440324096","https://www.ired.team/offensive-security/defense-evasion/using-syscalls-directly-from-visual-studio-to-bypass-avs-edrs"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"process where event.code == \"10\" and\n length(winlog.event_data.CallTrace) > 0 and\n\n /* Sysmon CallTrace starting with unknown memory module instead of ntdll which host Windows NT Syscalls */\n not winlog.event_data.CallTrace :\n (\"?:\\\\WINDOWS\\\\SYSTEM32\\\\ntdll.dll*\",\n \"?:\\\\WINDOWS\\\\SysWOW64\\\\ntdll.dll*\",\n \"?:\\\\Windows\\\\System32\\\\wow64cpu.dll*\",\n \"?:\\\\WINDOWS\\\\System32\\\\wow64win.dll*\",\n \"?:\\\\Windows\\\\System32\\\\win32u.dll*\") and\n\n not winlog.event_data.TargetImage :\n (\"?:\\\\Program Files (x86)\\\\Malwarebytes Anti-Exploit\\\\mbae-svc.exe\",\n \"?:\\\\Program Files\\\\Cisco\\\\AMP\\\\*\\\\sfc.exe\",\n \"?:\\\\Program Files (x86)\\\\Microsoft\\\\EdgeWebView\\\\Application\\\\*\\\\msedgewebview2.exe\",\n \"?:\\\\Program Files\\\\Adobe\\\\Acrobat DC\\\\Acrobat\\\\*\\\\AcroCEF.exe\") and\n\n not (process.executable : (\"?:\\\\Program Files\\\\Adobe\\\\Acrobat DC\\\\Acrobat\\\\Acrobat.exe\",\n \"?:\\\\Program Files (x86)\\\\World of Warcraft\\\\_classic_\\\\WowClassic.exe\") and\n not winlog.event_data.TargetImage : \"?:\\\\WINDOWS\\\\system32\\\\lsass.exe\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallTrace","type":"unknown"},{"ecs":false,"name":"winlog.event_data.TargetImage","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"2dd480be-1263-4d9c-8672-172928f6789a:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2de10e77-c144-4e69-afb7-344e7127abd0:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2de10e77-c144-4e69-afb7-344e7127abd0:101.0.0.json new file mode 100644 index 0000000000000..842d2d152fb75 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2de10e77-c144-4e69-afb7-344e7127abd0:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"O365 Excessive Single Sign-On Logon Errors v101.0.0","rule_id":"2de10e77-c144-4e69-afb7-344e7127abd0:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies accounts with a high number of single sign-on (SSO) logon errors. Excessive logon errors may indicate an attempt to brute force a password or SSO token.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic","Austin Songer"],"false_positives":["Automated processes that attempt to authenticate using expired credentials and unbounded retries may lead to false positives."],"from":"now-20m","tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:o365.audit and event.provider:AzureActiveDirectory and event.category:authentication and o365.audit.LogonError:\"SsoArtifactInvalidOrExpired\"\n","threshold":{"field":["user.id"],"value":5},"type":"threshold","index":["filebeat-*","logs-o365*"],"language":"kuery","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.LogonError","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"2de10e77-c144-4e69-afb7-344e7127abd0:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2de10e77-c144-4e69-afb7-344e7127abd0:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2de10e77-c144-4e69-afb7-344e7127abd0:101.0.1.json new file mode 100644 index 0000000000000..0fbfc42fc74f8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2de10e77-c144-4e69-afb7-344e7127abd0:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"O365 Excessive Single Sign-On Logon Errors v101.0.1","rule_id":"2de10e77-c144-4e69-afb7-344e7127abd0:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies accounts with a high number of single sign-on (SSO) logon errors. Excessive logon errors may indicate an attempt to brute force a password or SSO token.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic","Austin Songer"],"false_positives":["Automated processes that attempt to authenticate using expired credentials and unbounded retries may lead to false positives."],"from":"now-20m","tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:o365.audit and event.provider:AzureActiveDirectory and event.category:authentication and o365.audit.LogonError:\"SsoArtifactInvalidOrExpired\"\n","threshold":{"field":["user.id"],"value":5},"type":"threshold","index":["filebeat-*","logs-o365*"],"language":"kuery","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.LogonError","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"2de10e77-c144-4e69-afb7-344e7127abd0:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2de10e77-c144-4e69-afb7-344e7127abd0:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2de10e77-c144-4e69-afb7-344e7127abd0:101.0.2.json new file mode 100644 index 0000000000000..f9d81fc823297 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2de10e77-c144-4e69-afb7-344e7127abd0:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"O365 Excessive Single Sign-On Logon Errors v101.0.2","rule_id":"2de10e77-c144-4e69-afb7-344e7127abd0:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies accounts with a high number of single sign-on (SSO) logon errors. Excessive logon errors may indicate an attempt to brute force a password or SSO token.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic","Austin Songer"],"false_positives":["Automated processes that attempt to authenticate using expired credentials and unbounded retries may lead to false positives."],"from":"now-20m","tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:o365.audit and event.provider:AzureActiveDirectory and event.category:authentication and o365.audit.LogonError:\"SsoArtifactInvalidOrExpired\"\n","threshold":{"field":["user.id"],"value":5},"type":"threshold","index":["filebeat-*","logs-o365*"],"language":"kuery","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.LogonError","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"2de10e77-c144-4e69-afb7-344e7127abd0:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2de87d72-ee0c-43e2-b975-5f0b029ac600:1.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2de87d72-ee0c-43e2-b975-5f0b029ac600:1.0.0.json new file mode 100644 index 0000000000000..b32d48b43744c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2de87d72-ee0c-43e2-b975-5f0b029ac600:1.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Wireless Credential Dumping using Netsh Command v1.0.0","rule_id":"2de87d72-ee0c-43e2-b975-5f0b029ac600:1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to dump Wireless saved access keys in clear text using the Windows built-in utility Netsh.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://learn.microsoft.com/en-us/windows-server/networking/technologies/netsh/netsh-contexts","https://www.geeksforgeeks.org/how-to-find-the-wi-fi-password-using-cmd-in-windows/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Discovery","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"netsh.exe\" or process.pe.original_file_name == \"netsh.exe\") and\n process.args : \"wlan\" and process.args : \"key*clear\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"2de87d72-ee0c-43e2-b975-5f0b029ac600:1.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2de87d72-ee0c-43e2-b975-5f0b029ac600:1.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2de87d72-ee0c-43e2-b975-5f0b029ac600:1.0.1.json new file mode 100644 index 0000000000000..237fb89e7f069 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2de87d72-ee0c-43e2-b975-5f0b029ac600:1.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Wireless Credential Dumping using Netsh Command v1.0.1","rule_id":"2de87d72-ee0c-43e2-b975-5f0b029ac600:1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to dump Wireless saved access keys in clear text using the Windows built-in utility Netsh.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://learn.microsoft.com/en-us/windows-server/networking/technologies/netsh/netsh-contexts","https://www.geeksforgeeks.org/how-to-find-the-wi-fi-password-using-cmd-in-windows/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Discovery","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"netsh.exe\" or process.pe.original_file_name == \"netsh.exe\") and\n process.args : \"wlan\" and process.args : \"key*clear\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"2de87d72-ee0c-43e2-b975-5f0b029ac600:1.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2de87d72-ee0c-43e2-b975-5f0b029ac600:1.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2de87d72-ee0c-43e2-b975-5f0b029ac600:1.0.2.json new file mode 100644 index 0000000000000..d5fea23cac3c8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2de87d72-ee0c-43e2-b975-5f0b029ac600:1.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Wireless Credential Dumping using Netsh Command v1.0.2","rule_id":"2de87d72-ee0c-43e2-b975-5f0b029ac600:1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to dump Wireless saved access keys in clear text using the Windows built-in utility Netsh.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://learn.microsoft.com/en-us/windows-server/networking/technologies/netsh/netsh-contexts","https://www.geeksforgeeks.org/how-to-find-the-wi-fi-password-using-cmd-in-windows/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Discovery","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"netsh.exe\" or process.pe.original_file_name == \"netsh.exe\") and\n process.args : \"wlan\" and process.args : \"key*clear\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"2de87d72-ee0c-43e2-b975-5f0b029ac600:1.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2e1e835d-01e5-48ca-b9fc-7a61f7f11902:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2e1e835d-01e5-48ca-b9fc-7a61f7f11902:102.0.0.json new file mode 100644 index 0000000000000..8326d51da6052 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2e1e835d-01e5-48ca-b9fc-7a61f7f11902:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Renamed AutoIt Scripts Interpreter v102.0.0","rule_id":"2e1e835d-01e5-48ca-b9fc-7a61f7f11902:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious AutoIt process execution. Malware written as an AutoIt script tends to rename the AutoIt executable to avoid detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.003","name":"Rename System Utilities","reference":"https://attack.mitre.org/techniques/T1036/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name : \"AutoIt*.exe\" and not process.name : \"AutoIt*.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"2e1e835d-01e5-48ca-b9fc-7a61f7f11902:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2e1e835d-01e5-48ca-b9fc-7a61f7f11902:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2e1e835d-01e5-48ca-b9fc-7a61f7f11902:102.0.1.json new file mode 100644 index 0000000000000..d1d678ab633d6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2e1e835d-01e5-48ca-b9fc-7a61f7f11902:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Renamed AutoIt Scripts Interpreter v102.0.1","rule_id":"2e1e835d-01e5-48ca-b9fc-7a61f7f11902:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious AutoIt process execution. Malware written as an AutoIt script tends to rename the AutoIt executable to avoid detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.003","name":"Rename System Utilities","reference":"https://attack.mitre.org/techniques/T1036/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name : \"AutoIt*.exe\" and not process.name : \"AutoIt*.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"2e1e835d-01e5-48ca-b9fc-7a61f7f11902:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2e1e835d-01e5-48ca-b9fc-7a61f7f11902:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2e1e835d-01e5-48ca-b9fc-7a61f7f11902:102.0.2.json new file mode 100644 index 0000000000000..5557bfdcc42cc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2e1e835d-01e5-48ca-b9fc-7a61f7f11902:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Renamed AutoIt Scripts Interpreter v102.0.2","rule_id":"2e1e835d-01e5-48ca-b9fc-7a61f7f11902:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious AutoIt process execution. Malware written as an AutoIt script tends to rename the AutoIt executable to avoid detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.003","name":"Rename System Utilities","reference":"https://attack.mitre.org/techniques/T1036/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name : \"AutoIt*.exe\" and not process.name : \"AutoIt*.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"2e1e835d-01e5-48ca-b9fc-7a61f7f11902:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2e29e96a-b67c-455a-afe4-de6183431d0d:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2e29e96a-b67c-455a-afe4-de6183431d0d:102.0.0.json new file mode 100644 index 0000000000000..d2bc9fe050324 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2e29e96a-b67c-455a-afe4-de6183431d0d:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Process Injection via PowerShell v102.0.0","rule_id":"2e29e96a-b67c-455a-afe4-de6183431d0d:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of Windows API functions that are commonly abused by malware and security tools to load malicious code or inject it into remote processes.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Process Injection via PowerShell\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nPowerShell also has solid capabilities to make the interaction with the Win32 API in an uncomplicated and reliable way,\nlike the execution of inline C# code, PSReflect, Get-ProcAddress, etc.\n\nRed Team tooling and malware developers take advantage of these capabilities to develop stagers and loaders that inject\npayloads directly into the memory without touching the disk to circumvent file-based security protections.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Check if the imported function was executed and which process it targeted.\n- Check if the injected code can be retrieved (hardcoded in the script or on command line logs).\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate PowerShell scripts that make use of these functions."],"from":"now-9m","references":["https://github.com/EmpireProject/Empire/blob/master/data/module_source/management/Invoke-PSInject.ps1","https://github.com/EmpireProject/Empire/blob/master/data/module_source/management/Invoke-ReflectivePEInjection.ps1","https://github.com/BC-SECURITY/Empire/blob/master/empire/server/data/module_source/credentials/Invoke-Mimikatz.ps1","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/","subtechnique":[{"id":"T1055.001","name":"Dynamic-link Library Injection","reference":"https://attack.mitre.org/techniques/T1055/001/"},{"id":"T1055.002","name":"Portable Executable Injection","reference":"https://attack.mitre.org/techniques/T1055/002/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n (VirtualAlloc or VirtualAllocEx or VirtualProtect or LdrLoadDll or LoadLibrary or LoadLibraryA or\n LoadLibraryEx or GetProcAddress or OpenProcess or OpenProcessToken or AdjustTokenPrivileges) and\n (WriteProcessMemory or CreateRemoteThread or NtCreateThreadEx or CreateThread or QueueUserAPC or\n SuspendThread or ResumeThread or GetDelegateForFunctionPointer)\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"2e29e96a-b67c-455a-afe4-de6183431d0d:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2e29e96a-b67c-455a-afe4-de6183431d0d:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2e29e96a-b67c-455a-afe4-de6183431d0d:102.0.1.json new file mode 100644 index 0000000000000..8b83f32c6bd58 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2e29e96a-b67c-455a-afe4-de6183431d0d:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Process Injection via PowerShell v102.0.1","rule_id":"2e29e96a-b67c-455a-afe4-de6183431d0d:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of Windows API functions that are commonly abused by malware and security tools to load malicious code or inject it into remote processes.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Process Injection via PowerShell\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nPowerShell also has solid capabilities to make the interaction with the Win32 API in an uncomplicated and reliable way,\nlike the execution of inline C# code, PSReflect, Get-ProcAddress, etc.\n\nRed Team tooling and malware developers take advantage of these capabilities to develop stagers and loaders that inject\npayloads directly into the memory without touching the disk to circumvent file-based security protections.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Check if the imported function was executed and which process it targeted.\n- Check if the injected code can be retrieved (hardcoded in the script or on command line logs).\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate PowerShell scripts that make use of these functions."],"from":"now-9m","references":["https://github.com/EmpireProject/Empire/blob/master/data/module_source/management/Invoke-PSInject.ps1","https://github.com/EmpireProject/Empire/blob/master/data/module_source/management/Invoke-ReflectivePEInjection.ps1","https://github.com/BC-SECURITY/Empire/blob/master/empire/server/data/module_source/credentials/Invoke-Mimikatz.ps1","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/","subtechnique":[{"id":"T1055.001","name":"Dynamic-link Library Injection","reference":"https://attack.mitre.org/techniques/T1055/001/"},{"id":"T1055.002","name":"Portable Executable Injection","reference":"https://attack.mitre.org/techniques/T1055/002/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n (VirtualAlloc or VirtualAllocEx or VirtualProtect or LdrLoadDll or LoadLibrary or LoadLibraryA or\n LoadLibraryEx or GetProcAddress or OpenProcess or OpenProcessToken or AdjustTokenPrivileges) and\n (WriteProcessMemory or CreateRemoteThread or NtCreateThreadEx or CreateThread or QueueUserAPC or\n SuspendThread or ResumeThread or GetDelegateForFunctionPointer)\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"2e29e96a-b67c-455a-afe4-de6183431d0d:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2e29e96a-b67c-455a-afe4-de6183431d0d:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2e29e96a-b67c-455a-afe4-de6183431d0d:102.0.2.json new file mode 100644 index 0000000000000..2663b065b9923 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2e29e96a-b67c-455a-afe4-de6183431d0d:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Process Injection via PowerShell v102.0.2","rule_id":"2e29e96a-b67c-455a-afe4-de6183431d0d:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of Windows API functions that are commonly abused by malware and security tools to load malicious code or inject it into remote processes.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Process Injection via PowerShell\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nPowerShell also has solid capabilities to make the interaction with the Win32 API in an uncomplicated and reliable way,\nlike the execution of inline C# code, PSReflect, Get-ProcAddress, etc.\n\nRed Team tooling and malware developers take advantage of these capabilities to develop stagers and loaders that inject\npayloads directly into the memory without touching the disk to circumvent file-based security protections.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Check if the imported function was executed and which process it targeted.\n- Check if the injected code can be retrieved (hardcoded in the script or on command line logs).\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate PowerShell scripts that make use of these functions."],"from":"now-9m","references":["https://github.com/EmpireProject/Empire/blob/master/data/module_source/management/Invoke-PSInject.ps1","https://github.com/EmpireProject/Empire/blob/master/data/module_source/management/Invoke-ReflectivePEInjection.ps1","https://github.com/BC-SECURITY/Empire/blob/master/empire/server/data/module_source/credentials/Invoke-Mimikatz.ps1","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/","subtechnique":[{"id":"T1055.001","name":"Dynamic-link Library Injection","reference":"https://attack.mitre.org/techniques/T1055/001/"},{"id":"T1055.002","name":"Portable Executable Injection","reference":"https://attack.mitre.org/techniques/T1055/002/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n (VirtualAlloc or VirtualAllocEx or VirtualProtect or LdrLoadDll or LoadLibrary or LoadLibraryA or\n LoadLibraryEx or GetProcAddress or OpenProcess or OpenProcessToken or AdjustTokenPrivileges) and\n (WriteProcessMemory or CreateRemoteThread or NtCreateThreadEx or CreateThread or QueueUserAPC or\n SuspendThread or ResumeThread or GetDelegateForFunctionPointer)\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"2e29e96a-b67c-455a-afe4-de6183431d0d:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2e580225-2a58-48ef-938b-572933be06fe:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2e580225-2a58-48ef-938b-572933be06fe:100.0.0.json new file mode 100644 index 0000000000000..ca841261c2945 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2e580225-2a58-48ef-938b-572933be06fe:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Halfbaked Command and Control Beacon v100.0.0","rule_id":"2e580225-2a58-48ef-938b-572933be06fe:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Halfbaked is a malware family used to establish persistence in a contested network. This rule detects a network activity algorithm leveraged by Halfbaked implant beacons for command and control.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Threat intel\n\nThis activity has been observed in FIN7 campaigns.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This rule should be tailored to exclude systems, either as sources or destinations, in which this behavior is expected."],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2017/04/fin7-phishing-lnk.html","https://attack.mitre.org/software/S0151/"],"tags":["Elastic","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/"},{"id":"T1568","name":"Dynamic Resolution","reference":"https://attack.mitre.org/techniques/T1568/","subtechnique":[{"id":"T1568.002","name":"Domain Generation Algorithms","reference":"https://attack.mitre.org/techniques/T1568/002/"}]}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"lucene","query":"event.category:(network OR network_traffic) AND network.protocol:http AND\n network.transport:tcp AND url.full:/http:\\/\\/[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}\\/cd/ AND\n destination.port:(53 OR 80 OR 8080 OR 443)\n"},"id":"2e580225-2a58-48ef-938b-572933be06fe:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2e580225-2a58-48ef-938b-572933be06fe:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2e580225-2a58-48ef-938b-572933be06fe:100.0.1.json new file mode 100644 index 0000000000000..c5b24568f1aed --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2e580225-2a58-48ef-938b-572933be06fe:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Halfbaked Command and Control Beacon v100.0.1","rule_id":"2e580225-2a58-48ef-938b-572933be06fe:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Halfbaked is a malware family used to establish persistence in a contested network. This rule detects a network activity algorithm leveraged by Halfbaked implant beacons for command and control.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Threat intel\n\nThis activity has been observed in FIN7 campaigns.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This rule should be tailored to exclude systems, either as sources or destinations, in which this behavior is expected."],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2017/04/fin7-phishing-lnk.html","https://attack.mitre.org/software/S0151/"],"tags":["Elastic","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/"},{"id":"T1568","name":"Dynamic Resolution","reference":"https://attack.mitre.org/techniques/T1568/","subtechnique":[{"id":"T1568.002","name":"Domain Generation Algorithms","reference":"https://attack.mitre.org/techniques/T1568/002/"}]}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"lucene","query":"event.category:(network OR network_traffic) AND network.protocol:http AND\n network.transport:tcp AND url.full:/http:\\/\\/[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}\\/cd/ AND\n destination.port:(53 OR 80 OR 8080 OR 443)\n"},"id":"2e580225-2a58-48ef-938b-572933be06fe:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2e580225-2a58-48ef-938b-572933be06fe:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2e580225-2a58-48ef-938b-572933be06fe:100.0.2.json new file mode 100644 index 0000000000000..b37cf0d34e4df --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2e580225-2a58-48ef-938b-572933be06fe:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Halfbaked Command and Control Beacon v100.0.2","rule_id":"2e580225-2a58-48ef-938b-572933be06fe:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Halfbaked is a malware family used to establish persistence in a contested network. This rule detects a network activity algorithm leveraged by Halfbaked implant beacons for command and control.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Threat intel\n\nThis activity has been observed in FIN7 campaigns.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This rule should be tailored to exclude systems, either as sources or destinations, in which this behavior is expected."],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2017/04/fin7-phishing-lnk.html","https://attack.mitre.org/software/S0151/"],"tags":["Elastic","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/"},{"id":"T1568","name":"Dynamic Resolution","reference":"https://attack.mitre.org/techniques/T1568/","subtechnique":[{"id":"T1568.002","name":"Domain Generation Algorithms","reference":"https://attack.mitre.org/techniques/T1568/002/"}]}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"lucene","query":"event.category:(network OR network_traffic) AND network.protocol:http AND\n network.transport:tcp AND url.full:/http:\\/\\/[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}\\/cd/ AND\n destination.port:(53 OR 80 OR 8080 OR 443)\n"},"id":"2e580225-2a58-48ef-938b-572933be06fe:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2edc8076-291e-41e9-81e4-e3fcbc97ae5e:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2edc8076-291e-41e9-81e4-e3fcbc97ae5e:102.0.0.json new file mode 100644 index 0000000000000..844d6d4e913fa --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2edc8076-291e-41e9-81e4-e3fcbc97ae5e:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Creation of a Hidden Local User Account v102.0.0","rule_id":"2edc8076-291e-41e9-81e4-e3fcbc97ae5e:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a hidden local user account by appending the dollar sign to the account name. This is sometimes done by attackers to increase access to a system and avoid appearing in the results of accounts listing using the net users command.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Creation of a Hidden Local User Account\n\nAttackers can create accounts ending with a `$` symbol to make the account hidden to user enumeration utilities and\nbypass detections that identify computer accounts by this pattern to apply filters.\n\nThis rule uses registry events to identify the creation of local hidden accounts.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positive (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Delete the hidden account.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.menasec.net/2019/02/threat-hunting-6-hiding-in-plain-sights_8.html","https://github.com/CyberMonitor/APT_CyberCriminal_Campagin_Collections/tree/master/2020/2020.12.15.Lazarus_Campaign"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/","subtechnique":[{"id":"T1136.001","name":"Local Account","reference":"https://attack.mitre.org/techniques/T1136/001/"}]}]}],"language":"eql","query":"registry where registry.path : \"HKLM\\\\SAM\\\\SAM\\\\Domains\\\\Account\\\\Users\\\\Names\\\\*$\\\\\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"2edc8076-291e-41e9-81e4-e3fcbc97ae5e:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2edc8076-291e-41e9-81e4-e3fcbc97ae5e:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2edc8076-291e-41e9-81e4-e3fcbc97ae5e:102.0.1.json new file mode 100644 index 0000000000000..9428549819301 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2edc8076-291e-41e9-81e4-e3fcbc97ae5e:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Creation of a Hidden Local User Account v102.0.1","rule_id":"2edc8076-291e-41e9-81e4-e3fcbc97ae5e:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a hidden local user account by appending the dollar sign to the account name. This is sometimes done by attackers to increase access to a system and avoid appearing in the results of accounts listing using the net users command.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Creation of a Hidden Local User Account\n\nAttackers can create accounts ending with a `$` symbol to make the account hidden to user enumeration utilities and\nbypass detections that identify computer accounts by this pattern to apply filters.\n\nThis rule uses registry events to identify the creation of local hidden accounts.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positive (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Delete the hidden account.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.menasec.net/2019/02/threat-hunting-6-hiding-in-plain-sights_8.html","https://github.com/CyberMonitor/APT_CyberCriminal_Campagin_Collections/tree/master/2020/2020.12.15.Lazarus_Campaign"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/","subtechnique":[{"id":"T1136.001","name":"Local Account","reference":"https://attack.mitre.org/techniques/T1136/001/"}]}]}],"language":"eql","query":"registry where registry.path : \"HKLM\\\\SAM\\\\SAM\\\\Domains\\\\Account\\\\Users\\\\Names\\\\*$\\\\\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"2edc8076-291e-41e9-81e4-e3fcbc97ae5e:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2edc8076-291e-41e9-81e4-e3fcbc97ae5e:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2edc8076-291e-41e9-81e4-e3fcbc97ae5e:102.0.2.json new file mode 100644 index 0000000000000..bcf2f8ba88325 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2edc8076-291e-41e9-81e4-e3fcbc97ae5e:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Creation of a Hidden Local User Account v102.0.2","rule_id":"2edc8076-291e-41e9-81e4-e3fcbc97ae5e:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a hidden local user account by appending the dollar sign to the account name. This is sometimes done by attackers to increase access to a system and avoid appearing in the results of accounts listing using the net users command.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Creation of a Hidden Local User Account\n\nAttackers can create accounts ending with a `$` symbol to make the account hidden to user enumeration utilities and\nbypass detections that identify computer accounts by this pattern to apply filters.\n\nThis rule uses registry events to identify the creation of local hidden accounts.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positive (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Delete the hidden account.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.menasec.net/2019/02/threat-hunting-6-hiding-in-plain-sights_8.html","https://github.com/CyberMonitor/APT_CyberCriminal_Campagin_Collections/tree/master/2020/2020.12.15.Lazarus_Campaign"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/","subtechnique":[{"id":"T1136.001","name":"Local Account","reference":"https://attack.mitre.org/techniques/T1136/001/"}]}]}],"language":"eql","query":"registry where registry.path : \"HKLM\\\\SAM\\\\SAM\\\\Domains\\\\Account\\\\Users\\\\Names\\\\*$\\\\\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"2edc8076-291e-41e9-81e4-e3fcbc97ae5e:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2f2f4939-0b34-40c2-a0a3-844eb7889f43:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2f2f4939-0b34-40c2-a0a3-844eb7889f43:102.0.0.json new file mode 100644 index 0000000000000..ff5aede8da9f9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2f2f4939-0b34-40c2-a0a3-844eb7889f43:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell Suspicious Script with Audio Capture Capabilities v102.0.0","rule_id":"2f2f4939-0b34-40c2-a0a3-844eb7889f43:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects PowerShell scripts that can record audio, a common feature in popular post-exploitation tooling.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Suspicious Script with Audio Capture Capabilities\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can use PowerShell to interact with the Windows API with the intent of capturing audio from input devices\nconnected to the victim's computer.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Investigate if the script stores the recorded data locally and determine if anything was recorded.\n- Investigate if the script contains exfiltration capabilities and the destination of this exfiltration.\n- Assess network data to determine if the host communicated with the exfiltration server.\n\n### False positive analysis\n\n- Regular users should not need scripts to capture audio, which makes false positives unlikely. In the case of\nauthorized benign true positives (B-TPs), exceptions can be added.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- The response must be prioritized if this alert involves key executives or potentially valuable targets for espionage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Get-MicrophoneAudio.ps1"],"tags":["Elastic","Host","Windows","Threat Detection","Collection","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1123","name":"Audio Capture","reference":"https://attack.mitre.org/techniques/T1123/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n \"Get-MicrophoneAudio\" or (waveInGetNumDevs and mciSendStringA)\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"2f2f4939-0b34-40c2-a0a3-844eb7889f43:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2f2f4939-0b34-40c2-a0a3-844eb7889f43:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2f2f4939-0b34-40c2-a0a3-844eb7889f43:102.0.1.json new file mode 100644 index 0000000000000..424437f36a7e9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2f2f4939-0b34-40c2-a0a3-844eb7889f43:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell Suspicious Script with Audio Capture Capabilities v102.0.1","rule_id":"2f2f4939-0b34-40c2-a0a3-844eb7889f43:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects PowerShell scripts that can record audio, a common feature in popular post-exploitation tooling.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Suspicious Script with Audio Capture Capabilities\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can use PowerShell to interact with the Windows API with the intent of capturing audio from input devices\nconnected to the victim's computer.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Investigate if the script stores the recorded data locally and determine if anything was recorded.\n- Investigate if the script contains exfiltration capabilities and the destination of this exfiltration.\n- Assess network data to determine if the host communicated with the exfiltration server.\n\n### False positive analysis\n\n- Regular users should not need scripts to capture audio, which makes false positives unlikely. In the case of\nauthorized benign true positives (B-TPs), exceptions can be added.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- The response must be prioritized if this alert involves key executives or potentially valuable targets for espionage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Get-MicrophoneAudio.ps1"],"tags":["Elastic","Host","Windows","Threat Detection","Collection","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1123","name":"Audio Capture","reference":"https://attack.mitre.org/techniques/T1123/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n \"Get-MicrophoneAudio\" or (waveInGetNumDevs and mciSendStringA)\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"2f2f4939-0b34-40c2-a0a3-844eb7889f43:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2f2f4939-0b34-40c2-a0a3-844eb7889f43:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2f2f4939-0b34-40c2-a0a3-844eb7889f43:102.0.2.json new file mode 100644 index 0000000000000..eed8768dda136 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2f2f4939-0b34-40c2-a0a3-844eb7889f43:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell Suspicious Script with Audio Capture Capabilities v102.0.2","rule_id":"2f2f4939-0b34-40c2-a0a3-844eb7889f43:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects PowerShell scripts that can record audio, a common feature in popular post-exploitation tooling.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Suspicious Script with Audio Capture Capabilities\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can use PowerShell to interact with the Windows API with the intent of capturing audio from input devices\nconnected to the victim's computer.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Investigate if the script stores the recorded data locally and determine if anything was recorded.\n- Investigate if the script contains exfiltration capabilities and the destination of this exfiltration.\n- Assess network data to determine if the host communicated with the exfiltration server.\n\n### False positive analysis\n\n- Regular users should not need scripts to capture audio, which makes false positives unlikely. In the case of\nauthorized benign true positives (B-TPs), exceptions can be added.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- The response must be prioritized if this alert involves key executives or potentially valuable targets for espionage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Get-MicrophoneAudio.ps1"],"tags":["Elastic","Host","Windows","Threat Detection","Collection","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1123","name":"Audio Capture","reference":"https://attack.mitre.org/techniques/T1123/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n \"Get-MicrophoneAudio\" or (waveInGetNumDevs and mciSendStringA)\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"2f2f4939-0b34-40c2-a0a3-844eb7889f43:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2f8a1226-5720-437d-9c20-e0029deb6194:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2f8a1226-5720-437d-9c20-e0029deb6194:100.0.0.json new file mode 100644 index 0000000000000..d0e39acffabee --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2f8a1226-5720-437d-9c20-e0029deb6194:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Disable Syslog Service v100.0.0","rule_id":"2f8a1226-5720-437d-9c20-e0029deb6194:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may attempt to disable the syslog service in an attempt to an attempt to disrupt event logging and evade detection by security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n ((process.name:service and process.args:stop) or\n (process.name:chkconfig and process.args:off) or\n (process.name:systemctl and process.args:(disable or stop or kill)))\n and process.args:(syslog or rsyslog or \"syslog-ng\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"2f8a1226-5720-437d-9c20-e0029deb6194:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2f8a1226-5720-437d-9c20-e0029deb6194:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2f8a1226-5720-437d-9c20-e0029deb6194:100.0.1.json new file mode 100644 index 0000000000000..43865ff4e0c5d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2f8a1226-5720-437d-9c20-e0029deb6194:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Disable Syslog Service v100.0.1","rule_id":"2f8a1226-5720-437d-9c20-e0029deb6194:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may attempt to disable the syslog service in an attempt to an attempt to disrupt event logging and evade detection by security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n ((process.name:service and process.args:stop) or\n (process.name:chkconfig and process.args:off) or\n (process.name:systemctl and process.args:(disable or stop or kill)))\n and process.args:(syslog or rsyslog or \"syslog-ng\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"2f8a1226-5720-437d-9c20-e0029deb6194:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2f8a1226-5720-437d-9c20-e0029deb6194:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2f8a1226-5720-437d-9c20-e0029deb6194:100.0.2.json new file mode 100644 index 0000000000000..86718ca5a9ada --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2f8a1226-5720-437d-9c20-e0029deb6194:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Disable Syslog Service v100.0.2","rule_id":"2f8a1226-5720-437d-9c20-e0029deb6194:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may attempt to disable the syslog service in an attempt to an attempt to disrupt event logging and evade detection by security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n ((process.name:service and process.args:stop) or\n (process.name:chkconfig and process.args:off) or\n (process.name:systemctl and process.args:(disable or stop or kill)))\n and process.args:(syslog or rsyslog or \"syslog-ng\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"2f8a1226-5720-437d-9c20-e0029deb6194:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2fba96c0-ade5-4bce-b92f-a5df2509da3f:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2fba96c0-ade5-4bce-b92f-a5df2509da3f:102.0.0.json new file mode 100644 index 0000000000000..22ac4e76bd443 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2fba96c0-ade5-4bce-b92f-a5df2509da3f:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Startup Folder Persistence via Unsigned Process v102.0.0","rule_id":"2fba96c0-ade5-4bce-b92f-a5df2509da3f:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies files written or modified in the startup folder by unsigned processes. Adversaries may abuse this technique to maintain persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Startup Folder Persistence via Unsigned Process\n\nThe Windows Startup folder is a special folder in Windows. Programs added to this folder are executed during account\nlogon, without user interaction, providing an excellent way for attackers to maintain persistence.\n\nThis rule looks for unsigned processes writing to the Startup folder locations.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- There is a high possibility of benign legitimate programs being added to Startup folders. This activity could be based\non new software installations, patches, or any kind of network administrator related activity. Before undertaking further\ninvestigation, verify that this activity is not benign.\n\n### Related rules\n\n- Suspicious Startup Shell Folder Modification - c8b150f0-0164-475b-a75e-74b47800a9ff\n- Persistent Scripts in the Startup Directory - f7c4dc5a-a58d-491d-9f14-9b66507121c0\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan=5s\n [process where event.type == \"start\" and process.code_signature.trusted == false and\n /* suspicious paths can be added here */\n process.executable : (\"C:\\\\Users\\\\*.exe\",\n \"C:\\\\ProgramData\\\\*.exe\",\n \"C:\\\\Windows\\\\Temp\\\\*.exe\",\n \"C:\\\\Windows\\\\Tasks\\\\*.exe\",\n \"C:\\\\Intel\\\\*.exe\",\n \"C:\\\\PerfLogs\\\\*.exe\")\n ]\n [file where event.type != \"deletion\" and user.domain != \"NT AUTHORITY\" and\n file.path : (\"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\\\\*\",\n \"C:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\StartUp\\\\*\")\n ]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}]},"id":"2fba96c0-ade5-4bce-b92f-a5df2509da3f:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2fba96c0-ade5-4bce-b92f-a5df2509da3f:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2fba96c0-ade5-4bce-b92f-a5df2509da3f:102.0.1.json new file mode 100644 index 0000000000000..15220eb29bd41 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2fba96c0-ade5-4bce-b92f-a5df2509da3f:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Startup Folder Persistence via Unsigned Process v102.0.1","rule_id":"2fba96c0-ade5-4bce-b92f-a5df2509da3f:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies files written or modified in the startup folder by unsigned processes. Adversaries may abuse this technique to maintain persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Startup Folder Persistence via Unsigned Process\n\nThe Windows Startup folder is a special folder in Windows. Programs added to this folder are executed during account\nlogon, without user interaction, providing an excellent way for attackers to maintain persistence.\n\nThis rule looks for unsigned processes writing to the Startup folder locations.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- There is a high possibility of benign legitimate programs being added to Startup folders. This activity could be based\non new software installations, patches, or any kind of network administrator related activity. Before undertaking further\ninvestigation, verify that this activity is not benign.\n\n### Related rules\n\n- Suspicious Startup Shell Folder Modification - c8b150f0-0164-475b-a75e-74b47800a9ff\n- Persistent Scripts in the Startup Directory - f7c4dc5a-a58d-491d-9f14-9b66507121c0\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan=5s\n [process where event.type == \"start\" and process.code_signature.trusted == false and\n /* suspicious paths can be added here */\n process.executable : (\"C:\\\\Users\\\\*.exe\",\n \"C:\\\\ProgramData\\\\*.exe\",\n \"C:\\\\Windows\\\\Temp\\\\*.exe\",\n \"C:\\\\Windows\\\\Tasks\\\\*.exe\",\n \"C:\\\\Intel\\\\*.exe\",\n \"C:\\\\PerfLogs\\\\*.exe\")\n ]\n [file where event.type != \"deletion\" and user.domain != \"NT AUTHORITY\" and\n file.path : (\"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\\\\*\",\n \"C:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\StartUp\\\\*\")\n ]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}]},"id":"2fba96c0-ade5-4bce-b92f-a5df2509da3f:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2fba96c0-ade5-4bce-b92f-a5df2509da3f:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2fba96c0-ade5-4bce-b92f-a5df2509da3f:102.0.2.json new file mode 100644 index 0000000000000..6e9f58662e7b7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2fba96c0-ade5-4bce-b92f-a5df2509da3f:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Startup Folder Persistence via Unsigned Process v102.0.2","rule_id":"2fba96c0-ade5-4bce-b92f-a5df2509da3f:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies files written or modified in the startup folder by unsigned processes. Adversaries may abuse this technique to maintain persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Startup Folder Persistence via Unsigned Process\n\nThe Windows Startup folder is a special folder in Windows. Programs added to this folder are executed during account\nlogon, without user interaction, providing an excellent way for attackers to maintain persistence.\n\nThis rule looks for unsigned processes writing to the Startup folder locations.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- There is a high possibility of benign legitimate programs being added to Startup folders. This activity could be based\non new software installations, patches, or any kind of network administrator related activity. Before undertaking further\ninvestigation, verify that this activity is not benign.\n\n### Related rules\n\n- Suspicious Startup Shell Folder Modification - c8b150f0-0164-475b-a75e-74b47800a9ff\n- Persistent Scripts in the Startup Directory - f7c4dc5a-a58d-491d-9f14-9b66507121c0\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan=5s\n [process where event.type == \"start\" and process.code_signature.trusted == false and\n /* suspicious paths can be added here */\n process.executable : (\"C:\\\\Users\\\\*.exe\",\n \"C:\\\\ProgramData\\\\*.exe\",\n \"C:\\\\Windows\\\\Temp\\\\*.exe\",\n \"C:\\\\Windows\\\\Tasks\\\\*.exe\",\n \"C:\\\\Intel\\\\*.exe\",\n \"C:\\\\PerfLogs\\\\*.exe\")\n ]\n [file where event.type != \"deletion\" and user.domain != \"NT AUTHORITY\" and\n file.path : (\"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\\\\*\",\n \"C:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\StartUp\\\\*\")\n ]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}]},"id":"2fba96c0-ade5-4bce-b92f-a5df2509da3f:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2ffa1f1e-b6db-47fa-994b-1512743847eb:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2ffa1f1e-b6db-47fa-994b-1512743847eb:102.0.0.json new file mode 100644 index 0000000000000..0306e72f1b719 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2ffa1f1e-b6db-47fa-994b-1512743847eb:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Windows Defender Disabled via Registry Modification v102.0.0","rule_id":"2ffa1f1e-b6db-47fa-994b-1512743847eb:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to the Windows Defender registry settings to disable the service or set the service to be started manually.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Defender Disabled via Registry Modification\n\nMicrosoft Windows Defender is an antivirus product built into Microsoft Windows, which makes it popular across multiple\nenvironments. Disabling it is a common step in threat actor playbooks.\n\nThis rule monitors the registry for configurations that disable Windows Defender or the start of its service.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check if this operation was approved and performed according to the organization's change management policy.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity,\nthe configuration is justified (for example, it is being used to deploy other security solutions or troubleshooting),\nand no other suspicious activity has been observed.\n\n### Related rules\n\n- Disabling Windows Defender Security Settings via PowerShell - c8cccb06-faf2-4cd5-886e-2c9636cfcb87\n- Microsoft Windows Defender Tampering - fe794edd-487f-4a90-b285-3ee54f2af2d3\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Re-enable Windows Defender and restore the service configurations to automatic start.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://thedfirreport.com/2020/12/13/defender-control/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"},{"id":"T1562.006","name":"Indicator Blocking","reference":"https://attack.mitre.org/techniques/T1562/006/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n (\n (\n registry.path: (\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\DisableAntiSpyware\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\DisableAntiSpyware\"\n ) and\n registry.data.strings: (\"1\", \"0x00000001\")\n ) or\n (\n registry.path: (\n \"HKLM\\\\System\\\\*ControlSet*\\\\Services\\\\WinDefend\\\\Start\",\n \"\\\\REGISTRY\\\\MACHINE\\\\System\\\\*ControlSet*\\\\Services\\\\WinDefend\\\\Start\"\n ) and\n registry.data.strings in (\"3\", \"4\", \"0x00000003\", \"0x00000004\")\n )\n ) and\n\n not process.executable :\n (\"?:\\\\WINDOWS\\\\system32\\\\services.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Program Files (x86)\\\\Trend Micro\\\\Security Agent\\\\NTRmv.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"2ffa1f1e-b6db-47fa-994b-1512743847eb:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2ffa1f1e-b6db-47fa-994b-1512743847eb:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2ffa1f1e-b6db-47fa-994b-1512743847eb:102.0.1.json new file mode 100644 index 0000000000000..d39a835d1b93e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2ffa1f1e-b6db-47fa-994b-1512743847eb:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Windows Defender Disabled via Registry Modification v102.0.1","rule_id":"2ffa1f1e-b6db-47fa-994b-1512743847eb:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to the Windows Defender registry settings to disable the service or set the service to be started manually.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Defender Disabled via Registry Modification\n\nMicrosoft Windows Defender is an antivirus product built into Microsoft Windows, which makes it popular across multiple\nenvironments. Disabling it is a common step in threat actor playbooks.\n\nThis rule monitors the registry for configurations that disable Windows Defender or the start of its service.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check if this operation was approved and performed according to the organization's change management policy.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity,\nthe configuration is justified (for example, it is being used to deploy other security solutions or troubleshooting),\nand no other suspicious activity has been observed.\n\n### Related rules\n\n- Disabling Windows Defender Security Settings via PowerShell - c8cccb06-faf2-4cd5-886e-2c9636cfcb87\n- Microsoft Windows Defender Tampering - fe794edd-487f-4a90-b285-3ee54f2af2d3\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Re-enable Windows Defender and restore the service configurations to automatic start.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://thedfirreport.com/2020/12/13/defender-control/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"},{"id":"T1562.006","name":"Indicator Blocking","reference":"https://attack.mitre.org/techniques/T1562/006/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n (\n (\n registry.path: (\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\DisableAntiSpyware\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\DisableAntiSpyware\"\n ) and\n registry.data.strings: (\"1\", \"0x00000001\")\n ) or\n (\n registry.path: (\n \"HKLM\\\\System\\\\*ControlSet*\\\\Services\\\\WinDefend\\\\Start\",\n \"\\\\REGISTRY\\\\MACHINE\\\\System\\\\*ControlSet*\\\\Services\\\\WinDefend\\\\Start\"\n ) and\n registry.data.strings in (\"3\", \"4\", \"0x00000003\", \"0x00000004\")\n )\n ) and\n\n not process.executable :\n (\"?:\\\\WINDOWS\\\\system32\\\\services.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Program Files (x86)\\\\Trend Micro\\\\Security Agent\\\\NTRmv.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"2ffa1f1e-b6db-47fa-994b-1512743847eb:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/2ffa1f1e-b6db-47fa-994b-1512743847eb:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/2ffa1f1e-b6db-47fa-994b-1512743847eb:102.0.2.json new file mode 100644 index 0000000000000..e9134cc73d025 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/2ffa1f1e-b6db-47fa-994b-1512743847eb:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Windows Defender Disabled via Registry Modification v102.0.2","rule_id":"2ffa1f1e-b6db-47fa-994b-1512743847eb:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to the Windows Defender registry settings to disable the service or set the service to be started manually.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Defender Disabled via Registry Modification\n\nMicrosoft Windows Defender is an antivirus product built into Microsoft Windows, which makes it popular across multiple\nenvironments. Disabling it is a common step in threat actor playbooks.\n\nThis rule monitors the registry for configurations that disable Windows Defender or the start of its service.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check if this operation was approved and performed according to the organization's change management policy.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity,\nthe configuration is justified (for example, it is being used to deploy other security solutions or troubleshooting),\nand no other suspicious activity has been observed.\n\n### Related rules\n\n- Disabling Windows Defender Security Settings via PowerShell - c8cccb06-faf2-4cd5-886e-2c9636cfcb87\n- Microsoft Windows Defender Tampering - fe794edd-487f-4a90-b285-3ee54f2af2d3\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Re-enable Windows Defender and restore the service configurations to automatic start.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://thedfirreport.com/2020/12/13/defender-control/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"},{"id":"T1562.006","name":"Indicator Blocking","reference":"https://attack.mitre.org/techniques/T1562/006/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n (\n (\n registry.path: (\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\DisableAntiSpyware\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\DisableAntiSpyware\"\n ) and\n registry.data.strings: (\"1\", \"0x00000001\")\n ) or\n (\n registry.path: (\n \"HKLM\\\\System\\\\*ControlSet*\\\\Services\\\\WinDefend\\\\Start\",\n \"\\\\REGISTRY\\\\MACHINE\\\\System\\\\*ControlSet*\\\\Services\\\\WinDefend\\\\Start\"\n ) and\n registry.data.strings in (\"3\", \"4\", \"0x00000003\", \"0x00000004\")\n )\n ) and\n\n not process.executable :\n (\"?:\\\\WINDOWS\\\\system32\\\\services.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Program Files (x86)\\\\Trend Micro\\\\Security Agent\\\\NTRmv.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"2ffa1f1e-b6db-47fa-994b-1512743847eb:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/30562697-9859-4ae0-a8c5-dab45d664170:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/30562697-9859-4ae0-a8c5-dab45d664170:102.0.0.json new file mode 100644 index 0000000000000..538dd6988ad1e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/30562697-9859-4ae0-a8c5-dab45d664170:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Firewall Rule Creation v102.0.0","rule_id":"30562697-9859-4ae0-a8c5-dab45d664170:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a firewall rule is created in Google Cloud Platform (GCP) for Virtual Private Cloud (VPC) or App Engine. These firewall rules can be configured to allow or deny connections to or from virtual machine (VM) instances or specific applications. An adversary may create a new firewall rule in order to weaken their target's security controls and allow more permissive ingress or egress traffic flows for their benefit.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Firewall rules may be created by system administrators. Verify that the firewall configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/firewalls","https://cloud.google.com/appengine/docs/standard/python/understanding-firewalls"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:(*.compute.firewalls.insert or google.appengine.*.Firewall.Create*Rule)\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"30562697-9859-4ae0-a8c5-dab45d664170:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/30562697-9859-4ae0-a8c5-dab45d664170:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/30562697-9859-4ae0-a8c5-dab45d664170:102.0.1.json new file mode 100644 index 0000000000000..fa1ff8e87a4b3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/30562697-9859-4ae0-a8c5-dab45d664170:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Firewall Rule Creation v102.0.1","rule_id":"30562697-9859-4ae0-a8c5-dab45d664170:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a firewall rule is created in Google Cloud Platform (GCP) for Virtual Private Cloud (VPC) or App Engine. These firewall rules can be configured to allow or deny connections to or from virtual machine (VM) instances or specific applications. An adversary may create a new firewall rule in order to weaken their target's security controls and allow more permissive ingress or egress traffic flows for their benefit.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Firewall rules may be created by system administrators. Verify that the firewall configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/firewalls","https://cloud.google.com/appengine/docs/standard/python/understanding-firewalls"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:(*.compute.firewalls.insert or google.appengine.*.Firewall.Create*Rule)\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"30562697-9859-4ae0-a8c5-dab45d664170:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/30562697-9859-4ae0-a8c5-dab45d664170:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/30562697-9859-4ae0-a8c5-dab45d664170:102.0.2.json new file mode 100644 index 0000000000000..dfbe495e66b5d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/30562697-9859-4ae0-a8c5-dab45d664170:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Firewall Rule Creation v102.0.2","rule_id":"30562697-9859-4ae0-a8c5-dab45d664170:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a firewall rule is created in Google Cloud Platform (GCP) for Virtual Private Cloud (VPC) or App Engine. These firewall rules can be configured to allow or deny connections to or from virtual machine (VM) instances or specific applications. An adversary may create a new firewall rule in order to weaken their target's security controls and allow more permissive ingress or egress traffic flows for their benefit.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Firewall rules may be created by system administrators. Verify that the firewall configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/firewalls","https://cloud.google.com/appengine/docs/standard/python/understanding-firewalls"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:(*.compute.firewalls.insert or google.appengine.*.Firewall.Create*Rule)\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"30562697-9859-4ae0-a8c5-dab45d664170:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3115bd2c-0baa-4df0-80ea-45e474b5ef93:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3115bd2c-0baa-4df0-80ea-45e474b5ef93:100.0.0.json new file mode 100644 index 0000000000000..125347fa85378 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3115bd2c-0baa-4df0-80ea-45e474b5ef93:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Agent Spoofing - Mismatched Agent ID v100.0.0","rule_id":"3115bd2c-0baa-4df0-80ea-45e474b5ef93:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects events that have a mismatch on the expected event agent ID. The status \"agent_id_mismatch\" occurs when the expected agent ID associated with the API key does not match the actual agent ID in an event. This could indicate attempts to spoof events in order to masquerade actual activity to evade detection.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This is meant to run only on datasources using Elastic Agent 7.14+ since versions prior to that will be missing the necessary field, resulting in false positives."],"from":"now-9m","tags":["Elastic","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"type":"query","index":["logs-*","metrics-*","traces-*"],"language":"kuery","query":"event.agent_id_status:agent_id_mismatch\n","required_fields":[{"ecs":true,"name":"event.agent_id_status","type":"keyword"}]},"id":"3115bd2c-0baa-4df0-80ea-45e474b5ef93:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3115bd2c-0baa-4df0-80ea-45e474b5ef93:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3115bd2c-0baa-4df0-80ea-45e474b5ef93:100.0.1.json new file mode 100644 index 0000000000000..39b72d72c074f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3115bd2c-0baa-4df0-80ea-45e474b5ef93:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Agent Spoofing - Mismatched Agent ID v100.0.1","rule_id":"3115bd2c-0baa-4df0-80ea-45e474b5ef93:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects events that have a mismatch on the expected event agent ID. The status \"agent_id_mismatch\" occurs when the expected agent ID associated with the API key does not match the actual agent ID in an event. This could indicate attempts to spoof events in order to masquerade actual activity to evade detection.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This is meant to run only on datasources using Elastic Agent 7.14+ since versions prior to that will be missing the necessary field, resulting in false positives."],"from":"now-9m","tags":["Elastic","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"type":"query","index":["logs-*","metrics-*","traces-*"],"language":"kuery","query":"event.agent_id_status:agent_id_mismatch\n","required_fields":[{"ecs":true,"name":"event.agent_id_status","type":"keyword"}]},"id":"3115bd2c-0baa-4df0-80ea-45e474b5ef93:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3115bd2c-0baa-4df0-80ea-45e474b5ef93:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3115bd2c-0baa-4df0-80ea-45e474b5ef93:100.0.2.json new file mode 100644 index 0000000000000..8faea0d664fd5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3115bd2c-0baa-4df0-80ea-45e474b5ef93:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Agent Spoofing - Mismatched Agent ID v100.0.2","rule_id":"3115bd2c-0baa-4df0-80ea-45e474b5ef93:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects events that have a mismatch on the expected event agent ID. The status \"agent_id_mismatch\" occurs when the expected agent ID associated with the API key does not match the actual agent ID in an event. This could indicate attempts to spoof events in order to masquerade actual activity to evade detection.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This is meant to run only on datasources using Elastic Agent 7.14+ since versions prior to that will be missing the necessary field, resulting in false positives."],"from":"now-9m","tags":["Elastic","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"type":"query","index":["logs-*","metrics-*","traces-*"],"language":"kuery","query":"event.agent_id_status:agent_id_mismatch\n","required_fields":[{"ecs":true,"name":"event.agent_id_status","type":"keyword"}]},"id":"3115bd2c-0baa-4df0-80ea-45e474b5ef93:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/31295df3-277b-4c56-a1fb-84e31b4222a9:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/31295df3-277b-4c56-a1fb-84e31b4222a9:100.0.0.json new file mode 100644 index 0000000000000..7751b07586199 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/31295df3-277b-4c56-a1fb-84e31b4222a9:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Inbound Connection to an Unsecure Elasticsearch Node v100.0.0","rule_id":"31295df3-277b-4c56-a1fb-84e31b4222a9:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Elasticsearch nodes that do not have Transport Layer Security (TLS), and/or lack authentication, and are accepting inbound network connections over the default Elasticsearch port.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If you have front-facing proxies that provide authentication and TLS, this rule would need to be tuned to eliminate the source IP address of your reverse-proxy."],"from":"now-9m","references":["https://www.elastic.co/guide/en/elasticsearch/reference/current/configuring-security.html","https://www.elastic.co/guide/en/beats/packetbeat/current/packetbeat-http-options.html#_send_all_headers"],"tags":["Elastic","Network","Threat Detection","Initial Access","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"lucene","query":"event.category:network_traffic AND network.protocol:http AND status:OK AND destination.port:9200 AND network.direction:inbound AND NOT http.response.headers.content-type:\"image/x-icon\" AND NOT _exists_:http.request.headers.authorization\n","setup":"This rule requires the addition of port `9200` and `send_all_headers` to the `HTTP` protocol configuration in `packetbeat.yml`. See the References section for additional configuration documentation."},"id":"31295df3-277b-4c56-a1fb-84e31b4222a9:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/31295df3-277b-4c56-a1fb-84e31b4222a9:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/31295df3-277b-4c56-a1fb-84e31b4222a9:100.0.1.json new file mode 100644 index 0000000000000..73aabb6b2a882 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/31295df3-277b-4c56-a1fb-84e31b4222a9:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Inbound Connection to an Unsecure Elasticsearch Node v100.0.1","rule_id":"31295df3-277b-4c56-a1fb-84e31b4222a9:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Elasticsearch nodes that do not have Transport Layer Security (TLS), and/or lack authentication, and are accepting inbound network connections over the default Elasticsearch port.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If you have front-facing proxies that provide authentication and TLS, this rule would need to be tuned to eliminate the source IP address of your reverse-proxy."],"from":"now-9m","references":["https://www.elastic.co/guide/en/elasticsearch/reference/current/configuring-security.html","https://www.elastic.co/guide/en/beats/packetbeat/current/packetbeat-http-options.html#_send_all_headers"],"tags":["Elastic","Network","Threat Detection","Initial Access","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"lucene","query":"event.category:network_traffic AND network.protocol:http AND status:OK AND destination.port:9200 AND network.direction:inbound AND NOT http.response.headers.content-type:\"image/x-icon\" AND NOT _exists_:http.request.headers.authorization\n","setup":"This rule requires the addition of port `9200` and `send_all_headers` to the `HTTP` protocol configuration in `packetbeat.yml`. See the References section for additional configuration documentation."},"id":"31295df3-277b-4c56-a1fb-84e31b4222a9:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/31295df3-277b-4c56-a1fb-84e31b4222a9:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/31295df3-277b-4c56-a1fb-84e31b4222a9:100.0.2.json new file mode 100644 index 0000000000000..36ef1d05d4225 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/31295df3-277b-4c56-a1fb-84e31b4222a9:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Inbound Connection to an Unsecure Elasticsearch Node v100.0.2","rule_id":"31295df3-277b-4c56-a1fb-84e31b4222a9:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Elasticsearch nodes that do not have Transport Layer Security (TLS), and/or lack authentication, and are accepting inbound network connections over the default Elasticsearch port.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If you have front-facing proxies that provide authentication and TLS, this rule would need to be tuned to eliminate the source IP address of your reverse-proxy."],"from":"now-9m","references":["https://www.elastic.co/guide/en/elasticsearch/reference/current/configuring-security.html","https://www.elastic.co/guide/en/beats/packetbeat/current/packetbeat-http-options.html#_send_all_headers"],"tags":["Elastic","Network","Threat Detection","Initial Access","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"lucene","query":"event.category:network_traffic AND network.protocol:http AND status:OK AND destination.port:9200 AND network.direction:inbound AND NOT http.response.headers.content-type:\"image/x-icon\" AND NOT _exists_:http.request.headers.authorization\n","setup":"This rule requires the addition of port `9200` and `send_all_headers` to the `HTTP` protocol configuration in `packetbeat.yml`. See the References section for additional configuration documentation."},"id":"31295df3-277b-4c56-a1fb-84e31b4222a9:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/31b4c719-f2b4-41f6-a9bd-fce93c2eaf62:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/31b4c719-f2b4-41f6-a9bd-fce93c2eaf62:102.0.0.json new file mode 100644 index 0000000000000..6573af2143a22 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/31b4c719-f2b4-41f6-a9bd-fce93c2eaf62:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Bypass UAC via Event Viewer v102.0.0","rule_id":"31b4c719-f2b4-41f6-a9bd-fce93c2eaf62:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies User Account Control (UAC) bypass via eventvwr.exe. Attackers bypass UAC to stealthily execute code with elevated permissions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Bypass UAC via Event Viewer\n\nWindows User Account Control (UAC) allows a program to elevate its privileges (tracked as low to high integrity levels)\nto perform a task under administrator-level permissions, possibly by prompting the user for confirmation.\nUAC can deny an operation under high-integrity enforcement, or allow the user to perform the action if they are in the\nlocal administrators group and enter an administrator password when prompted.\n\nFor more information about the UAC and how it works, check the [official Microsoft docs page](https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/how-user-account-control-works).\n\nDuring startup, `eventvwr.exe` checks the registry value of the `HKCU\\Software\\Classes\\mscfile\\shell\\open\\command`\nregistry key for the location of `mmc.exe`, which is used to open the `eventvwr.msc` saved console file. If the location\nof another binary or script is added to this registry value, it will be executed as a high-integrity process without a\nUAC prompt being displayed to the user. This rule detects this UAC bypass by monitoring processes spawned by\n`eventvwr.exe` other than `mmc.exe` and `werfault.exe`.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"eventvwr.exe\" and\n not process.executable :\n (\"?:\\\\Windows\\\\SysWOW64\\\\mmc.exe\",\n \"?:\\\\Windows\\\\System32\\\\mmc.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerFault.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"31b4c719-f2b4-41f6-a9bd-fce93c2eaf62:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/31b4c719-f2b4-41f6-a9bd-fce93c2eaf62:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/31b4c719-f2b4-41f6-a9bd-fce93c2eaf62:102.0.1.json new file mode 100644 index 0000000000000..23255184c1408 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/31b4c719-f2b4-41f6-a9bd-fce93c2eaf62:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Bypass UAC via Event Viewer v102.0.1","rule_id":"31b4c719-f2b4-41f6-a9bd-fce93c2eaf62:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies User Account Control (UAC) bypass via eventvwr.exe. Attackers bypass UAC to stealthily execute code with elevated permissions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Bypass UAC via Event Viewer\n\nWindows User Account Control (UAC) allows a program to elevate its privileges (tracked as low to high integrity levels)\nto perform a task under administrator-level permissions, possibly by prompting the user for confirmation.\nUAC can deny an operation under high-integrity enforcement, or allow the user to perform the action if they are in the\nlocal administrators group and enter an administrator password when prompted.\n\nFor more information about the UAC and how it works, check the [official Microsoft docs page](https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/how-user-account-control-works).\n\nDuring startup, `eventvwr.exe` checks the registry value of the `HKCU\\Software\\Classes\\mscfile\\shell\\open\\command`\nregistry key for the location of `mmc.exe`, which is used to open the `eventvwr.msc` saved console file. If the location\nof another binary or script is added to this registry value, it will be executed as a high-integrity process without a\nUAC prompt being displayed to the user. This rule detects this UAC bypass by monitoring processes spawned by\n`eventvwr.exe` other than `mmc.exe` and `werfault.exe`.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"eventvwr.exe\" and\n not process.executable :\n (\"?:\\\\Windows\\\\SysWOW64\\\\mmc.exe\",\n \"?:\\\\Windows\\\\System32\\\\mmc.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerFault.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"31b4c719-f2b4-41f6-a9bd-fce93c2eaf62:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/31b4c719-f2b4-41f6-a9bd-fce93c2eaf62:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/31b4c719-f2b4-41f6-a9bd-fce93c2eaf62:102.0.2.json new file mode 100644 index 0000000000000..b509166aef0f2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/31b4c719-f2b4-41f6-a9bd-fce93c2eaf62:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Bypass UAC via Event Viewer v102.0.2","rule_id":"31b4c719-f2b4-41f6-a9bd-fce93c2eaf62:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies User Account Control (UAC) bypass via eventvwr.exe. Attackers bypass UAC to stealthily execute code with elevated permissions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Bypass UAC via Event Viewer\n\nWindows User Account Control (UAC) allows a program to elevate its privileges (tracked as low to high integrity levels)\nto perform a task under administrator-level permissions, possibly by prompting the user for confirmation.\nUAC can deny an operation under high-integrity enforcement, or allow the user to perform the action if they are in the\nlocal administrators group and enter an administrator password when prompted.\n\nFor more information about the UAC and how it works, check the [official Microsoft docs page](https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/how-user-account-control-works).\n\nDuring startup, `eventvwr.exe` checks the registry value of the `HKCU\\Software\\Classes\\mscfile\\shell\\open\\command`\nregistry key for the location of `mmc.exe`, which is used to open the `eventvwr.msc` saved console file. If the location\nof another binary or script is added to this registry value, it will be executed as a high-integrity process without a\nUAC prompt being displayed to the user. This rule detects this UAC bypass by monitoring processes spawned by\n`eventvwr.exe` other than `mmc.exe` and `werfault.exe`.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"eventvwr.exe\" and\n not process.executable :\n (\"?:\\\\Windows\\\\SysWOW64\\\\mmc.exe\",\n \"?:\\\\Windows\\\\System32\\\\mmc.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerFault.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"31b4c719-f2b4-41f6-a9bd-fce93c2eaf62:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3202e172-01b1-4738-a932-d024c514ba72:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3202e172-01b1-4738-a932-d024c514ba72:102.0.0.json new file mode 100644 index 0000000000000..a51e8849b208f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3202e172-01b1-4738-a932-d024c514ba72:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Pub/Sub Topic Deletion v102.0.0","rule_id":"3202e172-01b1-4738-a932-d024c514ba72:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a topic in Google Cloud Platform (GCP). In GCP, the publisher-subscriber relationship (Pub/Sub) is an asynchronous messaging service that decouples event-producing and event-processing services. A publisher application creates and sends messages to a topic. Deleting a topic can interrupt message flow in the Pub/Sub pipeline.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Topic deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Topic deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/pubsub/docs/overview"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.pubsub.v*.Publisher.DeleteTopic and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"3202e172-01b1-4738-a932-d024c514ba72:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3202e172-01b1-4738-a932-d024c514ba72:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3202e172-01b1-4738-a932-d024c514ba72:102.0.1.json new file mode 100644 index 0000000000000..51cd0c6aad27f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3202e172-01b1-4738-a932-d024c514ba72:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Pub/Sub Topic Deletion v102.0.1","rule_id":"3202e172-01b1-4738-a932-d024c514ba72:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a topic in Google Cloud Platform (GCP). In GCP, the publisher-subscriber relationship (Pub/Sub) is an asynchronous messaging service that decouples event-producing and event-processing services. A publisher application creates and sends messages to a topic. Deleting a topic can interrupt message flow in the Pub/Sub pipeline.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Topic deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Topic deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/pubsub/docs/overview"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.pubsub.v*.Publisher.DeleteTopic and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"3202e172-01b1-4738-a932-d024c514ba72:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3202e172-01b1-4738-a932-d024c514ba72:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3202e172-01b1-4738-a932-d024c514ba72:102.0.2.json new file mode 100644 index 0000000000000..39a385d14acb1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3202e172-01b1-4738-a932-d024c514ba72:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Pub/Sub Topic Deletion v102.0.2","rule_id":"3202e172-01b1-4738-a932-d024c514ba72:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a topic in Google Cloud Platform (GCP). In GCP, the publisher-subscriber relationship (Pub/Sub) is an asynchronous messaging service that decouples event-producing and event-processing services. A publisher application creates and sends messages to a topic. Deleting a topic can interrupt message flow in the Pub/Sub pipeline.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Topic deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Topic deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/pubsub/docs/overview"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.pubsub.v*.Publisher.DeleteTopic and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"3202e172-01b1-4738-a932-d024c514ba72:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/323cb487-279d-4218-bcbd-a568efe930c6:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/323cb487-279d-4218-bcbd-a568efe930c6:101.0.0.json new file mode 100644 index 0000000000000..42a411e870cfe --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/323cb487-279d-4218-bcbd-a568efe930c6:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Network Watcher Deletion v101.0.0","rule_id":"323cb487-279d-4218-bcbd-a568efe930c6:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a Network Watcher in Azure. Network Watchers are used to monitor, diagnose, view metrics, and enable or disable logs for resources in an Azure virtual network. An adversary may delete a Network Watcher in an attempt to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Network Watcher deletions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Network Watcher deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/network-watcher/network-watcher-monitoring-overview"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.NETWORK/NETWORKWATCHERS/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"323cb487-279d-4218-bcbd-a568efe930c6:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/323cb487-279d-4218-bcbd-a568efe930c6:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/323cb487-279d-4218-bcbd-a568efe930c6:101.0.1.json new file mode 100644 index 0000000000000..60b77da33c6f4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/323cb487-279d-4218-bcbd-a568efe930c6:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Network Watcher Deletion v101.0.1","rule_id":"323cb487-279d-4218-bcbd-a568efe930c6:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a Network Watcher in Azure. Network Watchers are used to monitor, diagnose, view metrics, and enable or disable logs for resources in an Azure virtual network. An adversary may delete a Network Watcher in an attempt to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Network Watcher deletions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Network Watcher deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/network-watcher/network-watcher-monitoring-overview"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.NETWORK/NETWORKWATCHERS/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"323cb487-279d-4218-bcbd-a568efe930c6:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/323cb487-279d-4218-bcbd-a568efe930c6:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/323cb487-279d-4218-bcbd-a568efe930c6:101.0.2.json new file mode 100644 index 0000000000000..fb9fe43f1af40 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/323cb487-279d-4218-bcbd-a568efe930c6:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Network Watcher Deletion v101.0.2","rule_id":"323cb487-279d-4218-bcbd-a568efe930c6:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a Network Watcher in Azure. Network Watchers are used to monitor, diagnose, view metrics, and enable or disable logs for resources in an Azure virtual network. An adversary may delete a Network Watcher in an attempt to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Network Watcher deletions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Network Watcher deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/network-watcher/network-watcher-monitoring-overview"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.NETWORK/NETWORKWATCHERS/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"323cb487-279d-4218-bcbd-a568efe930c6:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/32923416-763a-4531-bb35-f33b9232ecdb:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/32923416-763a-4531-bb35-f33b9232ecdb:100.0.0.json new file mode 100644 index 0000000000000..9db1b9ad05194 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/32923416-763a-4531-bb35-f33b9232ecdb:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"RPC (Remote Procedure Call) to the Internet v100.0.0","rule_id":"32923416-763a-4531-bb35-f33b9232ecdb:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of RPC traffic to the Internet. RPC is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Initial Access","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and (destination.port:135 or event.dataset:zeek.dce_rpc) and\n source.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n ) and\n not destination.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},"id":"32923416-763a-4531-bb35-f33b9232ecdb:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/32923416-763a-4531-bb35-f33b9232ecdb:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/32923416-763a-4531-bb35-f33b9232ecdb:100.0.1.json new file mode 100644 index 0000000000000..03b1396a7aee2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/32923416-763a-4531-bb35-f33b9232ecdb:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"RPC (Remote Procedure Call) to the Internet v100.0.1","rule_id":"32923416-763a-4531-bb35-f33b9232ecdb:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of RPC traffic to the Internet. RPC is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Initial Access","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and (destination.port:135 or event.dataset:zeek.dce_rpc) and\n source.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n ) and\n not destination.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},"id":"32923416-763a-4531-bb35-f33b9232ecdb:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/32923416-763a-4531-bb35-f33b9232ecdb:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/32923416-763a-4531-bb35-f33b9232ecdb:100.0.2.json new file mode 100644 index 0000000000000..dff6ab2f09443 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/32923416-763a-4531-bb35-f33b9232ecdb:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"RPC (Remote Procedure Call) to the Internet v100.0.2","rule_id":"32923416-763a-4531-bb35-f33b9232ecdb:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of RPC traffic to the Internet. RPC is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Initial Access","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and (destination.port:135 or event.dataset:zeek.dce_rpc) and\n source.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n ) and\n not destination.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},"id":"32923416-763a-4531-bb35-f33b9232ecdb:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/32c5cf9c-2ef8-4e87-819e-5ccb7cd18b14:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/32c5cf9c-2ef8-4e87-819e-5ccb7cd18b14:101.0.0.json new file mode 100644 index 0000000000000..80b0e9404ee03 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/32c5cf9c-2ef8-4e87-819e-5ccb7cd18b14:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Program Files Directory Masquerading v101.0.0","rule_id":"32c5cf9c-2ef8-4e87-819e-5ccb7cd18b14:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution from a directory masquerading as the Windows Program Files directories. These paths are trusted and usually host trusted third party programs. An adversary may leverage masquerading, along with low privileges to bypass detections allowlisting those folders.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.005","name":"Match Legitimate Name or Location","reference":"https://attack.mitre.org/techniques/T1036/005/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.executable : \"C:\\\\*Program*Files*\\\\*.exe\" and\n not process.executable : (\"C:\\\\Program Files\\\\*.exe\", \"C:\\\\Program Files (x86)\\\\*.exe\", \"C:\\\\Users\\\\*.exe\", \"C:\\\\ProgramData\\\\*.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"32c5cf9c-2ef8-4e87-819e-5ccb7cd18b14:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/32c5cf9c-2ef8-4e87-819e-5ccb7cd18b14:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/32c5cf9c-2ef8-4e87-819e-5ccb7cd18b14:101.0.1.json new file mode 100644 index 0000000000000..d6e7041fc9a9d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/32c5cf9c-2ef8-4e87-819e-5ccb7cd18b14:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Program Files Directory Masquerading v101.0.1","rule_id":"32c5cf9c-2ef8-4e87-819e-5ccb7cd18b14:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution from a directory masquerading as the Windows Program Files directories. These paths are trusted and usually host trusted third party programs. An adversary may leverage masquerading, along with low privileges to bypass detections allowlisting those folders.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.005","name":"Match Legitimate Name or Location","reference":"https://attack.mitre.org/techniques/T1036/005/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.executable : \"C:\\\\*Program*Files*\\\\*.exe\" and\n not process.executable : (\"C:\\\\Program Files\\\\*.exe\", \"C:\\\\Program Files (x86)\\\\*.exe\", \"C:\\\\Users\\\\*.exe\", \"C:\\\\ProgramData\\\\*.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"32c5cf9c-2ef8-4e87-819e-5ccb7cd18b14:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/32c5cf9c-2ef8-4e87-819e-5ccb7cd18b14:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/32c5cf9c-2ef8-4e87-819e-5ccb7cd18b14:101.0.2.json new file mode 100644 index 0000000000000..3e560a57c652a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/32c5cf9c-2ef8-4e87-819e-5ccb7cd18b14:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Program Files Directory Masquerading v101.0.2","rule_id":"32c5cf9c-2ef8-4e87-819e-5ccb7cd18b14:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution from a directory masquerading as the Windows Program Files directories. These paths are trusted and usually host trusted third party programs. An adversary may leverage masquerading, along with low privileges to bypass detections allowlisting those folders.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.005","name":"Match Legitimate Name or Location","reference":"https://attack.mitre.org/techniques/T1036/005/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.executable : \"C:\\\\*Program*Files*\\\\*.exe\" and\n not process.executable : (\"C:\\\\Program Files\\\\*.exe\", \"C:\\\\Program Files (x86)\\\\*.exe\", \"C:\\\\Users\\\\*.exe\", \"C:\\\\ProgramData\\\\*.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"32c5cf9c-2ef8-4e87-819e-5ccb7cd18b14:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/32f4675e-6c49-4ace-80f9-97c9259dca2e:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/32f4675e-6c49-4ace-80f9-97c9259dca2e:102.0.0.json new file mode 100644 index 0000000000000..8a85eec65f803 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/32f4675e-6c49-4ace-80f9-97c9259dca2e:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious MS Outlook Child Process v102.0.0","rule_id":"32f4675e-6c49-4ace-80f9-97c9259dca2e:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious child processes of Microsoft Outlook. These child processes are often associated with spear phishing activity.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious MS Outlook Child Process\n\nMicrosoft Outlook is an email client that provides contact, email calendar, and task management features. Outlook is\nwidely used, either standalone or as part of the Office suite.\n\nThis rule looks for suspicious processes spawned by MS Outlook, which can be the result of the execution of malicious\ndocuments and/or exploitation for initial access.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve recently opened files received via email and opened by the user that could cause this behavior. Common\nlocations include but are not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"outlook.exe\" and\n process.name : (\"Microsoft.Workflow.Compiler.exe\", \"arp.exe\", \"atbroker.exe\", \"bginfo.exe\", \"bitsadmin.exe\",\n \"cdb.exe\", \"certutil.exe\", \"cmd.exe\", \"cmstp.exe\", \"cscript.exe\", \"csi.exe\", \"dnx.exe\", \"dsget.exe\",\n \"dsquery.exe\", \"forfiles.exe\", \"fsi.exe\", \"ftp.exe\", \"gpresult.exe\", \"hostname.exe\", \"ieexec.exe\",\n \"iexpress.exe\", \"installutil.exe\", \"ipconfig.exe\", \"mshta.exe\", \"msxsl.exe\", \"nbtstat.exe\", \"net.exe\",\n \"net1.exe\", \"netsh.exe\", \"netstat.exe\", \"nltest.exe\", \"odbcconf.exe\", \"ping.exe\", \"powershell.exe\",\n \"pwsh.exe\", \"qprocess.exe\", \"quser.exe\", \"qwinsta.exe\", \"rcsi.exe\", \"reg.exe\", \"regasm.exe\",\n \"regsvcs.exe\", \"regsvr32.exe\", \"sc.exe\", \"schtasks.exe\", \"systeminfo.exe\", \"tasklist.exe\",\n \"tracert.exe\", \"whoami.exe\", \"wmic.exe\", \"wscript.exe\", \"xwizard.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"32f4675e-6c49-4ace-80f9-97c9259dca2e:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/32f4675e-6c49-4ace-80f9-97c9259dca2e:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/32f4675e-6c49-4ace-80f9-97c9259dca2e:102.0.1.json new file mode 100644 index 0000000000000..10c5ec1622f79 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/32f4675e-6c49-4ace-80f9-97c9259dca2e:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious MS Outlook Child Process v102.0.1","rule_id":"32f4675e-6c49-4ace-80f9-97c9259dca2e:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious child processes of Microsoft Outlook. These child processes are often associated with spear phishing activity.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious MS Outlook Child Process\n\nMicrosoft Outlook is an email client that provides contact, email calendar, and task management features. Outlook is\nwidely used, either standalone or as part of the Office suite.\n\nThis rule looks for suspicious processes spawned by MS Outlook, which can be the result of the execution of malicious\ndocuments and/or exploitation for initial access.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve recently opened files received via email and opened by the user that could cause this behavior. Common\nlocations include but are not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"outlook.exe\" and\n process.name : (\"Microsoft.Workflow.Compiler.exe\", \"arp.exe\", \"atbroker.exe\", \"bginfo.exe\", \"bitsadmin.exe\",\n \"cdb.exe\", \"certutil.exe\", \"cmd.exe\", \"cmstp.exe\", \"cscript.exe\", \"csi.exe\", \"dnx.exe\", \"dsget.exe\",\n \"dsquery.exe\", \"forfiles.exe\", \"fsi.exe\", \"ftp.exe\", \"gpresult.exe\", \"hostname.exe\", \"ieexec.exe\",\n \"iexpress.exe\", \"installutil.exe\", \"ipconfig.exe\", \"mshta.exe\", \"msxsl.exe\", \"nbtstat.exe\", \"net.exe\",\n \"net1.exe\", \"netsh.exe\", \"netstat.exe\", \"nltest.exe\", \"odbcconf.exe\", \"ping.exe\", \"powershell.exe\",\n \"pwsh.exe\", \"qprocess.exe\", \"quser.exe\", \"qwinsta.exe\", \"rcsi.exe\", \"reg.exe\", \"regasm.exe\",\n \"regsvcs.exe\", \"regsvr32.exe\", \"sc.exe\", \"schtasks.exe\", \"systeminfo.exe\", \"tasklist.exe\",\n \"tracert.exe\", \"whoami.exe\", \"wmic.exe\", \"wscript.exe\", \"xwizard.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"32f4675e-6c49-4ace-80f9-97c9259dca2e:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/32f4675e-6c49-4ace-80f9-97c9259dca2e:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/32f4675e-6c49-4ace-80f9-97c9259dca2e:102.0.2.json new file mode 100644 index 0000000000000..f87c3e608cc6d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/32f4675e-6c49-4ace-80f9-97c9259dca2e:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious MS Outlook Child Process v102.0.2","rule_id":"32f4675e-6c49-4ace-80f9-97c9259dca2e:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious child processes of Microsoft Outlook. These child processes are often associated with spear phishing activity.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious MS Outlook Child Process\n\nMicrosoft Outlook is an email client that provides contact, email calendar, and task management features. Outlook is\nwidely used, either standalone or as part of the Office suite.\n\nThis rule looks for suspicious processes spawned by MS Outlook, which can be the result of the execution of malicious\ndocuments and/or exploitation for initial access.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve recently opened files received via email and opened by the user that could cause this behavior. Common\nlocations include but are not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"outlook.exe\" and\n process.name : (\"Microsoft.Workflow.Compiler.exe\", \"arp.exe\", \"atbroker.exe\", \"bginfo.exe\", \"bitsadmin.exe\",\n \"cdb.exe\", \"certutil.exe\", \"cmd.exe\", \"cmstp.exe\", \"cscript.exe\", \"csi.exe\", \"dnx.exe\", \"dsget.exe\",\n \"dsquery.exe\", \"forfiles.exe\", \"fsi.exe\", \"ftp.exe\", \"gpresult.exe\", \"hostname.exe\", \"ieexec.exe\",\n \"iexpress.exe\", \"installutil.exe\", \"ipconfig.exe\", \"mshta.exe\", \"msxsl.exe\", \"nbtstat.exe\", \"net.exe\",\n \"net1.exe\", \"netsh.exe\", \"netstat.exe\", \"nltest.exe\", \"odbcconf.exe\", \"ping.exe\", \"powershell.exe\",\n \"pwsh.exe\", \"qprocess.exe\", \"quser.exe\", \"qwinsta.exe\", \"rcsi.exe\", \"reg.exe\", \"regasm.exe\",\n \"regsvcs.exe\", \"regsvr32.exe\", \"sc.exe\", \"schtasks.exe\", \"systeminfo.exe\", \"tasklist.exe\",\n \"tracert.exe\", \"whoami.exe\", \"wmic.exe\", \"wscript.exe\", \"xwizard.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"32f4675e-6c49-4ace-80f9-97c9259dca2e:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/333de828-8190-4cf5-8d7c-7575846f6fe0:103.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/333de828-8190-4cf5-8d7c-7575846f6fe0:103.0.0.json new file mode 100644 index 0000000000000..28d748259cc2c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/333de828-8190-4cf5-8d7c-7575846f6fe0:103.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS IAM User Addition to Group v103.0.0","rule_id":"333de828-8190-4cf5-8d7c-7575846f6fe0:103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the addition of a user to a specified group in AWS Identity and Access Management (IAM).","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS IAM User Addition to Group\n\nAWS Identity and Access Management (IAM) provides fine-grained access control across all of AWS. With IAM, you can specify\nwho can access which services and resources, and under which conditions. With IAM policies, you manage permissions to\nyour workforce and systems to ensure least-privilege permissions.\n\nThis rule looks for the addition of users to a specified user group.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- False positives may occur due to the intended usage of the service. Tuning is needed in order to have higher\nconfidence. Consider adding exceptions — preferably with a combination of user agent and IP address conditions — to\nreduce noise from onboarding processes and administrator activities.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Adding users to a specified group may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. User additions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/IAM/latest/APIReference/API_AddUserToGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access","Credential Access","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:AddUserToGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"333de828-8190-4cf5-8d7c-7575846f6fe0:103.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/333de828-8190-4cf5-8d7c-7575846f6fe0:103.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/333de828-8190-4cf5-8d7c-7575846f6fe0:103.0.1.json new file mode 100644 index 0000000000000..e181406b302c6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/333de828-8190-4cf5-8d7c-7575846f6fe0:103.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS IAM User Addition to Group v103.0.1","rule_id":"333de828-8190-4cf5-8d7c-7575846f6fe0:103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the addition of a user to a specified group in AWS Identity and Access Management (IAM).","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS IAM User Addition to Group\n\nAWS Identity and Access Management (IAM) provides fine-grained access control across all of AWS. With IAM, you can specify\nwho can access which services and resources, and under which conditions. With IAM policies, you manage permissions to\nyour workforce and systems to ensure least-privilege permissions.\n\nThis rule looks for the addition of users to a specified user group.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- False positives may occur due to the intended usage of the service. Tuning is needed in order to have higher\nconfidence. Consider adding exceptions — preferably with a combination of user agent and IP address conditions — to\nreduce noise from onboarding processes and administrator activities.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Adding users to a specified group may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. User additions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/IAM/latest/APIReference/API_AddUserToGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access","Credential Access","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:AddUserToGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"333de828-8190-4cf5-8d7c-7575846f6fe0:103.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/333de828-8190-4cf5-8d7c-7575846f6fe0:103.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/333de828-8190-4cf5-8d7c-7575846f6fe0:103.0.2.json new file mode 100644 index 0000000000000..b3793eed45015 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/333de828-8190-4cf5-8d7c-7575846f6fe0:103.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS IAM User Addition to Group v103.0.2","rule_id":"333de828-8190-4cf5-8d7c-7575846f6fe0:103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the addition of a user to a specified group in AWS Identity and Access Management (IAM).","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS IAM User Addition to Group\n\nAWS Identity and Access Management (IAM) provides fine-grained access control across all of AWS. With IAM, you can specify\nwho can access which services and resources, and under which conditions. With IAM policies, you manage permissions to\nyour workforce and systems to ensure least-privilege permissions.\n\nThis rule looks for the addition of users to a specified user group.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- False positives may occur due to the intended usage of the service. Tuning is needed in order to have higher\nconfidence. Consider adding exceptions — preferably with a combination of user agent and IP address conditions — to\nreduce noise from onboarding processes and administrator activities.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Adding users to a specified group may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. User additions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/IAM/latest/APIReference/API_AddUserToGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access","Credential Access","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:AddUserToGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"333de828-8190-4cf5-8d7c-7575846f6fe0:103.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/33f306e8-417c-411b-965c-c2812d6d3f4d:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/33f306e8-417c-411b-965c-c2812d6d3f4d:102.0.0.json new file mode 100644 index 0000000000000..263aef79ed84b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/33f306e8-417c-411b-965c-c2812d6d3f4d:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote File Download via PowerShell v102.0.0","rule_id":"33f306e8-417c-411b-965c-c2812d6d3f4d:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies powershell.exe being used to download an executable file from an untrusted remote destination.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote File Download via PowerShell\n\nAttackers commonly transfer tooling or malware from external systems into a compromised environment using the command\nand control channel. However, they can also abuse signed utilities to drop these files.\n\nPowerShell is one of system administrators' main tools for automation, report routines, and other tasks. This makes it\navailable for use in various environments and creates an attractive way for attackers to execute code and perform\nactions. This rule correlates network and file events to detect downloads of executable and script files performed using\nPowerShell.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check the reputation of the domain or IP address used to host the downloaded file.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- Administrators can use PowerShell legitimately to download executable and script files. Analysts can dismiss the alert\nif the Administrator is aware of the activity and the triage has not identified suspicious or malicious files.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan=30s\n [network where process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and network.protocol == \"dns\" and\n not dns.question.name : (\"localhost\", \"*.microsoft.com\", \"*.azureedge.net\", \"*.powershellgallery.com\", \"*.windowsupdate.com\", \"metadata.google.internal\") and\n not user.domain : \"NT AUTHORITY\"]\n [file where process.name : \"powershell.exe\" and event.type == \"creation\" and file.extension : (\"exe\", \"dll\", \"ps1\", \"bat\") and\n not file.name : \"__PSScriptPolicy*.ps1\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dns.question.name","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}]},"id":"33f306e8-417c-411b-965c-c2812d6d3f4d:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/33f306e8-417c-411b-965c-c2812d6d3f4d:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/33f306e8-417c-411b-965c-c2812d6d3f4d:102.0.1.json new file mode 100644 index 0000000000000..d191e76ef779f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/33f306e8-417c-411b-965c-c2812d6d3f4d:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote File Download via PowerShell v102.0.1","rule_id":"33f306e8-417c-411b-965c-c2812d6d3f4d:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies powershell.exe being used to download an executable file from an untrusted remote destination.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote File Download via PowerShell\n\nAttackers commonly transfer tooling or malware from external systems into a compromised environment using the command\nand control channel. However, they can also abuse signed utilities to drop these files.\n\nPowerShell is one of system administrators' main tools for automation, report routines, and other tasks. This makes it\navailable for use in various environments and creates an attractive way for attackers to execute code and perform\nactions. This rule correlates network and file events to detect downloads of executable and script files performed using\nPowerShell.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check the reputation of the domain or IP address used to host the downloaded file.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- Administrators can use PowerShell legitimately to download executable and script files. Analysts can dismiss the alert\nif the Administrator is aware of the activity and the triage has not identified suspicious or malicious files.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan=30s\n [network where process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and network.protocol == \"dns\" and\n not dns.question.name : (\"localhost\", \"*.microsoft.com\", \"*.azureedge.net\", \"*.powershellgallery.com\", \"*.windowsupdate.com\", \"metadata.google.internal\") and\n not user.domain : \"NT AUTHORITY\"]\n [file where process.name : \"powershell.exe\" and event.type == \"creation\" and file.extension : (\"exe\", \"dll\", \"ps1\", \"bat\") and\n not file.name : \"__PSScriptPolicy*.ps1\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dns.question.name","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}]},"id":"33f306e8-417c-411b-965c-c2812d6d3f4d:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/33f306e8-417c-411b-965c-c2812d6d3f4d:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/33f306e8-417c-411b-965c-c2812d6d3f4d:102.0.2.json new file mode 100644 index 0000000000000..62ce9fe0fc5da --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/33f306e8-417c-411b-965c-c2812d6d3f4d:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote File Download via PowerShell v102.0.2","rule_id":"33f306e8-417c-411b-965c-c2812d6d3f4d:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies powershell.exe being used to download an executable file from an untrusted remote destination.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote File Download via PowerShell\n\nAttackers commonly transfer tooling or malware from external systems into a compromised environment using the command\nand control channel. However, they can also abuse signed utilities to drop these files.\n\nPowerShell is one of system administrators' main tools for automation, report routines, and other tasks. This makes it\navailable for use in various environments and creates an attractive way for attackers to execute code and perform\nactions. This rule correlates network and file events to detect downloads of executable and script files performed using\nPowerShell.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check the reputation of the domain or IP address used to host the downloaded file.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- Administrators can use PowerShell legitimately to download executable and script files. Analysts can dismiss the alert\nif the Administrator is aware of the activity and the triage has not identified suspicious or malicious files.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan=30s\n [network where process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and network.protocol == \"dns\" and\n not dns.question.name : (\"localhost\", \"*.microsoft.com\", \"*.azureedge.net\", \"*.powershellgallery.com\", \"*.windowsupdate.com\", \"metadata.google.internal\") and\n not user.domain : \"NT AUTHORITY\"]\n [file where process.name : \"powershell.exe\" and event.type == \"creation\" and file.extension : (\"exe\", \"dll\", \"ps1\", \"bat\") and\n not file.name : \"__PSScriptPolicy*.ps1\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dns.question.name","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}]},"id":"33f306e8-417c-411b-965c-c2812d6d3f4d:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/34fde489-94b0-4500-a76f-b8a157cf9269:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/34fde489-94b0-4500-a76f-b8a157cf9269:101.0.0.json new file mode 100644 index 0000000000000..9f4935b1ee9fc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/34fde489-94b0-4500-a76f-b8a157cf9269:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Accepted Default Telnet Port Connection v101.0.0","rule_id":"34fde489-94b0-4500-a76f-b8a157cf9269:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of Telnet traffic. Telnet is commonly used by system administrators to remotely control older or embedded systems using the command line shell. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector. As a plain-text protocol, it may also expose usernames and passwords to anyone capable of observing the traffic.","risk_score":47,"severity":"medium","license":"Elastic License v2","timeline_id":"300afc76-072d-4261-864d-4149714bf3f1","timeline_title":"Comprehensive Network Timeline","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["IoT (Internet of Things) devices and networks may use telnet and can be excluded if desired. Some business work-flows may use Telnet for administration of older devices. These often have a predictable behavior. Telnet activity involving an unusual source or destination may be more suspicious. Telnet activity involving a production server that has no known associated Telnet work-flow or business requirement is often suspicious."],"from":"now-9m","tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host","Lateral Movement","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and destination.port:23\n and network.direction:(inbound or ingress or outbound or egress)\n and not event.action:(\n flow_dropped or denied or deny or\n flow_terminated or timeout or Reject or network_flow)\n","required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"}]},"id":"34fde489-94b0-4500-a76f-b8a157cf9269:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/34fde489-94b0-4500-a76f-b8a157cf9269:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/34fde489-94b0-4500-a76f-b8a157cf9269:101.0.1.json new file mode 100644 index 0000000000000..6ea9871cd4be6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/34fde489-94b0-4500-a76f-b8a157cf9269:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Accepted Default Telnet Port Connection v101.0.1","rule_id":"34fde489-94b0-4500-a76f-b8a157cf9269:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of Telnet traffic. Telnet is commonly used by system administrators to remotely control older or embedded systems using the command line shell. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector. As a plain-text protocol, it may also expose usernames and passwords to anyone capable of observing the traffic.","risk_score":47,"severity":"medium","license":"Elastic License v2","timeline_id":"300afc76-072d-4261-864d-4149714bf3f1","timeline_title":"Comprehensive Network Timeline","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["IoT (Internet of Things) devices and networks may use telnet and can be excluded if desired. Some business work-flows may use Telnet for administration of older devices. These often have a predictable behavior. Telnet activity involving an unusual source or destination may be more suspicious. Telnet activity involving a production server that has no known associated Telnet work-flow or business requirement is often suspicious."],"from":"now-9m","tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host","Lateral Movement","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and destination.port:23\n and network.direction:(inbound or ingress or outbound or egress)\n and not event.action:(\n flow_dropped or denied or deny or\n flow_terminated or timeout or Reject or network_flow)\n","required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"}]},"id":"34fde489-94b0-4500-a76f-b8a157cf9269:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/34fde489-94b0-4500-a76f-b8a157cf9269:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/34fde489-94b0-4500-a76f-b8a157cf9269:101.0.2.json new file mode 100644 index 0000000000000..2f7ef8788ad2a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/34fde489-94b0-4500-a76f-b8a157cf9269:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Accepted Default Telnet Port Connection v101.0.2","rule_id":"34fde489-94b0-4500-a76f-b8a157cf9269:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of Telnet traffic. Telnet is commonly used by system administrators to remotely control older or embedded systems using the command line shell. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector. As a plain-text protocol, it may also expose usernames and passwords to anyone capable of observing the traffic.","risk_score":47,"severity":"medium","license":"Elastic License v2","timeline_id":"300afc76-072d-4261-864d-4149714bf3f1","timeline_title":"Comprehensive Network Timeline","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["IoT (Internet of Things) devices and networks may use telnet and can be excluded if desired. Some business work-flows may use Telnet for administration of older devices. These often have a predictable behavior. Telnet activity involving an unusual source or destination may be more suspicious. Telnet activity involving a production server that has no known associated Telnet work-flow or business requirement is often suspicious."],"from":"now-9m","tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host","Lateral Movement","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and destination.port:23\n and network.direction:(inbound or ingress or outbound or egress)\n and not event.action:(\n flow_dropped or denied or deny or\n flow_terminated or timeout or Reject or network_flow)\n","required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"}]},"id":"34fde489-94b0-4500-a76f-b8a157cf9269:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/35330ba2-c859-4c98-8b7f-c19159ea0e58:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/35330ba2-c859-4c98-8b7f-c19159ea0e58:100.0.0.json new file mode 100644 index 0000000000000..c8ebb9ef6ed1f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/35330ba2-c859-4c98-8b7f-c19159ea0e58:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Execution via Electron Child Process Node.js Module v100.0.0","rule_id":"35330ba2-c859-4c98-8b7f-c19159ea0e58:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to execute a child process from within the context of an Electron application using the child_process Node.js module. Adversaries may abuse this technique to inherit permissions from parent processes.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.matthewslipper.com/2019/09/22/everything-you-wanted-electron-child-process.html","https://www.trustedsec.com/blog/macos-injection-via-third-party-frameworks/","https://nodejs.org/api/child_process.html"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.args:(\"-e\" and const*require*child_process*)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},"id":"35330ba2-c859-4c98-8b7f-c19159ea0e58:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/35330ba2-c859-4c98-8b7f-c19159ea0e58:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/35330ba2-c859-4c98-8b7f-c19159ea0e58:100.0.1.json new file mode 100644 index 0000000000000..191310ca58b97 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/35330ba2-c859-4c98-8b7f-c19159ea0e58:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Execution via Electron Child Process Node.js Module v100.0.1","rule_id":"35330ba2-c859-4c98-8b7f-c19159ea0e58:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to execute a child process from within the context of an Electron application using the child_process Node.js module. Adversaries may abuse this technique to inherit permissions from parent processes.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.matthewslipper.com/2019/09/22/everything-you-wanted-electron-child-process.html","https://www.trustedsec.com/blog/macos-injection-via-third-party-frameworks/","https://nodejs.org/api/child_process.html"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.args:(\"-e\" and const*require*child_process*)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},"id":"35330ba2-c859-4c98-8b7f-c19159ea0e58:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/35330ba2-c859-4c98-8b7f-c19159ea0e58:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/35330ba2-c859-4c98-8b7f-c19159ea0e58:100.0.2.json new file mode 100644 index 0000000000000..226beb1312957 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/35330ba2-c859-4c98-8b7f-c19159ea0e58:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Execution via Electron Child Process Node.js Module v100.0.2","rule_id":"35330ba2-c859-4c98-8b7f-c19159ea0e58:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to execute a child process from within the context of an Electron application using the child_process Node.js module. Adversaries may abuse this technique to inherit permissions from parent processes.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.matthewslipper.com/2019/09/22/everything-you-wanted-electron-child-process.html","https://www.trustedsec.com/blog/macos-injection-via-third-party-frameworks/","https://nodejs.org/api/child_process.html"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.args:(\"-e\" and const*require*child_process*)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},"id":"35330ba2-c859-4c98-8b7f-c19159ea0e58:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3535c8bb-3bd5-40f4-ae32-b7cd589d5372:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3535c8bb-3bd5-40f4-ae32-b7cd589d5372:102.0.0.json new file mode 100644 index 0000000000000..31f8c959d6c26 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3535c8bb-3bd5-40f4-ae32-b7cd589d5372:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Port Forwarding Rule Addition v102.0.0","rule_id":"3535c8bb-3bd5-40f4-ae32-b7cd589d5372:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a new port forwarding rule. An adversary may abuse this technique to bypass network segmentation restrictions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Port Forwarding Rule Addition\n\nNetwork port forwarding is a mechanism to redirect incoming TCP connections (IPv4 or IPv6) from the local TCP port to\nany other port number, or even to a port on a remote computer.\n\nAttackers may configure port forwarding rules to bypass network segmentation restrictions, using the host as a jump box\nto access previously unreachable systems.\n\nThis rule monitors the modifications to the `HKLM\\SYSTEM\\*ControlSet*\\Services\\PortProxy\\v4tov4\\` subkeys.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account and system owners and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Identify the target host IP address, check the connections originating from the host where the modification occurred,\nand inspect the credentials used.\n - Investigate suspicious login activity, such as unauthorized access and logins from outside working hours and unusual locations.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the Administrator is aware of the activity\nand there are justifications for this configuration.\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Delete the port forwarding rule.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2019/01/bypassing-network-restrictions-through-rdp-tunneling.html"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1572","name":"Protocol Tunneling","reference":"https://attack.mitre.org/techniques/T1572/"}]}],"language":"eql","query":"registry where registry.path : (\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\PortProxy\\\\v4tov4\\\\*\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\PortProxy\\\\v4tov4\\\\*\"\n)\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"3535c8bb-3bd5-40f4-ae32-b7cd589d5372:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3535c8bb-3bd5-40f4-ae32-b7cd589d5372:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3535c8bb-3bd5-40f4-ae32-b7cd589d5372:102.0.1.json new file mode 100644 index 0000000000000..e72de677b4bd2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3535c8bb-3bd5-40f4-ae32-b7cd589d5372:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Port Forwarding Rule Addition v102.0.1","rule_id":"3535c8bb-3bd5-40f4-ae32-b7cd589d5372:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a new port forwarding rule. An adversary may abuse this technique to bypass network segmentation restrictions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Port Forwarding Rule Addition\n\nNetwork port forwarding is a mechanism to redirect incoming TCP connections (IPv4 or IPv6) from the local TCP port to\nany other port number, or even to a port on a remote computer.\n\nAttackers may configure port forwarding rules to bypass network segmentation restrictions, using the host as a jump box\nto access previously unreachable systems.\n\nThis rule monitors the modifications to the `HKLM\\SYSTEM\\*ControlSet*\\Services\\PortProxy\\v4tov4\\` subkeys.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account and system owners and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Identify the target host IP address, check the connections originating from the host where the modification occurred,\nand inspect the credentials used.\n - Investigate suspicious login activity, such as unauthorized access and logins from outside working hours and unusual locations.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the Administrator is aware of the activity\nand there are justifications for this configuration.\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Delete the port forwarding rule.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2019/01/bypassing-network-restrictions-through-rdp-tunneling.html"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1572","name":"Protocol Tunneling","reference":"https://attack.mitre.org/techniques/T1572/"}]}],"language":"eql","query":"registry where registry.path : (\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\PortProxy\\\\v4tov4\\\\*\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\PortProxy\\\\v4tov4\\\\*\"\n)\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"3535c8bb-3bd5-40f4-ae32-b7cd589d5372:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3535c8bb-3bd5-40f4-ae32-b7cd589d5372:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3535c8bb-3bd5-40f4-ae32-b7cd589d5372:102.0.2.json new file mode 100644 index 0000000000000..e93fa6a55df96 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3535c8bb-3bd5-40f4-ae32-b7cd589d5372:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Port Forwarding Rule Addition v102.0.2","rule_id":"3535c8bb-3bd5-40f4-ae32-b7cd589d5372:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a new port forwarding rule. An adversary may abuse this technique to bypass network segmentation restrictions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Port Forwarding Rule Addition\n\nNetwork port forwarding is a mechanism to redirect incoming TCP connections (IPv4 or IPv6) from the local TCP port to\nany other port number, or even to a port on a remote computer.\n\nAttackers may configure port forwarding rules to bypass network segmentation restrictions, using the host as a jump box\nto access previously unreachable systems.\n\nThis rule monitors the modifications to the `HKLM\\SYSTEM\\*ControlSet*\\Services\\PortProxy\\v4tov4\\` subkeys.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account and system owners and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Identify the target host IP address, check the connections originating from the host where the modification occurred,\nand inspect the credentials used.\n - Investigate suspicious login activity, such as unauthorized access and logins from outside working hours and unusual locations.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the Administrator is aware of the activity\nand there are justifications for this configuration.\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Delete the port forwarding rule.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2019/01/bypassing-network-restrictions-through-rdp-tunneling.html"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1572","name":"Protocol Tunneling","reference":"https://attack.mitre.org/techniques/T1572/"}]}],"language":"eql","query":"registry where registry.path : (\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\PortProxy\\\\v4tov4\\\\*\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\PortProxy\\\\v4tov4\\\\*\"\n)\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"3535c8bb-3bd5-40f4-ae32-b7cd589d5372:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/35df0dd8-092d-4a83-88c1-5151a804f31b:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/35df0dd8-092d-4a83-88c1-5151a804f31b:102.0.0.json new file mode 100644 index 0000000000000..7124e166fc078 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/35df0dd8-092d-4a83-88c1-5151a804f31b:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Parent-Child Relationship v102.0.0","rule_id":"35df0dd8-092d-4a83-88c1-5151a804f31b:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Windows programs run from unexpected parent processes. This could indicate masquerading or other strange activity on a system.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Parent-Child Relationship\n\nWindows internal/system processes have some characteristics that can be used to spot suspicious activities. One of these\ncharacteristics is parent-child relationships. These relationships can be used to baseline the typical behavior of the\nsystem and then alert on occurrences that don't comply with the baseline.\n\nThis rule uses this information to spot suspicious parent and child processes.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/sbousseaden/Slides/blob/master/Hunting%20MindMaps/PNG/Windows%20Processes%20TH.map.png","https://www.andreafortuna.org/2017/06/15/standard-windows-processes-a-brief-reference/"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/","subtechnique":[{"id":"T1055.012","name":"Process Hollowing","reference":"https://attack.mitre.org/techniques/T1055/012/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\nprocess.parent.name != null and\n (\n /* suspicious parent processes */\n (process.name:\"autochk.exe\" and not process.parent.name:\"smss.exe\") or\n (process.name:(\"fontdrvhost.exe\", \"dwm.exe\") and not process.parent.name:(\"wininit.exe\", \"winlogon.exe\")) or\n (process.name:(\"consent.exe\", \"RuntimeBroker.exe\", \"TiWorker.exe\") and not process.parent.name:\"svchost.exe\") or\n (process.name:\"SearchIndexer.exe\" and not process.parent.name:\"services.exe\") or\n (process.name:\"SearchProtocolHost.exe\" and not process.parent.name:(\"SearchIndexer.exe\", \"dllhost.exe\")) or\n (process.name:\"dllhost.exe\" and not process.parent.name:(\"services.exe\", \"svchost.exe\")) or\n (process.name:\"smss.exe\" and not process.parent.name:(\"System\", \"smss.exe\")) or\n (process.name:\"csrss.exe\" and not process.parent.name:(\"smss.exe\", \"svchost.exe\")) or\n (process.name:\"wininit.exe\" and not process.parent.name:\"smss.exe\") or\n (process.name:\"winlogon.exe\" and not process.parent.name:\"smss.exe\") or\n (process.name:(\"lsass.exe\", \"LsaIso.exe\") and not process.parent.name:\"wininit.exe\") or\n (process.name:\"LogonUI.exe\" and not process.parent.name:(\"wininit.exe\", \"winlogon.exe\")) or\n (process.name:\"services.exe\" and not process.parent.name:\"wininit.exe\") or\n (process.name:\"svchost.exe\" and not process.parent.name:(\"MsMpEng.exe\", \"services.exe\")) or\n (process.name:\"spoolsv.exe\" and not process.parent.name:\"services.exe\") or\n (process.name:\"taskhost.exe\" and not process.parent.name:(\"services.exe\", \"svchost.exe\")) or\n (process.name:\"taskhostw.exe\" and not process.parent.name:(\"services.exe\", \"svchost.exe\")) or\n (process.name:\"userinit.exe\" and not process.parent.name:(\"dwm.exe\", \"winlogon.exe\")) or\n (process.name:(\"wmiprvse.exe\", \"wsmprovhost.exe\", \"winrshost.exe\") and not process.parent.name:\"svchost.exe\") or\n /* suspicious child processes */\n (process.parent.name:(\"SearchProtocolHost.exe\", \"taskhost.exe\", \"csrss.exe\") and not process.name:(\"werfault.exe\", \"wermgr.exe\", \"WerFaultSecure.exe\")) or\n (process.parent.name:\"autochk.exe\" and not process.name:(\"chkdsk.exe\", \"doskey.exe\", \"WerFault.exe\")) or\n (process.parent.name:\"smss.exe\" and not process.name:(\"autochk.exe\", \"smss.exe\", \"csrss.exe\", \"wininit.exe\", \"winlogon.exe\", \"setupcl.exe\", \"WerFault.exe\")) or\n (process.parent.name:\"wermgr.exe\" and not process.name:(\"WerFaultSecure.exe\", \"wermgr.exe\", \"WerFault.exe\")) or\n (process.parent.name:\"conhost.exe\" and not process.name:(\"mscorsvw.exe\", \"wermgr.exe\", \"WerFault.exe\", \"WerFaultSecure.exe\"))\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"35df0dd8-092d-4a83-88c1-5151a804f31b:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/35df0dd8-092d-4a83-88c1-5151a804f31b:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/35df0dd8-092d-4a83-88c1-5151a804f31b:102.0.1.json new file mode 100644 index 0000000000000..1eb68742d7fee --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/35df0dd8-092d-4a83-88c1-5151a804f31b:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Parent-Child Relationship v102.0.1","rule_id":"35df0dd8-092d-4a83-88c1-5151a804f31b:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Windows programs run from unexpected parent processes. This could indicate masquerading or other strange activity on a system.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Parent-Child Relationship\n\nWindows internal/system processes have some characteristics that can be used to spot suspicious activities. One of these\ncharacteristics is parent-child relationships. These relationships can be used to baseline the typical behavior of the\nsystem and then alert on occurrences that don't comply with the baseline.\n\nThis rule uses this information to spot suspicious parent and child processes.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/sbousseaden/Slides/blob/master/Hunting%20MindMaps/PNG/Windows%20Processes%20TH.map.png","https://www.andreafortuna.org/2017/06/15/standard-windows-processes-a-brief-reference/"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/","subtechnique":[{"id":"T1055.012","name":"Process Hollowing","reference":"https://attack.mitre.org/techniques/T1055/012/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\nprocess.parent.name != null and\n (\n /* suspicious parent processes */\n (process.name:\"autochk.exe\" and not process.parent.name:\"smss.exe\") or\n (process.name:(\"fontdrvhost.exe\", \"dwm.exe\") and not process.parent.name:(\"wininit.exe\", \"winlogon.exe\")) or\n (process.name:(\"consent.exe\", \"RuntimeBroker.exe\", \"TiWorker.exe\") and not process.parent.name:\"svchost.exe\") or\n (process.name:\"SearchIndexer.exe\" and not process.parent.name:\"services.exe\") or\n (process.name:\"SearchProtocolHost.exe\" and not process.parent.name:(\"SearchIndexer.exe\", \"dllhost.exe\")) or\n (process.name:\"dllhost.exe\" and not process.parent.name:(\"services.exe\", \"svchost.exe\")) or\n (process.name:\"smss.exe\" and not process.parent.name:(\"System\", \"smss.exe\")) or\n (process.name:\"csrss.exe\" and not process.parent.name:(\"smss.exe\", \"svchost.exe\")) or\n (process.name:\"wininit.exe\" and not process.parent.name:\"smss.exe\") or\n (process.name:\"winlogon.exe\" and not process.parent.name:\"smss.exe\") or\n (process.name:(\"lsass.exe\", \"LsaIso.exe\") and not process.parent.name:\"wininit.exe\") or\n (process.name:\"LogonUI.exe\" and not process.parent.name:(\"wininit.exe\", \"winlogon.exe\")) or\n (process.name:\"services.exe\" and not process.parent.name:\"wininit.exe\") or\n (process.name:\"svchost.exe\" and not process.parent.name:(\"MsMpEng.exe\", \"services.exe\")) or\n (process.name:\"spoolsv.exe\" and not process.parent.name:\"services.exe\") or\n (process.name:\"taskhost.exe\" and not process.parent.name:(\"services.exe\", \"svchost.exe\")) or\n (process.name:\"taskhostw.exe\" and not process.parent.name:(\"services.exe\", \"svchost.exe\")) or\n (process.name:\"userinit.exe\" and not process.parent.name:(\"dwm.exe\", \"winlogon.exe\")) or\n (process.name:(\"wmiprvse.exe\", \"wsmprovhost.exe\", \"winrshost.exe\") and not process.parent.name:\"svchost.exe\") or\n /* suspicious child processes */\n (process.parent.name:(\"SearchProtocolHost.exe\", \"taskhost.exe\", \"csrss.exe\") and not process.name:(\"werfault.exe\", \"wermgr.exe\", \"WerFaultSecure.exe\")) or\n (process.parent.name:\"autochk.exe\" and not process.name:(\"chkdsk.exe\", \"doskey.exe\", \"WerFault.exe\")) or\n (process.parent.name:\"smss.exe\" and not process.name:(\"autochk.exe\", \"smss.exe\", \"csrss.exe\", \"wininit.exe\", \"winlogon.exe\", \"setupcl.exe\", \"WerFault.exe\")) or\n (process.parent.name:\"wermgr.exe\" and not process.name:(\"WerFaultSecure.exe\", \"wermgr.exe\", \"WerFault.exe\")) or\n (process.parent.name:\"conhost.exe\" and not process.name:(\"mscorsvw.exe\", \"wermgr.exe\", \"WerFault.exe\", \"WerFaultSecure.exe\"))\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"35df0dd8-092d-4a83-88c1-5151a804f31b:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/35df0dd8-092d-4a83-88c1-5151a804f31b:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/35df0dd8-092d-4a83-88c1-5151a804f31b:102.0.2.json new file mode 100644 index 0000000000000..45ea6a6d6568c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/35df0dd8-092d-4a83-88c1-5151a804f31b:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Parent-Child Relationship v102.0.2","rule_id":"35df0dd8-092d-4a83-88c1-5151a804f31b:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Windows programs run from unexpected parent processes. This could indicate masquerading or other strange activity on a system.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Parent-Child Relationship\n\nWindows internal/system processes have some characteristics that can be used to spot suspicious activities. One of these\ncharacteristics is parent-child relationships. These relationships can be used to baseline the typical behavior of the\nsystem and then alert on occurrences that don't comply with the baseline.\n\nThis rule uses this information to spot suspicious parent and child processes.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/sbousseaden/Slides/blob/master/Hunting%20MindMaps/PNG/Windows%20Processes%20TH.map.png","https://www.andreafortuna.org/2017/06/15/standard-windows-processes-a-brief-reference/"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/","subtechnique":[{"id":"T1055.012","name":"Process Hollowing","reference":"https://attack.mitre.org/techniques/T1055/012/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\nprocess.parent.name != null and\n (\n /* suspicious parent processes */\n (process.name:\"autochk.exe\" and not process.parent.name:\"smss.exe\") or\n (process.name:(\"fontdrvhost.exe\", \"dwm.exe\") and not process.parent.name:(\"wininit.exe\", \"winlogon.exe\")) or\n (process.name:(\"consent.exe\", \"RuntimeBroker.exe\", \"TiWorker.exe\") and not process.parent.name:\"svchost.exe\") or\n (process.name:\"SearchIndexer.exe\" and not process.parent.name:\"services.exe\") or\n (process.name:\"SearchProtocolHost.exe\" and not process.parent.name:(\"SearchIndexer.exe\", \"dllhost.exe\")) or\n (process.name:\"dllhost.exe\" and not process.parent.name:(\"services.exe\", \"svchost.exe\")) or\n (process.name:\"smss.exe\" and not process.parent.name:(\"System\", \"smss.exe\")) or\n (process.name:\"csrss.exe\" and not process.parent.name:(\"smss.exe\", \"svchost.exe\")) or\n (process.name:\"wininit.exe\" and not process.parent.name:\"smss.exe\") or\n (process.name:\"winlogon.exe\" and not process.parent.name:\"smss.exe\") or\n (process.name:(\"lsass.exe\", \"LsaIso.exe\") and not process.parent.name:\"wininit.exe\") or\n (process.name:\"LogonUI.exe\" and not process.parent.name:(\"wininit.exe\", \"winlogon.exe\")) or\n (process.name:\"services.exe\" and not process.parent.name:\"wininit.exe\") or\n (process.name:\"svchost.exe\" and not process.parent.name:(\"MsMpEng.exe\", \"services.exe\")) or\n (process.name:\"spoolsv.exe\" and not process.parent.name:\"services.exe\") or\n (process.name:\"taskhost.exe\" and not process.parent.name:(\"services.exe\", \"svchost.exe\")) or\n (process.name:\"taskhostw.exe\" and not process.parent.name:(\"services.exe\", \"svchost.exe\")) or\n (process.name:\"userinit.exe\" and not process.parent.name:(\"dwm.exe\", \"winlogon.exe\")) or\n (process.name:(\"wmiprvse.exe\", \"wsmprovhost.exe\", \"winrshost.exe\") and not process.parent.name:\"svchost.exe\") or\n /* suspicious child processes */\n (process.parent.name:(\"SearchProtocolHost.exe\", \"taskhost.exe\", \"csrss.exe\") and not process.name:(\"werfault.exe\", \"wermgr.exe\", \"WerFaultSecure.exe\")) or\n (process.parent.name:\"autochk.exe\" and not process.name:(\"chkdsk.exe\", \"doskey.exe\", \"WerFault.exe\")) or\n (process.parent.name:\"smss.exe\" and not process.name:(\"autochk.exe\", \"smss.exe\", \"csrss.exe\", \"wininit.exe\", \"winlogon.exe\", \"setupcl.exe\", \"WerFault.exe\")) or\n (process.parent.name:\"wermgr.exe\" and not process.name:(\"WerFaultSecure.exe\", \"wermgr.exe\", \"WerFault.exe\")) or\n (process.parent.name:\"conhost.exe\" and not process.name:(\"mscorsvw.exe\", \"wermgr.exe\", \"WerFault.exe\", \"WerFaultSecure.exe\"))\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"35df0dd8-092d-4a83-88c1-5151a804f31b:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/35f86980-1fb1-4dff-b311-3be941549c8d:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/35f86980-1fb1-4dff-b311-3be941549c8d:100.0.0.json new file mode 100644 index 0000000000000..b85822afc4ffa --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/35f86980-1fb1-4dff-b311-3be941549c8d:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Network Traffic to Rare Destination Country v100.0.0","rule_id":"35f86980-1fb1-4dff-b311-3be941549c8d:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a rare destination country name in the network logs. This can be due to initial access, persistence, command-and-control, or exfiltration activity. For example, when a user clicks on a link in a phishing email or opens a malicious document, a request may be sent to download and run a payload from a server in a country which does not normally appear in network traffic or business work-flows. Malware instances and persistence mechanisms may communicate with command-and-control (C2) infrastructure in their country of origin, which may be an unusual destination country for the source network.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Business workflows that occur very occasionally, and involve a business relationship with an organization in a country that does not routinely appear in network events, can trigger this alert. A new business workflow with an organization in a country with which no workflows previously existed may trigger this alert - although the model will learn that the new destination country is no longer anomalous as the activity becomes ongoing. Business travelers who roam to many countries for brief periods may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML"],"anomaly_threshold":75,"machine_learning_job_id":"rare_destination_country","type":"machine_learning"},"id":"35f86980-1fb1-4dff-b311-3be941549c8d:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/35f86980-1fb1-4dff-b311-3be941549c8d:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/35f86980-1fb1-4dff-b311-3be941549c8d:100.0.1.json new file mode 100644 index 0000000000000..cb811d9804254 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/35f86980-1fb1-4dff-b311-3be941549c8d:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Network Traffic to Rare Destination Country v100.0.1","rule_id":"35f86980-1fb1-4dff-b311-3be941549c8d:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a rare destination country name in the network logs. This can be due to initial access, persistence, command-and-control, or exfiltration activity. For example, when a user clicks on a link in a phishing email or opens a malicious document, a request may be sent to download and run a payload from a server in a country which does not normally appear in network traffic or business work-flows. Malware instances and persistence mechanisms may communicate with command-and-control (C2) infrastructure in their country of origin, which may be an unusual destination country for the source network.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Business workflows that occur very occasionally, and involve a business relationship with an organization in a country that does not routinely appear in network events, can trigger this alert. A new business workflow with an organization in a country with which no workflows previously existed may trigger this alert - although the model will learn that the new destination country is no longer anomalous as the activity becomes ongoing. Business travelers who roam to many countries for brief periods may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML"],"anomaly_threshold":75,"machine_learning_job_id":"rare_destination_country","type":"machine_learning"},"id":"35f86980-1fb1-4dff-b311-3be941549c8d:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/35f86980-1fb1-4dff-b311-3be941549c8d:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/35f86980-1fb1-4dff-b311-3be941549c8d:100.0.2.json new file mode 100644 index 0000000000000..b702a5883e9d1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/35f86980-1fb1-4dff-b311-3be941549c8d:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Network Traffic to Rare Destination Country v100.0.2","rule_id":"35f86980-1fb1-4dff-b311-3be941549c8d:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a rare destination country name in the network logs. This can be due to initial access, persistence, command-and-control, or exfiltration activity. For example, when a user clicks on a link in a phishing email or opens a malicious document, a request may be sent to download and run a payload from a server in a country which does not normally appear in network traffic or business work-flows. Malware instances and persistence mechanisms may communicate with command-and-control (C2) infrastructure in their country of origin, which may be an unusual destination country for the source network.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Business workflows that occur very occasionally, and involve a business relationship with an organization in a country that does not routinely appear in network events, can trigger this alert. A new business workflow with an organization in a country with which no workflows previously existed may trigger this alert - although the model will learn that the new destination country is no longer anomalous as the activity becomes ongoing. Business travelers who roam to many countries for brief periods may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML"],"anomaly_threshold":75,"machine_learning_job_id":"rare_destination_country","type":"machine_learning"},"id":"35f86980-1fb1-4dff-b311-3be941549c8d:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3688577a-d196-11ec-90b0-f661ea17fbce:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3688577a-d196-11ec-90b0-f661ea17fbce:101.0.0.json new file mode 100644 index 0000000000000..0e9c49b319900 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3688577a-d196-11ec-90b0-f661ea17fbce:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Process Started from Process ID (PID) File v101.0.0","rule_id":"3688577a-d196-11ec-90b0-f661ea17fbce:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a new process starting from a process ID (PID), lock or reboot file within the temporary file storage paradigm (tmpfs) directory /var/run directory. On Linux, the PID files typically hold the process ID to track previous copies running and manage other tasks. Certain Linux malware use the /var/run directory for holding data, executables and other tasks, disguising itself or these files as legitimate PID files.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Process Started from Process ID (PID) File\nDetection alerts from this rule indicate a process spawned from an executable masqueraded as a legitimate PID file which is very unusual and should not occur. Here are some possible avenues of investigation:\n- Examine parent and child process relationships of the new process to determine if other processes are running.\n- Examine the /var/run directory using Osquery to determine other potential PID files with unsually large file sizes, indicative of it being an executable: \"SELECT f.size, f.uid, f.type, f.path from file f WHERE path like '/var/run/%%';\"\n- Examine the reputation of the SHA256 hash from the PID file in a database like VirusTotal to identify additional pivots and artifacts for investigation.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["False-Positives (FP) should be at a minimum with this detection as PID files are meant to hold process IDs, not inherently be executables that spawn processes."],"from":"now-9m","references":["https://www.sandflysecurity.com/blog/linux-file-masquerading-and-malicious-pids-sandfly-1-2-6-update/","https://twitter.com/GossiTheDog/status/1522964028284411907","https://exatrack.com/public/Tricephalic_Hellkeeper.pdf","https://www.elastic.co/security-labs/a-peek-behind-the-bpfdoor"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","BPFDoor"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and user.id == \"0\" and process.executable regex~ \"\"\"/var/run/\\w+\\.(pid|lock|reboot)\"\"\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"3688577a-d196-11ec-90b0-f661ea17fbce:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3688577a-d196-11ec-90b0-f661ea17fbce:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3688577a-d196-11ec-90b0-f661ea17fbce:101.0.1.json new file mode 100644 index 0000000000000..aa02573c35b92 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3688577a-d196-11ec-90b0-f661ea17fbce:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Process Started from Process ID (PID) File v101.0.1","rule_id":"3688577a-d196-11ec-90b0-f661ea17fbce:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a new process starting from a process ID (PID), lock or reboot file within the temporary file storage paradigm (tmpfs) directory /var/run directory. On Linux, the PID files typically hold the process ID to track previous copies running and manage other tasks. Certain Linux malware use the /var/run directory for holding data, executables and other tasks, disguising itself or these files as legitimate PID files.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Process Started from Process ID (PID) File\nDetection alerts from this rule indicate a process spawned from an executable masqueraded as a legitimate PID file which is very unusual and should not occur. Here are some possible avenues of investigation:\n- Examine parent and child process relationships of the new process to determine if other processes are running.\n- Examine the /var/run directory using Osquery to determine other potential PID files with unsually large file sizes, indicative of it being an executable: \"SELECT f.size, f.uid, f.type, f.path from file f WHERE path like '/var/run/%%';\"\n- Examine the reputation of the SHA256 hash from the PID file in a database like VirusTotal to identify additional pivots and artifacts for investigation.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["False-Positives (FP) should be at a minimum with this detection as PID files are meant to hold process IDs, not inherently be executables that spawn processes."],"from":"now-9m","references":["https://www.sandflysecurity.com/blog/linux-file-masquerading-and-malicious-pids-sandfly-1-2-6-update/","https://twitter.com/GossiTheDog/status/1522964028284411907","https://exatrack.com/public/Tricephalic_Hellkeeper.pdf","https://www.elastic.co/security-labs/a-peek-behind-the-bpfdoor"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","BPFDoor"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and user.id == \"0\" and process.executable regex~ \"\"\"/var/run/\\w+\\.(pid|lock|reboot)\"\"\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"3688577a-d196-11ec-90b0-f661ea17fbce:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3688577a-d196-11ec-90b0-f661ea17fbce:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3688577a-d196-11ec-90b0-f661ea17fbce:101.0.2.json new file mode 100644 index 0000000000000..c9639d7a89c24 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3688577a-d196-11ec-90b0-f661ea17fbce:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Process Started from Process ID (PID) File v101.0.2","rule_id":"3688577a-d196-11ec-90b0-f661ea17fbce:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a new process starting from a process ID (PID), lock or reboot file within the temporary file storage paradigm (tmpfs) directory /var/run directory. On Linux, the PID files typically hold the process ID to track previous copies running and manage other tasks. Certain Linux malware use the /var/run directory for holding data, executables and other tasks, disguising itself or these files as legitimate PID files.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Process Started from Process ID (PID) File\nDetection alerts from this rule indicate a process spawned from an executable masqueraded as a legitimate PID file which is very unusual and should not occur. Here are some possible avenues of investigation:\n- Examine parent and child process relationships of the new process to determine if other processes are running.\n- Examine the /var/run directory using Osquery to determine other potential PID files with unsually large file sizes, indicative of it being an executable: \"SELECT f.size, f.uid, f.type, f.path from file f WHERE path like '/var/run/%%';\"\n- Examine the reputation of the SHA256 hash from the PID file in a database like VirusTotal to identify additional pivots and artifacts for investigation.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["False-Positives (FP) should be at a minimum with this detection as PID files are meant to hold process IDs, not inherently be executables that spawn processes."],"from":"now-9m","references":["https://www.sandflysecurity.com/blog/linux-file-masquerading-and-malicious-pids-sandfly-1-2-6-update/","https://twitter.com/GossiTheDog/status/1522964028284411907","https://exatrack.com/public/Tricephalic_Hellkeeper.pdf","https://www.elastic.co/security-labs/a-peek-behind-the-bpfdoor"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","BPFDoor"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and user.id == \"0\" and process.executable regex~ \"\"\"/var/run/\\w+\\.(pid|lock|reboot)\"\"\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"3688577a-d196-11ec-90b0-f661ea17fbce:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/36a8e048-d888-4f61-a8b9-0f9e2e40f317:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/36a8e048-d888-4f61-a8b9-0f9e2e40f317:100.0.0.json new file mode 100644 index 0000000000000..a5e15f3f08502 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/36a8e048-d888-4f61-a8b9-0f9e2e40f317:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious ImagePath Service Creation v100.0.0","rule_id":"36a8e048-d888-4f61-a8b9-0f9e2e40f317:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a suspicious ImagePath value. This could be an indication of an adversary attempting to stealthily persist or escalate privileges through abnormal service creation.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"registry where registry.path : \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Services\\\\*\\\\ImagePath\" and\n /* add suspicious registry ImagePath values here */\n registry.data.strings : (\"%COMSPEC%*\", \"*\\\\.\\\\pipe\\\\*\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"36a8e048-d888-4f61-a8b9-0f9e2e40f317:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/36a8e048-d888-4f61-a8b9-0f9e2e40f317:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/36a8e048-d888-4f61-a8b9-0f9e2e40f317:100.0.1.json new file mode 100644 index 0000000000000..7d57958ab1858 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/36a8e048-d888-4f61-a8b9-0f9e2e40f317:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious ImagePath Service Creation v100.0.1","rule_id":"36a8e048-d888-4f61-a8b9-0f9e2e40f317:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a suspicious ImagePath value. This could be an indication of an adversary attempting to stealthily persist or escalate privileges through abnormal service creation.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"registry where registry.path : \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Services\\\\*\\\\ImagePath\" and\n /* add suspicious registry ImagePath values here */\n registry.data.strings : (\"%COMSPEC%*\", \"*\\\\.\\\\pipe\\\\*\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"36a8e048-d888-4f61-a8b9-0f9e2e40f317:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/36a8e048-d888-4f61-a8b9-0f9e2e40f317:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/36a8e048-d888-4f61-a8b9-0f9e2e40f317:100.0.2.json new file mode 100644 index 0000000000000..236ef76d2165f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/36a8e048-d888-4f61-a8b9-0f9e2e40f317:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious ImagePath Service Creation v100.0.2","rule_id":"36a8e048-d888-4f61-a8b9-0f9e2e40f317:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a suspicious ImagePath value. This could be an indication of an adversary attempting to stealthily persist or escalate privileges through abnormal service creation.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"registry where registry.path : \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Services\\\\*\\\\ImagePath\" and\n /* add suspicious registry ImagePath values here */\n registry.data.strings : (\"%COMSPEC%*\", \"*\\\\.\\\\pipe\\\\*\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"36a8e048-d888-4f61-a8b9-0f9e2e40f317:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/378f9024-8a0c-46a5-aa08-ce147ac73a4e:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/378f9024-8a0c-46a5-aa08-ce147ac73a4e:101.0.0.json new file mode 100644 index 0000000000000..579f72ac9485b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/378f9024-8a0c-46a5-aa08-ce147ac73a4e:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS RDS Security Group Creation v101.0.0","rule_id":"378f9024-8a0c-46a5-aa08-ce147ac73a4e:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an Amazon Relational Database Service (RDS) Security group.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["An RDS security group may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Security group creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBSecurityGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/","subtechnique":[{"id":"T1136.003","name":"Cloud Account","reference":"https://attack.mitre.org/techniques/T1136/003/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:CreateDBSecurityGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"378f9024-8a0c-46a5-aa08-ce147ac73a4e:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/378f9024-8a0c-46a5-aa08-ce147ac73a4e:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/378f9024-8a0c-46a5-aa08-ce147ac73a4e:101.0.1.json new file mode 100644 index 0000000000000..0d3a3b30605ba --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/378f9024-8a0c-46a5-aa08-ce147ac73a4e:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS RDS Security Group Creation v101.0.1","rule_id":"378f9024-8a0c-46a5-aa08-ce147ac73a4e:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an Amazon Relational Database Service (RDS) Security group.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["An RDS security group may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Security group creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBSecurityGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/","subtechnique":[{"id":"T1136.003","name":"Cloud Account","reference":"https://attack.mitre.org/techniques/T1136/003/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:CreateDBSecurityGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"378f9024-8a0c-46a5-aa08-ce147ac73a4e:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/378f9024-8a0c-46a5-aa08-ce147ac73a4e:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/378f9024-8a0c-46a5-aa08-ce147ac73a4e:101.0.2.json new file mode 100644 index 0000000000000..21fdba29539bc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/378f9024-8a0c-46a5-aa08-ce147ac73a4e:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS RDS Security Group Creation v101.0.2","rule_id":"378f9024-8a0c-46a5-aa08-ce147ac73a4e:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an Amazon Relational Database Service (RDS) Security group.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["An RDS security group may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Security group creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBSecurityGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/","subtechnique":[{"id":"T1136.003","name":"Cloud Account","reference":"https://attack.mitre.org/techniques/T1136/003/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:CreateDBSecurityGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"378f9024-8a0c-46a5-aa08-ce147ac73a4e:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/37994bca-0611-4500-ab67-5588afe73b77:103.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/37994bca-0611-4500-ab67-5588afe73b77:103.0.0.json new file mode 100644 index 0000000000000..20ae57fc0a73d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/37994bca-0611-4500-ab67-5588afe73b77:103.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Active Directory High Risk Sign-in v103.0.0","rule_id":"37994bca-0611-4500-ab67-5588afe73b77:103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies high risk Azure Active Directory (AD) sign-ins by leveraging Microsoft's Identity Protection machine learning and heuristics. Identity Protection categorizes risk into three tiers: low, medium, and high. While Microsoft does not provide specific details about how risk is calculated, each level brings higher confidence that the user or sign-in is compromised.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Azure Active Directory High Risk Sign-in\n\nMicrosoft Identity Protection is an Azure AD security tool that detects various types of identity risks and attacks.\n\nThis rule identifies events produced by Microsoft Identity Protection with high risk levels or high aggregated risk level.\n\n#### Possible investigation steps\n\n- Identify the Risk Detection that triggered the event. A list with descriptions can be found [here](https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/concept-identity-protection-risks#risk-types-and-detection).\n- Identify the user account involved and validate whether the suspicious activity is normal for that user.\n - Consider the source IP address and geolocation for the involved user account. Do they look normal?\n - Consider the device used to sign in. Is it registered and compliant?\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\nIf this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and device conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Willem D'Haese"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/conditional-access/howto-conditional-access-policy-risk","https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/overview-identity-protection","https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/howto-identity-protection-investigate-risk"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.signinlogs and\n (azure.signinlogs.properties.risk_level_during_signin:high or azure.signinlogs.properties.risk_level_aggregated:high) and\n event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.signinlogs.properties.risk_level_aggregated","type":"keyword"},{"ecs":false,"name":"azure.signinlogs.properties.risk_level_during_signin","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule.\n\nNote that details for `azure.signinlogs.properties.risk_level_during_signin` and `azure.signinlogs.properties.risk_level_aggregated`\nare only available for Azure AD Premium P2 customers. All other customers will be returned `hidden`."},"id":"37994bca-0611-4500-ab67-5588afe73b77:103.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/37994bca-0611-4500-ab67-5588afe73b77:103.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/37994bca-0611-4500-ab67-5588afe73b77:103.0.1.json new file mode 100644 index 0000000000000..a4f01795026f8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/37994bca-0611-4500-ab67-5588afe73b77:103.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Active Directory High Risk Sign-in v103.0.1","rule_id":"37994bca-0611-4500-ab67-5588afe73b77:103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies high risk Azure Active Directory (AD) sign-ins by leveraging Microsoft's Identity Protection machine learning and heuristics. Identity Protection categorizes risk into three tiers: low, medium, and high. While Microsoft does not provide specific details about how risk is calculated, each level brings higher confidence that the user or sign-in is compromised.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Azure Active Directory High Risk Sign-in\n\nMicrosoft Identity Protection is an Azure AD security tool that detects various types of identity risks and attacks.\n\nThis rule identifies events produced by Microsoft Identity Protection with high risk levels or high aggregated risk level.\n\n#### Possible investigation steps\n\n- Identify the Risk Detection that triggered the event. A list with descriptions can be found [here](https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/concept-identity-protection-risks#risk-types-and-detection).\n- Identify the user account involved and validate whether the suspicious activity is normal for that user.\n - Consider the source IP address and geolocation for the involved user account. Do they look normal?\n - Consider the device used to sign in. Is it registered and compliant?\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\nIf this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and device conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Willem D'Haese"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/conditional-access/howto-conditional-access-policy-risk","https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/overview-identity-protection","https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/howto-identity-protection-investigate-risk"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.signinlogs and\n (azure.signinlogs.properties.risk_level_during_signin:high or azure.signinlogs.properties.risk_level_aggregated:high) and\n event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.signinlogs.properties.risk_level_aggregated","type":"keyword"},{"ecs":false,"name":"azure.signinlogs.properties.risk_level_during_signin","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule.\n\nNote that details for `azure.signinlogs.properties.risk_level_during_signin` and `azure.signinlogs.properties.risk_level_aggregated`\nare only available for Azure AD Premium P2 customers. All other customers will be returned `hidden`."},"id":"37994bca-0611-4500-ab67-5588afe73b77:103.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/37994bca-0611-4500-ab67-5588afe73b77:103.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/37994bca-0611-4500-ab67-5588afe73b77:103.0.2.json new file mode 100644 index 0000000000000..b7c73ab530575 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/37994bca-0611-4500-ab67-5588afe73b77:103.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Active Directory High Risk Sign-in v103.0.2","rule_id":"37994bca-0611-4500-ab67-5588afe73b77:103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies high risk Azure Active Directory (AD) sign-ins by leveraging Microsoft's Identity Protection machine learning and heuristics. Identity Protection categorizes risk into three tiers: low, medium, and high. While Microsoft does not provide specific details about how risk is calculated, each level brings higher confidence that the user or sign-in is compromised.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Azure Active Directory High Risk Sign-in\n\nMicrosoft Identity Protection is an Azure AD security tool that detects various types of identity risks and attacks.\n\nThis rule identifies events produced by Microsoft Identity Protection with high risk levels or high aggregated risk level.\n\n#### Possible investigation steps\n\n- Identify the Risk Detection that triggered the event. A list with descriptions can be found [here](https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/concept-identity-protection-risks#risk-types-and-detection).\n- Identify the user account involved and validate whether the suspicious activity is normal for that user.\n - Consider the source IP address and geolocation for the involved user account. Do they look normal?\n - Consider the device used to sign in. Is it registered and compliant?\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\nIf this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and device conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Willem D'Haese"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/conditional-access/howto-conditional-access-policy-risk","https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/overview-identity-protection","https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/howto-identity-protection-investigate-risk"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.signinlogs and\n (azure.signinlogs.properties.risk_level_during_signin:high or azure.signinlogs.properties.risk_level_aggregated:high) and\n event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.signinlogs.properties.risk_level_aggregated","type":"keyword"},{"ecs":false,"name":"azure.signinlogs.properties.risk_level_during_signin","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule.\n\nNote that details for `azure.signinlogs.properties.risk_level_during_signin` and `azure.signinlogs.properties.risk_level_aggregated`\nare only available for Azure AD Premium P2 customers. All other customers will be returned `hidden`."},"id":"37994bca-0611-4500-ab67-5588afe73b77:103.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/37b211e8-4e2f-440f-86d8-06cc8f158cfa:103.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/37b211e8-4e2f-440f-86d8-06cc8f158cfa:103.0.0.json new file mode 100644 index 0000000000000..73b63cb095d66 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/37b211e8-4e2f-440f-86d8-06cc8f158cfa:103.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Execution via System Manager v103.0.0","rule_id":"37b211e8-4e2f-440f-86d8-06cc8f158cfa:103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of commands and scripts via System Manager. Execution methods such as RunShellScript, RunPowerShellScript, and alike can be abused by an authenticated attacker to install a backdoor or to interact with a compromised instance via reverse-shell using system only commands.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS Execution via System Manager\n\nAmazon EC2 Systems Manager is a management service designed to help users automatically collect software inventory, apply\noperating system patches, create system images, and configure Windows and Linux operating systems.\n\nThis rule looks for the execution of commands and scripts using System Manager. Note that the actual contents of these\nscripts and commands are not included in the event, so analysts must gain visibility using an host-level security product.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate that the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Investigate the commands or scripts using host-level visibility.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences involving other users.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Suspicious commands from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-plugins.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Initial Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ssm.amazonaws.com and event.action:SendCommand and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"37b211e8-4e2f-440f-86d8-06cc8f158cfa:103.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/37b211e8-4e2f-440f-86d8-06cc8f158cfa:103.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/37b211e8-4e2f-440f-86d8-06cc8f158cfa:103.0.1.json new file mode 100644 index 0000000000000..4d2dbe32586ba --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/37b211e8-4e2f-440f-86d8-06cc8f158cfa:103.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Execution via System Manager v103.0.1","rule_id":"37b211e8-4e2f-440f-86d8-06cc8f158cfa:103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of commands and scripts via System Manager. Execution methods such as RunShellScript, RunPowerShellScript, and alike can be abused by an authenticated attacker to install a backdoor or to interact with a compromised instance via reverse-shell using system only commands.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS Execution via System Manager\n\nAmazon EC2 Systems Manager is a management service designed to help users automatically collect software inventory, apply\noperating system patches, create system images, and configure Windows and Linux operating systems.\n\nThis rule looks for the execution of commands and scripts using System Manager. Note that the actual contents of these\nscripts and commands are not included in the event, so analysts must gain visibility using an host-level security product.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate that the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Investigate the commands or scripts using host-level visibility.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences involving other users.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Suspicious commands from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-plugins.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Initial Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ssm.amazonaws.com and event.action:SendCommand and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"37b211e8-4e2f-440f-86d8-06cc8f158cfa:103.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/37b211e8-4e2f-440f-86d8-06cc8f158cfa:103.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/37b211e8-4e2f-440f-86d8-06cc8f158cfa:103.0.2.json new file mode 100644 index 0000000000000..ec38c5a5cfce3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/37b211e8-4e2f-440f-86d8-06cc8f158cfa:103.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Execution via System Manager v103.0.2","rule_id":"37b211e8-4e2f-440f-86d8-06cc8f158cfa:103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of commands and scripts via System Manager. Execution methods such as RunShellScript, RunPowerShellScript, and alike can be abused by an authenticated attacker to install a backdoor or to interact with a compromised instance via reverse-shell using system only commands.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS Execution via System Manager\n\nAmazon EC2 Systems Manager is a management service designed to help users automatically collect software inventory, apply\noperating system patches, create system images, and configure Windows and Linux operating systems.\n\nThis rule looks for the execution of commands and scripts using System Manager. Note that the actual contents of these\nscripts and commands are not included in the event, so analysts must gain visibility using an host-level security product.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate that the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Investigate the commands or scripts using host-level visibility.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences involving other users.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Suspicious commands from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-plugins.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Initial Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ssm.amazonaws.com and event.action:SendCommand and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"37b211e8-4e2f-440f-86d8-06cc8f158cfa:103.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/37f638ea-909d-4f94-9248-edd21e4a9906:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/37f638ea-909d-4f94-9248-edd21e4a9906:100.0.0.json new file mode 100644 index 0000000000000..e726b0cc42694 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/37f638ea-909d-4f94-9248-edd21e4a9906:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Finder Sync Plugin Registered and Enabled v100.0.0","rule_id":"37f638ea-909d-4f94-9248-edd21e4a9906:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Finder Sync plugins enable users to extend Finder’s functionality by modifying the user interface. Adversaries may abuse this feature by adding a rogue Finder Plugin to repeatedly execute malicious payloads for persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted Finder Sync Plugins"],"from":"now-9m","references":["https://github.com/specterops/presentations/raw/master/Leo%20Pitt/Hey_Im_Still_in_Here_Modern_macOS_Persistence_SO-CON2020.pdf"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.name : \"pluginkit\" and\n process.args : \"-e\" and process.args : \"use\" and process.args : \"-i\" and\n not process.args :\n (\n \"com.google.GoogleDrive.FinderSyncAPIExtension\",\n \"com.google.drivefs.findersync\",\n \"com.boxcryptor.osx.Rednif\",\n \"com.adobe.accmac.ACCFinderSync\",\n \"com.microsoft.OneDrive.FinderSync\",\n \"com.insynchq.Insync.Insync-Finder-Integration\",\n \"com.box.desktop.findersyncext\"\n ) and\n not process.parent.executable : (\n \"/Library/Application Support/IDriveforMac/IDriveHelperTools/FinderPluginApp.app/Contents/MacOS/FinderPluginApp\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},"id":"37f638ea-909d-4f94-9248-edd21e4a9906:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/37f638ea-909d-4f94-9248-edd21e4a9906:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/37f638ea-909d-4f94-9248-edd21e4a9906:100.0.1.json new file mode 100644 index 0000000000000..a05910f3988f1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/37f638ea-909d-4f94-9248-edd21e4a9906:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Finder Sync Plugin Registered and Enabled v100.0.1","rule_id":"37f638ea-909d-4f94-9248-edd21e4a9906:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Finder Sync plugins enable users to extend Finder’s functionality by modifying the user interface. Adversaries may abuse this feature by adding a rogue Finder Plugin to repeatedly execute malicious payloads for persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted Finder Sync Plugins"],"from":"now-9m","references":["https://github.com/specterops/presentations/raw/master/Leo%20Pitt/Hey_Im_Still_in_Here_Modern_macOS_Persistence_SO-CON2020.pdf"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.name : \"pluginkit\" and\n process.args : \"-e\" and process.args : \"use\" and process.args : \"-i\" and\n not process.args :\n (\n \"com.google.GoogleDrive.FinderSyncAPIExtension\",\n \"com.google.drivefs.findersync\",\n \"com.boxcryptor.osx.Rednif\",\n \"com.adobe.accmac.ACCFinderSync\",\n \"com.microsoft.OneDrive.FinderSync\",\n \"com.insynchq.Insync.Insync-Finder-Integration\",\n \"com.box.desktop.findersyncext\"\n ) and\n not process.parent.executable : (\n \"/Library/Application Support/IDriveforMac/IDriveHelperTools/FinderPluginApp.app/Contents/MacOS/FinderPluginApp\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},"id":"37f638ea-909d-4f94-9248-edd21e4a9906:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/37f638ea-909d-4f94-9248-edd21e4a9906:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/37f638ea-909d-4f94-9248-edd21e4a9906:100.0.2.json new file mode 100644 index 0000000000000..bafc522275673 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/37f638ea-909d-4f94-9248-edd21e4a9906:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Finder Sync Plugin Registered and Enabled v100.0.2","rule_id":"37f638ea-909d-4f94-9248-edd21e4a9906:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Finder Sync plugins enable users to extend Finder’s functionality by modifying the user interface. Adversaries may abuse this feature by adding a rogue Finder Plugin to repeatedly execute malicious payloads for persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted Finder Sync Plugins"],"from":"now-9m","references":["https://github.com/specterops/presentations/raw/master/Leo%20Pitt/Hey_Im_Still_in_Here_Modern_macOS_Persistence_SO-CON2020.pdf"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.name : \"pluginkit\" and\n process.args : \"-e\" and process.args : \"use\" and process.args : \"-i\" and\n not process.args :\n (\n \"com.google.GoogleDrive.FinderSyncAPIExtension\",\n \"com.google.drivefs.findersync\",\n \"com.boxcryptor.osx.Rednif\",\n \"com.adobe.accmac.ACCFinderSync\",\n \"com.microsoft.OneDrive.FinderSync\",\n \"com.insynchq.Insync.Insync-Finder-Integration\",\n \"com.box.desktop.findersyncext\"\n ) and\n not process.parent.executable : (\n \"/Library/Application Support/IDriveforMac/IDriveHelperTools/FinderPluginApp.app/Contents/MacOS/FinderPluginApp\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},"id":"37f638ea-909d-4f94-9248-edd21e4a9906:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3805c3dc-f82c-4f8d-891e-63c24d3102b0:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3805c3dc-f82c-4f8d-891e-63c24d3102b0:102.0.0.json new file mode 100644 index 0000000000000..d3fccd1b7b68a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3805c3dc-f82c-4f8d-891e-63c24d3102b0:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempted Bypass of Okta MFA v102.0.0","rule_id":"3805c3dc-f82c-4f8d-891e-63c24d3102b0:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to bypass Okta multi-factor authentication (MFA). An adversary may attempt to bypass the Okta MFA policies configured for an organization in order to obtain unauthorized access to an application.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1111","name":"Multi-Factor Authentication Interception","reference":"https://attack.mitre.org/techniques/T1111/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.mfa.attempt_bypass\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"3805c3dc-f82c-4f8d-891e-63c24d3102b0:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3805c3dc-f82c-4f8d-891e-63c24d3102b0:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3805c3dc-f82c-4f8d-891e-63c24d3102b0:102.0.1.json new file mode 100644 index 0000000000000..042ee4cb7b327 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3805c3dc-f82c-4f8d-891e-63c24d3102b0:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempted Bypass of Okta MFA v102.0.1","rule_id":"3805c3dc-f82c-4f8d-891e-63c24d3102b0:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to bypass Okta multi-factor authentication (MFA). An adversary may attempt to bypass the Okta MFA policies configured for an organization in order to obtain unauthorized access to an application.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1111","name":"Multi-Factor Authentication Interception","reference":"https://attack.mitre.org/techniques/T1111/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.mfa.attempt_bypass\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"3805c3dc-f82c-4f8d-891e-63c24d3102b0:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3805c3dc-f82c-4f8d-891e-63c24d3102b0:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3805c3dc-f82c-4f8d-891e-63c24d3102b0:102.0.2.json new file mode 100644 index 0000000000000..e4282c8cf16e2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3805c3dc-f82c-4f8d-891e-63c24d3102b0:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempted Bypass of Okta MFA v102.0.2","rule_id":"3805c3dc-f82c-4f8d-891e-63c24d3102b0:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to bypass Okta multi-factor authentication (MFA). An adversary may attempt to bypass the Okta MFA policies configured for an organization in order to obtain unauthorized access to an application.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1111","name":"Multi-Factor Authentication Interception","reference":"https://attack.mitre.org/techniques/T1111/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.mfa.attempt_bypass\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"3805c3dc-f82c-4f8d-891e-63c24d3102b0:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3838e0e3-1850-4850-a411-2e8c5ba40ba8:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3838e0e3-1850-4850-a411-2e8c5ba40ba8:102.0.0.json new file mode 100644 index 0000000000000..a8d42a973cd8d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3838e0e3-1850-4850-a411-2e8c5ba40ba8:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Network Connection via Certutil v102.0.0","rule_id":"3838e0e3-1850-4850-a411-2e8c5ba40ba8:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies certutil.exe making a network connection. Adversaries could abuse certutil.exe to download a certificate, or malware, from a remote URL.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Network Connection via Certutil\n\nAttackers can abuse `certutil.exe` to download malware, offensive security tools, and certificates from external sources\nin order to take the next steps in a compromised environment.\n\nThis rule looks for network events where `certutil.exe` contacts IP ranges other than the ones specified in\n[IANA IPv4 Special-Purpose Address Registry](https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml)\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate if the downloaded file was executed.\n- Determine the context in which `certutil.exe` and the file were run.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the downloaded file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. If trusted software uses this command and the triage has not identified\nanything suspicious, this alert can be closed as a false positive.\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml","https://frsecure.com/malware-incident-response-playbook/"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"certutil.exe\" and event.type == \"start\"]\n [network where process.name : \"certutil.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\",\n \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\",\n \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"3838e0e3-1850-4850-a411-2e8c5ba40ba8:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3838e0e3-1850-4850-a411-2e8c5ba40ba8:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3838e0e3-1850-4850-a411-2e8c5ba40ba8:102.0.1.json new file mode 100644 index 0000000000000..f8422f64e123d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3838e0e3-1850-4850-a411-2e8c5ba40ba8:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Network Connection via Certutil v102.0.1","rule_id":"3838e0e3-1850-4850-a411-2e8c5ba40ba8:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies certutil.exe making a network connection. Adversaries could abuse certutil.exe to download a certificate, or malware, from a remote URL.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Network Connection via Certutil\n\nAttackers can abuse `certutil.exe` to download malware, offensive security tools, and certificates from external sources\nin order to take the next steps in a compromised environment.\n\nThis rule looks for network events where `certutil.exe` contacts IP ranges other than the ones specified in\n[IANA IPv4 Special-Purpose Address Registry](https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml)\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate if the downloaded file was executed.\n- Determine the context in which `certutil.exe` and the file were run.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the downloaded file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. If trusted software uses this command and the triage has not identified\nanything suspicious, this alert can be closed as a false positive.\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml","https://frsecure.com/malware-incident-response-playbook/"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"certutil.exe\" and event.type == \"start\"]\n [network where process.name : \"certutil.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\",\n \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\",\n \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"3838e0e3-1850-4850-a411-2e8c5ba40ba8:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3838e0e3-1850-4850-a411-2e8c5ba40ba8:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3838e0e3-1850-4850-a411-2e8c5ba40ba8:102.0.2.json new file mode 100644 index 0000000000000..8a63e3c5968ad --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3838e0e3-1850-4850-a411-2e8c5ba40ba8:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Network Connection via Certutil v102.0.2","rule_id":"3838e0e3-1850-4850-a411-2e8c5ba40ba8:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies certutil.exe making a network connection. Adversaries could abuse certutil.exe to download a certificate, or malware, from a remote URL.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Network Connection via Certutil\n\nAttackers can abuse `certutil.exe` to download malware, offensive security tools, and certificates from external sources\nin order to take the next steps in a compromised environment.\n\nThis rule looks for network events where `certutil.exe` contacts IP ranges other than the ones specified in\n[IANA IPv4 Special-Purpose Address Registry](https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml)\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate if the downloaded file was executed.\n- Determine the context in which `certutil.exe` and the file were run.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the downloaded file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. If trusted software uses this command and the triage has not identified\nanything suspicious, this alert can be closed as a false positive.\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml","https://frsecure.com/malware-incident-response-playbook/"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"certutil.exe\" and event.type == \"start\"]\n [network where process.name : \"certutil.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\",\n \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\",\n \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"3838e0e3-1850-4850-a411-2e8c5ba40ba8:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/38948d29-3d5d-42e3-8aec-be832aaaf8eb:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/38948d29-3d5d-42e3-8aec-be832aaaf8eb:100.0.0.json new file mode 100644 index 0000000000000..d3cbc6900fbcb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/38948d29-3d5d-42e3-8aec-be832aaaf8eb:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Prompt for Credentials with OSASCRIPT v100.0.0","rule_id":"38948d29-3d5d-42e3-8aec-be832aaaf8eb:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of osascript to execute scripts via standard input that may prompt a user with a rogue dialog for credentials.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/EmpireProject/EmPyre/blob/master/lib/modules/collection/osx/prompt.py","https://ss64.com/osx/osascript.html"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1056","name":"Input Capture","reference":"https://attack.mitre.org/techniques/T1056/","subtechnique":[{"id":"T1056.002","name":"GUI Input Capture","reference":"https://attack.mitre.org/techniques/T1056/002/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.name : \"osascript\" and\n process.command_line : \"osascript*display dialog*password*\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"38948d29-3d5d-42e3-8aec-be832aaaf8eb:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/38948d29-3d5d-42e3-8aec-be832aaaf8eb:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/38948d29-3d5d-42e3-8aec-be832aaaf8eb:100.0.1.json new file mode 100644 index 0000000000000..7418f2f4bd256 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/38948d29-3d5d-42e3-8aec-be832aaaf8eb:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Prompt for Credentials with OSASCRIPT v100.0.1","rule_id":"38948d29-3d5d-42e3-8aec-be832aaaf8eb:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of osascript to execute scripts via standard input that may prompt a user with a rogue dialog for credentials.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/EmpireProject/EmPyre/blob/master/lib/modules/collection/osx/prompt.py","https://ss64.com/osx/osascript.html"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1056","name":"Input Capture","reference":"https://attack.mitre.org/techniques/T1056/","subtechnique":[{"id":"T1056.002","name":"GUI Input Capture","reference":"https://attack.mitre.org/techniques/T1056/002/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.name : \"osascript\" and\n process.command_line : \"osascript*display dialog*password*\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"38948d29-3d5d-42e3-8aec-be832aaaf8eb:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/38948d29-3d5d-42e3-8aec-be832aaaf8eb:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/38948d29-3d5d-42e3-8aec-be832aaaf8eb:100.0.2.json new file mode 100644 index 0000000000000..bfc360b7922b6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/38948d29-3d5d-42e3-8aec-be832aaaf8eb:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Prompt for Credentials with OSASCRIPT v100.0.2","rule_id":"38948d29-3d5d-42e3-8aec-be832aaaf8eb:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of osascript to execute scripts via standard input that may prompt a user with a rogue dialog for credentials.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/EmpireProject/EmPyre/blob/master/lib/modules/collection/osx/prompt.py","https://ss64.com/osx/osascript.html"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1056","name":"Input Capture","reference":"https://attack.mitre.org/techniques/T1056/","subtechnique":[{"id":"T1056.002","name":"GUI Input Capture","reference":"https://attack.mitre.org/techniques/T1056/002/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.name : \"osascript\" and\n process.command_line : \"osascript*display dialog*password*\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"38948d29-3d5d-42e3-8aec-be832aaaf8eb:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/38e5acdd-5f20-4d99-8fe4-f0a1a592077f:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/38e5acdd-5f20-4d99-8fe4-f0a1a592077f:101.0.0.json new file mode 100644 index 0000000000000..d55ffc8cc3edc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/38e5acdd-5f20-4d99-8fe4-f0a1a592077f:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"User Added as Owner for Azure Service Principal v101.0.0","rule_id":"38e5acdd-5f20-4d99-8fe4-f0a1a592077f:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user is added as an owner for an Azure service principal. The service principal object defines what the application can do in the specific tenant, who can access the application, and what resources the app can access. A service principal object is created when an application is given permission to access resources in a tenant. An adversary may add a user account as an owner for a service principal and use that account in order to define what an application can do in the Azure AD tenant.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/develop/app-objects-and-service-principals"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Add owner to service principal\" and event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"38e5acdd-5f20-4d99-8fe4-f0a1a592077f:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/38e5acdd-5f20-4d99-8fe4-f0a1a592077f:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/38e5acdd-5f20-4d99-8fe4-f0a1a592077f:101.0.1.json new file mode 100644 index 0000000000000..a1233eb1cfd48 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/38e5acdd-5f20-4d99-8fe4-f0a1a592077f:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"User Added as Owner for Azure Service Principal v101.0.1","rule_id":"38e5acdd-5f20-4d99-8fe4-f0a1a592077f:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user is added as an owner for an Azure service principal. The service principal object defines what the application can do in the specific tenant, who can access the application, and what resources the app can access. A service principal object is created when an application is given permission to access resources in a tenant. An adversary may add a user account as an owner for a service principal and use that account in order to define what an application can do in the Azure AD tenant.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/develop/app-objects-and-service-principals"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Add owner to service principal\" and event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"38e5acdd-5f20-4d99-8fe4-f0a1a592077f:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/38e5acdd-5f20-4d99-8fe4-f0a1a592077f:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/38e5acdd-5f20-4d99-8fe4-f0a1a592077f:101.0.2.json new file mode 100644 index 0000000000000..6ae6ecac8f123 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/38e5acdd-5f20-4d99-8fe4-f0a1a592077f:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"User Added as Owner for Azure Service Principal v101.0.2","rule_id":"38e5acdd-5f20-4d99-8fe4-f0a1a592077f:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user is added as an owner for an Azure service principal. The service principal object defines what the application can do in the specific tenant, who can access the application, and what resources the app can access. A service principal object is created when an application is given permission to access resources in a tenant. An adversary may add a user account as an owner for a service principal and use that account in order to define what an application can do in the Azure AD tenant.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/develop/app-objects-and-service-principals"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Add owner to service principal\" and event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"38e5acdd-5f20-4d99-8fe4-f0a1a592077f:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/39144f38-5284-4f8e-a2ae-e3fd628d90b0:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/39144f38-5284-4f8e-a2ae-e3fd628d90b0:101.0.0.json new file mode 100644 index 0000000000000..8169114769798 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/39144f38-5284-4f8e-a2ae-e3fd628d90b0:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS EC2 Network Access Control List Creation v101.0.0","rule_id":"39144f38-5284-4f8e-a2ae-e3fd628d90b0:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an AWS Elastic Compute Cloud (EC2) network access control list (ACL) or an entry in a network ACL with a specified rule number.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Network ACL's may be created by a network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Network ACL creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-network-acl.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkAcl.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-network-acl-entry.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkAclEntry.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1133","name":"External Remote Services","reference":"https://attack.mitre.org/techniques/T1133/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:(CreateNetworkAcl or CreateNetworkAclEntry) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"39144f38-5284-4f8e-a2ae-e3fd628d90b0:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/39144f38-5284-4f8e-a2ae-e3fd628d90b0:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/39144f38-5284-4f8e-a2ae-e3fd628d90b0:101.0.1.json new file mode 100644 index 0000000000000..617b50fad4aee --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/39144f38-5284-4f8e-a2ae-e3fd628d90b0:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS EC2 Network Access Control List Creation v101.0.1","rule_id":"39144f38-5284-4f8e-a2ae-e3fd628d90b0:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an AWS Elastic Compute Cloud (EC2) network access control list (ACL) or an entry in a network ACL with a specified rule number.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Network ACL's may be created by a network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Network ACL creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-network-acl.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkAcl.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-network-acl-entry.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkAclEntry.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1133","name":"External Remote Services","reference":"https://attack.mitre.org/techniques/T1133/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:(CreateNetworkAcl or CreateNetworkAclEntry) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"39144f38-5284-4f8e-a2ae-e3fd628d90b0:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/39144f38-5284-4f8e-a2ae-e3fd628d90b0:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/39144f38-5284-4f8e-a2ae-e3fd628d90b0:101.0.2.json new file mode 100644 index 0000000000000..481c2fb7552c6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/39144f38-5284-4f8e-a2ae-e3fd628d90b0:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS EC2 Network Access Control List Creation v101.0.2","rule_id":"39144f38-5284-4f8e-a2ae-e3fd628d90b0:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an AWS Elastic Compute Cloud (EC2) network access control list (ACL) or an entry in a network ACL with a specified rule number.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Network ACL's may be created by a network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Network ACL creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-network-acl.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkAcl.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-network-acl-entry.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkAclEntry.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1133","name":"External Remote Services","reference":"https://attack.mitre.org/techniques/T1133/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:(CreateNetworkAcl or CreateNetworkAclEntry) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"39144f38-5284-4f8e-a2ae-e3fd628d90b0:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/397945f3-d39a-4e6f-8bcb-9656c2031438:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/397945f3-d39a-4e6f-8bcb-9656c2031438:100.0.0.json new file mode 100644 index 0000000000000..c9c9a49cc4f4c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/397945f3-d39a-4e6f-8bcb-9656c2031438:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via Microsoft Outlook VBA v100.0.0","rule_id":"397945f3-d39a-4e6f-8bcb-9656c2031438:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to establish persistence on an endpoint by installing a rogue Microsoft Outlook VBA Template.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A legitimate VBA for Outlook is usually configured interactively via OUTLOOK.EXE."],"from":"now-9m","references":["https://www.mdsec.co.uk/2020/11/a-fresh-outlook-on-mail-based-persistence/","https://www.linkedin.com/pulse/outlook-backdoor-using-vba-samir-b-/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1137","name":"Office Application Startup","reference":"https://attack.mitre.org/techniques/T1137/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path : \"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Outlook\\\\VbaProject.OTM\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"397945f3-d39a-4e6f-8bcb-9656c2031438:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/397945f3-d39a-4e6f-8bcb-9656c2031438:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/397945f3-d39a-4e6f-8bcb-9656c2031438:100.0.1.json new file mode 100644 index 0000000000000..8cf21fbcd8ca4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/397945f3-d39a-4e6f-8bcb-9656c2031438:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via Microsoft Outlook VBA v100.0.1","rule_id":"397945f3-d39a-4e6f-8bcb-9656c2031438:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to establish persistence on an endpoint by installing a rogue Microsoft Outlook VBA Template.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A legitimate VBA for Outlook is usually configured interactively via OUTLOOK.EXE."],"from":"now-9m","references":["https://www.mdsec.co.uk/2020/11/a-fresh-outlook-on-mail-based-persistence/","https://www.linkedin.com/pulse/outlook-backdoor-using-vba-samir-b-/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1137","name":"Office Application Startup","reference":"https://attack.mitre.org/techniques/T1137/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path : \"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Outlook\\\\VbaProject.OTM\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"397945f3-d39a-4e6f-8bcb-9656c2031438:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/397945f3-d39a-4e6f-8bcb-9656c2031438:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/397945f3-d39a-4e6f-8bcb-9656c2031438:100.0.2.json new file mode 100644 index 0000000000000..9df7cac77b358 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/397945f3-d39a-4e6f-8bcb-9656c2031438:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via Microsoft Outlook VBA v100.0.2","rule_id":"397945f3-d39a-4e6f-8bcb-9656c2031438:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to establish persistence on an endpoint by installing a rogue Microsoft Outlook VBA Template.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A legitimate VBA for Outlook is usually configured interactively via OUTLOOK.EXE."],"from":"now-9m","references":["https://www.mdsec.co.uk/2020/11/a-fresh-outlook-on-mail-based-persistence/","https://www.linkedin.com/pulse/outlook-backdoor-using-vba-samir-b-/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1137","name":"Office Application Startup","reference":"https://attack.mitre.org/techniques/T1137/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path : \"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Outlook\\\\VbaProject.OTM\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"397945f3-d39a-4e6f-8bcb-9656c2031438:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3a59fc81-99d3-47ea-8cd6-d48d561fca20:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3a59fc81-99d3-47ea-8cd6-d48d561fca20:102.0.0.json new file mode 100644 index 0000000000000..1edd80a37345f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3a59fc81-99d3-47ea-8cd6-d48d561fca20:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential DNS Tunneling via NsLookup v102.0.0","rule_id":"3a59fc81-99d3-47ea-8cd6-d48d561fca20:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule identifies a large number (15) of nslookup.exe executions with an explicit query type from the same host. This may indicate command and control activity utilizing the DNS protocol.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential DNS Tunneling via NsLookup\n\nAttackers can abuse existing network rules that allow DNS communication with external resources to use the protocol as\ntheir command and control and/or exfiltration channel.\n\nDNS queries can be used to infiltrate data such as commands to be run, malicious files, etc., and also for exfiltration,\nsince queries can be used to send data to the attacker-controlled DNS server. This process is commonly known as DNS tunneling.\n\nMore information on how tunneling works and how it can be abused can be found on\n[Palo Alto Unit42 Research](https://unit42.paloaltonetworks.com/dns-tunneling-how-dns-can-be-abused-by-malicious-actors).\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the DNS query and identify the information sent.\n- Extract this communication's indicators of compromise (IoCs) and use traffic logs to search for other potentially\ncompromised hosts.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. If the parent process is trusted and the data sent is not sensitive nor\ncommand and control related, this alert can be closed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Immediately block the identified indicators of compromise (IoCs).\n- Implement any temporary network rules, procedures, and segmentation required to contain the attack.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Update firewall rules to be more restrictive.\n- Reimage the host operating system or restore the compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://unit42.paloaltonetworks.com/dns-tunneling-in-the-wild-overview-of-oilrigs-dns-tunneling/"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.004","name":"DNS","reference":"https://attack.mitre.org/techniques/T1071/004/"}]}]}],"query":"event.category:process and event.type:start and process.name:nslookup.exe and process.args:(-querytype=* or -qt=* or -q=* or -type=*)\n","threshold":{"field":["host.id"],"value":15},"type":"threshold","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"3a59fc81-99d3-47ea-8cd6-d48d561fca20:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3a59fc81-99d3-47ea-8cd6-d48d561fca20:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3a59fc81-99d3-47ea-8cd6-d48d561fca20:102.0.1.json new file mode 100644 index 0000000000000..36d85caa0de82 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3a59fc81-99d3-47ea-8cd6-d48d561fca20:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential DNS Tunneling via NsLookup v102.0.1","rule_id":"3a59fc81-99d3-47ea-8cd6-d48d561fca20:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule identifies a large number (15) of nslookup.exe executions with an explicit query type from the same host. This may indicate command and control activity utilizing the DNS protocol.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential DNS Tunneling via NsLookup\n\nAttackers can abuse existing network rules that allow DNS communication with external resources to use the protocol as\ntheir command and control and/or exfiltration channel.\n\nDNS queries can be used to infiltrate data such as commands to be run, malicious files, etc., and also for exfiltration,\nsince queries can be used to send data to the attacker-controlled DNS server. This process is commonly known as DNS tunneling.\n\nMore information on how tunneling works and how it can be abused can be found on\n[Palo Alto Unit42 Research](https://unit42.paloaltonetworks.com/dns-tunneling-how-dns-can-be-abused-by-malicious-actors).\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the DNS query and identify the information sent.\n- Extract this communication's indicators of compromise (IoCs) and use traffic logs to search for other potentially\ncompromised hosts.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. If the parent process is trusted and the data sent is not sensitive nor\ncommand and control related, this alert can be closed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Immediately block the identified indicators of compromise (IoCs).\n- Implement any temporary network rules, procedures, and segmentation required to contain the attack.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Update firewall rules to be more restrictive.\n- Reimage the host operating system or restore the compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://unit42.paloaltonetworks.com/dns-tunneling-in-the-wild-overview-of-oilrigs-dns-tunneling/"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.004","name":"DNS","reference":"https://attack.mitre.org/techniques/T1071/004/"}]}]}],"query":"event.category:process and event.type:start and process.name:nslookup.exe and process.args:(-querytype=* or -qt=* or -q=* or -type=*)\n","threshold":{"field":["host.id"],"value":15},"type":"threshold","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"3a59fc81-99d3-47ea-8cd6-d48d561fca20:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3a59fc81-99d3-47ea-8cd6-d48d561fca20:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3a59fc81-99d3-47ea-8cd6-d48d561fca20:102.0.2.json new file mode 100644 index 0000000000000..5cbde826be8d2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3a59fc81-99d3-47ea-8cd6-d48d561fca20:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential DNS Tunneling via NsLookup v102.0.2","rule_id":"3a59fc81-99d3-47ea-8cd6-d48d561fca20:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule identifies a large number (15) of nslookup.exe executions with an explicit query type from the same host. This may indicate command and control activity utilizing the DNS protocol.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential DNS Tunneling via NsLookup\n\nAttackers can abuse existing network rules that allow DNS communication with external resources to use the protocol as\ntheir command and control and/or exfiltration channel.\n\nDNS queries can be used to infiltrate data such as commands to be run, malicious files, etc., and also for exfiltration,\nsince queries can be used to send data to the attacker-controlled DNS server. This process is commonly known as DNS tunneling.\n\nMore information on how tunneling works and how it can be abused can be found on\n[Palo Alto Unit42 Research](https://unit42.paloaltonetworks.com/dns-tunneling-how-dns-can-be-abused-by-malicious-actors).\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the DNS query and identify the information sent.\n- Extract this communication's indicators of compromise (IoCs) and use traffic logs to search for other potentially\ncompromised hosts.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. If the parent process is trusted and the data sent is not sensitive nor\ncommand and control related, this alert can be closed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Immediately block the identified indicators of compromise (IoCs).\n- Implement any temporary network rules, procedures, and segmentation required to contain the attack.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Update firewall rules to be more restrictive.\n- Reimage the host operating system or restore the compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://unit42.paloaltonetworks.com/dns-tunneling-in-the-wild-overview-of-oilrigs-dns-tunneling/"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.004","name":"DNS","reference":"https://attack.mitre.org/techniques/T1071/004/"}]}]}],"query":"event.category:process and event.type:start and process.name:nslookup.exe and process.args:(-querytype=* or -qt=* or -q=* or -type=*)\n","threshold":{"field":["host.id"],"value":15},"type":"threshold","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"3a59fc81-99d3-47ea-8cd6-d48d561fca20:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3ad49c61-7adc-42c1-b788-732eda2f5abf:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3ad49c61-7adc-42c1-b788-732eda2f5abf:100.0.0.json new file mode 100644 index 0000000000000..06238c7be97be --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3ad49c61-7adc-42c1-b788-732eda2f5abf:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"VNC (Virtual Network Computing) to the Internet v100.0.0","rule_id":"3ad49c61-7adc-42c1-b788-732eda2f5abf:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of VNC traffic to the Internet. VNC is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["VNC connections may be made directly to Linux cloud server instances but such connections are usually made only by engineers. VNC is less common than SSH or RDP but may be required by some work flows such as remote access and support for specialized software products or servers. Such work-flows are usually known and not unexpected. Usage that is unfamiliar to server or network owners can be unexpected and suspicious."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1219","name":"Remote Access Software","reference":"https://attack.mitre.org/techniques/T1219/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and destination.port >= 5800 and destination.port <= 5810 and\n source.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n ) and\n not destination.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},"id":"3ad49c61-7adc-42c1-b788-732eda2f5abf:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3ad49c61-7adc-42c1-b788-732eda2f5abf:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3ad49c61-7adc-42c1-b788-732eda2f5abf:100.0.1.json new file mode 100644 index 0000000000000..cf563d4135291 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3ad49c61-7adc-42c1-b788-732eda2f5abf:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"VNC (Virtual Network Computing) to the Internet v100.0.1","rule_id":"3ad49c61-7adc-42c1-b788-732eda2f5abf:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of VNC traffic to the Internet. VNC is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["VNC connections may be made directly to Linux cloud server instances but such connections are usually made only by engineers. VNC is less common than SSH or RDP but may be required by some work flows such as remote access and support for specialized software products or servers. Such work-flows are usually known and not unexpected. Usage that is unfamiliar to server or network owners can be unexpected and suspicious."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1219","name":"Remote Access Software","reference":"https://attack.mitre.org/techniques/T1219/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and destination.port >= 5800 and destination.port <= 5810 and\n source.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n ) and\n not destination.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},"id":"3ad49c61-7adc-42c1-b788-732eda2f5abf:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3ad49c61-7adc-42c1-b788-732eda2f5abf:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3ad49c61-7adc-42c1-b788-732eda2f5abf:100.0.2.json new file mode 100644 index 0000000000000..04bddd0d9a8ef --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3ad49c61-7adc-42c1-b788-732eda2f5abf:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"VNC (Virtual Network Computing) to the Internet v100.0.2","rule_id":"3ad49c61-7adc-42c1-b788-732eda2f5abf:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of VNC traffic to the Internet. VNC is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["VNC connections may be made directly to Linux cloud server instances but such connections are usually made only by engineers. VNC is less common than SSH or RDP but may be required by some work flows such as remote access and support for specialized software products or servers. Such work-flows are usually known and not unexpected. Usage that is unfamiliar to server or network owners can be unexpected and suspicious."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1219","name":"Remote Access Software","reference":"https://attack.mitre.org/techniques/T1219/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and destination.port >= 5800 and destination.port <= 5810 and\n source.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n ) and\n not destination.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},"id":"3ad49c61-7adc-42c1-b788-732eda2f5abf:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3ad77ed4-4dcf-4c51-8bfc-e3f7ce316b2f:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3ad77ed4-4dcf-4c51-8bfc-e3f7ce316b2f:101.0.0.json new file mode 100644 index 0000000000000..2be862dd6b9f0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3ad77ed4-4dcf-4c51-8bfc-e3f7ce316b2f:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Full Network Packet Capture Detected v101.0.0","rule_id":"3ad77ed4-4dcf-4c51-8bfc-e3f7ce316b2f:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential full network packet capture in Azure. Packet Capture is an Azure Network Watcher feature that can be used to inspect network traffic. This feature can potentially be abused to read sensitive data from unencrypted internal traffic.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Full Network Packet Capture may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Full Network Packet Capture from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1040","name":"Network Sniffing","reference":"https://attack.mitre.org/techniques/T1040/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\n (\n \"MICROSOFT.NETWORK/*/STARTPACKETCAPTURE/ACTION\" or\n \"MICROSOFT.NETWORK/*/VPNCONNECTIONS/STARTPACKETCAPTURE/ACTION\" or\n \"MICROSOFT.NETWORK/*/PACKETCAPTURES/WRITE\"\n ) and\nevent.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"3ad77ed4-4dcf-4c51-8bfc-e3f7ce316b2f:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3ad77ed4-4dcf-4c51-8bfc-e3f7ce316b2f:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3ad77ed4-4dcf-4c51-8bfc-e3f7ce316b2f:101.0.1.json new file mode 100644 index 0000000000000..907cdd0978dd8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3ad77ed4-4dcf-4c51-8bfc-e3f7ce316b2f:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Full Network Packet Capture Detected v101.0.1","rule_id":"3ad77ed4-4dcf-4c51-8bfc-e3f7ce316b2f:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential full network packet capture in Azure. Packet Capture is an Azure Network Watcher feature that can be used to inspect network traffic. This feature can potentially be abused to read sensitive data from unencrypted internal traffic.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Full Network Packet Capture may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Full Network Packet Capture from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1040","name":"Network Sniffing","reference":"https://attack.mitre.org/techniques/T1040/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\n (\n \"MICROSOFT.NETWORK/*/STARTPACKETCAPTURE/ACTION\" or\n \"MICROSOFT.NETWORK/*/VPNCONNECTIONS/STARTPACKETCAPTURE/ACTION\" or\n \"MICROSOFT.NETWORK/*/PACKETCAPTURES/WRITE\"\n ) and\nevent.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"3ad77ed4-4dcf-4c51-8bfc-e3f7ce316b2f:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3ad77ed4-4dcf-4c51-8bfc-e3f7ce316b2f:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3ad77ed4-4dcf-4c51-8bfc-e3f7ce316b2f:101.0.2.json new file mode 100644 index 0000000000000..5990c6a438cd9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3ad77ed4-4dcf-4c51-8bfc-e3f7ce316b2f:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Full Network Packet Capture Detected v101.0.2","rule_id":"3ad77ed4-4dcf-4c51-8bfc-e3f7ce316b2f:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential full network packet capture in Azure. Packet Capture is an Azure Network Watcher feature that can be used to inspect network traffic. This feature can potentially be abused to read sensitive data from unencrypted internal traffic.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Full Network Packet Capture may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Full Network Packet Capture from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1040","name":"Network Sniffing","reference":"https://attack.mitre.org/techniques/T1040/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\n (\n \"MICROSOFT.NETWORK/*/STARTPACKETCAPTURE/ACTION\" or\n \"MICROSOFT.NETWORK/*/VPNCONNECTIONS/STARTPACKETCAPTURE/ACTION\" or\n \"MICROSOFT.NETWORK/*/PACKETCAPTURES/WRITE\"\n ) and\nevent.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"3ad77ed4-4dcf-4c51-8bfc-e3f7ce316b2f:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3b382770-efbb-44f4-beed-f5e0a051b895:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3b382770-efbb-44f4-beed-f5e0a051b895:100.0.0.json new file mode 100644 index 0000000000000..d60c82fa75862 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3b382770-efbb-44f4-beed-f5e0a051b895:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Malware - Prevented - Elastic Endgame v100.0.0","rule_id":"3b382770-efbb-44f4-beed-f5e0a051b895:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented Malware. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame"],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:file_classification_event or endgame.event_subtype_full:file_classification_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"3b382770-efbb-44f4-beed-f5e0a051b895:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3b382770-efbb-44f4-beed-f5e0a051b895:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3b382770-efbb-44f4-beed-f5e0a051b895:100.0.1.json new file mode 100644 index 0000000000000..d562e2386edcc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3b382770-efbb-44f4-beed-f5e0a051b895:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Malware - Prevented - Elastic Endgame v100.0.1","rule_id":"3b382770-efbb-44f4-beed-f5e0a051b895:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented Malware. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame"],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:file_classification_event or endgame.event_subtype_full:file_classification_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"3b382770-efbb-44f4-beed-f5e0a051b895:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3b382770-efbb-44f4-beed-f5e0a051b895:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3b382770-efbb-44f4-beed-f5e0a051b895:100.0.2.json new file mode 100644 index 0000000000000..d5af7a03d2a69 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3b382770-efbb-44f4-beed-f5e0a051b895:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Malware - Prevented - Elastic Endgame v100.0.2","rule_id":"3b382770-efbb-44f4-beed-f5e0a051b895:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented Malware. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame"],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:file_classification_event or endgame.event_subtype_full:file_classification_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"3b382770-efbb-44f4-beed-f5e0a051b895:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3b47900d-e793-49e8-968f-c90dc3526aa1:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3b47900d-e793-49e8-968f-c90dc3526aa1:102.0.0.json new file mode 100644 index 0000000000000..2650174949b9a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3b47900d-e793-49e8-968f-c90dc3526aa1:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Parent Process for cmd.exe v102.0.0","rule_id":"3b47900d-e793-49e8-968f-c90dc3526aa1:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious parent child process relationship with cmd.exe descending from an unusual process.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"cmd.exe\" and\n process.parent.name : (\"lsass.exe\",\n \"csrss.exe\",\n \"epad.exe\",\n \"regsvr32.exe\",\n \"dllhost.exe\",\n \"LogonUI.exe\",\n \"wermgr.exe\",\n \"spoolsv.exe\",\n \"jucheck.exe\",\n \"jusched.exe\",\n \"ctfmon.exe\",\n \"taskhostw.exe\",\n \"GoogleUpdate.exe\",\n \"sppsvc.exe\",\n \"sihost.exe\",\n \"slui.exe\",\n \"SIHClient.exe\",\n \"SearchIndexer.exe\",\n \"SearchProtocolHost.exe\",\n \"FlashPlayerUpdateService.exe\",\n \"WerFault.exe\",\n \"WUDFHost.exe\",\n \"unsecapp.exe\",\n \"wlanext.exe\" )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"3b47900d-e793-49e8-968f-c90dc3526aa1:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3b47900d-e793-49e8-968f-c90dc3526aa1:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3b47900d-e793-49e8-968f-c90dc3526aa1:102.0.1.json new file mode 100644 index 0000000000000..47772b17dafd0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3b47900d-e793-49e8-968f-c90dc3526aa1:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Parent Process for cmd.exe v102.0.1","rule_id":"3b47900d-e793-49e8-968f-c90dc3526aa1:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious parent child process relationship with cmd.exe descending from an unusual process.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"cmd.exe\" and\n process.parent.name : (\"lsass.exe\",\n \"csrss.exe\",\n \"epad.exe\",\n \"regsvr32.exe\",\n \"dllhost.exe\",\n \"LogonUI.exe\",\n \"wermgr.exe\",\n \"spoolsv.exe\",\n \"jucheck.exe\",\n \"jusched.exe\",\n \"ctfmon.exe\",\n \"taskhostw.exe\",\n \"GoogleUpdate.exe\",\n \"sppsvc.exe\",\n \"sihost.exe\",\n \"slui.exe\",\n \"SIHClient.exe\",\n \"SearchIndexer.exe\",\n \"SearchProtocolHost.exe\",\n \"FlashPlayerUpdateService.exe\",\n \"WerFault.exe\",\n \"WUDFHost.exe\",\n \"unsecapp.exe\",\n \"wlanext.exe\" )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"3b47900d-e793-49e8-968f-c90dc3526aa1:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3b47900d-e793-49e8-968f-c90dc3526aa1:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3b47900d-e793-49e8-968f-c90dc3526aa1:102.0.2.json new file mode 100644 index 0000000000000..a1d0b3c7468f5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3b47900d-e793-49e8-968f-c90dc3526aa1:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Parent Process for cmd.exe v102.0.2","rule_id":"3b47900d-e793-49e8-968f-c90dc3526aa1:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious parent child process relationship with cmd.exe descending from an unusual process.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"cmd.exe\" and\n process.parent.name : (\"lsass.exe\",\n \"csrss.exe\",\n \"epad.exe\",\n \"regsvr32.exe\",\n \"dllhost.exe\",\n \"LogonUI.exe\",\n \"wermgr.exe\",\n \"spoolsv.exe\",\n \"jucheck.exe\",\n \"jusched.exe\",\n \"ctfmon.exe\",\n \"taskhostw.exe\",\n \"GoogleUpdate.exe\",\n \"sppsvc.exe\",\n \"sihost.exe\",\n \"slui.exe\",\n \"SIHClient.exe\",\n \"SearchIndexer.exe\",\n \"SearchProtocolHost.exe\",\n \"FlashPlayerUpdateService.exe\",\n \"WerFault.exe\",\n \"WUDFHost.exe\",\n \"unsecapp.exe\",\n \"wlanext.exe\" )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"3b47900d-e793-49e8-968f-c90dc3526aa1:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3bc6deaa-fbd4-433a-ae21-3e892f95624f:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3bc6deaa-fbd4-433a-ae21-3e892f95624f:102.0.0.json new file mode 100644 index 0000000000000..d28b22510e167 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3bc6deaa-fbd4-433a-ae21-3e892f95624f:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"NTDS or SAM Database File Copied v102.0.0","rule_id":"3bc6deaa-fbd4-433a-ae21-3e892f95624f:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a copy operation of the Active Directory Domain Database (ntds.dit) or Security Account Manager (SAM) files. Those files contain sensitive information including hashed domain and/or local credentials.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"from":"now-9m","max_signals":33,"references":["https://thedfirreport.com/2020/11/23/pysa-mespinoza-ransomware/","https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1003.002/T1003.002.md#atomic-test-3---esentutlexe-sam-copy","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.002","name":"Security Account Manager","reference":"https://attack.mitre.org/techniques/T1003/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (\n (process.pe.original_file_name in (\"Cmd.Exe\", \"PowerShell.EXE\", \"XCOPY.EXE\") and\n process.args : (\"copy\", \"xcopy\", \"Copy-Item\", \"move\", \"cp\", \"mv\")\n ) or\n (process.pe.original_file_name : \"esentutl.exe\" and process.args : (\"*/y*\", \"*/vss*\", \"*/d*\"))\n ) and\n process.args : (\"*\\\\ntds.dit\", \"*\\\\config\\\\SAM\", \"\\\\*\\\\GLOBALROOT\\\\Device\\\\HarddiskVolumeShadowCopy*\\\\*\", \"*/system32/config/SAM*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"3bc6deaa-fbd4-433a-ae21-3e892f95624f:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3bc6deaa-fbd4-433a-ae21-3e892f95624f:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3bc6deaa-fbd4-433a-ae21-3e892f95624f:102.0.1.json new file mode 100644 index 0000000000000..b70b867ed44c0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3bc6deaa-fbd4-433a-ae21-3e892f95624f:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"NTDS or SAM Database File Copied v102.0.1","rule_id":"3bc6deaa-fbd4-433a-ae21-3e892f95624f:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a copy operation of the Active Directory Domain Database (ntds.dit) or Security Account Manager (SAM) files. Those files contain sensitive information including hashed domain and/or local credentials.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"from":"now-9m","max_signals":33,"references":["https://thedfirreport.com/2020/11/23/pysa-mespinoza-ransomware/","https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1003.002/T1003.002.md#atomic-test-3---esentutlexe-sam-copy","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.002","name":"Security Account Manager","reference":"https://attack.mitre.org/techniques/T1003/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (\n (process.pe.original_file_name in (\"Cmd.Exe\", \"PowerShell.EXE\", \"XCOPY.EXE\") and\n process.args : (\"copy\", \"xcopy\", \"Copy-Item\", \"move\", \"cp\", \"mv\")\n ) or\n (process.pe.original_file_name : \"esentutl.exe\" and process.args : (\"*/y*\", \"*/vss*\", \"*/d*\"))\n ) and\n process.args : (\"*\\\\ntds.dit\", \"*\\\\config\\\\SAM\", \"\\\\*\\\\GLOBALROOT\\\\Device\\\\HarddiskVolumeShadowCopy*\\\\*\", \"*/system32/config/SAM*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"3bc6deaa-fbd4-433a-ae21-3e892f95624f:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3bc6deaa-fbd4-433a-ae21-3e892f95624f:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3bc6deaa-fbd4-433a-ae21-3e892f95624f:102.0.2.json new file mode 100644 index 0000000000000..8411af85c0203 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3bc6deaa-fbd4-433a-ae21-3e892f95624f:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"NTDS or SAM Database File Copied v102.0.2","rule_id":"3bc6deaa-fbd4-433a-ae21-3e892f95624f:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a copy operation of the Active Directory Domain Database (ntds.dit) or Security Account Manager (SAM) files. Those files contain sensitive information including hashed domain and/or local credentials.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"from":"now-9m","max_signals":33,"references":["https://thedfirreport.com/2020/11/23/pysa-mespinoza-ransomware/","https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1003.002/T1003.002.md#atomic-test-3---esentutlexe-sam-copy","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.002","name":"Security Account Manager","reference":"https://attack.mitre.org/techniques/T1003/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (\n (process.pe.original_file_name in (\"Cmd.Exe\", \"PowerShell.EXE\", \"XCOPY.EXE\") and\n process.args : (\"copy\", \"xcopy\", \"Copy-Item\", \"move\", \"cp\", \"mv\")\n ) or\n (process.pe.original_file_name : \"esentutl.exe\" and process.args : (\"*/y*\", \"*/vss*\", \"*/d*\"))\n ) and\n process.args : (\"*\\\\ntds.dit\", \"*\\\\config\\\\SAM\", \"\\\\*\\\\GLOBALROOT\\\\Device\\\\HarddiskVolumeShadowCopy*\\\\*\", \"*/system32/config/SAM*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"3bc6deaa-fbd4-433a-ae21-3e892f95624f:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3c7e32e6-6104-46d9-a06e-da0f8b5795a0:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3c7e32e6-6104-46d9-a06e-da0f8b5795a0:100.0.0.json new file mode 100644 index 0000000000000..6e11498470169 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3c7e32e6-6104-46d9-a06e-da0f8b5795a0:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Linux Network Port Activity v100.0.0","rule_id":"3c7e32e6-6104-46d9-a06e-da0f8b5795a0:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual destination port activity that can indicate command-and-control, persistence mechanism, or data exfiltration activity. Rarely used destination port activity is generally unusual in Linux fleets, and can indicate unauthorized access or threat actor activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program or one that rarely uses the network could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Linux","Threat Detection","ML"],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_anomalous_network_port_activity"],"type":"machine_learning"},"id":"3c7e32e6-6104-46d9-a06e-da0f8b5795a0:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3c7e32e6-6104-46d9-a06e-da0f8b5795a0:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3c7e32e6-6104-46d9-a06e-da0f8b5795a0:100.0.1.json new file mode 100644 index 0000000000000..1f38e05fe2609 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3c7e32e6-6104-46d9-a06e-da0f8b5795a0:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Linux Network Port Activity v100.0.1","rule_id":"3c7e32e6-6104-46d9-a06e-da0f8b5795a0:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual destination port activity that can indicate command-and-control, persistence mechanism, or data exfiltration activity. Rarely used destination port activity is generally unusual in Linux fleets, and can indicate unauthorized access or threat actor activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program or one that rarely uses the network could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Linux","Threat Detection","ML"],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_anomalous_network_port_activity"],"type":"machine_learning"},"id":"3c7e32e6-6104-46d9-a06e-da0f8b5795a0:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3c7e32e6-6104-46d9-a06e-da0f8b5795a0:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3c7e32e6-6104-46d9-a06e-da0f8b5795a0:100.0.2.json new file mode 100644 index 0000000000000..dc9d592fdf2c3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3c7e32e6-6104-46d9-a06e-da0f8b5795a0:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Linux Network Port Activity v100.0.2","rule_id":"3c7e32e6-6104-46d9-a06e-da0f8b5795a0:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual destination port activity that can indicate command-and-control, persistence mechanism, or data exfiltration activity. Rarely used destination port activity is generally unusual in Linux fleets, and can indicate unauthorized access or threat actor activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program or one that rarely uses the network could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Linux","Threat Detection","ML"],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_anomalous_network_port_activity"],"type":"machine_learning"},"id":"3c7e32e6-6104-46d9-a06e-da0f8b5795a0:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3e002465-876f-4f04-b016-84ef48ce7e5d:103.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3e002465-876f-4f04-b016-84ef48ce7e5d:103.0.0.json new file mode 100644 index 0000000000000..e88302bbb49fe --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3e002465-876f-4f04-b016-84ef48ce7e5d:103.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS CloudTrail Log Updated v103.0.0","rule_id":"3e002465-876f-4f04-b016-84ef48ce7e5d:103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an update to an AWS log trail setting that specifies the delivery of log files.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudTrail Log Updated\n\nAmazon CloudTrail is a service that enables governance, compliance, operational auditing, and risk auditing of your\nAmazon Web Services account. With CloudTrail, you can log, continuously monitor, and retain account activity related to\nactions across your Amazon Web Services infrastructure. CloudTrail provides event history of your Amazon Web Services\naccount activity, including actions taken through the Amazon Management Console, Amazon SDKs, command line tools, and\nother Amazon Web Services services. This event history simplifies security analysis, resource change tracking, and\ntroubleshooting.\n\nThis rule identifies a modification on CloudTrail settings using the API `UpdateTrail` action. Attackers can do this to\ncover their tracks and impact security monitoring that relies on this source.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Examine the response elements of the event to determine the scope of the changes.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trail updates may be made by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Trail updates from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_UpdateTrail.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudtrail/update-trail.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1565","name":"Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/","subtechnique":[{"id":"T1565.001","name":"Stored Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1530","name":"Data from Cloud Storage Object","reference":"https://attack.mitre.org/techniques/T1530/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:UpdateTrail and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"3e002465-876f-4f04-b016-84ef48ce7e5d:103.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3e002465-876f-4f04-b016-84ef48ce7e5d:103.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3e002465-876f-4f04-b016-84ef48ce7e5d:103.0.1.json new file mode 100644 index 0000000000000..5f8e1a98d7e71 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3e002465-876f-4f04-b016-84ef48ce7e5d:103.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS CloudTrail Log Updated v103.0.1","rule_id":"3e002465-876f-4f04-b016-84ef48ce7e5d:103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an update to an AWS log trail setting that specifies the delivery of log files.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudTrail Log Updated\n\nAmazon CloudTrail is a service that enables governance, compliance, operational auditing, and risk auditing of your\nAmazon Web Services account. With CloudTrail, you can log, continuously monitor, and retain account activity related to\nactions across your Amazon Web Services infrastructure. CloudTrail provides event history of your Amazon Web Services\naccount activity, including actions taken through the Amazon Management Console, Amazon SDKs, command line tools, and\nother Amazon Web Services services. This event history simplifies security analysis, resource change tracking, and\ntroubleshooting.\n\nThis rule identifies a modification on CloudTrail settings using the API `UpdateTrail` action. Attackers can do this to\ncover their tracks and impact security monitoring that relies on this source.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Examine the response elements of the event to determine the scope of the changes.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trail updates may be made by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Trail updates from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_UpdateTrail.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudtrail/update-trail.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1565","name":"Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/","subtechnique":[{"id":"T1565.001","name":"Stored Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1530","name":"Data from Cloud Storage Object","reference":"https://attack.mitre.org/techniques/T1530/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:UpdateTrail and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"3e002465-876f-4f04-b016-84ef48ce7e5d:103.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3e002465-876f-4f04-b016-84ef48ce7e5d:103.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3e002465-876f-4f04-b016-84ef48ce7e5d:103.0.2.json new file mode 100644 index 0000000000000..39b9964514f81 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3e002465-876f-4f04-b016-84ef48ce7e5d:103.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS CloudTrail Log Updated v103.0.2","rule_id":"3e002465-876f-4f04-b016-84ef48ce7e5d:103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an update to an AWS log trail setting that specifies the delivery of log files.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudTrail Log Updated\n\nAmazon CloudTrail is a service that enables governance, compliance, operational auditing, and risk auditing of your\nAmazon Web Services account. With CloudTrail, you can log, continuously monitor, and retain account activity related to\nactions across your Amazon Web Services infrastructure. CloudTrail provides event history of your Amazon Web Services\naccount activity, including actions taken through the Amazon Management Console, Amazon SDKs, command line tools, and\nother Amazon Web Services services. This event history simplifies security analysis, resource change tracking, and\ntroubleshooting.\n\nThis rule identifies a modification on CloudTrail settings using the API `UpdateTrail` action. Attackers can do this to\ncover their tracks and impact security monitoring that relies on this source.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Examine the response elements of the event to determine the scope of the changes.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trail updates may be made by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Trail updates from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_UpdateTrail.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudtrail/update-trail.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1565","name":"Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/","subtechnique":[{"id":"T1565.001","name":"Stored Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1530","name":"Data from Cloud Storage Object","reference":"https://attack.mitre.org/techniques/T1530/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:UpdateTrail and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"3e002465-876f-4f04-b016-84ef48ce7e5d:103.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3e3d15c6-1509-479a-b125-21718372157e:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3e3d15c6-1509-479a-b125-21718372157e:100.0.0.json new file mode 100644 index 0000000000000..860812809bd56 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3e3d15c6-1509-479a-b125-21718372157e:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Emond Child Process v100.0.0","rule_id":"3e3d15c6-1509-479a-b125-21718372157e:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a suspicious child process of the Event Monitor Daemon (emond). Adversaries may abuse this service by writing a rule to execute commands when a defined event occurs, such as system start up or user authentication.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.xorrior.com/emond-persistence/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.014","name":"Emond","reference":"https://attack.mitre.org/techniques/T1546/014/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.parent.name : \"emond\" and\n process.name : (\n \"bash\",\n \"dash\",\n \"sh\",\n \"tcsh\",\n \"csh\",\n \"zsh\",\n \"ksh\",\n \"fish\",\n \"Python\",\n \"python*\",\n \"perl*\",\n \"php*\",\n \"osascript\",\n \"pwsh\",\n \"curl\",\n \"wget\",\n \"cp\",\n \"mv\",\n \"touch\",\n \"echo\",\n \"base64\",\n \"launchctl\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},"id":"3e3d15c6-1509-479a-b125-21718372157e:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3e3d15c6-1509-479a-b125-21718372157e:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3e3d15c6-1509-479a-b125-21718372157e:100.0.1.json new file mode 100644 index 0000000000000..29930cc99c6d5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3e3d15c6-1509-479a-b125-21718372157e:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Emond Child Process v100.0.1","rule_id":"3e3d15c6-1509-479a-b125-21718372157e:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a suspicious child process of the Event Monitor Daemon (emond). Adversaries may abuse this service by writing a rule to execute commands when a defined event occurs, such as system start up or user authentication.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.xorrior.com/emond-persistence/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.014","name":"Emond","reference":"https://attack.mitre.org/techniques/T1546/014/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.parent.name : \"emond\" and\n process.name : (\n \"bash\",\n \"dash\",\n \"sh\",\n \"tcsh\",\n \"csh\",\n \"zsh\",\n \"ksh\",\n \"fish\",\n \"Python\",\n \"python*\",\n \"perl*\",\n \"php*\",\n \"osascript\",\n \"pwsh\",\n \"curl\",\n \"wget\",\n \"cp\",\n \"mv\",\n \"touch\",\n \"echo\",\n \"base64\",\n \"launchctl\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},"id":"3e3d15c6-1509-479a-b125-21718372157e:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3e3d15c6-1509-479a-b125-21718372157e:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3e3d15c6-1509-479a-b125-21718372157e:100.0.2.json new file mode 100644 index 0000000000000..42694f53c4144 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3e3d15c6-1509-479a-b125-21718372157e:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Emond Child Process v100.0.2","rule_id":"3e3d15c6-1509-479a-b125-21718372157e:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a suspicious child process of the Event Monitor Daemon (emond). Adversaries may abuse this service by writing a rule to execute commands when a defined event occurs, such as system start up or user authentication.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.xorrior.com/emond-persistence/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.014","name":"Emond","reference":"https://attack.mitre.org/techniques/T1546/014/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.parent.name : \"emond\" and\n process.name : (\n \"bash\",\n \"dash\",\n \"sh\",\n \"tcsh\",\n \"csh\",\n \"zsh\",\n \"ksh\",\n \"fish\",\n \"Python\",\n \"python*\",\n \"perl*\",\n \"php*\",\n \"osascript\",\n \"pwsh\",\n \"curl\",\n \"wget\",\n \"cp\",\n \"mv\",\n \"touch\",\n \"echo\",\n \"base64\",\n \"launchctl\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},"id":"3e3d15c6-1509-479a-b125-21718372157e:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3ecbdc9e-e4f2-43fa-8cca-63802125e582:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3ecbdc9e-e4f2-43fa-8cca-63802125e582:101.0.0.json new file mode 100644 index 0000000000000..80de43665df48 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3ecbdc9e-e4f2-43fa-8cca-63802125e582:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Privilege Escalation via Named Pipe Impersonation v101.0.0","rule_id":"3ecbdc9e-e4f2-43fa-8cca-63802125e582:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a privilege escalation attempt via named pipe impersonation. An adversary may abuse this technique by utilizing a framework such Metasploit's meterpreter getsystem command.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.ired.team/offensive-security/privilege-escalation/windows-namedpipes-privilege-escalation"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name in (\"Cmd.Exe\", \"PowerShell.EXE\") and\n process.args : \"echo\" and process.args : \">\" and process.args : \"\\\\\\\\.\\\\pipe\\\\*\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"3ecbdc9e-e4f2-43fa-8cca-63802125e582:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3ecbdc9e-e4f2-43fa-8cca-63802125e582:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3ecbdc9e-e4f2-43fa-8cca-63802125e582:101.0.1.json new file mode 100644 index 0000000000000..18badefb4591e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3ecbdc9e-e4f2-43fa-8cca-63802125e582:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Privilege Escalation via Named Pipe Impersonation v101.0.1","rule_id":"3ecbdc9e-e4f2-43fa-8cca-63802125e582:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a privilege escalation attempt via named pipe impersonation. An adversary may abuse this technique by utilizing a framework such Metasploit's meterpreter getsystem command.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.ired.team/offensive-security/privilege-escalation/windows-namedpipes-privilege-escalation"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name in (\"Cmd.Exe\", \"PowerShell.EXE\") and\n process.args : \"echo\" and process.args : \">\" and process.args : \"\\\\\\\\.\\\\pipe\\\\*\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"3ecbdc9e-e4f2-43fa-8cca-63802125e582:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3ecbdc9e-e4f2-43fa-8cca-63802125e582:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3ecbdc9e-e4f2-43fa-8cca-63802125e582:101.0.2.json new file mode 100644 index 0000000000000..245477dc5a4fb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3ecbdc9e-e4f2-43fa-8cca-63802125e582:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Privilege Escalation via Named Pipe Impersonation v101.0.2","rule_id":"3ecbdc9e-e4f2-43fa-8cca-63802125e582:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a privilege escalation attempt via named pipe impersonation. An adversary may abuse this technique by utilizing a framework such Metasploit's meterpreter getsystem command.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.ired.team/offensive-security/privilege-escalation/windows-namedpipes-privilege-escalation"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name in (\"Cmd.Exe\", \"PowerShell.EXE\") and\n process.args : \"echo\" and process.args : \">\" and process.args : \"\\\\\\\\.\\\\pipe\\\\*\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"3ecbdc9e-e4f2-43fa-8cca-63802125e582:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3ed032b2-45d8-4406-bc79-7ad1eabb2c72:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3ed032b2-45d8-4406-bc79-7ad1eabb2c72:102.0.0.json new file mode 100644 index 0000000000000..e82e57ed394f4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3ed032b2-45d8-4406-bc79-7ad1eabb2c72:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Process Creation CallTrace v102.0.0","rule_id":"3ed032b2-45d8-4406-bc79-7ad1eabb2c72:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a process is created and immediately accessed from an unknown memory code region and by the same parent process. This may indicate a code injection attempt.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Process Creation CallTrace\n\nAttackers may inject code into child processes' memory to hide their actual activity, evade detection mechanisms, and\ndecrease discoverability during forensics. This rule looks for a spawned process by Microsoft Office, scripting, and\ncommand line applications, followed by a process access event for an unknown memory region by the parent process, which\ncan indicate a code injection attempt.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behavior observed by the subject process such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Create a memory dump of the child process for analysis.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n [process where event.code == \"1\" and\n /* sysmon process creation */\n process.parent.name : (\"winword.exe\", \"excel.exe\", \"outlook.exe\", \"powerpnt.exe\", \"eqnedt32.exe\", \"fltldr.exe\",\n \"mspub.exe\", \"msaccess.exe\",\"cscript.exe\", \"wscript.exe\", \"rundll32.exe\", \"regsvr32.exe\",\n \"mshta.exe\", \"wmic.exe\", \"cmstp.exe\", \"msxsl.exe\") and\n\n /* noisy FP patterns */\n not (process.parent.name : \"EXCEL.EXE\" and process.executable : \"?:\\\\Program Files\\\\Microsoft Office\\\\root\\\\Office*\\\\ADDINS\\\\*.exe\") and\n not (process.executable : \"?:\\\\Windows\\\\splwow64.exe\" and process.args in (\"8192\", \"12288\") and process.parent.name : (\"winword.exe\", \"excel.exe\", \"outlook.exe\", \"powerpnt.exe\")) and\n not (process.parent.name : \"rundll32.exe\" and process.parent.args : (\"?:\\\\WINDOWS\\\\Installer\\\\MSI*.tmp,zzzzInvokeManagedCustomActionOutOfProc\", \"--no-sandbox\")) and\n not (process.executable :\n (\"?:\\\\Program Files (x86)\\\\Microsoft\\\\EdgeWebView\\\\Application\\\\*\\\\msedgewebview2.exe\",\n \"?:\\\\Program Files\\\\Adobe\\\\Acrobat DC\\\\Acrobat\\\\Acrobat.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\DWWIN.EXE\") and\n process.parent.name : (\"winword.exe\", \"excel.exe\", \"outlook.exe\", \"powerpnt.exe\")) and\n not (process.parent.name : \"regsvr32.exe\" and process.parent.args : (\"?:\\\\Program Files\\\\*\", \"?:\\\\Program Files (x86)\\\\*\"))\n ] by process.parent.entity_id, process.entity_id\n [process where event.code == \"10\" and\n /* Sysmon process access event from unknown module */\n winlog.event_data.CallTrace : \"*UNKNOWN*\"] by process.entity_id, winlog.event_data.TargetProcessGUID\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallTrace","type":"unknown"},{"ecs":false,"name":"winlog.event_data.TargetProcessGUID","type":"unknown"}]},"id":"3ed032b2-45d8-4406-bc79-7ad1eabb2c72:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3ed032b2-45d8-4406-bc79-7ad1eabb2c72:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3ed032b2-45d8-4406-bc79-7ad1eabb2c72:102.0.1.json new file mode 100644 index 0000000000000..b879113677b33 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3ed032b2-45d8-4406-bc79-7ad1eabb2c72:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Process Creation CallTrace v102.0.1","rule_id":"3ed032b2-45d8-4406-bc79-7ad1eabb2c72:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a process is created and immediately accessed from an unknown memory code region and by the same parent process. This may indicate a code injection attempt.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Process Creation CallTrace\n\nAttackers may inject code into child processes' memory to hide their actual activity, evade detection mechanisms, and\ndecrease discoverability during forensics. This rule looks for a spawned process by Microsoft Office, scripting, and\ncommand line applications, followed by a process access event for an unknown memory region by the parent process, which\ncan indicate a code injection attempt.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behavior observed by the subject process such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Create a memory dump of the child process for analysis.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n [process where event.code == \"1\" and\n /* sysmon process creation */\n process.parent.name : (\"winword.exe\", \"excel.exe\", \"outlook.exe\", \"powerpnt.exe\", \"eqnedt32.exe\", \"fltldr.exe\",\n \"mspub.exe\", \"msaccess.exe\",\"cscript.exe\", \"wscript.exe\", \"rundll32.exe\", \"regsvr32.exe\",\n \"mshta.exe\", \"wmic.exe\", \"cmstp.exe\", \"msxsl.exe\") and\n\n /* noisy FP patterns */\n not (process.parent.name : \"EXCEL.EXE\" and process.executable : \"?:\\\\Program Files\\\\Microsoft Office\\\\root\\\\Office*\\\\ADDINS\\\\*.exe\") and\n not (process.executable : \"?:\\\\Windows\\\\splwow64.exe\" and process.args in (\"8192\", \"12288\") and process.parent.name : (\"winword.exe\", \"excel.exe\", \"outlook.exe\", \"powerpnt.exe\")) and\n not (process.parent.name : \"rundll32.exe\" and process.parent.args : (\"?:\\\\WINDOWS\\\\Installer\\\\MSI*.tmp,zzzzInvokeManagedCustomActionOutOfProc\", \"--no-sandbox\")) and\n not (process.executable :\n (\"?:\\\\Program Files (x86)\\\\Microsoft\\\\EdgeWebView\\\\Application\\\\*\\\\msedgewebview2.exe\",\n \"?:\\\\Program Files\\\\Adobe\\\\Acrobat DC\\\\Acrobat\\\\Acrobat.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\DWWIN.EXE\") and\n process.parent.name : (\"winword.exe\", \"excel.exe\", \"outlook.exe\", \"powerpnt.exe\")) and\n not (process.parent.name : \"regsvr32.exe\" and process.parent.args : (\"?:\\\\Program Files\\\\*\", \"?:\\\\Program Files (x86)\\\\*\"))\n ] by process.parent.entity_id, process.entity_id\n [process where event.code == \"10\" and\n /* Sysmon process access event from unknown module */\n winlog.event_data.CallTrace : \"*UNKNOWN*\"] by process.entity_id, winlog.event_data.TargetProcessGUID\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallTrace","type":"unknown"},{"ecs":false,"name":"winlog.event_data.TargetProcessGUID","type":"unknown"}]},"id":"3ed032b2-45d8-4406-bc79-7ad1eabb2c72:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3ed032b2-45d8-4406-bc79-7ad1eabb2c72:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3ed032b2-45d8-4406-bc79-7ad1eabb2c72:102.0.2.json new file mode 100644 index 0000000000000..b1bcd82b60f32 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3ed032b2-45d8-4406-bc79-7ad1eabb2c72:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Process Creation CallTrace v102.0.2","rule_id":"3ed032b2-45d8-4406-bc79-7ad1eabb2c72:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a process is created and immediately accessed from an unknown memory code region and by the same parent process. This may indicate a code injection attempt.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Process Creation CallTrace\n\nAttackers may inject code into child processes' memory to hide their actual activity, evade detection mechanisms, and\ndecrease discoverability during forensics. This rule looks for a spawned process by Microsoft Office, scripting, and\ncommand line applications, followed by a process access event for an unknown memory region by the parent process, which\ncan indicate a code injection attempt.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behavior observed by the subject process such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Create a memory dump of the child process for analysis.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n [process where event.code == \"1\" and\n /* sysmon process creation */\n process.parent.name : (\"winword.exe\", \"excel.exe\", \"outlook.exe\", \"powerpnt.exe\", \"eqnedt32.exe\", \"fltldr.exe\",\n \"mspub.exe\", \"msaccess.exe\",\"cscript.exe\", \"wscript.exe\", \"rundll32.exe\", \"regsvr32.exe\",\n \"mshta.exe\", \"wmic.exe\", \"cmstp.exe\", \"msxsl.exe\") and\n\n /* noisy FP patterns */\n not (process.parent.name : \"EXCEL.EXE\" and process.executable : \"?:\\\\Program Files\\\\Microsoft Office\\\\root\\\\Office*\\\\ADDINS\\\\*.exe\") and\n not (process.executable : \"?:\\\\Windows\\\\splwow64.exe\" and process.args in (\"8192\", \"12288\") and process.parent.name : (\"winword.exe\", \"excel.exe\", \"outlook.exe\", \"powerpnt.exe\")) and\n not (process.parent.name : \"rundll32.exe\" and process.parent.args : (\"?:\\\\WINDOWS\\\\Installer\\\\MSI*.tmp,zzzzInvokeManagedCustomActionOutOfProc\", \"--no-sandbox\")) and\n not (process.executable :\n (\"?:\\\\Program Files (x86)\\\\Microsoft\\\\EdgeWebView\\\\Application\\\\*\\\\msedgewebview2.exe\",\n \"?:\\\\Program Files\\\\Adobe\\\\Acrobat DC\\\\Acrobat\\\\Acrobat.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\DWWIN.EXE\") and\n process.parent.name : (\"winword.exe\", \"excel.exe\", \"outlook.exe\", \"powerpnt.exe\")) and\n not (process.parent.name : \"regsvr32.exe\" and process.parent.args : (\"?:\\\\Program Files\\\\*\", \"?:\\\\Program Files (x86)\\\\*\"))\n ] by process.parent.entity_id, process.entity_id\n [process where event.code == \"10\" and\n /* Sysmon process access event from unknown module */\n winlog.event_data.CallTrace : \"*UNKNOWN*\"] by process.entity_id, winlog.event_data.TargetProcessGUID\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallTrace","type":"unknown"},{"ecs":false,"name":"winlog.event_data.TargetProcessGUID","type":"unknown"}]},"id":"3ed032b2-45d8-4406-bc79-7ad1eabb2c72:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3efee4f0-182a-40a8-a835-102c68a4175d:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3efee4f0-182a-40a8-a835-102c68a4175d:101.0.0.json new file mode 100644 index 0000000000000..80b6bdb6dbb55 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3efee4f0-182a-40a8-a835-102c68a4175d:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Password Spraying of Microsoft 365 User Accounts v101.0.0","rule_id":"3efee4f0-182a-40a8-a835-102c68a4175d:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number (25) of failed Microsoft 365 user authentication attempts from a single IP address within 30 minutes, which could be indicative of a password spraying attack. An adversary may attempt a password spraying attack to obtain unauthorized access to user accounts.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic"],"false_positives":["Automated processes that attempt to authenticate using expired credentials and unbounded retries may lead to false positives."],"from":"now-30m","tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:o365.audit and event.provider:(Exchange or AzureActiveDirectory) and event.category:authentication and\nevent.action:(\"UserLoginFailed\" or \"PasswordLogonInitialAuthUsingPassword\")\n","threshold":{"field":["source.ip"],"value":25},"type":"threshold","index":["filebeat-*","logs-o365*"],"language":"kuery","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"3efee4f0-182a-40a8-a835-102c68a4175d:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3efee4f0-182a-40a8-a835-102c68a4175d:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3efee4f0-182a-40a8-a835-102c68a4175d:101.0.1.json new file mode 100644 index 0000000000000..fc47b082249e3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3efee4f0-182a-40a8-a835-102c68a4175d:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Password Spraying of Microsoft 365 User Accounts v101.0.1","rule_id":"3efee4f0-182a-40a8-a835-102c68a4175d:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number (25) of failed Microsoft 365 user authentication attempts from a single IP address within 30 minutes, which could be indicative of a password spraying attack. An adversary may attempt a password spraying attack to obtain unauthorized access to user accounts.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic"],"false_positives":["Automated processes that attempt to authenticate using expired credentials and unbounded retries may lead to false positives."],"from":"now-30m","tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:o365.audit and event.provider:(Exchange or AzureActiveDirectory) and event.category:authentication and\nevent.action:(\"UserLoginFailed\" or \"PasswordLogonInitialAuthUsingPassword\")\n","threshold":{"field":["source.ip"],"value":25},"type":"threshold","index":["filebeat-*","logs-o365*"],"language":"kuery","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"3efee4f0-182a-40a8-a835-102c68a4175d:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3efee4f0-182a-40a8-a835-102c68a4175d:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3efee4f0-182a-40a8-a835-102c68a4175d:101.0.2.json new file mode 100644 index 0000000000000..b9934d29d2e34 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3efee4f0-182a-40a8-a835-102c68a4175d:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Password Spraying of Microsoft 365 User Accounts v101.0.2","rule_id":"3efee4f0-182a-40a8-a835-102c68a4175d:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number (25) of failed Microsoft 365 user authentication attempts from a single IP address within 30 minutes, which could be indicative of a password spraying attack. An adversary may attempt a password spraying attack to obtain unauthorized access to user accounts.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic"],"false_positives":["Automated processes that attempt to authenticate using expired credentials and unbounded retries may lead to false positives."],"from":"now-30m","tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:o365.audit and event.provider:(Exchange or AzureActiveDirectory) and event.category:authentication and\nevent.action:(\"UserLoginFailed\" or \"PasswordLogonInitialAuthUsingPassword\")\n","threshold":{"field":["source.ip"],"value":25},"type":"threshold","index":["filebeat-*","logs-o365*"],"language":"kuery","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"3efee4f0-182a-40a8-a835-102c68a4175d:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3f0e5410-a4bf-4e8c-bcfc-79d67a285c54:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3f0e5410-a4bf-4e8c-bcfc-79d67a285c54:101.0.0.json new file mode 100644 index 0000000000000..8e33c35e1a84f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3f0e5410-a4bf-4e8c-bcfc-79d67a285c54:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"CyberArk Privileged Access Security Error v101.0.0","rule_id":"3f0e5410-a4bf-4e8c-bcfc-79d67a285c54:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the occurrence of a CyberArk Privileged Access Security (PAS) error level audit event. The event.code correlates to the CyberArk Vault Audit Action Code.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\nThis is a promotion rule for CyberArk error events, which are alertable events per the vendor.\nConsult vendor documentation on interpreting specific events.","rule_name_override":"event.action","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["To tune this rule, add exceptions to exclude any event.code which should not trigger this rule."],"from":"now-30m","references":["https://docs.cyberark.com/Product-Doc/OnlineHelp/PAS/Latest/en/Content/PASREF/Vault%20Audit%20Action%20Codes.htm?tocpath=Administration%7CReferences%7C_____3"],"tags":["Elastic","cyberarkpas","SecOps","Log Auditing","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-cyberarkpas.audit*"],"language":"kuery","query":"event.dataset:cyberarkpas.audit and event.type:error\n","related_integrations":[{"package":"cyberarkpas","version":"^2.2.0"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"}],"setup":"The CyberArk Privileged Access Security (PAS) Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"3f0e5410-a4bf-4e8c-bcfc-79d67a285c54:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3f0e5410-a4bf-4e8c-bcfc-79d67a285c54:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3f0e5410-a4bf-4e8c-bcfc-79d67a285c54:101.0.1.json new file mode 100644 index 0000000000000..afc5867be2af0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3f0e5410-a4bf-4e8c-bcfc-79d67a285c54:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"CyberArk Privileged Access Security Error v101.0.1","rule_id":"3f0e5410-a4bf-4e8c-bcfc-79d67a285c54:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the occurrence of a CyberArk Privileged Access Security (PAS) error level audit event. The event.code correlates to the CyberArk Vault Audit Action Code.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\nThis is a promotion rule for CyberArk error events, which are alertable events per the vendor.\nConsult vendor documentation on interpreting specific events.","rule_name_override":"event.action","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["To tune this rule, add exceptions to exclude any event.code which should not trigger this rule."],"from":"now-30m","references":["https://docs.cyberark.com/Product-Doc/OnlineHelp/PAS/Latest/en/Content/PASREF/Vault%20Audit%20Action%20Codes.htm?tocpath=Administration%7CReferences%7C_____3"],"tags":["Elastic","cyberarkpas","SecOps","Log Auditing","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-cyberarkpas.audit*"],"language":"kuery","query":"event.dataset:cyberarkpas.audit and event.type:error\n","related_integrations":[{"package":"cyberarkpas","version":"^2.2.0"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"}],"setup":"The CyberArk Privileged Access Security (PAS) Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"3f0e5410-a4bf-4e8c-bcfc-79d67a285c54:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3f0e5410-a4bf-4e8c-bcfc-79d67a285c54:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3f0e5410-a4bf-4e8c-bcfc-79d67a285c54:101.0.2.json new file mode 100644 index 0000000000000..49925f3f33bc4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3f0e5410-a4bf-4e8c-bcfc-79d67a285c54:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"CyberArk Privileged Access Security Error v101.0.2","rule_id":"3f0e5410-a4bf-4e8c-bcfc-79d67a285c54:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the occurrence of a CyberArk Privileged Access Security (PAS) error level audit event. The event.code correlates to the CyberArk Vault Audit Action Code.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\nThis is a promotion rule for CyberArk error events, which are alertable events per the vendor.\nConsult vendor documentation on interpreting specific events.","rule_name_override":"event.action","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["To tune this rule, add exceptions to exclude any event.code which should not trigger this rule."],"from":"now-30m","references":["https://docs.cyberark.com/Product-Doc/OnlineHelp/PAS/Latest/en/Content/PASREF/Vault%20Audit%20Action%20Codes.htm?tocpath=Administration%7CReferences%7C_____3"],"tags":["Elastic","cyberarkpas","SecOps","Log Auditing","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-cyberarkpas.audit*"],"language":"kuery","query":"event.dataset:cyberarkpas.audit and event.type:error\n","related_integrations":[{"package":"cyberarkpas","version":"^2.2.0"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"}],"setup":"The CyberArk Privileged Access Security (PAS) Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"3f0e5410-a4bf-4e8c-bcfc-79d67a285c54:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3f3f9fe2-d095-11ec-95dc-f661ea17fbce:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3f3f9fe2-d095-11ec-95dc-f661ea17fbce:101.0.0.json new file mode 100644 index 0000000000000..1a1f8ff21ffb2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3f3f9fe2-d095-11ec-95dc-f661ea17fbce:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Binary Executed from Shared Memory Directory v101.0.0","rule_id":"3f3f9fe2-d095-11ec-95dc-f661ea17fbce:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a binary by root in Linux shared memory directories: (/dev/shm/, /run/shm/, /var/run/, /var/lock/). This activity is to be considered highly abnormal and should be investigated. Threat actors have placed executables used for persistence on high-uptime servers in these directories as system backdoors.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Directories /dev/shm and /run/shm are temporary file storage directories in Linux. They are intended to appear as a mounted file system, but uses virtual memory instead of a persistent storage device and thus are used for mounting file systems in legitimate purposes."],"from":"now-9m","references":["https://linuxsecurity.com/features/fileless-malware-on-linux","https://twitter.com/GossiTheDog/status/1522964028284411907","https://www.elastic.co/security-labs/a-peek-behind-the-bpfdoor"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","BPFDoor"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n event.action == \"exec\" and user.name == \"root\" and\n process.executable : (\n \"/dev/shm/*\",\n \"/run/shm/*\",\n \"/var/run/*\",\n \"/var/lock/*\"\n ) and\n not process.executable : ( \"/var/run/docker/*\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"3f3f9fe2-d095-11ec-95dc-f661ea17fbce:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3f3f9fe2-d095-11ec-95dc-f661ea17fbce:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3f3f9fe2-d095-11ec-95dc-f661ea17fbce:101.0.1.json new file mode 100644 index 0000000000000..138f5ad35b5e3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3f3f9fe2-d095-11ec-95dc-f661ea17fbce:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Binary Executed from Shared Memory Directory v101.0.1","rule_id":"3f3f9fe2-d095-11ec-95dc-f661ea17fbce:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a binary by root in Linux shared memory directories: (/dev/shm/, /run/shm/, /var/run/, /var/lock/). This activity is to be considered highly abnormal and should be investigated. Threat actors have placed executables used for persistence on high-uptime servers in these directories as system backdoors.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Directories /dev/shm and /run/shm are temporary file storage directories in Linux. They are intended to appear as a mounted file system, but uses virtual memory instead of a persistent storage device and thus are used for mounting file systems in legitimate purposes."],"from":"now-9m","references":["https://linuxsecurity.com/features/fileless-malware-on-linux","https://twitter.com/GossiTheDog/status/1522964028284411907","https://www.elastic.co/security-labs/a-peek-behind-the-bpfdoor"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","BPFDoor"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n event.action == \"exec\" and user.name == \"root\" and\n process.executable : (\n \"/dev/shm/*\",\n \"/run/shm/*\",\n \"/var/run/*\",\n \"/var/lock/*\"\n ) and\n not process.executable : ( \"/var/run/docker/*\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"3f3f9fe2-d095-11ec-95dc-f661ea17fbce:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/3f3f9fe2-d095-11ec-95dc-f661ea17fbce:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/3f3f9fe2-d095-11ec-95dc-f661ea17fbce:101.0.2.json new file mode 100644 index 0000000000000..5b2dfba74a2a5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/3f3f9fe2-d095-11ec-95dc-f661ea17fbce:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Binary Executed from Shared Memory Directory v101.0.2","rule_id":"3f3f9fe2-d095-11ec-95dc-f661ea17fbce:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a binary by root in Linux shared memory directories: (/dev/shm/, /run/shm/, /var/run/, /var/lock/). This activity is to be considered highly abnormal and should be investigated. Threat actors have placed executables used for persistence on high-uptime servers in these directories as system backdoors.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Directories /dev/shm and /run/shm are temporary file storage directories in Linux. They are intended to appear as a mounted file system, but uses virtual memory instead of a persistent storage device and thus are used for mounting file systems in legitimate purposes."],"from":"now-9m","references":["https://linuxsecurity.com/features/fileless-malware-on-linux","https://twitter.com/GossiTheDog/status/1522964028284411907","https://www.elastic.co/security-labs/a-peek-behind-the-bpfdoor"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","BPFDoor"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n event.action == \"exec\" and user.name == \"root\" and\n process.executable : (\n \"/dev/shm/*\",\n \"/run/shm/*\",\n \"/var/run/*\",\n \"/var/lock/*\"\n ) and\n not process.executable : ( \"/var/run/docker/*\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"3f3f9fe2-d095-11ec-95dc-f661ea17fbce:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/403ef0d3-8259-40c9-a5b6-d48354712e49:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/403ef0d3-8259-40c9-a5b6-d48354712e49:100.0.0.json new file mode 100644 index 0000000000000..da0e43c7fe42c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/403ef0d3-8259-40c9-a5b6-d48354712e49:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Persistence via Services Registry v100.0.0","rule_id":"403ef0d3-8259-40c9-a5b6-d48354712e49:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies processes modifying the services registry key directly, instead of through the expected Windows APIs. This could be an indication of an adversary attempting to stealthily persist through abnormal service creation or modification of an existing service.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"registry where registry.path : (\"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Services\\\\*\\\\ServiceDLL\", \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Services\\\\*\\\\ImagePath\") and\n not registry.data.strings : (\"?:\\\\windows\\\\system32\\\\Drivers\\\\*.sys\",\n \"\\\\SystemRoot\\\\System32\\\\drivers\\\\*.sys\",\n \"\\\\??\\\\?:\\\\Windows\\\\system32\\\\Drivers\\\\*.SYS\",\n \"system32\\\\DRIVERS\\\\USBSTOR\") and\n not (process.name : \"procexp??.exe\" and registry.data.strings : \"?:\\\\*\\\\procexp*.sys\") and\n not process.executable : (\"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Windows\\\\winsxs\\\\*\\\\TiWorker.exe\",\n \"?:\\\\Windows\\\\System32\\\\drvinst.exe\",\n \"?:\\\\Windows\\\\System32\\\\services.exe\",\n \"?:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\System32\\\\regsvr32.exe\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"403ef0d3-8259-40c9-a5b6-d48354712e49:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/403ef0d3-8259-40c9-a5b6-d48354712e49:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/403ef0d3-8259-40c9-a5b6-d48354712e49:100.0.1.json new file mode 100644 index 0000000000000..123113bf6e93a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/403ef0d3-8259-40c9-a5b6-d48354712e49:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Persistence via Services Registry v100.0.1","rule_id":"403ef0d3-8259-40c9-a5b6-d48354712e49:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies processes modifying the services registry key directly, instead of through the expected Windows APIs. This could be an indication of an adversary attempting to stealthily persist through abnormal service creation or modification of an existing service.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"registry where registry.path : (\"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Services\\\\*\\\\ServiceDLL\", \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Services\\\\*\\\\ImagePath\") and\n not registry.data.strings : (\"?:\\\\windows\\\\system32\\\\Drivers\\\\*.sys\",\n \"\\\\SystemRoot\\\\System32\\\\drivers\\\\*.sys\",\n \"\\\\??\\\\?:\\\\Windows\\\\system32\\\\Drivers\\\\*.SYS\",\n \"system32\\\\DRIVERS\\\\USBSTOR\") and\n not (process.name : \"procexp??.exe\" and registry.data.strings : \"?:\\\\*\\\\procexp*.sys\") and\n not process.executable : (\"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Windows\\\\winsxs\\\\*\\\\TiWorker.exe\",\n \"?:\\\\Windows\\\\System32\\\\drvinst.exe\",\n \"?:\\\\Windows\\\\System32\\\\services.exe\",\n \"?:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\System32\\\\regsvr32.exe\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"403ef0d3-8259-40c9-a5b6-d48354712e49:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/403ef0d3-8259-40c9-a5b6-d48354712e49:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/403ef0d3-8259-40c9-a5b6-d48354712e49:100.0.2.json new file mode 100644 index 0000000000000..25da48bd4f4b8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/403ef0d3-8259-40c9-a5b6-d48354712e49:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Persistence via Services Registry v100.0.2","rule_id":"403ef0d3-8259-40c9-a5b6-d48354712e49:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies processes modifying the services registry key directly, instead of through the expected Windows APIs. This could be an indication of an adversary attempting to stealthily persist through abnormal service creation or modification of an existing service.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"registry where registry.path : (\"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Services\\\\*\\\\ServiceDLL\", \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Services\\\\*\\\\ImagePath\") and\n not registry.data.strings : (\"?:\\\\windows\\\\system32\\\\Drivers\\\\*.sys\",\n \"\\\\SystemRoot\\\\System32\\\\drivers\\\\*.sys\",\n \"\\\\??\\\\?:\\\\Windows\\\\system32\\\\Drivers\\\\*.SYS\",\n \"system32\\\\DRIVERS\\\\USBSTOR\") and\n not (process.name : \"procexp??.exe\" and registry.data.strings : \"?:\\\\*\\\\procexp*.sys\") and\n not process.executable : (\"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Windows\\\\winsxs\\\\*\\\\TiWorker.exe\",\n \"?:\\\\Windows\\\\System32\\\\drvinst.exe\",\n \"?:\\\\Windows\\\\System32\\\\services.exe\",\n \"?:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\System32\\\\regsvr32.exe\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"403ef0d3-8259-40c9-a5b6-d48354712e49:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/416697ae-e468-4093-a93d-59661fa619ec:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/416697ae-e468-4093-a93d-59661fa619ec:102.0.0.json new file mode 100644 index 0000000000000..b00e50d8ca838 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/416697ae-e468-4093-a93d-59661fa619ec:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Control Panel Process with Unusual Arguments v102.0.0","rule_id":"416697ae-e468-4093-a93d-59661fa619ec:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual instances of Control Panel with suspicious keywords or paths in the process command line value. Adversaries may abuse control.exe to proxy execution of malicious code.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.joesandbox.com/analysis/476188/1/html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.002","name":"Control Panel","reference":"https://attack.mitre.org/techniques/T1218/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.executable : (\"?:\\\\Windows\\\\SysWOW64\\\\control.exe\", \"?:\\\\Windows\\\\System32\\\\control.exe\") and\n process.command_line :\n (\"*.jpg*\",\n \"*.png*\",\n \"*.gif*\",\n \"*.bmp*\",\n \"*.jpeg*\",\n \"*.TIFF*\",\n \"*.inf*\",\n \"*.cpl:*/*\",\n \"*../../..*\",\n \"*/AppData/Local/*\",\n \"*:\\\\Users\\\\Public\\\\*\",\n \"*\\\\AppData\\\\Local\\\\*\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"416697ae-e468-4093-a93d-59661fa619ec:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/416697ae-e468-4093-a93d-59661fa619ec:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/416697ae-e468-4093-a93d-59661fa619ec:102.0.1.json new file mode 100644 index 0000000000000..3ad74dbe78471 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/416697ae-e468-4093-a93d-59661fa619ec:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Control Panel Process with Unusual Arguments v102.0.1","rule_id":"416697ae-e468-4093-a93d-59661fa619ec:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual instances of Control Panel with suspicious keywords or paths in the process command line value. Adversaries may abuse control.exe to proxy execution of malicious code.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.joesandbox.com/analysis/476188/1/html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.002","name":"Control Panel","reference":"https://attack.mitre.org/techniques/T1218/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.executable : (\"?:\\\\Windows\\\\SysWOW64\\\\control.exe\", \"?:\\\\Windows\\\\System32\\\\control.exe\") and\n process.command_line :\n (\"*.jpg*\",\n \"*.png*\",\n \"*.gif*\",\n \"*.bmp*\",\n \"*.jpeg*\",\n \"*.TIFF*\",\n \"*.inf*\",\n \"*.cpl:*/*\",\n \"*../../..*\",\n \"*/AppData/Local/*\",\n \"*:\\\\Users\\\\Public\\\\*\",\n \"*\\\\AppData\\\\Local\\\\*\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"416697ae-e468-4093-a93d-59661fa619ec:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/416697ae-e468-4093-a93d-59661fa619ec:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/416697ae-e468-4093-a93d-59661fa619ec:102.0.2.json new file mode 100644 index 0000000000000..28caf753134e2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/416697ae-e468-4093-a93d-59661fa619ec:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Control Panel Process with Unusual Arguments v102.0.2","rule_id":"416697ae-e468-4093-a93d-59661fa619ec:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual instances of Control Panel with suspicious keywords or paths in the process command line value. Adversaries may abuse control.exe to proxy execution of malicious code.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.joesandbox.com/analysis/476188/1/html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.002","name":"Control Panel","reference":"https://attack.mitre.org/techniques/T1218/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.executable : (\"?:\\\\Windows\\\\SysWOW64\\\\control.exe\", \"?:\\\\Windows\\\\System32\\\\control.exe\") and\n process.command_line :\n (\"*.jpg*\",\n \"*.png*\",\n \"*.gif*\",\n \"*.bmp*\",\n \"*.jpeg*\",\n \"*.TIFF*\",\n \"*.inf*\",\n \"*.cpl:*/*\",\n \"*../../..*\",\n \"*/AppData/Local/*\",\n \"*:\\\\Users\\\\Public\\\\*\",\n \"*\\\\AppData\\\\Local\\\\*\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"416697ae-e468-4093-a93d-59661fa619ec:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/41824afb-d68c-4d0e-bfee-474dac1fa56e:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/41824afb-d68c-4d0e-bfee-474dac1fa56e:100.0.0.json new file mode 100644 index 0000000000000..04467af97b8f2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/41824afb-d68c-4d0e-bfee-474dac1fa56e:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"EggShell Backdoor Execution v100.0.0","rule_id":"41824afb-d68c-4d0e-bfee-474dac1fa56e:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of and EggShell Backdoor. EggShell is a known post exploitation tool for macOS and Linux.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/neoneggplant/EggShell"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.006","name":"Python","reference":"https://attack.mitre.org/techniques/T1059/006/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:espl and process.args:eyJkZWJ1ZyI6*\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"41824afb-d68c-4d0e-bfee-474dac1fa56e:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/41824afb-d68c-4d0e-bfee-474dac1fa56e:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/41824afb-d68c-4d0e-bfee-474dac1fa56e:100.0.1.json new file mode 100644 index 0000000000000..f401305e9fc86 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/41824afb-d68c-4d0e-bfee-474dac1fa56e:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"EggShell Backdoor Execution v100.0.1","rule_id":"41824afb-d68c-4d0e-bfee-474dac1fa56e:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of and EggShell Backdoor. EggShell is a known post exploitation tool for macOS and Linux.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/neoneggplant/EggShell"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.006","name":"Python","reference":"https://attack.mitre.org/techniques/T1059/006/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:espl and process.args:eyJkZWJ1ZyI6*\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"41824afb-d68c-4d0e-bfee-474dac1fa56e:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/41824afb-d68c-4d0e-bfee-474dac1fa56e:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/41824afb-d68c-4d0e-bfee-474dac1fa56e:100.0.2.json new file mode 100644 index 0000000000000..a4b9f18f4d6d5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/41824afb-d68c-4d0e-bfee-474dac1fa56e:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"EggShell Backdoor Execution v100.0.2","rule_id":"41824afb-d68c-4d0e-bfee-474dac1fa56e:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of and EggShell Backdoor. EggShell is a known post exploitation tool for macOS and Linux.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/neoneggplant/EggShell"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.006","name":"Python","reference":"https://attack.mitre.org/techniques/T1059/006/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:espl and process.args:eyJkZWJ1ZyI6*\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"41824afb-d68c-4d0e-bfee-474dac1fa56e:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/41b638a1-8ab6-4f8e-86d9-466317ef2db5:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/41b638a1-8ab6-4f8e-86d9-466317ef2db5:100.0.0.json new file mode 100644 index 0000000000000..f665e9a952137 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/41b638a1-8ab6-4f8e-86d9-466317ef2db5:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Hidden Local User Account Creation v100.0.0","rule_id":"41b638a1-8ab6-4f8e-86d9-466317ef2db5:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to create a local account that will be hidden from the macOS logon window. This may indicate an attempt to evade user attention while maintaining persistence using a separate local account.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://support.apple.com/en-us/HT203998"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.003","name":"Local Accounts","reference":"https://attack.mitre.org/techniques/T1078/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:dscl and process.args:(IsHidden and create and (true or 1 or yes))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"41b638a1-8ab6-4f8e-86d9-466317ef2db5:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/41b638a1-8ab6-4f8e-86d9-466317ef2db5:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/41b638a1-8ab6-4f8e-86d9-466317ef2db5:100.0.1.json new file mode 100644 index 0000000000000..7404a66049d19 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/41b638a1-8ab6-4f8e-86d9-466317ef2db5:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Hidden Local User Account Creation v100.0.1","rule_id":"41b638a1-8ab6-4f8e-86d9-466317ef2db5:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to create a local account that will be hidden from the macOS logon window. This may indicate an attempt to evade user attention while maintaining persistence using a separate local account.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://support.apple.com/en-us/HT203998"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.003","name":"Local Accounts","reference":"https://attack.mitre.org/techniques/T1078/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:dscl and process.args:(IsHidden and create and (true or 1 or yes))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"41b638a1-8ab6-4f8e-86d9-466317ef2db5:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/41b638a1-8ab6-4f8e-86d9-466317ef2db5:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/41b638a1-8ab6-4f8e-86d9-466317ef2db5:100.0.2.json new file mode 100644 index 0000000000000..9f171a34469c8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/41b638a1-8ab6-4f8e-86d9-466317ef2db5:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Hidden Local User Account Creation v100.0.2","rule_id":"41b638a1-8ab6-4f8e-86d9-466317ef2db5:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to create a local account that will be hidden from the macOS logon window. This may indicate an attempt to evade user attention while maintaining persistence using a separate local account.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://support.apple.com/en-us/HT203998"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.003","name":"Local Accounts","reference":"https://attack.mitre.org/techniques/T1078/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:dscl and process.args:(IsHidden and create and (true or 1 or yes))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"41b638a1-8ab6-4f8e-86d9-466317ef2db5:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/42bf698b-4738-445b-8231-c834ddefd8a0:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/42bf698b-4738-445b-8231-c834ddefd8a0:102.0.0.json new file mode 100644 index 0000000000000..9cf0e9f8e8b7e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/42bf698b-4738-445b-8231-c834ddefd8a0:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Okta Brute Force or Password Spraying Attack v102.0.0","rule_id":"42bf698b-4738-445b-8231-c834ddefd8a0:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number of failed Okta user authentication attempts from a single IP address, which could be indicative of a brute force or password spraying attack. An adversary may attempt a brute force or password spraying attack to obtain unauthorized access to user accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic"],"false_positives":["Automated processes that attempt to authenticate using expired credentials and unbounded retries may lead to false positives."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:okta.system and event.category:authentication and event.outcome:failure\n","threshold":{"field":["source.ip"],"value":25},"type":"threshold","index":["filebeat-*","logs-okta*"],"language":"kuery","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"42bf698b-4738-445b-8231-c834ddefd8a0:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/42bf698b-4738-445b-8231-c834ddefd8a0:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/42bf698b-4738-445b-8231-c834ddefd8a0:102.0.1.json new file mode 100644 index 0000000000000..6b2ed4a9e5a70 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/42bf698b-4738-445b-8231-c834ddefd8a0:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Okta Brute Force or Password Spraying Attack v102.0.1","rule_id":"42bf698b-4738-445b-8231-c834ddefd8a0:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number of failed Okta user authentication attempts from a single IP address, which could be indicative of a brute force or password spraying attack. An adversary may attempt a brute force or password spraying attack to obtain unauthorized access to user accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic"],"false_positives":["Automated processes that attempt to authenticate using expired credentials and unbounded retries may lead to false positives."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:okta.system and event.category:authentication and event.outcome:failure\n","threshold":{"field":["source.ip"],"value":25},"type":"threshold","index":["filebeat-*","logs-okta*"],"language":"kuery","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"42bf698b-4738-445b-8231-c834ddefd8a0:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/42bf698b-4738-445b-8231-c834ddefd8a0:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/42bf698b-4738-445b-8231-c834ddefd8a0:102.0.2.json new file mode 100644 index 0000000000000..695a07516d171 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/42bf698b-4738-445b-8231-c834ddefd8a0:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Okta Brute Force or Password Spraying Attack v102.0.2","rule_id":"42bf698b-4738-445b-8231-c834ddefd8a0:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number of failed Okta user authentication attempts from a single IP address, which could be indicative of a brute force or password spraying attack. An adversary may attempt a brute force or password spraying attack to obtain unauthorized access to user accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic"],"false_positives":["Automated processes that attempt to authenticate using expired credentials and unbounded retries may lead to false positives."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:okta.system and event.category:authentication and event.outcome:failure\n","threshold":{"field":["source.ip"],"value":25},"type":"threshold","index":["filebeat-*","logs-okta*"],"language":"kuery","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"42bf698b-4738-445b-8231-c834ddefd8a0:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/42eeee3d-947f-46d3-a14d-7036b962c266:2.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/42eeee3d-947f-46d3-a14d-7036b962c266:2.0.0.json new file mode 100644 index 0000000000000..f75198636479a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/42eeee3d-947f-46d3-a14d-7036b962c266:2.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Process Creation via Secondary Logon v2.0.0","rule_id":"42eeee3d-947f-46d3-a14d-7036b962c266:2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies process creation with alternate credentials. Adversaries may create a new process with a different token to escalate privileges and bypass access controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic"],"from":"now-9m","references":["https://attack.mitre.org/techniques/T1134/002/"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/","subtechnique":[{"id":"T1134.002","name":"Create Process with Token","reference":"https://attack.mitre.org/techniques/T1134/002/"},{"id":"T1134.003","name":"Make and Impersonate Token","reference":"https://attack.mitre.org/techniques/T1134/003/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n\n[authentication where event.action:\"logged-in\" and\n event.outcome == \"success\" and user.id : (\"S-1-5-21-*\", \"S-1-12-1-*\") and\n\n /* seclogon service */\n process.name == \"svchost.exe\" and \n winlog.event_data.LogonProcessName : \"seclogo*\" and source.ip == \"::1\" ] by winlog.event_data.TargetLogonId\n\n[process where event.type == \"start\"] by winlog.event_data.TargetLogonId\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.id","type":"keyword"},{"ecs":false,"name":"winlog.event_data.LogonProcessName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetLogonId","type":"keyword"}],"setup":"Audit events 4624 and 4688 are needed to trigger this rule.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"42eeee3d-947f-46d3-a14d-7036b962c266:2.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/42eeee3d-947f-46d3-a14d-7036b962c266:2.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/42eeee3d-947f-46d3-a14d-7036b962c266:2.0.1.json new file mode 100644 index 0000000000000..e80ab270ac3bd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/42eeee3d-947f-46d3-a14d-7036b962c266:2.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Process Creation via Secondary Logon v2.0.1","rule_id":"42eeee3d-947f-46d3-a14d-7036b962c266:2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies process creation with alternate credentials. Adversaries may create a new process with a different token to escalate privileges and bypass access controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic"],"from":"now-9m","references":["https://attack.mitre.org/techniques/T1134/002/"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/","subtechnique":[{"id":"T1134.002","name":"Create Process with Token","reference":"https://attack.mitre.org/techniques/T1134/002/"},{"id":"T1134.003","name":"Make and Impersonate Token","reference":"https://attack.mitre.org/techniques/T1134/003/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n\n[authentication where event.action:\"logged-in\" and\n event.outcome == \"success\" and user.id : (\"S-1-5-21-*\", \"S-1-12-1-*\") and\n\n /* seclogon service */\n process.name == \"svchost.exe\" and \n winlog.event_data.LogonProcessName : \"seclogo*\" and source.ip == \"::1\" ] by winlog.event_data.TargetLogonId\n\n[process where event.type == \"start\"] by winlog.event_data.TargetLogonId\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.id","type":"keyword"},{"ecs":false,"name":"winlog.event_data.LogonProcessName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetLogonId","type":"keyword"}],"setup":"Audit events 4624 and 4688 are needed to trigger this rule.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"42eeee3d-947f-46d3-a14d-7036b962c266:2.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/42eeee3d-947f-46d3-a14d-7036b962c266:2.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/42eeee3d-947f-46d3-a14d-7036b962c266:2.0.2.json new file mode 100644 index 0000000000000..364ca7c921c76 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/42eeee3d-947f-46d3-a14d-7036b962c266:2.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Process Creation via Secondary Logon v2.0.2","rule_id":"42eeee3d-947f-46d3-a14d-7036b962c266:2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies process creation with alternate credentials. Adversaries may create a new process with a different token to escalate privileges and bypass access controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic"],"from":"now-9m","references":["https://attack.mitre.org/techniques/T1134/002/"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/","subtechnique":[{"id":"T1134.002","name":"Create Process with Token","reference":"https://attack.mitre.org/techniques/T1134/002/"},{"id":"T1134.003","name":"Make and Impersonate Token","reference":"https://attack.mitre.org/techniques/T1134/003/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n\n[authentication where event.action:\"logged-in\" and\n event.outcome == \"success\" and user.id : (\"S-1-5-21-*\", \"S-1-12-1-*\") and\n\n /* seclogon service */\n process.name == \"svchost.exe\" and \n winlog.event_data.LogonProcessName : \"seclogo*\" and source.ip == \"::1\" ] by winlog.event_data.TargetLogonId\n\n[process where event.type == \"start\"] by winlog.event_data.TargetLogonId\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.id","type":"keyword"},{"ecs":false,"name":"winlog.event_data.LogonProcessName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetLogonId","type":"keyword"}],"setup":"Audit events 4624 and 4688 are needed to trigger this rule.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"42eeee3d-947f-46d3-a14d-7036b962c266:2.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4330272b-9724-4bc6-a3ca-f1532b81e5c2:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4330272b-9724-4bc6-a3ca-f1532b81e5c2:100.0.0.json new file mode 100644 index 0000000000000..3aa8c9b872a87 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4330272b-9724-4bc6-a3ca-f1532b81e5c2:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Login Activity v100.0.0","rule_id":"4330272b-9724-4bc6-a3ca-f1532b81e5c2:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an unusually high number of authentication attempts.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Security audits may trigger this alert. Conditions that generate bursts of failed logins, such as misconfigured applications or account lockouts could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"anomaly_threshold":50,"machine_learning_job_id":"suspicious_login_activity","type":"machine_learning"},"id":"4330272b-9724-4bc6-a3ca-f1532b81e5c2:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4330272b-9724-4bc6-a3ca-f1532b81e5c2:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4330272b-9724-4bc6-a3ca-f1532b81e5c2:100.0.1.json new file mode 100644 index 0000000000000..e141861ff694f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4330272b-9724-4bc6-a3ca-f1532b81e5c2:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Login Activity v100.0.1","rule_id":"4330272b-9724-4bc6-a3ca-f1532b81e5c2:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an unusually high number of authentication attempts.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Security audits may trigger this alert. Conditions that generate bursts of failed logins, such as misconfigured applications or account lockouts could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"anomaly_threshold":50,"machine_learning_job_id":"suspicious_login_activity","type":"machine_learning"},"id":"4330272b-9724-4bc6-a3ca-f1532b81e5c2:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4330272b-9724-4bc6-a3ca-f1532b81e5c2:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4330272b-9724-4bc6-a3ca-f1532b81e5c2:100.0.2.json new file mode 100644 index 0000000000000..4212108d3a80c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4330272b-9724-4bc6-a3ca-f1532b81e5c2:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Login Activity v100.0.2","rule_id":"4330272b-9724-4bc6-a3ca-f1532b81e5c2:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an unusually high number of authentication attempts.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Security audits may trigger this alert. Conditions that generate bursts of failed logins, such as misconfigured applications or account lockouts could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"anomaly_threshold":50,"machine_learning_job_id":"suspicious_login_activity","type":"machine_learning"},"id":"4330272b-9724-4bc6-a3ca-f1532b81e5c2:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/43303fd4-4839-4e48-b2b2-803ab060758d:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/43303fd4-4839-4e48-b2b2-803ab060758d:100.0.0.json new file mode 100644 index 0000000000000..4c321e7d4c848 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/43303fd4-4839-4e48-b2b2-803ab060758d:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Web Application Suspicious Activity: No User Agent v100.0.0","rule_id":"43303fd4-4839-4e48-b2b2-803ab060758d:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A request to a web application server contained no identifying user agent string.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some normal applications and scripts may contain no user agent. Most legitimate web requests from the Internet contain a user agent string. Requests from web browsers almost always contain a user agent string. If the source is unexpected, the user unauthorized, or the request unusual, these may indicate suspicious or malicious activity."],"references":["https://en.wikipedia.org/wiki/User_agent"],"tags":["Elastic","APM"],"type":"query","filters":[{"$state":{"store":"appState"},"exists":{"field":"user_agent.original"},"meta":{"disabled":false,"indexRefName":"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index","key":"user_agent.original","negate":true,"type":"exists","value":"exists"}}],"index":["apm-*-transaction*","traces-apm*"],"language":"kuery","query":"url.path:*\n","required_fields":[{"ecs":true,"name":"url.path","type":"wildcard"}]},"id":"43303fd4-4839-4e48-b2b2-803ab060758d:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/43303fd4-4839-4e48-b2b2-803ab060758d:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/43303fd4-4839-4e48-b2b2-803ab060758d:100.0.1.json new file mode 100644 index 0000000000000..c60efff2ff75a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/43303fd4-4839-4e48-b2b2-803ab060758d:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Web Application Suspicious Activity: No User Agent v100.0.1","rule_id":"43303fd4-4839-4e48-b2b2-803ab060758d:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A request to a web application server contained no identifying user agent string.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some normal applications and scripts may contain no user agent. Most legitimate web requests from the Internet contain a user agent string. Requests from web browsers almost always contain a user agent string. If the source is unexpected, the user unauthorized, or the request unusual, these may indicate suspicious or malicious activity."],"references":["https://en.wikipedia.org/wiki/User_agent"],"tags":["Elastic","APM"],"type":"query","filters":[{"$state":{"store":"appState"},"exists":{"field":"user_agent.original"},"meta":{"disabled":false,"indexRefName":"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index","key":"user_agent.original","negate":true,"type":"exists","value":"exists"}}],"index":["apm-*-transaction*","traces-apm*"],"language":"kuery","query":"url.path:*\n","required_fields":[{"ecs":true,"name":"url.path","type":"wildcard"}]},"id":"43303fd4-4839-4e48-b2b2-803ab060758d:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/43303fd4-4839-4e48-b2b2-803ab060758d:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/43303fd4-4839-4e48-b2b2-803ab060758d:100.0.2.json new file mode 100644 index 0000000000000..85778e6ee8e6d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/43303fd4-4839-4e48-b2b2-803ab060758d:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Web Application Suspicious Activity: No User Agent v100.0.2","rule_id":"43303fd4-4839-4e48-b2b2-803ab060758d:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A request to a web application server contained no identifying user agent string.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some normal applications and scripts may contain no user agent. Most legitimate web requests from the Internet contain a user agent string. Requests from web browsers almost always contain a user agent string. If the source is unexpected, the user unauthorized, or the request unusual, these may indicate suspicious or malicious activity."],"references":["https://en.wikipedia.org/wiki/User_agent"],"tags":["Elastic","APM"],"type":"query","filters":[{"$state":{"store":"appState"},"exists":{"field":"user_agent.original"},"meta":{"disabled":false,"indexRefName":"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index","key":"user_agent.original","negate":true,"type":"exists","value":"exists"}}],"index":["apm-*-transaction*","traces-apm*"],"language":"kuery","query":"url.path:*\n","required_fields":[{"ecs":true,"name":"url.path","type":"wildcard"}]},"id":"43303fd4-4839-4e48-b2b2-803ab060758d:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/440e2db4-bc7f-4c96-a068-65b78da59bde:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/440e2db4-bc7f-4c96-a068-65b78da59bde:102.0.0.json new file mode 100644 index 0000000000000..d1852f1cfdda0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/440e2db4-bc7f-4c96-a068-65b78da59bde:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Startup Persistence by a Suspicious Process v102.0.0","rule_id":"440e2db4-bc7f-4c96-a068-65b78da59bde:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies files written to or modified in the startup folder by commonly abused processes. Adversaries may use this technique to maintain persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Startup Persistence by a Suspicious Process\n\nThe Windows Startup folder is a special folder in Windows. Programs added to this folder are executed during account\nlogon, without user interaction, providing an excellent way for attackers to maintain persistence.\n\nThis rule monitors for commonly abused processes writing to the Startup folder locations.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- Administrators may add programs to this mechanism via command-line shells. Before the further investigation,\nverify that this activity is not benign.\n\n### Related rules\n\n- Suspicious Startup Shell Folder Modification - c8b150f0-0164-475b-a75e-74b47800a9ff\n- Persistent Scripts in the Startup Directory - f7c4dc5a-a58d-491d-9f14-9b66507121c0\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-1"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n user.domain != \"NT AUTHORITY\" and\n file.path : (\"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\\\\*\",\n \"C:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\StartUp\\\\*\") and\n process.name : (\"cmd.exe\",\n \"powershell.exe\",\n \"wmic.exe\",\n \"mshta.exe\",\n \"pwsh.exe\",\n \"cscript.exe\",\n \"wscript.exe\",\n \"regsvr32.exe\",\n \"RegAsm.exe\",\n \"rundll32.exe\",\n \"EQNEDT32.EXE\",\n \"WINWORD.EXE\",\n \"EXCEL.EXE\",\n \"POWERPNT.EXE\",\n \"MSPUB.EXE\",\n \"MSACCESS.EXE\",\n \"iexplore.exe\",\n \"InstallUtil.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"440e2db4-bc7f-4c96-a068-65b78da59bde:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/440e2db4-bc7f-4c96-a068-65b78da59bde:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/440e2db4-bc7f-4c96-a068-65b78da59bde:102.0.1.json new file mode 100644 index 0000000000000..3399e5e3fc42f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/440e2db4-bc7f-4c96-a068-65b78da59bde:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Startup Persistence by a Suspicious Process v102.0.1","rule_id":"440e2db4-bc7f-4c96-a068-65b78da59bde:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies files written to or modified in the startup folder by commonly abused processes. Adversaries may use this technique to maintain persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Startup Persistence by a Suspicious Process\n\nThe Windows Startup folder is a special folder in Windows. Programs added to this folder are executed during account\nlogon, without user interaction, providing an excellent way for attackers to maintain persistence.\n\nThis rule monitors for commonly abused processes writing to the Startup folder locations.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- Administrators may add programs to this mechanism via command-line shells. Before the further investigation,\nverify that this activity is not benign.\n\n### Related rules\n\n- Suspicious Startup Shell Folder Modification - c8b150f0-0164-475b-a75e-74b47800a9ff\n- Persistent Scripts in the Startup Directory - f7c4dc5a-a58d-491d-9f14-9b66507121c0\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-1"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n user.domain != \"NT AUTHORITY\" and\n file.path : (\"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\\\\*\",\n \"C:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\StartUp\\\\*\") and\n process.name : (\"cmd.exe\",\n \"powershell.exe\",\n \"wmic.exe\",\n \"mshta.exe\",\n \"pwsh.exe\",\n \"cscript.exe\",\n \"wscript.exe\",\n \"regsvr32.exe\",\n \"RegAsm.exe\",\n \"rundll32.exe\",\n \"EQNEDT32.EXE\",\n \"WINWORD.EXE\",\n \"EXCEL.EXE\",\n \"POWERPNT.EXE\",\n \"MSPUB.EXE\",\n \"MSACCESS.EXE\",\n \"iexplore.exe\",\n \"InstallUtil.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"440e2db4-bc7f-4c96-a068-65b78da59bde:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/440e2db4-bc7f-4c96-a068-65b78da59bde:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/440e2db4-bc7f-4c96-a068-65b78da59bde:102.0.2.json new file mode 100644 index 0000000000000..2560014a22490 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/440e2db4-bc7f-4c96-a068-65b78da59bde:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Startup Persistence by a Suspicious Process v102.0.2","rule_id":"440e2db4-bc7f-4c96-a068-65b78da59bde:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies files written to or modified in the startup folder by commonly abused processes. Adversaries may use this technique to maintain persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Startup Persistence by a Suspicious Process\n\nThe Windows Startup folder is a special folder in Windows. Programs added to this folder are executed during account\nlogon, without user interaction, providing an excellent way for attackers to maintain persistence.\n\nThis rule monitors for commonly abused processes writing to the Startup folder locations.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- Administrators may add programs to this mechanism via command-line shells. Before the further investigation,\nverify that this activity is not benign.\n\n### Related rules\n\n- Suspicious Startup Shell Folder Modification - c8b150f0-0164-475b-a75e-74b47800a9ff\n- Persistent Scripts in the Startup Directory - f7c4dc5a-a58d-491d-9f14-9b66507121c0\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-1"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n user.domain != \"NT AUTHORITY\" and\n file.path : (\"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\\\\*\",\n \"C:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\StartUp\\\\*\") and\n process.name : (\"cmd.exe\",\n \"powershell.exe\",\n \"wmic.exe\",\n \"mshta.exe\",\n \"pwsh.exe\",\n \"cscript.exe\",\n \"wscript.exe\",\n \"regsvr32.exe\",\n \"RegAsm.exe\",\n \"rundll32.exe\",\n \"EQNEDT32.EXE\",\n \"WINWORD.EXE\",\n \"EXCEL.EXE\",\n \"POWERPNT.EXE\",\n \"MSPUB.EXE\",\n \"MSACCESS.EXE\",\n \"iexplore.exe\",\n \"InstallUtil.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"440e2db4-bc7f-4c96-a068-65b78da59bde:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/445a342e-03fb-42d0-8656-0367eb2dead5:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/445a342e-03fb-42d0-8656-0367eb2dead5:100.0.0.json new file mode 100644 index 0000000000000..79490cfcdacf5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/445a342e-03fb-42d0-8656-0367eb2dead5:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Windows Path Activity v100.0.0","rule_id":"445a342e-03fb-42d0-8656-0367eb2dead5:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies processes started from atypical folders in the file system, which might indicate malware execution or persistence mechanisms. In corporate Windows environments, software installation is centrally managed and it is unusual for programs to be executed from user or temporary directories. Processes executed from these locations can denote that a user downloaded software directly from the Internet or a malicious script or macro executed malware.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A new and unusual program or artifact download in the course of software upgrades, debugging, or troubleshooting could trigger this alert. Users downloading and running programs from unusual locations, such as temporary directories, browser caches, or profile paths could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_path_activity"],"type":"machine_learning"},"id":"445a342e-03fb-42d0-8656-0367eb2dead5:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/445a342e-03fb-42d0-8656-0367eb2dead5:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/445a342e-03fb-42d0-8656-0367eb2dead5:100.0.1.json new file mode 100644 index 0000000000000..96bcc4671b8d1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/445a342e-03fb-42d0-8656-0367eb2dead5:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Windows Path Activity v100.0.1","rule_id":"445a342e-03fb-42d0-8656-0367eb2dead5:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies processes started from atypical folders in the file system, which might indicate malware execution or persistence mechanisms. In corporate Windows environments, software installation is centrally managed and it is unusual for programs to be executed from user or temporary directories. Processes executed from these locations can denote that a user downloaded software directly from the Internet or a malicious script or macro executed malware.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A new and unusual program or artifact download in the course of software upgrades, debugging, or troubleshooting could trigger this alert. Users downloading and running programs from unusual locations, such as temporary directories, browser caches, or profile paths could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_path_activity"],"type":"machine_learning"},"id":"445a342e-03fb-42d0-8656-0367eb2dead5:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/445a342e-03fb-42d0-8656-0367eb2dead5:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/445a342e-03fb-42d0-8656-0367eb2dead5:100.0.2.json new file mode 100644 index 0000000000000..4f7af5adb4f37 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/445a342e-03fb-42d0-8656-0367eb2dead5:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Windows Path Activity v100.0.2","rule_id":"445a342e-03fb-42d0-8656-0367eb2dead5:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies processes started from atypical folders in the file system, which might indicate malware execution or persistence mechanisms. In corporate Windows environments, software installation is centrally managed and it is unusual for programs to be executed from user or temporary directories. Processes executed from these locations can denote that a user downloaded software directly from the Internet or a malicious script or macro executed malware.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A new and unusual program or artifact download in the course of software upgrades, debugging, or troubleshooting could trigger this alert. Users downloading and running programs from unusual locations, such as temporary directories, browser caches, or profile paths could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_path_activity"],"type":"machine_learning"},"id":"445a342e-03fb-42d0-8656-0367eb2dead5:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/44fc462c-1159-4fa8-b1b7-9b6296ab4f96:2.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/44fc462c-1159-4fa8-b1b7-9b6296ab4f96:2.0.0.json new file mode 100644 index 0000000000000..4ca514b0e50d6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/44fc462c-1159-4fa8-b1b7-9b6296ab4f96:2.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Multiple Vault Web Credentials Read v2.0.0","rule_id":"44fc462c-1159-4fa8-b1b7-9b6296ab4f96:2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Windows Credential Manager allows you to create, view, or delete saved credentials for signing into websites, connected applications, and networks. An adversary may abuse this to list or dump credentials stored in the Credential Manager for saved usernames and passwords. This may also be performed in preparation of lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic"],"from":"now-9m","references":["https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=5382","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.004","name":"Windows Credential Manager","reference":"https://attack.mitre.org/techniques/T1555/004/"}]}]}],"language":"eql","query":"sequence by host.id, winlog.process.pid with maxspan=1s\n\n /* 2 consecutive vault reads from same pid for web creds */\n\n [any where event.code : \"5382\" and\n (winlog.event_data.SchemaFriendlyName : \"Windows Web Password Credential\" or winlog.event_data.Resource : \"http*\") and\n not winlog.event_data.SubjectLogonId : \"0x3e7\"]\n\n [any where event.code : \"5382\" and\n (winlog.event_data.SchemaFriendlyName : \"Windows Web Password Credential\" or winlog.event_data.Resource : \"http*\") and\n not winlog.event_data.SubjectLogonId : \"0x3e7\"]\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":false,"name":"winlog.event_data.Resource","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SchemaFriendlyName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.process.pid","type":"long"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"44fc462c-1159-4fa8-b1b7-9b6296ab4f96:2.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/44fc462c-1159-4fa8-b1b7-9b6296ab4f96:2.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/44fc462c-1159-4fa8-b1b7-9b6296ab4f96:2.0.1.json new file mode 100644 index 0000000000000..594b27a443047 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/44fc462c-1159-4fa8-b1b7-9b6296ab4f96:2.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Multiple Vault Web Credentials Read v2.0.1","rule_id":"44fc462c-1159-4fa8-b1b7-9b6296ab4f96:2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Windows Credential Manager allows you to create, view, or delete saved credentials for signing into websites, connected applications, and networks. An adversary may abuse this to list or dump credentials stored in the Credential Manager for saved usernames and passwords. This may also be performed in preparation of lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic"],"from":"now-9m","references":["https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=5382","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.004","name":"Windows Credential Manager","reference":"https://attack.mitre.org/techniques/T1555/004/"}]}]}],"language":"eql","query":"sequence by host.id, winlog.process.pid with maxspan=1s\n\n /* 2 consecutive vault reads from same pid for web creds */\n\n [any where event.code : \"5382\" and\n (winlog.event_data.SchemaFriendlyName : \"Windows Web Password Credential\" or winlog.event_data.Resource : \"http*\") and\n not winlog.event_data.SubjectLogonId : \"0x3e7\"]\n\n [any where event.code : \"5382\" and\n (winlog.event_data.SchemaFriendlyName : \"Windows Web Password Credential\" or winlog.event_data.Resource : \"http*\") and\n not winlog.event_data.SubjectLogonId : \"0x3e7\"]\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":false,"name":"winlog.event_data.Resource","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SchemaFriendlyName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.process.pid","type":"long"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"44fc462c-1159-4fa8-b1b7-9b6296ab4f96:2.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/44fc462c-1159-4fa8-b1b7-9b6296ab4f96:2.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/44fc462c-1159-4fa8-b1b7-9b6296ab4f96:2.0.2.json new file mode 100644 index 0000000000000..6dd083114f21d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/44fc462c-1159-4fa8-b1b7-9b6296ab4f96:2.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Multiple Vault Web Credentials Read v2.0.2","rule_id":"44fc462c-1159-4fa8-b1b7-9b6296ab4f96:2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Windows Credential Manager allows you to create, view, or delete saved credentials for signing into websites, connected applications, and networks. An adversary may abuse this to list or dump credentials stored in the Credential Manager for saved usernames and passwords. This may also be performed in preparation of lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic"],"from":"now-9m","references":["https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=5382","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.004","name":"Windows Credential Manager","reference":"https://attack.mitre.org/techniques/T1555/004/"}]}]}],"language":"eql","query":"sequence by host.id, winlog.process.pid with maxspan=1s\n\n /* 2 consecutive vault reads from same pid for web creds */\n\n [any where event.code : \"5382\" and\n (winlog.event_data.SchemaFriendlyName : \"Windows Web Password Credential\" or winlog.event_data.Resource : \"http*\") and\n not winlog.event_data.SubjectLogonId : \"0x3e7\"]\n\n [any where event.code : \"5382\" and\n (winlog.event_data.SchemaFriendlyName : \"Windows Web Password Credential\" or winlog.event_data.Resource : \"http*\") and\n not winlog.event_data.SubjectLogonId : \"0x3e7\"]\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":false,"name":"winlog.event_data.Resource","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SchemaFriendlyName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.process.pid","type":"long"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"44fc462c-1159-4fa8-b1b7-9b6296ab4f96:2.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/453f659e-0429-40b1-bfdb-b6957286e04b:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/453f659e-0429-40b1-bfdb-b6957286e04b:100.0.0.json new file mode 100644 index 0000000000000..a25201d482abe --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/453f659e-0429-40b1-bfdb-b6957286e04b:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Permission Theft - Prevented - Elastic Endgame v100.0.0","rule_id":"453f659e-0429-40b1-bfdb-b6957286e04b:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented Permission Theft. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:token_protection_event or endgame.event_subtype_full:token_protection_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"453f659e-0429-40b1-bfdb-b6957286e04b:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/453f659e-0429-40b1-bfdb-b6957286e04b:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/453f659e-0429-40b1-bfdb-b6957286e04b:100.0.1.json new file mode 100644 index 0000000000000..d18a2f5d565cb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/453f659e-0429-40b1-bfdb-b6957286e04b:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Permission Theft - Prevented - Elastic Endgame v100.0.1","rule_id":"453f659e-0429-40b1-bfdb-b6957286e04b:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented Permission Theft. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:token_protection_event or endgame.event_subtype_full:token_protection_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"453f659e-0429-40b1-bfdb-b6957286e04b:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/453f659e-0429-40b1-bfdb-b6957286e04b:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/453f659e-0429-40b1-bfdb-b6957286e04b:100.0.2.json new file mode 100644 index 0000000000000..2e8b6e578de1f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/453f659e-0429-40b1-bfdb-b6957286e04b:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Permission Theft - Prevented - Elastic Endgame v100.0.2","rule_id":"453f659e-0429-40b1-bfdb-b6957286e04b:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented Permission Theft. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:token_protection_event or endgame.event_subtype_full:token_protection_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"453f659e-0429-40b1-bfdb-b6957286e04b:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/45ac4800-840f-414c-b221-53dd36a5aaf7:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/45ac4800-840f-414c-b221-53dd36a5aaf7:102.0.0.json new file mode 100644 index 0000000000000..9c479ffb2dfbe --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/45ac4800-840f-414c-b221-53dd36a5aaf7:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Windows Event Logs Cleared v102.0.0","rule_id":"45ac4800-840f-414c-b221-53dd36a5aaf7:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to clear Windows event log stores. This is often done by attackers in an attempt to evade detection or destroy forensic evidence on a system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Event Logs Cleared\n\nWindows event logs are a fundamental data source for security monitoring, forensics, and incident response. Adversaries\ncan tamper, clear, and delete this data to break SIEM detections, cover their tracks, and slow down incident response.\n\nThis rule looks for the occurrence of clear actions on the `security` event log.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n - Verify if any other anti-forensics behaviors were observed.\n- Investigate the event logs prior to the action for suspicious behaviors that an attacker may be trying to cover up.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n - This activity is potentially done after the adversary achieves its objectives on the host. Ensure that previous\n actions, if any, are investigated accordingly with their response playbooks.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic","Anabella Cristaldi"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.001","name":"Clear Windows Event Logs","reference":"https://attack.mitre.org/techniques/T1070/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:(\"audit-log-cleared\" or \"Log clear\")\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"}]},"id":"45ac4800-840f-414c-b221-53dd36a5aaf7:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/45ac4800-840f-414c-b221-53dd36a5aaf7:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/45ac4800-840f-414c-b221-53dd36a5aaf7:102.0.1.json new file mode 100644 index 0000000000000..b0ff1f4b86231 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/45ac4800-840f-414c-b221-53dd36a5aaf7:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Windows Event Logs Cleared v102.0.1","rule_id":"45ac4800-840f-414c-b221-53dd36a5aaf7:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to clear Windows event log stores. This is often done by attackers in an attempt to evade detection or destroy forensic evidence on a system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Event Logs Cleared\n\nWindows event logs are a fundamental data source for security monitoring, forensics, and incident response. Adversaries\ncan tamper, clear, and delete this data to break SIEM detections, cover their tracks, and slow down incident response.\n\nThis rule looks for the occurrence of clear actions on the `security` event log.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n - Verify if any other anti-forensics behaviors were observed.\n- Investigate the event logs prior to the action for suspicious behaviors that an attacker may be trying to cover up.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n - This activity is potentially done after the adversary achieves its objectives on the host. Ensure that previous\n actions, if any, are investigated accordingly with their response playbooks.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic","Anabella Cristaldi"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.001","name":"Clear Windows Event Logs","reference":"https://attack.mitre.org/techniques/T1070/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:(\"audit-log-cleared\" or \"Log clear\")\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"}]},"id":"45ac4800-840f-414c-b221-53dd36a5aaf7:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/45ac4800-840f-414c-b221-53dd36a5aaf7:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/45ac4800-840f-414c-b221-53dd36a5aaf7:102.0.2.json new file mode 100644 index 0000000000000..7a6e5dcc380af --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/45ac4800-840f-414c-b221-53dd36a5aaf7:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Windows Event Logs Cleared v102.0.2","rule_id":"45ac4800-840f-414c-b221-53dd36a5aaf7:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to clear Windows event log stores. This is often done by attackers in an attempt to evade detection or destroy forensic evidence on a system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Event Logs Cleared\n\nWindows event logs are a fundamental data source for security monitoring, forensics, and incident response. Adversaries\ncan tamper, clear, and delete this data to break SIEM detections, cover their tracks, and slow down incident response.\n\nThis rule looks for the occurrence of clear actions on the `security` event log.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n - Verify if any other anti-forensics behaviors were observed.\n- Investigate the event logs prior to the action for suspicious behaviors that an attacker may be trying to cover up.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n - This activity is potentially done after the adversary achieves its objectives on the host. Ensure that previous\n actions, if any, are investigated accordingly with their response playbooks.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic","Anabella Cristaldi"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.001","name":"Clear Windows Event Logs","reference":"https://attack.mitre.org/techniques/T1070/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:(\"audit-log-cleared\" or \"Log clear\")\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"}]},"id":"45ac4800-840f-414c-b221-53dd36a5aaf7:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/45d273fb-1dca-457d-9855-bcb302180c21:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/45d273fb-1dca-457d-9855-bcb302180c21:102.0.0.json new file mode 100644 index 0000000000000..14fb8ac38356b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/45d273fb-1dca-457d-9855-bcb302180c21:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Encrypting Files with WinRar or 7z v102.0.0","rule_id":"45d273fb-1dca-457d-9855-bcb302180c21:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of WinRar or 7z to create an encrypted files. Adversaries will often compress and encrypt data in preparation for exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Encrypting Files with WinRar or 7z\n\nAttackers may compress and/or encrypt data collected before exfiltration. Compressing the data can help obfuscate the\ncollected data and minimize the amount of data sent over the network. Encryption can be used to hide information that is\nbeing exfiltrated from detection or make exfiltration less apparent upon inspection by a defender.\n\nThese steps are usually done in preparation for exfiltration, meaning the attack may be in its final stages.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Retrieve the encrypted file.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check if the password used in the encryption was included in the command line.\n- Decrypt the `.rar`/`.zip` and check if the information is sensitive.\n- If the password is not available, and the format is `.zip` or the option used in WinRAR is not the `-hp`, list the\nfile names included in the encrypted file.\n- Investigate if the file was transferred to an attacker-controlled server.\n\n### False positive analysis\n\n- Backup software can use these utilities. Check the `process.parent.executable` and\n`process.parent.command_line` fields to determine what triggered the encryption.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Prioritize cases that involve personally identifiable information (PII) or other classified data.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.welivesecurity.com/2020/12/02/turla-crutch-keeping-back-door-open/"],"tags":["Elastic","Host","Windows","Threat Detection","Collection","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1560","name":"Archive Collected Data","reference":"https://attack.mitre.org/techniques/T1560/","subtechnique":[{"id":"T1560.001","name":"Archive via Utility","reference":"https://attack.mitre.org/techniques/T1560/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n ((process.name:\"rar.exe\" or process.code_signature.subject_name == \"win.rar GmbH\" or\n process.pe.original_file_name == \"Command line RAR\") and\n process.args == \"a\" and process.args : (\"-hp*\", \"-p*\", \"-dw\", \"-tb\", \"-ta\", \"/hp*\", \"/p*\", \"/dw\", \"/tb\", \"/ta\"))\n\n or\n (process.pe.original_file_name in (\"7z.exe\", \"7za.exe\") and\n process.args == \"a\" and process.args : (\"-p*\", \"-sdel\"))\n\n /* uncomment if noisy for backup software related FPs */\n /* not process.parent.executable : (\"C:\\\\Program Files\\\\*.exe\", \"C:\\\\Program Files (x86)\\\\*.exe\") */\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.code_signature.subject_name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"45d273fb-1dca-457d-9855-bcb302180c21:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/45d273fb-1dca-457d-9855-bcb302180c21:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/45d273fb-1dca-457d-9855-bcb302180c21:102.0.1.json new file mode 100644 index 0000000000000..8a31861287bed --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/45d273fb-1dca-457d-9855-bcb302180c21:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Encrypting Files with WinRar or 7z v102.0.1","rule_id":"45d273fb-1dca-457d-9855-bcb302180c21:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of WinRar or 7z to create an encrypted files. Adversaries will often compress and encrypt data in preparation for exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Encrypting Files with WinRar or 7z\n\nAttackers may compress and/or encrypt data collected before exfiltration. Compressing the data can help obfuscate the\ncollected data and minimize the amount of data sent over the network. Encryption can be used to hide information that is\nbeing exfiltrated from detection or make exfiltration less apparent upon inspection by a defender.\n\nThese steps are usually done in preparation for exfiltration, meaning the attack may be in its final stages.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Retrieve the encrypted file.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check if the password used in the encryption was included in the command line.\n- Decrypt the `.rar`/`.zip` and check if the information is sensitive.\n- If the password is not available, and the format is `.zip` or the option used in WinRAR is not the `-hp`, list the\nfile names included in the encrypted file.\n- Investigate if the file was transferred to an attacker-controlled server.\n\n### False positive analysis\n\n- Backup software can use these utilities. Check the `process.parent.executable` and\n`process.parent.command_line` fields to determine what triggered the encryption.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Prioritize cases that involve personally identifiable information (PII) or other classified data.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.welivesecurity.com/2020/12/02/turla-crutch-keeping-back-door-open/"],"tags":["Elastic","Host","Windows","Threat Detection","Collection","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1560","name":"Archive Collected Data","reference":"https://attack.mitre.org/techniques/T1560/","subtechnique":[{"id":"T1560.001","name":"Archive via Utility","reference":"https://attack.mitre.org/techniques/T1560/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n ((process.name:\"rar.exe\" or process.code_signature.subject_name == \"win.rar GmbH\" or\n process.pe.original_file_name == \"Command line RAR\") and\n process.args == \"a\" and process.args : (\"-hp*\", \"-p*\", \"-dw\", \"-tb\", \"-ta\", \"/hp*\", \"/p*\", \"/dw\", \"/tb\", \"/ta\"))\n\n or\n (process.pe.original_file_name in (\"7z.exe\", \"7za.exe\") and\n process.args == \"a\" and process.args : (\"-p*\", \"-sdel\"))\n\n /* uncomment if noisy for backup software related FPs */\n /* not process.parent.executable : (\"C:\\\\Program Files\\\\*.exe\", \"C:\\\\Program Files (x86)\\\\*.exe\") */\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.code_signature.subject_name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"45d273fb-1dca-457d-9855-bcb302180c21:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/45d273fb-1dca-457d-9855-bcb302180c21:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/45d273fb-1dca-457d-9855-bcb302180c21:102.0.2.json new file mode 100644 index 0000000000000..dd3ff9d0fb46f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/45d273fb-1dca-457d-9855-bcb302180c21:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Encrypting Files with WinRar or 7z v102.0.2","rule_id":"45d273fb-1dca-457d-9855-bcb302180c21:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of WinRar or 7z to create an encrypted files. Adversaries will often compress and encrypt data in preparation for exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Encrypting Files with WinRar or 7z\n\nAttackers may compress and/or encrypt data collected before exfiltration. Compressing the data can help obfuscate the\ncollected data and minimize the amount of data sent over the network. Encryption can be used to hide information that is\nbeing exfiltrated from detection or make exfiltration less apparent upon inspection by a defender.\n\nThese steps are usually done in preparation for exfiltration, meaning the attack may be in its final stages.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Retrieve the encrypted file.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check if the password used in the encryption was included in the command line.\n- Decrypt the `.rar`/`.zip` and check if the information is sensitive.\n- If the password is not available, and the format is `.zip` or the option used in WinRAR is not the `-hp`, list the\nfile names included in the encrypted file.\n- Investigate if the file was transferred to an attacker-controlled server.\n\n### False positive analysis\n\n- Backup software can use these utilities. Check the `process.parent.executable` and\n`process.parent.command_line` fields to determine what triggered the encryption.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Prioritize cases that involve personally identifiable information (PII) or other classified data.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.welivesecurity.com/2020/12/02/turla-crutch-keeping-back-door-open/"],"tags":["Elastic","Host","Windows","Threat Detection","Collection","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1560","name":"Archive Collected Data","reference":"https://attack.mitre.org/techniques/T1560/","subtechnique":[{"id":"T1560.001","name":"Archive via Utility","reference":"https://attack.mitre.org/techniques/T1560/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n ((process.name:\"rar.exe\" or process.code_signature.subject_name == \"win.rar GmbH\" or\n process.pe.original_file_name == \"Command line RAR\") and\n process.args == \"a\" and process.args : (\"-hp*\", \"-p*\", \"-dw\", \"-tb\", \"-ta\", \"/hp*\", \"/p*\", \"/dw\", \"/tb\", \"/ta\"))\n\n or\n (process.pe.original_file_name in (\"7z.exe\", \"7za.exe\") and\n process.args == \"a\" and process.args : (\"-p*\", \"-sdel\"))\n\n /* uncomment if noisy for backup software related FPs */\n /* not process.parent.executable : (\"C:\\\\Program Files\\\\*.exe\", \"C:\\\\Program Files (x86)\\\\*.exe\") */\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.code_signature.subject_name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"45d273fb-1dca-457d-9855-bcb302180c21:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4630d948-40d4-4cef-ac69-4002e29bc3db:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4630d948-40d4-4cef-ac69-4002e29bc3db:102.0.0.json new file mode 100644 index 0000000000000..e9c03af7d40e7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4630d948-40d4-4cef-ac69-4002e29bc3db:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Adding Hidden File Attribute via Attrib v102.0.0","rule_id":"4630d948-40d4-4cef-ac69-4002e29bc3db:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries can add the 'hidden' attribute to files to hide them from the user in an attempt to evade detection.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timeline_id":"e70679c2-6cde-4510-9764-4823df18f7db","timeline_title":"Comprehensive Process Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.001","name":"Hidden Files and Directories","reference":"https://attack.mitre.org/techniques/T1564/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"attrib.exe\" and process.args : \"+h\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"4630d948-40d4-4cef-ac69-4002e29bc3db:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4630d948-40d4-4cef-ac69-4002e29bc3db:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4630d948-40d4-4cef-ac69-4002e29bc3db:102.0.1.json new file mode 100644 index 0000000000000..224a7113f7a42 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4630d948-40d4-4cef-ac69-4002e29bc3db:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Adding Hidden File Attribute via Attrib v102.0.1","rule_id":"4630d948-40d4-4cef-ac69-4002e29bc3db:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries can add the 'hidden' attribute to files to hide them from the user in an attempt to evade detection.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timeline_id":"e70679c2-6cde-4510-9764-4823df18f7db","timeline_title":"Comprehensive Process Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.001","name":"Hidden Files and Directories","reference":"https://attack.mitre.org/techniques/T1564/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"attrib.exe\" and process.args : \"+h\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"4630d948-40d4-4cef-ac69-4002e29bc3db:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4630d948-40d4-4cef-ac69-4002e29bc3db:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4630d948-40d4-4cef-ac69-4002e29bc3db:102.0.2.json new file mode 100644 index 0000000000000..1ad259418beea --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4630d948-40d4-4cef-ac69-4002e29bc3db:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Adding Hidden File Attribute via Attrib v102.0.2","rule_id":"4630d948-40d4-4cef-ac69-4002e29bc3db:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries can add the 'hidden' attribute to files to hide them from the user in an attempt to evade detection.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timeline_id":"e70679c2-6cde-4510-9764-4823df18f7db","timeline_title":"Comprehensive Process Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.001","name":"Hidden Files and Directories","reference":"https://attack.mitre.org/techniques/T1564/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"attrib.exe\" and process.args : \"+h\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"4630d948-40d4-4cef-ac69-4002e29bc3db:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4682fd2c-cfae-47ed-a543-9bed37657aa6:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4682fd2c-cfae-47ed-a543-9bed37657aa6:102.0.0.json new file mode 100644 index 0000000000000..df81ce1bb6685 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4682fd2c-cfae-47ed-a543-9bed37657aa6:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Local NTLM Relay via HTTP v102.0.0","rule_id":"4682fd2c-cfae-47ed-a543-9bed37657aa6:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempt to coerce a local NTLM authentication via HTTP using the Windows Printer Spooler service as a target. An adversary may use this primitive in combination with other techniques to elevate privileges on a compromised system.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/med0x2e/NTLMRelay2Self","https://github.com/topotam/PetitPotam","https://github.com/dirkjanm/krbrelayx/blob/master/printerbug.py"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1212","name":"Exploitation for Credential Access","reference":"https://attack.mitre.org/techniques/T1212/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"rundll32.exe\" and\n\n /* Rundll32 WbeDav Client */\n process.args : (\"?:\\\\Windows\\\\System32\\\\davclnt.dll,DavSetCookie\", \"?:\\\\Windows\\\\SysWOW64\\\\davclnt.dll,DavSetCookie\") and\n\n /* Access to named pipe via http */\n process.args : (\"http*/print/pipe/*\", \"http*/pipe/spoolss\", \"http*/pipe/srvsvc\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"4682fd2c-cfae-47ed-a543-9bed37657aa6:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4682fd2c-cfae-47ed-a543-9bed37657aa6:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4682fd2c-cfae-47ed-a543-9bed37657aa6:102.0.1.json new file mode 100644 index 0000000000000..071143f896a38 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4682fd2c-cfae-47ed-a543-9bed37657aa6:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Local NTLM Relay via HTTP v102.0.1","rule_id":"4682fd2c-cfae-47ed-a543-9bed37657aa6:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempt to coerce a local NTLM authentication via HTTP using the Windows Printer Spooler service as a target. An adversary may use this primitive in combination with other techniques to elevate privileges on a compromised system.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/med0x2e/NTLMRelay2Self","https://github.com/topotam/PetitPotam","https://github.com/dirkjanm/krbrelayx/blob/master/printerbug.py"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1212","name":"Exploitation for Credential Access","reference":"https://attack.mitre.org/techniques/T1212/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"rundll32.exe\" and\n\n /* Rundll32 WbeDav Client */\n process.args : (\"?:\\\\Windows\\\\System32\\\\davclnt.dll,DavSetCookie\", \"?:\\\\Windows\\\\SysWOW64\\\\davclnt.dll,DavSetCookie\") and\n\n /* Access to named pipe via http */\n process.args : (\"http*/print/pipe/*\", \"http*/pipe/spoolss\", \"http*/pipe/srvsvc\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"4682fd2c-cfae-47ed-a543-9bed37657aa6:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4682fd2c-cfae-47ed-a543-9bed37657aa6:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4682fd2c-cfae-47ed-a543-9bed37657aa6:102.0.2.json new file mode 100644 index 0000000000000..3fa610ff01fbd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4682fd2c-cfae-47ed-a543-9bed37657aa6:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Local NTLM Relay via HTTP v102.0.2","rule_id":"4682fd2c-cfae-47ed-a543-9bed37657aa6:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempt to coerce a local NTLM authentication via HTTP using the Windows Printer Spooler service as a target. An adversary may use this primitive in combination with other techniques to elevate privileges on a compromised system.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/med0x2e/NTLMRelay2Self","https://github.com/topotam/PetitPotam","https://github.com/dirkjanm/krbrelayx/blob/master/printerbug.py"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1212","name":"Exploitation for Credential Access","reference":"https://attack.mitre.org/techniques/T1212/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"rundll32.exe\" and\n\n /* Rundll32 WbeDav Client */\n process.args : (\"?:\\\\Windows\\\\System32\\\\davclnt.dll,DavSetCookie\", \"?:\\\\Windows\\\\SysWOW64\\\\davclnt.dll,DavSetCookie\") and\n\n /* Access to named pipe via http */\n process.args : (\"http*/print/pipe/*\", \"http*/pipe/spoolss\", \"http*/pipe/srvsvc\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"4682fd2c-cfae-47ed-a543-9bed37657aa6:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/46f804f5-b289-43d6-a881-9387cf594f75:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/46f804f5-b289-43d6-a881-9387cf594f75:100.0.0.json new file mode 100644 index 0000000000000..7f4abd4a2bfe1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/46f804f5-b289-43d6-a881-9387cf594f75:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Process For a Linux Host v100.0.0","rule_id":"46f804f5-b289-43d6-a881-9387cf594f75:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies rare processes that do not usually run on individual hosts, which can indicate execution of unauthorized services, malware, or persistence mechanisms. Processes are considered rare when they only run occasionally as compared with other processes running on the host.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Linux Process\nDetection alerts from this rule indicate the presence of a Linux process that is rare and unusual for the host it ran on. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is this program part of an expected workflow for the user who ran this program on this host?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Linux","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_rare_process_by_host_linux"],"type":"machine_learning"},"id":"46f804f5-b289-43d6-a881-9387cf594f75:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/46f804f5-b289-43d6-a881-9387cf594f75:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/46f804f5-b289-43d6-a881-9387cf594f75:100.0.1.json new file mode 100644 index 0000000000000..3674cbc992ac5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/46f804f5-b289-43d6-a881-9387cf594f75:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Process For a Linux Host v100.0.1","rule_id":"46f804f5-b289-43d6-a881-9387cf594f75:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies rare processes that do not usually run on individual hosts, which can indicate execution of unauthorized services, malware, or persistence mechanisms. Processes are considered rare when they only run occasionally as compared with other processes running on the host.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Linux Process\nDetection alerts from this rule indicate the presence of a Linux process that is rare and unusual for the host it ran on. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is this program part of an expected workflow for the user who ran this program on this host?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Linux","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_rare_process_by_host_linux"],"type":"machine_learning"},"id":"46f804f5-b289-43d6-a881-9387cf594f75:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/46f804f5-b289-43d6-a881-9387cf594f75:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/46f804f5-b289-43d6-a881-9387cf594f75:100.0.2.json new file mode 100644 index 0000000000000..7a3ffec70a449 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/46f804f5-b289-43d6-a881-9387cf594f75:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Process For a Linux Host v100.0.2","rule_id":"46f804f5-b289-43d6-a881-9387cf594f75:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies rare processes that do not usually run on individual hosts, which can indicate execution of unauthorized services, malware, or persistence mechanisms. Processes are considered rare when they only run occasionally as compared with other processes running on the host.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Linux Process\nDetection alerts from this rule indicate the presence of a Linux process that is rare and unusual for the host it ran on. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is this program part of an expected workflow for the user who ran this program on this host?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Linux","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_rare_process_by_host_linux"],"type":"machine_learning"},"id":"46f804f5-b289-43d6-a881-9387cf594f75:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/47e22836-4a16-4b35-beee-98f6c4ee9bf2:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/47e22836-4a16-4b35-beee-98f6c4ee9bf2:102.0.0.json new file mode 100644 index 0000000000000..9496f4b332713 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/47e22836-4a16-4b35-beee-98f6c4ee9bf2:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Remote Registry Access via SeBackupPrivilege v102.0.0","rule_id":"47e22836-4a16-4b35-beee-98f6c4ee9bf2:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote access to the registry using an account with Backup Operators group membership. This may indicate an attempt to exfiltrate credentials by dumping the Security Account Manager (SAM) registry hive in preparation for credential access and privileges elevation.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Remote Registry Access via SeBackupPrivilege\n\nSeBackupPrivilege is a privilege that allows file content retrieval, designed to enable users to create backup copies of\nthe system. Since it is impossible to make a backup of something you cannot read, this privilege comes at the cost of\nproviding the user with full read access to the file system. This privilege must bypass any access control list (ACL) placed in the system.\n\nThis rule identifies remote access to the registry using an account with Backup Operators group membership. This may\nindicate an attempt to exfiltrate credentials by dumping the Security Account Manager (SAM) registry hive in preparation\nfor credential access and privileges elevation.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate the activities done by the subject user the login session. The field `winlog.event_data.SubjectLogonId`\ncan be used to get this data.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate abnormal behaviors observed by the subject user such as network connections, registry or file\nmodifications, and processes created.\n- Investigate if the registry file was retrieved or exfiltrated.\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, benign true positives (B-TPs) can be added as exceptions\nif necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Limit or disable the involved user account to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-9m","references":["https://github.com/mpgn/BackupOperatorToDA","https://raw.githubusercontent.com/Wh04m1001/Random/main/BackupOperators.cpp","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.002","name":"Security Account Manager","reference":"https://attack.mitre.org/techniques/T1003/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by host.id, winlog.event_data.SubjectLogonId with maxspan=1m\n [iam where event.action == \"logged-in-special\" and\n winlog.event_data.PrivilegeList : \"SeBackupPrivilege\" and\n\n /* excluding accounts with existing privileged access */\n not winlog.event_data.PrivilegeList : \"SeDebugPrivilege\"]\n [any where event.action == \"Detailed File Share\" and winlog.event_data.RelativeTargetName : \"winreg\"]\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":false,"name":"winlog.event_data.PrivilegeList","type":"keyword"},{"ecs":false,"name":"winlog.event_data.RelativeTargetName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"}],"setup":"The 'Audit Detailed File Share' audit policy is required be configured (Success) on Domain Controllers and Sensitive Windows Servers.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nObject Access >\nAudit Detailed File Share (Success)\n```\n\nThe 'Special Logon' audit policy must be configured (Success).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nLogon/Logoff >\nSpecial Logon (Success)\n```"},"id":"47e22836-4a16-4b35-beee-98f6c4ee9bf2:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/47e22836-4a16-4b35-beee-98f6c4ee9bf2:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/47e22836-4a16-4b35-beee-98f6c4ee9bf2:102.0.1.json new file mode 100644 index 0000000000000..ca43111874cda --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/47e22836-4a16-4b35-beee-98f6c4ee9bf2:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Remote Registry Access via SeBackupPrivilege v102.0.1","rule_id":"47e22836-4a16-4b35-beee-98f6c4ee9bf2:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote access to the registry using an account with Backup Operators group membership. This may indicate an attempt to exfiltrate credentials by dumping the Security Account Manager (SAM) registry hive in preparation for credential access and privileges elevation.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Remote Registry Access via SeBackupPrivilege\n\nSeBackupPrivilege is a privilege that allows file content retrieval, designed to enable users to create backup copies of\nthe system. Since it is impossible to make a backup of something you cannot read, this privilege comes at the cost of\nproviding the user with full read access to the file system. This privilege must bypass any access control list (ACL) placed in the system.\n\nThis rule identifies remote access to the registry using an account with Backup Operators group membership. This may\nindicate an attempt to exfiltrate credentials by dumping the Security Account Manager (SAM) registry hive in preparation\nfor credential access and privileges elevation.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate the activities done by the subject user the login session. The field `winlog.event_data.SubjectLogonId`\ncan be used to get this data.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate abnormal behaviors observed by the subject user such as network connections, registry or file\nmodifications, and processes created.\n- Investigate if the registry file was retrieved or exfiltrated.\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, benign true positives (B-TPs) can be added as exceptions\nif necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Limit or disable the involved user account to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-9m","references":["https://github.com/mpgn/BackupOperatorToDA","https://raw.githubusercontent.com/Wh04m1001/Random/main/BackupOperators.cpp","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.002","name":"Security Account Manager","reference":"https://attack.mitre.org/techniques/T1003/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by host.id, winlog.event_data.SubjectLogonId with maxspan=1m\n [iam where event.action == \"logged-in-special\" and\n winlog.event_data.PrivilegeList : \"SeBackupPrivilege\" and\n\n /* excluding accounts with existing privileged access */\n not winlog.event_data.PrivilegeList : \"SeDebugPrivilege\"]\n [any where event.action == \"Detailed File Share\" and winlog.event_data.RelativeTargetName : \"winreg\"]\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":false,"name":"winlog.event_data.PrivilegeList","type":"keyword"},{"ecs":false,"name":"winlog.event_data.RelativeTargetName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"}],"setup":"The 'Audit Detailed File Share' audit policy is required be configured (Success) on Domain Controllers and Sensitive Windows Servers.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nObject Access >\nAudit Detailed File Share (Success)\n```\n\nThe 'Special Logon' audit policy must be configured (Success).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nLogon/Logoff >\nSpecial Logon (Success)\n```"},"id":"47e22836-4a16-4b35-beee-98f6c4ee9bf2:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/47e22836-4a16-4b35-beee-98f6c4ee9bf2:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/47e22836-4a16-4b35-beee-98f6c4ee9bf2:102.0.2.json new file mode 100644 index 0000000000000..37092eb61aa2e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/47e22836-4a16-4b35-beee-98f6c4ee9bf2:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Remote Registry Access via SeBackupPrivilege v102.0.2","rule_id":"47e22836-4a16-4b35-beee-98f6c4ee9bf2:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote access to the registry using an account with Backup Operators group membership. This may indicate an attempt to exfiltrate credentials by dumping the Security Account Manager (SAM) registry hive in preparation for credential access and privileges elevation.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Remote Registry Access via SeBackupPrivilege\n\nSeBackupPrivilege is a privilege that allows file content retrieval, designed to enable users to create backup copies of\nthe system. Since it is impossible to make a backup of something you cannot read, this privilege comes at the cost of\nproviding the user with full read access to the file system. This privilege must bypass any access control list (ACL) placed in the system.\n\nThis rule identifies remote access to the registry using an account with Backup Operators group membership. This may\nindicate an attempt to exfiltrate credentials by dumping the Security Account Manager (SAM) registry hive in preparation\nfor credential access and privileges elevation.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate the activities done by the subject user the login session. The field `winlog.event_data.SubjectLogonId`\ncan be used to get this data.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate abnormal behaviors observed by the subject user such as network connections, registry or file\nmodifications, and processes created.\n- Investigate if the registry file was retrieved or exfiltrated.\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, benign true positives (B-TPs) can be added as exceptions\nif necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Limit or disable the involved user account to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-9m","references":["https://github.com/mpgn/BackupOperatorToDA","https://raw.githubusercontent.com/Wh04m1001/Random/main/BackupOperators.cpp","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.002","name":"Security Account Manager","reference":"https://attack.mitre.org/techniques/T1003/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by host.id, winlog.event_data.SubjectLogonId with maxspan=1m\n [iam where event.action == \"logged-in-special\" and\n winlog.event_data.PrivilegeList : \"SeBackupPrivilege\" and\n\n /* excluding accounts with existing privileged access */\n not winlog.event_data.PrivilegeList : \"SeDebugPrivilege\"]\n [any where event.action == \"Detailed File Share\" and winlog.event_data.RelativeTargetName : \"winreg\"]\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":false,"name":"winlog.event_data.PrivilegeList","type":"keyword"},{"ecs":false,"name":"winlog.event_data.RelativeTargetName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"}],"setup":"The 'Audit Detailed File Share' audit policy is required be configured (Success) on Domain Controllers and Sensitive Windows Servers.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nObject Access >\nAudit Detailed File Share (Success)\n```\n\nThe 'Special Logon' audit policy must be configured (Success).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nLogon/Logoff >\nSpecial Logon (Success)\n```"},"id":"47e22836-4a16-4b35-beee-98f6c4ee9bf2:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/47f76567-d58a-4fed-b32b-21f571e28910:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/47f76567-d58a-4fed-b32b-21f571e28910:100.0.0.json new file mode 100644 index 0000000000000..fa74d0960a452 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/47f76567-d58a-4fed-b32b-21f571e28910:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Apple Script Execution followed by Network Connection v100.0.0","rule_id":"47f76567-d58a-4fed-b32b-21f571e28910:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects execution via the Apple script interpreter (osascript) followed by a network connection from the same process within a short time period. Adversaries may use malicious scripts for execution and command and control.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://developer.apple.com/library/archive/documentation/LanguagesUtilities/Conceptual/MacAutomationScriptingGuide/index.html","https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","macOS","Threat Detection","Command and Control","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.002","name":"AppleScript","reference":"https://attack.mitre.org/techniques/T1059/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan=30s\n [process where event.type == \"start\" and process.name == \"osascript\"]\n [network where event.type != \"end\" and process.name == \"osascript\" and destination.ip != \"::1\" and\n not cidrmatch(destination.ip,\n \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\", \"192.0.0.0/29\", \"192.0.0.8/32\",\n \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\",\n \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\", \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"47f76567-d58a-4fed-b32b-21f571e28910:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/47f76567-d58a-4fed-b32b-21f571e28910:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/47f76567-d58a-4fed-b32b-21f571e28910:100.0.1.json new file mode 100644 index 0000000000000..85d084f4c6162 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/47f76567-d58a-4fed-b32b-21f571e28910:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Apple Script Execution followed by Network Connection v100.0.1","rule_id":"47f76567-d58a-4fed-b32b-21f571e28910:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects execution via the Apple script interpreter (osascript) followed by a network connection from the same process within a short time period. Adversaries may use malicious scripts for execution and command and control.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://developer.apple.com/library/archive/documentation/LanguagesUtilities/Conceptual/MacAutomationScriptingGuide/index.html","https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","macOS","Threat Detection","Command and Control","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.002","name":"AppleScript","reference":"https://attack.mitre.org/techniques/T1059/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan=30s\n [process where event.type == \"start\" and process.name == \"osascript\"]\n [network where event.type != \"end\" and process.name == \"osascript\" and destination.ip != \"::1\" and\n not cidrmatch(destination.ip,\n \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\", \"192.0.0.0/29\", \"192.0.0.8/32\",\n \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\",\n \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\", \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"47f76567-d58a-4fed-b32b-21f571e28910:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/47f76567-d58a-4fed-b32b-21f571e28910:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/47f76567-d58a-4fed-b32b-21f571e28910:100.0.2.json new file mode 100644 index 0000000000000..a96f2185e12bc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/47f76567-d58a-4fed-b32b-21f571e28910:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Apple Script Execution followed by Network Connection v100.0.2","rule_id":"47f76567-d58a-4fed-b32b-21f571e28910:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects execution via the Apple script interpreter (osascript) followed by a network connection from the same process within a short time period. Adversaries may use malicious scripts for execution and command and control.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://developer.apple.com/library/archive/documentation/LanguagesUtilities/Conceptual/MacAutomationScriptingGuide/index.html","https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","macOS","Threat Detection","Command and Control","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.002","name":"AppleScript","reference":"https://attack.mitre.org/techniques/T1059/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan=30s\n [process where event.type == \"start\" and process.name == \"osascript\"]\n [network where event.type != \"end\" and process.name == \"osascript\" and destination.ip != \"::1\" and\n not cidrmatch(destination.ip,\n \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\", \"192.0.0.0/29\", \"192.0.0.8/32\",\n \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\",\n \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\", \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"47f76567-d58a-4fed-b32b-21f571e28910:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/483c4daf-b0c6-49e0-adf3-0bfa93231d6b:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/483c4daf-b0c6-49e0-adf3-0bfa93231d6b:100.0.0.json new file mode 100644 index 0000000000000..144620662e2f0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/483c4daf-b0c6-49e0-adf3-0bfa93231d6b:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft Exchange Server UM Spawning Suspicious Processes v100.0.0","rule_id":"483c4daf-b0c6-49e0-adf3-0bfa93231d6b:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious processes being spawned by the Microsoft Exchange Server Unified Messaging (UM) service. This activity has been observed exploiting CVE-2021-26857.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Legitimate processes may be spawned from the Microsoft Exchange Server Unified Messaging (UM) service. If known processes are causing false positives, they can be exempted from the rule."],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2021/03/02/hafnium-targeting-exchange-servers","https://www.volexity.com/blog/2021/03/02/active-exploitation-of-microsoft-exchange-zero-day-vulnerabilities"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"UMService.exe\", \"UMWorkerProcess.exe\") and\n not process.executable :\n (\"?:\\\\Windows\\\\System32\\\\werfault.exe\",\n \"?:\\\\Windows\\\\System32\\\\wermgr.exe\",\n \"?:\\\\Program Files\\\\Microsoft\\\\Exchange Server\\\\V??\\\\Bin\\\\UMWorkerProcess.exe\",\n \"D:\\\\Exchange 2016\\\\Bin\\\\UMWorkerProcess.exe\",\n \"E:\\\\ExchangeServer\\\\Bin\\\\UMWorkerProcess.exe\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"483c4daf-b0c6-49e0-adf3-0bfa93231d6b:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/483c4daf-b0c6-49e0-adf3-0bfa93231d6b:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/483c4daf-b0c6-49e0-adf3-0bfa93231d6b:100.0.1.json new file mode 100644 index 0000000000000..82632f340e01e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/483c4daf-b0c6-49e0-adf3-0bfa93231d6b:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft Exchange Server UM Spawning Suspicious Processes v100.0.1","rule_id":"483c4daf-b0c6-49e0-adf3-0bfa93231d6b:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious processes being spawned by the Microsoft Exchange Server Unified Messaging (UM) service. This activity has been observed exploiting CVE-2021-26857.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Legitimate processes may be spawned from the Microsoft Exchange Server Unified Messaging (UM) service. If known processes are causing false positives, they can be exempted from the rule."],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2021/03/02/hafnium-targeting-exchange-servers","https://www.volexity.com/blog/2021/03/02/active-exploitation-of-microsoft-exchange-zero-day-vulnerabilities"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"UMService.exe\", \"UMWorkerProcess.exe\") and\n not process.executable :\n (\"?:\\\\Windows\\\\System32\\\\werfault.exe\",\n \"?:\\\\Windows\\\\System32\\\\wermgr.exe\",\n \"?:\\\\Program Files\\\\Microsoft\\\\Exchange Server\\\\V??\\\\Bin\\\\UMWorkerProcess.exe\",\n \"D:\\\\Exchange 2016\\\\Bin\\\\UMWorkerProcess.exe\",\n \"E:\\\\ExchangeServer\\\\Bin\\\\UMWorkerProcess.exe\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"483c4daf-b0c6-49e0-adf3-0bfa93231d6b:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/483c4daf-b0c6-49e0-adf3-0bfa93231d6b:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/483c4daf-b0c6-49e0-adf3-0bfa93231d6b:100.0.2.json new file mode 100644 index 0000000000000..b3410e392cfb0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/483c4daf-b0c6-49e0-adf3-0bfa93231d6b:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft Exchange Server UM Spawning Suspicious Processes v100.0.2","rule_id":"483c4daf-b0c6-49e0-adf3-0bfa93231d6b:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious processes being spawned by the Microsoft Exchange Server Unified Messaging (UM) service. This activity has been observed exploiting CVE-2021-26857.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Legitimate processes may be spawned from the Microsoft Exchange Server Unified Messaging (UM) service. If known processes are causing false positives, they can be exempted from the rule."],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2021/03/02/hafnium-targeting-exchange-servers","https://www.volexity.com/blog/2021/03/02/active-exploitation-of-microsoft-exchange-zero-day-vulnerabilities"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"UMService.exe\", \"UMWorkerProcess.exe\") and\n not process.executable :\n (\"?:\\\\Windows\\\\System32\\\\werfault.exe\",\n \"?:\\\\Windows\\\\System32\\\\wermgr.exe\",\n \"?:\\\\Program Files\\\\Microsoft\\\\Exchange Server\\\\V??\\\\Bin\\\\UMWorkerProcess.exe\",\n \"D:\\\\Exchange 2016\\\\Bin\\\\UMWorkerProcess.exe\",\n \"E:\\\\ExchangeServer\\\\Bin\\\\UMWorkerProcess.exe\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"483c4daf-b0c6-49e0-adf3-0bfa93231d6b:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/48b6edfc-079d-4907-b43c-baffa243270d:1.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/48b6edfc-079d-4907-b43c-baffa243270d:1.0.0.json new file mode 100644 index 0000000000000..1d080be521b35 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/48b6edfc-079d-4907-b43c-baffa243270d:1.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Multiple Logon Failure from the same Source Address v1.0.0","rule_id":"48b6edfc-079d-4907-b43c-baffa243270d:1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple consecutive logon failures from the same source address and within a short time interval. Adversaries will often brute force login attempts across multiple users with a common or known password, in an attempt to gain access to accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n#### Possible investigation steps\n\n- Investigate the logon failure reason code and the targeted user names.\n- Investigate the source IP address of the failed Network Logon attempts.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Trust relationship between the primary domain and the trusted domain issue.\n- Infrastructure or availability issue.\n\n### Related rules\n\n- Multiple Logon Failure Followed by Logon Success - 4e85dc8a-3e41-40d8-bc28-91af7ac6cf60\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the host is a domain controller (DC):\n - Activate your incident response plan for total Active Directory compromise.\n - Review the privileges assigned to users that can access the DCs, to ensure that the least privilege principle is\n being followed and to reduce the attack surface.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4625"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip with maxspan=10s\n [authentication where event.action == \"logon-failed\" and\n /* event 4625 need to be logged */\n winlog.logon.type : \"Network\" and\n source.ip != null and source.ip != \"127.0.0.1\" and source.ip != \"::1\" and\n not user.name : (\"ANONYMOUS LOGON\", \"-\", \"*$\") and not user.domain == \"NT AUTHORITY\" and\n\n /* \n noisy failure status codes often associated to authentication misconfiguration :\n 0xC000015B - The user has not been granted the requested logon type (also called the logon right) at this machine.\n 0XC000005E\t- There are currently no logon servers available to service the logon request.\n 0XC0000133\t- Clocks between DC and other computer too far out of sync.\n 0XC0000192\tAn attempt was made to logon, but the Netlogon service was not started.\n */\n not winlog.event_data.Status : (\"0xC000015B\", \"0XC000005E\", \"0XC0000133\", \"0XC0000192\")] with runs=10\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.Status","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"48b6edfc-079d-4907-b43c-baffa243270d:1.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/48b6edfc-079d-4907-b43c-baffa243270d:1.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/48b6edfc-079d-4907-b43c-baffa243270d:1.0.1.json new file mode 100644 index 0000000000000..e2eb58ee2f222 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/48b6edfc-079d-4907-b43c-baffa243270d:1.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Multiple Logon Failure from the same Source Address v1.0.1","rule_id":"48b6edfc-079d-4907-b43c-baffa243270d:1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple consecutive logon failures from the same source address and within a short time interval. Adversaries will often brute force login attempts across multiple users with a common or known password, in an attempt to gain access to accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n#### Possible investigation steps\n\n- Investigate the logon failure reason code and the targeted user names.\n- Investigate the source IP address of the failed Network Logon attempts.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Trust relationship between the primary domain and the trusted domain issue.\n- Infrastructure or availability issue.\n\n### Related rules\n\n- Multiple Logon Failure Followed by Logon Success - 4e85dc8a-3e41-40d8-bc28-91af7ac6cf60\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the host is a domain controller (DC):\n - Activate your incident response plan for total Active Directory compromise.\n - Review the privileges assigned to users that can access the DCs, to ensure that the least privilege principle is\n being followed and to reduce the attack surface.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4625"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip with maxspan=10s\n [authentication where event.action == \"logon-failed\" and\n /* event 4625 need to be logged */\n winlog.logon.type : \"Network\" and\n source.ip != null and source.ip != \"127.0.0.1\" and source.ip != \"::1\" and\n not user.name : (\"ANONYMOUS LOGON\", \"-\", \"*$\") and not user.domain == \"NT AUTHORITY\" and\n\n /* \n noisy failure status codes often associated to authentication misconfiguration :\n 0xC000015B - The user has not been granted the requested logon type (also called the logon right) at this machine.\n 0XC000005E\t- There are currently no logon servers available to service the logon request.\n 0XC0000133\t- Clocks between DC and other computer too far out of sync.\n 0XC0000192\tAn attempt was made to logon, but the Netlogon service was not started.\n */\n not winlog.event_data.Status : (\"0xC000015B\", \"0XC000005E\", \"0XC0000133\", \"0XC0000192\")] with runs=10\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.Status","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"48b6edfc-079d-4907-b43c-baffa243270d:1.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/48b6edfc-079d-4907-b43c-baffa243270d:1.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/48b6edfc-079d-4907-b43c-baffa243270d:1.0.2.json new file mode 100644 index 0000000000000..d672e82eea28d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/48b6edfc-079d-4907-b43c-baffa243270d:1.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Multiple Logon Failure from the same Source Address v1.0.2","rule_id":"48b6edfc-079d-4907-b43c-baffa243270d:1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple consecutive logon failures from the same source address and within a short time interval. Adversaries will often brute force login attempts across multiple users with a common or known password, in an attempt to gain access to accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n#### Possible investigation steps\n\n- Investigate the logon failure reason code and the targeted user names.\n- Investigate the source IP address of the failed Network Logon attempts.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Trust relationship between the primary domain and the trusted domain issue.\n- Infrastructure or availability issue.\n\n### Related rules\n\n- Multiple Logon Failure Followed by Logon Success - 4e85dc8a-3e41-40d8-bc28-91af7ac6cf60\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the host is a domain controller (DC):\n - Activate your incident response plan for total Active Directory compromise.\n - Review the privileges assigned to users that can access the DCs, to ensure that the least privilege principle is\n being followed and to reduce the attack surface.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4625"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip with maxspan=10s\n [authentication where event.action == \"logon-failed\" and\n /* event 4625 need to be logged */\n winlog.logon.type : \"Network\" and\n source.ip != null and source.ip != \"127.0.0.1\" and source.ip != \"::1\" and\n not user.name : (\"ANONYMOUS LOGON\", \"-\", \"*$\") and not user.domain == \"NT AUTHORITY\" and\n\n /* \n noisy failure status codes often associated to authentication misconfiguration :\n 0xC000015B - The user has not been granted the requested logon type (also called the logon right) at this machine.\n 0XC000005E\t- There are currently no logon servers available to service the logon request.\n 0XC0000133\t- Clocks between DC and other computer too far out of sync.\n 0XC0000192\tAn attempt was made to logon, but the Netlogon service was not started.\n */\n not winlog.event_data.Status : (\"0xC000015B\", \"0XC000005E\", \"0XC0000133\", \"0XC0000192\")] with runs=10\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.Status","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"48b6edfc-079d-4907-b43c-baffa243270d:1.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/48d7f54d-c29e-4430-93a9-9db6b5892270:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/48d7f54d-c29e-4430-93a9-9db6b5892270:100.0.0.json new file mode 100644 index 0000000000000..d2018ae0b3708 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/48d7f54d-c29e-4430-93a9-9db6b5892270:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unexpected Child Process of macOS Screensaver Engine v100.0.0","rule_id":"48d7f54d-c29e-4430-93a9-9db6b5892270:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a child process is spawned by the screensaver engine process, which is consistent with an attacker's malicious payload being executed after the screensaver activated on the endpoint. An adversary can maintain persistence on a macOS endpoint by creating a malicious screensaver (.saver) file and configuring the screensaver plist file to execute code each time the screensaver is activated.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n- Analyze the descendant processes of the ScreenSaverEngine process for malicious code and suspicious behavior such\nas a download of a payload from a server.\n- Review the installed and activated screensaver on the host. Triage the screensaver (.saver) file that was triggered to\nidentify whether the file is malicious or not.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/saving-your-access-d562bf5bf90b","https://github.com/D00MFist/PersistentJXA"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.002","name":"Screensaver","reference":"https://attack.mitre.org/techniques/T1546/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.parent.name == \"ScreenSaverEngine\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"48d7f54d-c29e-4430-93a9-9db6b5892270:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/48d7f54d-c29e-4430-93a9-9db6b5892270:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/48d7f54d-c29e-4430-93a9-9db6b5892270:100.0.1.json new file mode 100644 index 0000000000000..644d05b56e3ad --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/48d7f54d-c29e-4430-93a9-9db6b5892270:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unexpected Child Process of macOS Screensaver Engine v100.0.1","rule_id":"48d7f54d-c29e-4430-93a9-9db6b5892270:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a child process is spawned by the screensaver engine process, which is consistent with an attacker's malicious payload being executed after the screensaver activated on the endpoint. An adversary can maintain persistence on a macOS endpoint by creating a malicious screensaver (.saver) file and configuring the screensaver plist file to execute code each time the screensaver is activated.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n- Analyze the descendant processes of the ScreenSaverEngine process for malicious code and suspicious behavior such\nas a download of a payload from a server.\n- Review the installed and activated screensaver on the host. Triage the screensaver (.saver) file that was triggered to\nidentify whether the file is malicious or not.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/saving-your-access-d562bf5bf90b","https://github.com/D00MFist/PersistentJXA"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.002","name":"Screensaver","reference":"https://attack.mitre.org/techniques/T1546/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.parent.name == \"ScreenSaverEngine\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"48d7f54d-c29e-4430-93a9-9db6b5892270:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/48d7f54d-c29e-4430-93a9-9db6b5892270:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/48d7f54d-c29e-4430-93a9-9db6b5892270:100.0.2.json new file mode 100644 index 0000000000000..58d93ed93fd68 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/48d7f54d-c29e-4430-93a9-9db6b5892270:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unexpected Child Process of macOS Screensaver Engine v100.0.2","rule_id":"48d7f54d-c29e-4430-93a9-9db6b5892270:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a child process is spawned by the screensaver engine process, which is consistent with an attacker's malicious payload being executed after the screensaver activated on the endpoint. An adversary can maintain persistence on a macOS endpoint by creating a malicious screensaver (.saver) file and configuring the screensaver plist file to execute code each time the screensaver is activated.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n- Analyze the descendant processes of the ScreenSaverEngine process for malicious code and suspicious behavior such\nas a download of a payload from a server.\n- Review the installed and activated screensaver on the host. Triage the screensaver (.saver) file that was triggered to\nidentify whether the file is malicious or not.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/saving-your-access-d562bf5bf90b","https://github.com/D00MFist/PersistentJXA"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.002","name":"Screensaver","reference":"https://attack.mitre.org/techniques/T1546/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.parent.name == \"ScreenSaverEngine\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"48d7f54d-c29e-4430-93a9-9db6b5892270:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/48ec9452-e1fd-4513-a376-10a1a26d2c83:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/48ec9452-e1fd-4513-a376-10a1a26d2c83:100.0.0.json new file mode 100644 index 0000000000000..a961c2dedf713 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/48ec9452-e1fd-4513-a376-10a1a26d2c83:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Persistence via Periodic Tasks v100.0.0","rule_id":"48ec9452-e1fd-4513-a376-10a1a26d2c83:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of the default configuration for periodic tasks. Adversaries may abuse periodic tasks to execute malicious code or maintain persistence.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://opensource.apple.com/source/crontabs/crontabs-13/private/etc/defaults/periodic.conf.auto.html","https://www.oreilly.com/library/view/mac-os-x/0596003706/re328.html","https://github.com/D00MFist/PersistentJXA/blob/master/PeriodicPersist.js"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.003","name":"Cron","reference":"https://attack.mitre.org/techniques/T1053/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:\"file\" and not event.type:\"deletion\" and\n file.path:(/private/etc/periodic/* or /private/etc/defaults/periodic.conf or /private/etc/periodic.conf)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}]},"id":"48ec9452-e1fd-4513-a376-10a1a26d2c83:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/48ec9452-e1fd-4513-a376-10a1a26d2c83:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/48ec9452-e1fd-4513-a376-10a1a26d2c83:100.0.1.json new file mode 100644 index 0000000000000..a28e91b5d9ccc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/48ec9452-e1fd-4513-a376-10a1a26d2c83:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Persistence via Periodic Tasks v100.0.1","rule_id":"48ec9452-e1fd-4513-a376-10a1a26d2c83:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of the default configuration for periodic tasks. Adversaries may abuse periodic tasks to execute malicious code or maintain persistence.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://opensource.apple.com/source/crontabs/crontabs-13/private/etc/defaults/periodic.conf.auto.html","https://www.oreilly.com/library/view/mac-os-x/0596003706/re328.html","https://github.com/D00MFist/PersistentJXA/blob/master/PeriodicPersist.js"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.003","name":"Cron","reference":"https://attack.mitre.org/techniques/T1053/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:\"file\" and not event.type:\"deletion\" and\n file.path:(/private/etc/periodic/* or /private/etc/defaults/periodic.conf or /private/etc/periodic.conf)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}]},"id":"48ec9452-e1fd-4513-a376-10a1a26d2c83:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/48ec9452-e1fd-4513-a376-10a1a26d2c83:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/48ec9452-e1fd-4513-a376-10a1a26d2c83:100.0.2.json new file mode 100644 index 0000000000000..ae311feb80336 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/48ec9452-e1fd-4513-a376-10a1a26d2c83:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Persistence via Periodic Tasks v100.0.2","rule_id":"48ec9452-e1fd-4513-a376-10a1a26d2c83:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of the default configuration for periodic tasks. Adversaries may abuse periodic tasks to execute malicious code or maintain persistence.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://opensource.apple.com/source/crontabs/crontabs-13/private/etc/defaults/periodic.conf.auto.html","https://www.oreilly.com/library/view/mac-os-x/0596003706/re328.html","https://github.com/D00MFist/PersistentJXA/blob/master/PeriodicPersist.js"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.003","name":"Cron","reference":"https://attack.mitre.org/techniques/T1053/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:\"file\" and not event.type:\"deletion\" and\n file.path:(/private/etc/periodic/* or /private/etc/defaults/periodic.conf or /private/etc/periodic.conf)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}]},"id":"48ec9452-e1fd-4513-a376-10a1a26d2c83:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/493834ca-f861-414c-8602-150d5505b777:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/493834ca-f861-414c-8602-150d5505b777:100.0.0.json new file mode 100644 index 0000000000000..b0ab0390762a1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/493834ca-f861-414c-8602-150d5505b777:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Agent Spoofing - Multiple Hosts Using Same Agent v100.0.0","rule_id":"493834ca-f861-414c-8602-150d5505b777:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when multiple hosts are using the same agent ID. This could occur in the event of an agent being taken over and used to inject illegitimate documents into an instance as an attempt to spoof events in order to masquerade actual activity to evade detection.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This is meant to run only on datasources using Elastic Agent 7.14+ since versions prior to that will be missing the necessary field, resulting in false positives."],"from":"now-9m","tags":["Elastic","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"query":"event.agent_id_status:*\n","threshold":{"field":["agent.id"],"value":2,"cardinality":[{"field":"host.id","value":2}]},"type":"threshold","index":["logs-*","metrics-*","traces-*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.agent_id_status","type":"keyword"}]},"id":"493834ca-f861-414c-8602-150d5505b777:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/493834ca-f861-414c-8602-150d5505b777:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/493834ca-f861-414c-8602-150d5505b777:100.0.1.json new file mode 100644 index 0000000000000..c2d1867fb6d70 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/493834ca-f861-414c-8602-150d5505b777:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Agent Spoofing - Multiple Hosts Using Same Agent v100.0.1","rule_id":"493834ca-f861-414c-8602-150d5505b777:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when multiple hosts are using the same agent ID. This could occur in the event of an agent being taken over and used to inject illegitimate documents into an instance as an attempt to spoof events in order to masquerade actual activity to evade detection.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This is meant to run only on datasources using Elastic Agent 7.14+ since versions prior to that will be missing the necessary field, resulting in false positives."],"from":"now-9m","tags":["Elastic","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"query":"event.agent_id_status:*\n","threshold":{"field":["agent.id"],"value":2,"cardinality":[{"field":"host.id","value":2}]},"type":"threshold","index":["logs-*","metrics-*","traces-*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.agent_id_status","type":"keyword"}]},"id":"493834ca-f861-414c-8602-150d5505b777:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/493834ca-f861-414c-8602-150d5505b777:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/493834ca-f861-414c-8602-150d5505b777:100.0.2.json new file mode 100644 index 0000000000000..44bcd9aa6fe91 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/493834ca-f861-414c-8602-150d5505b777:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Agent Spoofing - Multiple Hosts Using Same Agent v100.0.2","rule_id":"493834ca-f861-414c-8602-150d5505b777:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when multiple hosts are using the same agent ID. This could occur in the event of an agent being taken over and used to inject illegitimate documents into an instance as an attempt to spoof events in order to masquerade actual activity to evade detection.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This is meant to run only on datasources using Elastic Agent 7.14+ since versions prior to that will be missing the necessary field, resulting in false positives."],"from":"now-9m","tags":["Elastic","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"query":"event.agent_id_status:*\n","threshold":{"field":["agent.id"],"value":2,"cardinality":[{"field":"host.id","value":2}]},"type":"threshold","index":["logs-*","metrics-*","traces-*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.agent_id_status","type":"keyword"}]},"id":"493834ca-f861-414c-8602-150d5505b777:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/495e5f2e-2480-11ed-bea8-f661ea17fbce:2.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/495e5f2e-2480-11ed-bea8-f661ea17fbce:2.0.0.json new file mode 100644 index 0000000000000..8263c3c28db5e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/495e5f2e-2480-11ed-bea8-f661ea17fbce:2.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Application Removed from Blocklist in Google Workspace v2.0.0","rule_id":"495e5f2e-2480-11ed-bea8-f661ea17fbce:2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Google Workspace administrators may be aware of malicious applications within the Google marketplace and block these applications for user security purposes. An adversary, with administrative privileges, may remove this application from the explicit block list to allow distribution of the application amongst users. This may also indicate the unauthorized use of an application that had been previously blocked before by a user with admin privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Applications can be added and removed from blocklists by Google Workspace administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/6328701?hl=en#"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Impair Defenses"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.category:\"iam\" and event.type:\"change\" and\n event.action:\"CHANGE_APPLICATION_SETTING\" and\n google_workspace.admin.application.name:\"Google Workspace Marketplace\" and\n google_workspace.admin.old_value: *allowed*false* and google_workspace.admin.new_value: *allowed*true*\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.application.name","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.old_value","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"495e5f2e-2480-11ed-bea8-f661ea17fbce:2.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/495e5f2e-2480-11ed-bea8-f661ea17fbce:2.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/495e5f2e-2480-11ed-bea8-f661ea17fbce:2.0.1.json new file mode 100644 index 0000000000000..264a76e420988 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/495e5f2e-2480-11ed-bea8-f661ea17fbce:2.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Application Removed from Blocklist in Google Workspace v2.0.1","rule_id":"495e5f2e-2480-11ed-bea8-f661ea17fbce:2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Google Workspace administrators may be aware of malicious applications within the Google marketplace and block these applications for user security purposes. An adversary, with administrative privileges, may remove this application from the explicit block list to allow distribution of the application amongst users. This may also indicate the unauthorized use of an application that had been previously blocked before by a user with admin privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Applications can be added and removed from blocklists by Google Workspace administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/6328701?hl=en#"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Impair Defenses"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.category:\"iam\" and event.type:\"change\" and\n event.action:\"CHANGE_APPLICATION_SETTING\" and\n google_workspace.admin.application.name:\"Google Workspace Marketplace\" and\n google_workspace.admin.old_value: *allowed*false* and google_workspace.admin.new_value: *allowed*true*\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.application.name","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.old_value","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"495e5f2e-2480-11ed-bea8-f661ea17fbce:2.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/495e5f2e-2480-11ed-bea8-f661ea17fbce:2.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/495e5f2e-2480-11ed-bea8-f661ea17fbce:2.0.2.json new file mode 100644 index 0000000000000..deff738e10af9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/495e5f2e-2480-11ed-bea8-f661ea17fbce:2.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Application Removed from Blocklist in Google Workspace v2.0.2","rule_id":"495e5f2e-2480-11ed-bea8-f661ea17fbce:2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Google Workspace administrators may be aware of malicious applications within the Google marketplace and block these applications for user security purposes. An adversary, with administrative privileges, may remove this application from the explicit block list to allow distribution of the application amongst users. This may also indicate the unauthorized use of an application that had been previously blocked before by a user with admin privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Applications can be added and removed from blocklists by Google Workspace administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/6328701?hl=en#"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Impair Defenses"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.category:\"iam\" and event.type:\"change\" and\n event.action:\"CHANGE_APPLICATION_SETTING\" and\n google_workspace.admin.application.name:\"Google Workspace Marketplace\" and\n google_workspace.admin.old_value: *allowed*false* and google_workspace.admin.new_value: *allowed*true*\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.application.name","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.old_value","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"495e5f2e-2480-11ed-bea8-f661ea17fbce:2.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4a4e23cf-78a2-449c-bac3-701924c269d3:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4a4e23cf-78a2-449c-bac3-701924c269d3:100.0.0.json new file mode 100644 index 0000000000000..a2c4941cc847e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4a4e23cf-78a2-449c-bac3-701924c269d3:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Possible FIN7 DGA Command and Control Behavior v100.0.0","rule_id":"4a4e23cf-78a2-449c-bac3-701924c269d3:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects a known command and control pattern in network events. The FIN7 threat group is known to use this command and control technique, while maintaining persistence in their target's network.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\nIn the event this rule identifies benign domains in your environment, the `destination.domain` field in the rule can be modified to include those domains. Example: `...AND NOT destination.domain:(zoom.us OR benign.domain1 OR benign.domain2)`.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This rule could identify benign domains that are formatted similarly to FIN7's command and control algorithm. Alerts should be investigated by an analyst to assess the validity of the individual observations."],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2018/08/fin7-pursuing-an-enigmatic-and-evasive-global-criminal-operation.html"],"tags":["Elastic","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/"},{"id":"T1568","name":"Dynamic Resolution","reference":"https://attack.mitre.org/techniques/T1568/","subtechnique":[{"id":"T1568.002","name":"Domain Generation Algorithms","reference":"https://attack.mitre.org/techniques/T1568/002/"}]}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"lucene","query":"event.category:(network OR network_traffic) AND type:(tls OR http) AND network.transport:tcp\nAND destination.domain:/[a-zA-Z]{4,5}\\.(pw|us|club|info|site|top)/ AND NOT destination.domain:zoom.us\n"},"id":"4a4e23cf-78a2-449c-bac3-701924c269d3:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4a4e23cf-78a2-449c-bac3-701924c269d3:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4a4e23cf-78a2-449c-bac3-701924c269d3:100.0.1.json new file mode 100644 index 0000000000000..1e9913cd68f6e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4a4e23cf-78a2-449c-bac3-701924c269d3:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Possible FIN7 DGA Command and Control Behavior v100.0.1","rule_id":"4a4e23cf-78a2-449c-bac3-701924c269d3:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects a known command and control pattern in network events. The FIN7 threat group is known to use this command and control technique, while maintaining persistence in their target's network.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\nIn the event this rule identifies benign domains in your environment, the `destination.domain` field in the rule can be modified to include those domains. Example: `...AND NOT destination.domain:(zoom.us OR benign.domain1 OR benign.domain2)`.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This rule could identify benign domains that are formatted similarly to FIN7's command and control algorithm. Alerts should be investigated by an analyst to assess the validity of the individual observations."],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2018/08/fin7-pursuing-an-enigmatic-and-evasive-global-criminal-operation.html"],"tags":["Elastic","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/"},{"id":"T1568","name":"Dynamic Resolution","reference":"https://attack.mitre.org/techniques/T1568/","subtechnique":[{"id":"T1568.002","name":"Domain Generation Algorithms","reference":"https://attack.mitre.org/techniques/T1568/002/"}]}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"lucene","query":"event.category:(network OR network_traffic) AND type:(tls OR http) AND network.transport:tcp\nAND destination.domain:/[a-zA-Z]{4,5}\\.(pw|us|club|info|site|top)/ AND NOT destination.domain:zoom.us\n"},"id":"4a4e23cf-78a2-449c-bac3-701924c269d3:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4a4e23cf-78a2-449c-bac3-701924c269d3:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4a4e23cf-78a2-449c-bac3-701924c269d3:100.0.2.json new file mode 100644 index 0000000000000..5117c69d37b78 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4a4e23cf-78a2-449c-bac3-701924c269d3:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Possible FIN7 DGA Command and Control Behavior v100.0.2","rule_id":"4a4e23cf-78a2-449c-bac3-701924c269d3:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects a known command and control pattern in network events. The FIN7 threat group is known to use this command and control technique, while maintaining persistence in their target's network.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\nIn the event this rule identifies benign domains in your environment, the `destination.domain` field in the rule can be modified to include those domains. Example: `...AND NOT destination.domain:(zoom.us OR benign.domain1 OR benign.domain2)`.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This rule could identify benign domains that are formatted similarly to FIN7's command and control algorithm. Alerts should be investigated by an analyst to assess the validity of the individual observations."],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2018/08/fin7-pursuing-an-enigmatic-and-evasive-global-criminal-operation.html"],"tags":["Elastic","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/"},{"id":"T1568","name":"Dynamic Resolution","reference":"https://attack.mitre.org/techniques/T1568/","subtechnique":[{"id":"T1568.002","name":"Domain Generation Algorithms","reference":"https://attack.mitre.org/techniques/T1568/002/"}]}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"lucene","query":"event.category:(network OR network_traffic) AND type:(tls OR http) AND network.transport:tcp\nAND destination.domain:/[a-zA-Z]{4,5}\\.(pw|us|club|info|site|top)/ AND NOT destination.domain:zoom.us\n"},"id":"4a4e23cf-78a2-449c-bac3-701924c269d3:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4b438734-3793-4fda-bd42-ceeada0be8f9:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4b438734-3793-4fda-bd42-ceeada0be8f9:102.0.0.json new file mode 100644 index 0000000000000..cfe4804075e58 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4b438734-3793-4fda-bd42-ceeada0be8f9:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Disable Windows Firewall Rules via Netsh v102.0.0","rule_id":"4b438734-3793-4fda-bd42-ceeada0be8f9:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the netsh.exe to disable or weaken the local firewall. Attackers will use this command line tool to disable the firewall during troubleshooting or to enable network mobility.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Disable Windows Firewall Rules via Netsh\n\nThe Windows Defender Firewall is a native component which provides host-based, two-way network traffic filtering for a\ndevice, and blocks unauthorized network traffic flowing into or out of the local device.\n\nAttackers can disable the Windows firewall or its rules to enable lateral movement and command and control activity.\n\nThis rule identifies patterns related to disabling the Windows firewall or its rules using the `netsh.exe` utility.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the user to check if they are aware of the operation.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Check whether the user is an administrator and is legitimately performing\ntroubleshooting.\n- In case of an allowed benign true positive (B-TP), assess adding rules to allow needed traffic and re-enable the firewall.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.004","name":"Disable or Modify System Firewall","reference":"https://attack.mitre.org/techniques/T1562/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"netsh.exe\" and\n (\n (process.args : \"disable\" and process.args : \"firewall\" and process.args : \"set\") or\n (process.args : \"advfirewall\" and process.args : \"off\" and process.args : \"state\")\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"4b438734-3793-4fda-bd42-ceeada0be8f9:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4b438734-3793-4fda-bd42-ceeada0be8f9:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4b438734-3793-4fda-bd42-ceeada0be8f9:102.0.1.json new file mode 100644 index 0000000000000..a82c3a3a333c1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4b438734-3793-4fda-bd42-ceeada0be8f9:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Disable Windows Firewall Rules via Netsh v102.0.1","rule_id":"4b438734-3793-4fda-bd42-ceeada0be8f9:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the netsh.exe to disable or weaken the local firewall. Attackers will use this command line tool to disable the firewall during troubleshooting or to enable network mobility.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Disable Windows Firewall Rules via Netsh\n\nThe Windows Defender Firewall is a native component which provides host-based, two-way network traffic filtering for a\ndevice, and blocks unauthorized network traffic flowing into or out of the local device.\n\nAttackers can disable the Windows firewall or its rules to enable lateral movement and command and control activity.\n\nThis rule identifies patterns related to disabling the Windows firewall or its rules using the `netsh.exe` utility.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the user to check if they are aware of the operation.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Check whether the user is an administrator and is legitimately performing\ntroubleshooting.\n- In case of an allowed benign true positive (B-TP), assess adding rules to allow needed traffic and re-enable the firewall.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.004","name":"Disable or Modify System Firewall","reference":"https://attack.mitre.org/techniques/T1562/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"netsh.exe\" and\n (\n (process.args : \"disable\" and process.args : \"firewall\" and process.args : \"set\") or\n (process.args : \"advfirewall\" and process.args : \"off\" and process.args : \"state\")\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"4b438734-3793-4fda-bd42-ceeada0be8f9:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4b438734-3793-4fda-bd42-ceeada0be8f9:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4b438734-3793-4fda-bd42-ceeada0be8f9:102.0.2.json new file mode 100644 index 0000000000000..bb216e1a2a311 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4b438734-3793-4fda-bd42-ceeada0be8f9:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Disable Windows Firewall Rules via Netsh v102.0.2","rule_id":"4b438734-3793-4fda-bd42-ceeada0be8f9:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the netsh.exe to disable or weaken the local firewall. Attackers will use this command line tool to disable the firewall during troubleshooting or to enable network mobility.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Disable Windows Firewall Rules via Netsh\n\nThe Windows Defender Firewall is a native component which provides host-based, two-way network traffic filtering for a\ndevice, and blocks unauthorized network traffic flowing into or out of the local device.\n\nAttackers can disable the Windows firewall or its rules to enable lateral movement and command and control activity.\n\nThis rule identifies patterns related to disabling the Windows firewall or its rules using the `netsh.exe` utility.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the user to check if they are aware of the operation.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Check whether the user is an administrator and is legitimately performing\ntroubleshooting.\n- In case of an allowed benign true positive (B-TP), assess adding rules to allow needed traffic and re-enable the firewall.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.004","name":"Disable or Modify System Firewall","reference":"https://attack.mitre.org/techniques/T1562/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"netsh.exe\" and\n (\n (process.args : \"disable\" and process.args : \"firewall\" and process.args : \"set\") or\n (process.args : \"advfirewall\" and process.args : \"off\" and process.args : \"state\")\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"4b438734-3793-4fda-bd42-ceeada0be8f9:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4bd1c1af-79d4-4d37-9efa-6e0240640242:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4bd1c1af-79d4-4d37-9efa-6e0240640242:101.0.0.json new file mode 100644 index 0000000000000..c6ce1dffc10f4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4bd1c1af-79d4-4d37-9efa-6e0240640242:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Process Execution Path - Alternate Data Stream v101.0.0","rule_id":"4bd1c1af-79d4-4d37-9efa-6e0240640242:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies processes running from an Alternate Data Stream. This is uncommon for legitimate processes and sometimes done by adversaries to hide malware.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.004","name":"NTFS File Attributes","reference":"https://attack.mitre.org/techniques/T1564/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.args : \"?:\\\\*:*\" and process.args_count == 1\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"4bd1c1af-79d4-4d37-9efa-6e0240640242:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4bd1c1af-79d4-4d37-9efa-6e0240640242:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4bd1c1af-79d4-4d37-9efa-6e0240640242:101.0.1.json new file mode 100644 index 0000000000000..aa34662b1c7a6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4bd1c1af-79d4-4d37-9efa-6e0240640242:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Process Execution Path - Alternate Data Stream v101.0.1","rule_id":"4bd1c1af-79d4-4d37-9efa-6e0240640242:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies processes running from an Alternate Data Stream. This is uncommon for legitimate processes and sometimes done by adversaries to hide malware.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.004","name":"NTFS File Attributes","reference":"https://attack.mitre.org/techniques/T1564/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.args : \"?:\\\\*:*\" and process.args_count == 1\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"4bd1c1af-79d4-4d37-9efa-6e0240640242:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4bd1c1af-79d4-4d37-9efa-6e0240640242:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4bd1c1af-79d4-4d37-9efa-6e0240640242:101.0.2.json new file mode 100644 index 0000000000000..57522cee46839 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4bd1c1af-79d4-4d37-9efa-6e0240640242:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Process Execution Path - Alternate Data Stream v101.0.2","rule_id":"4bd1c1af-79d4-4d37-9efa-6e0240640242:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies processes running from an Alternate Data Stream. This is uncommon for legitimate processes and sometimes done by adversaries to hide malware.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.004","name":"NTFS File Attributes","reference":"https://attack.mitre.org/techniques/T1564/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.args : \"?:\\\\*:*\" and process.args_count == 1\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"4bd1c1af-79d4-4d37-9efa-6e0240640242:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4c59cff1-b78a-41b8-a9f1-4231984d1fb6:2.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4c59cff1-b78a-41b8-a9f1-4231984d1fb6:2.0.0.json new file mode 100644 index 0000000000000..b0e7b436e2334 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4c59cff1-b78a-41b8-a9f1-4231984d1fb6:2.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell Share Enumeration Script v2.0.0","rule_id":"4c59cff1-b78a-41b8-a9f1-4231984d1fb6:2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects scripts that contain PowerShell functions, structures, or Windows API functions related to windows share enumeration activities. Attackers, mainly ransomware groups, commonly identify and inspect network shares, looking for critical information for encryption and/or exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Share Enumeration Script\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can use PowerShell to enumerate shares to search for sensitive data like documents, scripts, and other kinds\nof valuable data for encryption, exfiltration, and lateral movement.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Check for additional PowerShell and command line logs that indicate that imported functions were run.\n - Evaluate which information was potentially mapped and accessed by the attacker.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.advintel.io/post/hunting-for-corporate-insurance-policies-indicators-of-ransom-exfiltrations","https://thedfirreport.com/2022/04/04/stolen-images-campaign-ends-in-conti-ransomware/","https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1135","name":"Network Share Discovery","reference":"https://attack.mitre.org/techniques/T1135/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]},{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text:(\n \"Invoke-ShareFinder\" or\n \"Invoke-ShareFinderThreaded\" or\n (\n \"shi1_netname\" and\n \"shi1_remark\"\n ) or\n (\n \"NetShareEnum\" and\n \"NetApiBufferFree\"\n )\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"4c59cff1-b78a-41b8-a9f1-4231984d1fb6:2.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4c59cff1-b78a-41b8-a9f1-4231984d1fb6:2.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4c59cff1-b78a-41b8-a9f1-4231984d1fb6:2.0.1.json new file mode 100644 index 0000000000000..a1afd5fc02159 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4c59cff1-b78a-41b8-a9f1-4231984d1fb6:2.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell Share Enumeration Script v2.0.1","rule_id":"4c59cff1-b78a-41b8-a9f1-4231984d1fb6:2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects scripts that contain PowerShell functions, structures, or Windows API functions related to windows share enumeration activities. Attackers, mainly ransomware groups, commonly identify and inspect network shares, looking for critical information for encryption and/or exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Share Enumeration Script\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can use PowerShell to enumerate shares to search for sensitive data like documents, scripts, and other kinds\nof valuable data for encryption, exfiltration, and lateral movement.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Check for additional PowerShell and command line logs that indicate that imported functions were run.\n - Evaluate which information was potentially mapped and accessed by the attacker.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.advintel.io/post/hunting-for-corporate-insurance-policies-indicators-of-ransom-exfiltrations","https://thedfirreport.com/2022/04/04/stolen-images-campaign-ends-in-conti-ransomware/","https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1135","name":"Network Share Discovery","reference":"https://attack.mitre.org/techniques/T1135/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]},{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text:(\n \"Invoke-ShareFinder\" or\n \"Invoke-ShareFinderThreaded\" or\n (\n \"shi1_netname\" and\n \"shi1_remark\"\n ) or\n (\n \"NetShareEnum\" and\n \"NetApiBufferFree\"\n )\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"4c59cff1-b78a-41b8-a9f1-4231984d1fb6:2.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4c59cff1-b78a-41b8-a9f1-4231984d1fb6:2.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4c59cff1-b78a-41b8-a9f1-4231984d1fb6:2.0.2.json new file mode 100644 index 0000000000000..d0569d9e6519d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4c59cff1-b78a-41b8-a9f1-4231984d1fb6:2.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell Share Enumeration Script v2.0.2","rule_id":"4c59cff1-b78a-41b8-a9f1-4231984d1fb6:2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects scripts that contain PowerShell functions, structures, or Windows API functions related to windows share enumeration activities. Attackers, mainly ransomware groups, commonly identify and inspect network shares, looking for critical information for encryption and/or exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Share Enumeration Script\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can use PowerShell to enumerate shares to search for sensitive data like documents, scripts, and other kinds\nof valuable data for encryption, exfiltration, and lateral movement.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Check for additional PowerShell and command line logs that indicate that imported functions were run.\n - Evaluate which information was potentially mapped and accessed by the attacker.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.advintel.io/post/hunting-for-corporate-insurance-policies-indicators-of-ransom-exfiltrations","https://thedfirreport.com/2022/04/04/stolen-images-campaign-ends-in-conti-ransomware/","https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1135","name":"Network Share Discovery","reference":"https://attack.mitre.org/techniques/T1135/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]},{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text:(\n \"Invoke-ShareFinder\" or\n \"Invoke-ShareFinderThreaded\" or\n (\n \"shi1_netname\" and\n \"shi1_remark\"\n ) or\n (\n \"NetShareEnum\" and\n \"NetApiBufferFree\"\n )\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"4c59cff1-b78a-41b8-a9f1-4231984d1fb6:2.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4d50a94f-2844-43fa-8395-6afbd5e1c5ef:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4d50a94f-2844-43fa-8395-6afbd5e1c5ef:101.0.0.json new file mode 100644 index 0000000000000..6efb24f97bdae --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4d50a94f-2844-43fa-8395-6afbd5e1c5ef:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Management Console Brute Force of Root User Identity v101.0.0","rule_id":"4d50a94f-2844-43fa-8395-6afbd5e1c5ef:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number of failed authentication attempts to the AWS management console for the Root user identity. An adversary may attempt to brute force the password for the Root user identity, as it has complete access to all services and resources for the AWS account.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic"],"false_positives":["Automated processes that attempt to authenticate using expired credentials and unbounded retries may lead to false positives."],"from":"now-20m","references":["https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:aws.cloudtrail and event.provider:signin.amazonaws.com and event.action:ConsoleLogin and aws.cloudtrail.user_identity.type:Root and event.outcome:failure\n","threshold":{"field":["cloud.account.id"],"value":10},"type":"threshold","index":["filebeat-*","logs-aws*"],"language":"kuery","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.user_identity.type","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"4d50a94f-2844-43fa-8395-6afbd5e1c5ef:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4d50a94f-2844-43fa-8395-6afbd5e1c5ef:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4d50a94f-2844-43fa-8395-6afbd5e1c5ef:101.0.1.json new file mode 100644 index 0000000000000..0d712cab505f3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4d50a94f-2844-43fa-8395-6afbd5e1c5ef:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Management Console Brute Force of Root User Identity v101.0.1","rule_id":"4d50a94f-2844-43fa-8395-6afbd5e1c5ef:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number of failed authentication attempts to the AWS management console for the Root user identity. An adversary may attempt to brute force the password for the Root user identity, as it has complete access to all services and resources for the AWS account.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic"],"false_positives":["Automated processes that attempt to authenticate using expired credentials and unbounded retries may lead to false positives."],"from":"now-20m","references":["https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:aws.cloudtrail and event.provider:signin.amazonaws.com and event.action:ConsoleLogin and aws.cloudtrail.user_identity.type:Root and event.outcome:failure\n","threshold":{"field":["cloud.account.id"],"value":10},"type":"threshold","index":["filebeat-*","logs-aws*"],"language":"kuery","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.user_identity.type","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"4d50a94f-2844-43fa-8395-6afbd5e1c5ef:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4d50a94f-2844-43fa-8395-6afbd5e1c5ef:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4d50a94f-2844-43fa-8395-6afbd5e1c5ef:101.0.2.json new file mode 100644 index 0000000000000..e44b30820def6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4d50a94f-2844-43fa-8395-6afbd5e1c5ef:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Management Console Brute Force of Root User Identity v101.0.2","rule_id":"4d50a94f-2844-43fa-8395-6afbd5e1c5ef:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number of failed authentication attempts to the AWS management console for the Root user identity. An adversary may attempt to brute force the password for the Root user identity, as it has complete access to all services and resources for the AWS account.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic"],"false_positives":["Automated processes that attempt to authenticate using expired credentials and unbounded retries may lead to false positives."],"from":"now-20m","references":["https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:aws.cloudtrail and event.provider:signin.amazonaws.com and event.action:ConsoleLogin and aws.cloudtrail.user_identity.type:Root and event.outcome:failure\n","threshold":{"field":["cloud.account.id"],"value":10},"type":"threshold","index":["filebeat-*","logs-aws*"],"language":"kuery","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.user_identity.type","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"4d50a94f-2844-43fa-8395-6afbd5e1c5ef:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4da13d6e-904f-4636-81d8-6ab14b4e6ae9:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4da13d6e-904f-4636-81d8-6ab14b4e6ae9:100.0.0.json new file mode 100644 index 0000000000000..e7cc7fd4c5ff1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4da13d6e-904f-4636-81d8-6ab14b4e6ae9:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Disable Gatekeeper v100.0.0","rule_id":"4da13d6e-904f-4636-81d8-6ab14b4e6ae9:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to disable Gatekeeper on macOS. Gatekeeper is a security feature that's designed to ensure that only trusted software is run. Adversaries may attempt to disable Gatekeeper before executing malicious code.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://support.apple.com/en-us/HT202491","https://community.carbonblack.com/t5/Threat-Advisories-Documents/TAU-TIN-Shlayer-OSX/ta-p/68397"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1553","name":"Subvert Trust Controls","reference":"https://attack.mitre.org/techniques/T1553/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.args:(spctl and \"--master-disable\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},"id":"4da13d6e-904f-4636-81d8-6ab14b4e6ae9:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4da13d6e-904f-4636-81d8-6ab14b4e6ae9:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4da13d6e-904f-4636-81d8-6ab14b4e6ae9:100.0.1.json new file mode 100644 index 0000000000000..52f2ea5cb7d66 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4da13d6e-904f-4636-81d8-6ab14b4e6ae9:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Disable Gatekeeper v100.0.1","rule_id":"4da13d6e-904f-4636-81d8-6ab14b4e6ae9:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to disable Gatekeeper on macOS. Gatekeeper is a security feature that's designed to ensure that only trusted software is run. Adversaries may attempt to disable Gatekeeper before executing malicious code.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://support.apple.com/en-us/HT202491","https://community.carbonblack.com/t5/Threat-Advisories-Documents/TAU-TIN-Shlayer-OSX/ta-p/68397"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1553","name":"Subvert Trust Controls","reference":"https://attack.mitre.org/techniques/T1553/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.args:(spctl and \"--master-disable\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},"id":"4da13d6e-904f-4636-81d8-6ab14b4e6ae9:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4da13d6e-904f-4636-81d8-6ab14b4e6ae9:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4da13d6e-904f-4636-81d8-6ab14b4e6ae9:100.0.2.json new file mode 100644 index 0000000000000..107bd456fac7a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4da13d6e-904f-4636-81d8-6ab14b4e6ae9:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Disable Gatekeeper v100.0.2","rule_id":"4da13d6e-904f-4636-81d8-6ab14b4e6ae9:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to disable Gatekeeper on macOS. Gatekeeper is a security feature that's designed to ensure that only trusted software is run. Adversaries may attempt to disable Gatekeeper before executing malicious code.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://support.apple.com/en-us/HT202491","https://community.carbonblack.com/t5/Threat-Advisories-Documents/TAU-TIN-Shlayer-OSX/ta-p/68397"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1553","name":"Subvert Trust Controls","reference":"https://attack.mitre.org/techniques/T1553/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.args:(spctl and \"--master-disable\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},"id":"4da13d6e-904f-4636-81d8-6ab14b4e6ae9:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4de76544-f0e5-486a-8f84-eae0b6063cdc:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4de76544-f0e5-486a-8f84-eae0b6063cdc:102.0.0.json new file mode 100644 index 0000000000000..9a83301deed73 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4de76544-f0e5-486a-8f84-eae0b6063cdc:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Disable Windows Event and Security Logs Using Built-in Tools v102.0.0","rule_id":"4de76544-f0e5-486a-8f84-eae0b6063cdc:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to disable EventLog via the logman Windows utility, PowerShell, or auditpol. This is often done by attackers in an attempt to evade detection on a system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Disable Windows Event and Security Logs Using Built-in Tools\n\nWindows event logs are a fundamental data source for security monitoring, forensics, and incident response. Adversaries\ncan tamper, clear, and delete this data to break SIEM detections, cover their tracks, and slow down incident response.\n\nThis rule looks for the usage of different utilities to disable the EventLog service or specific event logs.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n - Verify if any other anti-forensics behaviors were observed.\n- Investigate the event logs prior to the action for suspicious behaviors that an attacker may be trying to cover up.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Re-enable affected logging components, services, and security monitoring.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Ivan Ninichuck","Austin Songer"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/logman","https://medium.com/palantir/tampering-with-windows-event-tracing-background-offense-and-defense-4be7ac62ac63"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.001","name":"Clear Windows Event Logs","reference":"https://attack.mitre.org/techniques/T1070/001/"}]},{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.006","name":"Indicator Blocking","reference":"https://attack.mitre.org/techniques/T1562/006/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n\n ((process.name:\"logman.exe\" or process.pe.original_file_name == \"Logman.exe\") and\n process.args : \"EventLog-*\" and process.args : (\"stop\", \"delete\")) or\n\n ((process.name : (\"pwsh.exe\", \"powershell.exe\", \"powershell_ise.exe\") or process.pe.original_file_name in\n (\"pwsh.exe\", \"powershell.exe\", \"powershell_ise.exe\")) and\n\tprocess.args : \"Set-Service\" and process.args: \"EventLog\" and process.args : \"Disabled\") or\n\n ((process.name:\"auditpol.exe\" or process.pe.original_file_name == \"AUDITPOL.EXE\") and process.args : \"/success:disable\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"4de76544-f0e5-486a-8f84-eae0b6063cdc:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4de76544-f0e5-486a-8f84-eae0b6063cdc:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4de76544-f0e5-486a-8f84-eae0b6063cdc:102.0.1.json new file mode 100644 index 0000000000000..fe0522c81bd46 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4de76544-f0e5-486a-8f84-eae0b6063cdc:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Disable Windows Event and Security Logs Using Built-in Tools v102.0.1","rule_id":"4de76544-f0e5-486a-8f84-eae0b6063cdc:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to disable EventLog via the logman Windows utility, PowerShell, or auditpol. This is often done by attackers in an attempt to evade detection on a system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Disable Windows Event and Security Logs Using Built-in Tools\n\nWindows event logs are a fundamental data source for security monitoring, forensics, and incident response. Adversaries\ncan tamper, clear, and delete this data to break SIEM detections, cover their tracks, and slow down incident response.\n\nThis rule looks for the usage of different utilities to disable the EventLog service or specific event logs.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n - Verify if any other anti-forensics behaviors were observed.\n- Investigate the event logs prior to the action for suspicious behaviors that an attacker may be trying to cover up.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Re-enable affected logging components, services, and security monitoring.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Ivan Ninichuck","Austin Songer"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/logman","https://medium.com/palantir/tampering-with-windows-event-tracing-background-offense-and-defense-4be7ac62ac63"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.001","name":"Clear Windows Event Logs","reference":"https://attack.mitre.org/techniques/T1070/001/"}]},{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.006","name":"Indicator Blocking","reference":"https://attack.mitre.org/techniques/T1562/006/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n\n ((process.name:\"logman.exe\" or process.pe.original_file_name == \"Logman.exe\") and\n process.args : \"EventLog-*\" and process.args : (\"stop\", \"delete\")) or\n\n ((process.name : (\"pwsh.exe\", \"powershell.exe\", \"powershell_ise.exe\") or process.pe.original_file_name in\n (\"pwsh.exe\", \"powershell.exe\", \"powershell_ise.exe\")) and\n\tprocess.args : \"Set-Service\" and process.args: \"EventLog\" and process.args : \"Disabled\") or\n\n ((process.name:\"auditpol.exe\" or process.pe.original_file_name == \"AUDITPOL.EXE\") and process.args : \"/success:disable\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"4de76544-f0e5-486a-8f84-eae0b6063cdc:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4de76544-f0e5-486a-8f84-eae0b6063cdc:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4de76544-f0e5-486a-8f84-eae0b6063cdc:102.0.2.json new file mode 100644 index 0000000000000..bb0da7f7ad7af --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4de76544-f0e5-486a-8f84-eae0b6063cdc:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Disable Windows Event and Security Logs Using Built-in Tools v102.0.2","rule_id":"4de76544-f0e5-486a-8f84-eae0b6063cdc:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to disable EventLog via the logman Windows utility, PowerShell, or auditpol. This is often done by attackers in an attempt to evade detection on a system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Disable Windows Event and Security Logs Using Built-in Tools\n\nWindows event logs are a fundamental data source for security monitoring, forensics, and incident response. Adversaries\ncan tamper, clear, and delete this data to break SIEM detections, cover their tracks, and slow down incident response.\n\nThis rule looks for the usage of different utilities to disable the EventLog service or specific event logs.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n - Verify if any other anti-forensics behaviors were observed.\n- Investigate the event logs prior to the action for suspicious behaviors that an attacker may be trying to cover up.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Re-enable affected logging components, services, and security monitoring.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Ivan Ninichuck","Austin Songer"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/logman","https://medium.com/palantir/tampering-with-windows-event-tracing-background-offense-and-defense-4be7ac62ac63"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.001","name":"Clear Windows Event Logs","reference":"https://attack.mitre.org/techniques/T1070/001/"}]},{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.006","name":"Indicator Blocking","reference":"https://attack.mitre.org/techniques/T1562/006/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n\n ((process.name:\"logman.exe\" or process.pe.original_file_name == \"Logman.exe\") and\n process.args : \"EventLog-*\" and process.args : (\"stop\", \"delete\")) or\n\n ((process.name : (\"pwsh.exe\", \"powershell.exe\", \"powershell_ise.exe\") or process.pe.original_file_name in\n (\"pwsh.exe\", \"powershell.exe\", \"powershell_ise.exe\")) and\n\tprocess.args : \"Set-Service\" and process.args: \"EventLog\" and process.args : \"Disabled\") or\n\n ((process.name:\"auditpol.exe\" or process.pe.original_file_name == \"AUDITPOL.EXE\") and process.args : \"/success:disable\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"4de76544-f0e5-486a-8f84-eae0b6063cdc:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4e85dc8a-3e41-40d8-bc28-91af7ac6cf60:1.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4e85dc8a-3e41-40d8-bc28-91af7ac6cf60:1.0.0.json new file mode 100644 index 0000000000000..073ab81762fbb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4e85dc8a-3e41-40d8-bc28-91af7ac6cf60:1.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Multiple Logon Failure Followed by Logon Success v1.0.0","rule_id":"4e85dc8a-3e41-40d8-bc28-91af7ac6cf60:1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple logon failures followed by a successful one from the same source address. Adversaries will often brute force login attempts across multiple users with a common or known password, in an attempt to gain access to accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n#### Possible investigation steps\n\n- Investigate the logon failure reason code and the targeted user names.\n- Investigate the source IP address of the failed Network Logon attempts.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Trust relationship between the primary domain and the trusted domain issue.\n- Infrastructure or availability issue.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the host is a domain controller (DC):\n - Activate your incident response plan for total Active Directory compromise.\n - Review the privileges assigned to users that can access the DCs, to ensure that the least privilege principle is\n being followed and to reduce the attack surface.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4625"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip with maxspan=5s\n [authentication where event.action == \"logon-failed\" and\n /* event 4625 need to be logged */\n winlog.logon.type : \"Network\" and\n source.ip != null and source.ip != \"127.0.0.1\" and source.ip != \"::1\" and\n not user.name : (\"ANONYMOUS LOGON\", \"-\", \"*$\") and not user.domain == \"NT AUTHORITY\" and\n\n /* noisy failure status codes often associated to authentication misconfiguration */\n not winlog.event_data.Status : (\"0xC000015B\", \"0XC000005E\", \"0XC0000133\", \"0XC0000192\")] with runs=5\n [authentication where event.action == \"logged-in\" and\n /* event 4624 need to be logged */\n winlog.logon.type : \"Network\" and\n source.ip != null and source.ip != \"127.0.0.1\" and source.ip != \"::1\" and\n not user.name : (\"ANONYMOUS LOGON\", \"-\", \"*$\") and not user.domain == \"NT AUTHORITY\"]\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.Status","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"4e85dc8a-3e41-40d8-bc28-91af7ac6cf60:1.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4e85dc8a-3e41-40d8-bc28-91af7ac6cf60:1.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4e85dc8a-3e41-40d8-bc28-91af7ac6cf60:1.0.1.json new file mode 100644 index 0000000000000..799938fcd18a3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4e85dc8a-3e41-40d8-bc28-91af7ac6cf60:1.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Multiple Logon Failure Followed by Logon Success v1.0.1","rule_id":"4e85dc8a-3e41-40d8-bc28-91af7ac6cf60:1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple logon failures followed by a successful one from the same source address. Adversaries will often brute force login attempts across multiple users with a common or known password, in an attempt to gain access to accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n#### Possible investigation steps\n\n- Investigate the logon failure reason code and the targeted user names.\n- Investigate the source IP address of the failed Network Logon attempts.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Trust relationship between the primary domain and the trusted domain issue.\n- Infrastructure or availability issue.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the host is a domain controller (DC):\n - Activate your incident response plan for total Active Directory compromise.\n - Review the privileges assigned to users that can access the DCs, to ensure that the least privilege principle is\n being followed and to reduce the attack surface.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4625"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip with maxspan=5s\n [authentication where event.action == \"logon-failed\" and\n /* event 4625 need to be logged */\n winlog.logon.type : \"Network\" and\n source.ip != null and source.ip != \"127.0.0.1\" and source.ip != \"::1\" and\n not user.name : (\"ANONYMOUS LOGON\", \"-\", \"*$\") and not user.domain == \"NT AUTHORITY\" and\n\n /* noisy failure status codes often associated to authentication misconfiguration */\n not winlog.event_data.Status : (\"0xC000015B\", \"0XC000005E\", \"0XC0000133\", \"0XC0000192\")] with runs=5\n [authentication where event.action == \"logged-in\" and\n /* event 4624 need to be logged */\n winlog.logon.type : \"Network\" and\n source.ip != null and source.ip != \"127.0.0.1\" and source.ip != \"::1\" and\n not user.name : (\"ANONYMOUS LOGON\", \"-\", \"*$\") and not user.domain == \"NT AUTHORITY\"]\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.Status","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"4e85dc8a-3e41-40d8-bc28-91af7ac6cf60:1.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4e85dc8a-3e41-40d8-bc28-91af7ac6cf60:1.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4e85dc8a-3e41-40d8-bc28-91af7ac6cf60:1.0.2.json new file mode 100644 index 0000000000000..ff172767877d7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4e85dc8a-3e41-40d8-bc28-91af7ac6cf60:1.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Multiple Logon Failure Followed by Logon Success v1.0.2","rule_id":"4e85dc8a-3e41-40d8-bc28-91af7ac6cf60:1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple logon failures followed by a successful one from the same source address. Adversaries will often brute force login attempts across multiple users with a common or known password, in an attempt to gain access to accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n#### Possible investigation steps\n\n- Investigate the logon failure reason code and the targeted user names.\n- Investigate the source IP address of the failed Network Logon attempts.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Trust relationship between the primary domain and the trusted domain issue.\n- Infrastructure or availability issue.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the host is a domain controller (DC):\n - Activate your incident response plan for total Active Directory compromise.\n - Review the privileges assigned to users that can access the DCs, to ensure that the least privilege principle is\n being followed and to reduce the attack surface.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4625"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip with maxspan=5s\n [authentication where event.action == \"logon-failed\" and\n /* event 4625 need to be logged */\n winlog.logon.type : \"Network\" and\n source.ip != null and source.ip != \"127.0.0.1\" and source.ip != \"::1\" and\n not user.name : (\"ANONYMOUS LOGON\", \"-\", \"*$\") and not user.domain == \"NT AUTHORITY\" and\n\n /* noisy failure status codes often associated to authentication misconfiguration */\n not winlog.event_data.Status : (\"0xC000015B\", \"0XC000005E\", \"0XC0000133\", \"0XC0000192\")] with runs=5\n [authentication where event.action == \"logged-in\" and\n /* event 4624 need to be logged */\n winlog.logon.type : \"Network\" and\n source.ip != null and source.ip != \"127.0.0.1\" and source.ip != \"::1\" and\n not user.name : (\"ANONYMOUS LOGON\", \"-\", \"*$\") and not user.domain == \"NT AUTHORITY\"]\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.Status","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"4e85dc8a-3e41-40d8-bc28-91af7ac6cf60:1.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4ed493fc-d637-4a36-80ff-ac84937e5461:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4ed493fc-d637-4a36-80ff-ac84937e5461:102.0.0.json new file mode 100644 index 0000000000000..4b494bba8bf96 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4ed493fc-d637-4a36-80ff-ac84937e5461:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Execution via MSSQL xp_cmdshell Stored Procedure v102.0.0","rule_id":"4ed493fc-d637-4a36-80ff-ac84937e5461:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution via MSSQL xp_cmdshell stored procedure. Malicious users may attempt to elevate their privileges by using xp_cmdshell, which is disabled by default, thus, it's important to review the context of it's use.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Execution via MSSQL xp_cmdshell Stored Procedure\n\nMicrosoft SQL Server (MSSQL) has procedures meant to extend its functionality, the Extended Stored Procedures. These\nprocedures are external functions written in C/C++; some provide interfaces for external programs. This is the case for\nxp_cmdshell, which spawns a Windows command shell and passes in a string for execution. Attackers can use this to\nexecute commands on the system running the SQL server, commonly to escalate their privileges and establish persistence.\n\nThe xp_cmdshell procedure is disabled by default, but when used, it has the same security context as the MSSQL Server\nservice account, which is often privileged.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the command line to determine if the command executed is potentially harmful or malicious.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n\n### False positive analysis\n\n- This mechanism can be used legitimately, but it brings inherent risk. The security team must monitor any activity of\nit. If recurrent tasks are being executed using this mechanism, consider adding exceptions — preferably with a full\ncommand line.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Ensure that SQL servers are not directly exposed to the internet. If there is a business justification for such, use\nan allowlist to allow only connections from known legitimate sources.\n- Disable the xp_cmdshell stored procedure.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://thedfirreport.com/2022/07/11/select-xmrig-from-sqlserver/"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"cmd.exe\" and process.parent.name : \"sqlservr.exe\" and\n not process.args : (\"\\\\\\\\*\", \"diskfree\", \"rmdir\", \"mkdir\", \"dir\", \"del\", \"rename\", \"bcp\", \"*XMLNAMESPACES*\",\n \"?:\\\\MSSQL\\\\Backup\\\\Jobs\\\\sql_agent_backup_job.ps1\", \"K:\\\\MSSQL\\\\Backup\\\\msdb\", \"K:\\\\MSSQL\\\\Backup\\\\Logins\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"4ed493fc-d637-4a36-80ff-ac84937e5461:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4ed493fc-d637-4a36-80ff-ac84937e5461:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4ed493fc-d637-4a36-80ff-ac84937e5461:102.0.1.json new file mode 100644 index 0000000000000..2d2d2bca403bd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4ed493fc-d637-4a36-80ff-ac84937e5461:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Execution via MSSQL xp_cmdshell Stored Procedure v102.0.1","rule_id":"4ed493fc-d637-4a36-80ff-ac84937e5461:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution via MSSQL xp_cmdshell stored procedure. Malicious users may attempt to elevate their privileges by using xp_cmdshell, which is disabled by default, thus, it's important to review the context of it's use.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Execution via MSSQL xp_cmdshell Stored Procedure\n\nMicrosoft SQL Server (MSSQL) has procedures meant to extend its functionality, the Extended Stored Procedures. These\nprocedures are external functions written in C/C++; some provide interfaces for external programs. This is the case for\nxp_cmdshell, which spawns a Windows command shell and passes in a string for execution. Attackers can use this to\nexecute commands on the system running the SQL server, commonly to escalate their privileges and establish persistence.\n\nThe xp_cmdshell procedure is disabled by default, but when used, it has the same security context as the MSSQL Server\nservice account, which is often privileged.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the command line to determine if the command executed is potentially harmful or malicious.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n\n### False positive analysis\n\n- This mechanism can be used legitimately, but it brings inherent risk. The security team must monitor any activity of\nit. If recurrent tasks are being executed using this mechanism, consider adding exceptions — preferably with a full\ncommand line.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Ensure that SQL servers are not directly exposed to the internet. If there is a business justification for such, use\nan allowlist to allow only connections from known legitimate sources.\n- Disable the xp_cmdshell stored procedure.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://thedfirreport.com/2022/07/11/select-xmrig-from-sqlserver/"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"cmd.exe\" and process.parent.name : \"sqlservr.exe\" and\n not process.args : (\"\\\\\\\\*\", \"diskfree\", \"rmdir\", \"mkdir\", \"dir\", \"del\", \"rename\", \"bcp\", \"*XMLNAMESPACES*\",\n \"?:\\\\MSSQL\\\\Backup\\\\Jobs\\\\sql_agent_backup_job.ps1\", \"K:\\\\MSSQL\\\\Backup\\\\msdb\", \"K:\\\\MSSQL\\\\Backup\\\\Logins\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"4ed493fc-d637-4a36-80ff-ac84937e5461:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4ed493fc-d637-4a36-80ff-ac84937e5461:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4ed493fc-d637-4a36-80ff-ac84937e5461:102.0.2.json new file mode 100644 index 0000000000000..664e99f300c57 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4ed493fc-d637-4a36-80ff-ac84937e5461:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Execution via MSSQL xp_cmdshell Stored Procedure v102.0.2","rule_id":"4ed493fc-d637-4a36-80ff-ac84937e5461:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution via MSSQL xp_cmdshell stored procedure. Malicious users may attempt to elevate their privileges by using xp_cmdshell, which is disabled by default, thus, it's important to review the context of it's use.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Execution via MSSQL xp_cmdshell Stored Procedure\n\nMicrosoft SQL Server (MSSQL) has procedures meant to extend its functionality, the Extended Stored Procedures. These\nprocedures are external functions written in C/C++; some provide interfaces for external programs. This is the case for\nxp_cmdshell, which spawns a Windows command shell and passes in a string for execution. Attackers can use this to\nexecute commands on the system running the SQL server, commonly to escalate their privileges and establish persistence.\n\nThe xp_cmdshell procedure is disabled by default, but when used, it has the same security context as the MSSQL Server\nservice account, which is often privileged.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the command line to determine if the command executed is potentially harmful or malicious.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n\n### False positive analysis\n\n- This mechanism can be used legitimately, but it brings inherent risk. The security team must monitor any activity of\nit. If recurrent tasks are being executed using this mechanism, consider adding exceptions — preferably with a full\ncommand line.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Ensure that SQL servers are not directly exposed to the internet. If there is a business justification for such, use\nan allowlist to allow only connections from known legitimate sources.\n- Disable the xp_cmdshell stored procedure.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://thedfirreport.com/2022/07/11/select-xmrig-from-sqlserver/"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"cmd.exe\" and process.parent.name : \"sqlservr.exe\" and\n not process.args : (\"\\\\\\\\*\", \"diskfree\", \"rmdir\", \"mkdir\", \"dir\", \"del\", \"rename\", \"bcp\", \"*XMLNAMESPACES*\",\n \"?:\\\\MSSQL\\\\Backup\\\\Jobs\\\\sql_agent_backup_job.ps1\", \"K:\\\\MSSQL\\\\Backup\\\\msdb\", \"K:\\\\MSSQL\\\\Backup\\\\Logins\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"4ed493fc-d637-4a36-80ff-ac84937e5461:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4ed678a9-3a4f-41fb-9fea-f85a6e0a0dff:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4ed678a9-3a4f-41fb-9fea-f85a6e0a0dff:100.0.0.json new file mode 100644 index 0000000000000..65a50d824ff35 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4ed678a9-3a4f-41fb-9fea-f85a6e0a0dff:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Script Object Execution v100.0.0","rule_id":"4ed678a9-3a4f-41fb-9fea-f85a6e0a0dff:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies scrobj.dll loaded into unusual Microsoft processes. This usually means a malicious scriptlet is being executed in the target process.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=2m\n [process where event.type == \"start\"\n and (process.code_signature.subject_name in (\"Microsoft Corporation\", \"Microsoft Windows\") and\n process.code_signature.trusted == true) and\n not process.executable : (\n \"?:\\\\Windows\\\\System32\\\\cscript.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\cscript.exe\",\n \"?:\\\\Program Files (x86)\\\\Internet Explorer\\\\iexplore.exe\",\n \"?:\\\\Program Files\\\\Internet Explorer\\\\iexplore.exe\",\n \"?:\\\\Windows\\\\SystemApps\\\\Microsoft.MicrosoftEdge_*\\\\MicrosoftEdge.exe\",\n \"?:\\\\Windows\\\\system32\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\System32\\\\smartscreen.exe\",\n \"?:\\\\Windows\\\\system32\\\\taskhostw.exe\",\n \"?:\\\\windows\\\\system32\\\\inetsrv\\\\w3wp.exe\",\n \"?:\\\\windows\\\\SysWOW64\\\\inetsrv\\\\w3wp.exe\",\n \"?:\\\\Windows\\\\system32\\\\wscript.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\wscript.exe\",\n \"?:\\\\Windows\\\\system32\\\\mobsync.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\mobsync.exe\",\n \"?:\\\\Windows\\\\System32\\\\cmd.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\cmd.exe\")]\n [library where event.type == \"start\" and dll.name : \"scrobj.dll\"]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.code_signature.subject_name","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},"id":"4ed678a9-3a4f-41fb-9fea-f85a6e0a0dff:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4ed678a9-3a4f-41fb-9fea-f85a6e0a0dff:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4ed678a9-3a4f-41fb-9fea-f85a6e0a0dff:100.0.1.json new file mode 100644 index 0000000000000..70be563afe87f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4ed678a9-3a4f-41fb-9fea-f85a6e0a0dff:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Script Object Execution v100.0.1","rule_id":"4ed678a9-3a4f-41fb-9fea-f85a6e0a0dff:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies scrobj.dll loaded into unusual Microsoft processes. This usually means a malicious scriptlet is being executed in the target process.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=2m\n [process where event.type == \"start\"\n and (process.code_signature.subject_name in (\"Microsoft Corporation\", \"Microsoft Windows\") and\n process.code_signature.trusted == true) and\n not process.executable : (\n \"?:\\\\Windows\\\\System32\\\\cscript.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\cscript.exe\",\n \"?:\\\\Program Files (x86)\\\\Internet Explorer\\\\iexplore.exe\",\n \"?:\\\\Program Files\\\\Internet Explorer\\\\iexplore.exe\",\n \"?:\\\\Windows\\\\SystemApps\\\\Microsoft.MicrosoftEdge_*\\\\MicrosoftEdge.exe\",\n \"?:\\\\Windows\\\\system32\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\System32\\\\smartscreen.exe\",\n \"?:\\\\Windows\\\\system32\\\\taskhostw.exe\",\n \"?:\\\\windows\\\\system32\\\\inetsrv\\\\w3wp.exe\",\n \"?:\\\\windows\\\\SysWOW64\\\\inetsrv\\\\w3wp.exe\",\n \"?:\\\\Windows\\\\system32\\\\wscript.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\wscript.exe\",\n \"?:\\\\Windows\\\\system32\\\\mobsync.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\mobsync.exe\",\n \"?:\\\\Windows\\\\System32\\\\cmd.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\cmd.exe\")]\n [library where event.type == \"start\" and dll.name : \"scrobj.dll\"]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.code_signature.subject_name","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},"id":"4ed678a9-3a4f-41fb-9fea-f85a6e0a0dff:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4ed678a9-3a4f-41fb-9fea-f85a6e0a0dff:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4ed678a9-3a4f-41fb-9fea-f85a6e0a0dff:100.0.2.json new file mode 100644 index 0000000000000..00354f8c7c6f8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4ed678a9-3a4f-41fb-9fea-f85a6e0a0dff:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Script Object Execution v100.0.2","rule_id":"4ed678a9-3a4f-41fb-9fea-f85a6e0a0dff:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies scrobj.dll loaded into unusual Microsoft processes. This usually means a malicious scriptlet is being executed in the target process.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=2m\n [process where event.type == \"start\"\n and (process.code_signature.subject_name in (\"Microsoft Corporation\", \"Microsoft Windows\") and\n process.code_signature.trusted == true) and\n not process.executable : (\n \"?:\\\\Windows\\\\System32\\\\cscript.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\cscript.exe\",\n \"?:\\\\Program Files (x86)\\\\Internet Explorer\\\\iexplore.exe\",\n \"?:\\\\Program Files\\\\Internet Explorer\\\\iexplore.exe\",\n \"?:\\\\Windows\\\\SystemApps\\\\Microsoft.MicrosoftEdge_*\\\\MicrosoftEdge.exe\",\n \"?:\\\\Windows\\\\system32\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\System32\\\\smartscreen.exe\",\n \"?:\\\\Windows\\\\system32\\\\taskhostw.exe\",\n \"?:\\\\windows\\\\system32\\\\inetsrv\\\\w3wp.exe\",\n \"?:\\\\windows\\\\SysWOW64\\\\inetsrv\\\\w3wp.exe\",\n \"?:\\\\Windows\\\\system32\\\\wscript.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\wscript.exe\",\n \"?:\\\\Windows\\\\system32\\\\mobsync.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\mobsync.exe\",\n \"?:\\\\Windows\\\\System32\\\\cmd.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\cmd.exe\")]\n [library where event.type == \"start\" and dll.name : \"scrobj.dll\"]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.code_signature.subject_name","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},"id":"4ed678a9-3a4f-41fb-9fea-f85a6e0a0dff:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4edd3e1a-3aa0-499b-8147-4d2ea43b1613:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4edd3e1a-3aa0-499b-8147-4d2ea43b1613:102.0.0.json new file mode 100644 index 0000000000000..1050072c96c3b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4edd3e1a-3aa0-499b-8147-4d2ea43b1613:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unauthorized Access to an Okta Application v102.0.0","rule_id":"4edd3e1a-3aa0-499b-8147-4d2ea43b1613:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unauthorized access attempts to Okta applications.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:app.generic.unauth_app_access_attempt\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"4edd3e1a-3aa0-499b-8147-4d2ea43b1613:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4edd3e1a-3aa0-499b-8147-4d2ea43b1613:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4edd3e1a-3aa0-499b-8147-4d2ea43b1613:102.0.1.json new file mode 100644 index 0000000000000..de2541da41b70 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4edd3e1a-3aa0-499b-8147-4d2ea43b1613:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unauthorized Access to an Okta Application v102.0.1","rule_id":"4edd3e1a-3aa0-499b-8147-4d2ea43b1613:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unauthorized access attempts to Okta applications.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:app.generic.unauth_app_access_attempt\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"4edd3e1a-3aa0-499b-8147-4d2ea43b1613:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4edd3e1a-3aa0-499b-8147-4d2ea43b1613:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4edd3e1a-3aa0-499b-8147-4d2ea43b1613:102.0.2.json new file mode 100644 index 0000000000000..87bc87a5398d0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4edd3e1a-3aa0-499b-8147-4d2ea43b1613:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unauthorized Access to an Okta Application v102.0.2","rule_id":"4edd3e1a-3aa0-499b-8147-4d2ea43b1613:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unauthorized access attempts to Okta applications.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:app.generic.unauth_app_access_attempt\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"4edd3e1a-3aa0-499b-8147-4d2ea43b1613:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4fe9d835-40e1-452d-8230-17c147cafad8:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4fe9d835-40e1-452d-8230-17c147cafad8:101.0.0.json new file mode 100644 index 0000000000000..e95710053c004 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4fe9d835-40e1-452d-8230-17c147cafad8:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Execution via TSClient Mountpoint v101.0.0","rule_id":"4fe9d835-40e1-452d-8230-17c147cafad8:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution from the Remote Desktop Protocol (RDP) shared mountpoint tsclient on the target host. This may indicate a lateral movement attempt.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/revisiting-remote-desktop-lateral-movement-8fb905cb46c3"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"process where event.type == \"start\" and process.executable : \"\\\\Device\\\\Mup\\\\tsclient\\\\*.exe\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"4fe9d835-40e1-452d-8230-17c147cafad8:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4fe9d835-40e1-452d-8230-17c147cafad8:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4fe9d835-40e1-452d-8230-17c147cafad8:101.0.1.json new file mode 100644 index 0000000000000..0fb3cd2e6673b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4fe9d835-40e1-452d-8230-17c147cafad8:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Execution via TSClient Mountpoint v101.0.1","rule_id":"4fe9d835-40e1-452d-8230-17c147cafad8:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution from the Remote Desktop Protocol (RDP) shared mountpoint tsclient on the target host. This may indicate a lateral movement attempt.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/revisiting-remote-desktop-lateral-movement-8fb905cb46c3"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"process where event.type == \"start\" and process.executable : \"\\\\Device\\\\Mup\\\\tsclient\\\\*.exe\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"4fe9d835-40e1-452d-8230-17c147cafad8:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/4fe9d835-40e1-452d-8230-17c147cafad8:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/4fe9d835-40e1-452d-8230-17c147cafad8:101.0.2.json new file mode 100644 index 0000000000000..1bfcc36ba95b7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/4fe9d835-40e1-452d-8230-17c147cafad8:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Execution via TSClient Mountpoint v101.0.2","rule_id":"4fe9d835-40e1-452d-8230-17c147cafad8:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution from the Remote Desktop Protocol (RDP) shared mountpoint tsclient on the target host. This may indicate a lateral movement attempt.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/revisiting-remote-desktop-lateral-movement-8fb905cb46c3"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"process where event.type == \"start\" and process.executable : \"\\\\Device\\\\Mup\\\\tsclient\\\\*.exe\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"4fe9d835-40e1-452d-8230-17c147cafad8:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/513f0ffd-b317-4b9c-9494-92ce861f22c7:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/513f0ffd-b317-4b9c-9494-92ce861f22c7:100.0.0.json new file mode 100644 index 0000000000000..de8b53057586e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/513f0ffd-b317-4b9c-9494-92ce861f22c7:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Registry Persistence via AppCert DLL v100.0.0","rule_id":"513f0ffd-b317-4b9c-9494-92ce861f22c7:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to maintain persistence by creating registry keys using AppCert DLLs. AppCert DLLs are loaded by every process using the common API functions to create processes.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.009","name":"AppCert DLLs","reference":"https://attack.mitre.org/techniques/T1546/009/"}]}]}],"language":"eql","query":"registry where\n/* uncomment once stable length(bytes_written_string) > 0 and */\n registry.path : \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Session Manager\\\\AppCertDLLs\\\\*\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"513f0ffd-b317-4b9c-9494-92ce861f22c7:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/513f0ffd-b317-4b9c-9494-92ce861f22c7:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/513f0ffd-b317-4b9c-9494-92ce861f22c7:100.0.1.json new file mode 100644 index 0000000000000..c8cdc08e907ab --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/513f0ffd-b317-4b9c-9494-92ce861f22c7:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Registry Persistence via AppCert DLL v100.0.1","rule_id":"513f0ffd-b317-4b9c-9494-92ce861f22c7:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to maintain persistence by creating registry keys using AppCert DLLs. AppCert DLLs are loaded by every process using the common API functions to create processes.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.009","name":"AppCert DLLs","reference":"https://attack.mitre.org/techniques/T1546/009/"}]}]}],"language":"eql","query":"registry where\n/* uncomment once stable length(bytes_written_string) > 0 and */\n registry.path : \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Session Manager\\\\AppCertDLLs\\\\*\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"513f0ffd-b317-4b9c-9494-92ce861f22c7:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/513f0ffd-b317-4b9c-9494-92ce861f22c7:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/513f0ffd-b317-4b9c-9494-92ce861f22c7:100.0.2.json new file mode 100644 index 0000000000000..8a2394c4bb2e5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/513f0ffd-b317-4b9c-9494-92ce861f22c7:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Registry Persistence via AppCert DLL v100.0.2","rule_id":"513f0ffd-b317-4b9c-9494-92ce861f22c7:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to maintain persistence by creating registry keys using AppCert DLLs. AppCert DLLs are loaded by every process using the common API functions to create processes.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.009","name":"AppCert DLLs","reference":"https://attack.mitre.org/techniques/T1546/009/"}]}]}],"language":"eql","query":"registry where\n/* uncomment once stable length(bytes_written_string) > 0 and */\n registry.path : \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Session Manager\\\\AppCertDLLs\\\\*\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"513f0ffd-b317-4b9c-9494-92ce861f22c7:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/514121ce-c7b6-474a-8237-68ff71672379:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/514121ce-c7b6-474a-8237-68ff71672379:101.0.0.json new file mode 100644 index 0000000000000..dae13184b8744 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/514121ce-c7b6-474a-8237-68ff71672379:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange DKIM Signing Configuration Disabled v101.0.0","rule_id":"514121ce-c7b6-474a-8237-68ff71672379:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a DomainKeys Identified Mail (DKIM) signing configuration is disabled in Microsoft 365. With DKIM in Microsoft 365, messages that are sent from Exchange Online will be cryptographically signed. This will allow the receiving email system to validate that the messages were generated by a server that the organization authorized and were not spoofed.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Disabling a DKIM configuration may be done by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/set-dkimsigningconfig?view=exchange-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Data Protection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Set-DkimSigningConfig\" and o365.audit.Parameters.Enabled:False and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Parameters.Enabled","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"514121ce-c7b6-474a-8237-68ff71672379:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/514121ce-c7b6-474a-8237-68ff71672379:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/514121ce-c7b6-474a-8237-68ff71672379:101.0.1.json new file mode 100644 index 0000000000000..85f8ec08dce2b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/514121ce-c7b6-474a-8237-68ff71672379:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange DKIM Signing Configuration Disabled v101.0.1","rule_id":"514121ce-c7b6-474a-8237-68ff71672379:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a DomainKeys Identified Mail (DKIM) signing configuration is disabled in Microsoft 365. With DKIM in Microsoft 365, messages that are sent from Exchange Online will be cryptographically signed. This will allow the receiving email system to validate that the messages were generated by a server that the organization authorized and were not spoofed.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Disabling a DKIM configuration may be done by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/set-dkimsigningconfig?view=exchange-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Data Protection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Set-DkimSigningConfig\" and o365.audit.Parameters.Enabled:False and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Parameters.Enabled","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"514121ce-c7b6-474a-8237-68ff71672379:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/514121ce-c7b6-474a-8237-68ff71672379:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/514121ce-c7b6-474a-8237-68ff71672379:101.0.2.json new file mode 100644 index 0000000000000..57c404a60fc64 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/514121ce-c7b6-474a-8237-68ff71672379:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange DKIM Signing Configuration Disabled v101.0.2","rule_id":"514121ce-c7b6-474a-8237-68ff71672379:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a DomainKeys Identified Mail (DKIM) signing configuration is disabled in Microsoft 365. With DKIM in Microsoft 365, messages that are sent from Exchange Online will be cryptographically signed. This will allow the receiving email system to validate that the messages were generated by a server that the organization authorized and were not spoofed.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Disabling a DKIM configuration may be done by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/set-dkimsigningconfig?view=exchange-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Data Protection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Set-DkimSigningConfig\" and o365.audit.Parameters.Enabled:False and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Parameters.Enabled","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"514121ce-c7b6-474a-8237-68ff71672379:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/51859fa0-d86b-4214-bf48-ebb30ed91305:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/51859fa0-d86b-4214-bf48-ebb30ed91305:102.0.0.json new file mode 100644 index 0000000000000..2fd36ea65c770 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/51859fa0-d86b-4214-bf48-ebb30ed91305:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Logging Sink Deletion v102.0.0","rule_id":"51859fa0-d86b-4214-bf48-ebb30ed91305:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a Logging sink deletion in Google Cloud Platform (GCP). Every time a log entry arrives, Logging compares the log entry to the sinks in that resource. Each sink whose filter matches the log entry writes a copy of the log entry to the sink's export destination. An adversary may delete a Logging sink to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Logging sink deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Logging sink deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/logging/docs/export"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.logging.v*.ConfigServiceV*.DeleteSink and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"51859fa0-d86b-4214-bf48-ebb30ed91305:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/51859fa0-d86b-4214-bf48-ebb30ed91305:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/51859fa0-d86b-4214-bf48-ebb30ed91305:102.0.1.json new file mode 100644 index 0000000000000..33a5e322f4eb3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/51859fa0-d86b-4214-bf48-ebb30ed91305:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Logging Sink Deletion v102.0.1","rule_id":"51859fa0-d86b-4214-bf48-ebb30ed91305:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a Logging sink deletion in Google Cloud Platform (GCP). Every time a log entry arrives, Logging compares the log entry to the sinks in that resource. Each sink whose filter matches the log entry writes a copy of the log entry to the sink's export destination. An adversary may delete a Logging sink to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Logging sink deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Logging sink deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/logging/docs/export"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.logging.v*.ConfigServiceV*.DeleteSink and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"51859fa0-d86b-4214-bf48-ebb30ed91305:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/51859fa0-d86b-4214-bf48-ebb30ed91305:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/51859fa0-d86b-4214-bf48-ebb30ed91305:102.0.2.json new file mode 100644 index 0000000000000..0d2e7aa88ee82 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/51859fa0-d86b-4214-bf48-ebb30ed91305:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Logging Sink Deletion v102.0.2","rule_id":"51859fa0-d86b-4214-bf48-ebb30ed91305:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a Logging sink deletion in Google Cloud Platform (GCP). Every time a log entry arrives, Logging compares the log entry to the sinks in that resource. Each sink whose filter matches the log entry writes a copy of the log entry to the sink's export destination. An adversary may delete a Logging sink to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Logging sink deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Logging sink deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/logging/docs/export"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.logging.v*.ConfigServiceV*.DeleteSink and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"51859fa0-d86b-4214-bf48-ebb30ed91305:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/51ce96fb-9e52-4dad-b0ba-99b54440fc9a:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/51ce96fb-9e52-4dad-b0ba-99b54440fc9a:101.0.0.json new file mode 100644 index 0000000000000..13dfefd520a46 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/51ce96fb-9e52-4dad-b0ba-99b54440fc9a:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Incoming DCOM Lateral Movement with MMC v101.0.0","rule_id":"51ce96fb-9e52-4dad-b0ba-99b54440fc9a:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of Distributed Component Object Model (DCOM) to run commands from a remote host, which are launched via the MMC20 Application COM Object. This behavior may indicate an attacker abusing a DCOM application to move laterally.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.003","name":"Distributed Component Object Model","reference":"https://attack.mitre.org/techniques/T1021/003/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n [network where event.type == \"start\" and process.name : \"mmc.exe\" and source.port >= 49152 and\n destination.port >= 49152 and source.ip != \"127.0.0.1\" and source.ip != \"::1\" and\n network.direction : (\"incoming\", \"ingress\") and network.transport == \"tcp\"\n ] by process.entity_id\n [process where event.type == \"start\" and process.parent.name : \"mmc.exe\"\n ] by process.parent.entity_id\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]},"id":"51ce96fb-9e52-4dad-b0ba-99b54440fc9a:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/51ce96fb-9e52-4dad-b0ba-99b54440fc9a:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/51ce96fb-9e52-4dad-b0ba-99b54440fc9a:101.0.1.json new file mode 100644 index 0000000000000..d2dfa263d4770 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/51ce96fb-9e52-4dad-b0ba-99b54440fc9a:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Incoming DCOM Lateral Movement with MMC v101.0.1","rule_id":"51ce96fb-9e52-4dad-b0ba-99b54440fc9a:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of Distributed Component Object Model (DCOM) to run commands from a remote host, which are launched via the MMC20 Application COM Object. This behavior may indicate an attacker abusing a DCOM application to move laterally.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.003","name":"Distributed Component Object Model","reference":"https://attack.mitre.org/techniques/T1021/003/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n [network where event.type == \"start\" and process.name : \"mmc.exe\" and source.port >= 49152 and\n destination.port >= 49152 and source.ip != \"127.0.0.1\" and source.ip != \"::1\" and\n network.direction : (\"incoming\", \"ingress\") and network.transport == \"tcp\"\n ] by process.entity_id\n [process where event.type == \"start\" and process.parent.name : \"mmc.exe\"\n ] by process.parent.entity_id\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]},"id":"51ce96fb-9e52-4dad-b0ba-99b54440fc9a:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/51ce96fb-9e52-4dad-b0ba-99b54440fc9a:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/51ce96fb-9e52-4dad-b0ba-99b54440fc9a:101.0.2.json new file mode 100644 index 0000000000000..d66bea07c1595 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/51ce96fb-9e52-4dad-b0ba-99b54440fc9a:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Incoming DCOM Lateral Movement with MMC v101.0.2","rule_id":"51ce96fb-9e52-4dad-b0ba-99b54440fc9a:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of Distributed Component Object Model (DCOM) to run commands from a remote host, which are launched via the MMC20 Application COM Object. This behavior may indicate an attacker abusing a DCOM application to move laterally.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.003","name":"Distributed Component Object Model","reference":"https://attack.mitre.org/techniques/T1021/003/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n [network where event.type == \"start\" and process.name : \"mmc.exe\" and source.port >= 49152 and\n destination.port >= 49152 and source.ip != \"127.0.0.1\" and source.ip != \"::1\" and\n network.direction : (\"incoming\", \"ingress\") and network.transport == \"tcp\"\n ] by process.entity_id\n [process where event.type == \"start\" and process.parent.name : \"mmc.exe\"\n ] by process.parent.entity_id\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]},"id":"51ce96fb-9e52-4dad-b0ba-99b54440fc9a:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/523116c0-d89d-4d7c-82c2-39e6845a78ef:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/523116c0-d89d-4d7c-82c2-39e6845a78ef:101.0.0.json new file mode 100644 index 0000000000000..b8aa404861a79 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/523116c0-d89d-4d7c-82c2-39e6845a78ef:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS GuardDuty Detector Deletion v101.0.0","rule_id":"523116c0-d89d-4d7c-82c2-39e6845a78ef:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an Amazon GuardDuty detector. Upon deletion, GuardDuty stops monitoring the environment and all existing findings are lost.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The GuardDuty detector may be deleted by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Detector deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/guardduty/delete-detector.html","https://docs.aws.amazon.com/guardduty/latest/APIReference/API_DeleteDetector.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:guardduty.amazonaws.com and event.action:DeleteDetector and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"523116c0-d89d-4d7c-82c2-39e6845a78ef:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/523116c0-d89d-4d7c-82c2-39e6845a78ef:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/523116c0-d89d-4d7c-82c2-39e6845a78ef:101.0.1.json new file mode 100644 index 0000000000000..227090db1b6d6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/523116c0-d89d-4d7c-82c2-39e6845a78ef:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS GuardDuty Detector Deletion v101.0.1","rule_id":"523116c0-d89d-4d7c-82c2-39e6845a78ef:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an Amazon GuardDuty detector. Upon deletion, GuardDuty stops monitoring the environment and all existing findings are lost.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The GuardDuty detector may be deleted by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Detector deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/guardduty/delete-detector.html","https://docs.aws.amazon.com/guardduty/latest/APIReference/API_DeleteDetector.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:guardduty.amazonaws.com and event.action:DeleteDetector and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"523116c0-d89d-4d7c-82c2-39e6845a78ef:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/523116c0-d89d-4d7c-82c2-39e6845a78ef:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/523116c0-d89d-4d7c-82c2-39e6845a78ef:101.0.2.json new file mode 100644 index 0000000000000..0cfb5f9dbbd37 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/523116c0-d89d-4d7c-82c2-39e6845a78ef:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS GuardDuty Detector Deletion v101.0.2","rule_id":"523116c0-d89d-4d7c-82c2-39e6845a78ef:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an Amazon GuardDuty detector. Upon deletion, GuardDuty stops monitoring the environment and all existing findings are lost.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The GuardDuty detector may be deleted by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Detector deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/guardduty/delete-detector.html","https://docs.aws.amazon.com/guardduty/latest/APIReference/API_DeleteDetector.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:guardduty.amazonaws.com and event.action:DeleteDetector and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"523116c0-d89d-4d7c-82c2-39e6845a78ef:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/52376a86-ee86-4967-97ae-1a05f55816f0:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/52376a86-ee86-4967-97ae-1a05f55816f0:100.0.0.json new file mode 100644 index 0000000000000..ffd77784674ff --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/52376a86-ee86-4967-97ae-1a05f55816f0:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Linux Restricted Shell Breakout via Linux Binary(s) v100.0.0","rule_id":"52376a86-ee86-4967-97ae-1a05f55816f0:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Linux binary(s) abuse to breakout of restricted shells or environments by spawning an interactive system shell. The linux utility(s) activity of spawning shell is not a standard use of the binary for a user or system administrator. It may indicates an attempt to improve the capabilities or stability of an adversary access.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Shell Evasion via Linux Utilities\nDetection alerts from this rule indicate that a Linux utility has been abused to breakout of restricted shells or\nenvironments by spawning an interactive system shell.\nHere are some possible avenues of investigation:\n- Examine the entry point to the host and user in action via the Analyse View.\n - Identify the session entry leader and session user\n- Examine the contents of session leading to the abuse via the Session View.\n - Examine the command execution pattern in the session, which may lead to suspricous activities\n- Examine the execution of commands in the spawned shell.\n - Identify imment threat to the system from the executed commands\n - Take necessary incident response actions to contain any malicious behviour caused via this execution.\n\n### Related rules\n\n- A malicious spawned shell can execute any of the possible MITTRE ATT&CK vectors mainly to impair defences.\n- Hence its adviced to enable defence evasion and privilige escalation rules accordingly in your environment\n\n### Response and remediation\n\nInitiate the incident response process based on the outcome of the triage.\n\n- If the triage releaved suspicious netwrok activity from the malicious spawned shell,\n - Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware execution via the maliciously spawned shell,\n - Search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- If the triage revelaed defence evasion for imparing defenses\n - Isolate the involved host to prevent further post-compromise behavior.\n - Identified the disabled security guard components on the host and take necessary steps in renebaling the same.\n - If any tools have been disbaled / uninstalled or config tampered work towards reenabling the same.\n- If the triage revelaed addition of persistence mechanism exploit like auto start scripts\n - Isolate further login to the systems that can initae auto start scripts.\n - Identify the auto start scripts and disable and remove the same from the systems\n- If the triage revealed data crawling or data export via remote copy\n - Investigate credential exposure on systems compromised / used / decoded by the attacker during the data crawling\n - Intiate compromised credential deactivation and credential rotation process for all exposed crednetials.\n - Investiagte if any IPR data was accessed during the data crawling and take appropriate actions.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://gtfobins.github.io/gtfobins/apt/","https://gtfobins.github.io/gtfobins/apt-get/","https://gtfobins.github.io/gtfobins/nawk/","https://gtfobins.github.io/gtfobins/mawk/","https://gtfobins.github.io/gtfobins/awk/","https://gtfobins.github.io/gtfobins/gawk/","https://gtfobins.github.io/gtfobins/busybox/","https://gtfobins.github.io/gtfobins/c89/","https://gtfobins.github.io/gtfobins/c99/","https://gtfobins.github.io/gtfobins/cpulimit/","https://gtfobins.github.io/gtfobins/crash/","https://gtfobins.github.io/gtfobins/env/","https://gtfobins.github.io/gtfobins/expect/","https://gtfobins.github.io/gtfobins/find/","https://gtfobins.github.io/gtfobins/flock/","https://gtfobins.github.io/gtfobins/gcc/","https://gtfobins.github.io/gtfobins/mysql/","https://gtfobins.github.io/gtfobins/nice/","https://gtfobins.github.io/gtfobins/ssh/","https://gtfobins.github.io/gtfobins/vi/","https://gtfobins.github.io/gtfobins/vim/","https://gtfobins.github.io/gtfobins/capsh/","https://gtfobins.github.io/gtfobins/byebug/","https://gtfobins.github.io/gtfobins/git/","https://gtfobins.github.io/gtfobins/ftp/"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","GTFOBins"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.004","name":"Unix Shell","reference":"https://attack.mitre.org/techniques/T1059/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n\n /* launch shells from unusual process */\n (process.name == \"capsh\" and process.args == \"--\") or\n\n /* launching shells from unusual parents or parent+arg combos */\n (process.name in (\"bash\", \"sh\", \"dash\",\"ash\") and\n (process.parent.name in (\"byebug\",\"git\",\"ftp\",\"strace\")) or\n\n /* shells specified in parent args */\n /* nice rule is broken in 8.2 */\n (process.parent.args in (\"/bin/sh\", \"/bin/bash\", \"/bin/dash\", \"/bin/ash\", \"sh\", \"bash\", \"dash\", \"ash\") and\n (\n (process.parent.name == \"nice\") or\n (process.parent.name == \"cpulimit\" and process.parent.args == \"-f\") or\n (process.parent.name == \"find\" and process.parent.args == \"-exec\" and process.parent.args == \";\") or\n (process.parent.name == \"flock\" and process.parent.args == \"-u\" and process.parent.args == \"/\")\n )\n ) or\n\n /* shells specified in args */\n (process.args in (\"/bin/sh\", \"/bin/bash\", \"/bin/dash\", \"/bin/ash\", \"sh\", \"bash\", \"dash\", \"ash\") and\n (process.parent.name == \"crash\" and process.parent.args == \"-h\") or\n (process.name == \"sensible-pager\" and process.parent.name in (\"apt\", \"apt-get\") and process.parent.args == \"changelog\")\n /* scope to include more sensible-pager invoked shells with different parent process to reduce noise and remove false positives */\n )\n ) or\n (process.name == \"busybox\" and process.args_count == 2 and process.args in (\"/bin/sh\", \"/bin/bash\", \"/bin/dash\", \"/bin/ash\", \"sh\", \"bash\", \"dash\", \"ash\") )or\n (process.name == \"env\" and process.args_count == 2 and process.args in (\"/bin/sh\", \"/bin/bash\", \"/bin/dash\", \"/bin/ash\", \"sh\", \"bash\", \"dash\", \"ash\")) or\n (process.parent.name in (\"vi\", \"vim\") and process.parent.args == \"-c\" and process.parent.args in (\":!/bin/bash\", \":!/bin/sh\", \":!bash\", \":!sh\")) or\n (process.parent.name in (\"c89\",\"c99\", \"gcc\") and process.parent.args in (\"sh,-s\", \"bash,-s\", \"dash,-s\", \"ash,-s\", \"/bin/sh,-s\", \"/bin/bash,-s\", \"/bin/dash,-s\", \"/bin/ash,-s\") and process.parent.args == \"-wrapper\") or\n (process.parent.name == \"expect\" and process.parent.args == \"-c\" and process.parent.args in (\"spawn /bin/sh;interact\", \"spawn /bin/bash;interact\", \"spawn /bin/dash;interact\", \"spawn sh;interact\", \"spawn bash;interact\", \"spawn dash;interact\")) or\n (process.parent.name == \"mysql\" and process.parent.args == \"-e\" and process.parent.args in (\"\\\\!*sh\", \"\\\\!*bash\", \"\\\\!*dash\", \"\\\\!*/bin/sh\", \"\\\\!*/bin/bash\", \"\\\\!*/bin/dash\")) or\n (process.parent.name == \"ssh\" and process.parent.args == \"-o\" and process.parent.args in (\"ProxyCommand=;sh 0<&2 1>&2\", \"ProxyCommand=;bash 0<&2 1>&2\", \"ProxyCommand=;dash 0<&2 1>&2\", \"ProxyCommand=;/bin/sh 0<&2 1>&2\", \"ProxyCommand=;/bin/bash 0<&2 1>&2\", \"ProxyCommand=;/bin/dash 0<&2 1>&2\")) or\n (process.parent.name in (\"nawk\", \"mawk\", \"awk\", \"gawk\") and process.parent.args : \"BEGIN {system(*)}\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"The session view analysis for the command alerted is avalible in versions 8.2 and above."},"id":"52376a86-ee86-4967-97ae-1a05f55816f0:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/52376a86-ee86-4967-97ae-1a05f55816f0:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/52376a86-ee86-4967-97ae-1a05f55816f0:100.0.1.json new file mode 100644 index 0000000000000..691d2cc2186ce --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/52376a86-ee86-4967-97ae-1a05f55816f0:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Linux Restricted Shell Breakout via Linux Binary(s) v100.0.1","rule_id":"52376a86-ee86-4967-97ae-1a05f55816f0:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Linux binary(s) abuse to breakout of restricted shells or environments by spawning an interactive system shell. The linux utility(s) activity of spawning shell is not a standard use of the binary for a user or system administrator. It may indicates an attempt to improve the capabilities or stability of an adversary access.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Shell Evasion via Linux Utilities\nDetection alerts from this rule indicate that a Linux utility has been abused to breakout of restricted shells or\nenvironments by spawning an interactive system shell.\nHere are some possible avenues of investigation:\n- Examine the entry point to the host and user in action via the Analyse View.\n - Identify the session entry leader and session user\n- Examine the contents of session leading to the abuse via the Session View.\n - Examine the command execution pattern in the session, which may lead to suspricous activities\n- Examine the execution of commands in the spawned shell.\n - Identify imment threat to the system from the executed commands\n - Take necessary incident response actions to contain any malicious behviour caused via this execution.\n\n### Related rules\n\n- A malicious spawned shell can execute any of the possible MITTRE ATT&CK vectors mainly to impair defences.\n- Hence its adviced to enable defence evasion and privilige escalation rules accordingly in your environment\n\n### Response and remediation\n\nInitiate the incident response process based on the outcome of the triage.\n\n- If the triage releaved suspicious netwrok activity from the malicious spawned shell,\n - Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware execution via the maliciously spawned shell,\n - Search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- If the triage revelaed defence evasion for imparing defenses\n - Isolate the involved host to prevent further post-compromise behavior.\n - Identified the disabled security guard components on the host and take necessary steps in renebaling the same.\n - If any tools have been disbaled / uninstalled or config tampered work towards reenabling the same.\n- If the triage revelaed addition of persistence mechanism exploit like auto start scripts\n - Isolate further login to the systems that can initae auto start scripts.\n - Identify the auto start scripts and disable and remove the same from the systems\n- If the triage revealed data crawling or data export via remote copy\n - Investigate credential exposure on systems compromised / used / decoded by the attacker during the data crawling\n - Intiate compromised credential deactivation and credential rotation process for all exposed crednetials.\n - Investiagte if any IPR data was accessed during the data crawling and take appropriate actions.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://gtfobins.github.io/gtfobins/apt/","https://gtfobins.github.io/gtfobins/apt-get/","https://gtfobins.github.io/gtfobins/nawk/","https://gtfobins.github.io/gtfobins/mawk/","https://gtfobins.github.io/gtfobins/awk/","https://gtfobins.github.io/gtfobins/gawk/","https://gtfobins.github.io/gtfobins/busybox/","https://gtfobins.github.io/gtfobins/c89/","https://gtfobins.github.io/gtfobins/c99/","https://gtfobins.github.io/gtfobins/cpulimit/","https://gtfobins.github.io/gtfobins/crash/","https://gtfobins.github.io/gtfobins/env/","https://gtfobins.github.io/gtfobins/expect/","https://gtfobins.github.io/gtfobins/find/","https://gtfobins.github.io/gtfobins/flock/","https://gtfobins.github.io/gtfobins/gcc/","https://gtfobins.github.io/gtfobins/mysql/","https://gtfobins.github.io/gtfobins/nice/","https://gtfobins.github.io/gtfobins/ssh/","https://gtfobins.github.io/gtfobins/vi/","https://gtfobins.github.io/gtfobins/vim/","https://gtfobins.github.io/gtfobins/capsh/","https://gtfobins.github.io/gtfobins/byebug/","https://gtfobins.github.io/gtfobins/git/","https://gtfobins.github.io/gtfobins/ftp/"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","GTFOBins"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.004","name":"Unix Shell","reference":"https://attack.mitre.org/techniques/T1059/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n\n /* launch shells from unusual process */\n (process.name == \"capsh\" and process.args == \"--\") or\n\n /* launching shells from unusual parents or parent+arg combos */\n (process.name in (\"bash\", \"sh\", \"dash\",\"ash\") and\n (process.parent.name in (\"byebug\",\"git\",\"ftp\",\"strace\")) or\n\n /* shells specified in parent args */\n /* nice rule is broken in 8.2 */\n (process.parent.args in (\"/bin/sh\", \"/bin/bash\", \"/bin/dash\", \"/bin/ash\", \"sh\", \"bash\", \"dash\", \"ash\") and\n (\n (process.parent.name == \"nice\") or\n (process.parent.name == \"cpulimit\" and process.parent.args == \"-f\") or\n (process.parent.name == \"find\" and process.parent.args == \"-exec\" and process.parent.args == \";\") or\n (process.parent.name == \"flock\" and process.parent.args == \"-u\" and process.parent.args == \"/\")\n )\n ) or\n\n /* shells specified in args */\n (process.args in (\"/bin/sh\", \"/bin/bash\", \"/bin/dash\", \"/bin/ash\", \"sh\", \"bash\", \"dash\", \"ash\") and\n (process.parent.name == \"crash\" and process.parent.args == \"-h\") or\n (process.name == \"sensible-pager\" and process.parent.name in (\"apt\", \"apt-get\") and process.parent.args == \"changelog\")\n /* scope to include more sensible-pager invoked shells with different parent process to reduce noise and remove false positives */\n )\n ) or\n (process.name == \"busybox\" and process.args_count == 2 and process.args in (\"/bin/sh\", \"/bin/bash\", \"/bin/dash\", \"/bin/ash\", \"sh\", \"bash\", \"dash\", \"ash\") )or\n (process.name == \"env\" and process.args_count == 2 and process.args in (\"/bin/sh\", \"/bin/bash\", \"/bin/dash\", \"/bin/ash\", \"sh\", \"bash\", \"dash\", \"ash\")) or\n (process.parent.name in (\"vi\", \"vim\") and process.parent.args == \"-c\" and process.parent.args in (\":!/bin/bash\", \":!/bin/sh\", \":!bash\", \":!sh\")) or\n (process.parent.name in (\"c89\",\"c99\", \"gcc\") and process.parent.args in (\"sh,-s\", \"bash,-s\", \"dash,-s\", \"ash,-s\", \"/bin/sh,-s\", \"/bin/bash,-s\", \"/bin/dash,-s\", \"/bin/ash,-s\") and process.parent.args == \"-wrapper\") or\n (process.parent.name == \"expect\" and process.parent.args == \"-c\" and process.parent.args in (\"spawn /bin/sh;interact\", \"spawn /bin/bash;interact\", \"spawn /bin/dash;interact\", \"spawn sh;interact\", \"spawn bash;interact\", \"spawn dash;interact\")) or\n (process.parent.name == \"mysql\" and process.parent.args == \"-e\" and process.parent.args in (\"\\\\!*sh\", \"\\\\!*bash\", \"\\\\!*dash\", \"\\\\!*/bin/sh\", \"\\\\!*/bin/bash\", \"\\\\!*/bin/dash\")) or\n (process.parent.name == \"ssh\" and process.parent.args == \"-o\" and process.parent.args in (\"ProxyCommand=;sh 0<&2 1>&2\", \"ProxyCommand=;bash 0<&2 1>&2\", \"ProxyCommand=;dash 0<&2 1>&2\", \"ProxyCommand=;/bin/sh 0<&2 1>&2\", \"ProxyCommand=;/bin/bash 0<&2 1>&2\", \"ProxyCommand=;/bin/dash 0<&2 1>&2\")) or\n (process.parent.name in (\"nawk\", \"mawk\", \"awk\", \"gawk\") and process.parent.args : \"BEGIN {system(*)}\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"The session view analysis for the command alerted is avalible in versions 8.2 and above."},"id":"52376a86-ee86-4967-97ae-1a05f55816f0:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/52376a86-ee86-4967-97ae-1a05f55816f0:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/52376a86-ee86-4967-97ae-1a05f55816f0:100.0.2.json new file mode 100644 index 0000000000000..5b3254f652104 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/52376a86-ee86-4967-97ae-1a05f55816f0:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Linux Restricted Shell Breakout via Linux Binary(s) v100.0.2","rule_id":"52376a86-ee86-4967-97ae-1a05f55816f0:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Linux binary(s) abuse to breakout of restricted shells or environments by spawning an interactive system shell. The linux utility(s) activity of spawning shell is not a standard use of the binary for a user or system administrator. It may indicates an attempt to improve the capabilities or stability of an adversary access.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Shell Evasion via Linux Utilities\nDetection alerts from this rule indicate that a Linux utility has been abused to breakout of restricted shells or\nenvironments by spawning an interactive system shell.\nHere are some possible avenues of investigation:\n- Examine the entry point to the host and user in action via the Analyse View.\n - Identify the session entry leader and session user\n- Examine the contents of session leading to the abuse via the Session View.\n - Examine the command execution pattern in the session, which may lead to suspricous activities\n- Examine the execution of commands in the spawned shell.\n - Identify imment threat to the system from the executed commands\n - Take necessary incident response actions to contain any malicious behviour caused via this execution.\n\n### Related rules\n\n- A malicious spawned shell can execute any of the possible MITTRE ATT&CK vectors mainly to impair defences.\n- Hence its adviced to enable defence evasion and privilige escalation rules accordingly in your environment\n\n### Response and remediation\n\nInitiate the incident response process based on the outcome of the triage.\n\n- If the triage releaved suspicious netwrok activity from the malicious spawned shell,\n - Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware execution via the maliciously spawned shell,\n - Search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- If the triage revelaed defence evasion for imparing defenses\n - Isolate the involved host to prevent further post-compromise behavior.\n - Identified the disabled security guard components on the host and take necessary steps in renebaling the same.\n - If any tools have been disbaled / uninstalled or config tampered work towards reenabling the same.\n- If the triage revelaed addition of persistence mechanism exploit like auto start scripts\n - Isolate further login to the systems that can initae auto start scripts.\n - Identify the auto start scripts and disable and remove the same from the systems\n- If the triage revealed data crawling or data export via remote copy\n - Investigate credential exposure on systems compromised / used / decoded by the attacker during the data crawling\n - Intiate compromised credential deactivation and credential rotation process for all exposed crednetials.\n - Investiagte if any IPR data was accessed during the data crawling and take appropriate actions.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://gtfobins.github.io/gtfobins/apt/","https://gtfobins.github.io/gtfobins/apt-get/","https://gtfobins.github.io/gtfobins/nawk/","https://gtfobins.github.io/gtfobins/mawk/","https://gtfobins.github.io/gtfobins/awk/","https://gtfobins.github.io/gtfobins/gawk/","https://gtfobins.github.io/gtfobins/busybox/","https://gtfobins.github.io/gtfobins/c89/","https://gtfobins.github.io/gtfobins/c99/","https://gtfobins.github.io/gtfobins/cpulimit/","https://gtfobins.github.io/gtfobins/crash/","https://gtfobins.github.io/gtfobins/env/","https://gtfobins.github.io/gtfobins/expect/","https://gtfobins.github.io/gtfobins/find/","https://gtfobins.github.io/gtfobins/flock/","https://gtfobins.github.io/gtfobins/gcc/","https://gtfobins.github.io/gtfobins/mysql/","https://gtfobins.github.io/gtfobins/nice/","https://gtfobins.github.io/gtfobins/ssh/","https://gtfobins.github.io/gtfobins/vi/","https://gtfobins.github.io/gtfobins/vim/","https://gtfobins.github.io/gtfobins/capsh/","https://gtfobins.github.io/gtfobins/byebug/","https://gtfobins.github.io/gtfobins/git/","https://gtfobins.github.io/gtfobins/ftp/"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","GTFOBins"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.004","name":"Unix Shell","reference":"https://attack.mitre.org/techniques/T1059/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n\n /* launch shells from unusual process */\n (process.name == \"capsh\" and process.args == \"--\") or\n\n /* launching shells from unusual parents or parent+arg combos */\n (process.name in (\"bash\", \"sh\", \"dash\",\"ash\") and\n (process.parent.name in (\"byebug\",\"git\",\"ftp\",\"strace\")) or\n\n /* shells specified in parent args */\n /* nice rule is broken in 8.2 */\n (process.parent.args in (\"/bin/sh\", \"/bin/bash\", \"/bin/dash\", \"/bin/ash\", \"sh\", \"bash\", \"dash\", \"ash\") and\n (\n (process.parent.name == \"nice\") or\n (process.parent.name == \"cpulimit\" and process.parent.args == \"-f\") or\n (process.parent.name == \"find\" and process.parent.args == \"-exec\" and process.parent.args == \";\") or\n (process.parent.name == \"flock\" and process.parent.args == \"-u\" and process.parent.args == \"/\")\n )\n ) or\n\n /* shells specified in args */\n (process.args in (\"/bin/sh\", \"/bin/bash\", \"/bin/dash\", \"/bin/ash\", \"sh\", \"bash\", \"dash\", \"ash\") and\n (process.parent.name == \"crash\" and process.parent.args == \"-h\") or\n (process.name == \"sensible-pager\" and process.parent.name in (\"apt\", \"apt-get\") and process.parent.args == \"changelog\")\n /* scope to include more sensible-pager invoked shells with different parent process to reduce noise and remove false positives */\n )\n ) or\n (process.name == \"busybox\" and process.args_count == 2 and process.args in (\"/bin/sh\", \"/bin/bash\", \"/bin/dash\", \"/bin/ash\", \"sh\", \"bash\", \"dash\", \"ash\") )or\n (process.name == \"env\" and process.args_count == 2 and process.args in (\"/bin/sh\", \"/bin/bash\", \"/bin/dash\", \"/bin/ash\", \"sh\", \"bash\", \"dash\", \"ash\")) or\n (process.parent.name in (\"vi\", \"vim\") and process.parent.args == \"-c\" and process.parent.args in (\":!/bin/bash\", \":!/bin/sh\", \":!bash\", \":!sh\")) or\n (process.parent.name in (\"c89\",\"c99\", \"gcc\") and process.parent.args in (\"sh,-s\", \"bash,-s\", \"dash,-s\", \"ash,-s\", \"/bin/sh,-s\", \"/bin/bash,-s\", \"/bin/dash,-s\", \"/bin/ash,-s\") and process.parent.args == \"-wrapper\") or\n (process.parent.name == \"expect\" and process.parent.args == \"-c\" and process.parent.args in (\"spawn /bin/sh;interact\", \"spawn /bin/bash;interact\", \"spawn /bin/dash;interact\", \"spawn sh;interact\", \"spawn bash;interact\", \"spawn dash;interact\")) or\n (process.parent.name == \"mysql\" and process.parent.args == \"-e\" and process.parent.args in (\"\\\\!*sh\", \"\\\\!*bash\", \"\\\\!*dash\", \"\\\\!*/bin/sh\", \"\\\\!*/bin/bash\", \"\\\\!*/bin/dash\")) or\n (process.parent.name == \"ssh\" and process.parent.args == \"-o\" and process.parent.args in (\"ProxyCommand=;sh 0<&2 1>&2\", \"ProxyCommand=;bash 0<&2 1>&2\", \"ProxyCommand=;dash 0<&2 1>&2\", \"ProxyCommand=;/bin/sh 0<&2 1>&2\", \"ProxyCommand=;/bin/bash 0<&2 1>&2\", \"ProxyCommand=;/bin/dash 0<&2 1>&2\")) or\n (process.parent.name in (\"nawk\", \"mawk\", \"awk\", \"gawk\") and process.parent.args : \"BEGIN {system(*)}\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"The session view analysis for the command alerted is avalible in versions 8.2 and above."},"id":"52376a86-ee86-4967-97ae-1a05f55816f0:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/52aaab7b-b51c-441a-89ce-4387b3aea886:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/52aaab7b-b51c-441a-89ce-4387b3aea886:102.0.0.json new file mode 100644 index 0000000000000..570d472081991 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/52aaab7b-b51c-441a-89ce-4387b3aea886:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Network Connection via RunDLL32 v102.0.0","rule_id":"52aaab7b-b51c-441a-89ce-4387b3aea886:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual instances of rundll32.exe making outbound network connections. This may indicate adversarial Command and Control activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Network Connection via RunDLL32\n\nRunDLL32 is a built-in Windows utility and also a vital component used by the operating system itself. The functionality\nprovided by RunDLL32 to execute Dynamic Link Libraries (DLLs) is widely abused by attackers, because it makes it hard to\ndifferentiate malicious activity from normal operations.\n\nThis rule looks for external network connections established using RunDLL32 when the utility is being executed with no\narguments, which can potentially indicate command and control activity.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate the target host that RunDLL32 is communicating with.\n - Check if the domain is newly registered or unexpected.\n - Check the reputation of the domain or IP address.\n- Identify the target computer and its role in the IT environment.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml","https://redcanary.com/threat-detection-report/techniques/rundll32/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.011","name":"Rundll32","reference":"https://attack.mitre.org/techniques/T1218/011/"}]}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan=1m\n [process where event.type == \"start\" and process.name : \"rundll32.exe\" and process.args_count == 1]\n [network where process.name : \"rundll32.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\",\n \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\",\n \"100.64.0.0/10\", \"192.175.48.0/24\",\"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"52aaab7b-b51c-441a-89ce-4387b3aea886:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/52aaab7b-b51c-441a-89ce-4387b3aea886:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/52aaab7b-b51c-441a-89ce-4387b3aea886:102.0.1.json new file mode 100644 index 0000000000000..9d3bbdf82c481 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/52aaab7b-b51c-441a-89ce-4387b3aea886:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Network Connection via RunDLL32 v102.0.1","rule_id":"52aaab7b-b51c-441a-89ce-4387b3aea886:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual instances of rundll32.exe making outbound network connections. This may indicate adversarial Command and Control activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Network Connection via RunDLL32\n\nRunDLL32 is a built-in Windows utility and also a vital component used by the operating system itself. The functionality\nprovided by RunDLL32 to execute Dynamic Link Libraries (DLLs) is widely abused by attackers, because it makes it hard to\ndifferentiate malicious activity from normal operations.\n\nThis rule looks for external network connections established using RunDLL32 when the utility is being executed with no\narguments, which can potentially indicate command and control activity.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate the target host that RunDLL32 is communicating with.\n - Check if the domain is newly registered or unexpected.\n - Check the reputation of the domain or IP address.\n- Identify the target computer and its role in the IT environment.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml","https://redcanary.com/threat-detection-report/techniques/rundll32/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.011","name":"Rundll32","reference":"https://attack.mitre.org/techniques/T1218/011/"}]}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan=1m\n [process where event.type == \"start\" and process.name : \"rundll32.exe\" and process.args_count == 1]\n [network where process.name : \"rundll32.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\",\n \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\",\n \"100.64.0.0/10\", \"192.175.48.0/24\",\"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"52aaab7b-b51c-441a-89ce-4387b3aea886:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/52aaab7b-b51c-441a-89ce-4387b3aea886:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/52aaab7b-b51c-441a-89ce-4387b3aea886:102.0.2.json new file mode 100644 index 0000000000000..da5e2039de961 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/52aaab7b-b51c-441a-89ce-4387b3aea886:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Network Connection via RunDLL32 v102.0.2","rule_id":"52aaab7b-b51c-441a-89ce-4387b3aea886:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual instances of rundll32.exe making outbound network connections. This may indicate adversarial Command and Control activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Network Connection via RunDLL32\n\nRunDLL32 is a built-in Windows utility and also a vital component used by the operating system itself. The functionality\nprovided by RunDLL32 to execute Dynamic Link Libraries (DLLs) is widely abused by attackers, because it makes it hard to\ndifferentiate malicious activity from normal operations.\n\nThis rule looks for external network connections established using RunDLL32 when the utility is being executed with no\narguments, which can potentially indicate command and control activity.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate the target host that RunDLL32 is communicating with.\n - Check if the domain is newly registered or unexpected.\n - Check the reputation of the domain or IP address.\n- Identify the target computer and its role in the IT environment.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml","https://redcanary.com/threat-detection-report/techniques/rundll32/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.011","name":"Rundll32","reference":"https://attack.mitre.org/techniques/T1218/011/"}]}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan=1m\n [process where event.type == \"start\" and process.name : \"rundll32.exe\" and process.args_count == 1]\n [network where process.name : \"rundll32.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\",\n \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\",\n \"100.64.0.0/10\", \"192.175.48.0/24\",\"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"52aaab7b-b51c-441a-89ce-4387b3aea886:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/52afbdc5-db15-485e-bc24-f5707f820c4b:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/52afbdc5-db15-485e-bc24-f5707f820c4b:100.0.0.json new file mode 100644 index 0000000000000..18fbc13e5c0a4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/52afbdc5-db15-485e-bc24-f5707f820c4b:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Linux Network Activity v100.0.0","rule_id":"52afbdc5-db15-485e-bc24-f5707f820c4b:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Linux processes that do not usually use the network but have unexpected network activity, which can indicate command-and-control, lateral movement, persistence, or data exfiltration activity. A process with unusual network activity can denote process exploitation or injection, where the process is used to run persistence mechanisms that allow a malicious actor remote access or control of the host, data exfiltration, and execution of unauthorized network applications.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Network Activity\nDetection alerts from this rule indicate the presence of network activity from a Linux process for which network activity is rare and unusual. Here are some possible avenues of investigation:\n- Consider the IP addresses and ports. Are these used by normal but infrequent network workflows? Are they expected or unexpected?\n- If the destination IP address is remote or external, does it associate with an expected domain, organization or geography? Note: avoid interacting directly with suspected malicious IP addresses.\n- Consider the user as identified by the username field. Is this network activity part of an expected workflow for the user who ran the program?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business or maintenance process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.","author":["Elastic"],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Linux","Threat Detection","ML"],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_anomalous_network_activity"],"type":"machine_learning"},"id":"52afbdc5-db15-485e-bc24-f5707f820c4b:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/52afbdc5-db15-485e-bc24-f5707f820c4b:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/52afbdc5-db15-485e-bc24-f5707f820c4b:100.0.1.json new file mode 100644 index 0000000000000..24d226e4b7804 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/52afbdc5-db15-485e-bc24-f5707f820c4b:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Linux Network Activity v100.0.1","rule_id":"52afbdc5-db15-485e-bc24-f5707f820c4b:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Linux processes that do not usually use the network but have unexpected network activity, which can indicate command-and-control, lateral movement, persistence, or data exfiltration activity. A process with unusual network activity can denote process exploitation or injection, where the process is used to run persistence mechanisms that allow a malicious actor remote access or control of the host, data exfiltration, and execution of unauthorized network applications.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Network Activity\nDetection alerts from this rule indicate the presence of network activity from a Linux process for which network activity is rare and unusual. Here are some possible avenues of investigation:\n- Consider the IP addresses and ports. Are these used by normal but infrequent network workflows? Are they expected or unexpected?\n- If the destination IP address is remote or external, does it associate with an expected domain, organization or geography? Note: avoid interacting directly with suspected malicious IP addresses.\n- Consider the user as identified by the username field. Is this network activity part of an expected workflow for the user who ran the program?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business or maintenance process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.","author":["Elastic"],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Linux","Threat Detection","ML"],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_anomalous_network_activity"],"type":"machine_learning"},"id":"52afbdc5-db15-485e-bc24-f5707f820c4b:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/52afbdc5-db15-485e-bc24-f5707f820c4b:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/52afbdc5-db15-485e-bc24-f5707f820c4b:100.0.2.json new file mode 100644 index 0000000000000..68ed8e3071ccb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/52afbdc5-db15-485e-bc24-f5707f820c4b:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Linux Network Activity v100.0.2","rule_id":"52afbdc5-db15-485e-bc24-f5707f820c4b:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Linux processes that do not usually use the network but have unexpected network activity, which can indicate command-and-control, lateral movement, persistence, or data exfiltration activity. A process with unusual network activity can denote process exploitation or injection, where the process is used to run persistence mechanisms that allow a malicious actor remote access or control of the host, data exfiltration, and execution of unauthorized network applications.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Network Activity\nDetection alerts from this rule indicate the presence of network activity from a Linux process for which network activity is rare and unusual. Here are some possible avenues of investigation:\n- Consider the IP addresses and ports. Are these used by normal but infrequent network workflows? Are they expected or unexpected?\n- If the destination IP address is remote or external, does it associate with an expected domain, organization or geography? Note: avoid interacting directly with suspected malicious IP addresses.\n- Consider the user as identified by the username field. Is this network activity part of an expected workflow for the user who ran the program?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business or maintenance process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.","author":["Elastic"],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Linux","Threat Detection","ML"],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_anomalous_network_activity"],"type":"machine_learning"},"id":"52afbdc5-db15-485e-bc24-f5707f820c4b:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/530178da-92ea-43ce-94c2-8877a826783d:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/530178da-92ea-43ce-94c2-8877a826783d:100.0.0.json new file mode 100644 index 0000000000000..2c1a72cbdf73f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/530178da-92ea-43ce-94c2-8877a826783d:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious CronTab Creation or Modification v100.0.0","rule_id":"530178da-92ea-43ce-94c2-8877a826783d:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to create or modify a crontab via a process that is not crontab (i.e python, osascript, etc.). This activity should not be highly prevalent and could indicate the use of cron as a persistence mechanism by a threat actor.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://taomm.org/PDFs/vol1/CH%200x02%20Persistence.pdf","https://theevilbit.github.io/beyond/beyond_0004/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.003","name":"Cron","reference":"https://attack.mitre.org/techniques/T1053/003/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and process.name != null and\n file.path : \"/private/var/at/tabs/*\" and not process.executable == \"/usr/bin/crontab\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"530178da-92ea-43ce-94c2-8877a826783d:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/530178da-92ea-43ce-94c2-8877a826783d:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/530178da-92ea-43ce-94c2-8877a826783d:100.0.1.json new file mode 100644 index 0000000000000..a1d6ff9ceaf29 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/530178da-92ea-43ce-94c2-8877a826783d:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious CronTab Creation or Modification v100.0.1","rule_id":"530178da-92ea-43ce-94c2-8877a826783d:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to create or modify a crontab via a process that is not crontab (i.e python, osascript, etc.). This activity should not be highly prevalent and could indicate the use of cron as a persistence mechanism by a threat actor.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://taomm.org/PDFs/vol1/CH%200x02%20Persistence.pdf","https://theevilbit.github.io/beyond/beyond_0004/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.003","name":"Cron","reference":"https://attack.mitre.org/techniques/T1053/003/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and process.name != null and\n file.path : \"/private/var/at/tabs/*\" and not process.executable == \"/usr/bin/crontab\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"530178da-92ea-43ce-94c2-8877a826783d:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/530178da-92ea-43ce-94c2-8877a826783d:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/530178da-92ea-43ce-94c2-8877a826783d:100.0.2.json new file mode 100644 index 0000000000000..952042ee7cb9a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/530178da-92ea-43ce-94c2-8877a826783d:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious CronTab Creation or Modification v100.0.2","rule_id":"530178da-92ea-43ce-94c2-8877a826783d:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to create or modify a crontab via a process that is not crontab (i.e python, osascript, etc.). This activity should not be highly prevalent and could indicate the use of cron as a persistence mechanism by a threat actor.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://taomm.org/PDFs/vol1/CH%200x02%20Persistence.pdf","https://theevilbit.github.io/beyond/beyond_0004/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.003","name":"Cron","reference":"https://attack.mitre.org/techniques/T1053/003/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and process.name != null and\n file.path : \"/private/var/at/tabs/*\" and not process.executable == \"/usr/bin/crontab\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"530178da-92ea-43ce-94c2-8877a826783d:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/536997f7-ae73-447d-a12d-bff1e8f5f0a0:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/536997f7-ae73-447d-a12d-bff1e8f5f0a0:101.0.0.json new file mode 100644 index 0000000000000..6d88c28bd08f3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/536997f7-ae73-447d-a12d-bff1e8f5f0a0:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS EFS File System or Mount Deleted v101.0.0","rule_id":"536997f7-ae73-447d-a12d-bff1e8f5f0a0:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when an EFS File System or Mount is deleted. An adversary could break any file system using the mount target that is being deleted, which might disrupt instances or applications using those mounts. The mount must be deleted prior to deleting the File System, or the adversary will be unable to delete the File System.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["File System or Mount being deleted may be performed by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. File System Mount deletion by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/efs/latest/ug/API_DeleteFileSystem.html","https://docs.aws.amazon.com/efs/latest/ug/API_DeleteMountTarget.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Data Protection"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:elasticfilesystem.amazonaws.com and\nevent.action:(DeleteMountTarget or DeleteFileSystem) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"536997f7-ae73-447d-a12d-bff1e8f5f0a0:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/536997f7-ae73-447d-a12d-bff1e8f5f0a0:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/536997f7-ae73-447d-a12d-bff1e8f5f0a0:101.0.1.json new file mode 100644 index 0000000000000..bdadbbadc103e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/536997f7-ae73-447d-a12d-bff1e8f5f0a0:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS EFS File System or Mount Deleted v101.0.1","rule_id":"536997f7-ae73-447d-a12d-bff1e8f5f0a0:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when an EFS File System or Mount is deleted. An adversary could break any file system using the mount target that is being deleted, which might disrupt instances or applications using those mounts. The mount must be deleted prior to deleting the File System, or the adversary will be unable to delete the File System.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["File System or Mount being deleted may be performed by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. File System Mount deletion by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/efs/latest/ug/API_DeleteFileSystem.html","https://docs.aws.amazon.com/efs/latest/ug/API_DeleteMountTarget.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Data Protection"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:elasticfilesystem.amazonaws.com and\nevent.action:(DeleteMountTarget or DeleteFileSystem) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"536997f7-ae73-447d-a12d-bff1e8f5f0a0:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/536997f7-ae73-447d-a12d-bff1e8f5f0a0:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/536997f7-ae73-447d-a12d-bff1e8f5f0a0:101.0.2.json new file mode 100644 index 0000000000000..dcd98dbea0a06 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/536997f7-ae73-447d-a12d-bff1e8f5f0a0:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS EFS File System or Mount Deleted v101.0.2","rule_id":"536997f7-ae73-447d-a12d-bff1e8f5f0a0:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when an EFS File System or Mount is deleted. An adversary could break any file system using the mount target that is being deleted, which might disrupt instances or applications using those mounts. The mount must be deleted prior to deleting the File System, or the adversary will be unable to delete the File System.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["File System or Mount being deleted may be performed by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. File System Mount deletion by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/efs/latest/ug/API_DeleteFileSystem.html","https://docs.aws.amazon.com/efs/latest/ug/API_DeleteMountTarget.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Data Protection"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:elasticfilesystem.amazonaws.com and\nevent.action:(DeleteMountTarget or DeleteFileSystem) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"536997f7-ae73-447d-a12d-bff1e8f5f0a0:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5370d4cd-2bb3-4d71-abf5-1e1d0ff5a2de:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5370d4cd-2bb3-4d71-abf5-1e1d0ff5a2de:101.0.0.json new file mode 100644 index 0000000000000..1311908ecf68b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5370d4cd-2bb3-4d71-abf5-1e1d0ff5a2de:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Diagnostic Settings Deletion v101.0.0","rule_id":"5370d4cd-2bb3-4d71-abf5-1e1d0ff5a2de:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of diagnostic settings in Azure, which send platform logs and metrics to different destinations. An adversary may delete diagnostic settings in an attempt to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Deletion of diagnostic settings may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Diagnostic settings deletion from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/azure-monitor/platform/diagnostic-settings"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.INSIGHTS/DIAGNOSTICSETTINGS/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"5370d4cd-2bb3-4d71-abf5-1e1d0ff5a2de:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5370d4cd-2bb3-4d71-abf5-1e1d0ff5a2de:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5370d4cd-2bb3-4d71-abf5-1e1d0ff5a2de:101.0.1.json new file mode 100644 index 0000000000000..077bb3e49452f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5370d4cd-2bb3-4d71-abf5-1e1d0ff5a2de:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Diagnostic Settings Deletion v101.0.1","rule_id":"5370d4cd-2bb3-4d71-abf5-1e1d0ff5a2de:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of diagnostic settings in Azure, which send platform logs and metrics to different destinations. An adversary may delete diagnostic settings in an attempt to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Deletion of diagnostic settings may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Diagnostic settings deletion from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/azure-monitor/platform/diagnostic-settings"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.INSIGHTS/DIAGNOSTICSETTINGS/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"5370d4cd-2bb3-4d71-abf5-1e1d0ff5a2de:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5370d4cd-2bb3-4d71-abf5-1e1d0ff5a2de:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5370d4cd-2bb3-4d71-abf5-1e1d0ff5a2de:101.0.2.json new file mode 100644 index 0000000000000..de40501dce203 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5370d4cd-2bb3-4d71-abf5-1e1d0ff5a2de:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Diagnostic Settings Deletion v101.0.2","rule_id":"5370d4cd-2bb3-4d71-abf5-1e1d0ff5a2de:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of diagnostic settings in Azure, which send platform logs and metrics to different destinations. An adversary may delete diagnostic settings in an attempt to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Deletion of diagnostic settings may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Diagnostic settings deletion from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/azure-monitor/platform/diagnostic-settings"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.INSIGHTS/DIAGNOSTICSETTINGS/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"5370d4cd-2bb3-4d71-abf5-1e1d0ff5a2de:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/53a26770-9cbd-40c5-8b57-61d01a325e14:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/53a26770-9cbd-40c5-8b57-61d01a325e14:102.0.0.json new file mode 100644 index 0000000000000..5ff183aee1bb8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/53a26770-9cbd-40c5-8b57-61d01a325e14:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious PDF Reader Child Process v102.0.0","rule_id":"53a26770-9cbd-40c5-8b57-61d01a325e14:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious child processes of PDF reader applications. These child processes are often launched via exploitation of PDF applications or social engineering.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious PDF Reader Child Process\n\nPDF is a common file type used in corporate environments and most machines have software to handle these files. This\ncreates a vector where attackers can exploit the engines and technology behind this class of software for initial access\nor privilege escalation.\n\nThis rule looks for commonly abused built-in utilities spawned by a PDF reader process, which is likely a malicious behavior.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve PDF documents received and opened by the user that could cause this behavior. Common locations include, but\nare not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1204","name":"User Execution","reference":"https://attack.mitre.org/techniques/T1204/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"AcroRd32.exe\",\n \"Acrobat.exe\",\n \"FoxitPhantomPDF.exe\",\n \"FoxitReader.exe\") and\n process.name : (\"arp.exe\", \"dsquery.exe\", \"dsget.exe\", \"gpresult.exe\", \"hostname.exe\", \"ipconfig.exe\", \"nbtstat.exe\",\n \"net.exe\", \"net1.exe\", \"netsh.exe\", \"netstat.exe\", \"nltest.exe\", \"ping.exe\", \"qprocess.exe\",\n \"quser.exe\", \"qwinsta.exe\", \"reg.exe\", \"sc.exe\", \"systeminfo.exe\", \"tasklist.exe\", \"tracert.exe\",\n \"whoami.exe\", \"bginfo.exe\", \"cdb.exe\", \"cmstp.exe\", \"csi.exe\", \"dnx.exe\", \"fsi.exe\", \"ieexec.exe\",\n \"iexpress.exe\", \"installutil.exe\", \"Microsoft.Workflow.Compiler.exe\", \"msbuild.exe\", \"mshta.exe\",\n \"msxsl.exe\", \"odbcconf.exe\", \"rcsi.exe\", \"regsvr32.exe\", \"xwizard.exe\", \"atbroker.exe\",\n \"forfiles.exe\", \"schtasks.exe\", \"regasm.exe\", \"regsvcs.exe\", \"cmd.exe\", \"cscript.exe\",\n \"powershell.exe\", \"pwsh.exe\", \"wmic.exe\", \"wscript.exe\", \"bitsadmin.exe\", \"certutil.exe\", \"ftp.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"53a26770-9cbd-40c5-8b57-61d01a325e14:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/53a26770-9cbd-40c5-8b57-61d01a325e14:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/53a26770-9cbd-40c5-8b57-61d01a325e14:102.0.1.json new file mode 100644 index 0000000000000..c6aa5fabd9b70 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/53a26770-9cbd-40c5-8b57-61d01a325e14:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious PDF Reader Child Process v102.0.1","rule_id":"53a26770-9cbd-40c5-8b57-61d01a325e14:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious child processes of PDF reader applications. These child processes are often launched via exploitation of PDF applications or social engineering.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious PDF Reader Child Process\n\nPDF is a common file type used in corporate environments and most machines have software to handle these files. This\ncreates a vector where attackers can exploit the engines and technology behind this class of software for initial access\nor privilege escalation.\n\nThis rule looks for commonly abused built-in utilities spawned by a PDF reader process, which is likely a malicious behavior.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve PDF documents received and opened by the user that could cause this behavior. Common locations include, but\nare not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1204","name":"User Execution","reference":"https://attack.mitre.org/techniques/T1204/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"AcroRd32.exe\",\n \"Acrobat.exe\",\n \"FoxitPhantomPDF.exe\",\n \"FoxitReader.exe\") and\n process.name : (\"arp.exe\", \"dsquery.exe\", \"dsget.exe\", \"gpresult.exe\", \"hostname.exe\", \"ipconfig.exe\", \"nbtstat.exe\",\n \"net.exe\", \"net1.exe\", \"netsh.exe\", \"netstat.exe\", \"nltest.exe\", \"ping.exe\", \"qprocess.exe\",\n \"quser.exe\", \"qwinsta.exe\", \"reg.exe\", \"sc.exe\", \"systeminfo.exe\", \"tasklist.exe\", \"tracert.exe\",\n \"whoami.exe\", \"bginfo.exe\", \"cdb.exe\", \"cmstp.exe\", \"csi.exe\", \"dnx.exe\", \"fsi.exe\", \"ieexec.exe\",\n \"iexpress.exe\", \"installutil.exe\", \"Microsoft.Workflow.Compiler.exe\", \"msbuild.exe\", \"mshta.exe\",\n \"msxsl.exe\", \"odbcconf.exe\", \"rcsi.exe\", \"regsvr32.exe\", \"xwizard.exe\", \"atbroker.exe\",\n \"forfiles.exe\", \"schtasks.exe\", \"regasm.exe\", \"regsvcs.exe\", \"cmd.exe\", \"cscript.exe\",\n \"powershell.exe\", \"pwsh.exe\", \"wmic.exe\", \"wscript.exe\", \"bitsadmin.exe\", \"certutil.exe\", \"ftp.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"53a26770-9cbd-40c5-8b57-61d01a325e14:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/53a26770-9cbd-40c5-8b57-61d01a325e14:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/53a26770-9cbd-40c5-8b57-61d01a325e14:102.0.2.json new file mode 100644 index 0000000000000..be8a4e7ff0b59 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/53a26770-9cbd-40c5-8b57-61d01a325e14:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious PDF Reader Child Process v102.0.2","rule_id":"53a26770-9cbd-40c5-8b57-61d01a325e14:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious child processes of PDF reader applications. These child processes are often launched via exploitation of PDF applications or social engineering.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious PDF Reader Child Process\n\nPDF is a common file type used in corporate environments and most machines have software to handle these files. This\ncreates a vector where attackers can exploit the engines and technology behind this class of software for initial access\nor privilege escalation.\n\nThis rule looks for commonly abused built-in utilities spawned by a PDF reader process, which is likely a malicious behavior.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve PDF documents received and opened by the user that could cause this behavior. Common locations include, but\nare not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1204","name":"User Execution","reference":"https://attack.mitre.org/techniques/T1204/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"AcroRd32.exe\",\n \"Acrobat.exe\",\n \"FoxitPhantomPDF.exe\",\n \"FoxitReader.exe\") and\n process.name : (\"arp.exe\", \"dsquery.exe\", \"dsget.exe\", \"gpresult.exe\", \"hostname.exe\", \"ipconfig.exe\", \"nbtstat.exe\",\n \"net.exe\", \"net1.exe\", \"netsh.exe\", \"netstat.exe\", \"nltest.exe\", \"ping.exe\", \"qprocess.exe\",\n \"quser.exe\", \"qwinsta.exe\", \"reg.exe\", \"sc.exe\", \"systeminfo.exe\", \"tasklist.exe\", \"tracert.exe\",\n \"whoami.exe\", \"bginfo.exe\", \"cdb.exe\", \"cmstp.exe\", \"csi.exe\", \"dnx.exe\", \"fsi.exe\", \"ieexec.exe\",\n \"iexpress.exe\", \"installutil.exe\", \"Microsoft.Workflow.Compiler.exe\", \"msbuild.exe\", \"mshta.exe\",\n \"msxsl.exe\", \"odbcconf.exe\", \"rcsi.exe\", \"regsvr32.exe\", \"xwizard.exe\", \"atbroker.exe\",\n \"forfiles.exe\", \"schtasks.exe\", \"regasm.exe\", \"regsvcs.exe\", \"cmd.exe\", \"cscript.exe\",\n \"powershell.exe\", \"pwsh.exe\", \"wmic.exe\", \"wscript.exe\", \"bitsadmin.exe\", \"certutil.exe\", \"ftp.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"53a26770-9cbd-40c5-8b57-61d01a325e14:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/54902e45-3467-49a4-8abc-529f2c8cfb80:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/54902e45-3467-49a4-8abc-529f2c8cfb80:100.0.0.json new file mode 100644 index 0000000000000..11bdc3c922284 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/54902e45-3467-49a4-8abc-529f2c8cfb80:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Uncommon Registry Persistence Change v100.0.0","rule_id":"54902e45-3467-49a4-8abc-529f2c8cfb80:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects changes to registry persistence keys that are not commonly used or modified by legitimate programs. This could be an indication of an adversary's attempt to persist in a stealthy manner.","risk_score":47,"severity":"medium","license":"Elastic License v2","timeline_id":"3e47ef71-ebfc-4520-975c-cb27fc090799","timeline_title":"Comprehensive Registry Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.microsoftpressstore.com/articles/article.aspx?p=2762082&seqNum=2"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1112","name":"Modify Registry","reference":"https://attack.mitre.org/techniques/T1112/"}]}],"language":"eql","query":"registry where\n /* uncomment once stable length(registry.data.strings) > 0 and */\n registry.path : (\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Terminal Server\\\\Install\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Terminal Server\\\\Install\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Runonce\\\\*\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\Load\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\Run\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\IconServiceLib\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\AppSetup\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Taskman\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Userinit\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\VmApplet\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\Shell\",\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logoff\\\\Script\",\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logon\\\\Script\",\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Shutdown\\\\Script\",\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Startup\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\Shell\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logoff\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logon\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Shutdown\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Startup\\\\Script\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Active Setup\\\\Installed Components\\\\*\\\\ShellComponent\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows CE Services\\\\AutoStartOnConnect\\\\MicrosoftActiveSync\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows CE Services\\\\AutoStartOnDisconnect\\\\MicrosoftActiveSync\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Ctf\\\\LangBarAddin\\\\*\\\\FilePath\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Exec\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Script\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Command Processor\\\\Autorun\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Ctf\\\\LangBarAddin\\\\*\\\\FilePath\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Exec\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Command Processor\\\\Autorun\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Image File Execution Options\\\\*\\\\VerifierDlls\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\GpExtensions\\\\*\\\\DllName\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\SafeBoot\\\\AlternateShell\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Terminal Server\\\\Wds\\\\rdpwd\\\\StartupPrograms\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Terminal Server\\\\WinStations\\\\RDP-Tcp\\\\InitialProgram\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Session Manager\\\\BootExecute\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Session Manager\\\\SetupExecute\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Session Manager\\\\Execute\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Session Manager\\\\S0InitialCommand\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\ServiceControlManagerExtension\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\BootVerificationProgram\\\\ImagePath\",\n \"HKLM\\\\SYSTEM\\\\Setup\\\\CmdLine\",\n \"HKEY_USERS\\\\*\\\\Environment\\\\UserInitMprLogonScript\") and\n\n not registry.data.strings : (\"C:\\\\Windows\\\\system32\\\\userinit.exe\", \"cmd.exe\", \"C:\\\\Program Files (x86)\\\\*.exe\",\n \"C:\\\\Program Files\\\\*.exe\") and\n not (process.name : \"rundll32.exe\" and registry.path : \"*\\\\Software\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Script\") and\n not process.executable : (\"C:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"C:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\",\n \"C:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\Platform\\\\*\\\\MsMpEng.exe\",\n \"C:\\\\Program Files\\\\*.exe\",\n \"C:\\\\Program Files (x86)\\\\*.exe\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"54902e45-3467-49a4-8abc-529f2c8cfb80:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/54902e45-3467-49a4-8abc-529f2c8cfb80:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/54902e45-3467-49a4-8abc-529f2c8cfb80:100.0.1.json new file mode 100644 index 0000000000000..8bcaaa1aa73a0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/54902e45-3467-49a4-8abc-529f2c8cfb80:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Uncommon Registry Persistence Change v100.0.1","rule_id":"54902e45-3467-49a4-8abc-529f2c8cfb80:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects changes to registry persistence keys that are not commonly used or modified by legitimate programs. This could be an indication of an adversary's attempt to persist in a stealthy manner.","risk_score":47,"severity":"medium","license":"Elastic License v2","timeline_id":"3e47ef71-ebfc-4520-975c-cb27fc090799","timeline_title":"Comprehensive Registry Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.microsoftpressstore.com/articles/article.aspx?p=2762082&seqNum=2"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1112","name":"Modify Registry","reference":"https://attack.mitre.org/techniques/T1112/"}]}],"language":"eql","query":"registry where\n /* uncomment once stable length(registry.data.strings) > 0 and */\n registry.path : (\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Terminal Server\\\\Install\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Terminal Server\\\\Install\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Runonce\\\\*\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\Load\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\Run\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\IconServiceLib\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\AppSetup\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Taskman\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Userinit\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\VmApplet\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\Shell\",\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logoff\\\\Script\",\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logon\\\\Script\",\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Shutdown\\\\Script\",\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Startup\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\Shell\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logoff\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logon\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Shutdown\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Startup\\\\Script\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Active Setup\\\\Installed Components\\\\*\\\\ShellComponent\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows CE Services\\\\AutoStartOnConnect\\\\MicrosoftActiveSync\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows CE Services\\\\AutoStartOnDisconnect\\\\MicrosoftActiveSync\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Ctf\\\\LangBarAddin\\\\*\\\\FilePath\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Exec\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Script\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Command Processor\\\\Autorun\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Ctf\\\\LangBarAddin\\\\*\\\\FilePath\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Exec\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Command Processor\\\\Autorun\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Image File Execution Options\\\\*\\\\VerifierDlls\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\GpExtensions\\\\*\\\\DllName\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\SafeBoot\\\\AlternateShell\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Terminal Server\\\\Wds\\\\rdpwd\\\\StartupPrograms\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Terminal Server\\\\WinStations\\\\RDP-Tcp\\\\InitialProgram\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Session Manager\\\\BootExecute\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Session Manager\\\\SetupExecute\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Session Manager\\\\Execute\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Session Manager\\\\S0InitialCommand\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\ServiceControlManagerExtension\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\BootVerificationProgram\\\\ImagePath\",\n \"HKLM\\\\SYSTEM\\\\Setup\\\\CmdLine\",\n \"HKEY_USERS\\\\*\\\\Environment\\\\UserInitMprLogonScript\") and\n\n not registry.data.strings : (\"C:\\\\Windows\\\\system32\\\\userinit.exe\", \"cmd.exe\", \"C:\\\\Program Files (x86)\\\\*.exe\",\n \"C:\\\\Program Files\\\\*.exe\") and\n not (process.name : \"rundll32.exe\" and registry.path : \"*\\\\Software\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Script\") and\n not process.executable : (\"C:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"C:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\",\n \"C:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\Platform\\\\*\\\\MsMpEng.exe\",\n \"C:\\\\Program Files\\\\*.exe\",\n \"C:\\\\Program Files (x86)\\\\*.exe\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"54902e45-3467-49a4-8abc-529f2c8cfb80:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/54902e45-3467-49a4-8abc-529f2c8cfb80:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/54902e45-3467-49a4-8abc-529f2c8cfb80:100.0.2.json new file mode 100644 index 0000000000000..c5202210f3a12 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/54902e45-3467-49a4-8abc-529f2c8cfb80:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Uncommon Registry Persistence Change v100.0.2","rule_id":"54902e45-3467-49a4-8abc-529f2c8cfb80:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects changes to registry persistence keys that are not commonly used or modified by legitimate programs. This could be an indication of an adversary's attempt to persist in a stealthy manner.","risk_score":47,"severity":"medium","license":"Elastic License v2","timeline_id":"3e47ef71-ebfc-4520-975c-cb27fc090799","timeline_title":"Comprehensive Registry Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.microsoftpressstore.com/articles/article.aspx?p=2762082&seqNum=2"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1112","name":"Modify Registry","reference":"https://attack.mitre.org/techniques/T1112/"}]}],"language":"eql","query":"registry where\n /* uncomment once stable length(registry.data.strings) > 0 and */\n registry.path : (\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Terminal Server\\\\Install\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Terminal Server\\\\Install\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Runonce\\\\*\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\Load\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\Run\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\IconServiceLib\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\AppSetup\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Taskman\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Userinit\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\VmApplet\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\Shell\",\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logoff\\\\Script\",\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logon\\\\Script\",\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Shutdown\\\\Script\",\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Startup\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\Shell\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logoff\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logon\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Shutdown\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Startup\\\\Script\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Active Setup\\\\Installed Components\\\\*\\\\ShellComponent\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows CE Services\\\\AutoStartOnConnect\\\\MicrosoftActiveSync\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows CE Services\\\\AutoStartOnDisconnect\\\\MicrosoftActiveSync\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Ctf\\\\LangBarAddin\\\\*\\\\FilePath\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Exec\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Script\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Command Processor\\\\Autorun\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Ctf\\\\LangBarAddin\\\\*\\\\FilePath\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Exec\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Command Processor\\\\Autorun\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Image File Execution Options\\\\*\\\\VerifierDlls\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\GpExtensions\\\\*\\\\DllName\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\SafeBoot\\\\AlternateShell\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Terminal Server\\\\Wds\\\\rdpwd\\\\StartupPrograms\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Terminal Server\\\\WinStations\\\\RDP-Tcp\\\\InitialProgram\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Session Manager\\\\BootExecute\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Session Manager\\\\SetupExecute\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Session Manager\\\\Execute\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\Session Manager\\\\S0InitialCommand\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\ServiceControlManagerExtension\",\n \"HKLM\\\\SYSTEM\\\\ControlSet*\\\\Control\\\\BootVerificationProgram\\\\ImagePath\",\n \"HKLM\\\\SYSTEM\\\\Setup\\\\CmdLine\",\n \"HKEY_USERS\\\\*\\\\Environment\\\\UserInitMprLogonScript\") and\n\n not registry.data.strings : (\"C:\\\\Windows\\\\system32\\\\userinit.exe\", \"cmd.exe\", \"C:\\\\Program Files (x86)\\\\*.exe\",\n \"C:\\\\Program Files\\\\*.exe\") and\n not (process.name : \"rundll32.exe\" and registry.path : \"*\\\\Software\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Script\") and\n not process.executable : (\"C:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"C:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\",\n \"C:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\Platform\\\\*\\\\MsMpEng.exe\",\n \"C:\\\\Program Files\\\\*.exe\",\n \"C:\\\\Program Files (x86)\\\\*.exe\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"54902e45-3467-49a4-8abc-529f2c8cfb80:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/54c3d186-0461-4dc3-9b33-2dc5c7473936:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/54c3d186-0461-4dc3-9b33-2dc5c7473936:101.0.0.json new file mode 100644 index 0000000000000..c14e6098fd726 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/54c3d186-0461-4dc3-9b33-2dc5c7473936:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Network Logon Provider Registry Modification v101.0.0","rule_id":"54c3d186-0461-4dc3-9b33-2dc5c7473936:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the modification of the network logon provider registry. Adversaries may register a rogue network logon provider module for persistence and/or credential access via intercepting the authentication credentials in clear text during user logon.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Authorized third party network logon providers."],"from":"now-9m","references":["https://github.com/gtworek/PSBits/tree/master/PasswordStealing/NPPSpy","https://docs.microsoft.com/en-us/windows/win32/api/npapi/nf-npapi-nplogonnotify"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"language":"eql","query":"registry where registry.data.strings != null and\n registry.path : (\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\NetworkProvider\\\\ProviderPath\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\NetworkProvider\\\\ProviderPath\"\n ) and\n /* Excluding default NetworkProviders RDPNP, LanmanWorkstation and webclient. */\n not ( user.id : \"S-1-5-18\" and\n registry.data.strings in\n (\"%SystemRoot%\\\\System32\\\\ntlanman.dll\",\n \"%SystemRoot%\\\\System32\\\\drprov.dll\",\n \"%SystemRoot%\\\\System32\\\\davclnt.dll\")\n )\n","type":"eql","index":["logs-endpoint.events.*","endgame-*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"54c3d186-0461-4dc3-9b33-2dc5c7473936:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/54c3d186-0461-4dc3-9b33-2dc5c7473936:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/54c3d186-0461-4dc3-9b33-2dc5c7473936:101.0.1.json new file mode 100644 index 0000000000000..45af5f0f98827 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/54c3d186-0461-4dc3-9b33-2dc5c7473936:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Network Logon Provider Registry Modification v101.0.1","rule_id":"54c3d186-0461-4dc3-9b33-2dc5c7473936:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the modification of the network logon provider registry. Adversaries may register a rogue network logon provider module for persistence and/or credential access via intercepting the authentication credentials in clear text during user logon.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Authorized third party network logon providers."],"from":"now-9m","references":["https://github.com/gtworek/PSBits/tree/master/PasswordStealing/NPPSpy","https://docs.microsoft.com/en-us/windows/win32/api/npapi/nf-npapi-nplogonnotify"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"language":"eql","query":"registry where registry.data.strings != null and\n registry.path : (\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\NetworkProvider\\\\ProviderPath\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\NetworkProvider\\\\ProviderPath\"\n ) and\n /* Excluding default NetworkProviders RDPNP, LanmanWorkstation and webclient. */\n not ( user.id : \"S-1-5-18\" and\n registry.data.strings in\n (\"%SystemRoot%\\\\System32\\\\ntlanman.dll\",\n \"%SystemRoot%\\\\System32\\\\drprov.dll\",\n \"%SystemRoot%\\\\System32\\\\davclnt.dll\")\n )\n","type":"eql","index":["logs-endpoint.events.*","endgame-*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"54c3d186-0461-4dc3-9b33-2dc5c7473936:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/54c3d186-0461-4dc3-9b33-2dc5c7473936:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/54c3d186-0461-4dc3-9b33-2dc5c7473936:101.0.2.json new file mode 100644 index 0000000000000..b939e04647909 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/54c3d186-0461-4dc3-9b33-2dc5c7473936:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Network Logon Provider Registry Modification v101.0.2","rule_id":"54c3d186-0461-4dc3-9b33-2dc5c7473936:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the modification of the network logon provider registry. Adversaries may register a rogue network logon provider module for persistence and/or credential access via intercepting the authentication credentials in clear text during user logon.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Authorized third party network logon providers."],"from":"now-9m","references":["https://github.com/gtworek/PSBits/tree/master/PasswordStealing/NPPSpy","https://docs.microsoft.com/en-us/windows/win32/api/npapi/nf-npapi-nplogonnotify"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"language":"eql","query":"registry where registry.data.strings != null and\n registry.path : (\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\NetworkProvider\\\\ProviderPath\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\NetworkProvider\\\\ProviderPath\"\n ) and\n /* Excluding default NetworkProviders RDPNP, LanmanWorkstation and webclient. */\n not ( user.id : \"S-1-5-18\" and\n registry.data.strings in\n (\"%SystemRoot%\\\\System32\\\\ntlanman.dll\",\n \"%SystemRoot%\\\\System32\\\\drprov.dll\",\n \"%SystemRoot%\\\\System32\\\\davclnt.dll\")\n )\n","type":"eql","index":["logs-endpoint.events.*","endgame-*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"54c3d186-0461-4dc3-9b33-2dc5c7473936:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/55c2bf58-2a39-4c58-a384-c8b1978153c2:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/55c2bf58-2a39-4c58-a384-c8b1978153c2:100.0.0.json new file mode 100644 index 0000000000000..d644ca12e0ba7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/55c2bf58-2a39-4c58-a384-c8b1978153c2:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Windows Service Installed via an Unusual Client v100.0.0","rule_id":"55c2bf58-2a39-4c58-a384-c8b1978153c2:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a Windows service by an unusual client process. Services may be created with administrator privileges but are executed under SYSTEM privileges, so an adversary may also use a service to escalate privileges from administrator to SYSTEM.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.x86matthew.com/view_post?id=create_svc_rpc","https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4697","https://github.com/atc-project/atomic-threat-coverage/blob/master/Atomic_Threat_Coverage/Logging_Policies/LP_0100_windows_audit_security_system_extension.md"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"service-installed\" and (winlog.event_data.ClientProcessId:\"0\" or winlog.event_data.ParentProcessId:\"0\")\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":false,"name":"winlog.event_data.ClientProcessId","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ParentProcessId","type":"unknown"}],"setup":"The 'Audit Security System Extension' logging policy must be configured for (Success)\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nSystem >\nAudit Security System Extension (Success)\n```"},"id":"55c2bf58-2a39-4c58-a384-c8b1978153c2:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/55c2bf58-2a39-4c58-a384-c8b1978153c2:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/55c2bf58-2a39-4c58-a384-c8b1978153c2:100.0.1.json new file mode 100644 index 0000000000000..6e90590c0fb19 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/55c2bf58-2a39-4c58-a384-c8b1978153c2:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Windows Service Installed via an Unusual Client v100.0.1","rule_id":"55c2bf58-2a39-4c58-a384-c8b1978153c2:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a Windows service by an unusual client process. Services may be created with administrator privileges but are executed under SYSTEM privileges, so an adversary may also use a service to escalate privileges from administrator to SYSTEM.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.x86matthew.com/view_post?id=create_svc_rpc","https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4697","https://github.com/atc-project/atomic-threat-coverage/blob/master/Atomic_Threat_Coverage/Logging_Policies/LP_0100_windows_audit_security_system_extension.md"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"service-installed\" and (winlog.event_data.ClientProcessId:\"0\" or winlog.event_data.ParentProcessId:\"0\")\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":false,"name":"winlog.event_data.ClientProcessId","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ParentProcessId","type":"unknown"}],"setup":"The 'Audit Security System Extension' logging policy must be configured for (Success)\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nSystem >\nAudit Security System Extension (Success)\n```"},"id":"55c2bf58-2a39-4c58-a384-c8b1978153c2:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/55c2bf58-2a39-4c58-a384-c8b1978153c2:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/55c2bf58-2a39-4c58-a384-c8b1978153c2:100.0.2.json new file mode 100644 index 0000000000000..78643dfbcf4c2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/55c2bf58-2a39-4c58-a384-c8b1978153c2:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Windows Service Installed via an Unusual Client v100.0.2","rule_id":"55c2bf58-2a39-4c58-a384-c8b1978153c2:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a Windows service by an unusual client process. Services may be created with administrator privileges but are executed under SYSTEM privileges, so an adversary may also use a service to escalate privileges from administrator to SYSTEM.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.x86matthew.com/view_post?id=create_svc_rpc","https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4697","https://github.com/atc-project/atomic-threat-coverage/blob/master/Atomic_Threat_Coverage/Logging_Policies/LP_0100_windows_audit_security_system_extension.md"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"service-installed\" and (winlog.event_data.ClientProcessId:\"0\" or winlog.event_data.ParentProcessId:\"0\")\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":false,"name":"winlog.event_data.ClientProcessId","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ParentProcessId","type":"unknown"}],"setup":"The 'Audit Security System Extension' logging policy must be configured for (Success)\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nSystem >\nAudit Security System Extension (Success)\n```"},"id":"55c2bf58-2a39-4c58-a384-c8b1978153c2:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/55d551c6-333b-4665-ab7e-5d14a59715ce:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/55d551c6-333b-4665-ab7e-5d14a59715ce:102.0.0.json new file mode 100644 index 0000000000000..5267c11540373 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/55d551c6-333b-4665-ab7e-5d14a59715ce:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"PsExec Network Connection v102.0.0","rule_id":"55d551c6-333b-4665-ab7e-5d14a59715ce:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the SysInternals tool PsExec.exe making a network connection. This could be an indication of lateral movement.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PsExec Network Connection\n\nPsExec is a remote administration tool that enables the execution of commands with both regular and SYSTEM privileges\non Windows systems. Microsoft develops it as part of the Sysinternals Suite. Although commonly used by administrators,\nPsExec is frequently used by attackers to enable lateral movement and execute commands as SYSTEM to disable defenses and\nbypass security protections.\n\nThis rule identifies PsExec execution by looking for the creation of `PsExec.exe`, the default name for the\nutility, followed by a network connection done by the process.\n\n#### Possible investigation steps\n\n- Check if the usage of this tool complies with the organization's administration policy.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Identify the target computer and its role in the IT environment.\n- Investigate what commands were run, and assess whether this behavior is prevalent in the environment by looking for\nsimilar occurrences across hosts.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. As long as the analyst did not identify suspicious activity related to the\nuser or involved hosts, and the tool is allowed by the organization's policy, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n - Prioritize accordingly with the role of the servers and users involved.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"false_positives":["PsExec is a dual-use tool that can be used for benign or malicious activity. It's important to baseline your environment to determine the amount of noise to expect from this tool."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1569","name":"System Services","reference":"https://attack.mitre.org/techniques/T1569/","subtechnique":[{"id":"T1569.002","name":"Service Execution","reference":"https://attack.mitre.org/techniques/T1569/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"PsExec.exe\" and event.type == \"start\" and\n\n /* This flag suppresses the display of the license dialog and may\n indicate that psexec executed for the first time in the machine */\n process.args : \"-accepteula\" and\n\n not process.executable : (\"?:\\\\ProgramData\\\\Docusnap\\\\Discovery\\\\discovery\\\\plugins\\\\17\\\\Bin\\\\psexec.exe\",\n \"?:\\\\Docusnap 11\\\\Bin\\\\psexec.exe\",\n \"?:\\\\Program Files\\\\Docusnap X\\\\Bin\\\\psexec.exe\",\n \"?:\\\\Program Files\\\\Docusnap X\\\\Tools\\\\dsDNS.exe\") and\n not process.parent.executable : \"?:\\\\Program Files (x86)\\\\Cynet\\\\Cynet Scanner\\\\CynetScanner.exe\"]\n [network where process.name : \"PsExec.exe\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},"id":"55d551c6-333b-4665-ab7e-5d14a59715ce:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/55d551c6-333b-4665-ab7e-5d14a59715ce:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/55d551c6-333b-4665-ab7e-5d14a59715ce:102.0.1.json new file mode 100644 index 0000000000000..4dd6321ac9fa2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/55d551c6-333b-4665-ab7e-5d14a59715ce:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"PsExec Network Connection v102.0.1","rule_id":"55d551c6-333b-4665-ab7e-5d14a59715ce:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the SysInternals tool PsExec.exe making a network connection. This could be an indication of lateral movement.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PsExec Network Connection\n\nPsExec is a remote administration tool that enables the execution of commands with both regular and SYSTEM privileges\non Windows systems. Microsoft develops it as part of the Sysinternals Suite. Although commonly used by administrators,\nPsExec is frequently used by attackers to enable lateral movement and execute commands as SYSTEM to disable defenses and\nbypass security protections.\n\nThis rule identifies PsExec execution by looking for the creation of `PsExec.exe`, the default name for the\nutility, followed by a network connection done by the process.\n\n#### Possible investigation steps\n\n- Check if the usage of this tool complies with the organization's administration policy.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Identify the target computer and its role in the IT environment.\n- Investigate what commands were run, and assess whether this behavior is prevalent in the environment by looking for\nsimilar occurrences across hosts.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. As long as the analyst did not identify suspicious activity related to the\nuser or involved hosts, and the tool is allowed by the organization's policy, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n - Prioritize accordingly with the role of the servers and users involved.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"false_positives":["PsExec is a dual-use tool that can be used for benign or malicious activity. It's important to baseline your environment to determine the amount of noise to expect from this tool."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1569","name":"System Services","reference":"https://attack.mitre.org/techniques/T1569/","subtechnique":[{"id":"T1569.002","name":"Service Execution","reference":"https://attack.mitre.org/techniques/T1569/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"PsExec.exe\" and event.type == \"start\" and\n\n /* This flag suppresses the display of the license dialog and may\n indicate that psexec executed for the first time in the machine */\n process.args : \"-accepteula\" and\n\n not process.executable : (\"?:\\\\ProgramData\\\\Docusnap\\\\Discovery\\\\discovery\\\\plugins\\\\17\\\\Bin\\\\psexec.exe\",\n \"?:\\\\Docusnap 11\\\\Bin\\\\psexec.exe\",\n \"?:\\\\Program Files\\\\Docusnap X\\\\Bin\\\\psexec.exe\",\n \"?:\\\\Program Files\\\\Docusnap X\\\\Tools\\\\dsDNS.exe\") and\n not process.parent.executable : \"?:\\\\Program Files (x86)\\\\Cynet\\\\Cynet Scanner\\\\CynetScanner.exe\"]\n [network where process.name : \"PsExec.exe\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},"id":"55d551c6-333b-4665-ab7e-5d14a59715ce:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/55d551c6-333b-4665-ab7e-5d14a59715ce:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/55d551c6-333b-4665-ab7e-5d14a59715ce:102.0.2.json new file mode 100644 index 0000000000000..c7aa75b281236 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/55d551c6-333b-4665-ab7e-5d14a59715ce:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"PsExec Network Connection v102.0.2","rule_id":"55d551c6-333b-4665-ab7e-5d14a59715ce:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the SysInternals tool PsExec.exe making a network connection. This could be an indication of lateral movement.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PsExec Network Connection\n\nPsExec is a remote administration tool that enables the execution of commands with both regular and SYSTEM privileges\non Windows systems. Microsoft develops it as part of the Sysinternals Suite. Although commonly used by administrators,\nPsExec is frequently used by attackers to enable lateral movement and execute commands as SYSTEM to disable defenses and\nbypass security protections.\n\nThis rule identifies PsExec execution by looking for the creation of `PsExec.exe`, the default name for the\nutility, followed by a network connection done by the process.\n\n#### Possible investigation steps\n\n- Check if the usage of this tool complies with the organization's administration policy.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Identify the target computer and its role in the IT environment.\n- Investigate what commands were run, and assess whether this behavior is prevalent in the environment by looking for\nsimilar occurrences across hosts.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. As long as the analyst did not identify suspicious activity related to the\nuser or involved hosts, and the tool is allowed by the organization's policy, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n - Prioritize accordingly with the role of the servers and users involved.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"false_positives":["PsExec is a dual-use tool that can be used for benign or malicious activity. It's important to baseline your environment to determine the amount of noise to expect from this tool."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1569","name":"System Services","reference":"https://attack.mitre.org/techniques/T1569/","subtechnique":[{"id":"T1569.002","name":"Service Execution","reference":"https://attack.mitre.org/techniques/T1569/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"PsExec.exe\" and event.type == \"start\" and\n\n /* This flag suppresses the display of the license dialog and may\n indicate that psexec executed for the first time in the machine */\n process.args : \"-accepteula\" and\n\n not process.executable : (\"?:\\\\ProgramData\\\\Docusnap\\\\Discovery\\\\discovery\\\\plugins\\\\17\\\\Bin\\\\psexec.exe\",\n \"?:\\\\Docusnap 11\\\\Bin\\\\psexec.exe\",\n \"?:\\\\Program Files\\\\Docusnap X\\\\Bin\\\\psexec.exe\",\n \"?:\\\\Program Files\\\\Docusnap X\\\\Tools\\\\dsDNS.exe\") and\n not process.parent.executable : \"?:\\\\Program Files (x86)\\\\Cynet\\\\Cynet Scanner\\\\CynetScanner.exe\"]\n [network where process.name : \"PsExec.exe\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},"id":"55d551c6-333b-4665-ab7e-5d14a59715ce:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/56557cde-d923-4b88-adee-c61b3f3b5dc3:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/56557cde-d923-4b88-adee-c61b3f3b5dc3:100.0.0.json new file mode 100644 index 0000000000000..947ed955a901c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/56557cde-d923-4b88-adee-c61b3f3b5dc3:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Windows CryptoAPI Spoofing Vulnerability (CVE-2020-0601 - CurveBall) v100.0.0","rule_id":"56557cde-d923-4b88-adee-c61b3f3b5dc3:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A spoofing vulnerability exists in the way Windows CryptoAPI (Crypt32.dll) validates Elliptic Curve Cryptography (ECC) certificates. An attacker could exploit the vulnerability by using a spoofed code-signing certificate to sign a malicious executable, making it appear the file was from a trusted, legitimate source.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1553","name":"Subvert Trust Controls","reference":"https://attack.mitre.org/techniques/T1553/","subtechnique":[{"id":"T1553.002","name":"Code Signing","reference":"https://attack.mitre.org/techniques/T1553/002/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.provider:\"Microsoft-Windows-Audit-CVE\" and message:\"[CVE-2020-0601]\"\n","required_fields":[{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":true,"name":"message","type":"match_only_text"}]},"id":"56557cde-d923-4b88-adee-c61b3f3b5dc3:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/56557cde-d923-4b88-adee-c61b3f3b5dc3:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/56557cde-d923-4b88-adee-c61b3f3b5dc3:100.0.1.json new file mode 100644 index 0000000000000..2e2de6243881b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/56557cde-d923-4b88-adee-c61b3f3b5dc3:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Windows CryptoAPI Spoofing Vulnerability (CVE-2020-0601 - CurveBall) v100.0.1","rule_id":"56557cde-d923-4b88-adee-c61b3f3b5dc3:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A spoofing vulnerability exists in the way Windows CryptoAPI (Crypt32.dll) validates Elliptic Curve Cryptography (ECC) certificates. An attacker could exploit the vulnerability by using a spoofed code-signing certificate to sign a malicious executable, making it appear the file was from a trusted, legitimate source.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1553","name":"Subvert Trust Controls","reference":"https://attack.mitre.org/techniques/T1553/","subtechnique":[{"id":"T1553.002","name":"Code Signing","reference":"https://attack.mitre.org/techniques/T1553/002/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.provider:\"Microsoft-Windows-Audit-CVE\" and message:\"[CVE-2020-0601]\"\n","required_fields":[{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":true,"name":"message","type":"match_only_text"}]},"id":"56557cde-d923-4b88-adee-c61b3f3b5dc3:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/56557cde-d923-4b88-adee-c61b3f3b5dc3:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/56557cde-d923-4b88-adee-c61b3f3b5dc3:100.0.2.json new file mode 100644 index 0000000000000..0899db81743ce --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/56557cde-d923-4b88-adee-c61b3f3b5dc3:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Windows CryptoAPI Spoofing Vulnerability (CVE-2020-0601 - CurveBall) v100.0.2","rule_id":"56557cde-d923-4b88-adee-c61b3f3b5dc3:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A spoofing vulnerability exists in the way Windows CryptoAPI (Crypt32.dll) validates Elliptic Curve Cryptography (ECC) certificates. An attacker could exploit the vulnerability by using a spoofed code-signing certificate to sign a malicious executable, making it appear the file was from a trusted, legitimate source.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1553","name":"Subvert Trust Controls","reference":"https://attack.mitre.org/techniques/T1553/","subtechnique":[{"id":"T1553.002","name":"Code Signing","reference":"https://attack.mitre.org/techniques/T1553/002/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.provider:\"Microsoft-Windows-Audit-CVE\" and message:\"[CVE-2020-0601]\"\n","required_fields":[{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":true,"name":"message","type":"match_only_text"}]},"id":"56557cde-d923-4b88-adee-c61b3f3b5dc3:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/565c2b44-7a21-4818-955f-8d4737967d2e:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/565c2b44-7a21-4818-955f-8d4737967d2e:100.0.0.json new file mode 100644 index 0000000000000..32cc8db6a47c7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/565c2b44-7a21-4818-955f-8d4737967d2e:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Admin Group Account Addition v100.0.0","rule_id":"565c2b44-7a21-4818-955f-8d4737967d2e:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to add an account to the admin group via the command line. This could be an indication of privilege escalation activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://managingosx.wordpress.com/2010/01/14/add-a-user-to-the-admin-group-via-command-line-3-0/"],"tags":["Elastic","Host","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.003","name":"Local Accounts","reference":"https://attack.mitre.org/techniques/T1078/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:(dscl or dseditgroup) and process.args:((\"/Groups/admin\" or admin) and (\"-a\" or \"-append\"))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"565c2b44-7a21-4818-955f-8d4737967d2e:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/565c2b44-7a21-4818-955f-8d4737967d2e:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/565c2b44-7a21-4818-955f-8d4737967d2e:100.0.1.json new file mode 100644 index 0000000000000..980265ba94d74 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/565c2b44-7a21-4818-955f-8d4737967d2e:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Admin Group Account Addition v100.0.1","rule_id":"565c2b44-7a21-4818-955f-8d4737967d2e:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to add an account to the admin group via the command line. This could be an indication of privilege escalation activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://managingosx.wordpress.com/2010/01/14/add-a-user-to-the-admin-group-via-command-line-3-0/"],"tags":["Elastic","Host","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.003","name":"Local Accounts","reference":"https://attack.mitre.org/techniques/T1078/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:(dscl or dseditgroup) and process.args:((\"/Groups/admin\" or admin) and (\"-a\" or \"-append\"))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"565c2b44-7a21-4818-955f-8d4737967d2e:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/565c2b44-7a21-4818-955f-8d4737967d2e:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/565c2b44-7a21-4818-955f-8d4737967d2e:100.0.2.json new file mode 100644 index 0000000000000..a9ff5698e068a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/565c2b44-7a21-4818-955f-8d4737967d2e:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Admin Group Account Addition v100.0.2","rule_id":"565c2b44-7a21-4818-955f-8d4737967d2e:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to add an account to the admin group via the command line. This could be an indication of privilege escalation activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://managingosx.wordpress.com/2010/01/14/add-a-user-to-the-admin-group-via-command-line-3-0/"],"tags":["Elastic","Host","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.003","name":"Local Accounts","reference":"https://attack.mitre.org/techniques/T1078/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:(dscl or dseditgroup) and process.args:((\"/Groups/admin\" or admin) and (\"-a\" or \"-append\"))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"565c2b44-7a21-4818-955f-8d4737967d2e:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/565d6ca5-75ba-4c82-9b13-add25353471c:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/565d6ca5-75ba-4c82-9b13-add25353471c:100.0.0.json new file mode 100644 index 0000000000000..e39480f89b1a9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/565d6ca5-75ba-4c82-9b13-add25353471c:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Dumping of Keychain Content via Security Command v100.0.0","rule_id":"565d6ca5-75ba-4c82-9b13-add25353471c:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may dump the content of the keychain storage data from a system to acquire credentials. Keychains are the built-in way for macOS to keep track of users' passwords and credentials for many services and features, including Wi-Fi and website passwords, secure notes, certificates, and Kerberos.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://ss64.com/osx/security.html"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.001","name":"Keychain","reference":"https://attack.mitre.org/techniques/T1555/001/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.args : \"dump-keychain\" and process.args : \"-d\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"565d6ca5-75ba-4c82-9b13-add25353471c:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/565d6ca5-75ba-4c82-9b13-add25353471c:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/565d6ca5-75ba-4c82-9b13-add25353471c:100.0.1.json new file mode 100644 index 0000000000000..2a427b291722d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/565d6ca5-75ba-4c82-9b13-add25353471c:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Dumping of Keychain Content via Security Command v100.0.1","rule_id":"565d6ca5-75ba-4c82-9b13-add25353471c:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may dump the content of the keychain storage data from a system to acquire credentials. Keychains are the built-in way for macOS to keep track of users' passwords and credentials for many services and features, including Wi-Fi and website passwords, secure notes, certificates, and Kerberos.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://ss64.com/osx/security.html"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.001","name":"Keychain","reference":"https://attack.mitre.org/techniques/T1555/001/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.args : \"dump-keychain\" and process.args : \"-d\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"565d6ca5-75ba-4c82-9b13-add25353471c:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/565d6ca5-75ba-4c82-9b13-add25353471c:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/565d6ca5-75ba-4c82-9b13-add25353471c:100.0.2.json new file mode 100644 index 0000000000000..fdace56a2e515 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/565d6ca5-75ba-4c82-9b13-add25353471c:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Dumping of Keychain Content via Security Command v100.0.2","rule_id":"565d6ca5-75ba-4c82-9b13-add25353471c:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may dump the content of the keychain storage data from a system to acquire credentials. Keychains are the built-in way for macOS to keep track of users' passwords and credentials for many services and features, including Wi-Fi and website passwords, secure notes, certificates, and Kerberos.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://ss64.com/osx/security.html"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.001","name":"Keychain","reference":"https://attack.mitre.org/techniques/T1555/001/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.args : \"dump-keychain\" and process.args : \"-d\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"565d6ca5-75ba-4c82-9b13-add25353471c:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5663b693-0dea-4f2e-8275-f1ae5ff2de8e:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5663b693-0dea-4f2e-8275-f1ae5ff2de8e:102.0.0.json new file mode 100644 index 0000000000000..119efebf7af82 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5663b693-0dea-4f2e-8275-f1ae5ff2de8e:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Logging Bucket Deletion v102.0.0","rule_id":"5663b693-0dea-4f2e-8275-f1ae5ff2de8e:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a Logging bucket deletion in Google Cloud Platform (GCP). Log buckets are containers that store and organize log data. A deleted bucket stays in a pending state for 7 days, and Logging continues to route logs to the bucket during that time. To stop routing logs to a deleted bucket, you can delete the log sinks that have the bucket as their destination, or modify the filter for the sinks to stop it from routing logs to the deleted bucket. An adversary may delete a log bucket to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Logging bucket deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Logging bucket deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/logging/docs/buckets","https://cloud.google.com/logging/docs/storage"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.logging.v*.ConfigServiceV*.DeleteBucket and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"5663b693-0dea-4f2e-8275-f1ae5ff2de8e:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5663b693-0dea-4f2e-8275-f1ae5ff2de8e:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5663b693-0dea-4f2e-8275-f1ae5ff2de8e:102.0.1.json new file mode 100644 index 0000000000000..80e85060e3fbb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5663b693-0dea-4f2e-8275-f1ae5ff2de8e:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Logging Bucket Deletion v102.0.1","rule_id":"5663b693-0dea-4f2e-8275-f1ae5ff2de8e:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a Logging bucket deletion in Google Cloud Platform (GCP). Log buckets are containers that store and organize log data. A deleted bucket stays in a pending state for 7 days, and Logging continues to route logs to the bucket during that time. To stop routing logs to a deleted bucket, you can delete the log sinks that have the bucket as their destination, or modify the filter for the sinks to stop it from routing logs to the deleted bucket. An adversary may delete a log bucket to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Logging bucket deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Logging bucket deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/logging/docs/buckets","https://cloud.google.com/logging/docs/storage"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.logging.v*.ConfigServiceV*.DeleteBucket and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"5663b693-0dea-4f2e-8275-f1ae5ff2de8e:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5663b693-0dea-4f2e-8275-f1ae5ff2de8e:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5663b693-0dea-4f2e-8275-f1ae5ff2de8e:102.0.2.json new file mode 100644 index 0000000000000..325640a2e67a9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5663b693-0dea-4f2e-8275-f1ae5ff2de8e:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Logging Bucket Deletion v102.0.2","rule_id":"5663b693-0dea-4f2e-8275-f1ae5ff2de8e:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a Logging bucket deletion in Google Cloud Platform (GCP). Log buckets are containers that store and organize log data. A deleted bucket stays in a pending state for 7 days, and Logging continues to route logs to the bucket during that time. To stop routing logs to a deleted bucket, you can delete the log sinks that have the bucket as their destination, or modify the filter for the sinks to stop it from routing logs to the deleted bucket. An adversary may delete a log bucket to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Logging bucket deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Logging bucket deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/logging/docs/buckets","https://cloud.google.com/logging/docs/storage"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.logging.v*.ConfigServiceV*.DeleteBucket and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"5663b693-0dea-4f2e-8275-f1ae5ff2de8e:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/56f2e9b5-4803-4e44-a0a4-a52dc79d57fe:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/56f2e9b5-4803-4e44-a0a4-a52dc79d57fe:102.0.0.json new file mode 100644 index 0000000000000..8503eeab0e384 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/56f2e9b5-4803-4e44-a0a4-a52dc79d57fe:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell PSReflect Script v102.0.0","rule_id":"56f2e9b5-4803-4e44-a0a4-a52dc79d57fe:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of PSReflect in PowerShell scripts. Attackers leverage PSReflect as a library that enables PowerShell to access win32 API functions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell PSReflect Script\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nPSReflect is a library that enables PowerShell to access win32 API functions in an uncomplicated way. It also helps to\ncreate enums and structs easily—all without touching the disk.\n\nAlthough this is an interesting project for every developer and admin out there, it is mainly used in the red team and\nmalware tooling for its capabilities.\n\nDetecting the core implementation of PSReflect means detecting most of the tooling that uses Windows API through\nPowerShell, enabling defenders to discover tools being dropped in the environment.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics. The\nscript content that may be split into multiple script blocks (you can use the field `powershell.file.script_block_id`\nfor filtering).\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Check for additional PowerShell and command-line logs that indicate that imported functions were run.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the script using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- PowerShell Suspicious Discovery Related Windows API Functions - 61ac3638-40a3-44b2-855a-985636ca985e\n- PowerShell Keylogging Script - bd2c86a0-8b61-4457-ab38-96943984e889\n- PowerShell Suspicious Script with Audio Capture Capabilities - 2f2f4939-0b34-40c2-a0a3-844eb7889f43\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n- Suspicious .NET Reflection via PowerShell - e26f042e-c590-4e82-8e05-41e81bd822ad\n- PowerShell Suspicious Payload Encoded and Compressed - 81fe9dc6-a2d7-4192-a2d8-eed98afc766a\n- PowerShell Suspicious Script with Screenshot Capabilities - 959a7353-1129-4aa7-9084-30746b256a70\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate PowerShell scripts that make use of PSReflect to access the win32 API"],"from":"now-9m","references":["https://github.com/mattifestation/PSReflect/blob/master/PSReflect.psm1","https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]},{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text:(\n \"New-InMemoryModule\" or\n \"Add-Win32Type\" or\n psenum or\n DefineDynamicAssembly or\n DefineDynamicModule or\n \"Reflection.TypeAttributes\" or\n \"Reflection.Emit.OpCodes\" or\n \"Reflection.Emit.CustomAttributeBuilder\" or\n \"Runtime.InteropServices.DllImportAttribute\"\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"56f2e9b5-4803-4e44-a0a4-a52dc79d57fe:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/56f2e9b5-4803-4e44-a0a4-a52dc79d57fe:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/56f2e9b5-4803-4e44-a0a4-a52dc79d57fe:102.0.1.json new file mode 100644 index 0000000000000..f6eb0fb9eca86 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/56f2e9b5-4803-4e44-a0a4-a52dc79d57fe:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell PSReflect Script v102.0.1","rule_id":"56f2e9b5-4803-4e44-a0a4-a52dc79d57fe:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of PSReflect in PowerShell scripts. Attackers leverage PSReflect as a library that enables PowerShell to access win32 API functions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell PSReflect Script\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nPSReflect is a library that enables PowerShell to access win32 API functions in an uncomplicated way. It also helps to\ncreate enums and structs easily—all without touching the disk.\n\nAlthough this is an interesting project for every developer and admin out there, it is mainly used in the red team and\nmalware tooling for its capabilities.\n\nDetecting the core implementation of PSReflect means detecting most of the tooling that uses Windows API through\nPowerShell, enabling defenders to discover tools being dropped in the environment.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics. The\nscript content that may be split into multiple script blocks (you can use the field `powershell.file.script_block_id`\nfor filtering).\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Check for additional PowerShell and command-line logs that indicate that imported functions were run.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the script using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- PowerShell Suspicious Discovery Related Windows API Functions - 61ac3638-40a3-44b2-855a-985636ca985e\n- PowerShell Keylogging Script - bd2c86a0-8b61-4457-ab38-96943984e889\n- PowerShell Suspicious Script with Audio Capture Capabilities - 2f2f4939-0b34-40c2-a0a3-844eb7889f43\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n- Suspicious .NET Reflection via PowerShell - e26f042e-c590-4e82-8e05-41e81bd822ad\n- PowerShell Suspicious Payload Encoded and Compressed - 81fe9dc6-a2d7-4192-a2d8-eed98afc766a\n- PowerShell Suspicious Script with Screenshot Capabilities - 959a7353-1129-4aa7-9084-30746b256a70\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate PowerShell scripts that make use of PSReflect to access the win32 API"],"from":"now-9m","references":["https://github.com/mattifestation/PSReflect/blob/master/PSReflect.psm1","https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]},{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text:(\n \"New-InMemoryModule\" or\n \"Add-Win32Type\" or\n psenum or\n DefineDynamicAssembly or\n DefineDynamicModule or\n \"Reflection.TypeAttributes\" or\n \"Reflection.Emit.OpCodes\" or\n \"Reflection.Emit.CustomAttributeBuilder\" or\n \"Runtime.InteropServices.DllImportAttribute\"\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"56f2e9b5-4803-4e44-a0a4-a52dc79d57fe:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/56f2e9b5-4803-4e44-a0a4-a52dc79d57fe:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/56f2e9b5-4803-4e44-a0a4-a52dc79d57fe:102.0.2.json new file mode 100644 index 0000000000000..6144b68bec9a6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/56f2e9b5-4803-4e44-a0a4-a52dc79d57fe:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell PSReflect Script v102.0.2","rule_id":"56f2e9b5-4803-4e44-a0a4-a52dc79d57fe:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of PSReflect in PowerShell scripts. Attackers leverage PSReflect as a library that enables PowerShell to access win32 API functions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell PSReflect Script\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nPSReflect is a library that enables PowerShell to access win32 API functions in an uncomplicated way. It also helps to\ncreate enums and structs easily—all without touching the disk.\n\nAlthough this is an interesting project for every developer and admin out there, it is mainly used in the red team and\nmalware tooling for its capabilities.\n\nDetecting the core implementation of PSReflect means detecting most of the tooling that uses Windows API through\nPowerShell, enabling defenders to discover tools being dropped in the environment.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics. The\nscript content that may be split into multiple script blocks (you can use the field `powershell.file.script_block_id`\nfor filtering).\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Check for additional PowerShell and command-line logs that indicate that imported functions were run.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the script using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- PowerShell Suspicious Discovery Related Windows API Functions - 61ac3638-40a3-44b2-855a-985636ca985e\n- PowerShell Keylogging Script - bd2c86a0-8b61-4457-ab38-96943984e889\n- PowerShell Suspicious Script with Audio Capture Capabilities - 2f2f4939-0b34-40c2-a0a3-844eb7889f43\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n- Suspicious .NET Reflection via PowerShell - e26f042e-c590-4e82-8e05-41e81bd822ad\n- PowerShell Suspicious Payload Encoded and Compressed - 81fe9dc6-a2d7-4192-a2d8-eed98afc766a\n- PowerShell Suspicious Script with Screenshot Capabilities - 959a7353-1129-4aa7-9084-30746b256a70\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate PowerShell scripts that make use of PSReflect to access the win32 API"],"from":"now-9m","references":["https://github.com/mattifestation/PSReflect/blob/master/PSReflect.psm1","https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]},{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text:(\n \"New-InMemoryModule\" or\n \"Add-Win32Type\" or\n psenum or\n DefineDynamicAssembly or\n DefineDynamicModule or\n \"Reflection.TypeAttributes\" or\n \"Reflection.Emit.OpCodes\" or\n \"Reflection.Emit.CustomAttributeBuilder\" or\n \"Runtime.InteropServices.DllImportAttribute\"\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"56f2e9b5-4803-4e44-a0a4-a52dc79d57fe:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5700cb81-df44-46aa-a5d7-337798f53eb8:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5700cb81-df44-46aa-a5d7-337798f53eb8:100.0.0.json new file mode 100644 index 0000000000000..b2e97c9e86b80 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5700cb81-df44-46aa-a5d7-337798f53eb8:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"VNC (Virtual Network Computing) from the Internet v100.0.0","rule_id":"5700cb81-df44-46aa-a5d7-337798f53eb8:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of VNC traffic from the Internet. VNC is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["VNC connections may be received directly to Linux cloud server instances but such connections are usually made only by engineers. VNC is less common than SSH or RDP but may be required by some work-flows such as remote access and support for specialized software products or servers. Such work-flows are usually known and not unexpected. Usage that is unfamiliar to server or network owners can be unexpected and suspicious."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1219","name":"Remote Access Software","reference":"https://attack.mitre.org/techniques/T1219/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and destination.port >= 5800 and destination.port <= 5810 and\n not source.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n ) and\n destination.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},"id":"5700cb81-df44-46aa-a5d7-337798f53eb8:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5700cb81-df44-46aa-a5d7-337798f53eb8:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5700cb81-df44-46aa-a5d7-337798f53eb8:100.0.1.json new file mode 100644 index 0000000000000..92134383b33ce --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5700cb81-df44-46aa-a5d7-337798f53eb8:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"VNC (Virtual Network Computing) from the Internet v100.0.1","rule_id":"5700cb81-df44-46aa-a5d7-337798f53eb8:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of VNC traffic from the Internet. VNC is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["VNC connections may be received directly to Linux cloud server instances but such connections are usually made only by engineers. VNC is less common than SSH or RDP but may be required by some work-flows such as remote access and support for specialized software products or servers. Such work-flows are usually known and not unexpected. Usage that is unfamiliar to server or network owners can be unexpected and suspicious."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1219","name":"Remote Access Software","reference":"https://attack.mitre.org/techniques/T1219/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and destination.port >= 5800 and destination.port <= 5810 and\n not source.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n ) and\n destination.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},"id":"5700cb81-df44-46aa-a5d7-337798f53eb8:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5700cb81-df44-46aa-a5d7-337798f53eb8:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5700cb81-df44-46aa-a5d7-337798f53eb8:100.0.2.json new file mode 100644 index 0000000000000..0953b2c106348 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5700cb81-df44-46aa-a5d7-337798f53eb8:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"VNC (Virtual Network Computing) from the Internet v100.0.2","rule_id":"5700cb81-df44-46aa-a5d7-337798f53eb8:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of VNC traffic from the Internet. VNC is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["VNC connections may be received directly to Linux cloud server instances but such connections are usually made only by engineers. VNC is less common than SSH or RDP but may be required by some work-flows such as remote access and support for specialized software products or servers. Such work-flows are usually known and not unexpected. Usage that is unfamiliar to server or network owners can be unexpected and suspicious."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1219","name":"Remote Access Software","reference":"https://attack.mitre.org/techniques/T1219/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and destination.port >= 5800 and destination.port <= 5810 and\n not source.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n ) and\n destination.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},"id":"5700cb81-df44-46aa-a5d7-337798f53eb8:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/571afc56-5ed9-465d-a2a9-045f099f6e7e:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/571afc56-5ed9-465d-a2a9-045f099f6e7e:100.0.0.json new file mode 100644 index 0000000000000..3eb86de0fd314 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/571afc56-5ed9-465d-a2a9-045f099f6e7e:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Credential Dumping - Detected - Elastic Endgame v100.0.0","rule_id":"571afc56-5ed9-465d-a2a9-045f099f6e7e:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected Credential Dumping. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:cred_theft_event or endgame.event_subtype_full:cred_theft_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"571afc56-5ed9-465d-a2a9-045f099f6e7e:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/571afc56-5ed9-465d-a2a9-045f099f6e7e:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/571afc56-5ed9-465d-a2a9-045f099f6e7e:100.0.1.json new file mode 100644 index 0000000000000..4109e6b73187d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/571afc56-5ed9-465d-a2a9-045f099f6e7e:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Credential Dumping - Detected - Elastic Endgame v100.0.1","rule_id":"571afc56-5ed9-465d-a2a9-045f099f6e7e:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected Credential Dumping. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:cred_theft_event or endgame.event_subtype_full:cred_theft_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"571afc56-5ed9-465d-a2a9-045f099f6e7e:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/571afc56-5ed9-465d-a2a9-045f099f6e7e:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/571afc56-5ed9-465d-a2a9-045f099f6e7e:100.0.2.json new file mode 100644 index 0000000000000..204c8709e4132 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/571afc56-5ed9-465d-a2a9-045f099f6e7e:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Credential Dumping - Detected - Elastic Endgame v100.0.2","rule_id":"571afc56-5ed9-465d-a2a9-045f099f6e7e:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected Credential Dumping. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:cred_theft_event or endgame.event_subtype_full:cred_theft_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"571afc56-5ed9-465d-a2a9-045f099f6e7e:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/573f6e7a-7acf-4bcd-ad42-c4969124d3c0:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/573f6e7a-7acf-4bcd-ad42-c4969124d3c0:101.0.0.json new file mode 100644 index 0000000000000..673df7693c78b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/573f6e7a-7acf-4bcd-ad42-c4969124d3c0:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Virtual Network Device Modified or Deleted v101.0.0","rule_id":"573f6e7a-7acf-4bcd-ad42-c4969124d3c0:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a virtual network device is modified or deleted. This can be a network virtual appliance, virtual hub, or virtual router.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Virtual Network Device modification or deletion may be performed by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Virtual Network Device modification or deletion by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Network Security","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:(\"MICROSOFT.NETWORK/NETWORKINTERFACES/TAPCONFIGURATIONS/WRITE\" or\n\"MICROSOFT.NETWORK/NETWORKINTERFACES/TAPCONFIGURATIONS/DELETE\" or \"MICROSOFT.NETWORK/NETWORKINTERFACES/WRITE\" or\n\"MICROSOFT.NETWORK/NETWORKINTERFACES/JOIN/ACTION\" or \"MICROSOFT.NETWORK/NETWORKINTERFACES/DELETE\" or\n\"MICROSOFT.NETWORK/NETWORKVIRTUALAPPLIANCES/DELETE\" or \"MICROSOFT.NETWORK/NETWORKVIRTUALAPPLIANCES/WRITE\" or\n\"MICROSOFT.NETWORK/VIRTUALHUBS/DELETE\" or \"MICROSOFT.NETWORK/VIRTUALHUBS/WRITE\" or\n\"MICROSOFT.NETWORK/VIRTUALROUTERS/WRITE\" or \"MICROSOFT.NETWORK/VIRTUALROUTERS/DELETE\") and\nevent.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"573f6e7a-7acf-4bcd-ad42-c4969124d3c0:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/573f6e7a-7acf-4bcd-ad42-c4969124d3c0:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/573f6e7a-7acf-4bcd-ad42-c4969124d3c0:101.0.1.json new file mode 100644 index 0000000000000..67691ba6c56a1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/573f6e7a-7acf-4bcd-ad42-c4969124d3c0:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Virtual Network Device Modified or Deleted v101.0.1","rule_id":"573f6e7a-7acf-4bcd-ad42-c4969124d3c0:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a virtual network device is modified or deleted. This can be a network virtual appliance, virtual hub, or virtual router.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Virtual Network Device modification or deletion may be performed by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Virtual Network Device modification or deletion by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Network Security","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:(\"MICROSOFT.NETWORK/NETWORKINTERFACES/TAPCONFIGURATIONS/WRITE\" or\n\"MICROSOFT.NETWORK/NETWORKINTERFACES/TAPCONFIGURATIONS/DELETE\" or \"MICROSOFT.NETWORK/NETWORKINTERFACES/WRITE\" or\n\"MICROSOFT.NETWORK/NETWORKINTERFACES/JOIN/ACTION\" or \"MICROSOFT.NETWORK/NETWORKINTERFACES/DELETE\" or\n\"MICROSOFT.NETWORK/NETWORKVIRTUALAPPLIANCES/DELETE\" or \"MICROSOFT.NETWORK/NETWORKVIRTUALAPPLIANCES/WRITE\" or\n\"MICROSOFT.NETWORK/VIRTUALHUBS/DELETE\" or \"MICROSOFT.NETWORK/VIRTUALHUBS/WRITE\" or\n\"MICROSOFT.NETWORK/VIRTUALROUTERS/WRITE\" or \"MICROSOFT.NETWORK/VIRTUALROUTERS/DELETE\") and\nevent.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"573f6e7a-7acf-4bcd-ad42-c4969124d3c0:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/573f6e7a-7acf-4bcd-ad42-c4969124d3c0:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/573f6e7a-7acf-4bcd-ad42-c4969124d3c0:101.0.2.json new file mode 100644 index 0000000000000..e1ab8ed99dfd7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/573f6e7a-7acf-4bcd-ad42-c4969124d3c0:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Virtual Network Device Modified or Deleted v101.0.2","rule_id":"573f6e7a-7acf-4bcd-ad42-c4969124d3c0:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a virtual network device is modified or deleted. This can be a network virtual appliance, virtual hub, or virtual router.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Virtual Network Device modification or deletion may be performed by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Virtual Network Device modification or deletion by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Network Security","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:(\"MICROSOFT.NETWORK/NETWORKINTERFACES/TAPCONFIGURATIONS/WRITE\" or\n\"MICROSOFT.NETWORK/NETWORKINTERFACES/TAPCONFIGURATIONS/DELETE\" or \"MICROSOFT.NETWORK/NETWORKINTERFACES/WRITE\" or\n\"MICROSOFT.NETWORK/NETWORKINTERFACES/JOIN/ACTION\" or \"MICROSOFT.NETWORK/NETWORKINTERFACES/DELETE\" or\n\"MICROSOFT.NETWORK/NETWORKVIRTUALAPPLIANCES/DELETE\" or \"MICROSOFT.NETWORK/NETWORKVIRTUALAPPLIANCES/WRITE\" or\n\"MICROSOFT.NETWORK/VIRTUALHUBS/DELETE\" or \"MICROSOFT.NETWORK/VIRTUALHUBS/WRITE\" or\n\"MICROSOFT.NETWORK/VIRTUALROUTERS/WRITE\" or \"MICROSOFT.NETWORK/VIRTUALROUTERS/DELETE\") and\nevent.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"573f6e7a-7acf-4bcd-ad42-c4969124d3c0:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/577ec21e-56fe-4065-91d8-45eb8224fe77:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/577ec21e-56fe-4065-91d8-45eb8224fe77:102.0.0.json new file mode 100644 index 0000000000000..7e900f3d83fef --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/577ec21e-56fe-4065-91d8-45eb8224fe77:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell MiniDump Script v102.0.0","rule_id":"577ec21e-56fe-4065-91d8-45eb8224fe77:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects PowerShell scripts capable of dumping process memory using WindowsErrorReporting or Dbghelp.dll MiniDumpWriteDump. Attackers can use this tooling to dump LSASS and get access to credentials.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell MiniDump Script\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can abuse Process Memory Dump capabilities to extract credentials from LSASS or to obtain other\nprivileged information stored in the process memory.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Check if the imported function was executed and which process it targeted.\n\n### False positive analysis\n\n- Regular users do not have a business justification for using scripting utilities to dump process memory, making false\npositives unlikely.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["PowerShell scripts that use this capability for troubleshooting."],"from":"now-9m","references":["https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Out-Minidump.ps1","https://github.com/FuzzySecurity/PowerShell-Suite/blob/master/Get-ProcessMiniDump.ps1","https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and powershell.file.script_block_text:(MiniDumpWriteDump or MiniDumpWithFullMemory or pmuDetirWpmuDiniM)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"577ec21e-56fe-4065-91d8-45eb8224fe77:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/577ec21e-56fe-4065-91d8-45eb8224fe77:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/577ec21e-56fe-4065-91d8-45eb8224fe77:102.0.1.json new file mode 100644 index 0000000000000..7d7d5128d1a24 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/577ec21e-56fe-4065-91d8-45eb8224fe77:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell MiniDump Script v102.0.1","rule_id":"577ec21e-56fe-4065-91d8-45eb8224fe77:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects PowerShell scripts capable of dumping process memory using WindowsErrorReporting or Dbghelp.dll MiniDumpWriteDump. Attackers can use this tooling to dump LSASS and get access to credentials.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell MiniDump Script\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can abuse Process Memory Dump capabilities to extract credentials from LSASS or to obtain other\nprivileged information stored in the process memory.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Check if the imported function was executed and which process it targeted.\n\n### False positive analysis\n\n- Regular users do not have a business justification for using scripting utilities to dump process memory, making false\npositives unlikely.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["PowerShell scripts that use this capability for troubleshooting."],"from":"now-9m","references":["https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Out-Minidump.ps1","https://github.com/FuzzySecurity/PowerShell-Suite/blob/master/Get-ProcessMiniDump.ps1","https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and powershell.file.script_block_text:(MiniDumpWriteDump or MiniDumpWithFullMemory or pmuDetirWpmuDiniM)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"577ec21e-56fe-4065-91d8-45eb8224fe77:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/577ec21e-56fe-4065-91d8-45eb8224fe77:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/577ec21e-56fe-4065-91d8-45eb8224fe77:102.0.2.json new file mode 100644 index 0000000000000..ccf9c1e1e9e92 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/577ec21e-56fe-4065-91d8-45eb8224fe77:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell MiniDump Script v102.0.2","rule_id":"577ec21e-56fe-4065-91d8-45eb8224fe77:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects PowerShell scripts capable of dumping process memory using WindowsErrorReporting or Dbghelp.dll MiniDumpWriteDump. Attackers can use this tooling to dump LSASS and get access to credentials.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell MiniDump Script\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can abuse Process Memory Dump capabilities to extract credentials from LSASS or to obtain other\nprivileged information stored in the process memory.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Check if the imported function was executed and which process it targeted.\n\n### False positive analysis\n\n- Regular users do not have a business justification for using scripting utilities to dump process memory, making false\npositives unlikely.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["PowerShell scripts that use this capability for troubleshooting."],"from":"now-9m","references":["https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Out-Minidump.ps1","https://github.com/FuzzySecurity/PowerShell-Suite/blob/master/Get-ProcessMiniDump.ps1","https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and powershell.file.script_block_text:(MiniDumpWriteDump or MiniDumpWithFullMemory or pmuDetirWpmuDiniM)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"577ec21e-56fe-4065-91d8-45eb8224fe77:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/581add16-df76-42bb-af8e-c979bfb39a59:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/581add16-df76-42bb-af8e-c979bfb39a59:102.0.0.json new file mode 100644 index 0000000000000..191911d81549f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/581add16-df76-42bb-af8e-c979bfb39a59:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Deleting Backup Catalogs with Wbadmin v102.0.0","rule_id":"581add16-df76-42bb-af8e-c979bfb39a59:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the wbadmin.exe to delete the backup catalog. Ransomware and other malware may do this to prevent system recovery.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Deleting Backup Catalogs with Wbadmin\n\nWindows Server Backup stores the details about your backups (what volumes are backed up and where the backups are\nlocated) in a file called a backup catalog, which ransomware victims can use to recover corrupted backup files.\nDeleting these files is a common step in threat actor playbooks.\n\nThis rule identifies the deletion of the backup catalog using the `wbadmin.exe` utility.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Check if any files on the host machine have been encrypted.\n\n### False positive analysis\n\n- Administrators can use this command to delete corrupted catalogs, but overall the activity is unlikely to be legitimate.\n\n### Related rules\n\n- Third-party Backup Files Deleted via Unexpected Process - 11ea6bec-ebde-4d71-a8e9-784948f8e3e9\n- Volume Shadow Copy Deleted or Resized via VssAdmin - b5ea4bfe-a1b2-421f-9d47-22a75a6f2921\n- Volume Shadow Copy Deletion via PowerShell - d99a037b-c8e2-47a5-97b9-170d076827c4\n- Volume Shadow Copy Deletion via WMIC - dc9c1f74-dac3-48e3-b47f-eb79db358f57\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If any other destructive action was identified on the host, it is recommended to prioritize the investigation and look\nfor ransomware preparation and execution activities.\n- If any backups were affected:\n - Perform data recovery locally or restore the backups from replicated copies (cloud, other servers, etc.).\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"wbadmin.exe\" or process.pe.original_file_name == \"WBADMIN.EXE\") and\n process.args : \"catalog\" and process.args : \"delete\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"581add16-df76-42bb-af8e-c979bfb39a59:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/581add16-df76-42bb-af8e-c979bfb39a59:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/581add16-df76-42bb-af8e-c979bfb39a59:102.0.1.json new file mode 100644 index 0000000000000..0c5801df1f2bd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/581add16-df76-42bb-af8e-c979bfb39a59:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Deleting Backup Catalogs with Wbadmin v102.0.1","rule_id":"581add16-df76-42bb-af8e-c979bfb39a59:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the wbadmin.exe to delete the backup catalog. Ransomware and other malware may do this to prevent system recovery.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Deleting Backup Catalogs with Wbadmin\n\nWindows Server Backup stores the details about your backups (what volumes are backed up and where the backups are\nlocated) in a file called a backup catalog, which ransomware victims can use to recover corrupted backup files.\nDeleting these files is a common step in threat actor playbooks.\n\nThis rule identifies the deletion of the backup catalog using the `wbadmin.exe` utility.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Check if any files on the host machine have been encrypted.\n\n### False positive analysis\n\n- Administrators can use this command to delete corrupted catalogs, but overall the activity is unlikely to be legitimate.\n\n### Related rules\n\n- Third-party Backup Files Deleted via Unexpected Process - 11ea6bec-ebde-4d71-a8e9-784948f8e3e9\n- Volume Shadow Copy Deleted or Resized via VssAdmin - b5ea4bfe-a1b2-421f-9d47-22a75a6f2921\n- Volume Shadow Copy Deletion via PowerShell - d99a037b-c8e2-47a5-97b9-170d076827c4\n- Volume Shadow Copy Deletion via WMIC - dc9c1f74-dac3-48e3-b47f-eb79db358f57\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If any other destructive action was identified on the host, it is recommended to prioritize the investigation and look\nfor ransomware preparation and execution activities.\n- If any backups were affected:\n - Perform data recovery locally or restore the backups from replicated copies (cloud, other servers, etc.).\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"wbadmin.exe\" or process.pe.original_file_name == \"WBADMIN.EXE\") and\n process.args : \"catalog\" and process.args : \"delete\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"581add16-df76-42bb-af8e-c979bfb39a59:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/581add16-df76-42bb-af8e-c979bfb39a59:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/581add16-df76-42bb-af8e-c979bfb39a59:102.0.2.json new file mode 100644 index 0000000000000..c55784a876c5c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/581add16-df76-42bb-af8e-c979bfb39a59:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Deleting Backup Catalogs with Wbadmin v102.0.2","rule_id":"581add16-df76-42bb-af8e-c979bfb39a59:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the wbadmin.exe to delete the backup catalog. Ransomware and other malware may do this to prevent system recovery.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Deleting Backup Catalogs with Wbadmin\n\nWindows Server Backup stores the details about your backups (what volumes are backed up and where the backups are\nlocated) in a file called a backup catalog, which ransomware victims can use to recover corrupted backup files.\nDeleting these files is a common step in threat actor playbooks.\n\nThis rule identifies the deletion of the backup catalog using the `wbadmin.exe` utility.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Check if any files on the host machine have been encrypted.\n\n### False positive analysis\n\n- Administrators can use this command to delete corrupted catalogs, but overall the activity is unlikely to be legitimate.\n\n### Related rules\n\n- Third-party Backup Files Deleted via Unexpected Process - 11ea6bec-ebde-4d71-a8e9-784948f8e3e9\n- Volume Shadow Copy Deleted or Resized via VssAdmin - b5ea4bfe-a1b2-421f-9d47-22a75a6f2921\n- Volume Shadow Copy Deletion via PowerShell - d99a037b-c8e2-47a5-97b9-170d076827c4\n- Volume Shadow Copy Deletion via WMIC - dc9c1f74-dac3-48e3-b47f-eb79db358f57\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If any other destructive action was identified on the host, it is recommended to prioritize the investigation and look\nfor ransomware preparation and execution activities.\n- If any backups were affected:\n - Perform data recovery locally or restore the backups from replicated copies (cloud, other servers, etc.).\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"wbadmin.exe\" or process.pe.original_file_name == \"WBADMIN.EXE\") and\n process.args : \"catalog\" and process.args : \"delete\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"581add16-df76-42bb-af8e-c979bfb39a59:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/58aa72ca-d968-4f34-b9f7-bea51d75eb50:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/58aa72ca-d968-4f34-b9f7-bea51d75eb50:102.0.0.json new file mode 100644 index 0000000000000..1eba4d70d13e8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/58aa72ca-d968-4f34-b9f7-bea51d75eb50:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"RDP Enabled via Registry v102.0.0","rule_id":"58aa72ca-d968-4f34-b9f7-bea51d75eb50:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies registry write modifications to enable Remote Desktop Protocol (RDP) access. This could be indicative of adversary lateral movement preparation.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating RDP Enabled via Registry\n\nMicrosoft Remote Desktop Protocol (RDP) is a proprietary Microsoft protocol that enables remote connections to other\ncomputers, typically over TCP port 3389.\n\nAttackers can use RDP to conduct their actions interactively. Ransomware operators frequently use RDP to access\nvictim servers, often using privileged accounts.\n\nThis rule detects modification of the fDenyTSConnections registry key to the value `0`, which specifies that remote\ndesktop connections are enabled. Attackers can abuse remote registry, use psexec, etc., to enable RDP and move laterally.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the user to check if they are aware of the operation.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check whether it makes sense to enable RDP to this host, given its role in the environment.\n- Check if the host is directly exposed to the internet.\n- Check whether privileged accounts accessed the host shortly after the modification.\n- Review network events within a short timespan of this alert for incoming RDP connection attempts.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Check whether the user should be performing this kind of activity, whether\nthey are aware of it, whether RDP should be open, and whether the action exposes the environment to unnecessary risks.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If RDP is needed, make sure to secure it using firewall rules:\n - Allowlist RDP traffic to specific trusted hosts.\n - Restrict RDP logins to authorized non-administrator accounts, where possible.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.001","name":"Remote Desktop Protocol","reference":"https://attack.mitre.org/techniques/T1021/001/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n registry.path : \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Terminal Server\\\\fDenyTSConnections\" and\n registry.data.strings : (\"0\", \"0x00000000\") and not (process.name : \"svchost.exe\" and user.domain == \"NT AUTHORITY\") and\n not process.executable : \"C:\\\\Windows\\\\System32\\\\SystemPropertiesRemote.exe\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"58aa72ca-d968-4f34-b9f7-bea51d75eb50:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/58aa72ca-d968-4f34-b9f7-bea51d75eb50:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/58aa72ca-d968-4f34-b9f7-bea51d75eb50:102.0.1.json new file mode 100644 index 0000000000000..1c55c41a8f65d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/58aa72ca-d968-4f34-b9f7-bea51d75eb50:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"RDP Enabled via Registry v102.0.1","rule_id":"58aa72ca-d968-4f34-b9f7-bea51d75eb50:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies registry write modifications to enable Remote Desktop Protocol (RDP) access. This could be indicative of adversary lateral movement preparation.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating RDP Enabled via Registry\n\nMicrosoft Remote Desktop Protocol (RDP) is a proprietary Microsoft protocol that enables remote connections to other\ncomputers, typically over TCP port 3389.\n\nAttackers can use RDP to conduct their actions interactively. Ransomware operators frequently use RDP to access\nvictim servers, often using privileged accounts.\n\nThis rule detects modification of the fDenyTSConnections registry key to the value `0`, which specifies that remote\ndesktop connections are enabled. Attackers can abuse remote registry, use psexec, etc., to enable RDP and move laterally.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the user to check if they are aware of the operation.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check whether it makes sense to enable RDP to this host, given its role in the environment.\n- Check if the host is directly exposed to the internet.\n- Check whether privileged accounts accessed the host shortly after the modification.\n- Review network events within a short timespan of this alert for incoming RDP connection attempts.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Check whether the user should be performing this kind of activity, whether\nthey are aware of it, whether RDP should be open, and whether the action exposes the environment to unnecessary risks.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If RDP is needed, make sure to secure it using firewall rules:\n - Allowlist RDP traffic to specific trusted hosts.\n - Restrict RDP logins to authorized non-administrator accounts, where possible.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.001","name":"Remote Desktop Protocol","reference":"https://attack.mitre.org/techniques/T1021/001/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n registry.path : \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Terminal Server\\\\fDenyTSConnections\" and\n registry.data.strings : (\"0\", \"0x00000000\") and not (process.name : \"svchost.exe\" and user.domain == \"NT AUTHORITY\") and\n not process.executable : \"C:\\\\Windows\\\\System32\\\\SystemPropertiesRemote.exe\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"58aa72ca-d968-4f34-b9f7-bea51d75eb50:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/58aa72ca-d968-4f34-b9f7-bea51d75eb50:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/58aa72ca-d968-4f34-b9f7-bea51d75eb50:102.0.2.json new file mode 100644 index 0000000000000..c18566c941157 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/58aa72ca-d968-4f34-b9f7-bea51d75eb50:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"RDP Enabled via Registry v102.0.2","rule_id":"58aa72ca-d968-4f34-b9f7-bea51d75eb50:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies registry write modifications to enable Remote Desktop Protocol (RDP) access. This could be indicative of adversary lateral movement preparation.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating RDP Enabled via Registry\n\nMicrosoft Remote Desktop Protocol (RDP) is a proprietary Microsoft protocol that enables remote connections to other\ncomputers, typically over TCP port 3389.\n\nAttackers can use RDP to conduct their actions interactively. Ransomware operators frequently use RDP to access\nvictim servers, often using privileged accounts.\n\nThis rule detects modification of the fDenyTSConnections registry key to the value `0`, which specifies that remote\ndesktop connections are enabled. Attackers can abuse remote registry, use psexec, etc., to enable RDP and move laterally.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the user to check if they are aware of the operation.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check whether it makes sense to enable RDP to this host, given its role in the environment.\n- Check if the host is directly exposed to the internet.\n- Check whether privileged accounts accessed the host shortly after the modification.\n- Review network events within a short timespan of this alert for incoming RDP connection attempts.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Check whether the user should be performing this kind of activity, whether\nthey are aware of it, whether RDP should be open, and whether the action exposes the environment to unnecessary risks.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If RDP is needed, make sure to secure it using firewall rules:\n - Allowlist RDP traffic to specific trusted hosts.\n - Restrict RDP logins to authorized non-administrator accounts, where possible.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.001","name":"Remote Desktop Protocol","reference":"https://attack.mitre.org/techniques/T1021/001/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n registry.path : \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Terminal Server\\\\fDenyTSConnections\" and\n registry.data.strings : (\"0\", \"0x00000000\") and not (process.name : \"svchost.exe\" and user.domain == \"NT AUTHORITY\") and\n not process.executable : \"C:\\\\Windows\\\\System32\\\\SystemPropertiesRemote.exe\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"58aa72ca-d968-4f34-b9f7-bea51d75eb50:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/58ac2aa5-6718-427c-a845-5f3ac5af00ba:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/58ac2aa5-6718-427c-a845-5f3ac5af00ba:100.0.0.json new file mode 100644 index 0000000000000..f4675a3475f4d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/58ac2aa5-6718-427c-a845-5f3ac5af00ba:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Zoom Meeting with no Passcode v100.0.0","rule_id":"58ac2aa5-6718-427c-a845-5f3ac5af00ba:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule identifies Zoom meetings that are created without a passcode. Meetings without a passcode are susceptible to Zoombombing. Zoombombing is carried out by taking advantage of Zoom sessions that are not protected with a passcode. Zoombombing refers to the unwanted, disruptive intrusion, generally by Internet trolls and hackers, into a video conference call. In a typical Zoombombing incident, a teleconferencing session is hijacked by the insertion of material that is lewd, obscene, racist, or antisemitic in nature, typically resulting of the shutdown of the session.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://blog.zoom.us/a-message-to-our-users/","https://www.fbi.gov/contact-us/field-offices/boston/news/press-releases/fbi-warns-of-teleconferencing-and-online-classroom-hijacking-during-covid-19-pandemic"],"tags":["Elastic","Application","Communication","Zoom","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["filebeat-*"],"language":"kuery","query":"event.type:creation and event.module:zoom and event.dataset:zoom.webhook and\n event.action:meeting.created and not zoom.meeting.password:*\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"zoom.meeting.password","type":"keyword"}],"setup":"The Zoom Filebeat module or similarly structured data is required to be compatible with this rule."},"id":"58ac2aa5-6718-427c-a845-5f3ac5af00ba:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/58ac2aa5-6718-427c-a845-5f3ac5af00ba:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/58ac2aa5-6718-427c-a845-5f3ac5af00ba:100.0.1.json new file mode 100644 index 0000000000000..3216017c7940d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/58ac2aa5-6718-427c-a845-5f3ac5af00ba:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Zoom Meeting with no Passcode v100.0.1","rule_id":"58ac2aa5-6718-427c-a845-5f3ac5af00ba:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule identifies Zoom meetings that are created without a passcode. Meetings without a passcode are susceptible to Zoombombing. Zoombombing is carried out by taking advantage of Zoom sessions that are not protected with a passcode. Zoombombing refers to the unwanted, disruptive intrusion, generally by Internet trolls and hackers, into a video conference call. In a typical Zoombombing incident, a teleconferencing session is hijacked by the insertion of material that is lewd, obscene, racist, or antisemitic in nature, typically resulting of the shutdown of the session.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://blog.zoom.us/a-message-to-our-users/","https://www.fbi.gov/contact-us/field-offices/boston/news/press-releases/fbi-warns-of-teleconferencing-and-online-classroom-hijacking-during-covid-19-pandemic"],"tags":["Elastic","Application","Communication","Zoom","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["filebeat-*"],"language":"kuery","query":"event.type:creation and event.module:zoom and event.dataset:zoom.webhook and\n event.action:meeting.created and not zoom.meeting.password:*\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"zoom.meeting.password","type":"keyword"}],"setup":"The Zoom Filebeat module or similarly structured data is required to be compatible with this rule."},"id":"58ac2aa5-6718-427c-a845-5f3ac5af00ba:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/58ac2aa5-6718-427c-a845-5f3ac5af00ba:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/58ac2aa5-6718-427c-a845-5f3ac5af00ba:100.0.2.json new file mode 100644 index 0000000000000..1d3535991955a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/58ac2aa5-6718-427c-a845-5f3ac5af00ba:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Zoom Meeting with no Passcode v100.0.2","rule_id":"58ac2aa5-6718-427c-a845-5f3ac5af00ba:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule identifies Zoom meetings that are created without a passcode. Meetings without a passcode are susceptible to Zoombombing. Zoombombing is carried out by taking advantage of Zoom sessions that are not protected with a passcode. Zoombombing refers to the unwanted, disruptive intrusion, generally by Internet trolls and hackers, into a video conference call. In a typical Zoombombing incident, a teleconferencing session is hijacked by the insertion of material that is lewd, obscene, racist, or antisemitic in nature, typically resulting of the shutdown of the session.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://blog.zoom.us/a-message-to-our-users/","https://www.fbi.gov/contact-us/field-offices/boston/news/press-releases/fbi-warns-of-teleconferencing-and-online-classroom-hijacking-during-covid-19-pandemic"],"tags":["Elastic","Application","Communication","Zoom","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["filebeat-*"],"language":"kuery","query":"event.type:creation and event.module:zoom and event.dataset:zoom.webhook and\n event.action:meeting.created and not zoom.meeting.password:*\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"zoom.meeting.password","type":"keyword"}],"setup":"The Zoom Filebeat module or similarly structured data is required to be compatible with this rule."},"id":"58ac2aa5-6718-427c-a845-5f3ac5af00ba:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/58bc134c-e8d2-4291-a552-b4b3e537c60b:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/58bc134c-e8d2-4291-a552-b4b3e537c60b:102.0.0.json new file mode 100644 index 0000000000000..2becf6005677a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/58bc134c-e8d2-4291-a552-b4b3e537c60b:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Lateral Tool Transfer via SMB Share v102.0.0","rule_id":"58bc134c-e8d2-4291-a552-b4b3e537c60b:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or change of a Windows executable file over network shares. Adversaries may transfer tools or other files between systems in a compromised environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Lateral Tool Transfer via SMB Share\n\nAdversaries can use network shares to host tooling to support the compromise of other hosts in the environment. These tools\ncan include discovery utilities, credential dumpers, malware, etc. Attackers can also leverage file shares that employees\nfrequently access to host malicious files to gain a foothold in other machines.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve the created file and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity can happen legitimately. Consider adding exceptions if it is expected and noisy in your environment.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Review the privileges needed to write to the network share and restrict write access as needed.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1570","name":"Lateral Tool Transfer","reference":"https://attack.mitre.org/techniques/T1570/"},{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=30s\n [network where event.type == \"start\" and process.pid == 4 and destination.port == 445 and\n network.direction : (\"incoming\", \"ingress\") and\n network.transport == \"tcp\" and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ] by process.entity_id\n /* add more executable extensions here if they are not noisy in your environment */\n [file where event.type in (\"creation\", \"change\") and process.pid == 4 and file.extension : (\"exe\", \"dll\", \"bat\", \"cmd\")] by process.entity_id\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"},{"ecs":true,"name":"source.ip","type":"ip"}]},"id":"58bc134c-e8d2-4291-a552-b4b3e537c60b:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/58bc134c-e8d2-4291-a552-b4b3e537c60b:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/58bc134c-e8d2-4291-a552-b4b3e537c60b:102.0.1.json new file mode 100644 index 0000000000000..e97fd85066f50 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/58bc134c-e8d2-4291-a552-b4b3e537c60b:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Lateral Tool Transfer via SMB Share v102.0.1","rule_id":"58bc134c-e8d2-4291-a552-b4b3e537c60b:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or change of a Windows executable file over network shares. Adversaries may transfer tools or other files between systems in a compromised environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Lateral Tool Transfer via SMB Share\n\nAdversaries can use network shares to host tooling to support the compromise of other hosts in the environment. These tools\ncan include discovery utilities, credential dumpers, malware, etc. Attackers can also leverage file shares that employees\nfrequently access to host malicious files to gain a foothold in other machines.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve the created file and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity can happen legitimately. Consider adding exceptions if it is expected and noisy in your environment.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Review the privileges needed to write to the network share and restrict write access as needed.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1570","name":"Lateral Tool Transfer","reference":"https://attack.mitre.org/techniques/T1570/"},{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=30s\n [network where event.type == \"start\" and process.pid == 4 and destination.port == 445 and\n network.direction : (\"incoming\", \"ingress\") and\n network.transport == \"tcp\" and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ] by process.entity_id\n /* add more executable extensions here if they are not noisy in your environment */\n [file where event.type in (\"creation\", \"change\") and process.pid == 4 and file.extension : (\"exe\", \"dll\", \"bat\", \"cmd\")] by process.entity_id\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"},{"ecs":true,"name":"source.ip","type":"ip"}]},"id":"58bc134c-e8d2-4291-a552-b4b3e537c60b:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/58bc134c-e8d2-4291-a552-b4b3e537c60b:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/58bc134c-e8d2-4291-a552-b4b3e537c60b:102.0.2.json new file mode 100644 index 0000000000000..2c753c8011300 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/58bc134c-e8d2-4291-a552-b4b3e537c60b:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Lateral Tool Transfer via SMB Share v102.0.2","rule_id":"58bc134c-e8d2-4291-a552-b4b3e537c60b:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or change of a Windows executable file over network shares. Adversaries may transfer tools or other files between systems in a compromised environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Lateral Tool Transfer via SMB Share\n\nAdversaries can use network shares to host tooling to support the compromise of other hosts in the environment. These tools\ncan include discovery utilities, credential dumpers, malware, etc. Attackers can also leverage file shares that employees\nfrequently access to host malicious files to gain a foothold in other machines.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve the created file and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity can happen legitimately. Consider adding exceptions if it is expected and noisy in your environment.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Review the privileges needed to write to the network share and restrict write access as needed.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1570","name":"Lateral Tool Transfer","reference":"https://attack.mitre.org/techniques/T1570/"},{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=30s\n [network where event.type == \"start\" and process.pid == 4 and destination.port == 445 and\n network.direction : (\"incoming\", \"ingress\") and\n network.transport == \"tcp\" and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ] by process.entity_id\n /* add more executable extensions here if they are not noisy in your environment */\n [file where event.type in (\"creation\", \"change\") and process.pid == 4 and file.extension : (\"exe\", \"dll\", \"bat\", \"cmd\")] by process.entity_id\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"},{"ecs":true,"name":"source.ip","type":"ip"}]},"id":"58bc134c-e8d2-4291-a552-b4b3e537c60b:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/58c6d58b-a0d3-412d-b3b8-0981a9400607:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/58c6d58b-a0d3-412d-b3b8-0981a9400607:102.0.0.json new file mode 100644 index 0000000000000..4d87022af392e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/58c6d58b-a0d3-412d-b3b8-0981a9400607:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Privilege Escalation via InstallerFileTakeOver v102.0.0","rule_id":"58c6d58b-a0d3-412d-b3b8-0981a9400607:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a potential exploitation of InstallerTakeOver (CVE-2021-41379) default PoC execution. Successful exploitation allows an unprivileged user to escalate privileges to SYSTEM.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Privilege Escalation via InstallerFileTakeOver\n\nInstallerFileTakeOver is a weaponized escalation of privilege proof of concept (EoP PoC) to the CVE-2021-41379 vulnerability. Upon successful exploitation, an\nunprivileged user will escalate privileges to SYSTEM/NT AUTHORITY.\n\nThis rule detects the default execution of the PoC, which overwrites the `elevation_service.exe` DACL and copies itself\nto the location to escalate privileges. An attacker is able to still take over any file that is not in use (locked),\nwhich is outside the scope of this rule.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Look for additional processes spawned by the process, command lines, and network communications.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- Verify whether a digital signature exists in the executable, and if it is valid.\n\n### Related rules\n\n- Suspicious DLL Loaded for Persistence or Privilege Escalation - bfeaf89b-a2a7-48a3-817f-e41829dc61ee\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/klinix5/InstallerFileTakeOver"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"/* This rule is compatible with both Sysmon and Elastic Endpoint */\n\nprocess where event.type == \"start\" and\n (?process.Ext.token.integrity_level_name : \"System\" or\n ?winlog.event_data.IntegrityLevel : \"System\") and\n (\n (process.name : \"elevation_service.exe\" and\n not process.pe.original_file_name == \"elevation_service.exe\") or\n\n (process.parent.name : \"elevation_service.exe\" and\n process.name : (\"rundll32.exe\", \"cmd.exe\", \"powershell.exe\"))\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.IntegrityLevel","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"58c6d58b-a0d3-412d-b3b8-0981a9400607:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/58c6d58b-a0d3-412d-b3b8-0981a9400607:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/58c6d58b-a0d3-412d-b3b8-0981a9400607:102.0.1.json new file mode 100644 index 0000000000000..aeca0d6021d58 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/58c6d58b-a0d3-412d-b3b8-0981a9400607:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Privilege Escalation via InstallerFileTakeOver v102.0.1","rule_id":"58c6d58b-a0d3-412d-b3b8-0981a9400607:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a potential exploitation of InstallerTakeOver (CVE-2021-41379) default PoC execution. Successful exploitation allows an unprivileged user to escalate privileges to SYSTEM.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Privilege Escalation via InstallerFileTakeOver\n\nInstallerFileTakeOver is a weaponized escalation of privilege proof of concept (EoP PoC) to the CVE-2021-41379 vulnerability. Upon successful exploitation, an\nunprivileged user will escalate privileges to SYSTEM/NT AUTHORITY.\n\nThis rule detects the default execution of the PoC, which overwrites the `elevation_service.exe` DACL and copies itself\nto the location to escalate privileges. An attacker is able to still take over any file that is not in use (locked),\nwhich is outside the scope of this rule.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Look for additional processes spawned by the process, command lines, and network communications.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- Verify whether a digital signature exists in the executable, and if it is valid.\n\n### Related rules\n\n- Suspicious DLL Loaded for Persistence or Privilege Escalation - bfeaf89b-a2a7-48a3-817f-e41829dc61ee\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/klinix5/InstallerFileTakeOver"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"/* This rule is compatible with both Sysmon and Elastic Endpoint */\n\nprocess where event.type == \"start\" and\n (?process.Ext.token.integrity_level_name : \"System\" or\n ?winlog.event_data.IntegrityLevel : \"System\") and\n (\n (process.name : \"elevation_service.exe\" and\n not process.pe.original_file_name == \"elevation_service.exe\") or\n\n (process.parent.name : \"elevation_service.exe\" and\n process.name : (\"rundll32.exe\", \"cmd.exe\", \"powershell.exe\"))\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.IntegrityLevel","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"58c6d58b-a0d3-412d-b3b8-0981a9400607:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/58c6d58b-a0d3-412d-b3b8-0981a9400607:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/58c6d58b-a0d3-412d-b3b8-0981a9400607:102.0.2.json new file mode 100644 index 0000000000000..7aa2e048f8661 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/58c6d58b-a0d3-412d-b3b8-0981a9400607:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Privilege Escalation via InstallerFileTakeOver v102.0.2","rule_id":"58c6d58b-a0d3-412d-b3b8-0981a9400607:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a potential exploitation of InstallerTakeOver (CVE-2021-41379) default PoC execution. Successful exploitation allows an unprivileged user to escalate privileges to SYSTEM.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Privilege Escalation via InstallerFileTakeOver\n\nInstallerFileTakeOver is a weaponized escalation of privilege proof of concept (EoP PoC) to the CVE-2021-41379 vulnerability. Upon successful exploitation, an\nunprivileged user will escalate privileges to SYSTEM/NT AUTHORITY.\n\nThis rule detects the default execution of the PoC, which overwrites the `elevation_service.exe` DACL and copies itself\nto the location to escalate privileges. An attacker is able to still take over any file that is not in use (locked),\nwhich is outside the scope of this rule.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Look for additional processes spawned by the process, command lines, and network communications.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- Verify whether a digital signature exists in the executable, and if it is valid.\n\n### Related rules\n\n- Suspicious DLL Loaded for Persistence or Privilege Escalation - bfeaf89b-a2a7-48a3-817f-e41829dc61ee\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/klinix5/InstallerFileTakeOver"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"/* This rule is compatible with both Sysmon and Elastic Endpoint */\n\nprocess where event.type == \"start\" and\n (?process.Ext.token.integrity_level_name : \"System\" or\n ?winlog.event_data.IntegrityLevel : \"System\") and\n (\n (process.name : \"elevation_service.exe\" and\n not process.pe.original_file_name == \"elevation_service.exe\") or\n\n (process.parent.name : \"elevation_service.exe\" and\n process.name : (\"rundll32.exe\", \"cmd.exe\", \"powershell.exe\"))\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.IntegrityLevel","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"58c6d58b-a0d3-412d-b3b8-0981a9400607:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5930658c-2107-4afc-91af-e0e55b7f7184:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5930658c-2107-4afc-91af-e0e55b7f7184:101.0.0.json new file mode 100644 index 0000000000000..b3daf057c3101 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5930658c-2107-4afc-91af-e0e55b7f7184:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"O365 Email Reported by User as Malware or Phish v101.0.0","rule_id":"5930658c-2107-4afc-91af-e0e55b7f7184:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the occurrence of emails reported as Phishing or Malware by Users. Security Awareness training is essential to stay ahead of scammers and threat actors, as security products can be bypassed, and the user can still receive a malicious message. Educating users to report suspicious messages can help identify gaps in security controls and prevent malware infections and Business Email Compromise attacks.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate files reported by the users"],"from":"now-30m","references":["https://support.microsoft.com/en-us/office/use-the-report-message-add-in-b5caa9f1-cdf3-4443-af8c-ff724ea719d2?ui=en-us&rs=en-us&ad=us"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"},{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:SecurityComplianceCenter and event.action:AlertTriggered and rule.name:\"Email reported by user as malware or phish\"\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":true,"name":"rule.name","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"5930658c-2107-4afc-91af-e0e55b7f7184:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5930658c-2107-4afc-91af-e0e55b7f7184:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5930658c-2107-4afc-91af-e0e55b7f7184:101.0.1.json new file mode 100644 index 0000000000000..d7716b4fcd67b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5930658c-2107-4afc-91af-e0e55b7f7184:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"O365 Email Reported by User as Malware or Phish v101.0.1","rule_id":"5930658c-2107-4afc-91af-e0e55b7f7184:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the occurrence of emails reported as Phishing or Malware by Users. Security Awareness training is essential to stay ahead of scammers and threat actors, as security products can be bypassed, and the user can still receive a malicious message. Educating users to report suspicious messages can help identify gaps in security controls and prevent malware infections and Business Email Compromise attacks.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate files reported by the users"],"from":"now-30m","references":["https://support.microsoft.com/en-us/office/use-the-report-message-add-in-b5caa9f1-cdf3-4443-af8c-ff724ea719d2?ui=en-us&rs=en-us&ad=us"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"},{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:SecurityComplianceCenter and event.action:AlertTriggered and rule.name:\"Email reported by user as malware or phish\"\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":true,"name":"rule.name","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"5930658c-2107-4afc-91af-e0e55b7f7184:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5930658c-2107-4afc-91af-e0e55b7f7184:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5930658c-2107-4afc-91af-e0e55b7f7184:101.0.2.json new file mode 100644 index 0000000000000..8759490bf37f3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5930658c-2107-4afc-91af-e0e55b7f7184:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"O365 Email Reported by User as Malware or Phish v101.0.2","rule_id":"5930658c-2107-4afc-91af-e0e55b7f7184:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the occurrence of emails reported as Phishing or Malware by Users. Security Awareness training is essential to stay ahead of scammers and threat actors, as security products can be bypassed, and the user can still receive a malicious message. Educating users to report suspicious messages can help identify gaps in security controls and prevent malware infections and Business Email Compromise attacks.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate files reported by the users"],"from":"now-30m","references":["https://support.microsoft.com/en-us/office/use-the-report-message-add-in-b5caa9f1-cdf3-4443-af8c-ff724ea719d2?ui=en-us&rs=en-us&ad=us"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"},{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:SecurityComplianceCenter and event.action:AlertTriggered and rule.name:\"Email reported by user as malware or phish\"\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":true,"name":"rule.name","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"5930658c-2107-4afc-91af-e0e55b7f7184:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/594e0cbf-86cc-45aa-9ff7-ff27db27d3ed:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/594e0cbf-86cc-45aa-9ff7-ff27db27d3ed:101.0.0.json new file mode 100644 index 0000000000000..cfe6f298a5e44 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/594e0cbf-86cc-45aa-9ff7-ff27db27d3ed:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS CloudTrail Log Created v101.0.0","rule_id":"594e0cbf-86cc-45aa-9ff7-ff27db27d3ed:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an AWS log trail that specifies the settings for delivery of log data.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trail creations may be made by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Trail creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_CreateTrail.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudtrail/create-trail.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1530","name":"Data from Cloud Storage Object","reference":"https://attack.mitre.org/techniques/T1530/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:CreateTrail and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"594e0cbf-86cc-45aa-9ff7-ff27db27d3ed:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/594e0cbf-86cc-45aa-9ff7-ff27db27d3ed:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/594e0cbf-86cc-45aa-9ff7-ff27db27d3ed:101.0.1.json new file mode 100644 index 0000000000000..da524d364caa7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/594e0cbf-86cc-45aa-9ff7-ff27db27d3ed:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS CloudTrail Log Created v101.0.1","rule_id":"594e0cbf-86cc-45aa-9ff7-ff27db27d3ed:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an AWS log trail that specifies the settings for delivery of log data.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trail creations may be made by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Trail creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_CreateTrail.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudtrail/create-trail.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1530","name":"Data from Cloud Storage Object","reference":"https://attack.mitre.org/techniques/T1530/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:CreateTrail and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"594e0cbf-86cc-45aa-9ff7-ff27db27d3ed:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/594e0cbf-86cc-45aa-9ff7-ff27db27d3ed:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/594e0cbf-86cc-45aa-9ff7-ff27db27d3ed:101.0.2.json new file mode 100644 index 0000000000000..5a0829c65122f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/594e0cbf-86cc-45aa-9ff7-ff27db27d3ed:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS CloudTrail Log Created v101.0.2","rule_id":"594e0cbf-86cc-45aa-9ff7-ff27db27d3ed:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an AWS log trail that specifies the settings for delivery of log data.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trail creations may be made by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Trail creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_CreateTrail.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudtrail/create-trail.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1530","name":"Data from Cloud Storage Object","reference":"https://attack.mitre.org/techniques/T1530/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:CreateTrail and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"594e0cbf-86cc-45aa-9ff7-ff27db27d3ed:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/59756272-1998-4b8c-be14-e287035c4d10:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/59756272-1998-4b8c-be14-e287035c4d10:100.0.0.json new file mode 100644 index 0000000000000..6e33e19153e96 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/59756272-1998-4b8c-be14-e287035c4d10:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Linux System Owner or User Discovery Activity v100.0.0","rule_id":"59756272-1998-4b8c-be14-e287035c4d10:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for commands related to system user or owner discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used to engage in system owner or user discovery in order to identify currently active or primary users of a system. This may be a precursor to additional discovery, credential dumping or privilege elevation activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user command activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1033","name":"System Owner/User Discovery","reference":"https://attack.mitre.org/techniques/T1033/"}]}],"anomaly_threshold":75,"machine_learning_job_id":["v3_linux_system_user_discovery"],"type":"machine_learning"},"id":"59756272-1998-4b8c-be14-e287035c4d10:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/59756272-1998-4b8c-be14-e287035c4d10:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/59756272-1998-4b8c-be14-e287035c4d10:100.0.1.json new file mode 100644 index 0000000000000..9f2847a2587a8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/59756272-1998-4b8c-be14-e287035c4d10:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Linux System Owner or User Discovery Activity v100.0.1","rule_id":"59756272-1998-4b8c-be14-e287035c4d10:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for commands related to system user or owner discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used to engage in system owner or user discovery in order to identify currently active or primary users of a system. This may be a precursor to additional discovery, credential dumping or privilege elevation activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user command activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1033","name":"System Owner/User Discovery","reference":"https://attack.mitre.org/techniques/T1033/"}]}],"anomaly_threshold":75,"machine_learning_job_id":["v3_linux_system_user_discovery"],"type":"machine_learning"},"id":"59756272-1998-4b8c-be14-e287035c4d10:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/59756272-1998-4b8c-be14-e287035c4d10:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/59756272-1998-4b8c-be14-e287035c4d10:100.0.2.json new file mode 100644 index 0000000000000..f20a80bcf82ad --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/59756272-1998-4b8c-be14-e287035c4d10:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Linux System Owner or User Discovery Activity v100.0.2","rule_id":"59756272-1998-4b8c-be14-e287035c4d10:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for commands related to system user or owner discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used to engage in system owner or user discovery in order to identify currently active or primary users of a system. This may be a precursor to additional discovery, credential dumping or privilege elevation activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user command activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1033","name":"System Owner/User Discovery","reference":"https://attack.mitre.org/techniques/T1033/"}]}],"anomaly_threshold":75,"machine_learning_job_id":["v3_linux_system_user_discovery"],"type":"machine_learning"},"id":"59756272-1998-4b8c-be14-e287035c4d10:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5a14d01d-7ac8-4545-914c-b687c2cf66b3:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5a14d01d-7ac8-4545-914c-b687c2cf66b3:101.0.0.json new file mode 100644 index 0000000000000..2858d6b5b8a98 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5a14d01d-7ac8-4545-914c-b687c2cf66b3:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"UAC Bypass Attempt via Privileged IFileOperation COM Interface v101.0.0","rule_id":"5a14d01d-7ac8-4545-914c-b687c2cf66b3:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to bypass User Account Control (UAC) via DLL side-loading. Attackers may attempt to bypass UAC to stealthily execute code with elevated permissions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/hfiref0x/UACME","https://www.elastic.co/security-labs/exploring-windows-uac-bypasses-techniques-and-detection-strategies"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"file where event.type : \"change\" and process.name : \"dllhost.exe\" and\n /* Known modules names side loaded into process running with high or system integrity level for UAC Bypass, update here for new modules */\n file.name : (\"wow64log.dll\", \"comctl32.dll\", \"DismCore.dll\", \"OskSupport.dll\", \"duser.dll\", \"Accessibility.ni.dll\") and\n /* has no impact on rule logic just to avoid OS install related FPs */\n not file.path : (\"C:\\\\Windows\\\\SoftwareDistribution\\\\*\", \"C:\\\\Windows\\\\WinSxS\\\\*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"5a14d01d-7ac8-4545-914c-b687c2cf66b3:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5a14d01d-7ac8-4545-914c-b687c2cf66b3:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5a14d01d-7ac8-4545-914c-b687c2cf66b3:101.0.1.json new file mode 100644 index 0000000000000..6d4f07c16d733 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5a14d01d-7ac8-4545-914c-b687c2cf66b3:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"UAC Bypass Attempt via Privileged IFileOperation COM Interface v101.0.1","rule_id":"5a14d01d-7ac8-4545-914c-b687c2cf66b3:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to bypass User Account Control (UAC) via DLL side-loading. Attackers may attempt to bypass UAC to stealthily execute code with elevated permissions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/hfiref0x/UACME","https://www.elastic.co/security-labs/exploring-windows-uac-bypasses-techniques-and-detection-strategies"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"file where event.type : \"change\" and process.name : \"dllhost.exe\" and\n /* Known modules names side loaded into process running with high or system integrity level for UAC Bypass, update here for new modules */\n file.name : (\"wow64log.dll\", \"comctl32.dll\", \"DismCore.dll\", \"OskSupport.dll\", \"duser.dll\", \"Accessibility.ni.dll\") and\n /* has no impact on rule logic just to avoid OS install related FPs */\n not file.path : (\"C:\\\\Windows\\\\SoftwareDistribution\\\\*\", \"C:\\\\Windows\\\\WinSxS\\\\*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"5a14d01d-7ac8-4545-914c-b687c2cf66b3:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5a14d01d-7ac8-4545-914c-b687c2cf66b3:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5a14d01d-7ac8-4545-914c-b687c2cf66b3:101.0.2.json new file mode 100644 index 0000000000000..20adc73c6320a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5a14d01d-7ac8-4545-914c-b687c2cf66b3:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"UAC Bypass Attempt via Privileged IFileOperation COM Interface v101.0.2","rule_id":"5a14d01d-7ac8-4545-914c-b687c2cf66b3:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to bypass User Account Control (UAC) via DLL side-loading. Attackers may attempt to bypass UAC to stealthily execute code with elevated permissions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/hfiref0x/UACME","https://www.elastic.co/security-labs/exploring-windows-uac-bypasses-techniques-and-detection-strategies"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"file where event.type : \"change\" and process.name : \"dllhost.exe\" and\n /* Known modules names side loaded into process running with high or system integrity level for UAC Bypass, update here for new modules */\n file.name : (\"wow64log.dll\", \"comctl32.dll\", \"DismCore.dll\", \"OskSupport.dll\", \"duser.dll\", \"Accessibility.ni.dll\") and\n /* has no impact on rule logic just to avoid OS install related FPs */\n not file.path : (\"C:\\\\Windows\\\\SoftwareDistribution\\\\*\", \"C:\\\\Windows\\\\WinSxS\\\\*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"5a14d01d-7ac8-4545-914c-b687c2cf66b3:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5ae4e6f8-d1bf-40fa-96ba-e29645e1e4dc:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5ae4e6f8-d1bf-40fa-96ba-e29645e1e4dc:100.0.0.json new file mode 100644 index 0000000000000..b3ef787400e24 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5ae4e6f8-d1bf-40fa-96ba-e29645e1e4dc:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote SSH Login Enabled via systemsetup Command v100.0.0","rule_id":"5ae4e6f8-d1bf-40fa-96ba-e29645e1e4dc:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects use of the systemsetup command to enable remote SSH Login.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://documents.trendmicro.com/assets/pdf/XCSSET_Technical_Brief.pdf","https://ss64.com/osx/systemsetup.html","https://support.apple.com/guide/remote-desktop/about-systemsetup-apd95406b8d/mac"],"tags":["Elastic","Host","macOS","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.004","name":"SSH","reference":"https://attack.mitre.org/techniques/T1021/004/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:systemsetup and\n process.args:(\"-setremotelogin\" and on) and\n not process.parent.executable : /usr/local/jamf/bin/jamf\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},"id":"5ae4e6f8-d1bf-40fa-96ba-e29645e1e4dc:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5ae4e6f8-d1bf-40fa-96ba-e29645e1e4dc:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5ae4e6f8-d1bf-40fa-96ba-e29645e1e4dc:100.0.1.json new file mode 100644 index 0000000000000..fca105ca5bd75 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5ae4e6f8-d1bf-40fa-96ba-e29645e1e4dc:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote SSH Login Enabled via systemsetup Command v100.0.1","rule_id":"5ae4e6f8-d1bf-40fa-96ba-e29645e1e4dc:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects use of the systemsetup command to enable remote SSH Login.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://documents.trendmicro.com/assets/pdf/XCSSET_Technical_Brief.pdf","https://ss64.com/osx/systemsetup.html","https://support.apple.com/guide/remote-desktop/about-systemsetup-apd95406b8d/mac"],"tags":["Elastic","Host","macOS","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.004","name":"SSH","reference":"https://attack.mitre.org/techniques/T1021/004/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:systemsetup and\n process.args:(\"-setremotelogin\" and on) and\n not process.parent.executable : /usr/local/jamf/bin/jamf\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},"id":"5ae4e6f8-d1bf-40fa-96ba-e29645e1e4dc:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5ae4e6f8-d1bf-40fa-96ba-e29645e1e4dc:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5ae4e6f8-d1bf-40fa-96ba-e29645e1e4dc:100.0.2.json new file mode 100644 index 0000000000000..8c2404ae6a336 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5ae4e6f8-d1bf-40fa-96ba-e29645e1e4dc:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote SSH Login Enabled via systemsetup Command v100.0.2","rule_id":"5ae4e6f8-d1bf-40fa-96ba-e29645e1e4dc:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects use of the systemsetup command to enable remote SSH Login.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://documents.trendmicro.com/assets/pdf/XCSSET_Technical_Brief.pdf","https://ss64.com/osx/systemsetup.html","https://support.apple.com/guide/remote-desktop/about-systemsetup-apd95406b8d/mac"],"tags":["Elastic","Host","macOS","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.004","name":"SSH","reference":"https://attack.mitre.org/techniques/T1021/004/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:systemsetup and\n process.args:(\"-setremotelogin\" and on) and\n not process.parent.executable : /usr/local/jamf/bin/jamf\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},"id":"5ae4e6f8-d1bf-40fa-96ba-e29645e1e4dc:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5aee924b-6ceb-4633-980e-1bde8cdb40c5:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5aee924b-6ceb-4633-980e-1bde8cdb40c5:101.0.0.json new file mode 100644 index 0000000000000..6079ed316d1ed --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5aee924b-6ceb-4633-980e-1bde8cdb40c5:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Secure File Deletion via SDelete Utility v101.0.0","rule_id":"5aee924b-6ceb-4633-980e-1bde8cdb40c5:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects file name patterns generated by the use of Sysinternals SDelete utility to securely delete a file via multiple file overwrite and rename operations.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\nVerify process details such as command line and hash to confirm this activity legitimacy.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.004","name":"File Deletion","reference":"https://attack.mitre.org/techniques/T1070/004/"}]}]}],"language":"eql","query":"file where event.type == \"change\" and file.name : \"*AAA.AAA\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"5aee924b-6ceb-4633-980e-1bde8cdb40c5:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5aee924b-6ceb-4633-980e-1bde8cdb40c5:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5aee924b-6ceb-4633-980e-1bde8cdb40c5:101.0.1.json new file mode 100644 index 0000000000000..81699ba47c301 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5aee924b-6ceb-4633-980e-1bde8cdb40c5:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Secure File Deletion via SDelete Utility v101.0.1","rule_id":"5aee924b-6ceb-4633-980e-1bde8cdb40c5:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects file name patterns generated by the use of Sysinternals SDelete utility to securely delete a file via multiple file overwrite and rename operations.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\nVerify process details such as command line and hash to confirm this activity legitimacy.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.004","name":"File Deletion","reference":"https://attack.mitre.org/techniques/T1070/004/"}]}]}],"language":"eql","query":"file where event.type == \"change\" and file.name : \"*AAA.AAA\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"5aee924b-6ceb-4633-980e-1bde8cdb40c5:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5aee924b-6ceb-4633-980e-1bde8cdb40c5:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5aee924b-6ceb-4633-980e-1bde8cdb40c5:101.0.2.json new file mode 100644 index 0000000000000..86359c436a226 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5aee924b-6ceb-4633-980e-1bde8cdb40c5:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Secure File Deletion via SDelete Utility v101.0.2","rule_id":"5aee924b-6ceb-4633-980e-1bde8cdb40c5:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects file name patterns generated by the use of Sysinternals SDelete utility to securely delete a file via multiple file overwrite and rename operations.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\nVerify process details such as command line and hash to confirm this activity legitimacy.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.004","name":"File Deletion","reference":"https://attack.mitre.org/techniques/T1070/004/"}]}]}],"language":"eql","query":"file where event.type == \"change\" and file.name : \"*AAA.AAA\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"5aee924b-6ceb-4633-980e-1bde8cdb40c5:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5b03c9fb-9945-4d2f-9568-fd690fee3fba:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5b03c9fb-9945-4d2f-9568-fd690fee3fba:100.0.0.json new file mode 100644 index 0000000000000..c2660193ae23e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5b03c9fb-9945-4d2f-9568-fd690fee3fba:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Virtual Machine Fingerprinting v100.0.0","rule_id":"5b03c9fb-9945-4d2f-9568-fd690fee3fba:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary may attempt to get detailed information about the operating system and hardware. This rule identifies common locations used to discover virtual machine hardware by a non-root user. This technique has been used by the Pupy RAT and other malware.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain tools or automated software may enumerate hardware information. These tools can be exempted via user name or process arguments to eliminate potential noise."],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.args:(\"/sys/class/dmi/id/bios_version\" or\n \"/sys/class/dmi/id/product_name\" or\n \"/sys/class/dmi/id/chassis_vendor\" or\n \"/proc/scsi/scsi\" or\n \"/proc/ide/hd0/model\") and\n not user.name:root\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"5b03c9fb-9945-4d2f-9568-fd690fee3fba:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5b03c9fb-9945-4d2f-9568-fd690fee3fba:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5b03c9fb-9945-4d2f-9568-fd690fee3fba:100.0.1.json new file mode 100644 index 0000000000000..6a95884ab55fb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5b03c9fb-9945-4d2f-9568-fd690fee3fba:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Virtual Machine Fingerprinting v100.0.1","rule_id":"5b03c9fb-9945-4d2f-9568-fd690fee3fba:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary may attempt to get detailed information about the operating system and hardware. This rule identifies common locations used to discover virtual machine hardware by a non-root user. This technique has been used by the Pupy RAT and other malware.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain tools or automated software may enumerate hardware information. These tools can be exempted via user name or process arguments to eliminate potential noise."],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.args:(\"/sys/class/dmi/id/bios_version\" or\n \"/sys/class/dmi/id/product_name\" or\n \"/sys/class/dmi/id/chassis_vendor\" or\n \"/proc/scsi/scsi\" or\n \"/proc/ide/hd0/model\") and\n not user.name:root\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"5b03c9fb-9945-4d2f-9568-fd690fee3fba:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5b03c9fb-9945-4d2f-9568-fd690fee3fba:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5b03c9fb-9945-4d2f-9568-fd690fee3fba:100.0.2.json new file mode 100644 index 0000000000000..f54ce66815377 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5b03c9fb-9945-4d2f-9568-fd690fee3fba:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Virtual Machine Fingerprinting v100.0.2","rule_id":"5b03c9fb-9945-4d2f-9568-fd690fee3fba:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary may attempt to get detailed information about the operating system and hardware. This rule identifies common locations used to discover virtual machine hardware by a non-root user. This technique has been used by the Pupy RAT and other malware.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain tools or automated software may enumerate hardware information. These tools can be exempted via user name or process arguments to eliminate potential noise."],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.args:(\"/sys/class/dmi/id/bios_version\" or\n \"/sys/class/dmi/id/product_name\" or\n \"/sys/class/dmi/id/chassis_vendor\" or\n \"/proc/scsi/scsi\" or\n \"/proc/ide/hd0/model\") and\n not user.name:root\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"5b03c9fb-9945-4d2f-9568-fd690fee3fba:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5bb4a95d-5a08-48eb-80db-4c3a63ec78a8:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5bb4a95d-5a08-48eb-80db-4c3a63ec78a8:100.0.0.json new file mode 100644 index 0000000000000..5cdef40dff14e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5bb4a95d-5a08-48eb-80db-4c3a63ec78a8:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious PrintSpooler Service Executable File Creation v100.0.0","rule_id":"5bb4a95d-5a08-48eb-80db-4c3a63ec78a8:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to exploit privilege escalation vulnerabilities related to the Print Spooler service. For more information refer to the following CVE's - CVE-2020-1048, CVE-2020-1337 and CVE-2020-1300 and verify that the impacted system is patched.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://voidsec.com/cve-2020-1337-printdemon-is-dead-long-live-printdemon/","https://www.thezdi.com/blog/2020/7/8/cve-2020-1300-remote-code-execution-through-microsoft-windows-cab-files"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and process.name : \"spoolsv.exe\" and\n file.extension : (\"exe\", \"dll\") and\n not file.path : (\"?:\\\\Windows\\\\System32\\\\spool\\\\*\", \"?:\\\\Windows\\\\Temp\\\\*\", \"?:\\\\Users\\\\*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"5bb4a95d-5a08-48eb-80db-4c3a63ec78a8:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5bb4a95d-5a08-48eb-80db-4c3a63ec78a8:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5bb4a95d-5a08-48eb-80db-4c3a63ec78a8:100.0.1.json new file mode 100644 index 0000000000000..e14bb4a2ef00a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5bb4a95d-5a08-48eb-80db-4c3a63ec78a8:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious PrintSpooler Service Executable File Creation v100.0.1","rule_id":"5bb4a95d-5a08-48eb-80db-4c3a63ec78a8:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to exploit privilege escalation vulnerabilities related to the Print Spooler service. For more information refer to the following CVE's - CVE-2020-1048, CVE-2020-1337 and CVE-2020-1300 and verify that the impacted system is patched.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://voidsec.com/cve-2020-1337-printdemon-is-dead-long-live-printdemon/","https://www.thezdi.com/blog/2020/7/8/cve-2020-1300-remote-code-execution-through-microsoft-windows-cab-files"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and process.name : \"spoolsv.exe\" and\n file.extension : (\"exe\", \"dll\") and\n not file.path : (\"?:\\\\Windows\\\\System32\\\\spool\\\\*\", \"?:\\\\Windows\\\\Temp\\\\*\", \"?:\\\\Users\\\\*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"5bb4a95d-5a08-48eb-80db-4c3a63ec78a8:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5bb4a95d-5a08-48eb-80db-4c3a63ec78a8:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5bb4a95d-5a08-48eb-80db-4c3a63ec78a8:100.0.2.json new file mode 100644 index 0000000000000..380b8895dc499 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5bb4a95d-5a08-48eb-80db-4c3a63ec78a8:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious PrintSpooler Service Executable File Creation v100.0.2","rule_id":"5bb4a95d-5a08-48eb-80db-4c3a63ec78a8:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to exploit privilege escalation vulnerabilities related to the Print Spooler service. For more information refer to the following CVE's - CVE-2020-1048, CVE-2020-1337 and CVE-2020-1300 and verify that the impacted system is patched.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://voidsec.com/cve-2020-1337-printdemon-is-dead-long-live-printdemon/","https://www.thezdi.com/blog/2020/7/8/cve-2020-1300-remote-code-execution-through-microsoft-windows-cab-files"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and process.name : \"spoolsv.exe\" and\n file.extension : (\"exe\", \"dll\") and\n not file.path : (\"?:\\\\Windows\\\\System32\\\\spool\\\\*\", \"?:\\\\Windows\\\\Temp\\\\*\", \"?:\\\\Users\\\\*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"5bb4a95d-5a08-48eb-80db-4c3a63ec78a8:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5beaebc1-cc13-4bfc-9949-776f9e0dc318:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5beaebc1-cc13-4bfc-9949-776f9e0dc318:101.0.0.json new file mode 100644 index 0000000000000..cf5f9429963cd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5beaebc1-cc13-4bfc-9949-776f9e0dc318:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS WAF Rule or Rule Group Deletion v101.0.0","rule_id":"5beaebc1-cc13-4bfc-9949-776f9e0dc318:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a specified AWS Web Application Firewall (WAF) rule or rule group.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["WAF rules or rule groups may be deleted by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Rule deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/waf/delete-rule-group.html","https://docs.aws.amazon.com/waf/latest/APIReference/API_waf_DeleteRuleGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:(waf.amazonaws.com or waf-regional.amazonaws.com or wafv2.amazonaws.com) and event.action:(DeleteRule or DeleteRuleGroup) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"5beaebc1-cc13-4bfc-9949-776f9e0dc318:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5beaebc1-cc13-4bfc-9949-776f9e0dc318:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5beaebc1-cc13-4bfc-9949-776f9e0dc318:101.0.1.json new file mode 100644 index 0000000000000..444bbdae82915 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5beaebc1-cc13-4bfc-9949-776f9e0dc318:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS WAF Rule or Rule Group Deletion v101.0.1","rule_id":"5beaebc1-cc13-4bfc-9949-776f9e0dc318:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a specified AWS Web Application Firewall (WAF) rule or rule group.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["WAF rules or rule groups may be deleted by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Rule deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/waf/delete-rule-group.html","https://docs.aws.amazon.com/waf/latest/APIReference/API_waf_DeleteRuleGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:(waf.amazonaws.com or waf-regional.amazonaws.com or wafv2.amazonaws.com) and event.action:(DeleteRule or DeleteRuleGroup) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"5beaebc1-cc13-4bfc-9949-776f9e0dc318:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5beaebc1-cc13-4bfc-9949-776f9e0dc318:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5beaebc1-cc13-4bfc-9949-776f9e0dc318:101.0.2.json new file mode 100644 index 0000000000000..524c356d544e9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5beaebc1-cc13-4bfc-9949-776f9e0dc318:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS WAF Rule or Rule Group Deletion v101.0.2","rule_id":"5beaebc1-cc13-4bfc-9949-776f9e0dc318:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a specified AWS Web Application Firewall (WAF) rule or rule group.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["WAF rules or rule groups may be deleted by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Rule deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/waf/delete-rule-group.html","https://docs.aws.amazon.com/waf/latest/APIReference/API_waf_DeleteRuleGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:(waf.amazonaws.com or waf-regional.amazonaws.com or wafv2.amazonaws.com) and event.action:(DeleteRule or DeleteRuleGroup) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"5beaebc1-cc13-4bfc-9949-776f9e0dc318:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5c983105-4681-46c3-9890-0c66d05e776b:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5c983105-4681-46c3-9890-0c66d05e776b:100.0.0.json new file mode 100644 index 0000000000000..9e70e75d881b2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5c983105-4681-46c3-9890-0c66d05e776b:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Linux Process Discovery Activity v100.0.0","rule_id":"5c983105-4681-46c3-9890-0c66d05e776b:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for commands related to system process discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used by a threat actor to engage in system process discovery in order to increase their understanding of software applications running on a target host or network. This may be a precursor to selection of a persistence mechanism or a method of privilege elevation.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user command activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1057","name":"Process Discovery","reference":"https://attack.mitre.org/techniques/T1057/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_system_process_discovery"],"type":"machine_learning"},"id":"5c983105-4681-46c3-9890-0c66d05e776b:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5c983105-4681-46c3-9890-0c66d05e776b:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5c983105-4681-46c3-9890-0c66d05e776b:100.0.1.json new file mode 100644 index 0000000000000..f153452bfd9f1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5c983105-4681-46c3-9890-0c66d05e776b:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Linux Process Discovery Activity v100.0.1","rule_id":"5c983105-4681-46c3-9890-0c66d05e776b:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for commands related to system process discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used by a threat actor to engage in system process discovery in order to increase their understanding of software applications running on a target host or network. This may be a precursor to selection of a persistence mechanism or a method of privilege elevation.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user command activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1057","name":"Process Discovery","reference":"https://attack.mitre.org/techniques/T1057/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_system_process_discovery"],"type":"machine_learning"},"id":"5c983105-4681-46c3-9890-0c66d05e776b:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5c983105-4681-46c3-9890-0c66d05e776b:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5c983105-4681-46c3-9890-0c66d05e776b:100.0.2.json new file mode 100644 index 0000000000000..6cd4923116c62 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5c983105-4681-46c3-9890-0c66d05e776b:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Linux Process Discovery Activity v100.0.2","rule_id":"5c983105-4681-46c3-9890-0c66d05e776b:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for commands related to system process discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used by a threat actor to engage in system process discovery in order to increase their understanding of software applications running on a target host or network. This may be a precursor to selection of a persistence mechanism or a method of privilege elevation.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user command activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1057","name":"Process Discovery","reference":"https://attack.mitre.org/techniques/T1057/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_system_process_discovery"],"type":"machine_learning"},"id":"5c983105-4681-46c3-9890-0c66d05e776b:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5cd55388-a19c-47c7-8ec4-f41656c2fded:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5cd55388-a19c-47c7-8ec4-f41656c2fded:100.0.0.json new file mode 100644 index 0000000000000..0c87cb76d80b3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5cd55388-a19c-47c7-8ec4-f41656c2fded:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Outbound Scheduled Task Activity via PowerShell v100.0.0","rule_id":"5cd55388-a19c-47c7-8ec4-f41656c2fded:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the PowerShell process loading the Task Scheduler COM DLL followed by an outbound RPC network connection within a short time period. This may indicate lateral movement or remote discovery via scheduled tasks.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","references":["https://www.volexity.com/blog/2020/12/14/dark-halo-leverages-solarwinds-compromise-to-breach-organizations/"],"tags":["Elastic","Host","Windows","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan = 5s\n [any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : \"taskschd.dll\" or file.name : \"taskschd.dll\") and process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\")]\n [network where process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and destination.port == 135 and not destination.address in (\"127.0.0.1\", \"::1\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.address","type":"keyword"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"5cd55388-a19c-47c7-8ec4-f41656c2fded:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5cd55388-a19c-47c7-8ec4-f41656c2fded:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5cd55388-a19c-47c7-8ec4-f41656c2fded:100.0.1.json new file mode 100644 index 0000000000000..389403575c760 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5cd55388-a19c-47c7-8ec4-f41656c2fded:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Outbound Scheduled Task Activity via PowerShell v100.0.1","rule_id":"5cd55388-a19c-47c7-8ec4-f41656c2fded:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the PowerShell process loading the Task Scheduler COM DLL followed by an outbound RPC network connection within a short time period. This may indicate lateral movement or remote discovery via scheduled tasks.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","references":["https://www.volexity.com/blog/2020/12/14/dark-halo-leverages-solarwinds-compromise-to-breach-organizations/"],"tags":["Elastic","Host","Windows","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan = 5s\n [any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : \"taskschd.dll\" or file.name : \"taskschd.dll\") and process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\")]\n [network where process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and destination.port == 135 and not destination.address in (\"127.0.0.1\", \"::1\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.address","type":"keyword"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"5cd55388-a19c-47c7-8ec4-f41656c2fded:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5cd55388-a19c-47c7-8ec4-f41656c2fded:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5cd55388-a19c-47c7-8ec4-f41656c2fded:100.0.2.json new file mode 100644 index 0000000000000..5095f8c4e975f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5cd55388-a19c-47c7-8ec4-f41656c2fded:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Outbound Scheduled Task Activity via PowerShell v100.0.2","rule_id":"5cd55388-a19c-47c7-8ec4-f41656c2fded:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the PowerShell process loading the Task Scheduler COM DLL followed by an outbound RPC network connection within a short time period. This may indicate lateral movement or remote discovery via scheduled tasks.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","references":["https://www.volexity.com/blog/2020/12/14/dark-halo-leverages-solarwinds-compromise-to-breach-organizations/"],"tags":["Elastic","Host","Windows","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan = 5s\n [any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : \"taskschd.dll\" or file.name : \"taskschd.dll\") and process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\")]\n [network where process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and destination.port == 135 and not destination.address in (\"127.0.0.1\", \"::1\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.address","type":"keyword"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"5cd55388-a19c-47c7-8ec4-f41656c2fded:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5cd8e1f7-0050-4afc-b2df-904e40b2f5ae:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5cd8e1f7-0050-4afc-b2df-904e40b2f5ae:102.0.0.json new file mode 100644 index 0000000000000..b6413e980a9b7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5cd8e1f7-0050-4afc-b2df-904e40b2f5ae:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"User Added to Privileged Group v102.0.0","rule_id":"5cd8e1f7-0050-4afc-b2df-904e40b2f5ae:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a user being added to a privileged group in Active Directory. Privileged accounts and groups in Active Directory are those to which powerful rights, privileges, and permissions are granted that allow them to perform nearly any action in Active Directory and on domain-joined systems.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating User Added to Privileged Group in Active Directory\n\nPrivileged accounts and groups in Active Directory are those to which powerful rights, privileges, and permissions are\ngranted that allow them to perform nearly any action in Active Directory and on domain-joined systems.\n\nAttackers can add users to privileged groups to maintain a level of access if their other privileged accounts are\nuncovered by the security team. This allows them to keep operating after the security team discovers abused accounts.\n\nThis rule monitors events related to a user being added to a privileged group.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should manage members of this group.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- This attack abuses a legitimate Active Directory mechanism, so it is important to determine whether the activity is\nlegitimate, if the administrator is authorized to perform this operation, and if there is a need to grant the account\nthis level of privilege.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the admin is not aware of the operation, activate your Active Directory incident response plan.\n- If the user does not need the administrator privileges, remove the account from the privileged group.\n- Review the privileges of the administrator account that performed the action.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Skoetting"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/appendix-b--privileged-accounts-and-groups-in-active-directory"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"language":"eql","query":"iam where event.action == \"added-member-to-group\" and\n group.name : (\"Admin*\",\n \"Local Administrators\",\n \"Domain Admins\",\n \"Enterprise Admins\",\n \"Backup Admins\",\n \"Schema Admins\",\n \"DnsAdmins\",\n \"Exchange Organization Administrators\")\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"group.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"5cd8e1f7-0050-4afc-b2df-904e40b2f5ae:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5cd8e1f7-0050-4afc-b2df-904e40b2f5ae:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5cd8e1f7-0050-4afc-b2df-904e40b2f5ae:102.0.1.json new file mode 100644 index 0000000000000..e093806a1dab6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5cd8e1f7-0050-4afc-b2df-904e40b2f5ae:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"User Added to Privileged Group v102.0.1","rule_id":"5cd8e1f7-0050-4afc-b2df-904e40b2f5ae:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a user being added to a privileged group in Active Directory. Privileged accounts and groups in Active Directory are those to which powerful rights, privileges, and permissions are granted that allow them to perform nearly any action in Active Directory and on domain-joined systems.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating User Added to Privileged Group in Active Directory\n\nPrivileged accounts and groups in Active Directory are those to which powerful rights, privileges, and permissions are\ngranted that allow them to perform nearly any action in Active Directory and on domain-joined systems.\n\nAttackers can add users to privileged groups to maintain a level of access if their other privileged accounts are\nuncovered by the security team. This allows them to keep operating after the security team discovers abused accounts.\n\nThis rule monitors events related to a user being added to a privileged group.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should manage members of this group.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- This attack abuses a legitimate Active Directory mechanism, so it is important to determine whether the activity is\nlegitimate, if the administrator is authorized to perform this operation, and if there is a need to grant the account\nthis level of privilege.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the admin is not aware of the operation, activate your Active Directory incident response plan.\n- If the user does not need the administrator privileges, remove the account from the privileged group.\n- Review the privileges of the administrator account that performed the action.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Skoetting"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/appendix-b--privileged-accounts-and-groups-in-active-directory"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"language":"eql","query":"iam where event.action == \"added-member-to-group\" and\n group.name : (\"Admin*\",\n \"Local Administrators\",\n \"Domain Admins\",\n \"Enterprise Admins\",\n \"Backup Admins\",\n \"Schema Admins\",\n \"DnsAdmins\",\n \"Exchange Organization Administrators\")\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"group.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"5cd8e1f7-0050-4afc-b2df-904e40b2f5ae:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5cd8e1f7-0050-4afc-b2df-904e40b2f5ae:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5cd8e1f7-0050-4afc-b2df-904e40b2f5ae:102.0.2.json new file mode 100644 index 0000000000000..a00fa72f7c221 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5cd8e1f7-0050-4afc-b2df-904e40b2f5ae:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"User Added to Privileged Group v102.0.2","rule_id":"5cd8e1f7-0050-4afc-b2df-904e40b2f5ae:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a user being added to a privileged group in Active Directory. Privileged accounts and groups in Active Directory are those to which powerful rights, privileges, and permissions are granted that allow them to perform nearly any action in Active Directory and on domain-joined systems.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating User Added to Privileged Group in Active Directory\n\nPrivileged accounts and groups in Active Directory are those to which powerful rights, privileges, and permissions are\ngranted that allow them to perform nearly any action in Active Directory and on domain-joined systems.\n\nAttackers can add users to privileged groups to maintain a level of access if their other privileged accounts are\nuncovered by the security team. This allows them to keep operating after the security team discovers abused accounts.\n\nThis rule monitors events related to a user being added to a privileged group.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should manage members of this group.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- This attack abuses a legitimate Active Directory mechanism, so it is important to determine whether the activity is\nlegitimate, if the administrator is authorized to perform this operation, and if there is a need to grant the account\nthis level of privilege.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the admin is not aware of the operation, activate your Active Directory incident response plan.\n- If the user does not need the administrator privileges, remove the account from the privileged group.\n- Review the privileges of the administrator account that performed the action.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Skoetting"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/appendix-b--privileged-accounts-and-groups-in-active-directory"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"language":"eql","query":"iam where event.action == \"added-member-to-group\" and\n group.name : (\"Admin*\",\n \"Local Administrators\",\n \"Domain Admins\",\n \"Enterprise Admins\",\n \"Backup Admins\",\n \"Schema Admins\",\n \"DnsAdmins\",\n \"Exchange Organization Administrators\")\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"group.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"5cd8e1f7-0050-4afc-b2df-904e40b2f5ae:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5cf6397e-eb91-4f31-8951-9f0eaa755a31:1.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5cf6397e-eb91-4f31-8951-9f0eaa755a31:1.0.0.json new file mode 100644 index 0000000000000..f907adc4c4387 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5cf6397e-eb91-4f31-8951-9f0eaa755a31:1.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via PowerShell profile v1.0.0","rule_id":"5cf6397e-eb91-4f31-8951-9f0eaa755a31:1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of a PowerShell profile. PowerShell profile is a script that is executed when PowerShell starts to customize the user environment, which can be abused by attackers to persist in a environment where PowerShell is common.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_profiles","https://www.welivesecurity.com/2019/05/29/turla-powershell-usage/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.013","name":"PowerShell Profile","reference":"https://attack.mitre.org/techniques/T1546/013/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path : (\"?:\\\\Users\\\\*\\\\Documents\\\\WindowsPowerShell\\\\*\",\n \"?:\\\\Users\\\\*\\\\Documents\\\\PowerShell\\\\*\",\n \"?:\\\\Windows\\\\System32\\\\WindowsPowerShell\\\\*\") and\n file.name : (\"profile.ps1\", \"Microsoft.Powershell_profile.ps1\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}]},"id":"5cf6397e-eb91-4f31-8951-9f0eaa755a31:1.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5cf6397e-eb91-4f31-8951-9f0eaa755a31:1.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5cf6397e-eb91-4f31-8951-9f0eaa755a31:1.0.1.json new file mode 100644 index 0000000000000..301200b2c1f7e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5cf6397e-eb91-4f31-8951-9f0eaa755a31:1.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via PowerShell profile v1.0.1","rule_id":"5cf6397e-eb91-4f31-8951-9f0eaa755a31:1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of a PowerShell profile. PowerShell profile is a script that is executed when PowerShell starts to customize the user environment, which can be abused by attackers to persist in a environment where PowerShell is common.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_profiles","https://www.welivesecurity.com/2019/05/29/turla-powershell-usage/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.013","name":"PowerShell Profile","reference":"https://attack.mitre.org/techniques/T1546/013/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path : (\"?:\\\\Users\\\\*\\\\Documents\\\\WindowsPowerShell\\\\*\",\n \"?:\\\\Users\\\\*\\\\Documents\\\\PowerShell\\\\*\",\n \"?:\\\\Windows\\\\System32\\\\WindowsPowerShell\\\\*\") and\n file.name : (\"profile.ps1\", \"Microsoft.Powershell_profile.ps1\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}]},"id":"5cf6397e-eb91-4f31-8951-9f0eaa755a31:1.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5cf6397e-eb91-4f31-8951-9f0eaa755a31:1.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5cf6397e-eb91-4f31-8951-9f0eaa755a31:1.0.2.json new file mode 100644 index 0000000000000..e051a903bafed --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5cf6397e-eb91-4f31-8951-9f0eaa755a31:1.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via PowerShell profile v1.0.2","rule_id":"5cf6397e-eb91-4f31-8951-9f0eaa755a31:1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of a PowerShell profile. PowerShell profile is a script that is executed when PowerShell starts to customize the user environment, which can be abused by attackers to persist in a environment where PowerShell is common.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_profiles","https://www.welivesecurity.com/2019/05/29/turla-powershell-usage/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.013","name":"PowerShell Profile","reference":"https://attack.mitre.org/techniques/T1546/013/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path : (\"?:\\\\Users\\\\*\\\\Documents\\\\WindowsPowerShell\\\\*\",\n \"?:\\\\Users\\\\*\\\\Documents\\\\PowerShell\\\\*\",\n \"?:\\\\Windows\\\\System32\\\\WindowsPowerShell\\\\*\") and\n file.name : (\"profile.ps1\", \"Microsoft.Powershell_profile.ps1\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}]},"id":"5cf6397e-eb91-4f31-8951-9f0eaa755a31:1.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5d0265bf-dea9-41a9-92ad-48a8dcd05080:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5d0265bf-dea9-41a9-92ad-48a8dcd05080:100.0.0.json new file mode 100644 index 0000000000000..75d5b6e5718a0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5d0265bf-dea9-41a9-92ad-48a8dcd05080:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via Login or Logout Hook v100.0.0","rule_id":"5d0265bf-dea9-41a9-92ad-48a8dcd05080:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the Defaults command to install a login or logoff hook in MacOS. An adversary may abuse this capability to establish persistence in an environment by inserting code to be executed at login or logout.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.virusbulletin.com/uploads/pdf/conference_slides/2014/Wardle-VB2014.pdf","https://www.manpagez.com/man/1/defaults/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1037","name":"Boot or Logon Initialization Scripts","reference":"https://attack.mitre.org/techniques/T1037/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name == \"defaults\" and process.args == \"write\" and process.args in (\"LoginHook\", \"LogoutHook\") and\n not process.args :\n (\n \"Support/JAMF/ManagementFrameworkScripts/logouthook.sh\",\n \"Support/JAMF/ManagementFrameworkScripts/loginhook.sh\",\n \"/Library/Application Support/JAMF/ManagementFrameworkScripts/logouthook.sh\",\n \"/Library/Application Support/JAMF/ManagementFrameworkScripts/loginhook.sh\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"5d0265bf-dea9-41a9-92ad-48a8dcd05080:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5d0265bf-dea9-41a9-92ad-48a8dcd05080:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5d0265bf-dea9-41a9-92ad-48a8dcd05080:100.0.1.json new file mode 100644 index 0000000000000..2f73a6c96b23f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5d0265bf-dea9-41a9-92ad-48a8dcd05080:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via Login or Logout Hook v100.0.1","rule_id":"5d0265bf-dea9-41a9-92ad-48a8dcd05080:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the Defaults command to install a login or logoff hook in MacOS. An adversary may abuse this capability to establish persistence in an environment by inserting code to be executed at login or logout.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.virusbulletin.com/uploads/pdf/conference_slides/2014/Wardle-VB2014.pdf","https://www.manpagez.com/man/1/defaults/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1037","name":"Boot or Logon Initialization Scripts","reference":"https://attack.mitre.org/techniques/T1037/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name == \"defaults\" and process.args == \"write\" and process.args in (\"LoginHook\", \"LogoutHook\") and\n not process.args :\n (\n \"Support/JAMF/ManagementFrameworkScripts/logouthook.sh\",\n \"Support/JAMF/ManagementFrameworkScripts/loginhook.sh\",\n \"/Library/Application Support/JAMF/ManagementFrameworkScripts/logouthook.sh\",\n \"/Library/Application Support/JAMF/ManagementFrameworkScripts/loginhook.sh\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"5d0265bf-dea9-41a9-92ad-48a8dcd05080:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5d0265bf-dea9-41a9-92ad-48a8dcd05080:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5d0265bf-dea9-41a9-92ad-48a8dcd05080:100.0.2.json new file mode 100644 index 0000000000000..187721a1e2000 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5d0265bf-dea9-41a9-92ad-48a8dcd05080:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via Login or Logout Hook v100.0.2","rule_id":"5d0265bf-dea9-41a9-92ad-48a8dcd05080:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the Defaults command to install a login or logoff hook in MacOS. An adversary may abuse this capability to establish persistence in an environment by inserting code to be executed at login or logout.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.virusbulletin.com/uploads/pdf/conference_slides/2014/Wardle-VB2014.pdf","https://www.manpagez.com/man/1/defaults/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1037","name":"Boot or Logon Initialization Scripts","reference":"https://attack.mitre.org/techniques/T1037/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name == \"defaults\" and process.args == \"write\" and process.args in (\"LoginHook\", \"LogoutHook\") and\n not process.args :\n (\n \"Support/JAMF/ManagementFrameworkScripts/logouthook.sh\",\n \"Support/JAMF/ManagementFrameworkScripts/loginhook.sh\",\n \"/Library/Application Support/JAMF/ManagementFrameworkScripts/logouthook.sh\",\n \"/Library/Application Support/JAMF/ManagementFrameworkScripts/loginhook.sh\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"5d0265bf-dea9-41a9-92ad-48a8dcd05080:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5d1d6907-0747-4d5d-9b24-e4a18853dc0a:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5d1d6907-0747-4d5d-9b24-e4a18853dc0a:100.0.0.json new file mode 100644 index 0000000000000..2908f68d4b91f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5d1d6907-0747-4d5d-9b24-e4a18853dc0a:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Execution via Scheduled Task v100.0.0","rule_id":"5d1d6907-0747-4d5d-9b24-e4a18853dc0a:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution of a suspicious program via scheduled tasks by looking at process lineage and command line usage.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate scheduled tasks running third party software."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n /* Schedule service cmdline on Win10+ */\n process.parent.name : \"svchost.exe\" and process.parent.args : \"Schedule\" and\n /* add suspicious programs here */\n process.pe.original_file_name in\n (\n \"cscript.exe\",\n \"wscript.exe\",\n \"PowerShell.EXE\",\n \"Cmd.Exe\",\n \"MSHTA.EXE\",\n \"RUNDLL32.EXE\",\n \"REGSVR32.EXE\",\n \"MSBuild.exe\",\n \"InstallUtil.exe\",\n \"RegAsm.exe\",\n \"RegSvcs.exe\",\n \"msxsl.exe\",\n \"CONTROL.EXE\",\n \"EXPLORER.EXE\",\n \"Microsoft.Workflow.Compiler.exe\",\n \"msiexec.exe\"\n ) and\n /* add suspicious paths here */\n process.args : (\n \"C:\\\\Users\\\\*\",\n \"C:\\\\ProgramData\\\\*\",\n \"C:\\\\Windows\\\\Temp\\\\*\",\n \"C:\\\\Windows\\\\Tasks\\\\*\",\n \"C:\\\\PerfLogs\\\\*\",\n \"C:\\\\Intel\\\\*\",\n \"C:\\\\Windows\\\\Debug\\\\*\",\n \"C:\\\\HP\\\\*\") and\n\n not (process.name : \"cmd.exe\" and process.args : \"?:\\\\*.bat\" and process.working_directory : \"?:\\\\Windows\\\\System32\\\\\") and\n not (process.name : \"cscript.exe\" and process.args : \"?:\\\\Windows\\\\system32\\\\calluxxprovider.vbs\") and\n not (process.name : \"powershell.exe\" and process.args : (\"-File\", \"-PSConsoleFile\") and user.id : \"S-1-5-18\") and\n not (process.name : \"msiexec.exe\" and user.id : \"S-1-5-18\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"process.working_directory","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"5d1d6907-0747-4d5d-9b24-e4a18853dc0a:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5d1d6907-0747-4d5d-9b24-e4a18853dc0a:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5d1d6907-0747-4d5d-9b24-e4a18853dc0a:100.0.1.json new file mode 100644 index 0000000000000..f2076d3d4fe52 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5d1d6907-0747-4d5d-9b24-e4a18853dc0a:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Execution via Scheduled Task v100.0.1","rule_id":"5d1d6907-0747-4d5d-9b24-e4a18853dc0a:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution of a suspicious program via scheduled tasks by looking at process lineage and command line usage.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate scheduled tasks running third party software."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n /* Schedule service cmdline on Win10+ */\n process.parent.name : \"svchost.exe\" and process.parent.args : \"Schedule\" and\n /* add suspicious programs here */\n process.pe.original_file_name in\n (\n \"cscript.exe\",\n \"wscript.exe\",\n \"PowerShell.EXE\",\n \"Cmd.Exe\",\n \"MSHTA.EXE\",\n \"RUNDLL32.EXE\",\n \"REGSVR32.EXE\",\n \"MSBuild.exe\",\n \"InstallUtil.exe\",\n \"RegAsm.exe\",\n \"RegSvcs.exe\",\n \"msxsl.exe\",\n \"CONTROL.EXE\",\n \"EXPLORER.EXE\",\n \"Microsoft.Workflow.Compiler.exe\",\n \"msiexec.exe\"\n ) and\n /* add suspicious paths here */\n process.args : (\n \"C:\\\\Users\\\\*\",\n \"C:\\\\ProgramData\\\\*\",\n \"C:\\\\Windows\\\\Temp\\\\*\",\n \"C:\\\\Windows\\\\Tasks\\\\*\",\n \"C:\\\\PerfLogs\\\\*\",\n \"C:\\\\Intel\\\\*\",\n \"C:\\\\Windows\\\\Debug\\\\*\",\n \"C:\\\\HP\\\\*\") and\n\n not (process.name : \"cmd.exe\" and process.args : \"?:\\\\*.bat\" and process.working_directory : \"?:\\\\Windows\\\\System32\\\\\") and\n not (process.name : \"cscript.exe\" and process.args : \"?:\\\\Windows\\\\system32\\\\calluxxprovider.vbs\") and\n not (process.name : \"powershell.exe\" and process.args : (\"-File\", \"-PSConsoleFile\") and user.id : \"S-1-5-18\") and\n not (process.name : \"msiexec.exe\" and user.id : \"S-1-5-18\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"process.working_directory","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"5d1d6907-0747-4d5d-9b24-e4a18853dc0a:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5d1d6907-0747-4d5d-9b24-e4a18853dc0a:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5d1d6907-0747-4d5d-9b24-e4a18853dc0a:100.0.2.json new file mode 100644 index 0000000000000..00b65ffd44509 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5d1d6907-0747-4d5d-9b24-e4a18853dc0a:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Execution via Scheduled Task v100.0.2","rule_id":"5d1d6907-0747-4d5d-9b24-e4a18853dc0a:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution of a suspicious program via scheduled tasks by looking at process lineage and command line usage.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate scheduled tasks running third party software."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n /* Schedule service cmdline on Win10+ */\n process.parent.name : \"svchost.exe\" and process.parent.args : \"Schedule\" and\n /* add suspicious programs here */\n process.pe.original_file_name in\n (\n \"cscript.exe\",\n \"wscript.exe\",\n \"PowerShell.EXE\",\n \"Cmd.Exe\",\n \"MSHTA.EXE\",\n \"RUNDLL32.EXE\",\n \"REGSVR32.EXE\",\n \"MSBuild.exe\",\n \"InstallUtil.exe\",\n \"RegAsm.exe\",\n \"RegSvcs.exe\",\n \"msxsl.exe\",\n \"CONTROL.EXE\",\n \"EXPLORER.EXE\",\n \"Microsoft.Workflow.Compiler.exe\",\n \"msiexec.exe\"\n ) and\n /* add suspicious paths here */\n process.args : (\n \"C:\\\\Users\\\\*\",\n \"C:\\\\ProgramData\\\\*\",\n \"C:\\\\Windows\\\\Temp\\\\*\",\n \"C:\\\\Windows\\\\Tasks\\\\*\",\n \"C:\\\\PerfLogs\\\\*\",\n \"C:\\\\Intel\\\\*\",\n \"C:\\\\Windows\\\\Debug\\\\*\",\n \"C:\\\\HP\\\\*\") and\n\n not (process.name : \"cmd.exe\" and process.args : \"?:\\\\*.bat\" and process.working_directory : \"?:\\\\Windows\\\\System32\\\\\") and\n not (process.name : \"cscript.exe\" and process.args : \"?:\\\\Windows\\\\system32\\\\calluxxprovider.vbs\") and\n not (process.name : \"powershell.exe\" and process.args : (\"-File\", \"-PSConsoleFile\") and user.id : \"S-1-5-18\") and\n not (process.name : \"msiexec.exe\" and user.id : \"S-1-5-18\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"process.working_directory","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"5d1d6907-0747-4d5d-9b24-e4a18853dc0a:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5d9f8cfc-0d03-443e-a167-2b0597ce0965:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5d9f8cfc-0d03-443e-a167-2b0597ce0965:100.0.0.json new file mode 100644 index 0000000000000..1d9fb574529f4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5d9f8cfc-0d03-443e-a167-2b0597ce0965:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Automator Workflows Execution v100.0.0","rule_id":"5d9f8cfc-0d03-443e-a167-2b0597ce0965:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of the Automator Workflows process followed by a network connection from it's XPC service. Adversaries may drop a custom workflow template that hosts malicious JavaScript for Automation (JXA) code as an alternative to using osascript.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/persistent-jxa-66e1c3cd1cf5"],"tags":["Elastic","Host","macOS","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"sequence by host.id with maxspan=30s\n [process where event.type in (\"start\", \"process_started\") and process.name == \"automator\"]\n [network where process.name:\"com.apple.automator.runner\"]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"5d9f8cfc-0d03-443e-a167-2b0597ce0965:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5d9f8cfc-0d03-443e-a167-2b0597ce0965:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5d9f8cfc-0d03-443e-a167-2b0597ce0965:100.0.1.json new file mode 100644 index 0000000000000..038af3b86d655 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5d9f8cfc-0d03-443e-a167-2b0597ce0965:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Automator Workflows Execution v100.0.1","rule_id":"5d9f8cfc-0d03-443e-a167-2b0597ce0965:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of the Automator Workflows process followed by a network connection from it's XPC service. Adversaries may drop a custom workflow template that hosts malicious JavaScript for Automation (JXA) code as an alternative to using osascript.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/persistent-jxa-66e1c3cd1cf5"],"tags":["Elastic","Host","macOS","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"sequence by host.id with maxspan=30s\n [process where event.type in (\"start\", \"process_started\") and process.name == \"automator\"]\n [network where process.name:\"com.apple.automator.runner\"]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"5d9f8cfc-0d03-443e-a167-2b0597ce0965:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5d9f8cfc-0d03-443e-a167-2b0597ce0965:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5d9f8cfc-0d03-443e-a167-2b0597ce0965:100.0.2.json new file mode 100644 index 0000000000000..c1179816a9fdb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5d9f8cfc-0d03-443e-a167-2b0597ce0965:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Automator Workflows Execution v100.0.2","rule_id":"5d9f8cfc-0d03-443e-a167-2b0597ce0965:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of the Automator Workflows process followed by a network connection from it's XPC service. Adversaries may drop a custom workflow template that hosts malicious JavaScript for Automation (JXA) code as an alternative to using osascript.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/persistent-jxa-66e1c3cd1cf5"],"tags":["Elastic","Host","macOS","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"sequence by host.id with maxspan=30s\n [process where event.type in (\"start\", \"process_started\") and process.name == \"automator\"]\n [network where process.name:\"com.apple.automator.runner\"]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"5d9f8cfc-0d03-443e-a167-2b0597ce0965:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5e161522-2545-11ed-ac47-f661ea17fbce:2.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5e161522-2545-11ed-ac47-f661ea17fbce:2.0.0.json new file mode 100644 index 0000000000000..bdffe2f22bef1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5e161522-2545-11ed-ac47-f661ea17fbce:2.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace 2SV Policy Disabled v2.0.0","rule_id":"5e161522-2545-11ed-ac47-f661ea17fbce:2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Google Workspace admins may setup 2-step verification (2SV) to add an extra layer of security to user accounts by asking users to verify their identity when they use login credentials. Admins have the ability to enforce 2SV from the admin console as well as the methods acceptable for verification and enrollment period. 2SV requires enablement on admin accounts prior to it being enabled for users within organization units. Adversaries may disable 2SV to lower the security requirements to access a valid account.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrators may remove 2-step verification (2SV) temporarily for testing or during maintenance. If 2SV was previously enabled, it is not common to disable this policy for extended periods of time."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/9176657?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:\"2sv_disable\"\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"5e161522-2545-11ed-ac47-f661ea17fbce:2.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5e161522-2545-11ed-ac47-f661ea17fbce:2.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5e161522-2545-11ed-ac47-f661ea17fbce:2.0.1.json new file mode 100644 index 0000000000000..4cce61f30b0ed --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5e161522-2545-11ed-ac47-f661ea17fbce:2.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace 2SV Policy Disabled v2.0.1","rule_id":"5e161522-2545-11ed-ac47-f661ea17fbce:2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Google Workspace admins may setup 2-step verification (2SV) to add an extra layer of security to user accounts by asking users to verify their identity when they use login credentials. Admins have the ability to enforce 2SV from the admin console as well as the methods acceptable for verification and enrollment period. 2SV requires enablement on admin accounts prior to it being enabled for users within organization units. Adversaries may disable 2SV to lower the security requirements to access a valid account.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrators may remove 2-step verification (2SV) temporarily for testing or during maintenance. If 2SV was previously enabled, it is not common to disable this policy for extended periods of time."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/9176657?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:\"2sv_disable\"\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"5e161522-2545-11ed-ac47-f661ea17fbce:2.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5e161522-2545-11ed-ac47-f661ea17fbce:2.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5e161522-2545-11ed-ac47-f661ea17fbce:2.0.2.json new file mode 100644 index 0000000000000..6f8f25e2d46b3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5e161522-2545-11ed-ac47-f661ea17fbce:2.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace 2SV Policy Disabled v2.0.2","rule_id":"5e161522-2545-11ed-ac47-f661ea17fbce:2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Google Workspace admins may setup 2-step verification (2SV) to add an extra layer of security to user accounts by asking users to verify their identity when they use login credentials. Admins have the ability to enforce 2SV from the admin console as well as the methods acceptable for verification and enrollment period. 2SV requires enablement on admin accounts prior to it being enabled for users within organization units. Adversaries may disable 2SV to lower the security requirements to access a valid account.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrators may remove 2-step verification (2SV) temporarily for testing or during maintenance. If 2SV was previously enabled, it is not common to disable this policy for extended periods of time."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/9176657?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:\"2sv_disable\"\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"5e161522-2545-11ed-ac47-f661ea17fbce:2.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5e552599-ddec-4e14-bad1-28aa42404388:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5e552599-ddec-4e14-bad1-28aa42404388:101.0.0.json new file mode 100644 index 0000000000000..ef4b4cb21a894 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5e552599-ddec-4e14-bad1-28aa42404388:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Teams Guest Access Enabled v101.0.0","rule_id":"5e552599-ddec-4e14-bad1-28aa42404388:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when guest access is enabled in Microsoft Teams. Guest access in Teams allows people outside the organization to access teams and channels. An adversary may enable guest access to maintain persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Teams guest access may be enabled by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/skype/get-csteamsclientconfiguration?view=skype-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:(SkypeForBusiness or MicrosoftTeams) and\nevent.category:web and event.action:\"Set-CsTeamsClientConfiguration\" and\no365.audit.Parameters.AllowGuestUser:True and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Parameters.AllowGuestUser","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"5e552599-ddec-4e14-bad1-28aa42404388:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5e552599-ddec-4e14-bad1-28aa42404388:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5e552599-ddec-4e14-bad1-28aa42404388:101.0.1.json new file mode 100644 index 0000000000000..d9ceeb075cebe --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5e552599-ddec-4e14-bad1-28aa42404388:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Teams Guest Access Enabled v101.0.1","rule_id":"5e552599-ddec-4e14-bad1-28aa42404388:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when guest access is enabled in Microsoft Teams. Guest access in Teams allows people outside the organization to access teams and channels. An adversary may enable guest access to maintain persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Teams guest access may be enabled by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/skype/get-csteamsclientconfiguration?view=skype-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:(SkypeForBusiness or MicrosoftTeams) and\nevent.category:web and event.action:\"Set-CsTeamsClientConfiguration\" and\no365.audit.Parameters.AllowGuestUser:True and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Parameters.AllowGuestUser","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"5e552599-ddec-4e14-bad1-28aa42404388:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/5e552599-ddec-4e14-bad1-28aa42404388:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/5e552599-ddec-4e14-bad1-28aa42404388:101.0.2.json new file mode 100644 index 0000000000000..984d98422404d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/5e552599-ddec-4e14-bad1-28aa42404388:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Teams Guest Access Enabled v101.0.2","rule_id":"5e552599-ddec-4e14-bad1-28aa42404388:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when guest access is enabled in Microsoft Teams. Guest access in Teams allows people outside the organization to access teams and channels. An adversary may enable guest access to maintain persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Teams guest access may be enabled by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/skype/get-csteamsclientconfiguration?view=skype-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:(SkypeForBusiness or MicrosoftTeams) and\nevent.category:web and event.action:\"Set-CsTeamsClientConfiguration\" and\no365.audit.Parameters.AllowGuestUser:True and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Parameters.AllowGuestUser","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"5e552599-ddec-4e14-bad1-28aa42404388:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/60884af6-f553-4a6c-af13-300047455491:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/60884af6-f553-4a6c-af13-300047455491:101.0.0.json new file mode 100644 index 0000000000000..a41d0915ff173 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/60884af6-f553-4a6c-af13-300047455491:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Command Execution on Virtual Machine v101.0.0","rule_id":"60884af6-f553-4a6c-af13-300047455491:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies command execution on a virtual machine (VM) in Azure. A Virtual Machine Contributor role lets you manage virtual machines, but not access them, nor access the virtual network or storage account they’re connected to. However, commands can be run via PowerShell on the VM, which execute as System. Other roles, such as certain Administrator roles may be able to execute commands on a VM as well.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Command execution on a virtual machine may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Command execution from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://adsecurity.org/?p=4277","https://posts.specterops.io/attacking-azure-azure-ad-and-introducing-powerzure-ca70b330511a","https://docs.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#virtual-machine-contributor"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.COMPUTE/VIRTUALMACHINES/RUNCOMMAND/ACTION\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"60884af6-f553-4a6c-af13-300047455491:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/60884af6-f553-4a6c-af13-300047455491:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/60884af6-f553-4a6c-af13-300047455491:101.0.1.json new file mode 100644 index 0000000000000..2902129ed7a3f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/60884af6-f553-4a6c-af13-300047455491:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Command Execution on Virtual Machine v101.0.1","rule_id":"60884af6-f553-4a6c-af13-300047455491:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies command execution on a virtual machine (VM) in Azure. A Virtual Machine Contributor role lets you manage virtual machines, but not access them, nor access the virtual network or storage account they’re connected to. However, commands can be run via PowerShell on the VM, which execute as System. Other roles, such as certain Administrator roles may be able to execute commands on a VM as well.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Command execution on a virtual machine may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Command execution from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://adsecurity.org/?p=4277","https://posts.specterops.io/attacking-azure-azure-ad-and-introducing-powerzure-ca70b330511a","https://docs.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#virtual-machine-contributor"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.COMPUTE/VIRTUALMACHINES/RUNCOMMAND/ACTION\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"60884af6-f553-4a6c-af13-300047455491:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/60884af6-f553-4a6c-af13-300047455491:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/60884af6-f553-4a6c-af13-300047455491:101.0.2.json new file mode 100644 index 0000000000000..e00a97a3773f4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/60884af6-f553-4a6c-af13-300047455491:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Command Execution on Virtual Machine v101.0.2","rule_id":"60884af6-f553-4a6c-af13-300047455491:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies command execution on a virtual machine (VM) in Azure. A Virtual Machine Contributor role lets you manage virtual machines, but not access them, nor access the virtual network or storage account they’re connected to. However, commands can be run via PowerShell on the VM, which execute as System. Other roles, such as certain Administrator roles may be able to execute commands on a VM as well.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Command execution on a virtual machine may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Command execution from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://adsecurity.org/?p=4277","https://posts.specterops.io/attacking-azure-azure-ad-and-introducing-powerzure-ca70b330511a","https://docs.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#virtual-machine-contributor"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.COMPUTE/VIRTUALMACHINES/RUNCOMMAND/ACTION\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"60884af6-f553-4a6c-af13-300047455491:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/60b6b72f-0fbc-47e7-9895-9ba7627a8b50:103.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/60b6b72f-0fbc-47e7-9895-9ba7627a8b50:103.0.0.json new file mode 100644 index 0000000000000..e9a40601f5766 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/60b6b72f-0fbc-47e7-9895-9ba7627a8b50:103.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Service Principal Addition v103.0.0","rule_id":"60b6b72f-0fbc-47e7-9895-9ba7627a8b50:103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new service principal is added in Azure. An application, hosted service, or automated tool that accesses or modifies resources needs an identity created. This identity is known as a service principal. For security reasons, it's always recommended to use service principals with automated tools rather than allowing them to log in with a user identity.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Azure Service Principal Addition\n\nService Principals are identities used by applications, services, and automation tools to access specific resources.\nThey grant specific access based on the assigned API permissions. Most organizations that work a lot with Azure AD make\nuse of service principals. Whenever an application is registered, it automatically creates an application object and a\nservice principal in an Azure AD tenant.\n\nThis rule looks for the addition of service principals. This behavior may enable attackers to impersonate legitimate\nservice principals to camouflage their activities among noisy automations/apps.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Consider the source IP address and geolocation for the user who issued the command. Do they look normal for the user?\n- Consider the time of day. If the user is a human, not a program or script, did the activity take place during a normal\ntime of day?\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Examine the account's commands, API calls, and data management actions in the last 24 hours.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\nIf this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and device conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A service principal may be created by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Service principal additions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://msrc-blog.microsoft.com/2020/12/13/customer-guidance-on-recent-nation-state-cyber-attacks/","https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.001","name":"Application Access Token","reference":"https://attack.mitre.org/techniques/T1550/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Add service principal\" and event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"60b6b72f-0fbc-47e7-9895-9ba7627a8b50:103.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/60b6b72f-0fbc-47e7-9895-9ba7627a8b50:103.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/60b6b72f-0fbc-47e7-9895-9ba7627a8b50:103.0.1.json new file mode 100644 index 0000000000000..5a3fe98e3d2cf --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/60b6b72f-0fbc-47e7-9895-9ba7627a8b50:103.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Service Principal Addition v103.0.1","rule_id":"60b6b72f-0fbc-47e7-9895-9ba7627a8b50:103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new service principal is added in Azure. An application, hosted service, or automated tool that accesses or modifies resources needs an identity created. This identity is known as a service principal. For security reasons, it's always recommended to use service principals with automated tools rather than allowing them to log in with a user identity.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Azure Service Principal Addition\n\nService Principals are identities used by applications, services, and automation tools to access specific resources.\nThey grant specific access based on the assigned API permissions. Most organizations that work a lot with Azure AD make\nuse of service principals. Whenever an application is registered, it automatically creates an application object and a\nservice principal in an Azure AD tenant.\n\nThis rule looks for the addition of service principals. This behavior may enable attackers to impersonate legitimate\nservice principals to camouflage their activities among noisy automations/apps.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Consider the source IP address and geolocation for the user who issued the command. Do they look normal for the user?\n- Consider the time of day. If the user is a human, not a program or script, did the activity take place during a normal\ntime of day?\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Examine the account's commands, API calls, and data management actions in the last 24 hours.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\nIf this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and device conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A service principal may be created by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Service principal additions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://msrc-blog.microsoft.com/2020/12/13/customer-guidance-on-recent-nation-state-cyber-attacks/","https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.001","name":"Application Access Token","reference":"https://attack.mitre.org/techniques/T1550/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Add service principal\" and event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"60b6b72f-0fbc-47e7-9895-9ba7627a8b50:103.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/60b6b72f-0fbc-47e7-9895-9ba7627a8b50:103.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/60b6b72f-0fbc-47e7-9895-9ba7627a8b50:103.0.2.json new file mode 100644 index 0000000000000..cfe7ea757d52c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/60b6b72f-0fbc-47e7-9895-9ba7627a8b50:103.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Service Principal Addition v103.0.2","rule_id":"60b6b72f-0fbc-47e7-9895-9ba7627a8b50:103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new service principal is added in Azure. An application, hosted service, or automated tool that accesses or modifies resources needs an identity created. This identity is known as a service principal. For security reasons, it's always recommended to use service principals with automated tools rather than allowing them to log in with a user identity.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Azure Service Principal Addition\n\nService Principals are identities used by applications, services, and automation tools to access specific resources.\nThey grant specific access based on the assigned API permissions. Most organizations that work a lot with Azure AD make\nuse of service principals. Whenever an application is registered, it automatically creates an application object and a\nservice principal in an Azure AD tenant.\n\nThis rule looks for the addition of service principals. This behavior may enable attackers to impersonate legitimate\nservice principals to camouflage their activities among noisy automations/apps.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Consider the source IP address and geolocation for the user who issued the command. Do they look normal for the user?\n- Consider the time of day. If the user is a human, not a program or script, did the activity take place during a normal\ntime of day?\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Examine the account's commands, API calls, and data management actions in the last 24 hours.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\nIf this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and device conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A service principal may be created by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Service principal additions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://msrc-blog.microsoft.com/2020/12/13/customer-guidance-on-recent-nation-state-cyber-attacks/","https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.001","name":"Application Access Token","reference":"https://attack.mitre.org/techniques/T1550/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Add service principal\" and event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"60b6b72f-0fbc-47e7-9895-9ba7627a8b50:103.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/60f3adec-1df9-4104-9c75-b97d9f078b25:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/60f3adec-1df9-4104-9c75-b97d9f078b25:101.0.0.json new file mode 100644 index 0000000000000..16de072dc3e5b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/60f3adec-1df9-4104-9c75-b97d9f078b25:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange DLP Policy Removed v101.0.0","rule_id":"60f3adec-1df9-4104-9c75-b97d9f078b25:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Data Loss Prevention (DLP) policy is removed in Microsoft 365. An adversary may remove a DLP policy to evade existing DLP monitoring.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A DLP policy may be removed by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-dlppolicy?view=exchange-ps","https://docs.microsoft.com/en-us/microsoft-365/compliance/data-loss-prevention-policies?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Remove-DlpPolicy\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"60f3adec-1df9-4104-9c75-b97d9f078b25:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/60f3adec-1df9-4104-9c75-b97d9f078b25:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/60f3adec-1df9-4104-9c75-b97d9f078b25:101.0.1.json new file mode 100644 index 0000000000000..baae1fff03fca --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/60f3adec-1df9-4104-9c75-b97d9f078b25:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange DLP Policy Removed v101.0.1","rule_id":"60f3adec-1df9-4104-9c75-b97d9f078b25:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Data Loss Prevention (DLP) policy is removed in Microsoft 365. An adversary may remove a DLP policy to evade existing DLP monitoring.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A DLP policy may be removed by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-dlppolicy?view=exchange-ps","https://docs.microsoft.com/en-us/microsoft-365/compliance/data-loss-prevention-policies?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Remove-DlpPolicy\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"60f3adec-1df9-4104-9c75-b97d9f078b25:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/60f3adec-1df9-4104-9c75-b97d9f078b25:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/60f3adec-1df9-4104-9c75-b97d9f078b25:101.0.2.json new file mode 100644 index 0000000000000..363ba931cb142 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/60f3adec-1df9-4104-9c75-b97d9f078b25:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange DLP Policy Removed v101.0.2","rule_id":"60f3adec-1df9-4104-9c75-b97d9f078b25:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Data Loss Prevention (DLP) policy is removed in Microsoft 365. An adversary may remove a DLP policy to evade existing DLP monitoring.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A DLP policy may be removed by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-dlppolicy?view=exchange-ps","https://docs.microsoft.com/en-us/microsoft-365/compliance/data-loss-prevention-policies?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Remove-DlpPolicy\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"60f3adec-1df9-4104-9c75-b97d9f078b25:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/610949a1-312f-4e04-bb55-3a79b8c95267:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/610949a1-312f-4e04-bb55-3a79b8c95267:102.0.0.json new file mode 100644 index 0000000000000..c3979daaa9d3a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/610949a1-312f-4e04-bb55-3a79b8c95267:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Process Network Connection v102.0.0","rule_id":"610949a1-312f-4e04-bb55-3a79b8c95267:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies network activity from unexpected system applications. This may indicate adversarial activity as these applications are often leveraged by adversaries to execute code and evade detection.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Process Network Connection\n\nThis rule identifies network activity from unexpected system utilities and applications. These applications are commonly\nabused by attackers to execute code, evade detections, and bypass security protections.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate the target host that the process is communicating with.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where (process.name : \"Microsoft.Workflow.Compiler.exe\" or\n process.name : \"bginfo.exe\" or\n process.name : \"cdb.exe\" or\n process.name : \"cmstp.exe\" or\n process.name : \"csi.exe\" or\n process.name : \"dnx.exe\" or\n process.name : \"fsi.exe\" or\n process.name : \"ieexec.exe\" or\n process.name : \"iexpress.exe\" or\n process.name : \"odbcconf.exe\" or\n process.name : \"rcsi.exe\" or\n process.name : \"xwizard.exe\") and\n event.type == \"start\"]\n [network where (process.name : \"Microsoft.Workflow.Compiler.exe\" or\n process.name : \"bginfo.exe\" or\n process.name : \"cdb.exe\" or\n process.name : \"cmstp.exe\" or\n process.name : \"csi.exe\" or\n process.name : \"dnx.exe\" or\n process.name : \"fsi.exe\" or\n process.name : \"ieexec.exe\" or\n process.name : \"iexpress.exe\" or\n process.name : \"odbcconf.exe\" or\n process.name : \"rcsi.exe\" or\n process.name : \"xwizard.exe\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"610949a1-312f-4e04-bb55-3a79b8c95267:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/610949a1-312f-4e04-bb55-3a79b8c95267:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/610949a1-312f-4e04-bb55-3a79b8c95267:102.0.1.json new file mode 100644 index 0000000000000..c448f7b467de9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/610949a1-312f-4e04-bb55-3a79b8c95267:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Process Network Connection v102.0.1","rule_id":"610949a1-312f-4e04-bb55-3a79b8c95267:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies network activity from unexpected system applications. This may indicate adversarial activity as these applications are often leveraged by adversaries to execute code and evade detection.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Process Network Connection\n\nThis rule identifies network activity from unexpected system utilities and applications. These applications are commonly\nabused by attackers to execute code, evade detections, and bypass security protections.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate the target host that the process is communicating with.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where (process.name : \"Microsoft.Workflow.Compiler.exe\" or\n process.name : \"bginfo.exe\" or\n process.name : \"cdb.exe\" or\n process.name : \"cmstp.exe\" or\n process.name : \"csi.exe\" or\n process.name : \"dnx.exe\" or\n process.name : \"fsi.exe\" or\n process.name : \"ieexec.exe\" or\n process.name : \"iexpress.exe\" or\n process.name : \"odbcconf.exe\" or\n process.name : \"rcsi.exe\" or\n process.name : \"xwizard.exe\") and\n event.type == \"start\"]\n [network where (process.name : \"Microsoft.Workflow.Compiler.exe\" or\n process.name : \"bginfo.exe\" or\n process.name : \"cdb.exe\" or\n process.name : \"cmstp.exe\" or\n process.name : \"csi.exe\" or\n process.name : \"dnx.exe\" or\n process.name : \"fsi.exe\" or\n process.name : \"ieexec.exe\" or\n process.name : \"iexpress.exe\" or\n process.name : \"odbcconf.exe\" or\n process.name : \"rcsi.exe\" or\n process.name : \"xwizard.exe\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"610949a1-312f-4e04-bb55-3a79b8c95267:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/610949a1-312f-4e04-bb55-3a79b8c95267:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/610949a1-312f-4e04-bb55-3a79b8c95267:102.0.2.json new file mode 100644 index 0000000000000..f251a654f320b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/610949a1-312f-4e04-bb55-3a79b8c95267:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Process Network Connection v102.0.2","rule_id":"610949a1-312f-4e04-bb55-3a79b8c95267:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies network activity from unexpected system applications. This may indicate adversarial activity as these applications are often leveraged by adversaries to execute code and evade detection.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Process Network Connection\n\nThis rule identifies network activity from unexpected system utilities and applications. These applications are commonly\nabused by attackers to execute code, evade detections, and bypass security protections.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate the target host that the process is communicating with.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where (process.name : \"Microsoft.Workflow.Compiler.exe\" or\n process.name : \"bginfo.exe\" or\n process.name : \"cdb.exe\" or\n process.name : \"cmstp.exe\" or\n process.name : \"csi.exe\" or\n process.name : \"dnx.exe\" or\n process.name : \"fsi.exe\" or\n process.name : \"ieexec.exe\" or\n process.name : \"iexpress.exe\" or\n process.name : \"odbcconf.exe\" or\n process.name : \"rcsi.exe\" or\n process.name : \"xwizard.exe\") and\n event.type == \"start\"]\n [network where (process.name : \"Microsoft.Workflow.Compiler.exe\" or\n process.name : \"bginfo.exe\" or\n process.name : \"cdb.exe\" or\n process.name : \"cmstp.exe\" or\n process.name : \"csi.exe\" or\n process.name : \"dnx.exe\" or\n process.name : \"fsi.exe\" or\n process.name : \"ieexec.exe\" or\n process.name : \"iexpress.exe\" or\n process.name : \"odbcconf.exe\" or\n process.name : \"rcsi.exe\" or\n process.name : \"xwizard.exe\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"610949a1-312f-4e04-bb55-3a79b8c95267:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/61ac3638-40a3-44b2-855a-985636ca985e:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/61ac3638-40a3-44b2-855a-985636ca985e:102.0.0.json new file mode 100644 index 0000000000000..1c1406b809220 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/61ac3638-40a3-44b2-855a-985636ca985e:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell Suspicious Discovery Related Windows API Functions v102.0.0","rule_id":"61ac3638-40a3-44b2-855a-985636ca985e:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects the use of discovery-related Windows API functions in PowerShell Scripts. Attackers can use these functions to perform various situational awareness related activities, like enumerating users, shares, sessions, domain trusts, groups, etc.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Suspicious Discovery Related Windows API Functions\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can use PowerShell to interact with the Win32 API to bypass command line based detections, using libraries\nlike PSReflect or Get-ProcAddress Cmdlet.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Check for additional PowerShell and command-line logs that indicate that imported functions were run.\n\n### False positive analysis\n\n- Discovery activities themselves are not inherently malicious if occurring in isolation, as long as the script does not\ncontain other capabilities, and there are no other alerts related to the user or host; such alerts can be dismissed.\nHowever, analysts should keep in mind that this is not a common way of getting information, making it suspicious.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate PowerShell scripts that make use of these functions."],"from":"now-9m","references":["https://github.com/BC-SECURITY/Empire/blob/9259e5106986847d2bb770c4289c0c0f1adf2344/data/module_source/situational_awareness/network/powerview.ps1#L21413","https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1135","name":"Network Share Discovery","reference":"https://attack.mitre.org/techniques/T1135/"},{"id":"T1069","name":"Permission Groups Discovery","reference":"https://attack.mitre.org/techniques/T1069/","subtechnique":[{"id":"T1069.001","name":"Local Groups","reference":"https://attack.mitre.org/techniques/T1069/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]},{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n NetShareEnum or\n NetWkstaUserEnum or\n NetSessionEnum or\n NetLocalGroupEnum or\n NetLocalGroupGetMembers or\n DsGetSiteName or\n DsEnumerateDomainTrusts or\n WTSEnumerateSessionsEx or\n WTSQuerySessionInformation or\n LsaGetLogonSessionData or\n QueryServiceObjectSecurity\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"61ac3638-40a3-44b2-855a-985636ca985e:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/61ac3638-40a3-44b2-855a-985636ca985e:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/61ac3638-40a3-44b2-855a-985636ca985e:102.0.1.json new file mode 100644 index 0000000000000..c3af7ec594875 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/61ac3638-40a3-44b2-855a-985636ca985e:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell Suspicious Discovery Related Windows API Functions v102.0.1","rule_id":"61ac3638-40a3-44b2-855a-985636ca985e:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects the use of discovery-related Windows API functions in PowerShell Scripts. Attackers can use these functions to perform various situational awareness related activities, like enumerating users, shares, sessions, domain trusts, groups, etc.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Suspicious Discovery Related Windows API Functions\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can use PowerShell to interact with the Win32 API to bypass command line based detections, using libraries\nlike PSReflect or Get-ProcAddress Cmdlet.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Check for additional PowerShell and command-line logs that indicate that imported functions were run.\n\n### False positive analysis\n\n- Discovery activities themselves are not inherently malicious if occurring in isolation, as long as the script does not\ncontain other capabilities, and there are no other alerts related to the user or host; such alerts can be dismissed.\nHowever, analysts should keep in mind that this is not a common way of getting information, making it suspicious.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate PowerShell scripts that make use of these functions."],"from":"now-9m","references":["https://github.com/BC-SECURITY/Empire/blob/9259e5106986847d2bb770c4289c0c0f1adf2344/data/module_source/situational_awareness/network/powerview.ps1#L21413","https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1135","name":"Network Share Discovery","reference":"https://attack.mitre.org/techniques/T1135/"},{"id":"T1069","name":"Permission Groups Discovery","reference":"https://attack.mitre.org/techniques/T1069/","subtechnique":[{"id":"T1069.001","name":"Local Groups","reference":"https://attack.mitre.org/techniques/T1069/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]},{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n NetShareEnum or\n NetWkstaUserEnum or\n NetSessionEnum or\n NetLocalGroupEnum or\n NetLocalGroupGetMembers or\n DsGetSiteName or\n DsEnumerateDomainTrusts or\n WTSEnumerateSessionsEx or\n WTSQuerySessionInformation or\n LsaGetLogonSessionData or\n QueryServiceObjectSecurity\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"61ac3638-40a3-44b2-855a-985636ca985e:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/61ac3638-40a3-44b2-855a-985636ca985e:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/61ac3638-40a3-44b2-855a-985636ca985e:102.0.2.json new file mode 100644 index 0000000000000..05177fa3396e3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/61ac3638-40a3-44b2-855a-985636ca985e:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell Suspicious Discovery Related Windows API Functions v102.0.2","rule_id":"61ac3638-40a3-44b2-855a-985636ca985e:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects the use of discovery-related Windows API functions in PowerShell Scripts. Attackers can use these functions to perform various situational awareness related activities, like enumerating users, shares, sessions, domain trusts, groups, etc.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Suspicious Discovery Related Windows API Functions\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can use PowerShell to interact with the Win32 API to bypass command line based detections, using libraries\nlike PSReflect or Get-ProcAddress Cmdlet.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Check for additional PowerShell and command-line logs that indicate that imported functions were run.\n\n### False positive analysis\n\n- Discovery activities themselves are not inherently malicious if occurring in isolation, as long as the script does not\ncontain other capabilities, and there are no other alerts related to the user or host; such alerts can be dismissed.\nHowever, analysts should keep in mind that this is not a common way of getting information, making it suspicious.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate PowerShell scripts that make use of these functions."],"from":"now-9m","references":["https://github.com/BC-SECURITY/Empire/blob/9259e5106986847d2bb770c4289c0c0f1adf2344/data/module_source/situational_awareness/network/powerview.ps1#L21413","https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1135","name":"Network Share Discovery","reference":"https://attack.mitre.org/techniques/T1135/"},{"id":"T1069","name":"Permission Groups Discovery","reference":"https://attack.mitre.org/techniques/T1069/","subtechnique":[{"id":"T1069.001","name":"Local Groups","reference":"https://attack.mitre.org/techniques/T1069/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]},{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n NetShareEnum or\n NetWkstaUserEnum or\n NetSessionEnum or\n NetLocalGroupEnum or\n NetLocalGroupGetMembers or\n DsGetSiteName or\n DsEnumerateDomainTrusts or\n WTSEnumerateSessionsEx or\n WTSQuerySessionInformation or\n LsaGetLogonSessionData or\n QueryServiceObjectSecurity\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"61ac3638-40a3-44b2-855a-985636ca985e:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/61d29caf-6c15-4d1e-9ccb-7ad12ccc0bc7:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/61d29caf-6c15-4d1e-9ccb-7ad12ccc0bc7:102.0.0.json new file mode 100644 index 0000000000000..2b31bfc102710 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/61d29caf-6c15-4d1e-9ccb-7ad12ccc0bc7:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AdminSDHolder SDProp Exclusion Added v102.0.0","rule_id":"61d29caf-6c15-4d1e-9ccb-7ad12ccc0bc7:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a modification on the dsHeuristics attribute on the bit that holds the configuration of groups excluded from the SDProp process. The SDProp compares the permissions on protected objects with those defined on the AdminSDHolder object. If the permissions on any of the protected accounts and groups do not match, the permissions on the protected accounts and groups are reset to match those of the domain's AdminSDHolder object, meaning that groups excluded will remain unchanged. Attackers can abuse this misconfiguration to maintain long-term access to privileged accounts in these groups.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AdminSDHolder SDProp Exclusion Added\n\nThe SDProp process compares the permissions on protected objects with those defined on the AdminSDHolder object. If the\npermissions on any of the protected accounts and groups do not match, it resets the permissions on the protected\naccounts and groups to match those defined in the domain AdminSDHolder object.\n\nThe dSHeuristics is a Unicode string attribute, in which each character in the string represents a heuristic that is\nused to determine the behavior of Active Directory.\n\nAdministrators can use the dSHeuristics attribute to exclude privilege groups from the SDProp process by setting the\n16th bit (dwAdminSDExMask) of the string to a certain value, which represents the group(s):\n\n* For example, to exclude the Account Operators group, an administrator would modify the string, so the 16th character\nis set to 1 (i.e., 0000000001000001).\n\nThe usage of this exclusion can leave the accounts unprotected and facilitate the misconfiguration of privileges for the\nexcluded groups, enabling attackers to add accounts to these groups to maintain long-term persistence with high\nprivileges.\n\nThis rule matches changes of the dsHeuristics object where the 16th bit is set to a value other than zero.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account and system owners and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check the value assigned to the 16th bit of the string on the `winlog.event_data.AttributeValue` field:\n - Account Operators eq 1\n - Server Operators eq 2\n - Print Operators eq 4\n - Backup Operators eq 8\n The field value can range from 0 to f (15). If more than one group is specified, the values will be summed together;\n for example, Backup Operators and Print Operators will set the `c` value on the bit.\n\n### False positive analysis\n\n- While this modification can be done legitimately, it is not a best practice. Any potential benign true positive (B-TP)\nshould be mapped and reviewed by the security team for alternatives as this weakens the security of the privileged group.\n\n### Response and remediation\n\n- The change can be reverted by setting the dwAdminSDExMask (16th bit) to 0 in dSHeuristics.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.cert.ssi.gouv.fr/uploads/guide-ad.html#dsheuristics_bad","https://petri.com/active-directory-security-understanding-adminsdholder-object"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"language":"eql","query":"any where event.action == \"Directory Service Changes\" and\n event.code == \"5136\" and\n winlog.event_data.AttributeLDAPDisplayName : \"dSHeuristics\" and\n length(winlog.event_data.AttributeValue) > 15 and\n winlog.event_data.AttributeValue regex~ \"[0-9]{15}([1-9a-f]).*\"\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeValue","type":"unknown"}],"setup":"The 'Audit Directory Service Changes' logging policy must be configured for (Success).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success)\n```\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"61d29caf-6c15-4d1e-9ccb-7ad12ccc0bc7:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/61d29caf-6c15-4d1e-9ccb-7ad12ccc0bc7:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/61d29caf-6c15-4d1e-9ccb-7ad12ccc0bc7:102.0.1.json new file mode 100644 index 0000000000000..09bd657d0a798 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/61d29caf-6c15-4d1e-9ccb-7ad12ccc0bc7:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AdminSDHolder SDProp Exclusion Added v102.0.1","rule_id":"61d29caf-6c15-4d1e-9ccb-7ad12ccc0bc7:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a modification on the dsHeuristics attribute on the bit that holds the configuration of groups excluded from the SDProp process. The SDProp compares the permissions on protected objects with those defined on the AdminSDHolder object. If the permissions on any of the protected accounts and groups do not match, the permissions on the protected accounts and groups are reset to match those of the domain's AdminSDHolder object, meaning that groups excluded will remain unchanged. Attackers can abuse this misconfiguration to maintain long-term access to privileged accounts in these groups.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AdminSDHolder SDProp Exclusion Added\n\nThe SDProp process compares the permissions on protected objects with those defined on the AdminSDHolder object. If the\npermissions on any of the protected accounts and groups do not match, it resets the permissions on the protected\naccounts and groups to match those defined in the domain AdminSDHolder object.\n\nThe dSHeuristics is a Unicode string attribute, in which each character in the string represents a heuristic that is\nused to determine the behavior of Active Directory.\n\nAdministrators can use the dSHeuristics attribute to exclude privilege groups from the SDProp process by setting the\n16th bit (dwAdminSDExMask) of the string to a certain value, which represents the group(s):\n\n* For example, to exclude the Account Operators group, an administrator would modify the string, so the 16th character\nis set to 1 (i.e., 0000000001000001).\n\nThe usage of this exclusion can leave the accounts unprotected and facilitate the misconfiguration of privileges for the\nexcluded groups, enabling attackers to add accounts to these groups to maintain long-term persistence with high\nprivileges.\n\nThis rule matches changes of the dsHeuristics object where the 16th bit is set to a value other than zero.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account and system owners and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check the value assigned to the 16th bit of the string on the `winlog.event_data.AttributeValue` field:\n - Account Operators eq 1\n - Server Operators eq 2\n - Print Operators eq 4\n - Backup Operators eq 8\n The field value can range from 0 to f (15). If more than one group is specified, the values will be summed together;\n for example, Backup Operators and Print Operators will set the `c` value on the bit.\n\n### False positive analysis\n\n- While this modification can be done legitimately, it is not a best practice. Any potential benign true positive (B-TP)\nshould be mapped and reviewed by the security team for alternatives as this weakens the security of the privileged group.\n\n### Response and remediation\n\n- The change can be reverted by setting the dwAdminSDExMask (16th bit) to 0 in dSHeuristics.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.cert.ssi.gouv.fr/uploads/guide-ad.html#dsheuristics_bad","https://petri.com/active-directory-security-understanding-adminsdholder-object"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"language":"eql","query":"any where event.action == \"Directory Service Changes\" and\n event.code == \"5136\" and\n winlog.event_data.AttributeLDAPDisplayName : \"dSHeuristics\" and\n length(winlog.event_data.AttributeValue) > 15 and\n winlog.event_data.AttributeValue regex~ \"[0-9]{15}([1-9a-f]).*\"\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeValue","type":"unknown"}],"setup":"The 'Audit Directory Service Changes' logging policy must be configured for (Success).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success)\n```\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"61d29caf-6c15-4d1e-9ccb-7ad12ccc0bc7:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/61d29caf-6c15-4d1e-9ccb-7ad12ccc0bc7:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/61d29caf-6c15-4d1e-9ccb-7ad12ccc0bc7:102.0.2.json new file mode 100644 index 0000000000000..d800f8d9691e4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/61d29caf-6c15-4d1e-9ccb-7ad12ccc0bc7:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AdminSDHolder SDProp Exclusion Added v102.0.2","rule_id":"61d29caf-6c15-4d1e-9ccb-7ad12ccc0bc7:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a modification on the dsHeuristics attribute on the bit that holds the configuration of groups excluded from the SDProp process. The SDProp compares the permissions on protected objects with those defined on the AdminSDHolder object. If the permissions on any of the protected accounts and groups do not match, the permissions on the protected accounts and groups are reset to match those of the domain's AdminSDHolder object, meaning that groups excluded will remain unchanged. Attackers can abuse this misconfiguration to maintain long-term access to privileged accounts in these groups.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AdminSDHolder SDProp Exclusion Added\n\nThe SDProp process compares the permissions on protected objects with those defined on the AdminSDHolder object. If the\npermissions on any of the protected accounts and groups do not match, it resets the permissions on the protected\naccounts and groups to match those defined in the domain AdminSDHolder object.\n\nThe dSHeuristics is a Unicode string attribute, in which each character in the string represents a heuristic that is\nused to determine the behavior of Active Directory.\n\nAdministrators can use the dSHeuristics attribute to exclude privilege groups from the SDProp process by setting the\n16th bit (dwAdminSDExMask) of the string to a certain value, which represents the group(s):\n\n* For example, to exclude the Account Operators group, an administrator would modify the string, so the 16th character\nis set to 1 (i.e., 0000000001000001).\n\nThe usage of this exclusion can leave the accounts unprotected and facilitate the misconfiguration of privileges for the\nexcluded groups, enabling attackers to add accounts to these groups to maintain long-term persistence with high\nprivileges.\n\nThis rule matches changes of the dsHeuristics object where the 16th bit is set to a value other than zero.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account and system owners and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check the value assigned to the 16th bit of the string on the `winlog.event_data.AttributeValue` field:\n - Account Operators eq 1\n - Server Operators eq 2\n - Print Operators eq 4\n - Backup Operators eq 8\n The field value can range from 0 to f (15). If more than one group is specified, the values will be summed together;\n for example, Backup Operators and Print Operators will set the `c` value on the bit.\n\n### False positive analysis\n\n- While this modification can be done legitimately, it is not a best practice. Any potential benign true positive (B-TP)\nshould be mapped and reviewed by the security team for alternatives as this weakens the security of the privileged group.\n\n### Response and remediation\n\n- The change can be reverted by setting the dwAdminSDExMask (16th bit) to 0 in dSHeuristics.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.cert.ssi.gouv.fr/uploads/guide-ad.html#dsheuristics_bad","https://petri.com/active-directory-security-understanding-adminsdholder-object"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"language":"eql","query":"any where event.action == \"Directory Service Changes\" and\n event.code == \"5136\" and\n winlog.event_data.AttributeLDAPDisplayName : \"dSHeuristics\" and\n length(winlog.event_data.AttributeValue) > 15 and\n winlog.event_data.AttributeValue regex~ \"[0-9]{15}([1-9a-f]).*\"\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeValue","type":"unknown"}],"setup":"The 'Audit Directory Service Changes' logging policy must be configured for (Success).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success)\n```\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"61d29caf-6c15-4d1e-9ccb-7ad12ccc0bc7:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/622ecb68-fa81-4601-90b5-f8cd661e4520:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/622ecb68-fa81-4601-90b5-f8cd661e4520:101.0.0.json new file mode 100644 index 0000000000000..2d5a4f05e348f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/622ecb68-fa81-4601-90b5-f8cd661e4520:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Incoming DCOM Lateral Movement via MSHTA v101.0.0","rule_id":"622ecb68-fa81-4601-90b5-f8cd661e4520:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of Distributed Component Object Model (DCOM) to execute commands from a remote host, which are launched via the HTA Application COM Object. This behavior may indicate an attacker abusing a DCOM application to move laterally while attempting to evade detection.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://codewhitesec.blogspot.com/2018/07/lethalhta.html"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.003","name":"Distributed Component Object Model","reference":"https://attack.mitre.org/techniques/T1021/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.005","name":"Mshta","reference":"https://attack.mitre.org/techniques/T1218/005/"}]}]}],"language":"eql","query":"sequence with maxspan=1m\n [process where event.type == \"start\" and\n process.name : \"mshta.exe\" and process.args : \"-Embedding\"\n ] by host.id, process.entity_id\n [network where event.type == \"start\" and process.name : \"mshta.exe\" and\n network.direction : (\"incoming\", \"ingress\") and network.transport == \"tcp\" and\n source.port > 49151 and destination.port > 49151 and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ] by host.id, process.entity_id\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]},"id":"622ecb68-fa81-4601-90b5-f8cd661e4520:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/622ecb68-fa81-4601-90b5-f8cd661e4520:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/622ecb68-fa81-4601-90b5-f8cd661e4520:101.0.1.json new file mode 100644 index 0000000000000..5683d9116dc07 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/622ecb68-fa81-4601-90b5-f8cd661e4520:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Incoming DCOM Lateral Movement via MSHTA v101.0.1","rule_id":"622ecb68-fa81-4601-90b5-f8cd661e4520:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of Distributed Component Object Model (DCOM) to execute commands from a remote host, which are launched via the HTA Application COM Object. This behavior may indicate an attacker abusing a DCOM application to move laterally while attempting to evade detection.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://codewhitesec.blogspot.com/2018/07/lethalhta.html"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.003","name":"Distributed Component Object Model","reference":"https://attack.mitre.org/techniques/T1021/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.005","name":"Mshta","reference":"https://attack.mitre.org/techniques/T1218/005/"}]}]}],"language":"eql","query":"sequence with maxspan=1m\n [process where event.type == \"start\" and\n process.name : \"mshta.exe\" and process.args : \"-Embedding\"\n ] by host.id, process.entity_id\n [network where event.type == \"start\" and process.name : \"mshta.exe\" and\n network.direction : (\"incoming\", \"ingress\") and network.transport == \"tcp\" and\n source.port > 49151 and destination.port > 49151 and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ] by host.id, process.entity_id\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]},"id":"622ecb68-fa81-4601-90b5-f8cd661e4520:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/622ecb68-fa81-4601-90b5-f8cd661e4520:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/622ecb68-fa81-4601-90b5-f8cd661e4520:101.0.2.json new file mode 100644 index 0000000000000..7b70488fadfa7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/622ecb68-fa81-4601-90b5-f8cd661e4520:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Incoming DCOM Lateral Movement via MSHTA v101.0.2","rule_id":"622ecb68-fa81-4601-90b5-f8cd661e4520:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of Distributed Component Object Model (DCOM) to execute commands from a remote host, which are launched via the HTA Application COM Object. This behavior may indicate an attacker abusing a DCOM application to move laterally while attempting to evade detection.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://codewhitesec.blogspot.com/2018/07/lethalhta.html"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.003","name":"Distributed Component Object Model","reference":"https://attack.mitre.org/techniques/T1021/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.005","name":"Mshta","reference":"https://attack.mitre.org/techniques/T1218/005/"}]}]}],"language":"eql","query":"sequence with maxspan=1m\n [process where event.type == \"start\" and\n process.name : \"mshta.exe\" and process.args : \"-Embedding\"\n ] by host.id, process.entity_id\n [network where event.type == \"start\" and process.name : \"mshta.exe\" and\n network.direction : (\"incoming\", \"ingress\") and network.transport == \"tcp\" and\n source.port > 49151 and destination.port > 49151 and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ] by host.id, process.entity_id\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]},"id":"622ecb68-fa81-4601-90b5-f8cd661e4520:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/62a70f6f-3c37-43df-a556-f64fa475fba2:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/62a70f6f-3c37-43df-a556-f64fa475fba2:102.0.0.json new file mode 100644 index 0000000000000..a960e749d4b60 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/62a70f6f-3c37-43df-a556-f64fa475fba2:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Account Configured with Never-Expiring Password v102.0.0","rule_id":"62a70f6f-3c37-43df-a556-f64fa475fba2:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the creation and modification of an account with the \"Don't Expire Password\" option Enabled. Attackers can abuse this misconfiguration to persist in the domain and maintain long-term access using compromised accounts with this property.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Account Configured with Never-Expiring Password\n\nActive Directory provides a setting that prevents users' passwords from expiring. Enabling this setting is bad practice and can expose\nenvironments to vulnerabilities that weaken security posture, especially when these accounts are privileged.\n\nThe setting is usually configured so a user account can act as a service account. Attackers can abuse these accounts to\npersist in the domain and maintain long-term access using compromised accounts with a never-expiring password set.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/source host during the past 48 hours.\n- Inspect the account for suspicious or abnormal behaviors in the alert timeframe.\n\n### False positive analysis\n\n- This activity should not happen legitimately. The security team should address any potential benign true positive\n(B-TP), as this configuration can put the user and the domain at risk.\n- Using user accounts as service accounts is a bad security practice and should not be allowed in the domain. The\nsecurity team should map and monitor potential benign true positives (B-TPs), especially if the account is privileged.\nFor cases in which user accounts cannot be avoided, Microsoft provides the Group Managed Service Accounts (gMSA) feature,\nwhich ensures that the account password is robust and changed regularly and automatically.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Reset the password of the account and update its password settings.\n- Search for other occurrences on the domain.\n - Using the [Active Directory PowerShell module](https://docs.microsoft.com/en-us/powershell/module/activedirectory/get-aduser):\n - `get-aduser -filter { passwordNeverExpires -eq $true -and enabled -eq $true } | ft`\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts, if\nany, are identified. Reset passwords for these accounts and other potentially compromised credentials, such as email,\nbusiness systems, and web services.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["User accounts can be used as service accounts and have their password set never to expire. This is a bad security practice that exposes the account to Credential Access attacks. For cases in which user accounts cannot be avoided, Microsoft provides the Group Managed Service Accounts (gMSA) feature, which ensures that the account password is robust and changed regularly and automatically."],"from":"now-9m","references":["https://www.cert.ssi.gouv.fr/uploads/guide-ad.html#dont_expire","https://blog.menasec.net/2019/02/threat-hunting-26-persistent-password.html"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"modified-user-account\" and event.code:\"4738\" and message:\"'Don't Expire Password' - Enabled\" and not user.id:\"S-1-5-18\"\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"message","type":"match_only_text"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"62a70f6f-3c37-43df-a556-f64fa475fba2:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/62a70f6f-3c37-43df-a556-f64fa475fba2:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/62a70f6f-3c37-43df-a556-f64fa475fba2:102.0.1.json new file mode 100644 index 0000000000000..28cec98eb3669 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/62a70f6f-3c37-43df-a556-f64fa475fba2:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Account Configured with Never-Expiring Password v102.0.1","rule_id":"62a70f6f-3c37-43df-a556-f64fa475fba2:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the creation and modification of an account with the \"Don't Expire Password\" option Enabled. Attackers can abuse this misconfiguration to persist in the domain and maintain long-term access using compromised accounts with this property.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Account Configured with Never-Expiring Password\n\nActive Directory provides a setting that prevents users' passwords from expiring. Enabling this setting is bad practice and can expose\nenvironments to vulnerabilities that weaken security posture, especially when these accounts are privileged.\n\nThe setting is usually configured so a user account can act as a service account. Attackers can abuse these accounts to\npersist in the domain and maintain long-term access using compromised accounts with a never-expiring password set.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/source host during the past 48 hours.\n- Inspect the account for suspicious or abnormal behaviors in the alert timeframe.\n\n### False positive analysis\n\n- This activity should not happen legitimately. The security team should address any potential benign true positive\n(B-TP), as this configuration can put the user and the domain at risk.\n- Using user accounts as service accounts is a bad security practice and should not be allowed in the domain. The\nsecurity team should map and monitor potential benign true positives (B-TPs), especially if the account is privileged.\nFor cases in which user accounts cannot be avoided, Microsoft provides the Group Managed Service Accounts (gMSA) feature,\nwhich ensures that the account password is robust and changed regularly and automatically.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Reset the password of the account and update its password settings.\n- Search for other occurrences on the domain.\n - Using the [Active Directory PowerShell module](https://docs.microsoft.com/en-us/powershell/module/activedirectory/get-aduser):\n - `get-aduser -filter { passwordNeverExpires -eq $true -and enabled -eq $true } | ft`\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts, if\nany, are identified. Reset passwords for these accounts and other potentially compromised credentials, such as email,\nbusiness systems, and web services.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["User accounts can be used as service accounts and have their password set never to expire. This is a bad security practice that exposes the account to Credential Access attacks. For cases in which user accounts cannot be avoided, Microsoft provides the Group Managed Service Accounts (gMSA) feature, which ensures that the account password is robust and changed regularly and automatically."],"from":"now-9m","references":["https://www.cert.ssi.gouv.fr/uploads/guide-ad.html#dont_expire","https://blog.menasec.net/2019/02/threat-hunting-26-persistent-password.html"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"modified-user-account\" and event.code:\"4738\" and message:\"'Don't Expire Password' - Enabled\" and not user.id:\"S-1-5-18\"\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"message","type":"match_only_text"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"62a70f6f-3c37-43df-a556-f64fa475fba2:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/62a70f6f-3c37-43df-a556-f64fa475fba2:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/62a70f6f-3c37-43df-a556-f64fa475fba2:102.0.2.json new file mode 100644 index 0000000000000..d7697b47564c7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/62a70f6f-3c37-43df-a556-f64fa475fba2:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Account Configured with Never-Expiring Password v102.0.2","rule_id":"62a70f6f-3c37-43df-a556-f64fa475fba2:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the creation and modification of an account with the \"Don't Expire Password\" option Enabled. Attackers can abuse this misconfiguration to persist in the domain and maintain long-term access using compromised accounts with this property.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Account Configured with Never-Expiring Password\n\nActive Directory provides a setting that prevents users' passwords from expiring. Enabling this setting is bad practice and can expose\nenvironments to vulnerabilities that weaken security posture, especially when these accounts are privileged.\n\nThe setting is usually configured so a user account can act as a service account. Attackers can abuse these accounts to\npersist in the domain and maintain long-term access using compromised accounts with a never-expiring password set.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/source host during the past 48 hours.\n- Inspect the account for suspicious or abnormal behaviors in the alert timeframe.\n\n### False positive analysis\n\n- This activity should not happen legitimately. The security team should address any potential benign true positive\n(B-TP), as this configuration can put the user and the domain at risk.\n- Using user accounts as service accounts is a bad security practice and should not be allowed in the domain. The\nsecurity team should map and monitor potential benign true positives (B-TPs), especially if the account is privileged.\nFor cases in which user accounts cannot be avoided, Microsoft provides the Group Managed Service Accounts (gMSA) feature,\nwhich ensures that the account password is robust and changed regularly and automatically.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Reset the password of the account and update its password settings.\n- Search for other occurrences on the domain.\n - Using the [Active Directory PowerShell module](https://docs.microsoft.com/en-us/powershell/module/activedirectory/get-aduser):\n - `get-aduser -filter { passwordNeverExpires -eq $true -and enabled -eq $true } | ft`\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts, if\nany, are identified. Reset passwords for these accounts and other potentially compromised credentials, such as email,\nbusiness systems, and web services.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["User accounts can be used as service accounts and have their password set never to expire. This is a bad security practice that exposes the account to Credential Access attacks. For cases in which user accounts cannot be avoided, Microsoft provides the Group Managed Service Accounts (gMSA) feature, which ensures that the account password is robust and changed regularly and automatically."],"from":"now-9m","references":["https://www.cert.ssi.gouv.fr/uploads/guide-ad.html#dont_expire","https://blog.menasec.net/2019/02/threat-hunting-26-persistent-password.html"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"modified-user-account\" and event.code:\"4738\" and message:\"'Don't Expire Password' - Enabled\" and not user.id:\"S-1-5-18\"\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"message","type":"match_only_text"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"62a70f6f-3c37-43df-a556-f64fa475fba2:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/63c05204-339a-11ed-a261-0242ac120002:3.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/63c05204-339a-11ed-a261-0242ac120002:3.0.0.json new file mode 100644 index 0000000000000..29fe7954a8aa1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/63c05204-339a-11ed-a261-0242ac120002:3.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Suspicious Assignment of Controller Service Account v3.0.0","rule_id":"63c05204-339a-11ed-a261-0242ac120002:3.0.0","rule_version":"3.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects a request to attach a controller service account to an existing or new pod running in the kube-system namespace. By default, controllers running as part of the API Server utilize admin-equivalent service accounts hosted in the kube-system namespace. Controller service accounts aren't normally assigned to running pods and could indicate adversary behavior within the cluster. An attacker that can create or modify pods or pod controllers in the kube-system namespace, can assign one of these admin-equivalent service accounts to a pod and abuse their powerful token to escalate privileges and gain complete cluster control.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Controller service accounts aren't normally assigned to running pods, this is abnormal behavior with very few legitimate use-cases and should result in very few false positives."],"references":["https://www.paloaltonetworks.com/apps/pan/public/downloadResource?pagePath=/content/pan/en_US/resources/whitepapers/kubernetes-privilege-escalation-excessive-permissions-in-popular-platforms"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.001","name":"Default Accounts","reference":"https://attack.mitre.org/techniques/T1078/001/"}]}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\"\n and kubernetes.audit.verb : \"create\" \n and kubernetes.audit.objectRef.resource : \"pods\"\n and kubernetes.audit.objectRef.namespace : \"kube-system\"\n and kubernetes.audit.requestObject.spec.serviceAccountName:*controller\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.namespace","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.serviceAccountName","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"63c05204-339a-11ed-a261-0242ac120002:3.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/63c05204-339a-11ed-a261-0242ac120002:3.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/63c05204-339a-11ed-a261-0242ac120002:3.0.1.json new file mode 100644 index 0000000000000..61fdd6182c238 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/63c05204-339a-11ed-a261-0242ac120002:3.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Suspicious Assignment of Controller Service Account v3.0.1","rule_id":"63c05204-339a-11ed-a261-0242ac120002:3.0.1","rule_version":"3.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects a request to attach a controller service account to an existing or new pod running in the kube-system namespace. By default, controllers running as part of the API Server utilize admin-equivalent service accounts hosted in the kube-system namespace. Controller service accounts aren't normally assigned to running pods and could indicate adversary behavior within the cluster. An attacker that can create or modify pods or pod controllers in the kube-system namespace, can assign one of these admin-equivalent service accounts to a pod and abuse their powerful token to escalate privileges and gain complete cluster control.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Controller service accounts aren't normally assigned to running pods, this is abnormal behavior with very few legitimate use-cases and should result in very few false positives."],"references":["https://www.paloaltonetworks.com/apps/pan/public/downloadResource?pagePath=/content/pan/en_US/resources/whitepapers/kubernetes-privilege-escalation-excessive-permissions-in-popular-platforms"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.001","name":"Default Accounts","reference":"https://attack.mitre.org/techniques/T1078/001/"}]}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\"\n and kubernetes.audit.verb : \"create\" \n and kubernetes.audit.objectRef.resource : \"pods\"\n and kubernetes.audit.objectRef.namespace : \"kube-system\"\n and kubernetes.audit.requestObject.spec.serviceAccountName:*controller\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.namespace","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.serviceAccountName","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"63c05204-339a-11ed-a261-0242ac120002:3.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/63c05204-339a-11ed-a261-0242ac120002:3.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/63c05204-339a-11ed-a261-0242ac120002:3.0.2.json new file mode 100644 index 0000000000000..5b2512069c63a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/63c05204-339a-11ed-a261-0242ac120002:3.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Suspicious Assignment of Controller Service Account v3.0.2","rule_id":"63c05204-339a-11ed-a261-0242ac120002:3.0.2","rule_version":"3.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects a request to attach a controller service account to an existing or new pod running in the kube-system namespace. By default, controllers running as part of the API Server utilize admin-equivalent service accounts hosted in the kube-system namespace. Controller service accounts aren't normally assigned to running pods and could indicate adversary behavior within the cluster. An attacker that can create or modify pods or pod controllers in the kube-system namespace, can assign one of these admin-equivalent service accounts to a pod and abuse their powerful token to escalate privileges and gain complete cluster control.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Controller service accounts aren't normally assigned to running pods, this is abnormal behavior with very few legitimate use-cases and should result in very few false positives."],"references":["https://www.paloaltonetworks.com/apps/pan/public/downloadResource?pagePath=/content/pan/en_US/resources/whitepapers/kubernetes-privilege-escalation-excessive-permissions-in-popular-platforms"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.001","name":"Default Accounts","reference":"https://attack.mitre.org/techniques/T1078/001/"}]}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\"\n and kubernetes.audit.verb : \"create\" \n and kubernetes.audit.objectRef.resource : \"pods\"\n and kubernetes.audit.objectRef.namespace : \"kube-system\"\n and kubernetes.audit.requestObject.spec.serviceAccountName:*controller\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.namespace","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.serviceAccountName","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"63c05204-339a-11ed-a261-0242ac120002:3.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/63c056a0-339a-11ed-a261-0242ac120002:2.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/63c056a0-339a-11ed-a261-0242ac120002:2.0.0.json new file mode 100644 index 0000000000000..612f88026d8eb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/63c056a0-339a-11ed-a261-0242ac120002:2.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Denied Service Account Request v2.0.0","rule_id":"63c056a0-339a-11ed-a261-0242ac120002:2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects when a service account makes an unauthorized request for resources from the API server. Service accounts follow a very predictable pattern of behavior. A service account should never send an unauthorized request to the API server. This behavior is likely an indicator of compromise or of a problem within the cluster. An adversary may have gained access to credentials/tokens and this could be an attempt to access or create resources to facilitate further movement or execution within the cluster.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Unauthorized requests from service accounts are highly abnormal and more indicative of human behavior or a serious problem within the cluster. This behavior should be investigated further."],"references":["https://research.nccgroup.com/2021/11/10/detection-engineering-for-kubernetes-clusters/#part3-kubernetes-detections","https://kubernetes.io/docs/reference/access-authn-authz/authentication/#service-account-tokens"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1613","name":"Container and Resource Discovery","reference":"https://attack.mitre.org/techniques/T1613/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset: \"kubernetes.audit_logs\" \n and kubernetes.audit.user.username: system\\:serviceaccount\\:* \n and kubernetes.audit.annotations.authorization_k8s_io/decision: \"forbid\" \n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.user.username","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"63c056a0-339a-11ed-a261-0242ac120002:2.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/63c056a0-339a-11ed-a261-0242ac120002:2.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/63c056a0-339a-11ed-a261-0242ac120002:2.0.1.json new file mode 100644 index 0000000000000..3b3c2e462b602 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/63c056a0-339a-11ed-a261-0242ac120002:2.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Denied Service Account Request v2.0.1","rule_id":"63c056a0-339a-11ed-a261-0242ac120002:2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects when a service account makes an unauthorized request for resources from the API server. Service accounts follow a very predictable pattern of behavior. A service account should never send an unauthorized request to the API server. This behavior is likely an indicator of compromise or of a problem within the cluster. An adversary may have gained access to credentials/tokens and this could be an attempt to access or create resources to facilitate further movement or execution within the cluster.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Unauthorized requests from service accounts are highly abnormal and more indicative of human behavior or a serious problem within the cluster. This behavior should be investigated further."],"references":["https://research.nccgroup.com/2021/11/10/detection-engineering-for-kubernetes-clusters/#part3-kubernetes-detections","https://kubernetes.io/docs/reference/access-authn-authz/authentication/#service-account-tokens"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1613","name":"Container and Resource Discovery","reference":"https://attack.mitre.org/techniques/T1613/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset: \"kubernetes.audit_logs\" \n and kubernetes.audit.user.username: system\\:serviceaccount\\:* \n and kubernetes.audit.annotations.authorization_k8s_io/decision: \"forbid\" \n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.user.username","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"63c056a0-339a-11ed-a261-0242ac120002:2.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/63c056a0-339a-11ed-a261-0242ac120002:2.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/63c056a0-339a-11ed-a261-0242ac120002:2.0.2.json new file mode 100644 index 0000000000000..912821be8d666 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/63c056a0-339a-11ed-a261-0242ac120002:2.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Denied Service Account Request v2.0.2","rule_id":"63c056a0-339a-11ed-a261-0242ac120002:2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects when a service account makes an unauthorized request for resources from the API server. Service accounts follow a very predictable pattern of behavior. A service account should never send an unauthorized request to the API server. This behavior is likely an indicator of compromise or of a problem within the cluster. An adversary may have gained access to credentials/tokens and this could be an attempt to access or create resources to facilitate further movement or execution within the cluster.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Unauthorized requests from service accounts are highly abnormal and more indicative of human behavior or a serious problem within the cluster. This behavior should be investigated further."],"references":["https://research.nccgroup.com/2021/11/10/detection-engineering-for-kubernetes-clusters/#part3-kubernetes-detections","https://kubernetes.io/docs/reference/access-authn-authz/authentication/#service-account-tokens"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1613","name":"Container and Resource Discovery","reference":"https://attack.mitre.org/techniques/T1613/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset: \"kubernetes.audit_logs\" \n and kubernetes.audit.user.username: system\\:serviceaccount\\:* \n and kubernetes.audit.annotations.authorization_k8s_io/decision: \"forbid\" \n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.user.username","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"63c056a0-339a-11ed-a261-0242ac120002:2.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/63c057cc-339a-11ed-a261-0242ac120002:2.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/63c057cc-339a-11ed-a261-0242ac120002:2.0.0.json new file mode 100644 index 0000000000000..673eda070ac80 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/63c057cc-339a-11ed-a261-0242ac120002:2.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Anonymous Request Authorized v2.0.0","rule_id":"63c057cc-339a-11ed-a261-0242ac120002:2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects when an unauthenticated user request is authorized within the cluster. Attackers may attempt to use anonymous accounts to gain initial access to the cluster or to avoid attribution of their activities within the cluster. This rule excludes the /healthz, /livez and /readyz endpoints which are commonly accessed anonymously.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Anonymous access to the API server is a dangerous setting enabled by default. Common anonymous connections (e.g., health checks) have been excluded from this rule. All other instances of authorized anonymous requests should be investigated."],"references":["https://media.defense.gov/2022/Aug/29/2003066362/-1/-1/0/CTR_KUBERNETES_HARDENING_GUIDANCE_1.2_20220829.PDF"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Initial Access","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.001","name":"Default Accounts","reference":"https://attack.mitre.org/techniques/T1078/001/"}]}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and (kubernetes.audit.user.username:(\"system:anonymous\" or \"system:unauthenticated\") or not kubernetes.audit.user.username:*)\n and not kubernetes.audit.objectRef.resource:(\"healthz\" or \"livez\" or \"readyz\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.user.username","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"63c057cc-339a-11ed-a261-0242ac120002:2.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/63c057cc-339a-11ed-a261-0242ac120002:2.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/63c057cc-339a-11ed-a261-0242ac120002:2.0.1.json new file mode 100644 index 0000000000000..b99bc7c8d4ef0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/63c057cc-339a-11ed-a261-0242ac120002:2.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Anonymous Request Authorized v2.0.1","rule_id":"63c057cc-339a-11ed-a261-0242ac120002:2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects when an unauthenticated user request is authorized within the cluster. Attackers may attempt to use anonymous accounts to gain initial access to the cluster or to avoid attribution of their activities within the cluster. This rule excludes the /healthz, /livez and /readyz endpoints which are commonly accessed anonymously.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Anonymous access to the API server is a dangerous setting enabled by default. Common anonymous connections (e.g., health checks) have been excluded from this rule. All other instances of authorized anonymous requests should be investigated."],"references":["https://media.defense.gov/2022/Aug/29/2003066362/-1/-1/0/CTR_KUBERNETES_HARDENING_GUIDANCE_1.2_20220829.PDF"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Initial Access","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.001","name":"Default Accounts","reference":"https://attack.mitre.org/techniques/T1078/001/"}]}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and (kubernetes.audit.user.username:(\"system:anonymous\" or \"system:unauthenticated\") or not kubernetes.audit.user.username:*)\n and not kubernetes.audit.objectRef.resource:(\"healthz\" or \"livez\" or \"readyz\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.user.username","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"63c057cc-339a-11ed-a261-0242ac120002:2.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/63c057cc-339a-11ed-a261-0242ac120002:2.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/63c057cc-339a-11ed-a261-0242ac120002:2.0.2.json new file mode 100644 index 0000000000000..e1da7b71eadde --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/63c057cc-339a-11ed-a261-0242ac120002:2.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Anonymous Request Authorized v2.0.2","rule_id":"63c057cc-339a-11ed-a261-0242ac120002:2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects when an unauthenticated user request is authorized within the cluster. Attackers may attempt to use anonymous accounts to gain initial access to the cluster or to avoid attribution of their activities within the cluster. This rule excludes the /healthz, /livez and /readyz endpoints which are commonly accessed anonymously.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Anonymous access to the API server is a dangerous setting enabled by default. Common anonymous connections (e.g., health checks) have been excluded from this rule. All other instances of authorized anonymous requests should be investigated."],"references":["https://media.defense.gov/2022/Aug/29/2003066362/-1/-1/0/CTR_KUBERNETES_HARDENING_GUIDANCE_1.2_20220829.PDF"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Initial Access","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.001","name":"Default Accounts","reference":"https://attack.mitre.org/techniques/T1078/001/"}]}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and (kubernetes.audit.user.username:(\"system:anonymous\" or \"system:unauthenticated\") or not kubernetes.audit.user.username:*)\n and not kubernetes.audit.objectRef.resource:(\"healthz\" or \"livez\" or \"readyz\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.user.username","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"63c057cc-339a-11ed-a261-0242ac120002:2.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/63e65ec3-43b1-45b0-8f2d-45b34291dc44:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/63e65ec3-43b1-45b0-8f2d-45b34291dc44:100.0.0.json new file mode 100644 index 0000000000000..e8c470988991a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/63e65ec3-43b1-45b0-8f2d-45b34291dc44:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Network Connection via Signed Binary v100.0.0","rule_id":"63e65ec3-43b1-45b0-8f2d-45b34291dc44:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Binaries signed with trusted digital certificates can execute on Windows systems protected by digital signature validation. Adversaries may use these binaries to 'live off the land' and execute malicious files that could bypass application allowlists and signature validation.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]}],"language":"eql","query":"sequence by process.entity_id\n [process where (process.name : \"expand.exe\" or process.name : \"extrac32.exe\" or\n process.name : \"ieexec.exe\" or process.name : \"makecab.exe\") and\n event.type == \"start\"]\n [network where (process.name : \"expand.exe\" or process.name : \"extrac32.exe\" or\n process.name : \"ieexec.exe\" or process.name : \"makecab.exe\") and\n not cidrmatch(destination.ip,\n \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\", \"192.0.0.0/29\", \"192.0.0.8/32\",\n \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\",\n \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\", \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"63e65ec3-43b1-45b0-8f2d-45b34291dc44:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/63e65ec3-43b1-45b0-8f2d-45b34291dc44:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/63e65ec3-43b1-45b0-8f2d-45b34291dc44:100.0.1.json new file mode 100644 index 0000000000000..c081c3f46d914 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/63e65ec3-43b1-45b0-8f2d-45b34291dc44:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Network Connection via Signed Binary v100.0.1","rule_id":"63e65ec3-43b1-45b0-8f2d-45b34291dc44:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Binaries signed with trusted digital certificates can execute on Windows systems protected by digital signature validation. Adversaries may use these binaries to 'live off the land' and execute malicious files that could bypass application allowlists and signature validation.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]}],"language":"eql","query":"sequence by process.entity_id\n [process where (process.name : \"expand.exe\" or process.name : \"extrac32.exe\" or\n process.name : \"ieexec.exe\" or process.name : \"makecab.exe\") and\n event.type == \"start\"]\n [network where (process.name : \"expand.exe\" or process.name : \"extrac32.exe\" or\n process.name : \"ieexec.exe\" or process.name : \"makecab.exe\") and\n not cidrmatch(destination.ip,\n \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\", \"192.0.0.0/29\", \"192.0.0.8/32\",\n \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\",\n \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\", \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"63e65ec3-43b1-45b0-8f2d-45b34291dc44:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/63e65ec3-43b1-45b0-8f2d-45b34291dc44:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/63e65ec3-43b1-45b0-8f2d-45b34291dc44:100.0.2.json new file mode 100644 index 0000000000000..0de1c66695afc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/63e65ec3-43b1-45b0-8f2d-45b34291dc44:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Network Connection via Signed Binary v100.0.2","rule_id":"63e65ec3-43b1-45b0-8f2d-45b34291dc44:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Binaries signed with trusted digital certificates can execute on Windows systems protected by digital signature validation. Adversaries may use these binaries to 'live off the land' and execute malicious files that could bypass application allowlists and signature validation.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]}],"language":"eql","query":"sequence by process.entity_id\n [process where (process.name : \"expand.exe\" or process.name : \"extrac32.exe\" or\n process.name : \"ieexec.exe\" or process.name : \"makecab.exe\") and\n event.type == \"start\"]\n [network where (process.name : \"expand.exe\" or process.name : \"extrac32.exe\" or\n process.name : \"ieexec.exe\" or process.name : \"makecab.exe\") and\n not cidrmatch(destination.ip,\n \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\", \"192.0.0.0/29\", \"192.0.0.8/32\",\n \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\",\n \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\", \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"63e65ec3-43b1-45b0-8f2d-45b34291dc44:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/647fc812-7996-4795-8869-9c4ea595fe88:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/647fc812-7996-4795-8869-9c4ea595fe88:100.0.0.json new file mode 100644 index 0000000000000..e8f2277781826 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/647fc812-7996-4795-8869-9c4ea595fe88:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Anomalous Process For a Linux Population v100.0.0","rule_id":"647fc812-7996-4795-8869-9c4ea595fe88:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Searches for rare processes running on multiple Linux hosts in an entire fleet or network. This reduces the detection of false positives since automated maintenance processes usually only run occasionally on a single machine but are common to all or many hosts in a fleet.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Linux Process\nDetection alerts from this rule indicate the presence of a Linux process that is rare and unusual for all of the monitored Linux hosts for which Auditbeat data is available. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is this program part of an expected workflow for the user who ran this program on this host?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Linux","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_anomalous_process_all_hosts"],"type":"machine_learning"},"id":"647fc812-7996-4795-8869-9c4ea595fe88:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/647fc812-7996-4795-8869-9c4ea595fe88:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/647fc812-7996-4795-8869-9c4ea595fe88:100.0.1.json new file mode 100644 index 0000000000000..b6604a3a34fe8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/647fc812-7996-4795-8869-9c4ea595fe88:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Anomalous Process For a Linux Population v100.0.1","rule_id":"647fc812-7996-4795-8869-9c4ea595fe88:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Searches for rare processes running on multiple Linux hosts in an entire fleet or network. This reduces the detection of false positives since automated maintenance processes usually only run occasionally on a single machine but are common to all or many hosts in a fleet.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Linux Process\nDetection alerts from this rule indicate the presence of a Linux process that is rare and unusual for all of the monitored Linux hosts for which Auditbeat data is available. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is this program part of an expected workflow for the user who ran this program on this host?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Linux","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_anomalous_process_all_hosts"],"type":"machine_learning"},"id":"647fc812-7996-4795-8869-9c4ea595fe88:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/647fc812-7996-4795-8869-9c4ea595fe88:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/647fc812-7996-4795-8869-9c4ea595fe88:100.0.2.json new file mode 100644 index 0000000000000..703ca92274924 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/647fc812-7996-4795-8869-9c4ea595fe88:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Anomalous Process For a Linux Population v100.0.2","rule_id":"647fc812-7996-4795-8869-9c4ea595fe88:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Searches for rare processes running on multiple Linux hosts in an entire fleet or network. This reduces the detection of false positives since automated maintenance processes usually only run occasionally on a single machine but are common to all or many hosts in a fleet.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Linux Process\nDetection alerts from this rule indicate the presence of a Linux process that is rare and unusual for all of the monitored Linux hosts for which Auditbeat data is available. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is this program part of an expected workflow for the user who ran this program on this host?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Linux","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_anomalous_process_all_hosts"],"type":"machine_learning"},"id":"647fc812-7996-4795-8869-9c4ea595fe88:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6482255d-f468-45ea-a5b3-d3a7de1331ae:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6482255d-f468-45ea-a5b3-d3a7de1331ae:100.0.0.json new file mode 100644 index 0000000000000..ca60fb20df8ae --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6482255d-f468-45ea-a5b3-d3a7de1331ae:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Modification of Safari Settings via Defaults Command v100.0.0","rule_id":"6482255d-f468-45ea-a5b3-d3a7de1331ae:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies changes to the Safari configuration using the built-in defaults command. Adversaries may attempt to enable or disable certain Safari settings, such as enabling JavaScript from Apple Events to ease in the hijacking of the users browser.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://objectivebythesea.com/v2/talks/OBTS_v2_Zohar.pdf"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and\n process.name:defaults and process.args:\n (com.apple.Safari and write and not\n (\n UniversalSearchEnabled or\n SuppressSearchSuggestions or\n WebKitTabToLinksPreferenceKey or\n ShowFullURLInSmartSearchField or\n com.apple.Safari.ContentPageGroupIdentifier.WebKit2TabsToLinks\n )\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"6482255d-f468-45ea-a5b3-d3a7de1331ae:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6482255d-f468-45ea-a5b3-d3a7de1331ae:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6482255d-f468-45ea-a5b3-d3a7de1331ae:100.0.1.json new file mode 100644 index 0000000000000..3203317a84a34 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6482255d-f468-45ea-a5b3-d3a7de1331ae:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Modification of Safari Settings via Defaults Command v100.0.1","rule_id":"6482255d-f468-45ea-a5b3-d3a7de1331ae:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies changes to the Safari configuration using the built-in defaults command. Adversaries may attempt to enable or disable certain Safari settings, such as enabling JavaScript from Apple Events to ease in the hijacking of the users browser.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://objectivebythesea.com/v2/talks/OBTS_v2_Zohar.pdf"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and\n process.name:defaults and process.args:\n (com.apple.Safari and write and not\n (\n UniversalSearchEnabled or\n SuppressSearchSuggestions or\n WebKitTabToLinksPreferenceKey or\n ShowFullURLInSmartSearchField or\n com.apple.Safari.ContentPageGroupIdentifier.WebKit2TabsToLinks\n )\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"6482255d-f468-45ea-a5b3-d3a7de1331ae:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6482255d-f468-45ea-a5b3-d3a7de1331ae:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6482255d-f468-45ea-a5b3-d3a7de1331ae:100.0.2.json new file mode 100644 index 0000000000000..4903262e8040c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6482255d-f468-45ea-a5b3-d3a7de1331ae:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Modification of Safari Settings via Defaults Command v100.0.2","rule_id":"6482255d-f468-45ea-a5b3-d3a7de1331ae:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies changes to the Safari configuration using the built-in defaults command. Adversaries may attempt to enable or disable certain Safari settings, such as enabling JavaScript from Apple Events to ease in the hijacking of the users browser.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://objectivebythesea.com/v2/talks/OBTS_v2_Zohar.pdf"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and\n process.name:defaults and process.args:\n (com.apple.Safari and write and not\n (\n UniversalSearchEnabled or\n SuppressSearchSuggestions or\n WebKitTabToLinksPreferenceKey or\n ShowFullURLInSmartSearchField or\n com.apple.Safari.ContentPageGroupIdentifier.WebKit2TabsToLinks\n )\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"6482255d-f468-45ea-a5b3-d3a7de1331ae:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/65f9bccd-510b-40df-8263-334f03174fed:200.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/65f9bccd-510b-40df-8263-334f03174fed:200.0.0.json new file mode 100644 index 0000000000000..73fcd6debaca1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/65f9bccd-510b-40df-8263-334f03174fed:200.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Exposed Service Created With Type NodePort v200.0.0","rule_id":"65f9bccd-510b-40df-8263-334f03174fed:200.0.0","rule_version":"200.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects an attempt to create or modify a service as type NodePort. The NodePort service allows a user to externally expose a set of labeled pods to the internet. This creates an open port on every worker node in the cluster that has a pod for that service. When external traffic is received on that open port, it directs it to the specific pod through the service representing it. A malicious user can configure a service as type Nodeport in order to intercept traffic from other pods or nodes, bypassing firewalls and other network security measures configured for load balancers within a cluster. This creates a direct method of communication between the cluster and the outside world, which could be used for more malicious behavior and certainly widens the attack surface of your cluster.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Developers may have a legitimate use for NodePorts. For frontend parts of an application you may want to expose a Service onto an external IP address without using cloud specific Loadbalancers. NodePort can be used to expose the Service on each Node's IP at a static port (the NodePort). You'll be able to contact the NodePort Service from outside the cluster, by requesting :. NodePort unlike Loadbalancers, allow the freedom to set up your own load balancing solution, configure environments that aren't fully supported by Kubernetes, or even to expose one or more node's IPs directly."],"references":["https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types","https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport","https://www.tigera.io/blog/new-vulnerability-exposes-kubernetes-to-man-in-the-middle-attacks-heres-how-to-mitigate/"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1133","name":"External Remote Services","reference":"https://attack.mitre.org/techniques/T1133/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.objectRef.resource:\"services\" \n and kubernetes.audit.verb:(\"create\" or \"update\" or \"patch\") \n and kubernetes.audit.requestObject.spec.type:\"NodePort\"\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.type","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"65f9bccd-510b-40df-8263-334f03174fed:200.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/65f9bccd-510b-40df-8263-334f03174fed:200.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/65f9bccd-510b-40df-8263-334f03174fed:200.0.1.json new file mode 100644 index 0000000000000..4b29de311e726 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/65f9bccd-510b-40df-8263-334f03174fed:200.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Exposed Service Created With Type NodePort v200.0.1","rule_id":"65f9bccd-510b-40df-8263-334f03174fed:200.0.1","rule_version":"200.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects an attempt to create or modify a service as type NodePort. The NodePort service allows a user to externally expose a set of labeled pods to the internet. This creates an open port on every worker node in the cluster that has a pod for that service. When external traffic is received on that open port, it directs it to the specific pod through the service representing it. A malicious user can configure a service as type Nodeport in order to intercept traffic from other pods or nodes, bypassing firewalls and other network security measures configured for load balancers within a cluster. This creates a direct method of communication between the cluster and the outside world, which could be used for more malicious behavior and certainly widens the attack surface of your cluster.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Developers may have a legitimate use for NodePorts. For frontend parts of an application you may want to expose a Service onto an external IP address without using cloud specific Loadbalancers. NodePort can be used to expose the Service on each Node's IP at a static port (the NodePort). You'll be able to contact the NodePort Service from outside the cluster, by requesting :. NodePort unlike Loadbalancers, allow the freedom to set up your own load balancing solution, configure environments that aren't fully supported by Kubernetes, or even to expose one or more node's IPs directly."],"references":["https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types","https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport","https://www.tigera.io/blog/new-vulnerability-exposes-kubernetes-to-man-in-the-middle-attacks-heres-how-to-mitigate/"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1133","name":"External Remote Services","reference":"https://attack.mitre.org/techniques/T1133/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.objectRef.resource:\"services\" \n and kubernetes.audit.verb:(\"create\" or \"update\" or \"patch\") \n and kubernetes.audit.requestObject.spec.type:\"NodePort\"\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.type","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"65f9bccd-510b-40df-8263-334f03174fed:200.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/65f9bccd-510b-40df-8263-334f03174fed:200.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/65f9bccd-510b-40df-8263-334f03174fed:200.0.2.json new file mode 100644 index 0000000000000..781e5daa75a8c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/65f9bccd-510b-40df-8263-334f03174fed:200.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Exposed Service Created With Type NodePort v200.0.2","rule_id":"65f9bccd-510b-40df-8263-334f03174fed:200.0.2","rule_version":"200.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects an attempt to create or modify a service as type NodePort. The NodePort service allows a user to externally expose a set of labeled pods to the internet. This creates an open port on every worker node in the cluster that has a pod for that service. When external traffic is received on that open port, it directs it to the specific pod through the service representing it. A malicious user can configure a service as type Nodeport in order to intercept traffic from other pods or nodes, bypassing firewalls and other network security measures configured for load balancers within a cluster. This creates a direct method of communication between the cluster and the outside world, which could be used for more malicious behavior and certainly widens the attack surface of your cluster.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Developers may have a legitimate use for NodePorts. For frontend parts of an application you may want to expose a Service onto an external IP address without using cloud specific Loadbalancers. NodePort can be used to expose the Service on each Node's IP at a static port (the NodePort). You'll be able to contact the NodePort Service from outside the cluster, by requesting :. NodePort unlike Loadbalancers, allow the freedom to set up your own load balancing solution, configure environments that aren't fully supported by Kubernetes, or even to expose one or more node's IPs directly."],"references":["https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types","https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport","https://www.tigera.io/blog/new-vulnerability-exposes-kubernetes-to-man-in-the-middle-attacks-heres-how-to-mitigate/"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1133","name":"External Remote Services","reference":"https://attack.mitre.org/techniques/T1133/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.objectRef.resource:\"services\" \n and kubernetes.audit.verb:(\"create\" or \"update\" or \"patch\") \n and kubernetes.audit.requestObject.spec.type:\"NodePort\"\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.type","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"65f9bccd-510b-40df-8263-334f03174fed:200.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/661545b4-1a90-4f45-85ce-2ebd7c6a15d0:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/661545b4-1a90-4f45-85ce-2ebd7c6a15d0:100.0.0.json new file mode 100644 index 0000000000000..ffae58f02e150 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/661545b4-1a90-4f45-85ce-2ebd7c6a15d0:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Mount SMB Share via Command Line v100.0.0","rule_id":"661545b4-1a90-4f45-85ce-2ebd7c6a15d0:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of macOS built-in commands to mount a Server Message Block (SMB) network share. Adversaries may use valid accounts to interact with a remote network share using SMB.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.freebsd.org/cgi/man.cgi?mount_smbfs","https://ss64.com/osx/mount.html"],"tags":["Elastic","Host","macOS","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n (\n process.name : \"mount_smbfs\" or\n (process.name : \"open\" and process.args : \"smb://*\") or\n (process.name : \"mount\" and process.args : \"smbfs\") or\n (process.name : \"osascript\" and process.command_line : \"osascript*mount volume*smb://*\")\n ) and\n not process.parent.executable : \"/Applications/Google Drive.app/Contents/MacOS/Google Drive\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"661545b4-1a90-4f45-85ce-2ebd7c6a15d0:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/661545b4-1a90-4f45-85ce-2ebd7c6a15d0:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/661545b4-1a90-4f45-85ce-2ebd7c6a15d0:100.0.1.json new file mode 100644 index 0000000000000..079a9b3e31787 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/661545b4-1a90-4f45-85ce-2ebd7c6a15d0:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Mount SMB Share via Command Line v100.0.1","rule_id":"661545b4-1a90-4f45-85ce-2ebd7c6a15d0:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of macOS built-in commands to mount a Server Message Block (SMB) network share. Adversaries may use valid accounts to interact with a remote network share using SMB.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.freebsd.org/cgi/man.cgi?mount_smbfs","https://ss64.com/osx/mount.html"],"tags":["Elastic","Host","macOS","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n (\n process.name : \"mount_smbfs\" or\n (process.name : \"open\" and process.args : \"smb://*\") or\n (process.name : \"mount\" and process.args : \"smbfs\") or\n (process.name : \"osascript\" and process.command_line : \"osascript*mount volume*smb://*\")\n ) and\n not process.parent.executable : \"/Applications/Google Drive.app/Contents/MacOS/Google Drive\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"661545b4-1a90-4f45-85ce-2ebd7c6a15d0:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/661545b4-1a90-4f45-85ce-2ebd7c6a15d0:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/661545b4-1a90-4f45-85ce-2ebd7c6a15d0:100.0.2.json new file mode 100644 index 0000000000000..beb9b118607f6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/661545b4-1a90-4f45-85ce-2ebd7c6a15d0:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Mount SMB Share via Command Line v100.0.2","rule_id":"661545b4-1a90-4f45-85ce-2ebd7c6a15d0:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of macOS built-in commands to mount a Server Message Block (SMB) network share. Adversaries may use valid accounts to interact with a remote network share using SMB.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.freebsd.org/cgi/man.cgi?mount_smbfs","https://ss64.com/osx/mount.html"],"tags":["Elastic","Host","macOS","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n (\n process.name : \"mount_smbfs\" or\n (process.name : \"open\" and process.args : \"smb://*\") or\n (process.name : \"mount\" and process.args : \"smbfs\") or\n (process.name : \"osascript\" and process.command_line : \"osascript*mount volume*smb://*\")\n ) and\n not process.parent.executable : \"/Applications/Google Drive.app/Contents/MacOS/Google Drive\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"661545b4-1a90-4f45-85ce-2ebd7c6a15d0:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/665e7a4f-c58e-4fc6-bc83-87a7572670ac:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/665e7a4f-c58e-4fc6-bc83-87a7572670ac:100.0.0.json new file mode 100644 index 0000000000000..99c32ed21e6fe --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/665e7a4f-c58e-4fc6-bc83-87a7572670ac:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"WebServer Access Logs Deleted v100.0.0","rule_id":"665e7a4f-c58e-4fc6-bc83-87a7572670ac:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of WebServer access logs. This may indicate an attempt to evade detection or destroy forensic evidence on a system.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Windows","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/"}]}],"language":"eql","query":"file where event.type == \"deletion\" and\n file.path : (\"C:\\\\inetpub\\\\logs\\\\LogFiles\\\\*.log\",\n \"/var/log/apache*/access.log\",\n \"/etc/httpd/logs/access_log\",\n \"/var/log/httpd/access_log\",\n \"/var/www/*/logs/access.log\")\n","type":"eql","index":["auditbeat-*","winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"665e7a4f-c58e-4fc6-bc83-87a7572670ac:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/665e7a4f-c58e-4fc6-bc83-87a7572670ac:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/665e7a4f-c58e-4fc6-bc83-87a7572670ac:100.0.1.json new file mode 100644 index 0000000000000..1cee558b1d4d3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/665e7a4f-c58e-4fc6-bc83-87a7572670ac:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"WebServer Access Logs Deleted v100.0.1","rule_id":"665e7a4f-c58e-4fc6-bc83-87a7572670ac:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of WebServer access logs. This may indicate an attempt to evade detection or destroy forensic evidence on a system.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Windows","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/"}]}],"language":"eql","query":"file where event.type == \"deletion\" and\n file.path : (\"C:\\\\inetpub\\\\logs\\\\LogFiles\\\\*.log\",\n \"/var/log/apache*/access.log\",\n \"/etc/httpd/logs/access_log\",\n \"/var/log/httpd/access_log\",\n \"/var/www/*/logs/access.log\")\n","type":"eql","index":["auditbeat-*","winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"665e7a4f-c58e-4fc6-bc83-87a7572670ac:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/665e7a4f-c58e-4fc6-bc83-87a7572670ac:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/665e7a4f-c58e-4fc6-bc83-87a7572670ac:100.0.2.json new file mode 100644 index 0000000000000..639db5b0f30a3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/665e7a4f-c58e-4fc6-bc83-87a7572670ac:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"WebServer Access Logs Deleted v100.0.2","rule_id":"665e7a4f-c58e-4fc6-bc83-87a7572670ac:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of WebServer access logs. This may indicate an attempt to evade detection or destroy forensic evidence on a system.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Windows","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/"}]}],"language":"eql","query":"file where event.type == \"deletion\" and\n file.path : (\"C:\\\\inetpub\\\\logs\\\\LogFiles\\\\*.log\",\n \"/var/log/apache*/access.log\",\n \"/etc/httpd/logs/access_log\",\n \"/var/log/httpd/access_log\",\n \"/var/www/*/logs/access.log\")\n","type":"eql","index":["auditbeat-*","winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"665e7a4f-c58e-4fc6-bc83-87a7572670ac:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/66883649-f908-4a5b-a1e0-54090a1d3a32:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/66883649-f908-4a5b-a1e0-54090a1d3a32:102.0.0.json new file mode 100644 index 0000000000000..a0df37726b516 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/66883649-f908-4a5b-a1e0-54090a1d3a32:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Connection to Commonly Abused Web Services v102.0.0","rule_id":"66883649-f908-4a5b-a1e0-54090a1d3a32:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may implement command and control (C2) communications that use common web services to hide their activity. This attack technique is typically targeted at an organization and uses web services common to the victim network, which allows the adversary to blend into legitimate traffic activity. These popular services are typically targeted since they have most likely been used before compromise, which helps malicious traffic blend in.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Connection to Commonly Abused Web Services\n\nAdversaries may use an existing, legitimate external Web service as a means for relaying data to/from a compromised\nsystem. Popular websites and social media acting as a mechanism for C2 may give a significant amount of cover due to the\nlikelihood that hosts within a network are already communicating with them prior to a compromise.\n\nThis rule looks for processes outside known legitimate program locations communicating with a list of services that can\nbe abused for exfiltration or command and control.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Verify whether the digital signature exists in the executable.\n- Identify the operation type (upload, download, tunneling, etc.).\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This rule has a high chance to produce false positives because it detects communication with legitimate services. Noisy\nfalse positives can be added as exceptions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1102","name":"Web Service","reference":"https://attack.mitre.org/techniques/T1102/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1567","name":"Exfiltration Over Web Service","reference":"https://attack.mitre.org/techniques/T1567/","subtechnique":[{"id":"T1567.001","name":"Exfiltration to Code Repository","reference":"https://attack.mitre.org/techniques/T1567/001/"},{"id":"T1567.002","name":"Exfiltration to Cloud Storage","reference":"https://attack.mitre.org/techniques/T1567/002/"}]}]}],"language":"eql","query":"network where network.protocol == \"dns\" and\n process.name != null and user.id not in (\"S-1-5-18\", \"S-1-5-19\", \"S-1-5-20\") and\n /* Add new WebSvc domains here */\n dns.question.name :\n (\n \"raw.githubusercontent.*\",\n \"*.pastebin.*\",\n \"*drive.google.*\",\n \"*docs.live.*\",\n \"*api.dropboxapi.*\",\n \"*dropboxusercontent.*\",\n \"*onedrive.*\",\n \"*4shared.*\",\n \"*.file.io\",\n \"*filebin.net\",\n \"*slack-files.com\",\n \"*ghostbin.*\",\n \"*ngrok.*\",\n \"*portmap.*\",\n \"*serveo.net\",\n \"*localtunnel.me\",\n \"*pagekite.me\",\n \"*localxpose.io\",\n \"*notabug.org\",\n \"rawcdn.githack.*\",\n \"paste.nrecom.net\",\n \"zerobin.net\",\n \"controlc.com\",\n \"requestbin.net\",\n \"cdn.discordapp.com\",\n \"discordapp.com\",\n \"discord.com\",\n \"script.google.com\",\n \"script.googleusercontent.com\"\n ) and\n /* Insert noisy false positives here */\n not process.executable :\n (\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\WWAHost.exe\",\n \"?:\\\\Windows\\\\System32\\\\smartscreen.exe\",\n \"?:\\\\Windows\\\\System32\\\\MicrosoftEdgeCP.exe\",\n \"?:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\Platform\\\\*\\\\MsMpEng.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Programs\\\\Fiddler\\\\Fiddler.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Programs\\\\Microsoft VS Code\\\\Code.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Microsoft\\\\OneDrive\\\\OneDrive.exe\",\n \"?:\\\\Windows\\\\system32\\\\mobsync.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\mobsync.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Discord\\\\app-*\\\\Discord.exe\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"dns.question.name","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"66883649-f908-4a5b-a1e0-54090a1d3a32:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/66883649-f908-4a5b-a1e0-54090a1d3a32:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/66883649-f908-4a5b-a1e0-54090a1d3a32:102.0.1.json new file mode 100644 index 0000000000000..860518afee5bf --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/66883649-f908-4a5b-a1e0-54090a1d3a32:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Connection to Commonly Abused Web Services v102.0.1","rule_id":"66883649-f908-4a5b-a1e0-54090a1d3a32:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may implement command and control (C2) communications that use common web services to hide their activity. This attack technique is typically targeted at an organization and uses web services common to the victim network, which allows the adversary to blend into legitimate traffic activity. These popular services are typically targeted since they have most likely been used before compromise, which helps malicious traffic blend in.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Connection to Commonly Abused Web Services\n\nAdversaries may use an existing, legitimate external Web service as a means for relaying data to/from a compromised\nsystem. Popular websites and social media acting as a mechanism for C2 may give a significant amount of cover due to the\nlikelihood that hosts within a network are already communicating with them prior to a compromise.\n\nThis rule looks for processes outside known legitimate program locations communicating with a list of services that can\nbe abused for exfiltration or command and control.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Verify whether the digital signature exists in the executable.\n- Identify the operation type (upload, download, tunneling, etc.).\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This rule has a high chance to produce false positives because it detects communication with legitimate services. Noisy\nfalse positives can be added as exceptions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1102","name":"Web Service","reference":"https://attack.mitre.org/techniques/T1102/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1567","name":"Exfiltration Over Web Service","reference":"https://attack.mitre.org/techniques/T1567/","subtechnique":[{"id":"T1567.001","name":"Exfiltration to Code Repository","reference":"https://attack.mitre.org/techniques/T1567/001/"},{"id":"T1567.002","name":"Exfiltration to Cloud Storage","reference":"https://attack.mitre.org/techniques/T1567/002/"}]}]}],"language":"eql","query":"network where network.protocol == \"dns\" and\n process.name != null and user.id not in (\"S-1-5-18\", \"S-1-5-19\", \"S-1-5-20\") and\n /* Add new WebSvc domains here */\n dns.question.name :\n (\n \"raw.githubusercontent.*\",\n \"*.pastebin.*\",\n \"*drive.google.*\",\n \"*docs.live.*\",\n \"*api.dropboxapi.*\",\n \"*dropboxusercontent.*\",\n \"*onedrive.*\",\n \"*4shared.*\",\n \"*.file.io\",\n \"*filebin.net\",\n \"*slack-files.com\",\n \"*ghostbin.*\",\n \"*ngrok.*\",\n \"*portmap.*\",\n \"*serveo.net\",\n \"*localtunnel.me\",\n \"*pagekite.me\",\n \"*localxpose.io\",\n \"*notabug.org\",\n \"rawcdn.githack.*\",\n \"paste.nrecom.net\",\n \"zerobin.net\",\n \"controlc.com\",\n \"requestbin.net\",\n \"cdn.discordapp.com\",\n \"discordapp.com\",\n \"discord.com\",\n \"script.google.com\",\n \"script.googleusercontent.com\"\n ) and\n /* Insert noisy false positives here */\n not process.executable :\n (\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\WWAHost.exe\",\n \"?:\\\\Windows\\\\System32\\\\smartscreen.exe\",\n \"?:\\\\Windows\\\\System32\\\\MicrosoftEdgeCP.exe\",\n \"?:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\Platform\\\\*\\\\MsMpEng.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Programs\\\\Fiddler\\\\Fiddler.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Programs\\\\Microsoft VS Code\\\\Code.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Microsoft\\\\OneDrive\\\\OneDrive.exe\",\n \"?:\\\\Windows\\\\system32\\\\mobsync.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\mobsync.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Discord\\\\app-*\\\\Discord.exe\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"dns.question.name","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"66883649-f908-4a5b-a1e0-54090a1d3a32:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/66883649-f908-4a5b-a1e0-54090a1d3a32:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/66883649-f908-4a5b-a1e0-54090a1d3a32:102.0.2.json new file mode 100644 index 0000000000000..07f9a2cb7735a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/66883649-f908-4a5b-a1e0-54090a1d3a32:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Connection to Commonly Abused Web Services v102.0.2","rule_id":"66883649-f908-4a5b-a1e0-54090a1d3a32:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may implement command and control (C2) communications that use common web services to hide their activity. This attack technique is typically targeted at an organization and uses web services common to the victim network, which allows the adversary to blend into legitimate traffic activity. These popular services are typically targeted since they have most likely been used before compromise, which helps malicious traffic blend in.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Connection to Commonly Abused Web Services\n\nAdversaries may use an existing, legitimate external Web service as a means for relaying data to/from a compromised\nsystem. Popular websites and social media acting as a mechanism for C2 may give a significant amount of cover due to the\nlikelihood that hosts within a network are already communicating with them prior to a compromise.\n\nThis rule looks for processes outside known legitimate program locations communicating with a list of services that can\nbe abused for exfiltration or command and control.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Verify whether the digital signature exists in the executable.\n- Identify the operation type (upload, download, tunneling, etc.).\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This rule has a high chance to produce false positives because it detects communication with legitimate services. Noisy\nfalse positives can be added as exceptions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1102","name":"Web Service","reference":"https://attack.mitre.org/techniques/T1102/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1567","name":"Exfiltration Over Web Service","reference":"https://attack.mitre.org/techniques/T1567/","subtechnique":[{"id":"T1567.001","name":"Exfiltration to Code Repository","reference":"https://attack.mitre.org/techniques/T1567/001/"},{"id":"T1567.002","name":"Exfiltration to Cloud Storage","reference":"https://attack.mitre.org/techniques/T1567/002/"}]}]}],"language":"eql","query":"network where network.protocol == \"dns\" and\n process.name != null and user.id not in (\"S-1-5-18\", \"S-1-5-19\", \"S-1-5-20\") and\n /* Add new WebSvc domains here */\n dns.question.name :\n (\n \"raw.githubusercontent.*\",\n \"*.pastebin.*\",\n \"*drive.google.*\",\n \"*docs.live.*\",\n \"*api.dropboxapi.*\",\n \"*dropboxusercontent.*\",\n \"*onedrive.*\",\n \"*4shared.*\",\n \"*.file.io\",\n \"*filebin.net\",\n \"*slack-files.com\",\n \"*ghostbin.*\",\n \"*ngrok.*\",\n \"*portmap.*\",\n \"*serveo.net\",\n \"*localtunnel.me\",\n \"*pagekite.me\",\n \"*localxpose.io\",\n \"*notabug.org\",\n \"rawcdn.githack.*\",\n \"paste.nrecom.net\",\n \"zerobin.net\",\n \"controlc.com\",\n \"requestbin.net\",\n \"cdn.discordapp.com\",\n \"discordapp.com\",\n \"discord.com\",\n \"script.google.com\",\n \"script.googleusercontent.com\"\n ) and\n /* Insert noisy false positives here */\n not process.executable :\n (\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Windows\\\\System32\\\\WWAHost.exe\",\n \"?:\\\\Windows\\\\System32\\\\smartscreen.exe\",\n \"?:\\\\Windows\\\\System32\\\\MicrosoftEdgeCP.exe\",\n \"?:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\Platform\\\\*\\\\MsMpEng.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Programs\\\\Fiddler\\\\Fiddler.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Programs\\\\Microsoft VS Code\\\\Code.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Microsoft\\\\OneDrive\\\\OneDrive.exe\",\n \"?:\\\\Windows\\\\system32\\\\mobsync.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\mobsync.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Discord\\\\app-*\\\\Discord.exe\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"dns.question.name","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"66883649-f908-4a5b-a1e0-54090a1d3a32:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/66da12b1-ac83-40eb-814c-07ed1d82b7b9:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/66da12b1-ac83-40eb-814c-07ed1d82b7b9:100.0.0.json new file mode 100644 index 0000000000000..f781ff06cd034 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/66da12b1-ac83-40eb-814c-07ed1d82b7b9:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious macOS MS Office Child Process v100.0.0","rule_id":"66da12b1-ac83-40eb-814c-07ed1d82b7b9:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious child processes of frequently targeted Microsoft Office applications (Word, PowerPoint, and Excel). These child processes are often launched during exploitation of Office applications or by documents with malicious macros.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.malwarebytes.com/cybercrime/2017/02/microsoft-office-macro-malware-targets-macs/"],"tags":["Elastic","Host","macOS","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.parent.name:(\"Microsoft Word\", \"Microsoft PowerPoint\", \"Microsoft Excel\") and\n process.name:\n (\n \"bash\",\n \"dash\",\n \"sh\",\n \"tcsh\",\n \"csh\",\n \"zsh\",\n \"ksh\",\n \"fish\",\n \"python*\",\n \"perl*\",\n \"php*\",\n \"osascript\",\n \"pwsh\",\n \"curl\",\n \"wget\",\n \"cp\",\n \"mv\",\n \"base64\",\n \"launchctl\"\n ) and\n /* noisy false positives related to product version discovery and office errors reporting */\n not process.args:\n (\n \"ProductVersion\",\n \"hw.model\",\n \"ioreg\",\n \"ProductName\",\n \"ProductUserVisibleVersion\",\n \"ProductBuildVersion\",\n \"/Library/Application Support/Microsoft/MERP*/Microsoft Error Reporting.app/Contents/MacOS/Microsoft Error Reporting\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},"id":"66da12b1-ac83-40eb-814c-07ed1d82b7b9:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/66da12b1-ac83-40eb-814c-07ed1d82b7b9:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/66da12b1-ac83-40eb-814c-07ed1d82b7b9:100.0.1.json new file mode 100644 index 0000000000000..1424d0f0333d2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/66da12b1-ac83-40eb-814c-07ed1d82b7b9:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious macOS MS Office Child Process v100.0.1","rule_id":"66da12b1-ac83-40eb-814c-07ed1d82b7b9:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious child processes of frequently targeted Microsoft Office applications (Word, PowerPoint, and Excel). These child processes are often launched during exploitation of Office applications or by documents with malicious macros.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.malwarebytes.com/cybercrime/2017/02/microsoft-office-macro-malware-targets-macs/"],"tags":["Elastic","Host","macOS","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.parent.name:(\"Microsoft Word\", \"Microsoft PowerPoint\", \"Microsoft Excel\") and\n process.name:\n (\n \"bash\",\n \"dash\",\n \"sh\",\n \"tcsh\",\n \"csh\",\n \"zsh\",\n \"ksh\",\n \"fish\",\n \"python*\",\n \"perl*\",\n \"php*\",\n \"osascript\",\n \"pwsh\",\n \"curl\",\n \"wget\",\n \"cp\",\n \"mv\",\n \"base64\",\n \"launchctl\"\n ) and\n /* noisy false positives related to product version discovery and office errors reporting */\n not process.args:\n (\n \"ProductVersion\",\n \"hw.model\",\n \"ioreg\",\n \"ProductName\",\n \"ProductUserVisibleVersion\",\n \"ProductBuildVersion\",\n \"/Library/Application Support/Microsoft/MERP*/Microsoft Error Reporting.app/Contents/MacOS/Microsoft Error Reporting\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},"id":"66da12b1-ac83-40eb-814c-07ed1d82b7b9:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/66da12b1-ac83-40eb-814c-07ed1d82b7b9:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/66da12b1-ac83-40eb-814c-07ed1d82b7b9:100.0.2.json new file mode 100644 index 0000000000000..4ed946f196526 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/66da12b1-ac83-40eb-814c-07ed1d82b7b9:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious macOS MS Office Child Process v100.0.2","rule_id":"66da12b1-ac83-40eb-814c-07ed1d82b7b9:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious child processes of frequently targeted Microsoft Office applications (Word, PowerPoint, and Excel). These child processes are often launched during exploitation of Office applications or by documents with malicious macros.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.malwarebytes.com/cybercrime/2017/02/microsoft-office-macro-malware-targets-macs/"],"tags":["Elastic","Host","macOS","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.parent.name:(\"Microsoft Word\", \"Microsoft PowerPoint\", \"Microsoft Excel\") and\n process.name:\n (\n \"bash\",\n \"dash\",\n \"sh\",\n \"tcsh\",\n \"csh\",\n \"zsh\",\n \"ksh\",\n \"fish\",\n \"python*\",\n \"perl*\",\n \"php*\",\n \"osascript\",\n \"pwsh\",\n \"curl\",\n \"wget\",\n \"cp\",\n \"mv\",\n \"base64\",\n \"launchctl\"\n ) and\n /* noisy false positives related to product version discovery and office errors reporting */\n not process.args:\n (\n \"ProductVersion\",\n \"hw.model\",\n \"ioreg\",\n \"ProductName\",\n \"ProductUserVisibleVersion\",\n \"ProductBuildVersion\",\n \"/Library/Application Support/Microsoft/MERP*/Microsoft Error Reporting.app/Contents/MacOS/Microsoft Error Reporting\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},"id":"66da12b1-ac83-40eb-814c-07ed1d82b7b9:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/670b3b5a-35e5-42db-bd36-6c5b9b4b7313:1.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/670b3b5a-35e5-42db-bd36-6c5b9b4b7313:1.0.0.json new file mode 100644 index 0000000000000..2fafa785d75bb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/670b3b5a-35e5-42db-bd36-6c5b9b4b7313:1.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Modification of the msPKIAccountCredentials v1.0.0","rule_id":"670b3b5a-35e5-42db-bd36-6c5b9b4b7313:1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identify the modification of the msPKIAccountCredentials attribute in an Active Directory User Object. Attackers can abuse the credentials roaming feature to overwrite an arbitrary file for privilege escalation. ms-PKI-AccountCredentials contains binary large objects (BLOBs) of encrypted credential objects from the credential manager store, private keys, certificates, and certificate requests.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.mandiant.com/resources/blog/apt29-windows-credential-roaming","https://social.technet.microsoft.com/wiki/contents/articles/11483.windows-credential-roaming.aspx","https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-5136"],"tags":["Elastic","Host","Windows","Threat Detection","Active Directory","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"Directory Service Changes\" and event.code:\"5136\" and\n winlog.event_data.AttributeLDAPDisplayName:\"msPKIAccountCredentials\" and winlog.event_data.OperationType:\"%%14674\" and\n not winlog.event_data.SubjectUserSid : \"S-1-5-18\"\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.OperationType","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectUserSid","type":"keyword"}],"setup":"The 'Audit Directory Service Changes' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```\n\nThe above policy does not cover User objects, so we need to set up an AuditRule using https://github.com/OTRF/Set-AuditRule.\nAs this specifies the msDS-KeyCredentialLink Attribute GUID, it is expected to be low noise.\n\n```\nSet-AuditRule -AdObjectPath 'AD:\\CN=Users,DC=Domain,DC=com' -WellKnownSidType WorldSid -Rights WriteProperty -InheritanceFlags Children -AttributeGUID 5b47d60f-6090-40b2-9f37-2a4de88f3063 -AuditFlags Success\n```"},"id":"670b3b5a-35e5-42db-bd36-6c5b9b4b7313:1.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/670b3b5a-35e5-42db-bd36-6c5b9b4b7313:1.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/670b3b5a-35e5-42db-bd36-6c5b9b4b7313:1.0.1.json new file mode 100644 index 0000000000000..df8103f146049 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/670b3b5a-35e5-42db-bd36-6c5b9b4b7313:1.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Modification of the msPKIAccountCredentials v1.0.1","rule_id":"670b3b5a-35e5-42db-bd36-6c5b9b4b7313:1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identify the modification of the msPKIAccountCredentials attribute in an Active Directory User Object. Attackers can abuse the credentials roaming feature to overwrite an arbitrary file for privilege escalation. ms-PKI-AccountCredentials contains binary large objects (BLOBs) of encrypted credential objects from the credential manager store, private keys, certificates, and certificate requests.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.mandiant.com/resources/blog/apt29-windows-credential-roaming","https://social.technet.microsoft.com/wiki/contents/articles/11483.windows-credential-roaming.aspx","https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-5136"],"tags":["Elastic","Host","Windows","Threat Detection","Active Directory","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"Directory Service Changes\" and event.code:\"5136\" and\n winlog.event_data.AttributeLDAPDisplayName:\"msPKIAccountCredentials\" and winlog.event_data.OperationType:\"%%14674\" and\n not winlog.event_data.SubjectUserSid : \"S-1-5-18\"\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.OperationType","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectUserSid","type":"keyword"}],"setup":"The 'Audit Directory Service Changes' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```\n\nThe above policy does not cover User objects, so we need to set up an AuditRule using https://github.com/OTRF/Set-AuditRule.\nAs this specifies the msDS-KeyCredentialLink Attribute GUID, it is expected to be low noise.\n\n```\nSet-AuditRule -AdObjectPath 'AD:\\CN=Users,DC=Domain,DC=com' -WellKnownSidType WorldSid -Rights WriteProperty -InheritanceFlags Children -AttributeGUID 5b47d60f-6090-40b2-9f37-2a4de88f3063 -AuditFlags Success\n```"},"id":"670b3b5a-35e5-42db-bd36-6c5b9b4b7313:1.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/670b3b5a-35e5-42db-bd36-6c5b9b4b7313:1.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/670b3b5a-35e5-42db-bd36-6c5b9b4b7313:1.0.2.json new file mode 100644 index 0000000000000..d81feffa96899 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/670b3b5a-35e5-42db-bd36-6c5b9b4b7313:1.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Modification of the msPKIAccountCredentials v1.0.2","rule_id":"670b3b5a-35e5-42db-bd36-6c5b9b4b7313:1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identify the modification of the msPKIAccountCredentials attribute in an Active Directory User Object. Attackers can abuse the credentials roaming feature to overwrite an arbitrary file for privilege escalation. ms-PKI-AccountCredentials contains binary large objects (BLOBs) of encrypted credential objects from the credential manager store, private keys, certificates, and certificate requests.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.mandiant.com/resources/blog/apt29-windows-credential-roaming","https://social.technet.microsoft.com/wiki/contents/articles/11483.windows-credential-roaming.aspx","https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-5136"],"tags":["Elastic","Host","Windows","Threat Detection","Active Directory","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"Directory Service Changes\" and event.code:\"5136\" and\n winlog.event_data.AttributeLDAPDisplayName:\"msPKIAccountCredentials\" and winlog.event_data.OperationType:\"%%14674\" and\n not winlog.event_data.SubjectUserSid : \"S-1-5-18\"\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.OperationType","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectUserSid","type":"keyword"}],"setup":"The 'Audit Directory Service Changes' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```\n\nThe above policy does not cover User objects, so we need to set up an AuditRule using https://github.com/OTRF/Set-AuditRule.\nAs this specifies the msDS-KeyCredentialLink Attribute GUID, it is expected to be low noise.\n\n```\nSet-AuditRule -AdObjectPath 'AD:\\CN=Users,DC=Domain,DC=com' -WellKnownSidType WorldSid -Rights WriteProperty -InheritanceFlags Children -AttributeGUID 5b47d60f-6090-40b2-9f37-2a4de88f3063 -AuditFlags Success\n```"},"id":"670b3b5a-35e5-42db-bd36-6c5b9b4b7313:1.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6731fbf2-8f28-49ed-9ab9-9a918ceb5a45:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6731fbf2-8f28-49ed-9ab9-9a918ceb5a45:102.0.0.json new file mode 100644 index 0000000000000..fc560c35fe33f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6731fbf2-8f28-49ed-9ab9-9a918ceb5a45:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Modify an Okta Policy v102.0.0","rule_id":"6731fbf2-8f28-49ed-9ab9-9a918ceb5a45:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to modify an Okta policy. An adversary may attempt to modify an Okta policy in order to weaken an organization's security controls. For example, an adversary may attempt to modify an Okta multi-factor authentication (MFA) policy in order to weaken the authentication requirements for user accounts.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Okta policies are regularly modified in your organization."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.lifecycle.update\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"6731fbf2-8f28-49ed-9ab9-9a918ceb5a45:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6731fbf2-8f28-49ed-9ab9-9a918ceb5a45:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6731fbf2-8f28-49ed-9ab9-9a918ceb5a45:102.0.1.json new file mode 100644 index 0000000000000..1ef57bc46e469 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6731fbf2-8f28-49ed-9ab9-9a918ceb5a45:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Modify an Okta Policy v102.0.1","rule_id":"6731fbf2-8f28-49ed-9ab9-9a918ceb5a45:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to modify an Okta policy. An adversary may attempt to modify an Okta policy in order to weaken an organization's security controls. For example, an adversary may attempt to modify an Okta multi-factor authentication (MFA) policy in order to weaken the authentication requirements for user accounts.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Okta policies are regularly modified in your organization."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.lifecycle.update\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"6731fbf2-8f28-49ed-9ab9-9a918ceb5a45:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6731fbf2-8f28-49ed-9ab9-9a918ceb5a45:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6731fbf2-8f28-49ed-9ab9-9a918ceb5a45:102.0.2.json new file mode 100644 index 0000000000000..4adc8dba4db5d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6731fbf2-8f28-49ed-9ab9-9a918ceb5a45:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Modify an Okta Policy v102.0.2","rule_id":"6731fbf2-8f28-49ed-9ab9-9a918ceb5a45:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to modify an Okta policy. An adversary may attempt to modify an Okta policy in order to weaken an organization's security controls. For example, an adversary may attempt to modify an Okta multi-factor authentication (MFA) policy in order to weaken the authentication requirements for user accounts.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Okta policies are regularly modified in your organization."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.lifecycle.update\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"6731fbf2-8f28-49ed-9ab9-9a918ceb5a45:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/675239ea-c1bc-4467-a6d3-b9e2cc7f676d:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/675239ea-c1bc-4467-a6d3-b9e2cc7f676d:101.0.0.json new file mode 100644 index 0000000000000..de1a81c7a27ca --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/675239ea-c1bc-4467-a6d3-b9e2cc7f676d:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"O365 Mailbox Audit Logging Bypass v101.0.0","rule_id":"675239ea-c1bc-4467-a6d3-b9e2cc7f676d:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the occurrence of mailbox audit bypass associations. The mailbox audit is responsible for logging specified mailbox events (like accessing a folder or a message or permanently deleting a message). However, actions taken by some authorized accounts, such as accounts used by third-party tools or accounts used for lawful monitoring, can create a large number of mailbox audit log entries and may not be of interest to your organization. Because of this, administrators can create bypass associations, allowing certain accounts to perform their tasks without being logged. Attackers can abuse this allowlist mechanism to conceal actions taken, as the mailbox audit will log no activity done by the account.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate allowlisting of noisy accounts"],"from":"now-30m","references":["https://twitter.com/misconfig/status/1476144066807140355"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.action:Set-MailboxAuditBypassAssociation and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"675239ea-c1bc-4467-a6d3-b9e2cc7f676d:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/675239ea-c1bc-4467-a6d3-b9e2cc7f676d:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/675239ea-c1bc-4467-a6d3-b9e2cc7f676d:101.0.1.json new file mode 100644 index 0000000000000..e727e9c5c8c64 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/675239ea-c1bc-4467-a6d3-b9e2cc7f676d:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"O365 Mailbox Audit Logging Bypass v101.0.1","rule_id":"675239ea-c1bc-4467-a6d3-b9e2cc7f676d:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the occurrence of mailbox audit bypass associations. The mailbox audit is responsible for logging specified mailbox events (like accessing a folder or a message or permanently deleting a message). However, actions taken by some authorized accounts, such as accounts used by third-party tools or accounts used for lawful monitoring, can create a large number of mailbox audit log entries and may not be of interest to your organization. Because of this, administrators can create bypass associations, allowing certain accounts to perform their tasks without being logged. Attackers can abuse this allowlist mechanism to conceal actions taken, as the mailbox audit will log no activity done by the account.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate allowlisting of noisy accounts"],"from":"now-30m","references":["https://twitter.com/misconfig/status/1476144066807140355"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.action:Set-MailboxAuditBypassAssociation and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"675239ea-c1bc-4467-a6d3-b9e2cc7f676d:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/675239ea-c1bc-4467-a6d3-b9e2cc7f676d:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/675239ea-c1bc-4467-a6d3-b9e2cc7f676d:101.0.2.json new file mode 100644 index 0000000000000..35610720abb29 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/675239ea-c1bc-4467-a6d3-b9e2cc7f676d:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"O365 Mailbox Audit Logging Bypass v101.0.2","rule_id":"675239ea-c1bc-4467-a6d3-b9e2cc7f676d:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the occurrence of mailbox audit bypass associations. The mailbox audit is responsible for logging specified mailbox events (like accessing a folder or a message or permanently deleting a message). However, actions taken by some authorized accounts, such as accounts used by third-party tools or accounts used for lawful monitoring, can create a large number of mailbox audit log entries and may not be of interest to your organization. Because of this, administrators can create bypass associations, allowing certain accounts to perform their tasks without being logged. Attackers can abuse this allowlist mechanism to conceal actions taken, as the mailbox audit will log no activity done by the account.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate allowlisting of noisy accounts"],"from":"now-30m","references":["https://twitter.com/misconfig/status/1476144066807140355"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.action:Set-MailboxAuditBypassAssociation and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"675239ea-c1bc-4467-a6d3-b9e2cc7f676d:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/676cff2b-450b-4cf1-8ed2-c0c58a4a2dd7:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/676cff2b-450b-4cf1-8ed2-c0c58a4a2dd7:102.0.0.json new file mode 100644 index 0000000000000..bf666f48a2d36 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/676cff2b-450b-4cf1-8ed2-c0c58a4a2dd7:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Revoke Okta API Token v102.0.0","rule_id":"676cff2b-450b-4cf1-8ed2-c0c58a4a2dd7:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to revoke an Okta API token. An adversary may attempt to revoke or delete an Okta API token to disrupt an organization's business operations.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If the behavior of revoking Okta API tokens is expected, consider adding exceptions to this rule to filter false positives."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:system.api_token.revoke\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"676cff2b-450b-4cf1-8ed2-c0c58a4a2dd7:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/676cff2b-450b-4cf1-8ed2-c0c58a4a2dd7:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/676cff2b-450b-4cf1-8ed2-c0c58a4a2dd7:102.0.1.json new file mode 100644 index 0000000000000..d1f019831b382 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/676cff2b-450b-4cf1-8ed2-c0c58a4a2dd7:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Revoke Okta API Token v102.0.1","rule_id":"676cff2b-450b-4cf1-8ed2-c0c58a4a2dd7:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to revoke an Okta API token. An adversary may attempt to revoke or delete an Okta API token to disrupt an organization's business operations.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If the behavior of revoking Okta API tokens is expected, consider adding exceptions to this rule to filter false positives."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:system.api_token.revoke\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"676cff2b-450b-4cf1-8ed2-c0c58a4a2dd7:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/676cff2b-450b-4cf1-8ed2-c0c58a4a2dd7:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/676cff2b-450b-4cf1-8ed2-c0c58a4a2dd7:102.0.2.json new file mode 100644 index 0000000000000..ed939f16634a4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/676cff2b-450b-4cf1-8ed2-c0c58a4a2dd7:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Revoke Okta API Token v102.0.2","rule_id":"676cff2b-450b-4cf1-8ed2-c0c58a4a2dd7:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to revoke an Okta API token. An adversary may attempt to revoke or delete an Okta API token to disrupt an organization's business operations.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If the behavior of revoking Okta API tokens is expected, consider adding exceptions to this rule to filter false positives."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:system.api_token.revoke\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"676cff2b-450b-4cf1-8ed2-c0c58a4a2dd7:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/67f8443a-4ff3-4a70-916d-3cfa3ae9f02b:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/67f8443a-4ff3-4a70-916d-3cfa3ae9f02b:102.0.0.json new file mode 100644 index 0000000000000..6ccf096f78ebb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/67f8443a-4ff3-4a70-916d-3cfa3ae9f02b:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"High Number of Process Terminations v102.0.0","rule_id":"67f8443a-4ff3-4a70-916d-3cfa3ae9f02b:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule identifies a high number (10) of process terminations via pkill from the same host within a short time period.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating High Number of Process Terminations\n\nAttackers can kill processes for a variety of purposes. For example, they can kill process associated\nwith business applications and databases to release the lock on files used by these applications so they may be\nencrypted,or stop security and backup solutions, etc.\n\nThis rule identifies a high number (10) of process terminations via pkill from the same\nhost within a short time period.\n\n#### Possible investigation steps\n\nDetection alerts from this rule indicate High Number of Process Terminations from the same host\nHere are some possible avenues of investigation:\n- Examine the entry point to the host and user in action via the Analyse View.\n - Identify the session entry leader and session user\n- Examine the contents of session leading to the process termination(s) via the Session View.\n - Examine the command execution pattern in the session, which may lead to suspricous activities\n- Examine the process killed during the malicious execution\n - Identify imment threat to the system from the process killed\n - Take necessary incident response actions to respawn necessary process\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further destructive behavior, which is commonly associated with this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system or restore it to the operational state.\n- If any other destructive action was identified on the host, it is recommended to prioritize the investigation and look\nfor ransomware preparation and execution activities.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"query":"event.category:process and event.type:start and process.name:\"pkill\" and process.args:\"-f\"\n","threshold":{"field":["host.id"],"value":10},"type":"threshold","index":["logs-endpoint.events.*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"67f8443a-4ff3-4a70-916d-3cfa3ae9f02b:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/67f8443a-4ff3-4a70-916d-3cfa3ae9f02b:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/67f8443a-4ff3-4a70-916d-3cfa3ae9f02b:102.0.1.json new file mode 100644 index 0000000000000..23a24dde93810 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/67f8443a-4ff3-4a70-916d-3cfa3ae9f02b:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"High Number of Process Terminations v102.0.1","rule_id":"67f8443a-4ff3-4a70-916d-3cfa3ae9f02b:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule identifies a high number (10) of process terminations via pkill from the same host within a short time period.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating High Number of Process Terminations\n\nAttackers can kill processes for a variety of purposes. For example, they can kill process associated\nwith business applications and databases to release the lock on files used by these applications so they may be\nencrypted,or stop security and backup solutions, etc.\n\nThis rule identifies a high number (10) of process terminations via pkill from the same\nhost within a short time period.\n\n#### Possible investigation steps\n\nDetection alerts from this rule indicate High Number of Process Terminations from the same host\nHere are some possible avenues of investigation:\n- Examine the entry point to the host and user in action via the Analyse View.\n - Identify the session entry leader and session user\n- Examine the contents of session leading to the process termination(s) via the Session View.\n - Examine the command execution pattern in the session, which may lead to suspricous activities\n- Examine the process killed during the malicious execution\n - Identify imment threat to the system from the process killed\n - Take necessary incident response actions to respawn necessary process\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further destructive behavior, which is commonly associated with this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system or restore it to the operational state.\n- If any other destructive action was identified on the host, it is recommended to prioritize the investigation and look\nfor ransomware preparation and execution activities.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"query":"event.category:process and event.type:start and process.name:\"pkill\" and process.args:\"-f\"\n","threshold":{"field":["host.id"],"value":10},"type":"threshold","index":["logs-endpoint.events.*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"67f8443a-4ff3-4a70-916d-3cfa3ae9f02b:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/67f8443a-4ff3-4a70-916d-3cfa3ae9f02b:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/67f8443a-4ff3-4a70-916d-3cfa3ae9f02b:102.0.2.json new file mode 100644 index 0000000000000..a642d755e7d57 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/67f8443a-4ff3-4a70-916d-3cfa3ae9f02b:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"High Number of Process Terminations v102.0.2","rule_id":"67f8443a-4ff3-4a70-916d-3cfa3ae9f02b:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule identifies a high number (10) of process terminations via pkill from the same host within a short time period.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating High Number of Process Terminations\n\nAttackers can kill processes for a variety of purposes. For example, they can kill process associated\nwith business applications and databases to release the lock on files used by these applications so they may be\nencrypted,or stop security and backup solutions, etc.\n\nThis rule identifies a high number (10) of process terminations via pkill from the same\nhost within a short time period.\n\n#### Possible investigation steps\n\nDetection alerts from this rule indicate High Number of Process Terminations from the same host\nHere are some possible avenues of investigation:\n- Examine the entry point to the host and user in action via the Analyse View.\n - Identify the session entry leader and session user\n- Examine the contents of session leading to the process termination(s) via the Session View.\n - Examine the command execution pattern in the session, which may lead to suspricous activities\n- Examine the process killed during the malicious execution\n - Identify imment threat to the system from the process killed\n - Take necessary incident response actions to respawn necessary process\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further destructive behavior, which is commonly associated with this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system or restore it to the operational state.\n- If any other destructive action was identified on the host, it is recommended to prioritize the investigation and look\nfor ransomware preparation and execution activities.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"query":"event.category:process and event.type:start and process.name:\"pkill\" and process.args:\"-f\"\n","threshold":{"field":["host.id"],"value":10},"type":"threshold","index":["logs-endpoint.events.*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"67f8443a-4ff3-4a70-916d-3cfa3ae9f02b:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6839c821-011d-43bd-bd5b-acff00257226:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6839c821-011d-43bd-bd5b-acff00257226:100.0.0.json new file mode 100644 index 0000000000000..e88954e45ed24 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6839c821-011d-43bd-bd5b-acff00257226:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Image File Execution Options Injection v100.0.0","rule_id":"6839c821-011d-43bd-bd5b-acff00257226:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The Debugger and SilentProcessExit registry keys can allow an adversary to intercept the execution of files, causing a different process to be executed. This functionality can be abused by an adversary to establish persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://oddvar.moe/2018/04/10/persistence-using-globalflags-in-image-file-execution-options-hidden-from-autoruns-exe/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.012","name":"Image File Execution Options Injection","reference":"https://attack.mitre.org/techniques/T1546/012/"}]}]}],"language":"eql","query":"registry where length(registry.data.strings) > 0 and\n registry.path : (\"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Image File Execution Options\\\\*.exe\\\\Debugger\",\n \"HKLM\\\\SOFTWARE\\\\WOW6432Node\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Image File Execution Options\\\\*\\\\Debugger\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\SilentProcessExit\\\\*\\\\MonitorProcess\",\n \"HKLM\\\\SOFTWARE\\\\WOW6432Node\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\SilentProcessExit\\\\*\\\\MonitorProcess\") and\n /* add FPs here */\n not registry.data.strings regex~ (\"\"\"C:\\\\Program Files( \\(x86\\))?\\\\ThinKiosk\\\\thinkiosk\\.exe\"\"\", \"\"\".*\\\\PSAppDeployToolkit\\\\.*\"\"\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"6839c821-011d-43bd-bd5b-acff00257226:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6839c821-011d-43bd-bd5b-acff00257226:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6839c821-011d-43bd-bd5b-acff00257226:100.0.1.json new file mode 100644 index 0000000000000..d016c4eba7bba --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6839c821-011d-43bd-bd5b-acff00257226:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Image File Execution Options Injection v100.0.1","rule_id":"6839c821-011d-43bd-bd5b-acff00257226:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The Debugger and SilentProcessExit registry keys can allow an adversary to intercept the execution of files, causing a different process to be executed. This functionality can be abused by an adversary to establish persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://oddvar.moe/2018/04/10/persistence-using-globalflags-in-image-file-execution-options-hidden-from-autoruns-exe/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.012","name":"Image File Execution Options Injection","reference":"https://attack.mitre.org/techniques/T1546/012/"}]}]}],"language":"eql","query":"registry where length(registry.data.strings) > 0 and\n registry.path : (\"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Image File Execution Options\\\\*.exe\\\\Debugger\",\n \"HKLM\\\\SOFTWARE\\\\WOW6432Node\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Image File Execution Options\\\\*\\\\Debugger\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\SilentProcessExit\\\\*\\\\MonitorProcess\",\n \"HKLM\\\\SOFTWARE\\\\WOW6432Node\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\SilentProcessExit\\\\*\\\\MonitorProcess\") and\n /* add FPs here */\n not registry.data.strings regex~ (\"\"\"C:\\\\Program Files( \\(x86\\))?\\\\ThinKiosk\\\\thinkiosk\\.exe\"\"\", \"\"\".*\\\\PSAppDeployToolkit\\\\.*\"\"\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"6839c821-011d-43bd-bd5b-acff00257226:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6839c821-011d-43bd-bd5b-acff00257226:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6839c821-011d-43bd-bd5b-acff00257226:100.0.2.json new file mode 100644 index 0000000000000..8b68b62df4a70 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6839c821-011d-43bd-bd5b-acff00257226:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Image File Execution Options Injection v100.0.2","rule_id":"6839c821-011d-43bd-bd5b-acff00257226:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The Debugger and SilentProcessExit registry keys can allow an adversary to intercept the execution of files, causing a different process to be executed. This functionality can be abused by an adversary to establish persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://oddvar.moe/2018/04/10/persistence-using-globalflags-in-image-file-execution-options-hidden-from-autoruns-exe/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.012","name":"Image File Execution Options Injection","reference":"https://attack.mitre.org/techniques/T1546/012/"}]}]}],"language":"eql","query":"registry where length(registry.data.strings) > 0 and\n registry.path : (\"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Image File Execution Options\\\\*.exe\\\\Debugger\",\n \"HKLM\\\\SOFTWARE\\\\WOW6432Node\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Image File Execution Options\\\\*\\\\Debugger\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\SilentProcessExit\\\\*\\\\MonitorProcess\",\n \"HKLM\\\\SOFTWARE\\\\WOW6432Node\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\SilentProcessExit\\\\*\\\\MonitorProcess\") and\n /* add FPs here */\n not registry.data.strings regex~ (\"\"\"C:\\\\Program Files( \\(x86\\))?\\\\ThinKiosk\\\\thinkiosk\\.exe\"\"\", \"\"\".*\\\\PSAppDeployToolkit\\\\.*\"\"\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"6839c821-011d-43bd-bd5b-acff00257226:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/684554fc-0777-47ce-8c9b-3d01f198d7f8:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/684554fc-0777-47ce-8c9b-3d01f198d7f8:101.0.0.json new file mode 100644 index 0000000000000..7843ab5dafdaf --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/684554fc-0777-47ce-8c9b-3d01f198d7f8:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"New or Modified Federation Domain v101.0.0","rule_id":"684554fc-0777-47ce-8c9b-3d01f198d7f8:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a new or modified federation domain, which can be used to create a trust between O365 and an external identity provider.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-accepteddomain?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/remove-federateddomain?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/new-accepteddomain?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/add-federateddomain?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/set-accepteddomain?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/msonline/set-msoldomainfederationsettings?view=azureadps-1.0"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1484","name":"Domain Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/","subtechnique":[{"id":"T1484.002","name":"Domain Trust Modification","reference":"https://attack.mitre.org/techniques/T1484/002/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:(\"Set-AcceptedDomain\" or\n\"Set-MsolDomainFederationSettings\" or \"Add-FederatedDomain\" or \"New-AcceptedDomain\" or \"Remove-AcceptedDomain\" or \"Remove-FederatedDomain\") and\nevent.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"684554fc-0777-47ce-8c9b-3d01f198d7f8:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/684554fc-0777-47ce-8c9b-3d01f198d7f8:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/684554fc-0777-47ce-8c9b-3d01f198d7f8:101.0.1.json new file mode 100644 index 0000000000000..806dcdda1cd10 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/684554fc-0777-47ce-8c9b-3d01f198d7f8:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"New or Modified Federation Domain v101.0.1","rule_id":"684554fc-0777-47ce-8c9b-3d01f198d7f8:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a new or modified federation domain, which can be used to create a trust between O365 and an external identity provider.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-accepteddomain?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/remove-federateddomain?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/new-accepteddomain?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/add-federateddomain?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/set-accepteddomain?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/msonline/set-msoldomainfederationsettings?view=azureadps-1.0"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1484","name":"Domain Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/","subtechnique":[{"id":"T1484.002","name":"Domain Trust Modification","reference":"https://attack.mitre.org/techniques/T1484/002/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:(\"Set-AcceptedDomain\" or\n\"Set-MsolDomainFederationSettings\" or \"Add-FederatedDomain\" or \"New-AcceptedDomain\" or \"Remove-AcceptedDomain\" or \"Remove-FederatedDomain\") and\nevent.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"684554fc-0777-47ce-8c9b-3d01f198d7f8:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/684554fc-0777-47ce-8c9b-3d01f198d7f8:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/684554fc-0777-47ce-8c9b-3d01f198d7f8:101.0.2.json new file mode 100644 index 0000000000000..dfd43e0227842 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/684554fc-0777-47ce-8c9b-3d01f198d7f8:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"New or Modified Federation Domain v101.0.2","rule_id":"684554fc-0777-47ce-8c9b-3d01f198d7f8:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a new or modified federation domain, which can be used to create a trust between O365 and an external identity provider.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-accepteddomain?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/remove-federateddomain?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/new-accepteddomain?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/add-federateddomain?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/set-accepteddomain?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/msonline/set-msoldomainfederationsettings?view=azureadps-1.0"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1484","name":"Domain Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/","subtechnique":[{"id":"T1484.002","name":"Domain Trust Modification","reference":"https://attack.mitre.org/techniques/T1484/002/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:(\"Set-AcceptedDomain\" or\n\"Set-MsolDomainFederationSettings\" or \"Add-FederatedDomain\" or \"New-AcceptedDomain\" or \"Remove-AcceptedDomain\" or \"Remove-FederatedDomain\") and\nevent.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"684554fc-0777-47ce-8c9b-3d01f198d7f8:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6885d2ae-e008-4762-b98a-e8e1cd3a81e9:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6885d2ae-e008-4762-b98a-e8e1cd3a81e9:102.0.0.json new file mode 100644 index 0000000000000..6488648744515 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6885d2ae-e008-4762-b98a-e8e1cd3a81e9:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Threat Detected by Okta ThreatInsight v102.0.0","rule_id":"6885d2ae-e008-4762-b98a-e8e1cd3a81e9:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when Okta ThreatInsight identifies a request from a malicious IP address. Investigating requests from IP addresses identified as malicious by Okta ThreatInsight can help security teams monitor for and respond to credential based attacks against their organization, such as brute force and password spraying attacks.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:security.threat.detected\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"6885d2ae-e008-4762-b98a-e8e1cd3a81e9:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6885d2ae-e008-4762-b98a-e8e1cd3a81e9:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6885d2ae-e008-4762-b98a-e8e1cd3a81e9:102.0.1.json new file mode 100644 index 0000000000000..da66808367f20 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6885d2ae-e008-4762-b98a-e8e1cd3a81e9:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Threat Detected by Okta ThreatInsight v102.0.1","rule_id":"6885d2ae-e008-4762-b98a-e8e1cd3a81e9:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when Okta ThreatInsight identifies a request from a malicious IP address. Investigating requests from IP addresses identified as malicious by Okta ThreatInsight can help security teams monitor for and respond to credential based attacks against their organization, such as brute force and password spraying attacks.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:security.threat.detected\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"6885d2ae-e008-4762-b98a-e8e1cd3a81e9:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6885d2ae-e008-4762-b98a-e8e1cd3a81e9:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6885d2ae-e008-4762-b98a-e8e1cd3a81e9:102.0.2.json new file mode 100644 index 0000000000000..8b7e083ec5a21 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6885d2ae-e008-4762-b98a-e8e1cd3a81e9:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Threat Detected by Okta ThreatInsight v102.0.2","rule_id":"6885d2ae-e008-4762-b98a-e8e1cd3a81e9:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when Okta ThreatInsight identifies a request from a malicious IP address. Investigating requests from IP addresses identified as malicious by Okta ThreatInsight can help security teams monitor for and respond to credential based attacks against their organization, such as brute force and password spraying attacks.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:security.threat.detected\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"6885d2ae-e008-4762-b98a-e8e1cd3a81e9:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/68921d85-d0dc-48b3-865f-43291ca2c4f2:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/68921d85-d0dc-48b3-865f-43291ca2c4f2:101.0.0.json new file mode 100644 index 0000000000000..f83cdeb793d9f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/68921d85-d0dc-48b3-865f-43291ca2c4f2:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via TelemetryController Scheduled Task Hijack v101.0.0","rule_id":"68921d85-d0dc-48b3-865f-43291ca2c4f2:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the successful hijack of Microsoft Compatibility Appraiser scheduled task to establish persistence with an integrity level of system.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.trustedsec.com/blog/abusing-windows-telemetry-for-persistence/?utm_content=131234033&utm_medium=social&utm_source=twitter&hss_channel=tw-403811306"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"CompatTelRunner.exe\" and process.args : \"-cv*\" and\n not process.name : (\"conhost.exe\",\n \"DeviceCensus.exe\",\n \"CompatTelRunner.exe\",\n \"DismHost.exe\",\n \"rundll32.exe\",\n \"powershell.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"68921d85-d0dc-48b3-865f-43291ca2c4f2:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/68921d85-d0dc-48b3-865f-43291ca2c4f2:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/68921d85-d0dc-48b3-865f-43291ca2c4f2:101.0.1.json new file mode 100644 index 0000000000000..9b21a9fa704c4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/68921d85-d0dc-48b3-865f-43291ca2c4f2:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via TelemetryController Scheduled Task Hijack v101.0.1","rule_id":"68921d85-d0dc-48b3-865f-43291ca2c4f2:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the successful hijack of Microsoft Compatibility Appraiser scheduled task to establish persistence with an integrity level of system.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.trustedsec.com/blog/abusing-windows-telemetry-for-persistence/?utm_content=131234033&utm_medium=social&utm_source=twitter&hss_channel=tw-403811306"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"CompatTelRunner.exe\" and process.args : \"-cv*\" and\n not process.name : (\"conhost.exe\",\n \"DeviceCensus.exe\",\n \"CompatTelRunner.exe\",\n \"DismHost.exe\",\n \"rundll32.exe\",\n \"powershell.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"68921d85-d0dc-48b3-865f-43291ca2c4f2:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/68921d85-d0dc-48b3-865f-43291ca2c4f2:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/68921d85-d0dc-48b3-865f-43291ca2c4f2:101.0.2.json new file mode 100644 index 0000000000000..20c1843e3ce6d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/68921d85-d0dc-48b3-865f-43291ca2c4f2:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via TelemetryController Scheduled Task Hijack v101.0.2","rule_id":"68921d85-d0dc-48b3-865f-43291ca2c4f2:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the successful hijack of Microsoft Compatibility Appraiser scheduled task to establish persistence with an integrity level of system.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.trustedsec.com/blog/abusing-windows-telemetry-for-persistence/?utm_content=131234033&utm_medium=social&utm_source=twitter&hss_channel=tw-403811306"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"CompatTelRunner.exe\" and process.args : \"-cv*\" and\n not process.name : (\"conhost.exe\",\n \"DeviceCensus.exe\",\n \"CompatTelRunner.exe\",\n \"DismHost.exe\",\n \"rundll32.exe\",\n \"powershell.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"68921d85-d0dc-48b3-865f-43291ca2c4f2:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/68994a6c-c7ba-4e82-b476-26a26877adf6:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/68994a6c-c7ba-4e82-b476-26a26877adf6:102.0.0.json new file mode 100644 index 0000000000000..547d4cedec909 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/68994a6c-c7ba-4e82-b476-26a26877adf6:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace Admin Role Assigned to a User v102.0.0","rule_id":"68994a6c-c7ba-4e82-b476-26a26877adf6:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Assigning the administrative role to a user will grant them access to the Google Admin console and grant them administrator privileges which allow them to access and manage various resources and applications. An adversary may create a new administrator account for persistence or apply the admin role to an existing user to carry out further intrusion efforts. Users with super-admin privileges can bypass single-sign on if enabled in Google Workspace.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Google Workspace admin role assignments may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/172176?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.003","name":"Additional Cloud Roles","reference":"https://attack.mitre.org/techniques/T1098/003/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.category:\"iam\" and event.action:\"ASSIGN_ROLE\"\n and google_workspace.event.type:\"DELEGATED_ADMIN_SETTINGS\" and google_workspace.admin.role.name : *_ADMIN_ROLE\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.role.name","type":"keyword"},{"ecs":false,"name":"google_workspace.event.type","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"68994a6c-c7ba-4e82-b476-26a26877adf6:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/68994a6c-c7ba-4e82-b476-26a26877adf6:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/68994a6c-c7ba-4e82-b476-26a26877adf6:102.0.1.json new file mode 100644 index 0000000000000..cc61f6584cf9b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/68994a6c-c7ba-4e82-b476-26a26877adf6:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace Admin Role Assigned to a User v102.0.1","rule_id":"68994a6c-c7ba-4e82-b476-26a26877adf6:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Assigning the administrative role to a user will grant them access to the Google Admin console and grant them administrator privileges which allow them to access and manage various resources and applications. An adversary may create a new administrator account for persistence or apply the admin role to an existing user to carry out further intrusion efforts. Users with super-admin privileges can bypass single-sign on if enabled in Google Workspace.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Google Workspace admin role assignments may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/172176?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.003","name":"Additional Cloud Roles","reference":"https://attack.mitre.org/techniques/T1098/003/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.category:\"iam\" and event.action:\"ASSIGN_ROLE\"\n and google_workspace.event.type:\"DELEGATED_ADMIN_SETTINGS\" and google_workspace.admin.role.name : *_ADMIN_ROLE\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.role.name","type":"keyword"},{"ecs":false,"name":"google_workspace.event.type","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"68994a6c-c7ba-4e82-b476-26a26877adf6:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/68994a6c-c7ba-4e82-b476-26a26877adf6:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/68994a6c-c7ba-4e82-b476-26a26877adf6:102.0.2.json new file mode 100644 index 0000000000000..b7f4f2e306edc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/68994a6c-c7ba-4e82-b476-26a26877adf6:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace Admin Role Assigned to a User v102.0.2","rule_id":"68994a6c-c7ba-4e82-b476-26a26877adf6:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Assigning the administrative role to a user will grant them access to the Google Admin console and grant them administrator privileges which allow them to access and manage various resources and applications. An adversary may create a new administrator account for persistence or apply the admin role to an existing user to carry out further intrusion efforts. Users with super-admin privileges can bypass single-sign on if enabled in Google Workspace.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Google Workspace admin role assignments may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/172176?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.003","name":"Additional Cloud Roles","reference":"https://attack.mitre.org/techniques/T1098/003/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.category:\"iam\" and event.action:\"ASSIGN_ROLE\"\n and google_workspace.event.type:\"DELEGATED_ADMIN_SETTINGS\" and google_workspace.admin.role.name : *_ADMIN_ROLE\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.role.name","type":"keyword"},{"ecs":false,"name":"google_workspace.event.type","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"68994a6c-c7ba-4e82-b476-26a26877adf6:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/689b9d57-e4d5-4357-ad17-9c334609d79a:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/689b9d57-e4d5-4357-ad17-9c334609d79a:100.0.0.json new file mode 100644 index 0000000000000..53ee84771ff9e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/689b9d57-e4d5-4357-ad17-9c334609d79a:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Scheduled Task Created by a Windows Script v100.0.0","rule_id":"689b9d57-e4d5-4357-ad17-9c334609d79a:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A scheduled task was created by a Windows script via cscript.exe, wscript.exe or powershell.exe. This can be abused by an adversary to establish persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\nDecode the base64 encoded Tasks Actions registry value to investigate the task's configured action.","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan = 30s\n [any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : \"taskschd.dll\" or file.name : \"taskschd.dll\") and\n process.name : (\"cscript.exe\", \"wscript.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\")]\n [registry where registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Schedule\\\\TaskCache\\\\Tasks\\\\*\\\\Actions\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"689b9d57-e4d5-4357-ad17-9c334609d79a:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/689b9d57-e4d5-4357-ad17-9c334609d79a:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/689b9d57-e4d5-4357-ad17-9c334609d79a:100.0.1.json new file mode 100644 index 0000000000000..093fd824fec7a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/689b9d57-e4d5-4357-ad17-9c334609d79a:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Scheduled Task Created by a Windows Script v100.0.1","rule_id":"689b9d57-e4d5-4357-ad17-9c334609d79a:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A scheduled task was created by a Windows script via cscript.exe, wscript.exe or powershell.exe. This can be abused by an adversary to establish persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\nDecode the base64 encoded Tasks Actions registry value to investigate the task's configured action.","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan = 30s\n [any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : \"taskschd.dll\" or file.name : \"taskschd.dll\") and\n process.name : (\"cscript.exe\", \"wscript.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\")]\n [registry where registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Schedule\\\\TaskCache\\\\Tasks\\\\*\\\\Actions\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"689b9d57-e4d5-4357-ad17-9c334609d79a:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/689b9d57-e4d5-4357-ad17-9c334609d79a:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/689b9d57-e4d5-4357-ad17-9c334609d79a:100.0.2.json new file mode 100644 index 0000000000000..3d44d1cfb6cd0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/689b9d57-e4d5-4357-ad17-9c334609d79a:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Scheduled Task Created by a Windows Script v100.0.2","rule_id":"689b9d57-e4d5-4357-ad17-9c334609d79a:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A scheduled task was created by a Windows script via cscript.exe, wscript.exe or powershell.exe. This can be abused by an adversary to establish persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\nDecode the base64 encoded Tasks Actions registry value to investigate the task's configured action.","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan = 30s\n [any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : \"taskschd.dll\" or file.name : \"taskschd.dll\") and\n process.name : (\"cscript.exe\", \"wscript.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\")]\n [registry where registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Schedule\\\\TaskCache\\\\Tasks\\\\*\\\\Actions\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"689b9d57-e4d5-4357-ad17-9c334609d79a:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/68a7a5a5-a2fc-4a76-ba9f-26849de881b4:103.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/68a7a5a5-a2fc-4a76-ba9f-26849de881b4:103.0.0.json new file mode 100644 index 0000000000000..e4ea9d99ffd58 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/68a7a5a5-a2fc-4a76-ba9f-26849de881b4:103.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS CloudWatch Log Group Deletion v103.0.0","rule_id":"68a7a5a5-a2fc-4a76-ba9f-26849de881b4:103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a specified AWS CloudWatch log group. When a log group is deleted, all the archived log events associated with the log group are also permanently deleted.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudWatch Log Group Deletion\n\nAmazon CloudWatch is a monitoring and observability service that collects monitoring and operational data in the form of\nlogs, metrics, and events for resources and applications. This data can be used to detect anomalous behavior in your environments, set alarms, visualize\nlogs and metrics side by side, take automated actions, troubleshoot issues, and discover insights to keep your\napplications running smoothly.\n\nA log group is a group of log streams that share the same retention, monitoring, and access control settings. You can\ndefine log groups and specify which streams to put into each group. There is no limit on the number of log streams that\ncan belong to one log group.\n\nThis rule looks for the deletion of a log group using the API `DeleteLogGroup` action. Attackers can do this to cover\ntheir tracks and impact security monitoring that relies on these sources.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Investigate the deleted log group's criticality and whether the responsible team is aware of the deletion.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Log group deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/logs/delete-log-group.html","https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteLogGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:logs.amazonaws.com and event.action:DeleteLogGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"68a7a5a5-a2fc-4a76-ba9f-26849de881b4:103.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/68a7a5a5-a2fc-4a76-ba9f-26849de881b4:103.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/68a7a5a5-a2fc-4a76-ba9f-26849de881b4:103.0.1.json new file mode 100644 index 0000000000000..1fbfd9abbdc3b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/68a7a5a5-a2fc-4a76-ba9f-26849de881b4:103.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS CloudWatch Log Group Deletion v103.0.1","rule_id":"68a7a5a5-a2fc-4a76-ba9f-26849de881b4:103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a specified AWS CloudWatch log group. When a log group is deleted, all the archived log events associated with the log group are also permanently deleted.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudWatch Log Group Deletion\n\nAmazon CloudWatch is a monitoring and observability service that collects monitoring and operational data in the form of\nlogs, metrics, and events for resources and applications. This data can be used to detect anomalous behavior in your environments, set alarms, visualize\nlogs and metrics side by side, take automated actions, troubleshoot issues, and discover insights to keep your\napplications running smoothly.\n\nA log group is a group of log streams that share the same retention, monitoring, and access control settings. You can\ndefine log groups and specify which streams to put into each group. There is no limit on the number of log streams that\ncan belong to one log group.\n\nThis rule looks for the deletion of a log group using the API `DeleteLogGroup` action. Attackers can do this to cover\ntheir tracks and impact security monitoring that relies on these sources.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Investigate the deleted log group's criticality and whether the responsible team is aware of the deletion.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Log group deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/logs/delete-log-group.html","https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteLogGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:logs.amazonaws.com and event.action:DeleteLogGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"68a7a5a5-a2fc-4a76-ba9f-26849de881b4:103.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/68a7a5a5-a2fc-4a76-ba9f-26849de881b4:103.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/68a7a5a5-a2fc-4a76-ba9f-26849de881b4:103.0.2.json new file mode 100644 index 0000000000000..af0c34d753b36 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/68a7a5a5-a2fc-4a76-ba9f-26849de881b4:103.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS CloudWatch Log Group Deletion v103.0.2","rule_id":"68a7a5a5-a2fc-4a76-ba9f-26849de881b4:103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a specified AWS CloudWatch log group. When a log group is deleted, all the archived log events associated with the log group are also permanently deleted.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudWatch Log Group Deletion\n\nAmazon CloudWatch is a monitoring and observability service that collects monitoring and operational data in the form of\nlogs, metrics, and events for resources and applications. This data can be used to detect anomalous behavior in your environments, set alarms, visualize\nlogs and metrics side by side, take automated actions, troubleshoot issues, and discover insights to keep your\napplications running smoothly.\n\nA log group is a group of log streams that share the same retention, monitoring, and access control settings. You can\ndefine log groups and specify which streams to put into each group. There is no limit on the number of log streams that\ncan belong to one log group.\n\nThis rule looks for the deletion of a log group using the API `DeleteLogGroup` action. Attackers can do this to cover\ntheir tracks and impact security monitoring that relies on these sources.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Investigate the deleted log group's criticality and whether the responsible team is aware of the deletion.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Log group deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/logs/delete-log-group.html","https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteLogGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:logs.amazonaws.com and event.action:DeleteLogGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"68a7a5a5-a2fc-4a76-ba9f-26849de881b4:103.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/68d56fdc-7ffa-4419-8e95-81641bd6f845:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/68d56fdc-7ffa-4419-8e95-81641bd6f845:101.0.0.json new file mode 100644 index 0000000000000..580ed98532397 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/68d56fdc-7ffa-4419-8e95-81641bd6f845:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"UAC Bypass via ICMLuaUtil Elevated COM Interface v101.0.0","rule_id":"68d56fdc-7ffa-4419-8e95-81641bd6f845:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies User Account Control (UAC) bypass attempts via the ICMLuaUtil Elevated COM interface. Attackers may attempt to bypass UAC to stealthily execute code with elevated permissions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name == \"dllhost.exe\" and\n process.parent.args in (\"/Processid:{3E5FC7F9-9A51-4367-9063-A120244FBEC7}\", \"/Processid:{D2E7041B-2927-42FB-8E9F-7CE93B6DC937}\") and\n process.pe.original_file_name != \"WerFault.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"68d56fdc-7ffa-4419-8e95-81641bd6f845:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/68d56fdc-7ffa-4419-8e95-81641bd6f845:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/68d56fdc-7ffa-4419-8e95-81641bd6f845:101.0.1.json new file mode 100644 index 0000000000000..4e022dbdf5e9c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/68d56fdc-7ffa-4419-8e95-81641bd6f845:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"UAC Bypass via ICMLuaUtil Elevated COM Interface v101.0.1","rule_id":"68d56fdc-7ffa-4419-8e95-81641bd6f845:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies User Account Control (UAC) bypass attempts via the ICMLuaUtil Elevated COM interface. Attackers may attempt to bypass UAC to stealthily execute code with elevated permissions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name == \"dllhost.exe\" and\n process.parent.args in (\"/Processid:{3E5FC7F9-9A51-4367-9063-A120244FBEC7}\", \"/Processid:{D2E7041B-2927-42FB-8E9F-7CE93B6DC937}\") and\n process.pe.original_file_name != \"WerFault.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"68d56fdc-7ffa-4419-8e95-81641bd6f845:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/68d56fdc-7ffa-4419-8e95-81641bd6f845:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/68d56fdc-7ffa-4419-8e95-81641bd6f845:101.0.2.json new file mode 100644 index 0000000000000..3f8fa16ad249d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/68d56fdc-7ffa-4419-8e95-81641bd6f845:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"UAC Bypass via ICMLuaUtil Elevated COM Interface v101.0.2","rule_id":"68d56fdc-7ffa-4419-8e95-81641bd6f845:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies User Account Control (UAC) bypass attempts via the ICMLuaUtil Elevated COM interface. Attackers may attempt to bypass UAC to stealthily execute code with elevated permissions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name == \"dllhost.exe\" and\n process.parent.args in (\"/Processid:{3E5FC7F9-9A51-4367-9063-A120244FBEC7}\", \"/Processid:{D2E7041B-2927-42FB-8E9F-7CE93B6DC937}\") and\n process.pe.original_file_name != \"WerFault.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"68d56fdc-7ffa-4419-8e95-81641bd6f845:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6951f15e-533c-4a60-8014-a3c3ab851a1b:1.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6951f15e-533c-4a60-8014-a3c3ab851a1b:1.0.0.json new file mode 100644 index 0000000000000..3f12a57390725 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6951f15e-533c-4a60-8014-a3c3ab851a1b:1.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS KMS Customer Managed Key Disabled or Scheduled for Deletion v1.0.0","rule_id":"6951f15e-533c-4a60-8014-a3c3ab851a1b:1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to disable or schedule the deletion of an AWS KMS Customer Managed Key (CMK). Deleting an AWS KMS key is destructive and potentially dangerous. It deletes the key material and all metadata associated with the KMS key and is irreversible. After a KMS key is deleted, the data that was encrypted under that KMS key can no longer be decrypted, which means that data becomes unrecoverable.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Xavier Pich"],"false_positives":["A KMS customer managed key may be disabled or scheduled for deletion by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Key deletions by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/cli/latest/reference/kms/disable-key.html","https://docs.aws.amazon.com/cli/latest/reference/kms/schedule-key-deletion.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:kms.amazonaws.com and event.action:(\"DisableKey\" or \"ScheduleKeyDeletion\") and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"6951f15e-533c-4a60-8014-a3c3ab851a1b:1.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6951f15e-533c-4a60-8014-a3c3ab851a1b:1.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6951f15e-533c-4a60-8014-a3c3ab851a1b:1.0.1.json new file mode 100644 index 0000000000000..7146f0a66cff9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6951f15e-533c-4a60-8014-a3c3ab851a1b:1.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS KMS Customer Managed Key Disabled or Scheduled for Deletion v1.0.1","rule_id":"6951f15e-533c-4a60-8014-a3c3ab851a1b:1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to disable or schedule the deletion of an AWS KMS Customer Managed Key (CMK). Deleting an AWS KMS key is destructive and potentially dangerous. It deletes the key material and all metadata associated with the KMS key and is irreversible. After a KMS key is deleted, the data that was encrypted under that KMS key can no longer be decrypted, which means that data becomes unrecoverable.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Xavier Pich"],"false_positives":["A KMS customer managed key may be disabled or scheduled for deletion by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Key deletions by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/cli/latest/reference/kms/disable-key.html","https://docs.aws.amazon.com/cli/latest/reference/kms/schedule-key-deletion.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:kms.amazonaws.com and event.action:(\"DisableKey\" or \"ScheduleKeyDeletion\") and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"6951f15e-533c-4a60-8014-a3c3ab851a1b:1.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6951f15e-533c-4a60-8014-a3c3ab851a1b:1.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6951f15e-533c-4a60-8014-a3c3ab851a1b:1.0.2.json new file mode 100644 index 0000000000000..7bd2173d7c23d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6951f15e-533c-4a60-8014-a3c3ab851a1b:1.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS KMS Customer Managed Key Disabled or Scheduled for Deletion v1.0.2","rule_id":"6951f15e-533c-4a60-8014-a3c3ab851a1b:1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to disable or schedule the deletion of an AWS KMS Customer Managed Key (CMK). Deleting an AWS KMS key is destructive and potentially dangerous. It deletes the key material and all metadata associated with the KMS key and is irreversible. After a KMS key is deleted, the data that was encrypted under that KMS key can no longer be decrypted, which means that data becomes unrecoverable.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Xavier Pich"],"false_positives":["A KMS customer managed key may be disabled or scheduled for deletion by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Key deletions by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/cli/latest/reference/kms/disable-key.html","https://docs.aws.amazon.com/cli/latest/reference/kms/schedule-key-deletion.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:kms.amazonaws.com and event.action:(\"DisableKey\" or \"ScheduleKeyDeletion\") and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"6951f15e-533c-4a60-8014-a3c3ab851a1b:1.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/699e9fdb-b77c-4c01-995c-1c15019b9c43:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/699e9fdb-b77c-4c01-995c-1c15019b9c43:102.0.0.json new file mode 100644 index 0000000000000..b66e7fd7beb80 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/699e9fdb-b77c-4c01-995c-1c15019b9c43:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Threat Intel Filebeat Module (v8.x) Indicator Match v102.0.0","rule_id":"699e9fdb-b77c-4c01-995c-1c15019b9c43:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule is triggered when indicators from the Threat Intel Filebeat module (v8.x) has a match against local file or network observations.","risk_score":99,"severity":"critical","license":"Elastic License v2","note":"## Triage and Analysis\n\n### Investigating Threat Intel Indicator Matches\n\nThreat Intel indicator match rules allow matching from a local observation such as an endpoint event that records a file\nhash with an entry of a file hash stored within the Threat Intel integrations. Matches can also occur on\nan IP address, registry path, URL, or imphash.\n\nThe matches will be based on the incoming last 30 days feed data so it's important to validate the data and review the results by\ninvestigating the associated activity to determine if it requires further investigation.\n\nIf an indicator matches a local observation, the following enriched fields will be generated to identify the indicator, field, and type matched.\n\n- `threat.indicator.matched.atomic` - this identifies the atomic indicator that matched the local observation\n- `threat.indicator.matched.field` - this identifies the indicator field that matched the local observation\n- `threat.indicator.matched.type` - this identifies the indicator type that matched the local observation\n\n#### Possible investigation steps:\n- Investigation should be validated and reviewed based on the data (file hash, registry path, URL, imphash) that was matched\nand by viewing the source of that activity.\n- Consider the history of the indicator that was matched. Has it happened before? Is it happening on multiple machines?\nThese kinds of questions can help understand if the activity is related to legitimate behavior.\n- Consider the user and their role within the company: is this something related to their job or work function?\n\n### False Positive Analysis\n- For any matches found, it's important to consider the initial release date of that indicator. Threat intelligence can\nbe a great tool for augmenting existing security processes, while at the same time it should be understood that threat\nintelligence can represent a specific set of activity observed at a point in time. For example, an IP address\nmay have hosted malware observed in a Dridex campaign months ago, but it's possible that IP has been remediated and\nno longer represents any threat.\n- Adversaries often use legitimate tools as network administrators such as `PsExec` or `AdFind`; these tools often find their\nway into indicator lists creating the potential for false positives.\n- It's possible after large and publicly written campaigns, curious employees might end up going directly to attacker infrastructure and triggering these rules.\n\n### Response and Remediation\n- If suspicious or malicious behavior is observed, take immediate action to isolate activity to prevent further\npost-compromise behavior.\n- One example of a response if a machine matched a command and control IP address would be to add an entry to a network\ndevice such as a firewall or proxy appliance to prevent any outbound activity from leaving that machine.\n- Another example of a response with a malicious file hash match would involve validating if the file was properly quarantined,\nreviewing current running processes for any abnormal activity, and investigating for any other follow-up actions such as persistence or lateral movement.\n","timeline_id":"495ad7a7-316e-4544-8a0f-9c098daee76e","timeline_title":"Generic Threat Match Timeline","author":["Elastic"],"from":"now-65m","interval":"1h","references":["https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-threatintel.html"],"tags":["Elastic","Windows","Elastic Endgame","Network","Continuous Monitoring","SecOps","Monitoring","Investigation Guide"],"query":"file.hash.*:* or file.pe.imphash:* or source.ip:* or destination.ip:* or url.full:* or registry.path:*\n","threat_index":["filebeat-8*"],"threat_mapping":[{"entries":[{"field":"file.hash.md5","type":"mapping","value":"threat.indicator.file.hash.md5"}]},{"entries":[{"field":"file.hash.sha1","type":"mapping","value":"threat.indicator.file.hash.sha1"}]},{"entries":[{"field":"file.hash.sha256","type":"mapping","value":"threat.indicator.file.hash.sha256"}]},{"entries":[{"field":"file.pe.imphash","type":"mapping","value":"threat.indicator.file.pe.imphash"}]},{"entries":[{"field":"source.ip","type":"mapping","value":"threat.indicator.ip"}]},{"entries":[{"field":"destination.ip","type":"mapping","value":"threat.indicator.ip"}]},{"entries":[{"field":"url.full","type":"mapping","value":"threat.indicator.url.full"}]},{"entries":[{"field":"registry.path","type":"mapping","value":"threat.indicator.registry.path"}]}],"threat_query":"@timestamp >= \"now-30d/d\" and event.module:threatintel and (threat.indicator.file.hash.*:* or threat.indicator.file.pe.imphash:* or threat.indicator.ip:* or threat.indicator.registry.path:* or threat.indicator.url.full:*)","type":"threat_match","index":["auditbeat-*","endgame-*","filebeat-*","logs-*","packetbeat-*","winlogbeat-*"],"threat_filters":[{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.module","negate":false,"params":{"query":"threatintel"},"type":"phrase"},"query":{"match_phrase":{"event.module":"threatintel"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.category","negate":false,"params":{"query":"threat"},"type":"phrase"},"query":{"match_phrase":{"event.category":"threat"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.kind","negate":false,"params":{"query":"enrichment"},"type":"phrase"},"query":{"match_phrase":{"event.kind":"enrichment"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.type","negate":false,"params":{"query":"indicator"},"type":"phrase"},"query":{"match_phrase":{"event.type":"indicator"}}}],"threat_indicator_path":"threat.indicator","threat_language":"kuery","language":"kuery","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":false,"name":"file.hash.*","type":"unknown"},{"ecs":true,"name":"file.pe.imphash","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"url.full","type":"wildcard"}]},"id":"699e9fdb-b77c-4c01-995c-1c15019b9c43:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/699e9fdb-b77c-4c01-995c-1c15019b9c43:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/699e9fdb-b77c-4c01-995c-1c15019b9c43:102.0.1.json new file mode 100644 index 0000000000000..da78a979bce60 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/699e9fdb-b77c-4c01-995c-1c15019b9c43:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Threat Intel Filebeat Module (v8.x) Indicator Match v102.0.1","rule_id":"699e9fdb-b77c-4c01-995c-1c15019b9c43:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule is triggered when indicators from the Threat Intel Filebeat module (v8.x) has a match against local file or network observations.","risk_score":99,"severity":"critical","license":"Elastic License v2","note":"## Triage and Analysis\n\n### Investigating Threat Intel Indicator Matches\n\nThreat Intel indicator match rules allow matching from a local observation such as an endpoint event that records a file\nhash with an entry of a file hash stored within the Threat Intel integrations. Matches can also occur on\nan IP address, registry path, URL, or imphash.\n\nThe matches will be based on the incoming last 30 days feed data so it's important to validate the data and review the results by\ninvestigating the associated activity to determine if it requires further investigation.\n\nIf an indicator matches a local observation, the following enriched fields will be generated to identify the indicator, field, and type matched.\n\n- `threat.indicator.matched.atomic` - this identifies the atomic indicator that matched the local observation\n- `threat.indicator.matched.field` - this identifies the indicator field that matched the local observation\n- `threat.indicator.matched.type` - this identifies the indicator type that matched the local observation\n\n#### Possible investigation steps:\n- Investigation should be validated and reviewed based on the data (file hash, registry path, URL, imphash) that was matched\nand by viewing the source of that activity.\n- Consider the history of the indicator that was matched. Has it happened before? Is it happening on multiple machines?\nThese kinds of questions can help understand if the activity is related to legitimate behavior.\n- Consider the user and their role within the company: is this something related to their job or work function?\n\n### False Positive Analysis\n- For any matches found, it's important to consider the initial release date of that indicator. Threat intelligence can\nbe a great tool for augmenting existing security processes, while at the same time it should be understood that threat\nintelligence can represent a specific set of activity observed at a point in time. For example, an IP address\nmay have hosted malware observed in a Dridex campaign months ago, but it's possible that IP has been remediated and\nno longer represents any threat.\n- Adversaries often use legitimate tools as network administrators such as `PsExec` or `AdFind`; these tools often find their\nway into indicator lists creating the potential for false positives.\n- It's possible after large and publicly written campaigns, curious employees might end up going directly to attacker infrastructure and triggering these rules.\n\n### Response and Remediation\n- If suspicious or malicious behavior is observed, take immediate action to isolate activity to prevent further\npost-compromise behavior.\n- One example of a response if a machine matched a command and control IP address would be to add an entry to a network\ndevice such as a firewall or proxy appliance to prevent any outbound activity from leaving that machine.\n- Another example of a response with a malicious file hash match would involve validating if the file was properly quarantined,\nreviewing current running processes for any abnormal activity, and investigating for any other follow-up actions such as persistence or lateral movement.\n","timeline_id":"495ad7a7-316e-4544-8a0f-9c098daee76e","timeline_title":"Generic Threat Match Timeline","author":["Elastic"],"from":"now-65m","interval":"1h","references":["https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-threatintel.html"],"tags":["Elastic","Windows","Elastic Endgame","Network","Continuous Monitoring","SecOps","Monitoring","Investigation Guide"],"query":"file.hash.*:* or file.pe.imphash:* or source.ip:* or destination.ip:* or url.full:* or registry.path:*\n","threat_index":["filebeat-8*"],"threat_mapping":[{"entries":[{"field":"file.hash.md5","type":"mapping","value":"threat.indicator.file.hash.md5"}]},{"entries":[{"field":"file.hash.sha1","type":"mapping","value":"threat.indicator.file.hash.sha1"}]},{"entries":[{"field":"file.hash.sha256","type":"mapping","value":"threat.indicator.file.hash.sha256"}]},{"entries":[{"field":"file.pe.imphash","type":"mapping","value":"threat.indicator.file.pe.imphash"}]},{"entries":[{"field":"source.ip","type":"mapping","value":"threat.indicator.ip"}]},{"entries":[{"field":"destination.ip","type":"mapping","value":"threat.indicator.ip"}]},{"entries":[{"field":"url.full","type":"mapping","value":"threat.indicator.url.full"}]},{"entries":[{"field":"registry.path","type":"mapping","value":"threat.indicator.registry.path"}]}],"threat_query":"@timestamp >= \"now-30d/d\" and event.module:threatintel and (threat.indicator.file.hash.*:* or threat.indicator.file.pe.imphash:* or threat.indicator.ip:* or threat.indicator.registry.path:* or threat.indicator.url.full:*)","type":"threat_match","index":["auditbeat-*","endgame-*","filebeat-*","logs-*","packetbeat-*","winlogbeat-*"],"threat_filters":[{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.module","negate":false,"params":{"query":"threatintel"},"type":"phrase"},"query":{"match_phrase":{"event.module":"threatintel"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.category","negate":false,"params":{"query":"threat"},"type":"phrase"},"query":{"match_phrase":{"event.category":"threat"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.kind","negate":false,"params":{"query":"enrichment"},"type":"phrase"},"query":{"match_phrase":{"event.kind":"enrichment"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.type","negate":false,"params":{"query":"indicator"},"type":"phrase"},"query":{"match_phrase":{"event.type":"indicator"}}}],"threat_indicator_path":"threat.indicator","threat_language":"kuery","language":"kuery","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":false,"name":"file.hash.*","type":"unknown"},{"ecs":true,"name":"file.pe.imphash","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"url.full","type":"wildcard"}]},"id":"699e9fdb-b77c-4c01-995c-1c15019b9c43:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/699e9fdb-b77c-4c01-995c-1c15019b9c43:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/699e9fdb-b77c-4c01-995c-1c15019b9c43:102.0.2.json new file mode 100644 index 0000000000000..252146561e4a0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/699e9fdb-b77c-4c01-995c-1c15019b9c43:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Threat Intel Filebeat Module (v8.x) Indicator Match v102.0.2","rule_id":"699e9fdb-b77c-4c01-995c-1c15019b9c43:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule is triggered when indicators from the Threat Intel Filebeat module (v8.x) has a match against local file or network observations.","risk_score":99,"severity":"critical","license":"Elastic License v2","note":"## Triage and Analysis\n\n### Investigating Threat Intel Indicator Matches\n\nThreat Intel indicator match rules allow matching from a local observation such as an endpoint event that records a file\nhash with an entry of a file hash stored within the Threat Intel integrations. Matches can also occur on\nan IP address, registry path, URL, or imphash.\n\nThe matches will be based on the incoming last 30 days feed data so it's important to validate the data and review the results by\ninvestigating the associated activity to determine if it requires further investigation.\n\nIf an indicator matches a local observation, the following enriched fields will be generated to identify the indicator, field, and type matched.\n\n- `threat.indicator.matched.atomic` - this identifies the atomic indicator that matched the local observation\n- `threat.indicator.matched.field` - this identifies the indicator field that matched the local observation\n- `threat.indicator.matched.type` - this identifies the indicator type that matched the local observation\n\n#### Possible investigation steps:\n- Investigation should be validated and reviewed based on the data (file hash, registry path, URL, imphash) that was matched\nand by viewing the source of that activity.\n- Consider the history of the indicator that was matched. Has it happened before? Is it happening on multiple machines?\nThese kinds of questions can help understand if the activity is related to legitimate behavior.\n- Consider the user and their role within the company: is this something related to their job or work function?\n\n### False Positive Analysis\n- For any matches found, it's important to consider the initial release date of that indicator. Threat intelligence can\nbe a great tool for augmenting existing security processes, while at the same time it should be understood that threat\nintelligence can represent a specific set of activity observed at a point in time. For example, an IP address\nmay have hosted malware observed in a Dridex campaign months ago, but it's possible that IP has been remediated and\nno longer represents any threat.\n- Adversaries often use legitimate tools as network administrators such as `PsExec` or `AdFind`; these tools often find their\nway into indicator lists creating the potential for false positives.\n- It's possible after large and publicly written campaigns, curious employees might end up going directly to attacker infrastructure and triggering these rules.\n\n### Response and Remediation\n- If suspicious or malicious behavior is observed, take immediate action to isolate activity to prevent further\npost-compromise behavior.\n- One example of a response if a machine matched a command and control IP address would be to add an entry to a network\ndevice such as a firewall or proxy appliance to prevent any outbound activity from leaving that machine.\n- Another example of a response with a malicious file hash match would involve validating if the file was properly quarantined,\nreviewing current running processes for any abnormal activity, and investigating for any other follow-up actions such as persistence or lateral movement.\n","timeline_id":"495ad7a7-316e-4544-8a0f-9c098daee76e","timeline_title":"Generic Threat Match Timeline","author":["Elastic"],"from":"now-65m","interval":"1h","references":["https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-threatintel.html"],"tags":["Elastic","Windows","Elastic Endgame","Network","Continuous Monitoring","SecOps","Monitoring","Investigation Guide"],"query":"file.hash.*:* or file.pe.imphash:* or source.ip:* or destination.ip:* or url.full:* or registry.path:*\n","threat_index":["filebeat-8*"],"threat_mapping":[{"entries":[{"field":"file.hash.md5","type":"mapping","value":"threat.indicator.file.hash.md5"}]},{"entries":[{"field":"file.hash.sha1","type":"mapping","value":"threat.indicator.file.hash.sha1"}]},{"entries":[{"field":"file.hash.sha256","type":"mapping","value":"threat.indicator.file.hash.sha256"}]},{"entries":[{"field":"file.pe.imphash","type":"mapping","value":"threat.indicator.file.pe.imphash"}]},{"entries":[{"field":"source.ip","type":"mapping","value":"threat.indicator.ip"}]},{"entries":[{"field":"destination.ip","type":"mapping","value":"threat.indicator.ip"}]},{"entries":[{"field":"url.full","type":"mapping","value":"threat.indicator.url.full"}]},{"entries":[{"field":"registry.path","type":"mapping","value":"threat.indicator.registry.path"}]}],"threat_query":"@timestamp >= \"now-30d/d\" and event.module:threatintel and (threat.indicator.file.hash.*:* or threat.indicator.file.pe.imphash:* or threat.indicator.ip:* or threat.indicator.registry.path:* or threat.indicator.url.full:*)","type":"threat_match","index":["auditbeat-*","endgame-*","filebeat-*","logs-*","packetbeat-*","winlogbeat-*"],"threat_filters":[{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.module","negate":false,"params":{"query":"threatintel"},"type":"phrase"},"query":{"match_phrase":{"event.module":"threatintel"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.category","negate":false,"params":{"query":"threat"},"type":"phrase"},"query":{"match_phrase":{"event.category":"threat"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.kind","negate":false,"params":{"query":"enrichment"},"type":"phrase"},"query":{"match_phrase":{"event.kind":"enrichment"}}},{"$state":{"store":"appState"},"meta":{"disabled":false,"key":"event.type","negate":false,"params":{"query":"indicator"},"type":"phrase"},"query":{"match_phrase":{"event.type":"indicator"}}}],"threat_indicator_path":"threat.indicator","threat_language":"kuery","language":"kuery","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":false,"name":"file.hash.*","type":"unknown"},{"ecs":true,"name":"file.pe.imphash","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"url.full","type":"wildcard"}]},"id":"699e9fdb-b77c-4c01-995c-1c15019b9c43:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/69c251fb-a5d6-4035-b5ec-40438bd829ff:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/69c251fb-a5d6-4035-b5ec-40438bd829ff:102.0.0.json new file mode 100644 index 0000000000000..51af53ff95e31 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/69c251fb-a5d6-4035-b5ec-40438bd829ff:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Modification of Boot Configuration v102.0.0","rule_id":"69c251fb-a5d6-4035-b5ec-40438bd829ff:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of bcdedit.exe to delete boot configuration data. This tactic is sometimes used as by malware or an attacker as a destructive technique.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Modification of Boot Configuration\n\nBoot entry parameters, or boot parameters, are optional, system-specific settings that represent configuration options.\nThese are stored in a boot configuration data (BCD) store, and administrators can use utilities like `bcdedit.exe` to\nconfigure these.\n\nThis rule identifies the usage of `bcdedit.exe` to:\n\n- Disable Windows Error Recovery (recoveryenabled).\n- Ignore errors if there is a failed boot, failed shutdown, or failed checkpoint (bootstatuspolicy ignoreallfailures).\n\nThese are common steps in destructive attacks by adversaries leveraging ransomware.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Check if any files on the host machine have been encrypted.\n\n### False positive analysis\n\n- The usage of these options is not inherently malicious. Administrators can modify these configurations to force a\nmachine to boot for troubleshooting or data recovery purposes.\n\n### Related rules\n\n- Deleting Backup Catalogs with Wbadmin - 581add16-df76-42bb-af8e-c979bfb39a59\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If any other destructive action was identified on the host, it is recommended to prioritize the investigation and look\nfor ransomware preparation and execution activities.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"bcdedit.exe\" or process.pe.original_file_name == \"bcdedit.exe\") and\n (\n (process.args : \"/set\" and process.args : \"bootstatuspolicy\" and process.args : \"ignoreallfailures\") or\n (process.args : \"no\" and process.args : \"recoveryenabled\")\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"69c251fb-a5d6-4035-b5ec-40438bd829ff:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/69c251fb-a5d6-4035-b5ec-40438bd829ff:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/69c251fb-a5d6-4035-b5ec-40438bd829ff:102.0.1.json new file mode 100644 index 0000000000000..f3d04c0db7d0c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/69c251fb-a5d6-4035-b5ec-40438bd829ff:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Modification of Boot Configuration v102.0.1","rule_id":"69c251fb-a5d6-4035-b5ec-40438bd829ff:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of bcdedit.exe to delete boot configuration data. This tactic is sometimes used as by malware or an attacker as a destructive technique.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Modification of Boot Configuration\n\nBoot entry parameters, or boot parameters, are optional, system-specific settings that represent configuration options.\nThese are stored in a boot configuration data (BCD) store, and administrators can use utilities like `bcdedit.exe` to\nconfigure these.\n\nThis rule identifies the usage of `bcdedit.exe` to:\n\n- Disable Windows Error Recovery (recoveryenabled).\n- Ignore errors if there is a failed boot, failed shutdown, or failed checkpoint (bootstatuspolicy ignoreallfailures).\n\nThese are common steps in destructive attacks by adversaries leveraging ransomware.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Check if any files on the host machine have been encrypted.\n\n### False positive analysis\n\n- The usage of these options is not inherently malicious. Administrators can modify these configurations to force a\nmachine to boot for troubleshooting or data recovery purposes.\n\n### Related rules\n\n- Deleting Backup Catalogs with Wbadmin - 581add16-df76-42bb-af8e-c979bfb39a59\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If any other destructive action was identified on the host, it is recommended to prioritize the investigation and look\nfor ransomware preparation and execution activities.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"bcdedit.exe\" or process.pe.original_file_name == \"bcdedit.exe\") and\n (\n (process.args : \"/set\" and process.args : \"bootstatuspolicy\" and process.args : \"ignoreallfailures\") or\n (process.args : \"no\" and process.args : \"recoveryenabled\")\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"69c251fb-a5d6-4035-b5ec-40438bd829ff:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/69c251fb-a5d6-4035-b5ec-40438bd829ff:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/69c251fb-a5d6-4035-b5ec-40438bd829ff:102.0.2.json new file mode 100644 index 0000000000000..a153fdb0f693b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/69c251fb-a5d6-4035-b5ec-40438bd829ff:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Modification of Boot Configuration v102.0.2","rule_id":"69c251fb-a5d6-4035-b5ec-40438bd829ff:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of bcdedit.exe to delete boot configuration data. This tactic is sometimes used as by malware or an attacker as a destructive technique.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Modification of Boot Configuration\n\nBoot entry parameters, or boot parameters, are optional, system-specific settings that represent configuration options.\nThese are stored in a boot configuration data (BCD) store, and administrators can use utilities like `bcdedit.exe` to\nconfigure these.\n\nThis rule identifies the usage of `bcdedit.exe` to:\n\n- Disable Windows Error Recovery (recoveryenabled).\n- Ignore errors if there is a failed boot, failed shutdown, or failed checkpoint (bootstatuspolicy ignoreallfailures).\n\nThese are common steps in destructive attacks by adversaries leveraging ransomware.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Check if any files on the host machine have been encrypted.\n\n### False positive analysis\n\n- The usage of these options is not inherently malicious. Administrators can modify these configurations to force a\nmachine to boot for troubleshooting or data recovery purposes.\n\n### Related rules\n\n- Deleting Backup Catalogs with Wbadmin - 581add16-df76-42bb-af8e-c979bfb39a59\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If any other destructive action was identified on the host, it is recommended to prioritize the investigation and look\nfor ransomware preparation and execution activities.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"bcdedit.exe\" or process.pe.original_file_name == \"bcdedit.exe\") and\n (\n (process.args : \"/set\" and process.args : \"bootstatuspolicy\" and process.args : \"ignoreallfailures\") or\n (process.args : \"no\" and process.args : \"recoveryenabled\")\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"69c251fb-a5d6-4035-b5ec-40438bd829ff:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/69c420e8-6c9e-4d28-86c0-8a2be2d1e78c:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/69c420e8-6c9e-4d28-86c0-8a2be2d1e78c:101.0.0.json new file mode 100644 index 0000000000000..def1be2e65bf5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/69c420e8-6c9e-4d28-86c0-8a2be2d1e78c:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS IAM Password Recovery Requested v101.0.0","rule_id":"69c420e8-6c9e-4d28-86c0-8a2be2d1e78c:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies AWS IAM password recovery requests. An adversary may attempt to gain unauthorized AWS access by abusing password recovery mechanisms.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be requesting changes in your environment. Password reset attempts from unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://www.cadosecurity.com/an-ongoing-aws-phishing-campaign/"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:signin.amazonaws.com and event.action:PasswordRecoveryRequested and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"69c420e8-6c9e-4d28-86c0-8a2be2d1e78c:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/69c420e8-6c9e-4d28-86c0-8a2be2d1e78c:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/69c420e8-6c9e-4d28-86c0-8a2be2d1e78c:101.0.1.json new file mode 100644 index 0000000000000..f489a65a271a3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/69c420e8-6c9e-4d28-86c0-8a2be2d1e78c:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS IAM Password Recovery Requested v101.0.1","rule_id":"69c420e8-6c9e-4d28-86c0-8a2be2d1e78c:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies AWS IAM password recovery requests. An adversary may attempt to gain unauthorized AWS access by abusing password recovery mechanisms.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be requesting changes in your environment. Password reset attempts from unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://www.cadosecurity.com/an-ongoing-aws-phishing-campaign/"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:signin.amazonaws.com and event.action:PasswordRecoveryRequested and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"69c420e8-6c9e-4d28-86c0-8a2be2d1e78c:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/69c420e8-6c9e-4d28-86c0-8a2be2d1e78c:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/69c420e8-6c9e-4d28-86c0-8a2be2d1e78c:101.0.2.json new file mode 100644 index 0000000000000..f72b3fbc59192 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/69c420e8-6c9e-4d28-86c0-8a2be2d1e78c:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS IAM Password Recovery Requested v101.0.2","rule_id":"69c420e8-6c9e-4d28-86c0-8a2be2d1e78c:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies AWS IAM password recovery requests. An adversary may attempt to gain unauthorized AWS access by abusing password recovery mechanisms.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be requesting changes in your environment. Password reset attempts from unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://www.cadosecurity.com/an-ongoing-aws-phishing-campaign/"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:signin.amazonaws.com and event.action:PasswordRecoveryRequested and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"69c420e8-6c9e-4d28-86c0-8a2be2d1e78c:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6a8ab9cc-4023-4d17-b5df-1a3e16882ce7:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6a8ab9cc-4023-4d17-b5df-1a3e16882ce7:101.0.0.json new file mode 100644 index 0000000000000..1afb99d0501d4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6a8ab9cc-4023-4d17-b5df-1a3e16882ce7:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Service Host Child Process - Childless Service v101.0.0","rule_id":"6a8ab9cc-4023-4d17-b5df-1a3e16882ce7:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual child processes of Service Host (svchost.exe) that traditionally do not spawn any child processes. This may indicate a code injection or an equivalent form of exploitation.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Changes to Windows services or a rarely executed child process."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/","subtechnique":[{"id":"T1055.012","name":"Process Hollowing","reference":"https://attack.mitre.org/techniques/T1055/012/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"svchost.exe\" and\n\n /* based on svchost service arguments -s svcname where the service is known to be childless */\n\n process.parent.args : (\"WdiSystemHost\",\"LicenseManager\",\n \"StorSvc\",\"CDPSvc\",\"cdbhsvc\",\"BthAvctpSvc\",\"SstpSvc\",\"WdiServiceHost\",\n \"imgsvc\",\"TrkWks\",\"WpnService\",\"IKEEXT\",\"PolicyAgent\",\"CryptSvc\",\n \"netprofm\",\"ProfSvc\",\"StateRepository\",\"camsvc\",\"LanmanWorkstation\",\n \"NlaSvc\",\"EventLog\",\"hidserv\",\"DisplayEnhancementService\",\"ShellHWDetection\",\n \"AppHostSvc\",\"fhsvc\",\"CscService\",\"PushToInstall\") and\n\n /* unknown FPs can be added here */\n\n not process.name : (\"WerFault.exe\",\"WerFaultSecure.exe\",\"wermgr.exe\") and\n not (process.executable : \"?:\\\\Windows\\\\System32\\\\RelPost.exe\" and process.parent.args : \"WdiSystemHost\") and\n not (process.name : \"rundll32.exe\" and\n process.args : \"?:\\\\WINDOWS\\\\System32\\\\winethc.dll,ForceProxyDetectionOnNextRun\" and process.parent.args : \"WdiServiceHost\") and\n not (process.executable : (\"?:\\\\Program Files\\\\*\", \"?:\\\\Program Files (x86)\\\\*\", \"?:\\\\Windows\\\\System32\\\\Kodak\\\\kds_i4x50\\\\lib\\\\lexexe.exe\") and\n process.parent.args : \"imgsvc\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"6a8ab9cc-4023-4d17-b5df-1a3e16882ce7:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6a8ab9cc-4023-4d17-b5df-1a3e16882ce7:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6a8ab9cc-4023-4d17-b5df-1a3e16882ce7:101.0.1.json new file mode 100644 index 0000000000000..80b223159ae29 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6a8ab9cc-4023-4d17-b5df-1a3e16882ce7:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Service Host Child Process - Childless Service v101.0.1","rule_id":"6a8ab9cc-4023-4d17-b5df-1a3e16882ce7:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual child processes of Service Host (svchost.exe) that traditionally do not spawn any child processes. This may indicate a code injection or an equivalent form of exploitation.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Changes to Windows services or a rarely executed child process."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/","subtechnique":[{"id":"T1055.012","name":"Process Hollowing","reference":"https://attack.mitre.org/techniques/T1055/012/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"svchost.exe\" and\n\n /* based on svchost service arguments -s svcname where the service is known to be childless */\n\n process.parent.args : (\"WdiSystemHost\",\"LicenseManager\",\n \"StorSvc\",\"CDPSvc\",\"cdbhsvc\",\"BthAvctpSvc\",\"SstpSvc\",\"WdiServiceHost\",\n \"imgsvc\",\"TrkWks\",\"WpnService\",\"IKEEXT\",\"PolicyAgent\",\"CryptSvc\",\n \"netprofm\",\"ProfSvc\",\"StateRepository\",\"camsvc\",\"LanmanWorkstation\",\n \"NlaSvc\",\"EventLog\",\"hidserv\",\"DisplayEnhancementService\",\"ShellHWDetection\",\n \"AppHostSvc\",\"fhsvc\",\"CscService\",\"PushToInstall\") and\n\n /* unknown FPs can be added here */\n\n not process.name : (\"WerFault.exe\",\"WerFaultSecure.exe\",\"wermgr.exe\") and\n not (process.executable : \"?:\\\\Windows\\\\System32\\\\RelPost.exe\" and process.parent.args : \"WdiSystemHost\") and\n not (process.name : \"rundll32.exe\" and\n process.args : \"?:\\\\WINDOWS\\\\System32\\\\winethc.dll,ForceProxyDetectionOnNextRun\" and process.parent.args : \"WdiServiceHost\") and\n not (process.executable : (\"?:\\\\Program Files\\\\*\", \"?:\\\\Program Files (x86)\\\\*\", \"?:\\\\Windows\\\\System32\\\\Kodak\\\\kds_i4x50\\\\lib\\\\lexexe.exe\") and\n process.parent.args : \"imgsvc\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"6a8ab9cc-4023-4d17-b5df-1a3e16882ce7:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6a8ab9cc-4023-4d17-b5df-1a3e16882ce7:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6a8ab9cc-4023-4d17-b5df-1a3e16882ce7:101.0.2.json new file mode 100644 index 0000000000000..f69f45894d171 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6a8ab9cc-4023-4d17-b5df-1a3e16882ce7:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Service Host Child Process - Childless Service v101.0.2","rule_id":"6a8ab9cc-4023-4d17-b5df-1a3e16882ce7:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual child processes of Service Host (svchost.exe) that traditionally do not spawn any child processes. This may indicate a code injection or an equivalent form of exploitation.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Changes to Windows services or a rarely executed child process."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/","subtechnique":[{"id":"T1055.012","name":"Process Hollowing","reference":"https://attack.mitre.org/techniques/T1055/012/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"svchost.exe\" and\n\n /* based on svchost service arguments -s svcname where the service is known to be childless */\n\n process.parent.args : (\"WdiSystemHost\",\"LicenseManager\",\n \"StorSvc\",\"CDPSvc\",\"cdbhsvc\",\"BthAvctpSvc\",\"SstpSvc\",\"WdiServiceHost\",\n \"imgsvc\",\"TrkWks\",\"WpnService\",\"IKEEXT\",\"PolicyAgent\",\"CryptSvc\",\n \"netprofm\",\"ProfSvc\",\"StateRepository\",\"camsvc\",\"LanmanWorkstation\",\n \"NlaSvc\",\"EventLog\",\"hidserv\",\"DisplayEnhancementService\",\"ShellHWDetection\",\n \"AppHostSvc\",\"fhsvc\",\"CscService\",\"PushToInstall\") and\n\n /* unknown FPs can be added here */\n\n not process.name : (\"WerFault.exe\",\"WerFaultSecure.exe\",\"wermgr.exe\") and\n not (process.executable : \"?:\\\\Windows\\\\System32\\\\RelPost.exe\" and process.parent.args : \"WdiSystemHost\") and\n not (process.name : \"rundll32.exe\" and\n process.args : \"?:\\\\WINDOWS\\\\System32\\\\winethc.dll,ForceProxyDetectionOnNextRun\" and process.parent.args : \"WdiServiceHost\") and\n not (process.executable : (\"?:\\\\Program Files\\\\*\", \"?:\\\\Program Files (x86)\\\\*\", \"?:\\\\Windows\\\\System32\\\\Kodak\\\\kds_i4x50\\\\lib\\\\lexexe.exe\") and\n process.parent.args : \"imgsvc\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"6a8ab9cc-4023-4d17-b5df-1a3e16882ce7:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6aace640-e631-4870-ba8e-5fdda09325db:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6aace640-e631-4870-ba8e-5fdda09325db:102.0.0.json new file mode 100644 index 0000000000000..4f6b3486360e0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6aace640-e631-4870-ba8e-5fdda09325db:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Exporting Exchange Mailbox via PowerShell v102.0.0","rule_id":"6aace640-e631-4870-ba8e-5fdda09325db:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the Exchange PowerShell cmdlet, New-MailBoxExportRequest, to export the contents of a primary mailbox or archive to a .pst file. Adversaries may target user email to collect sensitive information.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Exporting Exchange Mailbox via PowerShell\n\nThe `New-MailBoxExportRequest` cmdlet is used to begin the process of exporting contents of a primary mailbox or archive\nto a .pst file. Note that this is done on a per-mailbox basis and this cmdlet is available only in on-premises Exchange.\n\nAttackers can abuse this functionality in preparation for exfiltrating contents, which is likely to contain sensitive\nand strategic data.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate the export operation:\n - Identify the user account that performed the action and whether it should perform this kind of action.\n - Contact the account owner and confirm whether they are aware of this activity.\n - Check if this operation was approved and performed according to the organization's change management policy.\n - Retrieve the operation status and use the `Get-MailboxExportRequest` cmdlet to review previous requests.\n - By default, no group in Exchange has the privilege to import or export mailboxes. Investigate administrators that\n assigned the \"Mailbox Import Export\" privilege for abnormal activity.\n- Investigate if there is a significant quantity of export requests in the alert timeframe. This operation is done on\na per-mailbox basis and can be part of a mass export.\n- If the operation was completed successfully:\n - Check if the file is on the path specified in the command.\n - Investigate if the file was compressed, archived, or retrieved by the attacker for exfiltration.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity\nand it is done with proper approval.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the involved host is not the Exchange server, isolate the host to prevent further post-compromise behavior.\n- Use the `Remove-MailboxExportRequest` cmdlet to remove fully or partially completed export requests.\n- Prioritize cases that involve personally identifiable information (PII) or other classified data.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Review the privileges of users with the \"Mailbox Import Export\" privilege to ensure that the least privilege principle\nis being followed.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate exchange system administration activity."],"from":"now-9m","references":["https://www.volexity.com/blog/2020/12/14/dark-halo-leverages-solarwinds-compromise-to-breach-organizations/","https://docs.microsoft.com/en-us/powershell/module/exchange/new-mailboxexportrequest?view=exchange-ps"],"tags":["Elastic","Host","Windows","Threat Detection","Collection","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1005","name":"Data from Local System","reference":"https://attack.mitre.org/techniques/T1005/"},{"id":"T1114","name":"Email Collection","reference":"https://attack.mitre.org/techniques/T1114/","subtechnique":[{"id":"T1114.002","name":"Remote Email Collection","reference":"https://attack.mitre.org/techniques/T1114/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name: (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and process.args : \"New-MailboxExportRequest*\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"6aace640-e631-4870-ba8e-5fdda09325db:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6aace640-e631-4870-ba8e-5fdda09325db:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6aace640-e631-4870-ba8e-5fdda09325db:102.0.1.json new file mode 100644 index 0000000000000..202979e0ceb8d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6aace640-e631-4870-ba8e-5fdda09325db:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Exporting Exchange Mailbox via PowerShell v102.0.1","rule_id":"6aace640-e631-4870-ba8e-5fdda09325db:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the Exchange PowerShell cmdlet, New-MailBoxExportRequest, to export the contents of a primary mailbox or archive to a .pst file. Adversaries may target user email to collect sensitive information.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Exporting Exchange Mailbox via PowerShell\n\nThe `New-MailBoxExportRequest` cmdlet is used to begin the process of exporting contents of a primary mailbox or archive\nto a .pst file. Note that this is done on a per-mailbox basis and this cmdlet is available only in on-premises Exchange.\n\nAttackers can abuse this functionality in preparation for exfiltrating contents, which is likely to contain sensitive\nand strategic data.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate the export operation:\n - Identify the user account that performed the action and whether it should perform this kind of action.\n - Contact the account owner and confirm whether they are aware of this activity.\n - Check if this operation was approved and performed according to the organization's change management policy.\n - Retrieve the operation status and use the `Get-MailboxExportRequest` cmdlet to review previous requests.\n - By default, no group in Exchange has the privilege to import or export mailboxes. Investigate administrators that\n assigned the \"Mailbox Import Export\" privilege for abnormal activity.\n- Investigate if there is a significant quantity of export requests in the alert timeframe. This operation is done on\na per-mailbox basis and can be part of a mass export.\n- If the operation was completed successfully:\n - Check if the file is on the path specified in the command.\n - Investigate if the file was compressed, archived, or retrieved by the attacker for exfiltration.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity\nand it is done with proper approval.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the involved host is not the Exchange server, isolate the host to prevent further post-compromise behavior.\n- Use the `Remove-MailboxExportRequest` cmdlet to remove fully or partially completed export requests.\n- Prioritize cases that involve personally identifiable information (PII) or other classified data.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Review the privileges of users with the \"Mailbox Import Export\" privilege to ensure that the least privilege principle\nis being followed.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate exchange system administration activity."],"from":"now-9m","references":["https://www.volexity.com/blog/2020/12/14/dark-halo-leverages-solarwinds-compromise-to-breach-organizations/","https://docs.microsoft.com/en-us/powershell/module/exchange/new-mailboxexportrequest?view=exchange-ps"],"tags":["Elastic","Host","Windows","Threat Detection","Collection","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1005","name":"Data from Local System","reference":"https://attack.mitre.org/techniques/T1005/"},{"id":"T1114","name":"Email Collection","reference":"https://attack.mitre.org/techniques/T1114/","subtechnique":[{"id":"T1114.002","name":"Remote Email Collection","reference":"https://attack.mitre.org/techniques/T1114/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name: (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and process.args : \"New-MailboxExportRequest*\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"6aace640-e631-4870-ba8e-5fdda09325db:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6aace640-e631-4870-ba8e-5fdda09325db:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6aace640-e631-4870-ba8e-5fdda09325db:102.0.2.json new file mode 100644 index 0000000000000..b74bec4f3910c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6aace640-e631-4870-ba8e-5fdda09325db:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Exporting Exchange Mailbox via PowerShell v102.0.2","rule_id":"6aace640-e631-4870-ba8e-5fdda09325db:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the Exchange PowerShell cmdlet, New-MailBoxExportRequest, to export the contents of a primary mailbox or archive to a .pst file. Adversaries may target user email to collect sensitive information.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Exporting Exchange Mailbox via PowerShell\n\nThe `New-MailBoxExportRequest` cmdlet is used to begin the process of exporting contents of a primary mailbox or archive\nto a .pst file. Note that this is done on a per-mailbox basis and this cmdlet is available only in on-premises Exchange.\n\nAttackers can abuse this functionality in preparation for exfiltrating contents, which is likely to contain sensitive\nand strategic data.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate the export operation:\n - Identify the user account that performed the action and whether it should perform this kind of action.\n - Contact the account owner and confirm whether they are aware of this activity.\n - Check if this operation was approved and performed according to the organization's change management policy.\n - Retrieve the operation status and use the `Get-MailboxExportRequest` cmdlet to review previous requests.\n - By default, no group in Exchange has the privilege to import or export mailboxes. Investigate administrators that\n assigned the \"Mailbox Import Export\" privilege for abnormal activity.\n- Investigate if there is a significant quantity of export requests in the alert timeframe. This operation is done on\na per-mailbox basis and can be part of a mass export.\n- If the operation was completed successfully:\n - Check if the file is on the path specified in the command.\n - Investigate if the file was compressed, archived, or retrieved by the attacker for exfiltration.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity\nand it is done with proper approval.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the involved host is not the Exchange server, isolate the host to prevent further post-compromise behavior.\n- Use the `Remove-MailboxExportRequest` cmdlet to remove fully or partially completed export requests.\n- Prioritize cases that involve personally identifiable information (PII) or other classified data.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Review the privileges of users with the \"Mailbox Import Export\" privilege to ensure that the least privilege principle\nis being followed.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate exchange system administration activity."],"from":"now-9m","references":["https://www.volexity.com/blog/2020/12/14/dark-halo-leverages-solarwinds-compromise-to-breach-organizations/","https://docs.microsoft.com/en-us/powershell/module/exchange/new-mailboxexportrequest?view=exchange-ps"],"tags":["Elastic","Host","Windows","Threat Detection","Collection","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1005","name":"Data from Local System","reference":"https://attack.mitre.org/techniques/T1005/"},{"id":"T1114","name":"Email Collection","reference":"https://attack.mitre.org/techniques/T1114/","subtechnique":[{"id":"T1114.002","name":"Remote Email Collection","reference":"https://attack.mitre.org/techniques/T1114/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name: (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and process.args : \"New-MailboxExportRequest*\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"6aace640-e631-4870-ba8e-5fdda09325db:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6b84d470-9036-4cc0-a27c-6d90bbfe81ab:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6b84d470-9036-4cc0-a27c-6d90bbfe81ab:100.0.0.json new file mode 100644 index 0000000000000..065f25b5e3ee0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6b84d470-9036-4cc0-a27c-6d90bbfe81ab:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Sensitive Files Compression v100.0.0","rule_id":"6b84d470-9036-4cc0-a27c-6d90bbfe81ab:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of a compression utility to collect known files containing sensitive information, such as credentials and system configurations.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.trendmicro.com/en_ca/research/20/l/teamtnt-now-deploying-ddos-capable-irc-bot-tntbotinger.html"],"tags":["Elastic","Host","Linux","Threat Detection","Collection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.001","name":"Credentials In Files","reference":"https://attack.mitre.org/techniques/T1552/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1560","name":"Archive Collected Data","reference":"https://attack.mitre.org/techniques/T1560/","subtechnique":[{"id":"T1560.001","name":"Archive via Utility","reference":"https://attack.mitre.org/techniques/T1560/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and\n process.name:(zip or tar or gzip or hdiutil or 7z) and\n process.args:\n (\n /root/.ssh/id_rsa or\n /root/.ssh/id_rsa.pub or\n /root/.ssh/id_ed25519 or\n /root/.ssh/id_ed25519.pub or\n /root/.ssh/authorized_keys or\n /root/.ssh/authorized_keys2 or\n /root/.ssh/known_hosts or\n /root/.bash_history or\n /etc/hosts or\n /home/*/.ssh/id_rsa or\n /home/*/.ssh/id_rsa.pub or\n /home/*/.ssh/id_ed25519 or\n /home/*/.ssh/id_ed25519.pub or\n /home/*/.ssh/authorized_keys or\n /home/*/.ssh/authorized_keys2 or\n /home/*/.ssh/known_hosts or\n /home/*/.bash_history or\n /root/.aws/credentials or\n /root/.aws/config or\n /home/*/.aws/credentials or\n /home/*/.aws/config or\n /root/.docker/config.json or\n /home/*/.docker/config.json or\n /etc/group or\n /etc/passwd or\n /etc/shadow or\n /etc/gshadow\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"6b84d470-9036-4cc0-a27c-6d90bbfe81ab:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6b84d470-9036-4cc0-a27c-6d90bbfe81ab:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6b84d470-9036-4cc0-a27c-6d90bbfe81ab:100.0.1.json new file mode 100644 index 0000000000000..645cb01f42ec3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6b84d470-9036-4cc0-a27c-6d90bbfe81ab:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Sensitive Files Compression v100.0.1","rule_id":"6b84d470-9036-4cc0-a27c-6d90bbfe81ab:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of a compression utility to collect known files containing sensitive information, such as credentials and system configurations.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.trendmicro.com/en_ca/research/20/l/teamtnt-now-deploying-ddos-capable-irc-bot-tntbotinger.html"],"tags":["Elastic","Host","Linux","Threat Detection","Collection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.001","name":"Credentials In Files","reference":"https://attack.mitre.org/techniques/T1552/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1560","name":"Archive Collected Data","reference":"https://attack.mitre.org/techniques/T1560/","subtechnique":[{"id":"T1560.001","name":"Archive via Utility","reference":"https://attack.mitre.org/techniques/T1560/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and\n process.name:(zip or tar or gzip or hdiutil or 7z) and\n process.args:\n (\n /root/.ssh/id_rsa or\n /root/.ssh/id_rsa.pub or\n /root/.ssh/id_ed25519 or\n /root/.ssh/id_ed25519.pub or\n /root/.ssh/authorized_keys or\n /root/.ssh/authorized_keys2 or\n /root/.ssh/known_hosts or\n /root/.bash_history or\n /etc/hosts or\n /home/*/.ssh/id_rsa or\n /home/*/.ssh/id_rsa.pub or\n /home/*/.ssh/id_ed25519 or\n /home/*/.ssh/id_ed25519.pub or\n /home/*/.ssh/authorized_keys or\n /home/*/.ssh/authorized_keys2 or\n /home/*/.ssh/known_hosts or\n /home/*/.bash_history or\n /root/.aws/credentials or\n /root/.aws/config or\n /home/*/.aws/credentials or\n /home/*/.aws/config or\n /root/.docker/config.json or\n /home/*/.docker/config.json or\n /etc/group or\n /etc/passwd or\n /etc/shadow or\n /etc/gshadow\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"6b84d470-9036-4cc0-a27c-6d90bbfe81ab:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6b84d470-9036-4cc0-a27c-6d90bbfe81ab:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6b84d470-9036-4cc0-a27c-6d90bbfe81ab:100.0.2.json new file mode 100644 index 0000000000000..d6a0aa3e6a2f1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6b84d470-9036-4cc0-a27c-6d90bbfe81ab:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Sensitive Files Compression v100.0.2","rule_id":"6b84d470-9036-4cc0-a27c-6d90bbfe81ab:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of a compression utility to collect known files containing sensitive information, such as credentials and system configurations.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.trendmicro.com/en_ca/research/20/l/teamtnt-now-deploying-ddos-capable-irc-bot-tntbotinger.html"],"tags":["Elastic","Host","Linux","Threat Detection","Collection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.001","name":"Credentials In Files","reference":"https://attack.mitre.org/techniques/T1552/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1560","name":"Archive Collected Data","reference":"https://attack.mitre.org/techniques/T1560/","subtechnique":[{"id":"T1560.001","name":"Archive via Utility","reference":"https://attack.mitre.org/techniques/T1560/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and\n process.name:(zip or tar or gzip or hdiutil or 7z) and\n process.args:\n (\n /root/.ssh/id_rsa or\n /root/.ssh/id_rsa.pub or\n /root/.ssh/id_ed25519 or\n /root/.ssh/id_ed25519.pub or\n /root/.ssh/authorized_keys or\n /root/.ssh/authorized_keys2 or\n /root/.ssh/known_hosts or\n /root/.bash_history or\n /etc/hosts or\n /home/*/.ssh/id_rsa or\n /home/*/.ssh/id_rsa.pub or\n /home/*/.ssh/id_ed25519 or\n /home/*/.ssh/id_ed25519.pub or\n /home/*/.ssh/authorized_keys or\n /home/*/.ssh/authorized_keys2 or\n /home/*/.ssh/known_hosts or\n /home/*/.bash_history or\n /root/.aws/credentials or\n /root/.aws/config or\n /home/*/.aws/credentials or\n /home/*/.aws/config or\n /root/.docker/config.json or\n /home/*/.docker/config.json or\n /etc/group or\n /etc/passwd or\n /etc/shadow or\n /etc/gshadow\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"6b84d470-9036-4cc0-a27c-6d90bbfe81ab:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6bed021a-0afb-461c-acbe-ffdb9574d3f3:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6bed021a-0afb-461c-acbe-ffdb9574d3f3:101.0.0.json new file mode 100644 index 0000000000000..8144515c2cc24 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6bed021a-0afb-461c-acbe-ffdb9574d3f3:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote Computer Account DnsHostName Update v101.0.0","rule_id":"6bed021a-0afb-461c-acbe-ffdb9574d3f3:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the remote update to a computer account's DnsHostName attribute. If the new value set is a valid domain controller DNS hostname and the subject computer name is not a domain controller, then it's highly likely a preparation step to exploit CVE-2022-26923 in an attempt to elevate privileges from a standard domain user to domain admin privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://research.ifcr.dk/certifried-active-directory-domain-privilege-escalation-cve-2022-26923-9e098fe298f4","https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2022-26923"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Active Directory"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"},{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.002","name":"Domain Accounts","reference":"https://attack.mitre.org/techniques/T1078/002/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=5m\n\n [authentication where event.action == \"logged-in\" and\n winlog.logon.type == \"Network\" and event.outcome == \"success\" and\n not user.name == \"ANONYMOUS LOGON\" and not winlog.event_data.SubjectUserName : \"*$\" and\n not user.domain == \"NT AUTHORITY\" and source.ip != \"127.0.0.1\" and source.ip !=\"::1\"] by winlog.event_data.TargetLogonId\n\n [iam where event.action == \"changed-computer-account\" and\n\n /* if DnsHostName value equal a DC DNS hostname then it's highly suspicious */\n winlog.event_data.DnsHostName : \"??*\" and \n \n /* exclude FPs where DnsHostName starts with the ComputerName that was changed */\n not startswith~(winlog.event_data.DnsHostName, substring(winlog.event_data.TargetUserName, 0, length(winlog.event_data.TargetUserName) - 1))\n ] by winlog.event_data.SubjectLogonId\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.DnsHostName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.SubjectUserName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetUserName","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}]},"id":"6bed021a-0afb-461c-acbe-ffdb9574d3f3:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6bed021a-0afb-461c-acbe-ffdb9574d3f3:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6bed021a-0afb-461c-acbe-ffdb9574d3f3:101.0.1.json new file mode 100644 index 0000000000000..cf00702e1bd53 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6bed021a-0afb-461c-acbe-ffdb9574d3f3:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote Computer Account DnsHostName Update v101.0.1","rule_id":"6bed021a-0afb-461c-acbe-ffdb9574d3f3:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the remote update to a computer account's DnsHostName attribute. If the new value set is a valid domain controller DNS hostname and the subject computer name is not a domain controller, then it's highly likely a preparation step to exploit CVE-2022-26923 in an attempt to elevate privileges from a standard domain user to domain admin privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://research.ifcr.dk/certifried-active-directory-domain-privilege-escalation-cve-2022-26923-9e098fe298f4","https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2022-26923"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Active Directory"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"},{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.002","name":"Domain Accounts","reference":"https://attack.mitre.org/techniques/T1078/002/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=5m\n\n [authentication where event.action == \"logged-in\" and\n winlog.logon.type == \"Network\" and event.outcome == \"success\" and\n not user.name == \"ANONYMOUS LOGON\" and not winlog.event_data.SubjectUserName : \"*$\" and\n not user.domain == \"NT AUTHORITY\" and source.ip != \"127.0.0.1\" and source.ip !=\"::1\"] by winlog.event_data.TargetLogonId\n\n [iam where event.action == \"changed-computer-account\" and\n\n /* if DnsHostName value equal a DC DNS hostname then it's highly suspicious */\n winlog.event_data.DnsHostName : \"??*\" and \n \n /* exclude FPs where DnsHostName starts with the ComputerName that was changed */\n not startswith~(winlog.event_data.DnsHostName, substring(winlog.event_data.TargetUserName, 0, length(winlog.event_data.TargetUserName) - 1))\n ] by winlog.event_data.SubjectLogonId\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.DnsHostName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.SubjectUserName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetUserName","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}]},"id":"6bed021a-0afb-461c-acbe-ffdb9574d3f3:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6bed021a-0afb-461c-acbe-ffdb9574d3f3:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6bed021a-0afb-461c-acbe-ffdb9574d3f3:101.0.2.json new file mode 100644 index 0000000000000..505993959042a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6bed021a-0afb-461c-acbe-ffdb9574d3f3:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote Computer Account DnsHostName Update v101.0.2","rule_id":"6bed021a-0afb-461c-acbe-ffdb9574d3f3:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the remote update to a computer account's DnsHostName attribute. If the new value set is a valid domain controller DNS hostname and the subject computer name is not a domain controller, then it's highly likely a preparation step to exploit CVE-2022-26923 in an attempt to elevate privileges from a standard domain user to domain admin privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://research.ifcr.dk/certifried-active-directory-domain-privilege-escalation-cve-2022-26923-9e098fe298f4","https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2022-26923"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Active Directory"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"},{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.002","name":"Domain Accounts","reference":"https://attack.mitre.org/techniques/T1078/002/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=5m\n\n [authentication where event.action == \"logged-in\" and\n winlog.logon.type == \"Network\" and event.outcome == \"success\" and\n not user.name == \"ANONYMOUS LOGON\" and not winlog.event_data.SubjectUserName : \"*$\" and\n not user.domain == \"NT AUTHORITY\" and source.ip != \"127.0.0.1\" and source.ip !=\"::1\"] by winlog.event_data.TargetLogonId\n\n [iam where event.action == \"changed-computer-account\" and\n\n /* if DnsHostName value equal a DC DNS hostname then it's highly suspicious */\n winlog.event_data.DnsHostName : \"??*\" and \n \n /* exclude FPs where DnsHostName starts with the ComputerName that was changed */\n not startswith~(winlog.event_data.DnsHostName, substring(winlog.event_data.TargetUserName, 0, length(winlog.event_data.TargetUserName) - 1))\n ] by winlog.event_data.SubjectLogonId\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.DnsHostName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.SubjectUserName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetUserName","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}]},"id":"6bed021a-0afb-461c-acbe-ffdb9574d3f3:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6cd1779c-560f-4b68-a8f1-11009b27fe63:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6cd1779c-560f-4b68-a8f1-11009b27fe63:100.0.0.json new file mode 100644 index 0000000000000..8090fbe0c765f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6cd1779c-560f-4b68-a8f1-11009b27fe63:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft Exchange Server UM Writing Suspicious Files v100.0.0","rule_id":"6cd1779c-560f-4b68-a8f1-11009b27fe63:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious files being written by the Microsoft Exchange Server Unified Messaging (UM) service. This activity has been observed exploiting CVE-2021-26858.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\nPositive hits can be checked against the established Microsoft [baselines](https://github.com/microsoft/CSS-Exchange/tree/main/Security/Baselines).\n\nMicrosoft highly recommends that the best course of action is patching, but this may not protect already compromised systems\nfrom existing intrusions. Other tools for detecting and mitigating can be found within their Exchange support\n[repository](https://github.com/microsoft/CSS-Exchange/tree/main/Security)","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Files generated during installation will generate a lot of noise, so the rule should only be enabled after the fact.","This rule was tuned using the following baseline: https://raw.githubusercontent.com/microsoft/CSS-Exchange/main/Security/Baselines/baseline_15.2.792.5.csv from Microsoft. Depending on version, consult https://github.com/microsoft/CSS-Exchange/tree/main/Security/Baselines to help determine normalcy."],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2021/03/02/hafnium-targeting-exchange-servers","https://www.volexity.com/blog/2021/03/02/active-exploitation-of-microsoft-exchange-zero-day-vulnerabilities"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"language":"eql","query":"file where event.type == \"creation\" and\n process.name : (\"UMWorkerProcess.exe\", \"umservice.exe\") and\n file.extension : (\"php\", \"jsp\", \"js\", \"aspx\", \"asmx\", \"asax\", \"cfm\", \"shtml\") and\n (\n file.path : \"?:\\\\inetpub\\\\wwwroot\\\\aspnet_client\\\\*\" or\n\n (file.path : \"?:\\\\*\\\\Microsoft\\\\Exchange Server*\\\\FrontEnd\\\\HttpProxy\\\\owa\\\\auth\\\\*\" and\n not (file.path : \"?:\\\\*\\\\Microsoft\\\\Exchange Server*\\\\FrontEnd\\\\HttpProxy\\\\owa\\\\auth\\\\version\\\\*\" or\n file.name : (\"errorFE.aspx\", \"expiredpassword.aspx\", \"frowny.aspx\", \"GetIdToken.htm\", \"logoff.aspx\",\n \"logon.aspx\", \"OutlookCN.aspx\", \"RedirSuiteServiceProxy.aspx\", \"signout.aspx\"))) or\n\n (file.path : \"?:\\\\*\\\\Microsoft\\\\Exchange Server*\\\\FrontEnd\\\\HttpProxy\\\\ecp\\\\auth\\\\*\" and\n not file.name : \"TimeoutLogoff.aspx\")\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"6cd1779c-560f-4b68-a8f1-11009b27fe63:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6cd1779c-560f-4b68-a8f1-11009b27fe63:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6cd1779c-560f-4b68-a8f1-11009b27fe63:100.0.1.json new file mode 100644 index 0000000000000..495552b77d1e9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6cd1779c-560f-4b68-a8f1-11009b27fe63:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft Exchange Server UM Writing Suspicious Files v100.0.1","rule_id":"6cd1779c-560f-4b68-a8f1-11009b27fe63:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious files being written by the Microsoft Exchange Server Unified Messaging (UM) service. This activity has been observed exploiting CVE-2021-26858.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\nPositive hits can be checked against the established Microsoft [baselines](https://github.com/microsoft/CSS-Exchange/tree/main/Security/Baselines).\n\nMicrosoft highly recommends that the best course of action is patching, but this may not protect already compromised systems\nfrom existing intrusions. Other tools for detecting and mitigating can be found within their Exchange support\n[repository](https://github.com/microsoft/CSS-Exchange/tree/main/Security)","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Files generated during installation will generate a lot of noise, so the rule should only be enabled after the fact.","This rule was tuned using the following baseline: https://raw.githubusercontent.com/microsoft/CSS-Exchange/main/Security/Baselines/baseline_15.2.792.5.csv from Microsoft. Depending on version, consult https://github.com/microsoft/CSS-Exchange/tree/main/Security/Baselines to help determine normalcy."],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2021/03/02/hafnium-targeting-exchange-servers","https://www.volexity.com/blog/2021/03/02/active-exploitation-of-microsoft-exchange-zero-day-vulnerabilities"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"language":"eql","query":"file where event.type == \"creation\" and\n process.name : (\"UMWorkerProcess.exe\", \"umservice.exe\") and\n file.extension : (\"php\", \"jsp\", \"js\", \"aspx\", \"asmx\", \"asax\", \"cfm\", \"shtml\") and\n (\n file.path : \"?:\\\\inetpub\\\\wwwroot\\\\aspnet_client\\\\*\" or\n\n (file.path : \"?:\\\\*\\\\Microsoft\\\\Exchange Server*\\\\FrontEnd\\\\HttpProxy\\\\owa\\\\auth\\\\*\" and\n not (file.path : \"?:\\\\*\\\\Microsoft\\\\Exchange Server*\\\\FrontEnd\\\\HttpProxy\\\\owa\\\\auth\\\\version\\\\*\" or\n file.name : (\"errorFE.aspx\", \"expiredpassword.aspx\", \"frowny.aspx\", \"GetIdToken.htm\", \"logoff.aspx\",\n \"logon.aspx\", \"OutlookCN.aspx\", \"RedirSuiteServiceProxy.aspx\", \"signout.aspx\"))) or\n\n (file.path : \"?:\\\\*\\\\Microsoft\\\\Exchange Server*\\\\FrontEnd\\\\HttpProxy\\\\ecp\\\\auth\\\\*\" and\n not file.name : \"TimeoutLogoff.aspx\")\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"6cd1779c-560f-4b68-a8f1-11009b27fe63:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6cd1779c-560f-4b68-a8f1-11009b27fe63:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6cd1779c-560f-4b68-a8f1-11009b27fe63:100.0.2.json new file mode 100644 index 0000000000000..df39818015c93 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6cd1779c-560f-4b68-a8f1-11009b27fe63:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft Exchange Server UM Writing Suspicious Files v100.0.2","rule_id":"6cd1779c-560f-4b68-a8f1-11009b27fe63:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious files being written by the Microsoft Exchange Server Unified Messaging (UM) service. This activity has been observed exploiting CVE-2021-26858.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\nPositive hits can be checked against the established Microsoft [baselines](https://github.com/microsoft/CSS-Exchange/tree/main/Security/Baselines).\n\nMicrosoft highly recommends that the best course of action is patching, but this may not protect already compromised systems\nfrom existing intrusions. Other tools for detecting and mitigating can be found within their Exchange support\n[repository](https://github.com/microsoft/CSS-Exchange/tree/main/Security)","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Files generated during installation will generate a lot of noise, so the rule should only be enabled after the fact.","This rule was tuned using the following baseline: https://raw.githubusercontent.com/microsoft/CSS-Exchange/main/Security/Baselines/baseline_15.2.792.5.csv from Microsoft. Depending on version, consult https://github.com/microsoft/CSS-Exchange/tree/main/Security/Baselines to help determine normalcy."],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2021/03/02/hafnium-targeting-exchange-servers","https://www.volexity.com/blog/2021/03/02/active-exploitation-of-microsoft-exchange-zero-day-vulnerabilities"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"language":"eql","query":"file where event.type == \"creation\" and\n process.name : (\"UMWorkerProcess.exe\", \"umservice.exe\") and\n file.extension : (\"php\", \"jsp\", \"js\", \"aspx\", \"asmx\", \"asax\", \"cfm\", \"shtml\") and\n (\n file.path : \"?:\\\\inetpub\\\\wwwroot\\\\aspnet_client\\\\*\" or\n\n (file.path : \"?:\\\\*\\\\Microsoft\\\\Exchange Server*\\\\FrontEnd\\\\HttpProxy\\\\owa\\\\auth\\\\*\" and\n not (file.path : \"?:\\\\*\\\\Microsoft\\\\Exchange Server*\\\\FrontEnd\\\\HttpProxy\\\\owa\\\\auth\\\\version\\\\*\" or\n file.name : (\"errorFE.aspx\", \"expiredpassword.aspx\", \"frowny.aspx\", \"GetIdToken.htm\", \"logoff.aspx\",\n \"logon.aspx\", \"OutlookCN.aspx\", \"RedirSuiteServiceProxy.aspx\", \"signout.aspx\"))) or\n\n (file.path : \"?:\\\\*\\\\Microsoft\\\\Exchange Server*\\\\FrontEnd\\\\HttpProxy\\\\ecp\\\\auth\\\\*\" and\n not file.name : \"TimeoutLogoff.aspx\")\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"6cd1779c-560f-4b68-a8f1-11009b27fe63:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6d448b96-c922-4adb-b51c-b767f1ea5b76:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6d448b96-c922-4adb-b51c-b767f1ea5b76:102.0.0.json new file mode 100644 index 0000000000000..60f6372bd9915 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6d448b96-c922-4adb-b51c-b767f1ea5b76:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Process For a Windows Host v102.0.0","rule_id":"6d448b96-c922-4adb-b51c-b767f1ea5b76:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies rare processes that do not usually run on individual hosts, which can indicate execution of unauthorized services, malware, or persistence mechanisms. Processes are considered rare when they only run occasionally as compared with other processes running on the host.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Windows Process\n\nSearching for abnormal Windows processes is a good methodology to find potentially malicious activity within a network.\nUnderstanding what is commonly run within an environment and developing baselines for legitimate activity can help\nuncover potential malware and suspicious behaviors.\n\n#### Possible investigation steps:\n- Consider the user as identified by the `user.name` field. Is this program part of an expected workflow for the user who ran this program on this host?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process metadata like the values of the Company, Description and Product fields which may indicate whether the program is associated with an expected software vendor or package.\n- Examine arguments and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.\n- Consider the same for the parent process. If the parent process is a legitimate system utility or service, this could be related to software updates or system management. If the parent process is something user-facing like an Office application, this process could be more suspicious.\n- If you have file hash values in the event data, and you suspect malware, you can optionally run a search for the file hash to see if the file is identified as malware by anti-malware tools.\n\n### False Positive Analysis\n- Validate the unusual Windows process is not related to new benign software installation activity. If related to\nlegitimate software, this can be done by leveraging the exception workflow in the Kibana Security App or Elasticsearch\nAPI to tune this rule to your environment.\n- Try to understand the context of the execution by thinking about the user, machine, or business purpose. It's possible that a small number of endpoints\nsuch as servers that have very unique software that might appear to be unusual, but satisfy a specific business need.\n\n### Related Rules\n- Anomalous Windows Process Creation\n- Unusual Windows Path Activity\n- Unusual Windows Process Calling the Metadata Service\n\n### Response and Remediation\n- This rule is related to process execution events and should be immediately reviewed and investigated to determine if malicious.\n- Based on validation and if malicious, the impacted machine should be isolated and analyzed to determine other post-compromise\nbehavior such as setting up persistence or performing lateral movement.\n- Look into preventive measures such as Windows Defender Application Control and AppLocker to gain better control on\nwhat is allowed to run on Windows infrastructure.\n","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_rare_process_by_host_windows"],"type":"machine_learning"},"id":"6d448b96-c922-4adb-b51c-b767f1ea5b76:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6d448b96-c922-4adb-b51c-b767f1ea5b76:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6d448b96-c922-4adb-b51c-b767f1ea5b76:102.0.1.json new file mode 100644 index 0000000000000..0db271facb6c1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6d448b96-c922-4adb-b51c-b767f1ea5b76:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Process For a Windows Host v102.0.1","rule_id":"6d448b96-c922-4adb-b51c-b767f1ea5b76:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies rare processes that do not usually run on individual hosts, which can indicate execution of unauthorized services, malware, or persistence mechanisms. Processes are considered rare when they only run occasionally as compared with other processes running on the host.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Windows Process\n\nSearching for abnormal Windows processes is a good methodology to find potentially malicious activity within a network.\nUnderstanding what is commonly run within an environment and developing baselines for legitimate activity can help\nuncover potential malware and suspicious behaviors.\n\n#### Possible investigation steps:\n- Consider the user as identified by the `user.name` field. Is this program part of an expected workflow for the user who ran this program on this host?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process metadata like the values of the Company, Description and Product fields which may indicate whether the program is associated with an expected software vendor or package.\n- Examine arguments and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.\n- Consider the same for the parent process. If the parent process is a legitimate system utility or service, this could be related to software updates or system management. If the parent process is something user-facing like an Office application, this process could be more suspicious.\n- If you have file hash values in the event data, and you suspect malware, you can optionally run a search for the file hash to see if the file is identified as malware by anti-malware tools.\n\n### False Positive Analysis\n- Validate the unusual Windows process is not related to new benign software installation activity. If related to\nlegitimate software, this can be done by leveraging the exception workflow in the Kibana Security App or Elasticsearch\nAPI to tune this rule to your environment.\n- Try to understand the context of the execution by thinking about the user, machine, or business purpose. It's possible that a small number of endpoints\nsuch as servers that have very unique software that might appear to be unusual, but satisfy a specific business need.\n\n### Related Rules\n- Anomalous Windows Process Creation\n- Unusual Windows Path Activity\n- Unusual Windows Process Calling the Metadata Service\n\n### Response and Remediation\n- This rule is related to process execution events and should be immediately reviewed and investigated to determine if malicious.\n- Based on validation and if malicious, the impacted machine should be isolated and analyzed to determine other post-compromise\nbehavior such as setting up persistence or performing lateral movement.\n- Look into preventive measures such as Windows Defender Application Control and AppLocker to gain better control on\nwhat is allowed to run on Windows infrastructure.\n","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_rare_process_by_host_windows"],"type":"machine_learning"},"id":"6d448b96-c922-4adb-b51c-b767f1ea5b76:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6d448b96-c922-4adb-b51c-b767f1ea5b76:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6d448b96-c922-4adb-b51c-b767f1ea5b76:102.0.2.json new file mode 100644 index 0000000000000..18fa6ac6aebdd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6d448b96-c922-4adb-b51c-b767f1ea5b76:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Process For a Windows Host v102.0.2","rule_id":"6d448b96-c922-4adb-b51c-b767f1ea5b76:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies rare processes that do not usually run on individual hosts, which can indicate execution of unauthorized services, malware, or persistence mechanisms. Processes are considered rare when they only run occasionally as compared with other processes running on the host.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Windows Process\n\nSearching for abnormal Windows processes is a good methodology to find potentially malicious activity within a network.\nUnderstanding what is commonly run within an environment and developing baselines for legitimate activity can help\nuncover potential malware and suspicious behaviors.\n\n#### Possible investigation steps:\n- Consider the user as identified by the `user.name` field. Is this program part of an expected workflow for the user who ran this program on this host?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process metadata like the values of the Company, Description and Product fields which may indicate whether the program is associated with an expected software vendor or package.\n- Examine arguments and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.\n- Consider the same for the parent process. If the parent process is a legitimate system utility or service, this could be related to software updates or system management. If the parent process is something user-facing like an Office application, this process could be more suspicious.\n- If you have file hash values in the event data, and you suspect malware, you can optionally run a search for the file hash to see if the file is identified as malware by anti-malware tools.\n\n### False Positive Analysis\n- Validate the unusual Windows process is not related to new benign software installation activity. If related to\nlegitimate software, this can be done by leveraging the exception workflow in the Kibana Security App or Elasticsearch\nAPI to tune this rule to your environment.\n- Try to understand the context of the execution by thinking about the user, machine, or business purpose. It's possible that a small number of endpoints\nsuch as servers that have very unique software that might appear to be unusual, but satisfy a specific business need.\n\n### Related Rules\n- Anomalous Windows Process Creation\n- Unusual Windows Path Activity\n- Unusual Windows Process Calling the Metadata Service\n\n### Response and Remediation\n- This rule is related to process execution events and should be immediately reviewed and investigated to determine if malicious.\n- Based on validation and if malicious, the impacted machine should be isolated and analyzed to determine other post-compromise\nbehavior such as setting up persistence or performing lateral movement.\n- Look into preventive measures such as Windows Defender Application Control and AppLocker to gain better control on\nwhat is allowed to run on Windows infrastructure.\n","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_rare_process_by_host_windows"],"type":"machine_learning"},"id":"6d448b96-c922-4adb-b51c-b767f1ea5b76:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6e40d56f-5c0e-4ac6-aece-bee96645b172:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6e40d56f-5c0e-4ac6-aece-bee96645b172:100.0.0.json new file mode 100644 index 0000000000000..db219f3e015f0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6e40d56f-5c0e-4ac6-aece-bee96645b172:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Anomalous Process For a Windows Population v100.0.0","rule_id":"6e40d56f-5c0e-4ac6-aece-bee96645b172:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Searches for rare processes running on multiple hosts in an entire fleet or network. This reduces the detection of false positives since automated maintenance processes usually only run occasionally on a single machine but are common to all or many hosts in a fleet.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Windows Process\nDetection alerts from this rule indicate the presence of a Windows process that is rare and unusual for all of the Windows hosts for which Winlogbeat data is available. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is this program part of an expected workflow for the user who ran this program on this host?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process metadata like the values of the Company, Description and Product fields which may indicate whether the program is associated with an expected software vendor or package.\n- Examine arguments and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.\n- Consider the same for the parent process. If the parent process is a legitimate system utility or service, this could be related to software updates or system management. If the parent process is something user-facing like an Office application, this process could be more suspicious.\n- If you have file hash values in the event data, and you suspect malware, you can optionally run a search for the file hash to see if the file is identified as malware by anti-malware tools. ","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_process_all_hosts"],"type":"machine_learning"},"id":"6e40d56f-5c0e-4ac6-aece-bee96645b172:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6e40d56f-5c0e-4ac6-aece-bee96645b172:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6e40d56f-5c0e-4ac6-aece-bee96645b172:100.0.1.json new file mode 100644 index 0000000000000..cead9ce85215b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6e40d56f-5c0e-4ac6-aece-bee96645b172:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Anomalous Process For a Windows Population v100.0.1","rule_id":"6e40d56f-5c0e-4ac6-aece-bee96645b172:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Searches for rare processes running on multiple hosts in an entire fleet or network. This reduces the detection of false positives since automated maintenance processes usually only run occasionally on a single machine but are common to all or many hosts in a fleet.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Windows Process\nDetection alerts from this rule indicate the presence of a Windows process that is rare and unusual for all of the Windows hosts for which Winlogbeat data is available. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is this program part of an expected workflow for the user who ran this program on this host?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process metadata like the values of the Company, Description and Product fields which may indicate whether the program is associated with an expected software vendor or package.\n- Examine arguments and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.\n- Consider the same for the parent process. If the parent process is a legitimate system utility or service, this could be related to software updates or system management. If the parent process is something user-facing like an Office application, this process could be more suspicious.\n- If you have file hash values in the event data, and you suspect malware, you can optionally run a search for the file hash to see if the file is identified as malware by anti-malware tools. ","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_process_all_hosts"],"type":"machine_learning"},"id":"6e40d56f-5c0e-4ac6-aece-bee96645b172:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6e40d56f-5c0e-4ac6-aece-bee96645b172:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6e40d56f-5c0e-4ac6-aece-bee96645b172:100.0.2.json new file mode 100644 index 0000000000000..7f1675b01e48e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6e40d56f-5c0e-4ac6-aece-bee96645b172:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Anomalous Process For a Windows Population v100.0.2","rule_id":"6e40d56f-5c0e-4ac6-aece-bee96645b172:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Searches for rare processes running on multiple hosts in an entire fleet or network. This reduces the detection of false positives since automated maintenance processes usually only run occasionally on a single machine but are common to all or many hosts in a fleet.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Windows Process\nDetection alerts from this rule indicate the presence of a Windows process that is rare and unusual for all of the Windows hosts for which Winlogbeat data is available. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is this program part of an expected workflow for the user who ran this program on this host?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process metadata like the values of the Company, Description and Product fields which may indicate whether the program is associated with an expected software vendor or package.\n- Examine arguments and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.\n- Consider the same for the parent process. If the parent process is a legitimate system utility or service, this could be related to software updates or system management. If the parent process is something user-facing like an Office application, this process could be more suspicious.\n- If you have file hash values in the event data, and you suspect malware, you can optionally run a search for the file hash to see if the file is identified as malware by anti-malware tools. ","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_process_all_hosts"],"type":"machine_learning"},"id":"6e40d56f-5c0e-4ac6-aece-bee96645b172:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6e9130a5-9be6-48e5-943a-9628bfc74b18:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6e9130a5-9be6-48e5-943a-9628bfc74b18:100.0.0.json new file mode 100644 index 0000000000000..a942c053d0b3e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6e9130a5-9be6-48e5-943a-9628bfc74b18:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AdminSDHolder Backdoor v100.0.0","rule_id":"6e9130a5-9be6-48e5-943a-9628bfc74b18:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects modifications in the AdminSDHolder object. Attackers can abuse the SDProp process to implement a persistent backdoor in Active Directory. SDProp compares the permissions on protected objects with those defined on the AdminSDHolder object. If the permissions on any of the protected accounts and groups do not match, the permissions on the protected accounts and groups are reset to match those of the domain's AdminSDHolder object, regaining their Administrative Privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://adsecurity.org/?p=1906","https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/appendix-c--protected-accounts-and-groups-in-active-directory#adminsdholder"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Active Directory"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"Directory Service Changes\" and event.code:5136 and winlog.event_data.ObjectDN:CN=AdminSDHolder,CN=System*\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.ObjectDN","type":"unknown"}]},"id":"6e9130a5-9be6-48e5-943a-9628bfc74b18:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6e9130a5-9be6-48e5-943a-9628bfc74b18:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6e9130a5-9be6-48e5-943a-9628bfc74b18:100.0.1.json new file mode 100644 index 0000000000000..c096dd9b22d04 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6e9130a5-9be6-48e5-943a-9628bfc74b18:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AdminSDHolder Backdoor v100.0.1","rule_id":"6e9130a5-9be6-48e5-943a-9628bfc74b18:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects modifications in the AdminSDHolder object. Attackers can abuse the SDProp process to implement a persistent backdoor in Active Directory. SDProp compares the permissions on protected objects with those defined on the AdminSDHolder object. If the permissions on any of the protected accounts and groups do not match, the permissions on the protected accounts and groups are reset to match those of the domain's AdminSDHolder object, regaining their Administrative Privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://adsecurity.org/?p=1906","https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/appendix-c--protected-accounts-and-groups-in-active-directory#adminsdholder"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Active Directory"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"Directory Service Changes\" and event.code:5136 and winlog.event_data.ObjectDN:CN=AdminSDHolder,CN=System*\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.ObjectDN","type":"unknown"}]},"id":"6e9130a5-9be6-48e5-943a-9628bfc74b18:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6e9130a5-9be6-48e5-943a-9628bfc74b18:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6e9130a5-9be6-48e5-943a-9628bfc74b18:100.0.2.json new file mode 100644 index 0000000000000..381d94605d79c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6e9130a5-9be6-48e5-943a-9628bfc74b18:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AdminSDHolder Backdoor v100.0.2","rule_id":"6e9130a5-9be6-48e5-943a-9628bfc74b18:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects modifications in the AdminSDHolder object. Attackers can abuse the SDProp process to implement a persistent backdoor in Active Directory. SDProp compares the permissions on protected objects with those defined on the AdminSDHolder object. If the permissions on any of the protected accounts and groups do not match, the permissions on the protected accounts and groups are reset to match those of the domain's AdminSDHolder object, regaining their Administrative Privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://adsecurity.org/?p=1906","https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/appendix-c--protected-accounts-and-groups-in-active-directory#adminsdholder"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Active Directory"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"Directory Service Changes\" and event.code:5136 and winlog.event_data.ObjectDN:CN=AdminSDHolder,CN=System*\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.ObjectDN","type":"unknown"}]},"id":"6e9130a5-9be6-48e5-943a-9628bfc74b18:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6e9b351e-a531-4bdc-b73e-7034d6eed7ff:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6e9b351e-a531-4bdc-b73e-7034d6eed7ff:100.0.0.json new file mode 100644 index 0000000000000..5e39abeffdd87 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6e9b351e-a531-4bdc-b73e-7034d6eed7ff:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Enumeration of Users or Groups via Built-in Commands v100.0.0","rule_id":"6e9b351e-a531-4bdc-b73e-7034d6eed7ff:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of macOS built-in commands related to account or group enumeration. Adversaries may use account and group information to orient themselves before deciding how to act.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","macOS","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1069","name":"Permission Groups Discovery","reference":"https://attack.mitre.org/techniques/T1069/"},{"id":"T1087","name":"Account Discovery","reference":"https://attack.mitre.org/techniques/T1087/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n (\n process.name : (\"ldapsearch\", \"dsmemberutil\") or\n (process.name : \"dscl\" and\n process.args : (\"read\", \"-read\", \"list\", \"-list\", \"ls\", \"search\", \"-search\") and\n process.args : (\"/Active Directory/*\", \"/Users*\", \"/Groups*\"))\n\t) and\n not process.parent.executable : (\"/Applications/NoMAD.app/Contents/MacOS/NoMAD\",\n \"/Applications/ZoomPresence.app/Contents/MacOS/ZoomPresence\",\n \"/Applications/Sourcetree.app/Contents/MacOS/Sourcetree\",\n \"/Library/Application Support/JAMF/Jamf.app/Contents/MacOS/JamfDaemon.app/Contents/MacOS/JamfDaemon\",\n \"/Applications/Jamf Connect.app/Contents/MacOS/Jamf Connect\",\n \"/usr/local/jamf/bin/jamf\",\n \"/Library/Application Support/AirWatch/hubd\",\n \"/opt/jc/bin/jumpcloud-agent\",\n \"/Applications/ESET Endpoint Antivirus.app/Contents/MacOS/esets_daemon\",\n \"/Applications/ESET Endpoint Security.app/Contents/MacOS/esets_daemon\",\n \"/Library/PrivilegedHelperTools/com.fortinet.forticlient.uninstall_helper\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"6e9b351e-a531-4bdc-b73e-7034d6eed7ff:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6e9b351e-a531-4bdc-b73e-7034d6eed7ff:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6e9b351e-a531-4bdc-b73e-7034d6eed7ff:100.0.1.json new file mode 100644 index 0000000000000..381ac20c35310 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6e9b351e-a531-4bdc-b73e-7034d6eed7ff:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Enumeration of Users or Groups via Built-in Commands v100.0.1","rule_id":"6e9b351e-a531-4bdc-b73e-7034d6eed7ff:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of macOS built-in commands related to account or group enumeration. Adversaries may use account and group information to orient themselves before deciding how to act.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","macOS","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1069","name":"Permission Groups Discovery","reference":"https://attack.mitre.org/techniques/T1069/"},{"id":"T1087","name":"Account Discovery","reference":"https://attack.mitre.org/techniques/T1087/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n (\n process.name : (\"ldapsearch\", \"dsmemberutil\") or\n (process.name : \"dscl\" and\n process.args : (\"read\", \"-read\", \"list\", \"-list\", \"ls\", \"search\", \"-search\") and\n process.args : (\"/Active Directory/*\", \"/Users*\", \"/Groups*\"))\n\t) and\n not process.parent.executable : (\"/Applications/NoMAD.app/Contents/MacOS/NoMAD\",\n \"/Applications/ZoomPresence.app/Contents/MacOS/ZoomPresence\",\n \"/Applications/Sourcetree.app/Contents/MacOS/Sourcetree\",\n \"/Library/Application Support/JAMF/Jamf.app/Contents/MacOS/JamfDaemon.app/Contents/MacOS/JamfDaemon\",\n \"/Applications/Jamf Connect.app/Contents/MacOS/Jamf Connect\",\n \"/usr/local/jamf/bin/jamf\",\n \"/Library/Application Support/AirWatch/hubd\",\n \"/opt/jc/bin/jumpcloud-agent\",\n \"/Applications/ESET Endpoint Antivirus.app/Contents/MacOS/esets_daemon\",\n \"/Applications/ESET Endpoint Security.app/Contents/MacOS/esets_daemon\",\n \"/Library/PrivilegedHelperTools/com.fortinet.forticlient.uninstall_helper\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"6e9b351e-a531-4bdc-b73e-7034d6eed7ff:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6e9b351e-a531-4bdc-b73e-7034d6eed7ff:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6e9b351e-a531-4bdc-b73e-7034d6eed7ff:100.0.2.json new file mode 100644 index 0000000000000..7dae6793ec703 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6e9b351e-a531-4bdc-b73e-7034d6eed7ff:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Enumeration of Users or Groups via Built-in Commands v100.0.2","rule_id":"6e9b351e-a531-4bdc-b73e-7034d6eed7ff:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of macOS built-in commands related to account or group enumeration. Adversaries may use account and group information to orient themselves before deciding how to act.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","macOS","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1069","name":"Permission Groups Discovery","reference":"https://attack.mitre.org/techniques/T1069/"},{"id":"T1087","name":"Account Discovery","reference":"https://attack.mitre.org/techniques/T1087/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n (\n process.name : (\"ldapsearch\", \"dsmemberutil\") or\n (process.name : \"dscl\" and\n process.args : (\"read\", \"-read\", \"list\", \"-list\", \"ls\", \"search\", \"-search\") and\n process.args : (\"/Active Directory/*\", \"/Users*\", \"/Groups*\"))\n\t) and\n not process.parent.executable : (\"/Applications/NoMAD.app/Contents/MacOS/NoMAD\",\n \"/Applications/ZoomPresence.app/Contents/MacOS/ZoomPresence\",\n \"/Applications/Sourcetree.app/Contents/MacOS/Sourcetree\",\n \"/Library/Application Support/JAMF/Jamf.app/Contents/MacOS/JamfDaemon.app/Contents/MacOS/JamfDaemon\",\n \"/Applications/Jamf Connect.app/Contents/MacOS/Jamf Connect\",\n \"/usr/local/jamf/bin/jamf\",\n \"/Library/Application Support/AirWatch/hubd\",\n \"/opt/jc/bin/jumpcloud-agent\",\n \"/Applications/ESET Endpoint Antivirus.app/Contents/MacOS/esets_daemon\",\n \"/Applications/ESET Endpoint Security.app/Contents/MacOS/esets_daemon\",\n \"/Library/PrivilegedHelperTools/com.fortinet.forticlient.uninstall_helper\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"6e9b351e-a531-4bdc-b73e-7034d6eed7ff:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6ea41894-66c3-4df7-ad6b-2c5074eb3df8:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6ea41894-66c3-4df7-ad6b-2c5074eb3df8:100.0.0.json new file mode 100644 index 0000000000000..e864d4045e6a9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6ea41894-66c3-4df7-ad6b-2c5074eb3df8:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Windows Error Manager Masquerading v100.0.0","rule_id":"6ea41894-66c3-4df7-ad6b-2c5074eb3df8:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious instances of the Windows Error Reporting process (WerFault.exe or Wermgr.exe) with matching command-line and process executable values performing outgoing network connections. This may be indicative of a masquerading attempt to evade suspicious child process behavior detections.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Legit Application Crash with rare Werfault commandline value"],"from":"now-9m","references":["https://twitter.com/SBousseaden/status/1235533224337641473","https://www.hexacorn.com/blog/2019/09/20/werfault-command-line-switches-v0-1/","https://app.any.run/tasks/26051d84-b68e-4afb-8a9a-76921a271b81/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan = 5s\n [process where event.type:\"start\" and process.name : (\"wermgr.exe\", \"WerFault.exe\") and process.args_count == 1]\n [network where process.name : (\"wermgr.exe\", \"WerFault.exe\") and network.protocol != \"dns\" and\n network.direction : (\"outgoing\", \"egress\") and destination.ip !=\"::1\" and destination.ip !=\"127.0.0.1\"\n ]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"6ea41894-66c3-4df7-ad6b-2c5074eb3df8:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6ea41894-66c3-4df7-ad6b-2c5074eb3df8:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6ea41894-66c3-4df7-ad6b-2c5074eb3df8:100.0.1.json new file mode 100644 index 0000000000000..ee4bf79c3eb74 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6ea41894-66c3-4df7-ad6b-2c5074eb3df8:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Windows Error Manager Masquerading v100.0.1","rule_id":"6ea41894-66c3-4df7-ad6b-2c5074eb3df8:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious instances of the Windows Error Reporting process (WerFault.exe or Wermgr.exe) with matching command-line and process executable values performing outgoing network connections. This may be indicative of a masquerading attempt to evade suspicious child process behavior detections.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Legit Application Crash with rare Werfault commandline value"],"from":"now-9m","references":["https://twitter.com/SBousseaden/status/1235533224337641473","https://www.hexacorn.com/blog/2019/09/20/werfault-command-line-switches-v0-1/","https://app.any.run/tasks/26051d84-b68e-4afb-8a9a-76921a271b81/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan = 5s\n [process where event.type:\"start\" and process.name : (\"wermgr.exe\", \"WerFault.exe\") and process.args_count == 1]\n [network where process.name : (\"wermgr.exe\", \"WerFault.exe\") and network.protocol != \"dns\" and\n network.direction : (\"outgoing\", \"egress\") and destination.ip !=\"::1\" and destination.ip !=\"127.0.0.1\"\n ]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"6ea41894-66c3-4df7-ad6b-2c5074eb3df8:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6ea41894-66c3-4df7-ad6b-2c5074eb3df8:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6ea41894-66c3-4df7-ad6b-2c5074eb3df8:100.0.2.json new file mode 100644 index 0000000000000..4a6f2ea4903e6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6ea41894-66c3-4df7-ad6b-2c5074eb3df8:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Windows Error Manager Masquerading v100.0.2","rule_id":"6ea41894-66c3-4df7-ad6b-2c5074eb3df8:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious instances of the Windows Error Reporting process (WerFault.exe or Wermgr.exe) with matching command-line and process executable values performing outgoing network connections. This may be indicative of a masquerading attempt to evade suspicious child process behavior detections.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Legit Application Crash with rare Werfault commandline value"],"from":"now-9m","references":["https://twitter.com/SBousseaden/status/1235533224337641473","https://www.hexacorn.com/blog/2019/09/20/werfault-command-line-switches-v0-1/","https://app.any.run/tasks/26051d84-b68e-4afb-8a9a-76921a271b81/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan = 5s\n [process where event.type:\"start\" and process.name : (\"wermgr.exe\", \"WerFault.exe\") and process.args_count == 1]\n [network where process.name : (\"wermgr.exe\", \"WerFault.exe\") and network.protocol != \"dns\" and\n network.direction : (\"outgoing\", \"egress\") and destination.ip !=\"::1\" and destination.ip !=\"127.0.0.1\"\n ]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"6ea41894-66c3-4df7-ad6b-2c5074eb3df8:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6ea55c81-e2ba-42f2-a134-bccf857ba922:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6ea55c81-e2ba-42f2-a134-bccf857ba922:102.0.0.json new file mode 100644 index 0000000000000..d53a7cf81d98b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6ea55c81-e2ba-42f2-a134-bccf857ba922:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Security Software Discovery using WMIC v102.0.0","rule_id":"6ea55c81-e2ba-42f2-a134-bccf857ba922:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of Windows Management Instrumentation Command (WMIC) to discover certain System Security Settings such as AntiVirus or Host Firewall details.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Security Software Discovery using WMIC\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `wmic` utility with arguments compatible to the enumeration of the security\nsoftware installed on the host. Attackers can use this information to decide whether or not to infect a system, disable\nprotections, use bypasses, etc.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1518","name":"Software Discovery","reference":"https://attack.mitre.org/techniques/T1518/","subtechnique":[{"id":"T1518.001","name":"Security Software Discovery","reference":"https://attack.mitre.org/techniques/T1518/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name:\"wmic.exe\" or process.pe.original_file_name:\"wmic.exe\") and\n process.args:\"/namespace:\\\\\\\\root\\\\SecurityCenter2\" and process.args:\"Get\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"6ea55c81-e2ba-42f2-a134-bccf857ba922:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6ea55c81-e2ba-42f2-a134-bccf857ba922:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6ea55c81-e2ba-42f2-a134-bccf857ba922:102.0.1.json new file mode 100644 index 0000000000000..ed51a889bf7a0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6ea55c81-e2ba-42f2-a134-bccf857ba922:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Security Software Discovery using WMIC v102.0.1","rule_id":"6ea55c81-e2ba-42f2-a134-bccf857ba922:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of Windows Management Instrumentation Command (WMIC) to discover certain System Security Settings such as AntiVirus or Host Firewall details.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Security Software Discovery using WMIC\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `wmic` utility with arguments compatible to the enumeration of the security\nsoftware installed on the host. Attackers can use this information to decide whether or not to infect a system, disable\nprotections, use bypasses, etc.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1518","name":"Software Discovery","reference":"https://attack.mitre.org/techniques/T1518/","subtechnique":[{"id":"T1518.001","name":"Security Software Discovery","reference":"https://attack.mitre.org/techniques/T1518/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name:\"wmic.exe\" or process.pe.original_file_name:\"wmic.exe\") and\n process.args:\"/namespace:\\\\\\\\root\\\\SecurityCenter2\" and process.args:\"Get\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"6ea55c81-e2ba-42f2-a134-bccf857ba922:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6ea55c81-e2ba-42f2-a134-bccf857ba922:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6ea55c81-e2ba-42f2-a134-bccf857ba922:102.0.2.json new file mode 100644 index 0000000000000..baec61020185d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6ea55c81-e2ba-42f2-a134-bccf857ba922:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Security Software Discovery using WMIC v102.0.2","rule_id":"6ea55c81-e2ba-42f2-a134-bccf857ba922:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of Windows Management Instrumentation Command (WMIC) to discover certain System Security Settings such as AntiVirus or Host Firewall details.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Security Software Discovery using WMIC\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `wmic` utility with arguments compatible to the enumeration of the security\nsoftware installed on the host. Attackers can use this information to decide whether or not to infect a system, disable\nprotections, use bypasses, etc.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1518","name":"Software Discovery","reference":"https://attack.mitre.org/techniques/T1518/","subtechnique":[{"id":"T1518.001","name":"Security Software Discovery","reference":"https://attack.mitre.org/techniques/T1518/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name:\"wmic.exe\" or process.pe.original_file_name:\"wmic.exe\") and\n process.args:\"/namespace:\\\\\\\\root\\\\SecurityCenter2\" and process.args:\"Get\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"6ea55c81-e2ba-42f2-a134-bccf857ba922:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6f435062-b7fc-4af9-acea-5b1ead65c5a5:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6f435062-b7fc-4af9-acea-5b1ead65c5a5:101.0.0.json new file mode 100644 index 0000000000000..606fe65986607 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6f435062-b7fc-4af9-acea-5b1ead65c5a5:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace Role Modified v101.0.0","rule_id":"6f435062-b7fc-4af9-acea-5b1ead65c5a5:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a custom admin role or its permissions are modified. An adversary may modify a custom admin role in order to elevate the permissions of other user accounts and persist in their target’s environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Google Workspace admin roles may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/2406043?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:(ADD_PRIVILEGE or UPDATE_ROLE)\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"6f435062-b7fc-4af9-acea-5b1ead65c5a5:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6f435062-b7fc-4af9-acea-5b1ead65c5a5:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6f435062-b7fc-4af9-acea-5b1ead65c5a5:101.0.1.json new file mode 100644 index 0000000000000..54165c1ad5b23 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6f435062-b7fc-4af9-acea-5b1ead65c5a5:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace Role Modified v101.0.1","rule_id":"6f435062-b7fc-4af9-acea-5b1ead65c5a5:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a custom admin role or its permissions are modified. An adversary may modify a custom admin role in order to elevate the permissions of other user accounts and persist in their target’s environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Google Workspace admin roles may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/2406043?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:(ADD_PRIVILEGE or UPDATE_ROLE)\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"6f435062-b7fc-4af9-acea-5b1ead65c5a5:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/6f435062-b7fc-4af9-acea-5b1ead65c5a5:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/6f435062-b7fc-4af9-acea-5b1ead65c5a5:101.0.2.json new file mode 100644 index 0000000000000..b3f7c0ce36b11 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/6f435062-b7fc-4af9-acea-5b1ead65c5a5:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace Role Modified v101.0.2","rule_id":"6f435062-b7fc-4af9-acea-5b1ead65c5a5:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a custom admin role or its permissions are modified. An adversary may modify a custom admin role in order to elevate the permissions of other user accounts and persist in their target’s environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Google Workspace admin roles may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/2406043?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:(ADD_PRIVILEGE or UPDATE_ROLE)\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"6f435062-b7fc-4af9-acea-5b1ead65c5a5:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7024e2a0-315d-4334-bb1a-441c593e16ab:103.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7024e2a0-315d-4334-bb1a-441c593e16ab:103.0.0.json new file mode 100644 index 0000000000000..9aab185f88ea0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7024e2a0-315d-4334-bb1a-441c593e16ab:103.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS CloudTrail Log Deleted v103.0.0","rule_id":"7024e2a0-315d-4334-bb1a-441c593e16ab:103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an AWS log trail. An adversary may delete trails in an attempt to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudTrail Log Deleted\n\nAmazon CloudTrail is a service that enables governance, compliance, operational auditing, and risk auditing of your\nAmazon Web Services account. With CloudTrail, you can log, continuously monitor, and retain account activity related to\nactions across your Amazon Web Services infrastructure. CloudTrail provides event history of your Amazon Web Services\naccount activity, including actions taken through the Amazon Management Console, Amazon SDKs, command line tools, and\nother Amazon Web Services services. This event history simplifies security analysis, resource change tracking, and\ntroubleshooting.\n\nThis rule identifies the deletion of an AWS log trail using the API `DeleteTrail` action. Attackers can do this to\ncover their tracks and impact security monitoring that relies on this source.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Investigate the deleted log trail's criticality and whether the responsible team is aware of the deletion.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trail deletions may be made by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Trail deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_DeleteTrail.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudtrail/delete-trail.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:DeleteTrail and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"7024e2a0-315d-4334-bb1a-441c593e16ab:103.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7024e2a0-315d-4334-bb1a-441c593e16ab:103.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7024e2a0-315d-4334-bb1a-441c593e16ab:103.0.1.json new file mode 100644 index 0000000000000..e2f38cf322719 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7024e2a0-315d-4334-bb1a-441c593e16ab:103.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS CloudTrail Log Deleted v103.0.1","rule_id":"7024e2a0-315d-4334-bb1a-441c593e16ab:103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an AWS log trail. An adversary may delete trails in an attempt to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudTrail Log Deleted\n\nAmazon CloudTrail is a service that enables governance, compliance, operational auditing, and risk auditing of your\nAmazon Web Services account. With CloudTrail, you can log, continuously monitor, and retain account activity related to\nactions across your Amazon Web Services infrastructure. CloudTrail provides event history of your Amazon Web Services\naccount activity, including actions taken through the Amazon Management Console, Amazon SDKs, command line tools, and\nother Amazon Web Services services. This event history simplifies security analysis, resource change tracking, and\ntroubleshooting.\n\nThis rule identifies the deletion of an AWS log trail using the API `DeleteTrail` action. Attackers can do this to\ncover their tracks and impact security monitoring that relies on this source.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Investigate the deleted log trail's criticality and whether the responsible team is aware of the deletion.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trail deletions may be made by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Trail deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_DeleteTrail.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudtrail/delete-trail.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:DeleteTrail and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"7024e2a0-315d-4334-bb1a-441c593e16ab:103.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7024e2a0-315d-4334-bb1a-441c593e16ab:103.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7024e2a0-315d-4334-bb1a-441c593e16ab:103.0.2.json new file mode 100644 index 0000000000000..25546f7f4b22d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7024e2a0-315d-4334-bb1a-441c593e16ab:103.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS CloudTrail Log Deleted v103.0.2","rule_id":"7024e2a0-315d-4334-bb1a-441c593e16ab:103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an AWS log trail. An adversary may delete trails in an attempt to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudTrail Log Deleted\n\nAmazon CloudTrail is a service that enables governance, compliance, operational auditing, and risk auditing of your\nAmazon Web Services account. With CloudTrail, you can log, continuously monitor, and retain account activity related to\nactions across your Amazon Web Services infrastructure. CloudTrail provides event history of your Amazon Web Services\naccount activity, including actions taken through the Amazon Management Console, Amazon SDKs, command line tools, and\nother Amazon Web Services services. This event history simplifies security analysis, resource change tracking, and\ntroubleshooting.\n\nThis rule identifies the deletion of an AWS log trail using the API `DeleteTrail` action. Attackers can do this to\ncover their tracks and impact security monitoring that relies on this source.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Investigate the deleted log trail's criticality and whether the responsible team is aware of the deletion.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trail deletions may be made by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Trail deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_DeleteTrail.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudtrail/delete-trail.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:DeleteTrail and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"7024e2a0-315d-4334-bb1a-441c593e16ab:103.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7024e2a0-315d-4334-bb1a-552d604f27bc:103.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7024e2a0-315d-4334-bb1a-552d604f27bc:103.0.0.json new file mode 100644 index 0000000000000..b3b9ccff76469 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7024e2a0-315d-4334-bb1a-552d604f27bc:103.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Config Resource Deletion v103.0.0","rule_id":"7024e2a0-315d-4334-bb1a-552d604f27bc:103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to delete an AWS Config Service resource. An adversary may tamper with Config services in order to reduce visibility into the security posture of an account and / or its workload instances.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS Config Resource Deletion\n\nAWS Config provides a detailed view of the configuration of AWS resources in your AWS account. This includes how the\nresources are related to one another and how they were configured in the past so that you can see how the configurations\nand relationships change over time.\n\nThis rule looks for the deletion of AWS Config resources using various API actions. Attackers can do this to cover their\ntracks and impact security monitoring that relies on these sources.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Identify the AWS resource that was involved and its criticality, ownership, and role in the environment. Also investigate\nif the resource is security-related.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Privileged IAM users with security responsibilities may be expected to make changes to the Config service in order to align with local security policies and requirements. Automation, orchestration, and security tools may also make changes to the Config service, where they are used to automate setup or configuration of AWS accounts. Other kinds of user or service contexts do not commonly make changes to this service."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/config/latest/developerguide/how-does-config-work.html","https://docs.aws.amazon.com/config/latest/APIReference/API_Operations.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:config.amazonaws.com and\n event.action:(DeleteConfigRule or DeleteOrganizationConfigRule or DeleteConfigurationAggregator or\n DeleteConfigurationRecorder or DeleteConformancePack or DeleteOrganizationConformancePack or\n DeleteDeliveryChannel or DeleteRemediationConfiguration or DeleteRetentionConfiguration)\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"7024e2a0-315d-4334-bb1a-552d604f27bc:103.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7024e2a0-315d-4334-bb1a-552d604f27bc:103.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7024e2a0-315d-4334-bb1a-552d604f27bc:103.0.1.json new file mode 100644 index 0000000000000..8d621b0e92b99 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7024e2a0-315d-4334-bb1a-552d604f27bc:103.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Config Resource Deletion v103.0.1","rule_id":"7024e2a0-315d-4334-bb1a-552d604f27bc:103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to delete an AWS Config Service resource. An adversary may tamper with Config services in order to reduce visibility into the security posture of an account and / or its workload instances.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS Config Resource Deletion\n\nAWS Config provides a detailed view of the configuration of AWS resources in your AWS account. This includes how the\nresources are related to one another and how they were configured in the past so that you can see how the configurations\nand relationships change over time.\n\nThis rule looks for the deletion of AWS Config resources using various API actions. Attackers can do this to cover their\ntracks and impact security monitoring that relies on these sources.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Identify the AWS resource that was involved and its criticality, ownership, and role in the environment. Also investigate\nif the resource is security-related.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Privileged IAM users with security responsibilities may be expected to make changes to the Config service in order to align with local security policies and requirements. Automation, orchestration, and security tools may also make changes to the Config service, where they are used to automate setup or configuration of AWS accounts. Other kinds of user or service contexts do not commonly make changes to this service."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/config/latest/developerguide/how-does-config-work.html","https://docs.aws.amazon.com/config/latest/APIReference/API_Operations.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:config.amazonaws.com and\n event.action:(DeleteConfigRule or DeleteOrganizationConfigRule or DeleteConfigurationAggregator or\n DeleteConfigurationRecorder or DeleteConformancePack or DeleteOrganizationConformancePack or\n DeleteDeliveryChannel or DeleteRemediationConfiguration or DeleteRetentionConfiguration)\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"7024e2a0-315d-4334-bb1a-552d604f27bc:103.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7024e2a0-315d-4334-bb1a-552d604f27bc:103.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7024e2a0-315d-4334-bb1a-552d604f27bc:103.0.2.json new file mode 100644 index 0000000000000..0a024d4df25ef --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7024e2a0-315d-4334-bb1a-552d604f27bc:103.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Config Resource Deletion v103.0.2","rule_id":"7024e2a0-315d-4334-bb1a-552d604f27bc:103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to delete an AWS Config Service resource. An adversary may tamper with Config services in order to reduce visibility into the security posture of an account and / or its workload instances.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS Config Resource Deletion\n\nAWS Config provides a detailed view of the configuration of AWS resources in your AWS account. This includes how the\nresources are related to one another and how they were configured in the past so that you can see how the configurations\nand relationships change over time.\n\nThis rule looks for the deletion of AWS Config resources using various API actions. Attackers can do this to cover their\ntracks and impact security monitoring that relies on these sources.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Identify the AWS resource that was involved and its criticality, ownership, and role in the environment. Also investigate\nif the resource is security-related.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Privileged IAM users with security responsibilities may be expected to make changes to the Config service in order to align with local security policies and requirements. Automation, orchestration, and security tools may also make changes to the Config service, where they are used to automate setup or configuration of AWS accounts. Other kinds of user or service contexts do not commonly make changes to this service."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/config/latest/developerguide/how-does-config-work.html","https://docs.aws.amazon.com/config/latest/APIReference/API_Operations.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:config.amazonaws.com and\n event.action:(DeleteConfigRule or DeleteOrganizationConfigRule or DeleteConfigurationAggregator or\n DeleteConfigurationRecorder or DeleteConformancePack or DeleteOrganizationConformancePack or\n DeleteDeliveryChannel or DeleteRemediationConfiguration or DeleteRetentionConfiguration)\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"7024e2a0-315d-4334-bb1a-552d604f27bc:103.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/70d12c9c-0dbd-4a1a-bc44-1467502c9cf6:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/70d12c9c-0dbd-4a1a-bc44-1467502c9cf6:101.0.0.json new file mode 100644 index 0000000000000..7b1c7aadd1ba8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/70d12c9c-0dbd-4a1a-bc44-1467502c9cf6:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via WMI Standard Registry Provider v101.0.0","rule_id":"70d12c9c-0dbd-4a1a-bc44-1467502c9cf6:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the Windows Management Instrumentation StdRegProv (registry provider) to modify commonly abused registry locations for persistence.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/previous-versions/windows/desktop/regprov/stdregprov","https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-1"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]},{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1047","name":"Windows Management Instrumentation","reference":"https://attack.mitre.org/techniques/T1047/"}]}],"language":"eql","query":"registry where\n registry.data.strings != null and process.name : \"WmiPrvSe.exe\" and\n registry.path : (\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\WOW6432Node\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnce\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnceEx\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnce\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnceEx\\\\*\",\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\ServiceDLL\",\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\ImagePath\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\\\\*\",\n \"HKEY_USERS\\\\*\\\\Environment\\\\UserInitMprLogonScript\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\Load\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\Shell\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logoff\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logon\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Shutdown\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Startup\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Ctf\\\\LangBarAddin\\\\*\\\\FilePath\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Exec\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Command Processor\\\\Autorun\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"70d12c9c-0dbd-4a1a-bc44-1467502c9cf6:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/70d12c9c-0dbd-4a1a-bc44-1467502c9cf6:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/70d12c9c-0dbd-4a1a-bc44-1467502c9cf6:101.0.1.json new file mode 100644 index 0000000000000..6c7d618b234b7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/70d12c9c-0dbd-4a1a-bc44-1467502c9cf6:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via WMI Standard Registry Provider v101.0.1","rule_id":"70d12c9c-0dbd-4a1a-bc44-1467502c9cf6:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the Windows Management Instrumentation StdRegProv (registry provider) to modify commonly abused registry locations for persistence.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/previous-versions/windows/desktop/regprov/stdregprov","https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-1"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]},{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1047","name":"Windows Management Instrumentation","reference":"https://attack.mitre.org/techniques/T1047/"}]}],"language":"eql","query":"registry where\n registry.data.strings != null and process.name : \"WmiPrvSe.exe\" and\n registry.path : (\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\WOW6432Node\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnce\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnceEx\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnce\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnceEx\\\\*\",\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\ServiceDLL\",\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\ImagePath\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\\\\*\",\n \"HKEY_USERS\\\\*\\\\Environment\\\\UserInitMprLogonScript\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\Load\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\Shell\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logoff\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logon\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Shutdown\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Startup\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Ctf\\\\LangBarAddin\\\\*\\\\FilePath\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Exec\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Command Processor\\\\Autorun\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"70d12c9c-0dbd-4a1a-bc44-1467502c9cf6:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/70d12c9c-0dbd-4a1a-bc44-1467502c9cf6:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/70d12c9c-0dbd-4a1a-bc44-1467502c9cf6:101.0.2.json new file mode 100644 index 0000000000000..57a23102d2223 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/70d12c9c-0dbd-4a1a-bc44-1467502c9cf6:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via WMI Standard Registry Provider v101.0.2","rule_id":"70d12c9c-0dbd-4a1a-bc44-1467502c9cf6:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the Windows Management Instrumentation StdRegProv (registry provider) to modify commonly abused registry locations for persistence.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/previous-versions/windows/desktop/regprov/stdregprov","https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-1"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]},{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1047","name":"Windows Management Instrumentation","reference":"https://attack.mitre.org/techniques/T1047/"}]}],"language":"eql","query":"registry where\n registry.data.strings != null and process.name : \"WmiPrvSe.exe\" and\n registry.path : (\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\WOW6432Node\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnce\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnceEx\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnce\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnceEx\\\\*\",\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\ServiceDLL\",\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\ImagePath\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\\\\*\",\n \"HKEY_USERS\\\\*\\\\Environment\\\\UserInitMprLogonScript\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\Load\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\Shell\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logoff\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Logon\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Shutdown\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\System\\\\Scripts\\\\Startup\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Ctf\\\\LangBarAddin\\\\*\\\\FilePath\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Exec\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Extensions\\\\*\\\\Script\",\n \"HKEY_USERS\\\\*\\\\SOFTWARE\\\\Microsoft\\\\Command Processor\\\\Autorun\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"70d12c9c-0dbd-4a1a-bc44-1467502c9cf6:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/70fa1af4-27fd-4f26-bd03-50b6af6b9e24:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/70fa1af4-27fd-4f26-bd03-50b6af6b9e24:100.0.0.json new file mode 100644 index 0000000000000..8ab94cc688cc1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/70fa1af4-27fd-4f26-bd03-50b6af6b9e24:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Unload Elastic Endpoint Security Kernel Extension v100.0.0","rule_id":"70fa1af4-27fd-4f26-bd03-50b6af6b9e24:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to unload the Elastic Endpoint Security kernel extension via the kextunload command.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.006","name":"Kernel Modules and Extensions","reference":"https://attack.mitre.org/techniques/T1547/006/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:kextunload and process.args:(\"/System/Library/Extensions/EndpointSecurity.kext\" or \"EndpointSecurity.kext\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"70fa1af4-27fd-4f26-bd03-50b6af6b9e24:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/70fa1af4-27fd-4f26-bd03-50b6af6b9e24:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/70fa1af4-27fd-4f26-bd03-50b6af6b9e24:100.0.1.json new file mode 100644 index 0000000000000..cf25608836784 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/70fa1af4-27fd-4f26-bd03-50b6af6b9e24:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Unload Elastic Endpoint Security Kernel Extension v100.0.1","rule_id":"70fa1af4-27fd-4f26-bd03-50b6af6b9e24:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to unload the Elastic Endpoint Security kernel extension via the kextunload command.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.006","name":"Kernel Modules and Extensions","reference":"https://attack.mitre.org/techniques/T1547/006/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:kextunload and process.args:(\"/System/Library/Extensions/EndpointSecurity.kext\" or \"EndpointSecurity.kext\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"70fa1af4-27fd-4f26-bd03-50b6af6b9e24:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/70fa1af4-27fd-4f26-bd03-50b6af6b9e24:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/70fa1af4-27fd-4f26-bd03-50b6af6b9e24:100.0.2.json new file mode 100644 index 0000000000000..2be21ed129f21 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/70fa1af4-27fd-4f26-bd03-50b6af6b9e24:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Unload Elastic Endpoint Security Kernel Extension v100.0.2","rule_id":"70fa1af4-27fd-4f26-bd03-50b6af6b9e24:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to unload the Elastic Endpoint Security kernel extension via the kextunload command.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.006","name":"Kernel Modules and Extensions","reference":"https://attack.mitre.org/techniques/T1547/006/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:kextunload and process.args:(\"/System/Library/Extensions/EndpointSecurity.kext\" or \"EndpointSecurity.kext\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"70fa1af4-27fd-4f26-bd03-50b6af6b9e24:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7164081a-3930-11ed-a261-0242ac120002:1.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7164081a-3930-11ed-a261-0242ac120002:1.0.0.json new file mode 100644 index 0000000000000..cd09548052b0f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7164081a-3930-11ed-a261-0242ac120002:1.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Container Created with Excessive Linux Capabilities v1.0.0","rule_id":"7164081a-3930-11ed-a261-0242ac120002:1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects a container deployed with one or more dangerously permissive Linux capabilities. An attacker with the ability to deploy a container with added capabilities could use this for further execution, lateral movement, or privilege escalation within a cluster. The capabilities detected in this rule have been used in container escapes to the host machine.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Kubernetes Container Created with Excessive Linux Capabilities\n\nLinux capabilities were designed to divide root privileges into smaller units. Each capability grants a thread just enough power to perform specific privileged tasks. In Kubernetes, containers are given a set of default capabilities that can be dropped or added to at the time of creation. Added capabilities entitle containers in a pod with additional privileges that can be used to change\ncore processes, change network settings of a cluster, or directly access the underlying host. The following have been used in container escape techniques:\n\nBPF - Allow creating BPF maps, loading BPF Type Format (BTF) data, retrieve JITed code of BPF programs, and more. \nDAC_READ_SEARCH - Bypass file read permission checks and directory read and execute permission checks. \nNET_ADMIN - Perform various network-related operations. \nSYS_ADMIN - Perform a range of system administration operations. \nSYS_BOOT - Use reboot(2) and kexec_load(2), reboot and load a new kernel for later execution. \nSYS_MODULE - Load and unload kernel modules. \nSYS_PTRACE - Trace arbitrary processes using ptrace(2).\nSYS_RAWIO - Perform I/O port operations (iopl(2) and ioperm(2)). \nSYSLOG - Perform privileged syslog(2) operations.\n\n### False positive analysis\n\n- While these capabilities are not included by default in containers, some legitimate images may need to add them. This rule leaves space for the exception of trusted container images. To add an exception, add the trusted container image name to the query field, kubernetes.audit.requestObject.spec.containers.image.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some container images require the addition of privileged capabilities. This rule leaves space for the exception of trusted container images. To add an exception, add the trusted container image name to the query field, kubernetes.audit.requestObject.spec.containers.image."],"references":["https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-capabilities-for-a-container","https://0xn3va.gitbook.io/cheat-sheets/container/escaping/excessive-capabilities","https://man7.org/linux/man-pages/man7/capabilities.7.html","https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset: kubernetes.audit_logs \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\"\n and kubernetes.audit.verb: create \n and kubernetes.audit.objectRef.resource: pods \n and kubernetes.audit.requestObject.spec.containers.securityContext.capabilities.add: (\"BPF\" or \"DAC_READ_SEARCH\" or \"NET_ADMIN\" or \"SYS_ADMIN\" or \"SYS_BOOT\" or \"SYS_MODULE\" or \"SYS_PTRACE\" or \"SYS_RAWIO\" or \"SYSLOG\") \n and not kubernetes.audit.requestObject.spec.containers.image : (\"docker.elastic.co/beats/elastic-agent:8.4.0\" or \"rancher/klipper-lb:v0.3.5\" or \"\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.securityContext.capabilities.add","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"7164081a-3930-11ed-a261-0242ac120002:1.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7164081a-3930-11ed-a261-0242ac120002:1.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7164081a-3930-11ed-a261-0242ac120002:1.0.1.json new file mode 100644 index 0000000000000..36283c84f72fa --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7164081a-3930-11ed-a261-0242ac120002:1.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Container Created with Excessive Linux Capabilities v1.0.1","rule_id":"7164081a-3930-11ed-a261-0242ac120002:1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects a container deployed with one or more dangerously permissive Linux capabilities. An attacker with the ability to deploy a container with added capabilities could use this for further execution, lateral movement, or privilege escalation within a cluster. The capabilities detected in this rule have been used in container escapes to the host machine.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Kubernetes Container Created with Excessive Linux Capabilities\n\nLinux capabilities were designed to divide root privileges into smaller units. Each capability grants a thread just enough power to perform specific privileged tasks. In Kubernetes, containers are given a set of default capabilities that can be dropped or added to at the time of creation. Added capabilities entitle containers in a pod with additional privileges that can be used to change\ncore processes, change network settings of a cluster, or directly access the underlying host. The following have been used in container escape techniques:\n\nBPF - Allow creating BPF maps, loading BPF Type Format (BTF) data, retrieve JITed code of BPF programs, and more. \nDAC_READ_SEARCH - Bypass file read permission checks and directory read and execute permission checks. \nNET_ADMIN - Perform various network-related operations. \nSYS_ADMIN - Perform a range of system administration operations. \nSYS_BOOT - Use reboot(2) and kexec_load(2), reboot and load a new kernel for later execution. \nSYS_MODULE - Load and unload kernel modules. \nSYS_PTRACE - Trace arbitrary processes using ptrace(2).\nSYS_RAWIO - Perform I/O port operations (iopl(2) and ioperm(2)). \nSYSLOG - Perform privileged syslog(2) operations.\n\n### False positive analysis\n\n- While these capabilities are not included by default in containers, some legitimate images may need to add them. This rule leaves space for the exception of trusted container images. To add an exception, add the trusted container image name to the query field, kubernetes.audit.requestObject.spec.containers.image.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some container images require the addition of privileged capabilities. This rule leaves space for the exception of trusted container images. To add an exception, add the trusted container image name to the query field, kubernetes.audit.requestObject.spec.containers.image."],"references":["https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-capabilities-for-a-container","https://0xn3va.gitbook.io/cheat-sheets/container/escaping/excessive-capabilities","https://man7.org/linux/man-pages/man7/capabilities.7.html","https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset: kubernetes.audit_logs \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\"\n and kubernetes.audit.verb: create \n and kubernetes.audit.objectRef.resource: pods \n and kubernetes.audit.requestObject.spec.containers.securityContext.capabilities.add: (\"BPF\" or \"DAC_READ_SEARCH\" or \"NET_ADMIN\" or \"SYS_ADMIN\" or \"SYS_BOOT\" or \"SYS_MODULE\" or \"SYS_PTRACE\" or \"SYS_RAWIO\" or \"SYSLOG\") \n and not kubernetes.audit.requestObject.spec.containers.image : (\"docker.elastic.co/beats/elastic-agent:8.4.0\" or \"rancher/klipper-lb:v0.3.5\" or \"\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.securityContext.capabilities.add","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"7164081a-3930-11ed-a261-0242ac120002:1.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7164081a-3930-11ed-a261-0242ac120002:1.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7164081a-3930-11ed-a261-0242ac120002:1.0.2.json new file mode 100644 index 0000000000000..2468127358302 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7164081a-3930-11ed-a261-0242ac120002:1.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Container Created with Excessive Linux Capabilities v1.0.2","rule_id":"7164081a-3930-11ed-a261-0242ac120002:1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects a container deployed with one or more dangerously permissive Linux capabilities. An attacker with the ability to deploy a container with added capabilities could use this for further execution, lateral movement, or privilege escalation within a cluster. The capabilities detected in this rule have been used in container escapes to the host machine.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Kubernetes Container Created with Excessive Linux Capabilities\n\nLinux capabilities were designed to divide root privileges into smaller units. Each capability grants a thread just enough power to perform specific privileged tasks. In Kubernetes, containers are given a set of default capabilities that can be dropped or added to at the time of creation. Added capabilities entitle containers in a pod with additional privileges that can be used to change\ncore processes, change network settings of a cluster, or directly access the underlying host. The following have been used in container escape techniques:\n\nBPF - Allow creating BPF maps, loading BPF Type Format (BTF) data, retrieve JITed code of BPF programs, and more. \nDAC_READ_SEARCH - Bypass file read permission checks and directory read and execute permission checks. \nNET_ADMIN - Perform various network-related operations. \nSYS_ADMIN - Perform a range of system administration operations. \nSYS_BOOT - Use reboot(2) and kexec_load(2), reboot and load a new kernel for later execution. \nSYS_MODULE - Load and unload kernel modules. \nSYS_PTRACE - Trace arbitrary processes using ptrace(2).\nSYS_RAWIO - Perform I/O port operations (iopl(2) and ioperm(2)). \nSYSLOG - Perform privileged syslog(2) operations.\n\n### False positive analysis\n\n- While these capabilities are not included by default in containers, some legitimate images may need to add them. This rule leaves space for the exception of trusted container images. To add an exception, add the trusted container image name to the query field, kubernetes.audit.requestObject.spec.containers.image.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some container images require the addition of privileged capabilities. This rule leaves space for the exception of trusted container images. To add an exception, add the trusted container image name to the query field, kubernetes.audit.requestObject.spec.containers.image."],"references":["https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-capabilities-for-a-container","https://0xn3va.gitbook.io/cheat-sheets/container/escaping/excessive-capabilities","https://man7.org/linux/man-pages/man7/capabilities.7.html","https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset: kubernetes.audit_logs \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\"\n and kubernetes.audit.verb: create \n and kubernetes.audit.objectRef.resource: pods \n and kubernetes.audit.requestObject.spec.containers.securityContext.capabilities.add: (\"BPF\" or \"DAC_READ_SEARCH\" or \"NET_ADMIN\" or \"SYS_ADMIN\" or \"SYS_BOOT\" or \"SYS_MODULE\" or \"SYS_PTRACE\" or \"SYS_RAWIO\" or \"SYSLOG\") \n and not kubernetes.audit.requestObject.spec.containers.image : (\"docker.elastic.co/beats/elastic-agent:8.4.0\" or \"rancher/klipper-lb:v0.3.5\" or \"\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.securityContext.capabilities.add","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"7164081a-3930-11ed-a261-0242ac120002:1.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/717f82c2-7741-4f9b-85b8-d06aeb853f4f:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/717f82c2-7741-4f9b-85b8-d06aeb853f4f:100.0.0.json new file mode 100644 index 0000000000000..80fa721d68df7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/717f82c2-7741-4f9b-85b8-d06aeb853f4f:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Modification of Dynamic Linker Preload Shared Object v100.0.0","rule_id":"717f82c2-7741-4f9b-85b8-d06aeb853f4f:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modification of the dynamic linker preload shared object (ld.so.preload). Adversaries may execute malicious payloads by hijacking the dynamic linker used to load libraries.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.anomali.com/blog/rocke-evolves-its-arsenal-with-a-new-malware-family-written-in-golang"],"tags":["Elastic","Host","Linux","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.006","name":"Dynamic Linker Hijacking","reference":"https://attack.mitre.org/techniques/T1574/006/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and not event.type:deletion and file.path:/etc/ld.so.preload\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}]},"id":"717f82c2-7741-4f9b-85b8-d06aeb853f4f:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/717f82c2-7741-4f9b-85b8-d06aeb853f4f:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/717f82c2-7741-4f9b-85b8-d06aeb853f4f:100.0.1.json new file mode 100644 index 0000000000000..c99b7d187c96c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/717f82c2-7741-4f9b-85b8-d06aeb853f4f:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Modification of Dynamic Linker Preload Shared Object v100.0.1","rule_id":"717f82c2-7741-4f9b-85b8-d06aeb853f4f:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modification of the dynamic linker preload shared object (ld.so.preload). Adversaries may execute malicious payloads by hijacking the dynamic linker used to load libraries.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.anomali.com/blog/rocke-evolves-its-arsenal-with-a-new-malware-family-written-in-golang"],"tags":["Elastic","Host","Linux","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.006","name":"Dynamic Linker Hijacking","reference":"https://attack.mitre.org/techniques/T1574/006/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and not event.type:deletion and file.path:/etc/ld.so.preload\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}]},"id":"717f82c2-7741-4f9b-85b8-d06aeb853f4f:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/717f82c2-7741-4f9b-85b8-d06aeb853f4f:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/717f82c2-7741-4f9b-85b8-d06aeb853f4f:100.0.2.json new file mode 100644 index 0000000000000..9d7fb27ee56fc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/717f82c2-7741-4f9b-85b8-d06aeb853f4f:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Modification of Dynamic Linker Preload Shared Object v100.0.2","rule_id":"717f82c2-7741-4f9b-85b8-d06aeb853f4f:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modification of the dynamic linker preload shared object (ld.so.preload). Adversaries may execute malicious payloads by hijacking the dynamic linker used to load libraries.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.anomali.com/blog/rocke-evolves-its-arsenal-with-a-new-malware-family-written-in-golang"],"tags":["Elastic","Host","Linux","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.006","name":"Dynamic Linker Hijacking","reference":"https://attack.mitre.org/techniques/T1574/006/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and not event.type:deletion and file.path:/etc/ld.so.preload\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}]},"id":"717f82c2-7741-4f9b-85b8-d06aeb853f4f:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/71bccb61-e19b-452f-b104-79a60e546a95:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/71bccb61-e19b-452f-b104-79a60e546a95:102.0.0.json new file mode 100644 index 0000000000000..981ce577eb8d4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/71bccb61-e19b-452f-b104-79a60e546a95:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual File Creation - Alternate Data Stream v102.0.0","rule_id":"71bccb61-e19b-452f-b104-79a60e546a95:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious creation of Alternate Data Streams on highly targeted files. This is uncommon for legitimate files and sometimes done by adversaries to hide malware.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual File Creation - Alternate Data Stream\n\nAlternate Data Streams (ADS) are file attributes only found on the NTFS file system. In this file system, files are\nbuilt up from a couple of attributes; one of them is $Data, also known as the data attribute.\n\nThe regular data stream, also referred to as the unnamed data stream since the name string of this attribute is empty,\ncontains the data inside the file. So any data stream that has a name is considered an alternate data stream.\n\nAttackers can abuse these alternate data streams to hide malicious files, string payloads, etc. This rule detects the\ncreation of alternate data streams on highly targeted file types.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Retrieve the contents of the alternate data stream, and analyze it for potential maliciousness. Analysts can use the\nfollowing PowerShell cmdlet to accomplish this:\n - `Get-Content -file C:\\Path\\To\\file.exe -stream ADSname`\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination\nof process executable and file conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.004","name":"NTFS File Attributes","reference":"https://attack.mitre.org/techniques/T1564/004/"}]}]}],"language":"eql","query":"file where event.type == \"creation\" and\n\n file.path : \"C:\\\\*:*\" and\n not file.path : \"C:\\\\*:zone.identifier*\" and\n\n not process.executable :\n (\"?:\\\\windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Windows\\\\System32\\\\inetsrv\\\\w3wp.exe\",\n \"?:\\\\Windows\\\\explorer.exe\",\n \"?:\\\\Windows\\\\System32\\\\sihost.exe\",\n \"?:\\\\Windows\\\\System32\\\\PickerHost.exe\",\n \"?:\\\\Windows\\\\System32\\\\SearchProtocolHost.exe\",\n \"?:\\\\Program Files (x86)\\\\Dropbox\\\\Client\\\\Dropbox.exe\",\n \"?:\\\\Program Files\\\\Rivet Networks\\\\SmartByte\\\\SmartByteNetworkService.exe\",\n \"?:\\\\Program Files (x86)\\\\Microsoft\\\\Edge\\\\Application\\\\msedge.exe\",\n \"?:\\\\Program Files\\\\ExpressConnect\\\\ExpressConnectNetworkService.exe\",\n \"?:\\\\Program Files (x86)\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n \"?:\\\\Program Files\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n \"?:\\\\Program Files\\\\Mozilla Firefox\\\\firefox.exe\") and\n\n file.extension :\n (\n \"pdf\",\n \"dll\",\n \"png\",\n \"exe\",\n \"dat\",\n \"com\",\n \"bat\",\n \"cmd\",\n \"sys\",\n \"vbs\",\n \"ps1\",\n \"hta\",\n \"txt\",\n \"vbe\",\n \"js\",\n \"wsh\",\n \"docx\",\n \"doc\",\n \"xlsx\",\n \"xls\",\n \"pptx\",\n \"ppt\",\n \"rtf\",\n \"gif\",\n \"jpg\",\n \"png\",\n \"bmp\",\n \"img\",\n \"iso\"\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"71bccb61-e19b-452f-b104-79a60e546a95:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/71bccb61-e19b-452f-b104-79a60e546a95:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/71bccb61-e19b-452f-b104-79a60e546a95:102.0.1.json new file mode 100644 index 0000000000000..b04c0bc2ba031 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/71bccb61-e19b-452f-b104-79a60e546a95:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual File Creation - Alternate Data Stream v102.0.1","rule_id":"71bccb61-e19b-452f-b104-79a60e546a95:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious creation of Alternate Data Streams on highly targeted files. This is uncommon for legitimate files and sometimes done by adversaries to hide malware.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual File Creation - Alternate Data Stream\n\nAlternate Data Streams (ADS) are file attributes only found on the NTFS file system. In this file system, files are\nbuilt up from a couple of attributes; one of them is $Data, also known as the data attribute.\n\nThe regular data stream, also referred to as the unnamed data stream since the name string of this attribute is empty,\ncontains the data inside the file. So any data stream that has a name is considered an alternate data stream.\n\nAttackers can abuse these alternate data streams to hide malicious files, string payloads, etc. This rule detects the\ncreation of alternate data streams on highly targeted file types.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Retrieve the contents of the alternate data stream, and analyze it for potential maliciousness. Analysts can use the\nfollowing PowerShell cmdlet to accomplish this:\n - `Get-Content -file C:\\Path\\To\\file.exe -stream ADSname`\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination\nof process executable and file conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.004","name":"NTFS File Attributes","reference":"https://attack.mitre.org/techniques/T1564/004/"}]}]}],"language":"eql","query":"file where event.type == \"creation\" and\n\n file.path : \"C:\\\\*:*\" and\n not file.path : \"C:\\\\*:zone.identifier*\" and\n\n not process.executable :\n (\"?:\\\\windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Windows\\\\System32\\\\inetsrv\\\\w3wp.exe\",\n \"?:\\\\Windows\\\\explorer.exe\",\n \"?:\\\\Windows\\\\System32\\\\sihost.exe\",\n \"?:\\\\Windows\\\\System32\\\\PickerHost.exe\",\n \"?:\\\\Windows\\\\System32\\\\SearchProtocolHost.exe\",\n \"?:\\\\Program Files (x86)\\\\Dropbox\\\\Client\\\\Dropbox.exe\",\n \"?:\\\\Program Files\\\\Rivet Networks\\\\SmartByte\\\\SmartByteNetworkService.exe\",\n \"?:\\\\Program Files (x86)\\\\Microsoft\\\\Edge\\\\Application\\\\msedge.exe\",\n \"?:\\\\Program Files\\\\ExpressConnect\\\\ExpressConnectNetworkService.exe\",\n \"?:\\\\Program Files (x86)\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n \"?:\\\\Program Files\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n \"?:\\\\Program Files\\\\Mozilla Firefox\\\\firefox.exe\") and\n\n file.extension :\n (\n \"pdf\",\n \"dll\",\n \"png\",\n \"exe\",\n \"dat\",\n \"com\",\n \"bat\",\n \"cmd\",\n \"sys\",\n \"vbs\",\n \"ps1\",\n \"hta\",\n \"txt\",\n \"vbe\",\n \"js\",\n \"wsh\",\n \"docx\",\n \"doc\",\n \"xlsx\",\n \"xls\",\n \"pptx\",\n \"ppt\",\n \"rtf\",\n \"gif\",\n \"jpg\",\n \"png\",\n \"bmp\",\n \"img\",\n \"iso\"\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"71bccb61-e19b-452f-b104-79a60e546a95:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/71bccb61-e19b-452f-b104-79a60e546a95:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/71bccb61-e19b-452f-b104-79a60e546a95:102.0.2.json new file mode 100644 index 0000000000000..5e2c76ead9315 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/71bccb61-e19b-452f-b104-79a60e546a95:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual File Creation - Alternate Data Stream v102.0.2","rule_id":"71bccb61-e19b-452f-b104-79a60e546a95:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious creation of Alternate Data Streams on highly targeted files. This is uncommon for legitimate files and sometimes done by adversaries to hide malware.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual File Creation - Alternate Data Stream\n\nAlternate Data Streams (ADS) are file attributes only found on the NTFS file system. In this file system, files are\nbuilt up from a couple of attributes; one of them is $Data, also known as the data attribute.\n\nThe regular data stream, also referred to as the unnamed data stream since the name string of this attribute is empty,\ncontains the data inside the file. So any data stream that has a name is considered an alternate data stream.\n\nAttackers can abuse these alternate data streams to hide malicious files, string payloads, etc. This rule detects the\ncreation of alternate data streams on highly targeted file types.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Retrieve the contents of the alternate data stream, and analyze it for potential maliciousness. Analysts can use the\nfollowing PowerShell cmdlet to accomplish this:\n - `Get-Content -file C:\\Path\\To\\file.exe -stream ADSname`\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination\nof process executable and file conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.004","name":"NTFS File Attributes","reference":"https://attack.mitre.org/techniques/T1564/004/"}]}]}],"language":"eql","query":"file where event.type == \"creation\" and\n\n file.path : \"C:\\\\*:*\" and\n not file.path : \"C:\\\\*:zone.identifier*\" and\n\n not process.executable :\n (\"?:\\\\windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Windows\\\\System32\\\\inetsrv\\\\w3wp.exe\",\n \"?:\\\\Windows\\\\explorer.exe\",\n \"?:\\\\Windows\\\\System32\\\\sihost.exe\",\n \"?:\\\\Windows\\\\System32\\\\PickerHost.exe\",\n \"?:\\\\Windows\\\\System32\\\\SearchProtocolHost.exe\",\n \"?:\\\\Program Files (x86)\\\\Dropbox\\\\Client\\\\Dropbox.exe\",\n \"?:\\\\Program Files\\\\Rivet Networks\\\\SmartByte\\\\SmartByteNetworkService.exe\",\n \"?:\\\\Program Files (x86)\\\\Microsoft\\\\Edge\\\\Application\\\\msedge.exe\",\n \"?:\\\\Program Files\\\\ExpressConnect\\\\ExpressConnectNetworkService.exe\",\n \"?:\\\\Program Files (x86)\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n \"?:\\\\Program Files\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe\",\n \"?:\\\\Program Files\\\\Mozilla Firefox\\\\firefox.exe\") and\n\n file.extension :\n (\n \"pdf\",\n \"dll\",\n \"png\",\n \"exe\",\n \"dat\",\n \"com\",\n \"bat\",\n \"cmd\",\n \"sys\",\n \"vbs\",\n \"ps1\",\n \"hta\",\n \"txt\",\n \"vbe\",\n \"js\",\n \"wsh\",\n \"docx\",\n \"doc\",\n \"xlsx\",\n \"xls\",\n \"pptx\",\n \"ppt\",\n \"rtf\",\n \"gif\",\n \"jpg\",\n \"png\",\n \"bmp\",\n \"img\",\n \"iso\"\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"71bccb61-e19b-452f-b104-79a60e546a95:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/71c5cb27-eca5-4151-bb47-64bc3f883270:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/71c5cb27-eca5-4151-bb47-64bc3f883270:100.0.0.json new file mode 100644 index 0000000000000..4b92e2de1cef5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/71c5cb27-eca5-4151-bb47-64bc3f883270:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious RDP ActiveX Client Loaded v100.0.0","rule_id":"71c5cb27-eca5-4151-bb47-64bc3f883270:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious Image Loading of the Remote Desktop Services ActiveX Client (mstscax), this may indicate the presence of RDP lateral movement capability.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/revisiting-remote-desktop-lateral-movement-8fb905cb46c3"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : \"mstscax.dll\" or file.name : \"mstscax.dll\") and\n /* depending on noise in your env add here extra paths */\n process.executable :\n (\n \"C:\\\\Windows\\\\*\",\n \"C:\\\\Users\\\\Public\\\\*\",\n \"C:\\\\Users\\\\Default\\\\*\",\n \"C:\\\\Intel\\\\*\",\n \"C:\\\\PerfLogs\\\\*\",\n \"C:\\\\ProgramData\\\\*\",\n \"\\\\Device\\\\Mup\\\\*\",\n \"\\\\\\\\*\"\n ) and\n /* add here FPs */\n not process.executable : (\"C:\\\\Windows\\\\System32\\\\mstsc.exe\", \"C:\\\\Windows\\\\SysWOW64\\\\mstsc.exe\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"71c5cb27-eca5-4151-bb47-64bc3f883270:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/71c5cb27-eca5-4151-bb47-64bc3f883270:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/71c5cb27-eca5-4151-bb47-64bc3f883270:100.0.1.json new file mode 100644 index 0000000000000..3b550d1145baa --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/71c5cb27-eca5-4151-bb47-64bc3f883270:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious RDP ActiveX Client Loaded v100.0.1","rule_id":"71c5cb27-eca5-4151-bb47-64bc3f883270:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious Image Loading of the Remote Desktop Services ActiveX Client (mstscax), this may indicate the presence of RDP lateral movement capability.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/revisiting-remote-desktop-lateral-movement-8fb905cb46c3"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : \"mstscax.dll\" or file.name : \"mstscax.dll\") and\n /* depending on noise in your env add here extra paths */\n process.executable :\n (\n \"C:\\\\Windows\\\\*\",\n \"C:\\\\Users\\\\Public\\\\*\",\n \"C:\\\\Users\\\\Default\\\\*\",\n \"C:\\\\Intel\\\\*\",\n \"C:\\\\PerfLogs\\\\*\",\n \"C:\\\\ProgramData\\\\*\",\n \"\\\\Device\\\\Mup\\\\*\",\n \"\\\\\\\\*\"\n ) and\n /* add here FPs */\n not process.executable : (\"C:\\\\Windows\\\\System32\\\\mstsc.exe\", \"C:\\\\Windows\\\\SysWOW64\\\\mstsc.exe\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"71c5cb27-eca5-4151-bb47-64bc3f883270:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/71c5cb27-eca5-4151-bb47-64bc3f883270:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/71c5cb27-eca5-4151-bb47-64bc3f883270:100.0.2.json new file mode 100644 index 0000000000000..7a6515edb3b3a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/71c5cb27-eca5-4151-bb47-64bc3f883270:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious RDP ActiveX Client Loaded v100.0.2","rule_id":"71c5cb27-eca5-4151-bb47-64bc3f883270:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious Image Loading of the Remote Desktop Services ActiveX Client (mstscax), this may indicate the presence of RDP lateral movement capability.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/revisiting-remote-desktop-lateral-movement-8fb905cb46c3"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : \"mstscax.dll\" or file.name : \"mstscax.dll\") and\n /* depending on noise in your env add here extra paths */\n process.executable :\n (\n \"C:\\\\Windows\\\\*\",\n \"C:\\\\Users\\\\Public\\\\*\",\n \"C:\\\\Users\\\\Default\\\\*\",\n \"C:\\\\Intel\\\\*\",\n \"C:\\\\PerfLogs\\\\*\",\n \"C:\\\\ProgramData\\\\*\",\n \"\\\\Device\\\\Mup\\\\*\",\n \"\\\\\\\\*\"\n ) and\n /* add here FPs */\n not process.executable : (\"C:\\\\Windows\\\\System32\\\\mstsc.exe\", \"C:\\\\Windows\\\\SysWOW64\\\\mstsc.exe\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"71c5cb27-eca5-4151-bb47-64bc3f883270:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/721999d0-7ab2-44bf-b328-6e63367b9b29:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/721999d0-7ab2-44bf-b328-6e63367b9b29:101.0.0.json new file mode 100644 index 0000000000000..b308a2535a4ae --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/721999d0-7ab2-44bf-b328-6e63367b9b29:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Potential ransomware activity v101.0.0","rule_id":"721999d0-7ab2-44bf-b328-6e63367b9b29:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when Microsoft Cloud App Security reports that a user has uploaded files to the cloud that might be infected with ransomware.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["If Cloud App Security identifies, for example, a high rate of file uploads or file deletion activities it may represent an adverse encryption process."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/cloud-app-security/anomaly-detection-policy","https://docs.microsoft.com/en-us/cloud-app-security/policy-template-reference"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1486","name":"Data Encrypted for Impact","reference":"https://attack.mitre.org/techniques/T1486/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:SecurityComplianceCenter and event.category:web and event.action:\"Potential ransomware activity\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"721999d0-7ab2-44bf-b328-6e63367b9b29:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/721999d0-7ab2-44bf-b328-6e63367b9b29:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/721999d0-7ab2-44bf-b328-6e63367b9b29:101.0.1.json new file mode 100644 index 0000000000000..45cad752d69e3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/721999d0-7ab2-44bf-b328-6e63367b9b29:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Potential ransomware activity v101.0.1","rule_id":"721999d0-7ab2-44bf-b328-6e63367b9b29:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when Microsoft Cloud App Security reports that a user has uploaded files to the cloud that might be infected with ransomware.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["If Cloud App Security identifies, for example, a high rate of file uploads or file deletion activities it may represent an adverse encryption process."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/cloud-app-security/anomaly-detection-policy","https://docs.microsoft.com/en-us/cloud-app-security/policy-template-reference"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1486","name":"Data Encrypted for Impact","reference":"https://attack.mitre.org/techniques/T1486/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:SecurityComplianceCenter and event.category:web and event.action:\"Potential ransomware activity\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"721999d0-7ab2-44bf-b328-6e63367b9b29:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/721999d0-7ab2-44bf-b328-6e63367b9b29:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/721999d0-7ab2-44bf-b328-6e63367b9b29:101.0.2.json new file mode 100644 index 0000000000000..dca0d83cee7f9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/721999d0-7ab2-44bf-b328-6e63367b9b29:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Potential ransomware activity v101.0.2","rule_id":"721999d0-7ab2-44bf-b328-6e63367b9b29:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when Microsoft Cloud App Security reports that a user has uploaded files to the cloud that might be infected with ransomware.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["If Cloud App Security identifies, for example, a high rate of file uploads or file deletion activities it may represent an adverse encryption process."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/cloud-app-security/anomaly-detection-policy","https://docs.microsoft.com/en-us/cloud-app-security/policy-template-reference"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1486","name":"Data Encrypted for Impact","reference":"https://attack.mitre.org/techniques/T1486/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:SecurityComplianceCenter and event.category:web and event.action:\"Potential ransomware activity\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"721999d0-7ab2-44bf-b328-6e63367b9b29:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/729aa18d-06a6-41c7-b175-b65b739b1181:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/729aa18d-06a6-41c7-b175-b65b739b1181:102.0.0.json new file mode 100644 index 0000000000000..c5507c1dd15ff --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/729aa18d-06a6-41c7-b175-b65b739b1181:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Reset MFA Factors for an Okta User Account v102.0.0","rule_id":"729aa18d-06a6-41c7-b175-b65b739b1181:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to reset an Okta user's enrolled multi-factor authentication (MFA) factors. An adversary may attempt to reset the MFA factors for an Okta user's account in order to register new MFA factors and abuse the account to blend in with normal activity in the victim's environment.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if the MFA factors for Okta user accounts are regularly reset in your organization."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.mfa.factor.reset_all\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"729aa18d-06a6-41c7-b175-b65b739b1181:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/729aa18d-06a6-41c7-b175-b65b739b1181:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/729aa18d-06a6-41c7-b175-b65b739b1181:102.0.1.json new file mode 100644 index 0000000000000..e6eeb8744024d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/729aa18d-06a6-41c7-b175-b65b739b1181:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Reset MFA Factors for an Okta User Account v102.0.1","rule_id":"729aa18d-06a6-41c7-b175-b65b739b1181:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to reset an Okta user's enrolled multi-factor authentication (MFA) factors. An adversary may attempt to reset the MFA factors for an Okta user's account in order to register new MFA factors and abuse the account to blend in with normal activity in the victim's environment.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if the MFA factors for Okta user accounts are regularly reset in your organization."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.mfa.factor.reset_all\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"729aa18d-06a6-41c7-b175-b65b739b1181:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/729aa18d-06a6-41c7-b175-b65b739b1181:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/729aa18d-06a6-41c7-b175-b65b739b1181:102.0.2.json new file mode 100644 index 0000000000000..fa0ee270cec9a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/729aa18d-06a6-41c7-b175-b65b739b1181:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Reset MFA Factors for an Okta User Account v102.0.2","rule_id":"729aa18d-06a6-41c7-b175-b65b739b1181:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to reset an Okta user's enrolled multi-factor authentication (MFA) factors. An adversary may attempt to reset the MFA factors for an Okta user's account in order to register new MFA factors and abuse the account to blend in with normal activity in the victim's environment.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if the MFA factors for Okta user accounts are regularly reset in your organization."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.mfa.factor.reset_all\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"729aa18d-06a6-41c7-b175-b65b739b1181:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7405ddf1-6c8e-41ce-818f-48bea6bcaed8:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7405ddf1-6c8e-41ce-818f-48bea6bcaed8:102.0.0.json new file mode 100644 index 0000000000000..7760f3bc03d0c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7405ddf1-6c8e-41ce-818f-48bea6bcaed8:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Modification of Accessibility Binaries v102.0.0","rule_id":"7405ddf1-6c8e-41ce-818f-48bea6bcaed8:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Windows contains accessibility features that may be launched with a key combination before a user has logged in. An adversary can modify the way these programs are launched to get a command prompt or backdoor without logging in to the system.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Modification of Accessibility Binaries\n\nAdversaries may establish persistence and/or elevate privileges by executing malicious content triggered by\naccessibility features. Windows contains accessibility features that may be launched with a key combination before a\nuser has logged in (ex: when the user is on the Windows logon screen). An adversary can modify the way these programs\nare launched to get a command prompt or backdoor without logging in to the system.\n\nMore details can be found [here](https://attack.mitre.org/techniques/T1546/008/).\n\nThis rule looks for the execution of supposed accessibility binaries that don't match any of the accessibility features\nbinaries' original file names, which is likely a custom binary deployed by the attacker.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account and system owners and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity should not happen legitimately. The security team should address any potential benign true positive\n(B-TP), as this configuration can put the user and the domain at risk.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/blog/practical-security-engineering-stateful-detection"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.008","name":"Accessibility Features","reference":"https://attack.mitre.org/techniques/T1546/008/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.008","name":"Accessibility Features","reference":"https://attack.mitre.org/techniques/T1546/008/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"Utilman.exe\", \"winlogon.exe\") and user.name == \"SYSTEM\" and\n process.args :\n (\n \"C:\\\\Windows\\\\System32\\\\osk.exe\",\n \"C:\\\\Windows\\\\System32\\\\Magnify.exe\",\n \"C:\\\\Windows\\\\System32\\\\Narrator.exe\",\n \"C:\\\\Windows\\\\System32\\\\Sethc.exe\",\n \"utilman.exe\",\n \"ATBroker.exe\",\n \"DisplaySwitch.exe\",\n \"sethc.exe\"\n )\n and not process.pe.original_file_name in\n (\n \"osk.exe\",\n \"sethc.exe\",\n \"utilman2.exe\",\n \"DisplaySwitch.exe\",\n \"ATBroker.exe\",\n \"ScreenMagnifier.exe\",\n \"SR.exe\",\n \"Narrator.exe\",\n \"magnify.exe\",\n \"MAGNIFY.EXE\"\n )\n\n/* uncomment once in winlogbeat to avoid bypass with rogue process with matching pe original file name */\n/* and process.code_signature.subject_name == \"Microsoft Windows\" and process.code_signature.status == \"trusted\" */\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"7405ddf1-6c8e-41ce-818f-48bea6bcaed8:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7405ddf1-6c8e-41ce-818f-48bea6bcaed8:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7405ddf1-6c8e-41ce-818f-48bea6bcaed8:102.0.1.json new file mode 100644 index 0000000000000..6a6d9cc139d2c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7405ddf1-6c8e-41ce-818f-48bea6bcaed8:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Modification of Accessibility Binaries v102.0.1","rule_id":"7405ddf1-6c8e-41ce-818f-48bea6bcaed8:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Windows contains accessibility features that may be launched with a key combination before a user has logged in. An adversary can modify the way these programs are launched to get a command prompt or backdoor without logging in to the system.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Modification of Accessibility Binaries\n\nAdversaries may establish persistence and/or elevate privileges by executing malicious content triggered by\naccessibility features. Windows contains accessibility features that may be launched with a key combination before a\nuser has logged in (ex: when the user is on the Windows logon screen). An adversary can modify the way these programs\nare launched to get a command prompt or backdoor without logging in to the system.\n\nMore details can be found [here](https://attack.mitre.org/techniques/T1546/008/).\n\nThis rule looks for the execution of supposed accessibility binaries that don't match any of the accessibility features\nbinaries' original file names, which is likely a custom binary deployed by the attacker.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account and system owners and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity should not happen legitimately. The security team should address any potential benign true positive\n(B-TP), as this configuration can put the user and the domain at risk.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/blog/practical-security-engineering-stateful-detection"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.008","name":"Accessibility Features","reference":"https://attack.mitre.org/techniques/T1546/008/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.008","name":"Accessibility Features","reference":"https://attack.mitre.org/techniques/T1546/008/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"Utilman.exe\", \"winlogon.exe\") and user.name == \"SYSTEM\" and\n process.args :\n (\n \"C:\\\\Windows\\\\System32\\\\osk.exe\",\n \"C:\\\\Windows\\\\System32\\\\Magnify.exe\",\n \"C:\\\\Windows\\\\System32\\\\Narrator.exe\",\n \"C:\\\\Windows\\\\System32\\\\Sethc.exe\",\n \"utilman.exe\",\n \"ATBroker.exe\",\n \"DisplaySwitch.exe\",\n \"sethc.exe\"\n )\n and not process.pe.original_file_name in\n (\n \"osk.exe\",\n \"sethc.exe\",\n \"utilman2.exe\",\n \"DisplaySwitch.exe\",\n \"ATBroker.exe\",\n \"ScreenMagnifier.exe\",\n \"SR.exe\",\n \"Narrator.exe\",\n \"magnify.exe\",\n \"MAGNIFY.EXE\"\n )\n\n/* uncomment once in winlogbeat to avoid bypass with rogue process with matching pe original file name */\n/* and process.code_signature.subject_name == \"Microsoft Windows\" and process.code_signature.status == \"trusted\" */\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"7405ddf1-6c8e-41ce-818f-48bea6bcaed8:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7405ddf1-6c8e-41ce-818f-48bea6bcaed8:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7405ddf1-6c8e-41ce-818f-48bea6bcaed8:102.0.2.json new file mode 100644 index 0000000000000..aaba9e9d4a401 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7405ddf1-6c8e-41ce-818f-48bea6bcaed8:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Modification of Accessibility Binaries v102.0.2","rule_id":"7405ddf1-6c8e-41ce-818f-48bea6bcaed8:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Windows contains accessibility features that may be launched with a key combination before a user has logged in. An adversary can modify the way these programs are launched to get a command prompt or backdoor without logging in to the system.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Modification of Accessibility Binaries\n\nAdversaries may establish persistence and/or elevate privileges by executing malicious content triggered by\naccessibility features. Windows contains accessibility features that may be launched with a key combination before a\nuser has logged in (ex: when the user is on the Windows logon screen). An adversary can modify the way these programs\nare launched to get a command prompt or backdoor without logging in to the system.\n\nMore details can be found [here](https://attack.mitre.org/techniques/T1546/008/).\n\nThis rule looks for the execution of supposed accessibility binaries that don't match any of the accessibility features\nbinaries' original file names, which is likely a custom binary deployed by the attacker.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account and system owners and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity should not happen legitimately. The security team should address any potential benign true positive\n(B-TP), as this configuration can put the user and the domain at risk.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/blog/practical-security-engineering-stateful-detection"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.008","name":"Accessibility Features","reference":"https://attack.mitre.org/techniques/T1546/008/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.008","name":"Accessibility Features","reference":"https://attack.mitre.org/techniques/T1546/008/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"Utilman.exe\", \"winlogon.exe\") and user.name == \"SYSTEM\" and\n process.args :\n (\n \"C:\\\\Windows\\\\System32\\\\osk.exe\",\n \"C:\\\\Windows\\\\System32\\\\Magnify.exe\",\n \"C:\\\\Windows\\\\System32\\\\Narrator.exe\",\n \"C:\\\\Windows\\\\System32\\\\Sethc.exe\",\n \"utilman.exe\",\n \"ATBroker.exe\",\n \"DisplaySwitch.exe\",\n \"sethc.exe\"\n )\n and not process.pe.original_file_name in\n (\n \"osk.exe\",\n \"sethc.exe\",\n \"utilman2.exe\",\n \"DisplaySwitch.exe\",\n \"ATBroker.exe\",\n \"ScreenMagnifier.exe\",\n \"SR.exe\",\n \"Narrator.exe\",\n \"magnify.exe\",\n \"MAGNIFY.EXE\"\n )\n\n/* uncomment once in winlogbeat to avoid bypass with rogue process with matching pe original file name */\n/* and process.code_signature.subject_name == \"Microsoft Windows\" and process.code_signature.status == \"trusted\" */\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"7405ddf1-6c8e-41ce-818f-48bea6bcaed8:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7453e19e-3dbf-4e4e-9ae0-33d6c6ed15e1:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7453e19e-3dbf-4e4e-9ae0-33d6c6ed15e1:100.0.0.json new file mode 100644 index 0000000000000..b157003002fc4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7453e19e-3dbf-4e4e-9ae0-33d6c6ed15e1:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Modification of Environment Variable via Launchctl v100.0.0","rule_id":"7453e19e-3dbf-4e4e-9ae0-33d6c6ed15e1:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to an environment variable using the built-in launchctl command. Adversaries may execute their own malicious payloads by hijacking certain environment variables to load arbitrary libraries or bypass certain restrictions.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/rapid7/metasploit-framework/blob/master//modules/post/osx/escalate/tccbypass.rb"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.007","name":"Path Interception by PATH Environment Variable","reference":"https://attack.mitre.org/techniques/T1574/007/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and\n process.name:launchctl and\n process.args:(setenv and not (JAVA*_HOME or\n RUNTIME_JAVA_HOME or\n DBUS_LAUNCHD_SESSION_BUS_SOCKET or\n ANT_HOME or\n LG_WEBOS_TV_SDK_HOME or\n WEBOS_CLI_TV or\n EDEN_ENV)\n ) and\n not process.parent.executable:(\"/Applications/NoMachine.app/Contents/Frameworks/bin/nxserver.bin\" or\n \"/usr/local/bin/kr\" or\n \"/Applications/NoMachine.app/Contents/Frameworks/bin/nxserver.bin\" or\n \"/Applications/IntelliJ IDEA CE.app/Contents/jbr/Contents/Home/lib/jspawnhelper\") and\n not process.args : \"*.vmoptions\"\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},"id":"7453e19e-3dbf-4e4e-9ae0-33d6c6ed15e1:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7453e19e-3dbf-4e4e-9ae0-33d6c6ed15e1:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7453e19e-3dbf-4e4e-9ae0-33d6c6ed15e1:100.0.1.json new file mode 100644 index 0000000000000..c765ec09ed0b0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7453e19e-3dbf-4e4e-9ae0-33d6c6ed15e1:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Modification of Environment Variable via Launchctl v100.0.1","rule_id":"7453e19e-3dbf-4e4e-9ae0-33d6c6ed15e1:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to an environment variable using the built-in launchctl command. Adversaries may execute their own malicious payloads by hijacking certain environment variables to load arbitrary libraries or bypass certain restrictions.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/rapid7/metasploit-framework/blob/master//modules/post/osx/escalate/tccbypass.rb"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.007","name":"Path Interception by PATH Environment Variable","reference":"https://attack.mitre.org/techniques/T1574/007/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and\n process.name:launchctl and\n process.args:(setenv and not (JAVA*_HOME or\n RUNTIME_JAVA_HOME or\n DBUS_LAUNCHD_SESSION_BUS_SOCKET or\n ANT_HOME or\n LG_WEBOS_TV_SDK_HOME or\n WEBOS_CLI_TV or\n EDEN_ENV)\n ) and\n not process.parent.executable:(\"/Applications/NoMachine.app/Contents/Frameworks/bin/nxserver.bin\" or\n \"/usr/local/bin/kr\" or\n \"/Applications/NoMachine.app/Contents/Frameworks/bin/nxserver.bin\" or\n \"/Applications/IntelliJ IDEA CE.app/Contents/jbr/Contents/Home/lib/jspawnhelper\") and\n not process.args : \"*.vmoptions\"\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},"id":"7453e19e-3dbf-4e4e-9ae0-33d6c6ed15e1:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7453e19e-3dbf-4e4e-9ae0-33d6c6ed15e1:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7453e19e-3dbf-4e4e-9ae0-33d6c6ed15e1:100.0.2.json new file mode 100644 index 0000000000000..252fa0f97b9bb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7453e19e-3dbf-4e4e-9ae0-33d6c6ed15e1:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Modification of Environment Variable via Launchctl v100.0.2","rule_id":"7453e19e-3dbf-4e4e-9ae0-33d6c6ed15e1:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to an environment variable using the built-in launchctl command. Adversaries may execute their own malicious payloads by hijacking certain environment variables to load arbitrary libraries or bypass certain restrictions.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/rapid7/metasploit-framework/blob/master//modules/post/osx/escalate/tccbypass.rb"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.007","name":"Path Interception by PATH Environment Variable","reference":"https://attack.mitre.org/techniques/T1574/007/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and\n process.name:launchctl and\n process.args:(setenv and not (JAVA*_HOME or\n RUNTIME_JAVA_HOME or\n DBUS_LAUNCHD_SESSION_BUS_SOCKET or\n ANT_HOME or\n LG_WEBOS_TV_SDK_HOME or\n WEBOS_CLI_TV or\n EDEN_ENV)\n ) and\n not process.parent.executable:(\"/Applications/NoMachine.app/Contents/Frameworks/bin/nxserver.bin\" or\n \"/usr/local/bin/kr\" or\n \"/Applications/NoMachine.app/Contents/Frameworks/bin/nxserver.bin\" or\n \"/Applications/IntelliJ IDEA CE.app/Contents/jbr/Contents/Home/lib/jspawnhelper\") and\n not process.args : \"*.vmoptions\"\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},"id":"7453e19e-3dbf-4e4e-9ae0-33d6c6ed15e1:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/745b0119-0560-43ba-860a-7235dd8cee8d:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/745b0119-0560-43ba-860a-7235dd8cee8d:100.0.0.json new file mode 100644 index 0000000000000..a5c7640a37aac --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/745b0119-0560-43ba-860a-7235dd8cee8d:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Hour for a User to Logon v100.0.0","rule_id":"745b0119-0560-43ba-860a-7235dd8cee8d:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a user logging in at a time of day that is unusual for the user. This can be due to credentialed access via a compromised account when the user and the threat actor are in different time zones. In addition, unauthorized user activity often takes place during non-business hours.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Users working late, or logging in from unusual time zones while traveling, may trigger this rule."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_rare_hour_for_a_user","type":"machine_learning"},"id":"745b0119-0560-43ba-860a-7235dd8cee8d:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/745b0119-0560-43ba-860a-7235dd8cee8d:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/745b0119-0560-43ba-860a-7235dd8cee8d:100.0.1.json new file mode 100644 index 0000000000000..f04ada678edd7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/745b0119-0560-43ba-860a-7235dd8cee8d:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Hour for a User to Logon v100.0.1","rule_id":"745b0119-0560-43ba-860a-7235dd8cee8d:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a user logging in at a time of day that is unusual for the user. This can be due to credentialed access via a compromised account when the user and the threat actor are in different time zones. In addition, unauthorized user activity often takes place during non-business hours.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Users working late, or logging in from unusual time zones while traveling, may trigger this rule."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_rare_hour_for_a_user","type":"machine_learning"},"id":"745b0119-0560-43ba-860a-7235dd8cee8d:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/745b0119-0560-43ba-860a-7235dd8cee8d:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/745b0119-0560-43ba-860a-7235dd8cee8d:100.0.2.json new file mode 100644 index 0000000000000..84dd91cb60767 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/745b0119-0560-43ba-860a-7235dd8cee8d:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Hour for a User to Logon v100.0.2","rule_id":"745b0119-0560-43ba-860a-7235dd8cee8d:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a user logging in at a time of day that is unusual for the user. This can be due to credentialed access via a compromised account when the user and the threat actor are in different time zones. In addition, unauthorized user activity often takes place during non-business hours.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Users working late, or logging in from unusual time zones while traveling, may trigger this rule."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_rare_hour_for_a_user","type":"machine_learning"},"id":"745b0119-0560-43ba-860a-7235dd8cee8d:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/746edc4c-c54c-49c6-97a1-651223819448:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/746edc4c-c54c-49c6-97a1-651223819448:100.0.0.json new file mode 100644 index 0000000000000..0b83a88e342d2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/746edc4c-c54c-49c6-97a1-651223819448:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual DNS Activity v100.0.0","rule_id":"746edc4c-c54c-49c6-97a1-651223819448:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a rare and unusual DNS query that indicate network activity with unusual DNS domains. This can be due to initial access, persistence, command-and-control, or exfiltration activity. For example, when a user clicks on a link in a phishing email or opens a malicious document, a request may be sent to download and run a payload from an uncommon domain. When malware is already running, it may send requests to an uncommon DNS domain the malware uses for command-and-control communication.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert. Network activity that occurs rarely, in small quantities, can trigger this alert. Possible examples are browsing technical support or vendor networks sparsely. A user who visits a new or unique web destination may trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.004","name":"DNS","reference":"https://attack.mitre.org/techniques/T1071/004/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":"packetbeat_rare_dns_question","type":"machine_learning"},"id":"746edc4c-c54c-49c6-97a1-651223819448:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/746edc4c-c54c-49c6-97a1-651223819448:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/746edc4c-c54c-49c6-97a1-651223819448:100.0.1.json new file mode 100644 index 0000000000000..ff4edbd4dbd2e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/746edc4c-c54c-49c6-97a1-651223819448:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual DNS Activity v100.0.1","rule_id":"746edc4c-c54c-49c6-97a1-651223819448:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a rare and unusual DNS query that indicate network activity with unusual DNS domains. This can be due to initial access, persistence, command-and-control, or exfiltration activity. For example, when a user clicks on a link in a phishing email or opens a malicious document, a request may be sent to download and run a payload from an uncommon domain. When malware is already running, it may send requests to an uncommon DNS domain the malware uses for command-and-control communication.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert. Network activity that occurs rarely, in small quantities, can trigger this alert. Possible examples are browsing technical support or vendor networks sparsely. A user who visits a new or unique web destination may trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.004","name":"DNS","reference":"https://attack.mitre.org/techniques/T1071/004/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":"packetbeat_rare_dns_question","type":"machine_learning"},"id":"746edc4c-c54c-49c6-97a1-651223819448:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/746edc4c-c54c-49c6-97a1-651223819448:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/746edc4c-c54c-49c6-97a1-651223819448:100.0.2.json new file mode 100644 index 0000000000000..10e7bd4201718 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/746edc4c-c54c-49c6-97a1-651223819448:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual DNS Activity v100.0.2","rule_id":"746edc4c-c54c-49c6-97a1-651223819448:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a rare and unusual DNS query that indicate network activity with unusual DNS domains. This can be due to initial access, persistence, command-and-control, or exfiltration activity. For example, when a user clicks on a link in a phishing email or opens a malicious document, a request may be sent to download and run a payload from an uncommon domain. When malware is already running, it may send requests to an uncommon DNS domain the malware uses for command-and-control communication.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program or one that runs rarely as part of a monthly or quarterly workflow could trigger this alert. Network activity that occurs rarely, in small quantities, can trigger this alert. Possible examples are browsing technical support or vendor networks sparsely. A user who visits a new or unique web destination may trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.004","name":"DNS","reference":"https://attack.mitre.org/techniques/T1071/004/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":"packetbeat_rare_dns_question","type":"machine_learning"},"id":"746edc4c-c54c-49c6-97a1-651223819448:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/75ee75d8-c180-481c-ba88-ee50129a6aef:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/75ee75d8-c180-481c-ba88-ee50129a6aef:100.0.0.json new file mode 100644 index 0000000000000..0fe85eebe292d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/75ee75d8-c180-481c-ba88-ee50129a6aef:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Web Application Suspicious Activity: Unauthorized Method v100.0.0","rule_id":"75ee75d8-c180-481c-ba88-ee50129a6aef:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A request to a web application returned a 405 response, which indicates the web application declined to process the request because the HTTP method is not allowed for the resource.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Security scans and tests may result in these errors. Misconfigured or buggy applications may produce large numbers of these errors. If the source is unexpected, the user unauthorized, or the request unusual, these may indicate suspicious or malicious activity."],"references":["https://en.wikipedia.org/wiki/HTTP_405"],"tags":["Elastic","APM"],"type":"query","index":["apm-*-transaction*","traces-apm*"],"language":"kuery","query":"http.response.status_code:405\n","required_fields":[{"ecs":true,"name":"http.response.status_code","type":"long"}]},"id":"75ee75d8-c180-481c-ba88-ee50129a6aef:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/75ee75d8-c180-481c-ba88-ee50129a6aef:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/75ee75d8-c180-481c-ba88-ee50129a6aef:100.0.1.json new file mode 100644 index 0000000000000..1ab5ea6d0136d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/75ee75d8-c180-481c-ba88-ee50129a6aef:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Web Application Suspicious Activity: Unauthorized Method v100.0.1","rule_id":"75ee75d8-c180-481c-ba88-ee50129a6aef:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A request to a web application returned a 405 response, which indicates the web application declined to process the request because the HTTP method is not allowed for the resource.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Security scans and tests may result in these errors. Misconfigured or buggy applications may produce large numbers of these errors. If the source is unexpected, the user unauthorized, or the request unusual, these may indicate suspicious or malicious activity."],"references":["https://en.wikipedia.org/wiki/HTTP_405"],"tags":["Elastic","APM"],"type":"query","index":["apm-*-transaction*","traces-apm*"],"language":"kuery","query":"http.response.status_code:405\n","required_fields":[{"ecs":true,"name":"http.response.status_code","type":"long"}]},"id":"75ee75d8-c180-481c-ba88-ee50129a6aef:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/75ee75d8-c180-481c-ba88-ee50129a6aef:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/75ee75d8-c180-481c-ba88-ee50129a6aef:100.0.2.json new file mode 100644 index 0000000000000..3f3766ed08c03 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/75ee75d8-c180-481c-ba88-ee50129a6aef:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Web Application Suspicious Activity: Unauthorized Method v100.0.2","rule_id":"75ee75d8-c180-481c-ba88-ee50129a6aef:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A request to a web application returned a 405 response, which indicates the web application declined to process the request because the HTTP method is not allowed for the resource.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Security scans and tests may result in these errors. Misconfigured or buggy applications may produce large numbers of these errors. If the source is unexpected, the user unauthorized, or the request unusual, these may indicate suspicious or malicious activity."],"references":["https://en.wikipedia.org/wiki/HTTP_405"],"tags":["Elastic","APM"],"type":"query","index":["apm-*-transaction*","traces-apm*"],"language":"kuery","query":"http.response.status_code:405\n","required_fields":[{"ecs":true,"name":"http.response.status_code","type":"long"}]},"id":"75ee75d8-c180-481c-ba88-ee50129a6aef:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/76152ca1-71d0-4003-9e37-0983e12832da:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/76152ca1-71d0-4003-9e37-0983e12832da:100.0.0.json new file mode 100644 index 0000000000000..2d7e5d096b828 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/76152ca1-71d0-4003-9e37-0983e12832da:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Privilege Escalation via Sudoers File Modification v100.0.0","rule_id":"76152ca1-71d0-4003-9e37-0983e12832da:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A sudoers file specifies the commands users or groups can run and from which terminals. Adversaries can take advantage of these configurations to execute commands as other users or spawn processes with higher privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.003","name":"Sudo and Sudo Caching","reference":"https://attack.mitre.org/techniques/T1548/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and process.args:(echo and *NOPASSWD*ALL*)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},"id":"76152ca1-71d0-4003-9e37-0983e12832da:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/76152ca1-71d0-4003-9e37-0983e12832da:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/76152ca1-71d0-4003-9e37-0983e12832da:100.0.1.json new file mode 100644 index 0000000000000..e2e0f0bc2ae77 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/76152ca1-71d0-4003-9e37-0983e12832da:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Privilege Escalation via Sudoers File Modification v100.0.1","rule_id":"76152ca1-71d0-4003-9e37-0983e12832da:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A sudoers file specifies the commands users or groups can run and from which terminals. Adversaries can take advantage of these configurations to execute commands as other users or spawn processes with higher privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.003","name":"Sudo and Sudo Caching","reference":"https://attack.mitre.org/techniques/T1548/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and process.args:(echo and *NOPASSWD*ALL*)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},"id":"76152ca1-71d0-4003-9e37-0983e12832da:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/76152ca1-71d0-4003-9e37-0983e12832da:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/76152ca1-71d0-4003-9e37-0983e12832da:100.0.2.json new file mode 100644 index 0000000000000..8dce9d84e331a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/76152ca1-71d0-4003-9e37-0983e12832da:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Privilege Escalation via Sudoers File Modification v100.0.2","rule_id":"76152ca1-71d0-4003-9e37-0983e12832da:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A sudoers file specifies the commands users or groups can run and from which terminals. Adversaries can take advantage of these configurations to execute commands as other users or spawn processes with higher privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.003","name":"Sudo and Sudo Caching","reference":"https://attack.mitre.org/techniques/T1548/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:start and process.args:(echo and *NOPASSWD*ALL*)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},"id":"76152ca1-71d0-4003-9e37-0983e12832da:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/764c8437-a581-4537-8060-1fdb0e92c92d:200.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/764c8437-a581-4537-8060-1fdb0e92c92d:200.0.0.json new file mode 100644 index 0000000000000..1d51064f2b213 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/764c8437-a581-4537-8060-1fdb0e92c92d:200.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Pod Created With HostIPC v200.0.0","rule_id":"764c8437-a581-4537-8060-1fdb0e92c92d:200.0.0","rule_version":"200.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects an attempt to create or modify a pod using the host IPC namespace. This gives access to data used by any pod that also use the hosts IPC namespace. If any process on the host or any processes in a pod uses the hosts inter-process communication mechanisms (shared memory, semaphore arrays, message queues, etc.), an attacker can read/write to those same mechanisms. They may look for files in /dev/shm or use ipcs to check for any IPC facilities being used.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator or developer may want to use a pod that runs as root and shares the host's IPC, Network, and PID namespaces for debugging purposes. If something is going wrong in the cluster and there is no easy way to SSH onto the host nodes directly, a privileged pod of this nature can be useful for viewing things like iptable rules and network namespaces from the host's perspective. Add exceptions for trusted container images using the query field \"kubernetes.audit.requestObject.spec.container.image\""],"references":["https://research.nccgroup.com/2021/11/10/detection-engineering-for-kubernetes-clusters/#part3-kubernetes-detections","https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces","https://bishopfox.com/blog/kubernetes-pod-privilege-escalation"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.objectRef.resource:\"pods\" \n and kubernetes.audit.verb:(\"create\" or \"update\" or \"patch\") \n and kubernetes.audit.requestObject.spec.hostIPC:true\n and not kubernetes.audit.requestObject.spec.containers.image: (\"docker.elastic.co/beats/elastic-agent:8.4.0\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.hostIPC","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"764c8437-a581-4537-8060-1fdb0e92c92d:200.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/764c8437-a581-4537-8060-1fdb0e92c92d:200.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/764c8437-a581-4537-8060-1fdb0e92c92d:200.0.1.json new file mode 100644 index 0000000000000..93c568dae8c96 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/764c8437-a581-4537-8060-1fdb0e92c92d:200.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Pod Created With HostIPC v200.0.1","rule_id":"764c8437-a581-4537-8060-1fdb0e92c92d:200.0.1","rule_version":"200.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects an attempt to create or modify a pod using the host IPC namespace. This gives access to data used by any pod that also use the hosts IPC namespace. If any process on the host or any processes in a pod uses the hosts inter-process communication mechanisms (shared memory, semaphore arrays, message queues, etc.), an attacker can read/write to those same mechanisms. They may look for files in /dev/shm or use ipcs to check for any IPC facilities being used.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator or developer may want to use a pod that runs as root and shares the host's IPC, Network, and PID namespaces for debugging purposes. If something is going wrong in the cluster and there is no easy way to SSH onto the host nodes directly, a privileged pod of this nature can be useful for viewing things like iptable rules and network namespaces from the host's perspective. Add exceptions for trusted container images using the query field \"kubernetes.audit.requestObject.spec.container.image\""],"references":["https://research.nccgroup.com/2021/11/10/detection-engineering-for-kubernetes-clusters/#part3-kubernetes-detections","https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces","https://bishopfox.com/blog/kubernetes-pod-privilege-escalation"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.objectRef.resource:\"pods\" \n and kubernetes.audit.verb:(\"create\" or \"update\" or \"patch\") \n and kubernetes.audit.requestObject.spec.hostIPC:true\n and not kubernetes.audit.requestObject.spec.containers.image: (\"docker.elastic.co/beats/elastic-agent:8.4.0\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.hostIPC","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"764c8437-a581-4537-8060-1fdb0e92c92d:200.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/764c8437-a581-4537-8060-1fdb0e92c92d:200.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/764c8437-a581-4537-8060-1fdb0e92c92d:200.0.2.json new file mode 100644 index 0000000000000..348be1614e9fe --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/764c8437-a581-4537-8060-1fdb0e92c92d:200.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Pod Created With HostIPC v200.0.2","rule_id":"764c8437-a581-4537-8060-1fdb0e92c92d:200.0.2","rule_version":"200.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects an attempt to create or modify a pod using the host IPC namespace. This gives access to data used by any pod that also use the hosts IPC namespace. If any process on the host or any processes in a pod uses the hosts inter-process communication mechanisms (shared memory, semaphore arrays, message queues, etc.), an attacker can read/write to those same mechanisms. They may look for files in /dev/shm or use ipcs to check for any IPC facilities being used.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator or developer may want to use a pod that runs as root and shares the host's IPC, Network, and PID namespaces for debugging purposes. If something is going wrong in the cluster and there is no easy way to SSH onto the host nodes directly, a privileged pod of this nature can be useful for viewing things like iptable rules and network namespaces from the host's perspective. Add exceptions for trusted container images using the query field \"kubernetes.audit.requestObject.spec.container.image\""],"references":["https://research.nccgroup.com/2021/11/10/detection-engineering-for-kubernetes-clusters/#part3-kubernetes-detections","https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces","https://bishopfox.com/blog/kubernetes-pod-privilege-escalation"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.objectRef.resource:\"pods\" \n and kubernetes.audit.verb:(\"create\" or \"update\" or \"patch\") \n and kubernetes.audit.requestObject.spec.hostIPC:true\n and not kubernetes.audit.requestObject.spec.containers.image: (\"docker.elastic.co/beats/elastic-agent:8.4.0\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.hostIPC","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"764c8437-a581-4537-8060-1fdb0e92c92d:200.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/764c9fcd-4c4c-41e6-a0c7-d6c46c2eff66:1.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/764c9fcd-4c4c-41e6-a0c7-d6c46c2eff66:1.0.0.json new file mode 100644 index 0000000000000..09270c277ed74 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/764c9fcd-4c4c-41e6-a0c7-d6c46c2eff66:1.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Access to a Sensitive LDAP Attribute v1.0.0","rule_id":"764c9fcd-4c4c-41e6-a0c7-d6c46c2eff66:1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identify access to sensitive Active Directory object attributes that contains credentials and decryption keys such as unixUserPassword, ms-PKI-AccountCredentials and msPKI-CredentialRoamingTokens.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"The 'Audit Directory Service Changes' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.mandiant.com/resources/blog/apt29-windows-credential-roaming","https://social.technet.microsoft.com/wiki/contents/articles/11483.windows-credential-roaming.aspx","https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-5136"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Active Directory"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"any where event.action == \"Directory Service Access\" and event.code == \"4662\" and\n\n not winlog.event_data.SubjectUserSid : \"S-1-5-18\" and\n\n winlog.event_data.Properties : (\n /* unixUserPassword */\n \"*612cb747-c0e8-4f92-9221-fdd5f15b550d*\",\n\n /* ms-PKI-AccountCredentials */\n \"*b8dfa744-31dc-4ef1-ac7c-84baf7ef9da7*\",\n\n /* ms-PKI-DPAPIMasterKeys */\n \"*b3f93023-9239-4f7c-b99c-6745d87adbc2*\",\n\n /* msPKI-CredentialRoamingTokens */\n \"*b7ff5a38-0818-42b0-8110-d3d154c97f24*\"\n )\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.Properties","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectUserSid","type":"keyword"}],"setup":""},"id":"764c9fcd-4c4c-41e6-a0c7-d6c46c2eff66:1.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/764c9fcd-4c4c-41e6-a0c7-d6c46c2eff66:1.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/764c9fcd-4c4c-41e6-a0c7-d6c46c2eff66:1.0.1.json new file mode 100644 index 0000000000000..ba3832542ec69 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/764c9fcd-4c4c-41e6-a0c7-d6c46c2eff66:1.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Access to a Sensitive LDAP Attribute v1.0.1","rule_id":"764c9fcd-4c4c-41e6-a0c7-d6c46c2eff66:1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identify access to sensitive Active Directory object attributes that contains credentials and decryption keys such as unixUserPassword, ms-PKI-AccountCredentials and msPKI-CredentialRoamingTokens.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"The 'Audit Directory Service Changes' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.mandiant.com/resources/blog/apt29-windows-credential-roaming","https://social.technet.microsoft.com/wiki/contents/articles/11483.windows-credential-roaming.aspx","https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-5136"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Active Directory"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"any where event.action == \"Directory Service Access\" and event.code == \"4662\" and\n\n not winlog.event_data.SubjectUserSid : \"S-1-5-18\" and\n\n winlog.event_data.Properties : (\n /* unixUserPassword */\n \"*612cb747-c0e8-4f92-9221-fdd5f15b550d*\",\n\n /* ms-PKI-AccountCredentials */\n \"*b8dfa744-31dc-4ef1-ac7c-84baf7ef9da7*\",\n\n /* ms-PKI-DPAPIMasterKeys */\n \"*b3f93023-9239-4f7c-b99c-6745d87adbc2*\",\n\n /* msPKI-CredentialRoamingTokens */\n \"*b7ff5a38-0818-42b0-8110-d3d154c97f24*\"\n )\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.Properties","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectUserSid","type":"keyword"}],"setup":""},"id":"764c9fcd-4c4c-41e6-a0c7-d6c46c2eff66:1.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/764c9fcd-4c4c-41e6-a0c7-d6c46c2eff66:1.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/764c9fcd-4c4c-41e6-a0c7-d6c46c2eff66:1.0.2.json new file mode 100644 index 0000000000000..d5d756ff7582b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/764c9fcd-4c4c-41e6-a0c7-d6c46c2eff66:1.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Access to a Sensitive LDAP Attribute v1.0.2","rule_id":"764c9fcd-4c4c-41e6-a0c7-d6c46c2eff66:1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identify access to sensitive Active Directory object attributes that contains credentials and decryption keys such as unixUserPassword, ms-PKI-AccountCredentials and msPKI-CredentialRoamingTokens.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"The 'Audit Directory Service Changes' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.mandiant.com/resources/blog/apt29-windows-credential-roaming","https://social.technet.microsoft.com/wiki/contents/articles/11483.windows-credential-roaming.aspx","https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-5136"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Active Directory"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"any where event.action == \"Directory Service Access\" and event.code == \"4662\" and\n\n not winlog.event_data.SubjectUserSid : \"S-1-5-18\" and\n\n winlog.event_data.Properties : (\n /* unixUserPassword */\n \"*612cb747-c0e8-4f92-9221-fdd5f15b550d*\",\n\n /* ms-PKI-AccountCredentials */\n \"*b8dfa744-31dc-4ef1-ac7c-84baf7ef9da7*\",\n\n /* ms-PKI-DPAPIMasterKeys */\n \"*b3f93023-9239-4f7c-b99c-6745d87adbc2*\",\n\n /* msPKI-CredentialRoamingTokens */\n \"*b7ff5a38-0818-42b0-8110-d3d154c97f24*\"\n )\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.Properties","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectUserSid","type":"keyword"}],"setup":""},"id":"764c9fcd-4c4c-41e6-a0c7-d6c46c2eff66:1.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/766d3f91-3f12-448c-b65f-20123e9e9e8c:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/766d3f91-3f12-448c-b65f-20123e9e9e8c:100.0.0.json new file mode 100644 index 0000000000000..0ee8cbb554655 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/766d3f91-3f12-448c-b65f-20123e9e9e8c:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Creation of Hidden Shared Object File v100.0.0","rule_id":"766d3f91-3f12-448c-b65f-20123e9e9e8c:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a hidden shared object (.so) file. Users can mark specific files as hidden simply by putting a \".\" as the first character in the file or folder name. Adversaries can use this to their advantage to hide files and folders on the system for persistence and defense evasion.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.001","name":"Hidden Files and Directories","reference":"https://attack.mitre.org/techniques/T1564/001/"}]}]}],"language":"eql","query":"file where event.action : \"creation\" and file.extension == \"so\" and file.name : \".*.so\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"766d3f91-3f12-448c-b65f-20123e9e9e8c:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/766d3f91-3f12-448c-b65f-20123e9e9e8c:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/766d3f91-3f12-448c-b65f-20123e9e9e8c:100.0.1.json new file mode 100644 index 0000000000000..a44c41b0f8721 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/766d3f91-3f12-448c-b65f-20123e9e9e8c:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Creation of Hidden Shared Object File v100.0.1","rule_id":"766d3f91-3f12-448c-b65f-20123e9e9e8c:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a hidden shared object (.so) file. Users can mark specific files as hidden simply by putting a \".\" as the first character in the file or folder name. Adversaries can use this to their advantage to hide files and folders on the system for persistence and defense evasion.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.001","name":"Hidden Files and Directories","reference":"https://attack.mitre.org/techniques/T1564/001/"}]}]}],"language":"eql","query":"file where event.action : \"creation\" and file.extension == \"so\" and file.name : \".*.so\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"766d3f91-3f12-448c-b65f-20123e9e9e8c:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/766d3f91-3f12-448c-b65f-20123e9e9e8c:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/766d3f91-3f12-448c-b65f-20123e9e9e8c:100.0.2.json new file mode 100644 index 0000000000000..ed44e11066aea --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/766d3f91-3f12-448c-b65f-20123e9e9e8c:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Creation of Hidden Shared Object File v100.0.2","rule_id":"766d3f91-3f12-448c-b65f-20123e9e9e8c:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a hidden shared object (.so) file. Users can mark specific files as hidden simply by putting a \".\" as the first character in the file or folder name. Adversaries can use this to their advantage to hide files and folders on the system for persistence and defense evasion.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.001","name":"Hidden Files and Directories","reference":"https://attack.mitre.org/techniques/T1564/001/"}]}]}],"language":"eql","query":"file where event.action : \"creation\" and file.extension == \"so\" and file.name : \".*.so\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"766d3f91-3f12-448c-b65f-20123e9e9e8c:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/76ddb638-abf7-42d5-be22-4a70b0bf7241:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/76ddb638-abf7-42d5-be22-4a70b0bf7241:101.0.0.json new file mode 100644 index 0000000000000..95b4e4d2390c5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/76ddb638-abf7-42d5-be22-4a70b0bf7241:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Privilege Escalation via Rogue Named Pipe Impersonation v101.0.0","rule_id":"76ddb638-abf7-42d5-be22-4a70b0bf7241:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a privilege escalation attempt via rogue named pipe impersonation. An adversary may abuse this technique by masquerading as a known named pipe and manipulating a privileged process to connect to it.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"Named Pipe Creation Events need to be enabled within the Sysmon configuration by including the following settings:\n`condition equal \"contains\" and keyword equal \"pipe\"`\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://itm4n.github.io/printspoofer-abusing-impersonate-privileges/","https://github.com/zcgonvh/EfsPotato","https://twitter.com/SBousseaden/status/1429530155291193354"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"language":"eql","query":"file where event.action : \"Pipe Created*\" and\n /* normal sysmon named pipe creation events truncate the pipe keyword */\n file.name : \"\\\\*\\\\Pipe\\\\*\"\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"}],"setup":"Named Pipe Creation Events need to be enabled within the Sysmon configuration by including the following settings:\n`condition equal "contains" and keyword equal "pipe"`\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"76ddb638-abf7-42d5-be22-4a70b0bf7241:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/76ddb638-abf7-42d5-be22-4a70b0bf7241:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/76ddb638-abf7-42d5-be22-4a70b0bf7241:101.0.1.json new file mode 100644 index 0000000000000..07e3987edd88c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/76ddb638-abf7-42d5-be22-4a70b0bf7241:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Privilege Escalation via Rogue Named Pipe Impersonation v101.0.1","rule_id":"76ddb638-abf7-42d5-be22-4a70b0bf7241:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a privilege escalation attempt via rogue named pipe impersonation. An adversary may abuse this technique by masquerading as a known named pipe and manipulating a privileged process to connect to it.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"Named Pipe Creation Events need to be enabled within the Sysmon configuration by including the following settings:\n`condition equal \"contains\" and keyword equal \"pipe\"`\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://itm4n.github.io/printspoofer-abusing-impersonate-privileges/","https://github.com/zcgonvh/EfsPotato","https://twitter.com/SBousseaden/status/1429530155291193354"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"language":"eql","query":"file where event.action : \"Pipe Created*\" and\n /* normal sysmon named pipe creation events truncate the pipe keyword */\n file.name : \"\\\\*\\\\Pipe\\\\*\"\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"}],"setup":"Named Pipe Creation Events need to be enabled within the Sysmon configuration by including the following settings:\n`condition equal "contains" and keyword equal "pipe"`\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"76ddb638-abf7-42d5-be22-4a70b0bf7241:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/76ddb638-abf7-42d5-be22-4a70b0bf7241:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/76ddb638-abf7-42d5-be22-4a70b0bf7241:101.0.2.json new file mode 100644 index 0000000000000..50f1a4bc40547 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/76ddb638-abf7-42d5-be22-4a70b0bf7241:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Privilege Escalation via Rogue Named Pipe Impersonation v101.0.2","rule_id":"76ddb638-abf7-42d5-be22-4a70b0bf7241:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a privilege escalation attempt via rogue named pipe impersonation. An adversary may abuse this technique by masquerading as a known named pipe and manipulating a privileged process to connect to it.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"Named Pipe Creation Events need to be enabled within the Sysmon configuration by including the following settings:\n`condition equal \"contains\" and keyword equal \"pipe\"`\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://itm4n.github.io/printspoofer-abusing-impersonate-privileges/","https://github.com/zcgonvh/EfsPotato","https://twitter.com/SBousseaden/status/1429530155291193354"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"language":"eql","query":"file where event.action : \"Pipe Created*\" and\n /* normal sysmon named pipe creation events truncate the pipe keyword */\n file.name : \"\\\\*\\\\Pipe\\\\*\"\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"}],"setup":"Named Pipe Creation Events need to be enabled within the Sysmon configuration by including the following settings:\n`condition equal "contains" and keyword equal "pipe"`\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"76ddb638-abf7-42d5-be22-4a70b0bf7241:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/76fd43b7-3480-4dd9-8ad7-8bd36bfad92f:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/76fd43b7-3480-4dd9-8ad7-8bd36bfad92f:102.0.0.json new file mode 100644 index 0000000000000..04f4c75a24b0e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/76fd43b7-3480-4dd9-8ad7-8bd36bfad92f:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Remote Desktop Tunneling Detected v102.0.0","rule_id":"76fd43b7-3480-4dd9-8ad7-8bd36bfad92f:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential use of an SSH utility to establish RDP over a reverse SSH Tunnel. This can be used by attackers to enable routing of network packets that would otherwise not reach their intended destination.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Remote Desktop Tunneling Detected\n\nProtocol Tunneling is a mechanism that involves explicitly encapsulating a protocol within another for various use cases,\nranging from providing an outer layer of encryption (similar to a VPN) to enabling traffic that network appliances would\nfilter to reach their destination.\n\nAttackers may tunnel Remote Desktop Protocol (RDP) traffic through other protocols like Secure Shell (SSH) to bypass network restrictions that block incoming RDP\nconnections but may be more permissive to other protocols.\n\nThis rule looks for command lines involving the `3389` port, which RDP uses by default and options commonly associated\nwith tools that perform tunneling.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account and system owners and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine network data to determine if the host communicated with external servers using the tunnel.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n- Investigate the command line for the execution of programs that are unrelated to tunneling, like Remote Desktop clients.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Take the necessary actions to disable the tunneling, which can be a process kill, service deletion, registry key\nmodification, etc. Inspect the host to learn which method was used and to determine a response for the case.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.netspi.com/how-to-access-rdp-over-a-reverse-ssh-tunnel/"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1572","name":"Protocol Tunneling","reference":"https://attack.mitre.org/techniques/T1572/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n /* RDP port and usual SSH tunneling related switches in command line */\n process.args : \"*:3389\" and\n process.args : (\"-L\", \"-P\", \"-R\", \"-pw\", \"-ssh\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"76fd43b7-3480-4dd9-8ad7-8bd36bfad92f:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/76fd43b7-3480-4dd9-8ad7-8bd36bfad92f:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/76fd43b7-3480-4dd9-8ad7-8bd36bfad92f:102.0.1.json new file mode 100644 index 0000000000000..80d4f9061fdd0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/76fd43b7-3480-4dd9-8ad7-8bd36bfad92f:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Remote Desktop Tunneling Detected v102.0.1","rule_id":"76fd43b7-3480-4dd9-8ad7-8bd36bfad92f:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential use of an SSH utility to establish RDP over a reverse SSH Tunnel. This can be used by attackers to enable routing of network packets that would otherwise not reach their intended destination.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Remote Desktop Tunneling Detected\n\nProtocol Tunneling is a mechanism that involves explicitly encapsulating a protocol within another for various use cases,\nranging from providing an outer layer of encryption (similar to a VPN) to enabling traffic that network appliances would\nfilter to reach their destination.\n\nAttackers may tunnel Remote Desktop Protocol (RDP) traffic through other protocols like Secure Shell (SSH) to bypass network restrictions that block incoming RDP\nconnections but may be more permissive to other protocols.\n\nThis rule looks for command lines involving the `3389` port, which RDP uses by default and options commonly associated\nwith tools that perform tunneling.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account and system owners and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine network data to determine if the host communicated with external servers using the tunnel.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n- Investigate the command line for the execution of programs that are unrelated to tunneling, like Remote Desktop clients.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Take the necessary actions to disable the tunneling, which can be a process kill, service deletion, registry key\nmodification, etc. Inspect the host to learn which method was used and to determine a response for the case.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.netspi.com/how-to-access-rdp-over-a-reverse-ssh-tunnel/"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1572","name":"Protocol Tunneling","reference":"https://attack.mitre.org/techniques/T1572/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n /* RDP port and usual SSH tunneling related switches in command line */\n process.args : \"*:3389\" and\n process.args : (\"-L\", \"-P\", \"-R\", \"-pw\", \"-ssh\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"76fd43b7-3480-4dd9-8ad7-8bd36bfad92f:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/76fd43b7-3480-4dd9-8ad7-8bd36bfad92f:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/76fd43b7-3480-4dd9-8ad7-8bd36bfad92f:102.0.2.json new file mode 100644 index 0000000000000..8578cf24e3d22 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/76fd43b7-3480-4dd9-8ad7-8bd36bfad92f:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Remote Desktop Tunneling Detected v102.0.2","rule_id":"76fd43b7-3480-4dd9-8ad7-8bd36bfad92f:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential use of an SSH utility to establish RDP over a reverse SSH Tunnel. This can be used by attackers to enable routing of network packets that would otherwise not reach their intended destination.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Remote Desktop Tunneling Detected\n\nProtocol Tunneling is a mechanism that involves explicitly encapsulating a protocol within another for various use cases,\nranging from providing an outer layer of encryption (similar to a VPN) to enabling traffic that network appliances would\nfilter to reach their destination.\n\nAttackers may tunnel Remote Desktop Protocol (RDP) traffic through other protocols like Secure Shell (SSH) to bypass network restrictions that block incoming RDP\nconnections but may be more permissive to other protocols.\n\nThis rule looks for command lines involving the `3389` port, which RDP uses by default and options commonly associated\nwith tools that perform tunneling.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account and system owners and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine network data to determine if the host communicated with external servers using the tunnel.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n- Investigate the command line for the execution of programs that are unrelated to tunneling, like Remote Desktop clients.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Take the necessary actions to disable the tunneling, which can be a process kill, service deletion, registry key\nmodification, etc. Inspect the host to learn which method was used and to determine a response for the case.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.netspi.com/how-to-access-rdp-over-a-reverse-ssh-tunnel/"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1572","name":"Protocol Tunneling","reference":"https://attack.mitre.org/techniques/T1572/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n /* RDP port and usual SSH tunneling related switches in command line */\n process.args : \"*:3389\" and\n process.args : (\"-L\", \"-P\", \"-R\", \"-pw\", \"-ssh\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"76fd43b7-3480-4dd9-8ad7-8bd36bfad92f:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/770e0c4d-b998-41e5-a62e-c7901fd7f470:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/770e0c4d-b998-41e5-a62e-c7901fd7f470:102.0.0.json new file mode 100644 index 0000000000000..f3e7a0a4749f4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/770e0c4d-b998-41e5-a62e-c7901fd7f470:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Enumeration Command Spawned via WMIPrvSE v102.0.0","rule_id":"770e0c4d-b998-41e5-a62e-c7901fd7f470:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies native Windows host and network enumeration commands spawned by the Windows Management Instrumentation Provider Service (WMIPrvSE).","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1047","name":"Windows Management Instrumentation","reference":"https://attack.mitre.org/techniques/T1047/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1018","name":"Remote System Discovery","reference":"https://attack.mitre.org/techniques/T1018/"},{"id":"T1087","name":"Account Discovery","reference":"https://attack.mitre.org/techniques/T1087/"},{"id":"T1518","name":"Software Discovery","reference":"https://attack.mitre.org/techniques/T1518/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name:\n (\n \"arp.exe\",\n \"dsquery.exe\",\n \"dsget.exe\",\n \"gpresult.exe\",\n \"hostname.exe\",\n \"ipconfig.exe\",\n \"nbtstat.exe\",\n \"net.exe\",\n \"net1.exe\",\n \"netsh.exe\",\n \"netstat.exe\",\n \"nltest.exe\",\n \"ping.exe\",\n \"qprocess.exe\",\n \"quser.exe\",\n \"qwinsta.exe\",\n \"reg.exe\",\n \"sc.exe\",\n \"systeminfo.exe\",\n \"tasklist.exe\",\n \"tracert.exe\",\n \"whoami.exe\"\n ) and\n process.parent.name:\"wmiprvse.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"770e0c4d-b998-41e5-a62e-c7901fd7f470:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/770e0c4d-b998-41e5-a62e-c7901fd7f470:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/770e0c4d-b998-41e5-a62e-c7901fd7f470:102.0.1.json new file mode 100644 index 0000000000000..04d6123f077e7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/770e0c4d-b998-41e5-a62e-c7901fd7f470:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Enumeration Command Spawned via WMIPrvSE v102.0.1","rule_id":"770e0c4d-b998-41e5-a62e-c7901fd7f470:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies native Windows host and network enumeration commands spawned by the Windows Management Instrumentation Provider Service (WMIPrvSE).","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1047","name":"Windows Management Instrumentation","reference":"https://attack.mitre.org/techniques/T1047/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1018","name":"Remote System Discovery","reference":"https://attack.mitre.org/techniques/T1018/"},{"id":"T1087","name":"Account Discovery","reference":"https://attack.mitre.org/techniques/T1087/"},{"id":"T1518","name":"Software Discovery","reference":"https://attack.mitre.org/techniques/T1518/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name:\n (\n \"arp.exe\",\n \"dsquery.exe\",\n \"dsget.exe\",\n \"gpresult.exe\",\n \"hostname.exe\",\n \"ipconfig.exe\",\n \"nbtstat.exe\",\n \"net.exe\",\n \"net1.exe\",\n \"netsh.exe\",\n \"netstat.exe\",\n \"nltest.exe\",\n \"ping.exe\",\n \"qprocess.exe\",\n \"quser.exe\",\n \"qwinsta.exe\",\n \"reg.exe\",\n \"sc.exe\",\n \"systeminfo.exe\",\n \"tasklist.exe\",\n \"tracert.exe\",\n \"whoami.exe\"\n ) and\n process.parent.name:\"wmiprvse.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"770e0c4d-b998-41e5-a62e-c7901fd7f470:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/770e0c4d-b998-41e5-a62e-c7901fd7f470:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/770e0c4d-b998-41e5-a62e-c7901fd7f470:102.0.2.json new file mode 100644 index 0000000000000..28c53479518e6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/770e0c4d-b998-41e5-a62e-c7901fd7f470:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Enumeration Command Spawned via WMIPrvSE v102.0.2","rule_id":"770e0c4d-b998-41e5-a62e-c7901fd7f470:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies native Windows host and network enumeration commands spawned by the Windows Management Instrumentation Provider Service (WMIPrvSE).","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1047","name":"Windows Management Instrumentation","reference":"https://attack.mitre.org/techniques/T1047/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1018","name":"Remote System Discovery","reference":"https://attack.mitre.org/techniques/T1018/"},{"id":"T1087","name":"Account Discovery","reference":"https://attack.mitre.org/techniques/T1087/"},{"id":"T1518","name":"Software Discovery","reference":"https://attack.mitre.org/techniques/T1518/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name:\n (\n \"arp.exe\",\n \"dsquery.exe\",\n \"dsget.exe\",\n \"gpresult.exe\",\n \"hostname.exe\",\n \"ipconfig.exe\",\n \"nbtstat.exe\",\n \"net.exe\",\n \"net1.exe\",\n \"netsh.exe\",\n \"netstat.exe\",\n \"nltest.exe\",\n \"ping.exe\",\n \"qprocess.exe\",\n \"quser.exe\",\n \"qwinsta.exe\",\n \"reg.exe\",\n \"sc.exe\",\n \"systeminfo.exe\",\n \"tasklist.exe\",\n \"tracert.exe\",\n \"whoami.exe\"\n ) and\n process.parent.name:\"wmiprvse.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"770e0c4d-b998-41e5-a62e-c7901fd7f470:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/774f5e28-7b75-4a58-b94e-41bf060fdd86:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/774f5e28-7b75-4a58-b94e-41bf060fdd86:101.0.0.json new file mode 100644 index 0000000000000..352d77f4b27bb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/774f5e28-7b75-4a58-b94e-41bf060fdd86:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"User Added as Owner for Azure Application v101.0.0","rule_id":"774f5e28-7b75-4a58-b94e-41bf060fdd86:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user is added as an owner for an Azure application. An adversary may add a user account as an owner for an Azure application in order to grant additional permissions and modify the application's configuration using another account.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Add owner to application\" and event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"774f5e28-7b75-4a58-b94e-41bf060fdd86:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/774f5e28-7b75-4a58-b94e-41bf060fdd86:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/774f5e28-7b75-4a58-b94e-41bf060fdd86:101.0.1.json new file mode 100644 index 0000000000000..6ef2706aeeae3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/774f5e28-7b75-4a58-b94e-41bf060fdd86:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"User Added as Owner for Azure Application v101.0.1","rule_id":"774f5e28-7b75-4a58-b94e-41bf060fdd86:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user is added as an owner for an Azure application. An adversary may add a user account as an owner for an Azure application in order to grant additional permissions and modify the application's configuration using another account.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Add owner to application\" and event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"774f5e28-7b75-4a58-b94e-41bf060fdd86:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/774f5e28-7b75-4a58-b94e-41bf060fdd86:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/774f5e28-7b75-4a58-b94e-41bf060fdd86:101.0.2.json new file mode 100644 index 0000000000000..7ac5045b9fbc0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/774f5e28-7b75-4a58-b94e-41bf060fdd86:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"User Added as Owner for Azure Application v101.0.2","rule_id":"774f5e28-7b75-4a58-b94e-41bf060fdd86:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user is added as an owner for an Azure application. An adversary may add a user account as an owner for an Azure application in order to grant additional permissions and modify the application's configuration using another account.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Add owner to application\" and event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"774f5e28-7b75-4a58-b94e-41bf060fdd86:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/77a3c3df-8ec4-4da4-b758-878f551dee69:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/77a3c3df-8ec4-4da4-b758-878f551dee69:101.0.0.json new file mode 100644 index 0000000000000..e3b1766710894 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/77a3c3df-8ec4-4da4-b758-878f551dee69:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Adversary Behavior - Detected - Elastic Endgame v101.0.0","rule_id":"77a3c3df-8ec4-4da4-b758-878f551dee69:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected an Adversary Behavior. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame"],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and (event.action:behavior_protection_event or endgame.event_subtype_full:behavior_protection_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"77a3c3df-8ec4-4da4-b758-878f551dee69:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/77a3c3df-8ec4-4da4-b758-878f551dee69:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/77a3c3df-8ec4-4da4-b758-878f551dee69:101.0.1.json new file mode 100644 index 0000000000000..fe58251fc6529 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/77a3c3df-8ec4-4da4-b758-878f551dee69:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Adversary Behavior - Detected - Elastic Endgame v101.0.1","rule_id":"77a3c3df-8ec4-4da4-b758-878f551dee69:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected an Adversary Behavior. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame"],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and (event.action:behavior_protection_event or endgame.event_subtype_full:behavior_protection_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"77a3c3df-8ec4-4da4-b758-878f551dee69:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/77a3c3df-8ec4-4da4-b758-878f551dee69:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/77a3c3df-8ec4-4da4-b758-878f551dee69:101.0.2.json new file mode 100644 index 0000000000000..c8afb72769695 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/77a3c3df-8ec4-4da4-b758-878f551dee69:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Adversary Behavior - Detected - Elastic Endgame v101.0.2","rule_id":"77a3c3df-8ec4-4da4-b758-878f551dee69:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected an Adversary Behavior. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame"],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and (event.action:behavior_protection_event or endgame.event_subtype_full:behavior_protection_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"77a3c3df-8ec4-4da4-b758-878f551dee69:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/785a404b-75aa-4ffd-8be5-3334a5a544dd:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/785a404b-75aa-4ffd-8be5-3334a5a544dd:101.0.0.json new file mode 100644 index 0000000000000..90ef10f5ece78 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/785a404b-75aa-4ffd-8be5-3334a5a544dd:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Application Added to Google Workspace Domain v101.0.0","rule_id":"785a404b-75aa-4ffd-8be5-3334a5a544dd:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a Google marketplace application is added to the Google Workspace domain. An adversary may add a malicious application to an organization’s Google Workspace domain in order to maintain a presence in their target’s organization and steal data.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Applications can be added to a Google Workspace domain by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/6328701?hl=en#"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:ADD_APPLICATION\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"785a404b-75aa-4ffd-8be5-3334a5a544dd:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/785a404b-75aa-4ffd-8be5-3334a5a544dd:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/785a404b-75aa-4ffd-8be5-3334a5a544dd:101.0.1.json new file mode 100644 index 0000000000000..34aa47779db1e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/785a404b-75aa-4ffd-8be5-3334a5a544dd:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Application Added to Google Workspace Domain v101.0.1","rule_id":"785a404b-75aa-4ffd-8be5-3334a5a544dd:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a Google marketplace application is added to the Google Workspace domain. An adversary may add a malicious application to an organization’s Google Workspace domain in order to maintain a presence in their target’s organization and steal data.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Applications can be added to a Google Workspace domain by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/6328701?hl=en#"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:ADD_APPLICATION\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"785a404b-75aa-4ffd-8be5-3334a5a544dd:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/785a404b-75aa-4ffd-8be5-3334a5a544dd:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/785a404b-75aa-4ffd-8be5-3334a5a544dd:101.0.2.json new file mode 100644 index 0000000000000..99d205e5f0abc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/785a404b-75aa-4ffd-8be5-3334a5a544dd:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Application Added to Google Workspace Domain v101.0.2","rule_id":"785a404b-75aa-4ffd-8be5-3334a5a544dd:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a Google marketplace application is added to the Google Workspace domain. An adversary may add a malicious application to an organization’s Google Workspace domain in order to maintain a presence in their target’s organization and steal data.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Applications can be added to a Google Workspace domain by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/6328701?hl=en#"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:ADD_APPLICATION\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"785a404b-75aa-4ffd-8be5-3334a5a544dd:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7882cebf-6cf1-4de3-9662-213aa13e8b80:103.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7882cebf-6cf1-4de3-9662-213aa13e8b80:103.0.0.json new file mode 100644 index 0000000000000..a9e3b8f976965 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7882cebf-6cf1-4de3-9662-213aa13e8b80:103.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Privilege Identity Management Role Modified v103.0.0","rule_id":"7882cebf-6cf1-4de3-9662-213aa13e8b80:103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Azure Active Directory (AD) Privileged Identity Management (PIM) is a service that enables you to manage, control, and monitor access to important resources in an organization. PIM can be used to manage the built-in Azure resource roles such as Global Administrator and Application Administrator. An adversary may add a user to a PIM role in order to maintain persistence in their target's environment or modify a PIM role to weaken their target's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Azure Privilege Identity Management Role Modified\n\nAzure Active Directory (AD) Privileged Identity Management (PIM) is a service that enables you to manage, control, and\nmonitor access to important resources in an organization. PIM can be used to manage the built-in Azure resource roles\nsuch as Global Administrator and Application Administrator.\n\nThis rule identifies the update of PIM role settings, which can indicate that an attacker has already gained enough\naccess to modify role assignment settings.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Consider the source IP address and geolocation for the user who issued the command. Do they look normal for the user?\n- Consider the time of day. If the user is a human, not a program or script, did the activity take place during a normal\ntime of day?\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Examine the account's commands, API calls, and data management actions in the last 24 hours.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this activity didn't follow your organization's change management policies, it should be reviewed by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Restore the PIM roles to the desired state.\n- Consider enabling multi-factor authentication for users.\n- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/privileged-identity-management/pim-resource-roles-assign-roles","https://docs.microsoft.com/en-us/azure/active-directory/privileged-identity-management/pim-configure"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Update role setting in PIM\" and event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"7882cebf-6cf1-4de3-9662-213aa13e8b80:103.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7882cebf-6cf1-4de3-9662-213aa13e8b80:103.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7882cebf-6cf1-4de3-9662-213aa13e8b80:103.0.1.json new file mode 100644 index 0000000000000..4b32a2c9fc7a8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7882cebf-6cf1-4de3-9662-213aa13e8b80:103.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Privilege Identity Management Role Modified v103.0.1","rule_id":"7882cebf-6cf1-4de3-9662-213aa13e8b80:103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Azure Active Directory (AD) Privileged Identity Management (PIM) is a service that enables you to manage, control, and monitor access to important resources in an organization. PIM can be used to manage the built-in Azure resource roles such as Global Administrator and Application Administrator. An adversary may add a user to a PIM role in order to maintain persistence in their target's environment or modify a PIM role to weaken their target's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Azure Privilege Identity Management Role Modified\n\nAzure Active Directory (AD) Privileged Identity Management (PIM) is a service that enables you to manage, control, and\nmonitor access to important resources in an organization. PIM can be used to manage the built-in Azure resource roles\nsuch as Global Administrator and Application Administrator.\n\nThis rule identifies the update of PIM role settings, which can indicate that an attacker has already gained enough\naccess to modify role assignment settings.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Consider the source IP address and geolocation for the user who issued the command. Do they look normal for the user?\n- Consider the time of day. If the user is a human, not a program or script, did the activity take place during a normal\ntime of day?\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Examine the account's commands, API calls, and data management actions in the last 24 hours.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this activity didn't follow your organization's change management policies, it should be reviewed by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Restore the PIM roles to the desired state.\n- Consider enabling multi-factor authentication for users.\n- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/privileged-identity-management/pim-resource-roles-assign-roles","https://docs.microsoft.com/en-us/azure/active-directory/privileged-identity-management/pim-configure"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Update role setting in PIM\" and event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"7882cebf-6cf1-4de3-9662-213aa13e8b80:103.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7882cebf-6cf1-4de3-9662-213aa13e8b80:103.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7882cebf-6cf1-4de3-9662-213aa13e8b80:103.0.2.json new file mode 100644 index 0000000000000..f5c63702f67c3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7882cebf-6cf1-4de3-9662-213aa13e8b80:103.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Privilege Identity Management Role Modified v103.0.2","rule_id":"7882cebf-6cf1-4de3-9662-213aa13e8b80:103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Azure Active Directory (AD) Privileged Identity Management (PIM) is a service that enables you to manage, control, and monitor access to important resources in an organization. PIM can be used to manage the built-in Azure resource roles such as Global Administrator and Application Administrator. An adversary may add a user to a PIM role in order to maintain persistence in their target's environment or modify a PIM role to weaken their target's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Azure Privilege Identity Management Role Modified\n\nAzure Active Directory (AD) Privileged Identity Management (PIM) is a service that enables you to manage, control, and\nmonitor access to important resources in an organization. PIM can be used to manage the built-in Azure resource roles\nsuch as Global Administrator and Application Administrator.\n\nThis rule identifies the update of PIM role settings, which can indicate that an attacker has already gained enough\naccess to modify role assignment settings.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Consider the source IP address and geolocation for the user who issued the command. Do they look normal for the user?\n- Consider the time of day. If the user is a human, not a program or script, did the activity take place during a normal\ntime of day?\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Examine the account's commands, API calls, and data management actions in the last 24 hours.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this activity didn't follow your organization's change management policies, it should be reviewed by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Restore the PIM roles to the desired state.\n- Consider enabling multi-factor authentication for users.\n- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/privileged-identity-management/pim-resource-roles-assign-roles","https://docs.microsoft.com/en-us/azure/active-directory/privileged-identity-management/pim-configure"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Update role setting in PIM\" and event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"7882cebf-6cf1-4de3-9662-213aa13e8b80:103.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/78d3d8d9-b476-451d-a9e0-7a5addd70670:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/78d3d8d9-b476-451d-a9e0-7a5addd70670:102.0.0.json new file mode 100644 index 0000000000000..c38bd45ca0dea --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/78d3d8d9-b476-451d-a9e0-7a5addd70670:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Spike in AWS Error Messages v102.0.0","rule_id":"78d3d8d9-b476-451d-a9e0-7a5addd70670:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a significant spike in the rate of a particular error in the CloudTrail messages. Spikes in error messages may accompany attempts at privilege escalation, lateral movement, or discovery.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Spike in AWS Error Messages\n\nCloudTrail logging provides visibility on actions taken within an AWS environment. By monitoring these events and\nunderstanding what is considered normal behavior within an organization, you can spot suspicious or malicious activity\nwhen deviations occur.\n\nThis rule uses a machine learning job to detect a significant spike in the rate of a particular error in the CloudTrail\nmessages. Spikes in error messages may accompany attempts at privilege escalation, lateral movement, or discovery.\n\n#### Possible investigation steps\n\n- Examine the history of the error. If the error only manifested recently, it might be related to recent changes in an\nautomation module or script. You can find the error in the `aws.cloudtrail.error_code field` field.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, or network administrator activity.\n- Examine the request parameters. These may indicate the source of the program or the nature of the task being performed\nwhen the error occurred.\n - Check whether the error is related to unsuccessful attempts to enumerate or access objects, data, or secrets.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Contact the account owner and confirm whether they are aware of this activity if suspicious.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- Examine the history of the command. If the command only manifested recently, it might be part of a new automation\nmodule or script. If it has a consistent cadence (for example, it appears in small numbers on a weekly or monthly cadence),\nit might be part of a housekeeping or maintenance process. You can find the command in the `event.action field` field.\n- The adoption of new services or the addition of new functionality to scripts may generate false positives.\n\n### Related Rules\n\n- Unusual City For an AWS Command - 809b70d3-e2c3-455e-af1b-2626a5a1a276\n- Unusual Country For an AWS Command - dca28dee-c999-400f-b640-50a081cc0fd1\n- Unusual AWS Command for a User - ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1\n- Rare AWS Error Code - 19de8096-e2b0-4bd8-80c9-34a820813fff\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"false_positives":["Spikes in error message activity can also be due to bugs in cloud automation scripts or workflows; changes to cloud automation scripts or workflows; adoption of new services; changes in the way services are used; or changes to IAM privileges."],"from":"now-60m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Cloud","AWS","ML","Investigation Guide"],"anomaly_threshold":50,"machine_learning_job_id":"high_distinct_count_error_message","type":"machine_learning","related_integrations":[],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"78d3d8d9-b476-451d-a9e0-7a5addd70670:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/78d3d8d9-b476-451d-a9e0-7a5addd70670:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/78d3d8d9-b476-451d-a9e0-7a5addd70670:102.0.1.json new file mode 100644 index 0000000000000..2103b5ad640b9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/78d3d8d9-b476-451d-a9e0-7a5addd70670:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Spike in AWS Error Messages v102.0.1","rule_id":"78d3d8d9-b476-451d-a9e0-7a5addd70670:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a significant spike in the rate of a particular error in the CloudTrail messages. Spikes in error messages may accompany attempts at privilege escalation, lateral movement, or discovery.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Spike in AWS Error Messages\n\nCloudTrail logging provides visibility on actions taken within an AWS environment. By monitoring these events and\nunderstanding what is considered normal behavior within an organization, you can spot suspicious or malicious activity\nwhen deviations occur.\n\nThis rule uses a machine learning job to detect a significant spike in the rate of a particular error in the CloudTrail\nmessages. Spikes in error messages may accompany attempts at privilege escalation, lateral movement, or discovery.\n\n#### Possible investigation steps\n\n- Examine the history of the error. If the error only manifested recently, it might be related to recent changes in an\nautomation module or script. You can find the error in the `aws.cloudtrail.error_code field` field.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, or network administrator activity.\n- Examine the request parameters. These may indicate the source of the program or the nature of the task being performed\nwhen the error occurred.\n - Check whether the error is related to unsuccessful attempts to enumerate or access objects, data, or secrets.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Contact the account owner and confirm whether they are aware of this activity if suspicious.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- Examine the history of the command. If the command only manifested recently, it might be part of a new automation\nmodule or script. If it has a consistent cadence (for example, it appears in small numbers on a weekly or monthly cadence),\nit might be part of a housekeeping or maintenance process. You can find the command in the `event.action field` field.\n- The adoption of new services or the addition of new functionality to scripts may generate false positives.\n\n### Related Rules\n\n- Unusual City For an AWS Command - 809b70d3-e2c3-455e-af1b-2626a5a1a276\n- Unusual Country For an AWS Command - dca28dee-c999-400f-b640-50a081cc0fd1\n- Unusual AWS Command for a User - ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1\n- Rare AWS Error Code - 19de8096-e2b0-4bd8-80c9-34a820813fff\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"false_positives":["Spikes in error message activity can also be due to bugs in cloud automation scripts or workflows; changes to cloud automation scripts or workflows; adoption of new services; changes in the way services are used; or changes to IAM privileges."],"from":"now-60m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Cloud","AWS","ML","Investigation Guide"],"anomaly_threshold":50,"machine_learning_job_id":"high_distinct_count_error_message","type":"machine_learning","related_integrations":[],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"78d3d8d9-b476-451d-a9e0-7a5addd70670:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/78d3d8d9-b476-451d-a9e0-7a5addd70670:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/78d3d8d9-b476-451d-a9e0-7a5addd70670:102.0.2.json new file mode 100644 index 0000000000000..6b564491f7c7c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/78d3d8d9-b476-451d-a9e0-7a5addd70670:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Spike in AWS Error Messages v102.0.2","rule_id":"78d3d8d9-b476-451d-a9e0-7a5addd70670:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a significant spike in the rate of a particular error in the CloudTrail messages. Spikes in error messages may accompany attempts at privilege escalation, lateral movement, or discovery.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Spike in AWS Error Messages\n\nCloudTrail logging provides visibility on actions taken within an AWS environment. By monitoring these events and\nunderstanding what is considered normal behavior within an organization, you can spot suspicious or malicious activity\nwhen deviations occur.\n\nThis rule uses a machine learning job to detect a significant spike in the rate of a particular error in the CloudTrail\nmessages. Spikes in error messages may accompany attempts at privilege escalation, lateral movement, or discovery.\n\n#### Possible investigation steps\n\n- Examine the history of the error. If the error only manifested recently, it might be related to recent changes in an\nautomation module or script. You can find the error in the `aws.cloudtrail.error_code field` field.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, or network administrator activity.\n- Examine the request parameters. These may indicate the source of the program or the nature of the task being performed\nwhen the error occurred.\n - Check whether the error is related to unsuccessful attempts to enumerate or access objects, data, or secrets.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Contact the account owner and confirm whether they are aware of this activity if suspicious.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- Examine the history of the command. If the command only manifested recently, it might be part of a new automation\nmodule or script. If it has a consistent cadence (for example, it appears in small numbers on a weekly or monthly cadence),\nit might be part of a housekeeping or maintenance process. You can find the command in the `event.action field` field.\n- The adoption of new services or the addition of new functionality to scripts may generate false positives.\n\n### Related Rules\n\n- Unusual City For an AWS Command - 809b70d3-e2c3-455e-af1b-2626a5a1a276\n- Unusual Country For an AWS Command - dca28dee-c999-400f-b640-50a081cc0fd1\n- Unusual AWS Command for a User - ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1\n- Rare AWS Error Code - 19de8096-e2b0-4bd8-80c9-34a820813fff\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"false_positives":["Spikes in error message activity can also be due to bugs in cloud automation scripts or workflows; changes to cloud automation scripts or workflows; adoption of new services; changes in the way services are used; or changes to IAM privileges."],"from":"now-60m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Cloud","AWS","ML","Investigation Guide"],"anomaly_threshold":50,"machine_learning_job_id":"high_distinct_count_error_message","type":"machine_learning","related_integrations":[],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"78d3d8d9-b476-451d-a9e0-7a5addd70670:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/792dd7a6-7e00-4a0a-8a9a-a7c24720b5ec:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/792dd7a6-7e00-4a0a-8a9a-a7c24720b5ec:102.0.0.json new file mode 100644 index 0000000000000..bfac9a15f6cb1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/792dd7a6-7e00-4a0a-8a9a-a7c24720b5ec:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Key Vault Modified v102.0.0","rule_id":"792dd7a6-7e00-4a0a-8a9a-a7c24720b5ec:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to a Key Vault in Azure. The Key Vault is a service that safeguards encryption keys and secrets like certificates, connection strings, and passwords. Because this data is sensitive and business critical, access to key vaults should be secured to allow only authorized applications and users.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Key vault modifications may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Key vault modifications from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/key-vault/general/basic-concepts","https://docs.microsoft.com/en-us/azure/key-vault/general/secure-your-key-vault","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Data Protection"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.001","name":"Credentials In Files","reference":"https://attack.mitre.org/techniques/T1552/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.KEYVAULT/VAULTS/WRITE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"792dd7a6-7e00-4a0a-8a9a-a7c24720b5ec:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/792dd7a6-7e00-4a0a-8a9a-a7c24720b5ec:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/792dd7a6-7e00-4a0a-8a9a-a7c24720b5ec:102.0.1.json new file mode 100644 index 0000000000000..6c37e544e68ab --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/792dd7a6-7e00-4a0a-8a9a-a7c24720b5ec:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Key Vault Modified v102.0.1","rule_id":"792dd7a6-7e00-4a0a-8a9a-a7c24720b5ec:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to a Key Vault in Azure. The Key Vault is a service that safeguards encryption keys and secrets like certificates, connection strings, and passwords. Because this data is sensitive and business critical, access to key vaults should be secured to allow only authorized applications and users.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Key vault modifications may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Key vault modifications from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/key-vault/general/basic-concepts","https://docs.microsoft.com/en-us/azure/key-vault/general/secure-your-key-vault","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Data Protection"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.001","name":"Credentials In Files","reference":"https://attack.mitre.org/techniques/T1552/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.KEYVAULT/VAULTS/WRITE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"792dd7a6-7e00-4a0a-8a9a-a7c24720b5ec:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/792dd7a6-7e00-4a0a-8a9a-a7c24720b5ec:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/792dd7a6-7e00-4a0a-8a9a-a7c24720b5ec:102.0.2.json new file mode 100644 index 0000000000000..924c3d30a270a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/792dd7a6-7e00-4a0a-8a9a-a7c24720b5ec:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Key Vault Modified v102.0.2","rule_id":"792dd7a6-7e00-4a0a-8a9a-a7c24720b5ec:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to a Key Vault in Azure. The Key Vault is a service that safeguards encryption keys and secrets like certificates, connection strings, and passwords. Because this data is sensitive and business critical, access to key vaults should be secured to allow only authorized applications and users.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Key vault modifications may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Key vault modifications from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/key-vault/general/basic-concepts","https://docs.microsoft.com/en-us/azure/key-vault/general/secure-your-key-vault","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Data Protection"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.001","name":"Credentials In Files","reference":"https://attack.mitre.org/techniques/T1552/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.KEYVAULT/VAULTS/WRITE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"792dd7a6-7e00-4a0a-8a9a-a7c24720b5ec:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/79f97b31-480e-4e63-a7f4-ede42bf2c6de:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/79f97b31-480e-4e63-a7f4-ede42bf2c6de:101.0.0.json new file mode 100644 index 0000000000000..0321d32bf39b5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/79f97b31-480e-4e63-a7f4-ede42bf2c6de:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Shadow Credentials added to AD Object v101.0.0","rule_id":"79f97b31-480e-4e63-a7f4-ede42bf2c6de:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identify the modification of the msDS-KeyCredentialLink attribute in an Active Directory Computer or User Object. Attackers can abuse control over the object and create a key pair, append to raw public key in the attribute, and obtain persistent and stealthy access to the target user or computer object.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Modifications in the msDS-KeyCredentialLink attribute can be done legitimately by the Azure AD Connect synchronization account or the ADFS service account. These accounts can be added as Exceptions."],"from":"now-9m","references":["https://posts.specterops.io/shadow-credentials-abusing-key-trust-account-mapping-for-takeover-8ee1a53566ab","https://www.thehacker.recipes/ad/movement/kerberos/shadow-credentials","https://github.com/OTRF/Set-AuditRule","https://cyberstoph.org/posts/2022/03/detecting-shadow-credentials/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Active Directory"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"Directory Service Changes\" and event.code:\"5136\" and\n winlog.event_data.AttributeLDAPDisplayName:\"msDS-KeyCredentialLink\" and winlog.event_data.AttributeValue :B\\:828*\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeValue","type":"unknown"}],"setup":"The 'Audit Directory Service Changes' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```\n\nThe above policy does not cover User objects, so we need to set up an AuditRule using https://github.com/OTRF/Set-AuditRule.\nAs this specifies the msDS-KeyCredentialLink Attribute GUID, it is expected to be low noise.\n\n```\nSet-AuditRule -AdObjectPath 'AD:\\CN=Users,DC=Domain,DC=com' -WellKnownSidType WorldSid -Rights WriteProperty -InheritanceFlags Children -AttributeGUID 5b47d60f-6090-40b2-9f37-2a4de88f3063 -AuditFlags Success\n```"},"id":"79f97b31-480e-4e63-a7f4-ede42bf2c6de:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/79f97b31-480e-4e63-a7f4-ede42bf2c6de:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/79f97b31-480e-4e63-a7f4-ede42bf2c6de:101.0.1.json new file mode 100644 index 0000000000000..b8f0f18d63619 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/79f97b31-480e-4e63-a7f4-ede42bf2c6de:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Shadow Credentials added to AD Object v101.0.1","rule_id":"79f97b31-480e-4e63-a7f4-ede42bf2c6de:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identify the modification of the msDS-KeyCredentialLink attribute in an Active Directory Computer or User Object. Attackers can abuse control over the object and create a key pair, append to raw public key in the attribute, and obtain persistent and stealthy access to the target user or computer object.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Modifications in the msDS-KeyCredentialLink attribute can be done legitimately by the Azure AD Connect synchronization account or the ADFS service account. These accounts can be added as Exceptions."],"from":"now-9m","references":["https://posts.specterops.io/shadow-credentials-abusing-key-trust-account-mapping-for-takeover-8ee1a53566ab","https://www.thehacker.recipes/ad/movement/kerberos/shadow-credentials","https://github.com/OTRF/Set-AuditRule","https://cyberstoph.org/posts/2022/03/detecting-shadow-credentials/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Active Directory"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"Directory Service Changes\" and event.code:\"5136\" and\n winlog.event_data.AttributeLDAPDisplayName:\"msDS-KeyCredentialLink\" and winlog.event_data.AttributeValue :B\\:828*\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeValue","type":"unknown"}],"setup":"The 'Audit Directory Service Changes' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```\n\nThe above policy does not cover User objects, so we need to set up an AuditRule using https://github.com/OTRF/Set-AuditRule.\nAs this specifies the msDS-KeyCredentialLink Attribute GUID, it is expected to be low noise.\n\n```\nSet-AuditRule -AdObjectPath 'AD:\\CN=Users,DC=Domain,DC=com' -WellKnownSidType WorldSid -Rights WriteProperty -InheritanceFlags Children -AttributeGUID 5b47d60f-6090-40b2-9f37-2a4de88f3063 -AuditFlags Success\n```"},"id":"79f97b31-480e-4e63-a7f4-ede42bf2c6de:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/79f97b31-480e-4e63-a7f4-ede42bf2c6de:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/79f97b31-480e-4e63-a7f4-ede42bf2c6de:101.0.2.json new file mode 100644 index 0000000000000..4cdddc09a0e21 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/79f97b31-480e-4e63-a7f4-ede42bf2c6de:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Shadow Credentials added to AD Object v101.0.2","rule_id":"79f97b31-480e-4e63-a7f4-ede42bf2c6de:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identify the modification of the msDS-KeyCredentialLink attribute in an Active Directory Computer or User Object. Attackers can abuse control over the object and create a key pair, append to raw public key in the attribute, and obtain persistent and stealthy access to the target user or computer object.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Modifications in the msDS-KeyCredentialLink attribute can be done legitimately by the Azure AD Connect synchronization account or the ADFS service account. These accounts can be added as Exceptions."],"from":"now-9m","references":["https://posts.specterops.io/shadow-credentials-abusing-key-trust-account-mapping-for-takeover-8ee1a53566ab","https://www.thehacker.recipes/ad/movement/kerberos/shadow-credentials","https://github.com/OTRF/Set-AuditRule","https://cyberstoph.org/posts/2022/03/detecting-shadow-credentials/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Active Directory"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:\"Directory Service Changes\" and event.code:\"5136\" and\n winlog.event_data.AttributeLDAPDisplayName:\"msDS-KeyCredentialLink\" and winlog.event_data.AttributeValue :B\\:828*\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeValue","type":"unknown"}],"setup":"The 'Audit Directory Service Changes' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```\n\nThe above policy does not cover User objects, so we need to set up an AuditRule using https://github.com/OTRF/Set-AuditRule.\nAs this specifies the msDS-KeyCredentialLink Attribute GUID, it is expected to be low noise.\n\n```\nSet-AuditRule -AdObjectPath 'AD:\\CN=Users,DC=Domain,DC=com' -WellKnownSidType WorldSid -Rights WriteProperty -InheritanceFlags Children -AttributeGUID 5b47d60f-6090-40b2-9f37-2a4de88f3063 -AuditFlags Success\n```"},"id":"79f97b31-480e-4e63-a7f4-ede42bf2c6de:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7b3da11a-60a2-412e-8aa7-011e1eb9ed47:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7b3da11a-60a2-412e-8aa7-011e1eb9ed47:101.0.0.json new file mode 100644 index 0000000000000..212480448f1f7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7b3da11a-60a2-412e-8aa7-011e1eb9ed47:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS ElastiCache Security Group Created v101.0.0","rule_id":"7b3da11a-60a2-412e-8aa7-011e1eb9ed47:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an ElastiCache security group has been created.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["A ElastiCache security group may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Security group creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheSecurityGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:elasticache.amazonaws.com and event.action:\"Create Cache Security Group\" and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"7b3da11a-60a2-412e-8aa7-011e1eb9ed47:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7b3da11a-60a2-412e-8aa7-011e1eb9ed47:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7b3da11a-60a2-412e-8aa7-011e1eb9ed47:101.0.1.json new file mode 100644 index 0000000000000..59e296d4ee699 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7b3da11a-60a2-412e-8aa7-011e1eb9ed47:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS ElastiCache Security Group Created v101.0.1","rule_id":"7b3da11a-60a2-412e-8aa7-011e1eb9ed47:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an ElastiCache security group has been created.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["A ElastiCache security group may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Security group creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheSecurityGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:elasticache.amazonaws.com and event.action:\"Create Cache Security Group\" and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"7b3da11a-60a2-412e-8aa7-011e1eb9ed47:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7b3da11a-60a2-412e-8aa7-011e1eb9ed47:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7b3da11a-60a2-412e-8aa7-011e1eb9ed47:101.0.2.json new file mode 100644 index 0000000000000..cd2c1e65cfd79 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7b3da11a-60a2-412e-8aa7-011e1eb9ed47:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS ElastiCache Security Group Created v101.0.2","rule_id":"7b3da11a-60a2-412e-8aa7-011e1eb9ed47:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an ElastiCache security group has been created.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["A ElastiCache security group may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Security group creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheSecurityGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:elasticache.amazonaws.com and event.action:\"Create Cache Security Group\" and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"7b3da11a-60a2-412e-8aa7-011e1eb9ed47:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7b8bfc26-81d2-435e-965c-d722ee397ef1:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7b8bfc26-81d2-435e-965c-d722ee397ef1:102.0.0.json new file mode 100644 index 0000000000000..46d3ca1f723fb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7b8bfc26-81d2-435e-965c-d722ee397ef1:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Windows Network Enumeration v102.0.0","rule_id":"7b8bfc26-81d2-435e-965c-d722ee397ef1:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to enumerate hosts in a network using the built-in Windows net.exe tool.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Network Enumeration\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `net` utility to enumerate servers in the environment that hosts shared drives\nor printers. This information is useful to attackers as they can identify targets for lateral movements and search for\nvaluable shared data.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1018","name":"Remote System Discovery","reference":"https://attack.mitre.org/techniques/T1018/"},{"id":"T1135","name":"Network Share Discovery","reference":"https://attack.mitre.org/techniques/T1135/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n ((process.name : \"net.exe\" or process.pe.original_file_name == \"net.exe\") or\n ((process.name : \"net1.exe\" or process.pe.original_file_name == \"net1.exe\") and\n not process.parent.name : \"net.exe\")) and\n (process.args : \"view\" or (process.args : \"time\" and process.args : \"\\\\\\\\*\"))\n\n\n /* expand when ancestry is available\n and not descendant of [process where event.type == \"start\" and process.name : \"cmd.exe\" and\n ((process.parent.name : \"userinit.exe\") or\n (process.parent.name : \"gpscript.exe\") or\n (process.parent.name : \"explorer.exe\" and\n process.args : \"C:\\\\*\\\\Start Menu\\\\Programs\\\\Startup\\\\*.bat*\"))]\n */\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"7b8bfc26-81d2-435e-965c-d722ee397ef1:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7b8bfc26-81d2-435e-965c-d722ee397ef1:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7b8bfc26-81d2-435e-965c-d722ee397ef1:102.0.1.json new file mode 100644 index 0000000000000..7b5e690b13b3b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7b8bfc26-81d2-435e-965c-d722ee397ef1:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Windows Network Enumeration v102.0.1","rule_id":"7b8bfc26-81d2-435e-965c-d722ee397ef1:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to enumerate hosts in a network using the built-in Windows net.exe tool.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Network Enumeration\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `net` utility to enumerate servers in the environment that hosts shared drives\nor printers. This information is useful to attackers as they can identify targets for lateral movements and search for\nvaluable shared data.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1018","name":"Remote System Discovery","reference":"https://attack.mitre.org/techniques/T1018/"},{"id":"T1135","name":"Network Share Discovery","reference":"https://attack.mitre.org/techniques/T1135/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n ((process.name : \"net.exe\" or process.pe.original_file_name == \"net.exe\") or\n ((process.name : \"net1.exe\" or process.pe.original_file_name == \"net1.exe\") and\n not process.parent.name : \"net.exe\")) and\n (process.args : \"view\" or (process.args : \"time\" and process.args : \"\\\\\\\\*\"))\n\n\n /* expand when ancestry is available\n and not descendant of [process where event.type == \"start\" and process.name : \"cmd.exe\" and\n ((process.parent.name : \"userinit.exe\") or\n (process.parent.name : \"gpscript.exe\") or\n (process.parent.name : \"explorer.exe\" and\n process.args : \"C:\\\\*\\\\Start Menu\\\\Programs\\\\Startup\\\\*.bat*\"))]\n */\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"7b8bfc26-81d2-435e-965c-d722ee397ef1:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7b8bfc26-81d2-435e-965c-d722ee397ef1:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7b8bfc26-81d2-435e-965c-d722ee397ef1:102.0.2.json new file mode 100644 index 0000000000000..6a5d4e62ebbb3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7b8bfc26-81d2-435e-965c-d722ee397ef1:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Windows Network Enumeration v102.0.2","rule_id":"7b8bfc26-81d2-435e-965c-d722ee397ef1:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to enumerate hosts in a network using the built-in Windows net.exe tool.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Network Enumeration\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `net` utility to enumerate servers in the environment that hosts shared drives\nor printers. This information is useful to attackers as they can identify targets for lateral movements and search for\nvaluable shared data.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1018","name":"Remote System Discovery","reference":"https://attack.mitre.org/techniques/T1018/"},{"id":"T1135","name":"Network Share Discovery","reference":"https://attack.mitre.org/techniques/T1135/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n ((process.name : \"net.exe\" or process.pe.original_file_name == \"net.exe\") or\n ((process.name : \"net1.exe\" or process.pe.original_file_name == \"net1.exe\") and\n not process.parent.name : \"net.exe\")) and\n (process.args : \"view\" or (process.args : \"time\" and process.args : \"\\\\\\\\*\"))\n\n\n /* expand when ancestry is available\n and not descendant of [process where event.type == \"start\" and process.name : \"cmd.exe\" and\n ((process.parent.name : \"userinit.exe\") or\n (process.parent.name : \"gpscript.exe\") or\n (process.parent.name : \"explorer.exe\" and\n process.args : \"C:\\\\*\\\\Start Menu\\\\Programs\\\\Startup\\\\*.bat*\"))]\n */\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"7b8bfc26-81d2-435e-965c-d722ee397ef1:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7ba58110-ae13-439b-8192-357b0fcfa9d7:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7ba58110-ae13-439b-8192-357b0fcfa9d7:101.0.0.json new file mode 100644 index 0000000000000..db93a2459e9d4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7ba58110-ae13-439b-8192-357b0fcfa9d7:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious LSASS Access via MalSecLogon v101.0.0","rule_id":"7ba58110-ae13-439b-8192-357b0fcfa9d7:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious access to LSASS handle from a call trace pointing to seclogon.dll and with a suspicious access rights value. This may indicate an attempt to leak an LSASS handle via abusing the Secondary Logon service in preparation for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://splintercod3.blogspot.com/p/the-hidden-side-of-seclogon-part-3.html"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"process where event.code == \"10\" and\n winlog.event_data.TargetImage : \"?:\\\\WINDOWS\\\\system32\\\\lsass.exe\" and\n\n /* seclogon service accessing lsass */\n winlog.event_data.CallTrace : \"*seclogon.dll*\" and process.name : \"svchost.exe\" and\n\n /* PROCESS_CREATE_PROCESS & PROCESS_DUP_HANDLE & PROCESS_QUERY_INFORMATION */\n winlog.event_data.GrantedAccess == \"0x14c0\"\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallTrace","type":"unknown"},{"ecs":false,"name":"winlog.event_data.GrantedAccess","type":"unknown"},{"ecs":false,"name":"winlog.event_data.TargetImage","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"7ba58110-ae13-439b-8192-357b0fcfa9d7:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7ba58110-ae13-439b-8192-357b0fcfa9d7:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7ba58110-ae13-439b-8192-357b0fcfa9d7:101.0.1.json new file mode 100644 index 0000000000000..35ef214ae70e1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7ba58110-ae13-439b-8192-357b0fcfa9d7:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious LSASS Access via MalSecLogon v101.0.1","rule_id":"7ba58110-ae13-439b-8192-357b0fcfa9d7:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious access to LSASS handle from a call trace pointing to seclogon.dll and with a suspicious access rights value. This may indicate an attempt to leak an LSASS handle via abusing the Secondary Logon service in preparation for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://splintercod3.blogspot.com/p/the-hidden-side-of-seclogon-part-3.html"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"process where event.code == \"10\" and\n winlog.event_data.TargetImage : \"?:\\\\WINDOWS\\\\system32\\\\lsass.exe\" and\n\n /* seclogon service accessing lsass */\n winlog.event_data.CallTrace : \"*seclogon.dll*\" and process.name : \"svchost.exe\" and\n\n /* PROCESS_CREATE_PROCESS & PROCESS_DUP_HANDLE & PROCESS_QUERY_INFORMATION */\n winlog.event_data.GrantedAccess == \"0x14c0\"\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallTrace","type":"unknown"},{"ecs":false,"name":"winlog.event_data.GrantedAccess","type":"unknown"},{"ecs":false,"name":"winlog.event_data.TargetImage","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"7ba58110-ae13-439b-8192-357b0fcfa9d7:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7ba58110-ae13-439b-8192-357b0fcfa9d7:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7ba58110-ae13-439b-8192-357b0fcfa9d7:101.0.2.json new file mode 100644 index 0000000000000..c095e86b9f9f3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7ba58110-ae13-439b-8192-357b0fcfa9d7:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious LSASS Access via MalSecLogon v101.0.2","rule_id":"7ba58110-ae13-439b-8192-357b0fcfa9d7:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious access to LSASS handle from a call trace pointing to seclogon.dll and with a suspicious access rights value. This may indicate an attempt to leak an LSASS handle via abusing the Secondary Logon service in preparation for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://splintercod3.blogspot.com/p/the-hidden-side-of-seclogon-part-3.html"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"process where event.code == \"10\" and\n winlog.event_data.TargetImage : \"?:\\\\WINDOWS\\\\system32\\\\lsass.exe\" and\n\n /* seclogon service accessing lsass */\n winlog.event_data.CallTrace : \"*seclogon.dll*\" and process.name : \"svchost.exe\" and\n\n /* PROCESS_CREATE_PROCESS & PROCESS_DUP_HANDLE & PROCESS_QUERY_INFORMATION */\n winlog.event_data.GrantedAccess == \"0x14c0\"\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallTrace","type":"unknown"},{"ecs":false,"name":"winlog.event_data.GrantedAccess","type":"unknown"},{"ecs":false,"name":"winlog.event_data.TargetImage","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"7ba58110-ae13-439b-8192-357b0fcfa9d7:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7bcbb3ac-e533-41ad-a612-d6c3bf666aba:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7bcbb3ac-e533-41ad-a612-d6c3bf666aba:100.0.0.json new file mode 100644 index 0000000000000..1875770748046 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7bcbb3ac-e533-41ad-a612-d6c3bf666aba:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Tampering of Bash Command-Line History v100.0.0","rule_id":"7bcbb3ac-e533-41ad-a612-d6c3bf666aba:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may attempt to clear or disable the Bash command-line history in an attempt to evade detection or forensic investigations.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.003","name":"Clear Command History","reference":"https://attack.mitre.org/techniques/T1070/003/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n (\n ((process.args : (\"rm\", \"echo\") or\n (process.args : \"ln\" and process.args : \"-sf\" and process.args : \"/dev/null\") or\n (process.args : \"truncate\" and process.args : \"-s0\"))\n and process.args : (\".bash_history\", \"/root/.bash_history\", \"/home/*/.bash_history\",\"/Users/.bash_history\", \"/Users/*/.bash_history\",\n \".zsh_history\", \"/root/.zsh_history\", \"/home/*/.zsh_history\", \"/Users/.zsh_history\", \"/Users/*/.zsh_history\")) or\n (process.name : \"history\" and process.args : \"-c\") or\n (process.args : \"export\" and process.args : (\"HISTFILE=/dev/null\", \"HISTFILESIZE=0\")) or\n (process.args : \"unset\" and process.args : \"HISTFILE\") or\n (process.args : \"set\" and process.args : \"history\" and process.args : \"+o\")\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"7bcbb3ac-e533-41ad-a612-d6c3bf666aba:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7bcbb3ac-e533-41ad-a612-d6c3bf666aba:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7bcbb3ac-e533-41ad-a612-d6c3bf666aba:100.0.1.json new file mode 100644 index 0000000000000..6a3637ef79f71 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7bcbb3ac-e533-41ad-a612-d6c3bf666aba:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Tampering of Bash Command-Line History v100.0.1","rule_id":"7bcbb3ac-e533-41ad-a612-d6c3bf666aba:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may attempt to clear or disable the Bash command-line history in an attempt to evade detection or forensic investigations.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.003","name":"Clear Command History","reference":"https://attack.mitre.org/techniques/T1070/003/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n (\n ((process.args : (\"rm\", \"echo\") or\n (process.args : \"ln\" and process.args : \"-sf\" and process.args : \"/dev/null\") or\n (process.args : \"truncate\" and process.args : \"-s0\"))\n and process.args : (\".bash_history\", \"/root/.bash_history\", \"/home/*/.bash_history\",\"/Users/.bash_history\", \"/Users/*/.bash_history\",\n \".zsh_history\", \"/root/.zsh_history\", \"/home/*/.zsh_history\", \"/Users/.zsh_history\", \"/Users/*/.zsh_history\")) or\n (process.name : \"history\" and process.args : \"-c\") or\n (process.args : \"export\" and process.args : (\"HISTFILE=/dev/null\", \"HISTFILESIZE=0\")) or\n (process.args : \"unset\" and process.args : \"HISTFILE\") or\n (process.args : \"set\" and process.args : \"history\" and process.args : \"+o\")\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"7bcbb3ac-e533-41ad-a612-d6c3bf666aba:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7bcbb3ac-e533-41ad-a612-d6c3bf666aba:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7bcbb3ac-e533-41ad-a612-d6c3bf666aba:100.0.2.json new file mode 100644 index 0000000000000..a530fb7339c19 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7bcbb3ac-e533-41ad-a612-d6c3bf666aba:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Tampering of Bash Command-Line History v100.0.2","rule_id":"7bcbb3ac-e533-41ad-a612-d6c3bf666aba:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may attempt to clear or disable the Bash command-line history in an attempt to evade detection or forensic investigations.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.003","name":"Clear Command History","reference":"https://attack.mitre.org/techniques/T1070/003/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n (\n ((process.args : (\"rm\", \"echo\") or\n (process.args : \"ln\" and process.args : \"-sf\" and process.args : \"/dev/null\") or\n (process.args : \"truncate\" and process.args : \"-s0\"))\n and process.args : (\".bash_history\", \"/root/.bash_history\", \"/home/*/.bash_history\",\"/Users/.bash_history\", \"/Users/*/.bash_history\",\n \".zsh_history\", \"/root/.zsh_history\", \"/home/*/.zsh_history\", \"/Users/.zsh_history\", \"/Users/*/.zsh_history\")) or\n (process.name : \"history\" and process.args : \"-c\") or\n (process.args : \"export\" and process.args : (\"HISTFILE=/dev/null\", \"HISTFILESIZE=0\")) or\n (process.args : \"unset\" and process.args : \"HISTFILE\") or\n (process.args : \"set\" and process.args : \"history\" and process.args : \"+o\")\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"7bcbb3ac-e533-41ad-a612-d6c3bf666aba:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7caa8e60-2df0-11ed-b814-f661ea17fbce:2.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7caa8e60-2df0-11ed-b814-f661ea17fbce:2.0.0.json new file mode 100644 index 0000000000000..23b34556ecff9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7caa8e60-2df0-11ed-b814-f661ea17fbce:2.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace Bitlocker Setting Disabled v2.0.0","rule_id":"7caa8e60-2df0-11ed-b814-f661ea17fbce:2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Google Workspace administrators whom manage Windows devices and have Windows device management enabled may also enable BitLocker drive encryption to mitigate unauthorized data access on lost or stolen computers. Adversaries with valid account access may disable BitLocker to access sensitive data on an endpoint added to Google Workspace device management.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrators may temporarily disabled Bitlocker on managed devices for maintenance, testing or to resolve potential endpoint conflicts."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/9176657?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:\"CHANGE_APPLICATION_SETTING\" and event.category:(iam or configuration)\n and google_workspace.admin.new_value:\"Disabled\" and google_workspace.admin.setting.name:BitLocker*\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.setting.name","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"7caa8e60-2df0-11ed-b814-f661ea17fbce:2.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7caa8e60-2df0-11ed-b814-f661ea17fbce:2.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7caa8e60-2df0-11ed-b814-f661ea17fbce:2.0.1.json new file mode 100644 index 0000000000000..502a1efbcfe76 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7caa8e60-2df0-11ed-b814-f661ea17fbce:2.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace Bitlocker Setting Disabled v2.0.1","rule_id":"7caa8e60-2df0-11ed-b814-f661ea17fbce:2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Google Workspace administrators whom manage Windows devices and have Windows device management enabled may also enable BitLocker drive encryption to mitigate unauthorized data access on lost or stolen computers. Adversaries with valid account access may disable BitLocker to access sensitive data on an endpoint added to Google Workspace device management.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrators may temporarily disabled Bitlocker on managed devices for maintenance, testing or to resolve potential endpoint conflicts."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/9176657?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:\"CHANGE_APPLICATION_SETTING\" and event.category:(iam or configuration)\n and google_workspace.admin.new_value:\"Disabled\" and google_workspace.admin.setting.name:BitLocker*\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.setting.name","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"7caa8e60-2df0-11ed-b814-f661ea17fbce:2.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7caa8e60-2df0-11ed-b814-f661ea17fbce:2.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7caa8e60-2df0-11ed-b814-f661ea17fbce:2.0.2.json new file mode 100644 index 0000000000000..1b982fd3a1733 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7caa8e60-2df0-11ed-b814-f661ea17fbce:2.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace Bitlocker Setting Disabled v2.0.2","rule_id":"7caa8e60-2df0-11ed-b814-f661ea17fbce:2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Google Workspace administrators whom manage Windows devices and have Windows device management enabled may also enable BitLocker drive encryption to mitigate unauthorized data access on lost or stolen computers. Adversaries with valid account access may disable BitLocker to access sensitive data on an endpoint added to Google Workspace device management.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrators may temporarily disabled Bitlocker on managed devices for maintenance, testing or to resolve potential endpoint conflicts."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/9176657?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:\"CHANGE_APPLICATION_SETTING\" and event.category:(iam or configuration)\n and google_workspace.admin.new_value:\"Disabled\" and google_workspace.admin.setting.name:BitLocker*\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.setting.name","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"7caa8e60-2df0-11ed-b814-f661ea17fbce:2.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7ceb2216-47dd-4e64-9433-cddc99727623:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7ceb2216-47dd-4e64-9433-cddc99727623:102.0.0.json new file mode 100644 index 0000000000000..7de75ab07e95c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7ceb2216-47dd-4e64-9433-cddc99727623:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Service Account Creation v102.0.0","rule_id":"7ceb2216-47dd-4e64-9433-cddc99727623:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new service account is created in Google Cloud Platform (GCP). A service account is a special type of account used by an application or a virtual machine (VM) instance, not a person. Applications use service accounts to make authorized API calls, authorized as either the service account itself, or as G Suite or Cloud Identity users through domain-wide delegation. If service accounts are not tracked and managed properly, they can present a security risk. An adversary may create a new service account to use during their operations in order to avoid using a standard user account and attempt to evade detection.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Service accounts can be created by system administrators. Verify that the behavior was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/iam/docs/service-accounts"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.CreateServiceAccount and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"7ceb2216-47dd-4e64-9433-cddc99727623:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7ceb2216-47dd-4e64-9433-cddc99727623:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7ceb2216-47dd-4e64-9433-cddc99727623:102.0.1.json new file mode 100644 index 0000000000000..320d47b0da416 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7ceb2216-47dd-4e64-9433-cddc99727623:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Service Account Creation v102.0.1","rule_id":"7ceb2216-47dd-4e64-9433-cddc99727623:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new service account is created in Google Cloud Platform (GCP). A service account is a special type of account used by an application or a virtual machine (VM) instance, not a person. Applications use service accounts to make authorized API calls, authorized as either the service account itself, or as G Suite or Cloud Identity users through domain-wide delegation. If service accounts are not tracked and managed properly, they can present a security risk. An adversary may create a new service account to use during their operations in order to avoid using a standard user account and attempt to evade detection.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Service accounts can be created by system administrators. Verify that the behavior was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/iam/docs/service-accounts"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.CreateServiceAccount and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"7ceb2216-47dd-4e64-9433-cddc99727623:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7ceb2216-47dd-4e64-9433-cddc99727623:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7ceb2216-47dd-4e64-9433-cddc99727623:102.0.2.json new file mode 100644 index 0000000000000..af06263c726e2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7ceb2216-47dd-4e64-9433-cddc99727623:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Service Account Creation v102.0.2","rule_id":"7ceb2216-47dd-4e64-9433-cddc99727623:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new service account is created in Google Cloud Platform (GCP). A service account is a special type of account used by an application or a virtual machine (VM) instance, not a person. Applications use service accounts to make authorized API calls, authorized as either the service account itself, or as G Suite or Cloud Identity users through domain-wide delegation. If service accounts are not tracked and managed properly, they can present a security risk. An adversary may create a new service account to use during their operations in order to avoid using a standard user account and attempt to evade detection.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Service accounts can be created by system administrators. Verify that the behavior was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/iam/docs/service-accounts"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.CreateServiceAccount and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"7ceb2216-47dd-4e64-9433-cddc99727623:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7f370d54-c0eb-4270-ac5a-9a6020585dc6:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7f370d54-c0eb-4270-ac5a-9a6020585dc6:101.0.0.json new file mode 100644 index 0000000000000..73f7203680dd6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7f370d54-c0eb-4270-ac5a-9a6020585dc6:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious WMIC XSL Script Execution v101.0.0","rule_id":"7f370d54-c0eb-4270-ac5a-9a6020585dc6:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies WMIC allowlist bypass techniques by alerting on suspicious execution of scripts. When WMIC loads scripting libraries it may be indicative of an allowlist bypass.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1220","name":"XSL Script Processing","reference":"https://attack.mitre.org/techniques/T1220/"}]}],"language":"eql","query":"sequence by process.entity_id with maxspan = 2m\n[process where event.type == \"start\" and\n (process.name : \"WMIC.exe\" or process.pe.original_file_name : \"wmic.exe\") and\n process.args : (\"format*:*\", \"/format*:*\", \"*-format*:*\") and\n not process.command_line : \"* /format:table *\"]\n[any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : (\"jscript.dll\", \"vbscript.dll\") or file.name : (\"jscript.dll\", \"vbscript.dll\"))]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}]},"id":"7f370d54-c0eb-4270-ac5a-9a6020585dc6:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7f370d54-c0eb-4270-ac5a-9a6020585dc6:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7f370d54-c0eb-4270-ac5a-9a6020585dc6:101.0.1.json new file mode 100644 index 0000000000000..3a89f3c7af16a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7f370d54-c0eb-4270-ac5a-9a6020585dc6:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious WMIC XSL Script Execution v101.0.1","rule_id":"7f370d54-c0eb-4270-ac5a-9a6020585dc6:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies WMIC allowlist bypass techniques by alerting on suspicious execution of scripts. When WMIC loads scripting libraries it may be indicative of an allowlist bypass.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1220","name":"XSL Script Processing","reference":"https://attack.mitre.org/techniques/T1220/"}]}],"language":"eql","query":"sequence by process.entity_id with maxspan = 2m\n[process where event.type == \"start\" and\n (process.name : \"WMIC.exe\" or process.pe.original_file_name : \"wmic.exe\") and\n process.args : (\"format*:*\", \"/format*:*\", \"*-format*:*\") and\n not process.command_line : \"* /format:table *\"]\n[any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : (\"jscript.dll\", \"vbscript.dll\") or file.name : (\"jscript.dll\", \"vbscript.dll\"))]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}]},"id":"7f370d54-c0eb-4270-ac5a-9a6020585dc6:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/7f370d54-c0eb-4270-ac5a-9a6020585dc6:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/7f370d54-c0eb-4270-ac5a-9a6020585dc6:101.0.2.json new file mode 100644 index 0000000000000..36a355a85b613 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/7f370d54-c0eb-4270-ac5a-9a6020585dc6:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious WMIC XSL Script Execution v101.0.2","rule_id":"7f370d54-c0eb-4270-ac5a-9a6020585dc6:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies WMIC allowlist bypass techniques by alerting on suspicious execution of scripts. When WMIC loads scripting libraries it may be indicative of an allowlist bypass.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1220","name":"XSL Script Processing","reference":"https://attack.mitre.org/techniques/T1220/"}]}],"language":"eql","query":"sequence by process.entity_id with maxspan = 2m\n[process where event.type == \"start\" and\n (process.name : \"WMIC.exe\" or process.pe.original_file_name : \"wmic.exe\") and\n process.args : (\"format*:*\", \"/format*:*\", \"*-format*:*\") and\n not process.command_line : \"* /format:table *\"]\n[any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : (\"jscript.dll\", \"vbscript.dll\") or file.name : (\"jscript.dll\", \"vbscript.dll\"))]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}]},"id":"7f370d54-c0eb-4270-ac5a-9a6020585dc6:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/809b70d3-e2c3-455e-af1b-2626a5a1a276:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/809b70d3-e2c3-455e-af1b-2626a5a1a276:102.0.0.json new file mode 100644 index 0000000000000..5c696d71ddf09 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/809b70d3-e2c3-455e-af1b-2626a5a1a276:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual City For an AWS Command v102.0.0","rule_id":"809b70d3-e2c3-455e-af1b-2626a5a1a276:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected AWS command activity that, while not inherently suspicious or abnormal, is sourcing from a geolocation (city) that is unusual for the command. This can be the result of compromised credentials or keys being used by a threat actor in a different geography than the authorized user(s).","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual City For an AWS Command\n\nCloudTrail logging provides visibility on actions taken within an AWS environment. By monitoring these events and\nunderstanding what is considered normal behavior within an organization, you can spot suspicious or malicious activity\nwhen deviations occur.\n\nThis rule uses a machine learning job to detect an AWS API command that while not inherently suspicious or abnormal, is\nsourcing from a geolocation (city) that is unusual for the command. This can be the result of compromised credentials or\nkeys used by a threat actor in a different geography than the authorized user(s).\n\nDetection alerts from this rule indicate an AWS API command or method call that is rare and unusual for the geolocation\nof the source IP address.\n\n#### Possible investigation steps\n\n- Identify the user account involved and the action performed. Verify whether it should perform this kind of action.\n - Examine the user identity in the `aws.cloudtrail.user_identity.arn` field and the access key ID in the\n `aws.cloudtrail.user_identity.access_key_id` field, which can help identify the precise user context.\n - The user agent details in the `user_agent.original` field may also indicate what kind of a client made the request.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, or network administrator activity.\n- Examine the request parameters. These might indicate the source of the program or the nature of its tasks.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Contact the account owner and confirm whether they are aware of this activity if suspicious.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- False positives can occur if activity is coming from new employees based in a city with no previous history in AWS.\n- Examine the history of the command. If the command only manifested recently, it might be part of a new automation\nmodule or script. If it has a consistent cadence (for example, it appears in small numbers on a weekly or monthly cadence),\nit might be part of a housekeeping or maintenance process. You can find the command in the `event.action field` field.\n\n### Related Rules\n\n- Unusual Country For an AWS Command - dca28dee-c999-400f-b640-50a081cc0fd1\n- Unusual AWS Command for a User - ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1\n- Rare AWS Error Code - 19de8096-e2b0-4bd8-80c9-34a820813fff\n- Spike in AWS Error Messages - 78d3d8d9-b476-451d-a9e0-7a5addd70670\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"false_positives":["New or unusual command and user geolocation activity can be due to manual troubleshooting or reconfiguration; changes in cloud automation scripts or workflows; adoption of new services; expansion into new regions; increased adoption of work from home policies; or users who travel frequently."],"from":"now-2h","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Cloud","AWS","ML","Investigation Guide"],"anomaly_threshold":50,"machine_learning_job_id":"rare_method_for_a_city","type":"machine_learning","related_integrations":[],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"809b70d3-e2c3-455e-af1b-2626a5a1a276:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/809b70d3-e2c3-455e-af1b-2626a5a1a276:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/809b70d3-e2c3-455e-af1b-2626a5a1a276:102.0.1.json new file mode 100644 index 0000000000000..279251115f265 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/809b70d3-e2c3-455e-af1b-2626a5a1a276:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual City For an AWS Command v102.0.1","rule_id":"809b70d3-e2c3-455e-af1b-2626a5a1a276:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected AWS command activity that, while not inherently suspicious or abnormal, is sourcing from a geolocation (city) that is unusual for the command. This can be the result of compromised credentials or keys being used by a threat actor in a different geography than the authorized user(s).","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual City For an AWS Command\n\nCloudTrail logging provides visibility on actions taken within an AWS environment. By monitoring these events and\nunderstanding what is considered normal behavior within an organization, you can spot suspicious or malicious activity\nwhen deviations occur.\n\nThis rule uses a machine learning job to detect an AWS API command that while not inherently suspicious or abnormal, is\nsourcing from a geolocation (city) that is unusual for the command. This can be the result of compromised credentials or\nkeys used by a threat actor in a different geography than the authorized user(s).\n\nDetection alerts from this rule indicate an AWS API command or method call that is rare and unusual for the geolocation\nof the source IP address.\n\n#### Possible investigation steps\n\n- Identify the user account involved and the action performed. Verify whether it should perform this kind of action.\n - Examine the user identity in the `aws.cloudtrail.user_identity.arn` field and the access key ID in the\n `aws.cloudtrail.user_identity.access_key_id` field, which can help identify the precise user context.\n - The user agent details in the `user_agent.original` field may also indicate what kind of a client made the request.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, or network administrator activity.\n- Examine the request parameters. These might indicate the source of the program or the nature of its tasks.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Contact the account owner and confirm whether they are aware of this activity if suspicious.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- False positives can occur if activity is coming from new employees based in a city with no previous history in AWS.\n- Examine the history of the command. If the command only manifested recently, it might be part of a new automation\nmodule or script. If it has a consistent cadence (for example, it appears in small numbers on a weekly or monthly cadence),\nit might be part of a housekeeping or maintenance process. You can find the command in the `event.action field` field.\n\n### Related Rules\n\n- Unusual Country For an AWS Command - dca28dee-c999-400f-b640-50a081cc0fd1\n- Unusual AWS Command for a User - ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1\n- Rare AWS Error Code - 19de8096-e2b0-4bd8-80c9-34a820813fff\n- Spike in AWS Error Messages - 78d3d8d9-b476-451d-a9e0-7a5addd70670\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"false_positives":["New or unusual command and user geolocation activity can be due to manual troubleshooting or reconfiguration; changes in cloud automation scripts or workflows; adoption of new services; expansion into new regions; increased adoption of work from home policies; or users who travel frequently."],"from":"now-2h","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Cloud","AWS","ML","Investigation Guide"],"anomaly_threshold":50,"machine_learning_job_id":"rare_method_for_a_city","type":"machine_learning","related_integrations":[],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"809b70d3-e2c3-455e-af1b-2626a5a1a276:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/809b70d3-e2c3-455e-af1b-2626a5a1a276:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/809b70d3-e2c3-455e-af1b-2626a5a1a276:102.0.2.json new file mode 100644 index 0000000000000..eb2f9b8f82048 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/809b70d3-e2c3-455e-af1b-2626a5a1a276:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual City For an AWS Command v102.0.2","rule_id":"809b70d3-e2c3-455e-af1b-2626a5a1a276:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected AWS command activity that, while not inherently suspicious or abnormal, is sourcing from a geolocation (city) that is unusual for the command. This can be the result of compromised credentials or keys being used by a threat actor in a different geography than the authorized user(s).","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual City For an AWS Command\n\nCloudTrail logging provides visibility on actions taken within an AWS environment. By monitoring these events and\nunderstanding what is considered normal behavior within an organization, you can spot suspicious or malicious activity\nwhen deviations occur.\n\nThis rule uses a machine learning job to detect an AWS API command that while not inherently suspicious or abnormal, is\nsourcing from a geolocation (city) that is unusual for the command. This can be the result of compromised credentials or\nkeys used by a threat actor in a different geography than the authorized user(s).\n\nDetection alerts from this rule indicate an AWS API command or method call that is rare and unusual for the geolocation\nof the source IP address.\n\n#### Possible investigation steps\n\n- Identify the user account involved and the action performed. Verify whether it should perform this kind of action.\n - Examine the user identity in the `aws.cloudtrail.user_identity.arn` field and the access key ID in the\n `aws.cloudtrail.user_identity.access_key_id` field, which can help identify the precise user context.\n - The user agent details in the `user_agent.original` field may also indicate what kind of a client made the request.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, or network administrator activity.\n- Examine the request parameters. These might indicate the source of the program or the nature of its tasks.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Contact the account owner and confirm whether they are aware of this activity if suspicious.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- False positives can occur if activity is coming from new employees based in a city with no previous history in AWS.\n- Examine the history of the command. If the command only manifested recently, it might be part of a new automation\nmodule or script. If it has a consistent cadence (for example, it appears in small numbers on a weekly or monthly cadence),\nit might be part of a housekeeping or maintenance process. You can find the command in the `event.action field` field.\n\n### Related Rules\n\n- Unusual Country For an AWS Command - dca28dee-c999-400f-b640-50a081cc0fd1\n- Unusual AWS Command for a User - ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1\n- Rare AWS Error Code - 19de8096-e2b0-4bd8-80c9-34a820813fff\n- Spike in AWS Error Messages - 78d3d8d9-b476-451d-a9e0-7a5addd70670\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"false_positives":["New or unusual command and user geolocation activity can be due to manual troubleshooting or reconfiguration; changes in cloud automation scripts or workflows; adoption of new services; expansion into new regions; increased adoption of work from home policies; or users who travel frequently."],"from":"now-2h","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Cloud","AWS","ML","Investigation Guide"],"anomaly_threshold":50,"machine_learning_job_id":"rare_method_for_a_city","type":"machine_learning","related_integrations":[],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"809b70d3-e2c3-455e-af1b-2626a5a1a276:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/80c52164-c82a-402c-9964-852533d58be1:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/80c52164-c82a-402c-9964-852533d58be1:100.0.0.json new file mode 100644 index 0000000000000..fae64317c627e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/80c52164-c82a-402c-9964-852533d58be1:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Process Injection - Detected - Elastic Endgame v100.0.0","rule_id":"80c52164-c82a-402c-9964-852533d58be1:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected Process Injection. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:kernel_shellcode_event or endgame.event_subtype_full:kernel_shellcode_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"80c52164-c82a-402c-9964-852533d58be1:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/80c52164-c82a-402c-9964-852533d58be1:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/80c52164-c82a-402c-9964-852533d58be1:100.0.1.json new file mode 100644 index 0000000000000..e32b59fa2a1a7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/80c52164-c82a-402c-9964-852533d58be1:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Process Injection - Detected - Elastic Endgame v100.0.1","rule_id":"80c52164-c82a-402c-9964-852533d58be1:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected Process Injection. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:kernel_shellcode_event or endgame.event_subtype_full:kernel_shellcode_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"80c52164-c82a-402c-9964-852533d58be1:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/80c52164-c82a-402c-9964-852533d58be1:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/80c52164-c82a-402c-9964-852533d58be1:100.0.2.json new file mode 100644 index 0000000000000..6267dcafb60f4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/80c52164-c82a-402c-9964-852533d58be1:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Process Injection - Detected - Elastic Endgame v100.0.2","rule_id":"80c52164-c82a-402c-9964-852533d58be1:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected Process Injection. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:kernel_shellcode_event or endgame.event_subtype_full:kernel_shellcode_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"80c52164-c82a-402c-9964-852533d58be1:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/818e23e6-2094-4f0e-8c01-22d30f3506c6:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/818e23e6-2094-4f0e-8c01-22d30f3506c6:102.0.0.json new file mode 100644 index 0000000000000..2b5ad4f2d32c9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/818e23e6-2094-4f0e-8c01-22d30f3506c6:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell Script Block Logging Disabled v102.0.0","rule_id":"818e23e6-2094-4f0e-8c01-22d30f3506c6:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to disable PowerShell Script Block Logging via registry modification. Attackers may disable this logging to conceal their activities in the host and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Script Block Logging Disabled\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks, making\nit available in various environments and creating an attractive way for attackers to execute code.\n\nPowerShell Script Block Logging is a feature of PowerShell that records the content of all script blocks that it\nprocesses, giving defenders visibility of PowerShell scripts and sequences of executed commands.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check whether it makes sense for the user to use PowerShell to complete tasks.\n- Investigate if PowerShell scripts were run after logging was disabled.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- PowerShell Suspicious Discovery Related Windows API Functions - 61ac3638-40a3-44b2-855a-985636ca985e\n- PowerShell Keylogging Script - bd2c86a0-8b61-4457-ab38-96943984e889\n- PowerShell Suspicious Script with Audio Capture Capabilities - 2f2f4939-0b34-40c2-a0a3-844eb7889f43\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n- Suspicious .NET Reflection via PowerShell - e26f042e-c590-4e82-8e05-41e81bd822ad\n- PowerShell Suspicious Payload Encoded and Compressed - 81fe9dc6-a2d7-4192-a2d8-eed98afc766a\n- PowerShell Suspicious Script with Screenshot Capabilities - 959a7353-1129-4aa7-9084-30746b256a70\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://admx.help/?Category=Windows_10_2016&Policy=Microsoft.Policies.PowerShell::EnableScriptBlockLogging"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.002","name":"Disable Windows Event Logging","reference":"https://attack.mitre.org/techniques/T1562/002/"}]}]}],"language":"eql","query":"registry where event.type == \"change\" and\n registry.path : (\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\PowerShell\\\\ScriptBlockLogging\\\\EnableScriptBlockLogging\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\PowerShell\\\\ScriptBlockLogging\\\\EnableScriptBlockLogging\"\n ) and registry.data.strings : (\"0\", \"0x00000000\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"818e23e6-2094-4f0e-8c01-22d30f3506c6:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/818e23e6-2094-4f0e-8c01-22d30f3506c6:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/818e23e6-2094-4f0e-8c01-22d30f3506c6:102.0.1.json new file mode 100644 index 0000000000000..c202d837b67bf --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/818e23e6-2094-4f0e-8c01-22d30f3506c6:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell Script Block Logging Disabled v102.0.1","rule_id":"818e23e6-2094-4f0e-8c01-22d30f3506c6:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to disable PowerShell Script Block Logging via registry modification. Attackers may disable this logging to conceal their activities in the host and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Script Block Logging Disabled\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks, making\nit available in various environments and creating an attractive way for attackers to execute code.\n\nPowerShell Script Block Logging is a feature of PowerShell that records the content of all script blocks that it\nprocesses, giving defenders visibility of PowerShell scripts and sequences of executed commands.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check whether it makes sense for the user to use PowerShell to complete tasks.\n- Investigate if PowerShell scripts were run after logging was disabled.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- PowerShell Suspicious Discovery Related Windows API Functions - 61ac3638-40a3-44b2-855a-985636ca985e\n- PowerShell Keylogging Script - bd2c86a0-8b61-4457-ab38-96943984e889\n- PowerShell Suspicious Script with Audio Capture Capabilities - 2f2f4939-0b34-40c2-a0a3-844eb7889f43\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n- Suspicious .NET Reflection via PowerShell - e26f042e-c590-4e82-8e05-41e81bd822ad\n- PowerShell Suspicious Payload Encoded and Compressed - 81fe9dc6-a2d7-4192-a2d8-eed98afc766a\n- PowerShell Suspicious Script with Screenshot Capabilities - 959a7353-1129-4aa7-9084-30746b256a70\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://admx.help/?Category=Windows_10_2016&Policy=Microsoft.Policies.PowerShell::EnableScriptBlockLogging"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.002","name":"Disable Windows Event Logging","reference":"https://attack.mitre.org/techniques/T1562/002/"}]}]}],"language":"eql","query":"registry where event.type == \"change\" and\n registry.path : (\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\PowerShell\\\\ScriptBlockLogging\\\\EnableScriptBlockLogging\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\PowerShell\\\\ScriptBlockLogging\\\\EnableScriptBlockLogging\"\n ) and registry.data.strings : (\"0\", \"0x00000000\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"818e23e6-2094-4f0e-8c01-22d30f3506c6:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/818e23e6-2094-4f0e-8c01-22d30f3506c6:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/818e23e6-2094-4f0e-8c01-22d30f3506c6:102.0.2.json new file mode 100644 index 0000000000000..bede8d5cb2795 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/818e23e6-2094-4f0e-8c01-22d30f3506c6:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell Script Block Logging Disabled v102.0.2","rule_id":"818e23e6-2094-4f0e-8c01-22d30f3506c6:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to disable PowerShell Script Block Logging via registry modification. Attackers may disable this logging to conceal their activities in the host and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Script Block Logging Disabled\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks, making\nit available in various environments and creating an attractive way for attackers to execute code.\n\nPowerShell Script Block Logging is a feature of PowerShell that records the content of all script blocks that it\nprocesses, giving defenders visibility of PowerShell scripts and sequences of executed commands.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check whether it makes sense for the user to use PowerShell to complete tasks.\n- Investigate if PowerShell scripts were run after logging was disabled.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- PowerShell Suspicious Discovery Related Windows API Functions - 61ac3638-40a3-44b2-855a-985636ca985e\n- PowerShell Keylogging Script - bd2c86a0-8b61-4457-ab38-96943984e889\n- PowerShell Suspicious Script with Audio Capture Capabilities - 2f2f4939-0b34-40c2-a0a3-844eb7889f43\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n- Suspicious .NET Reflection via PowerShell - e26f042e-c590-4e82-8e05-41e81bd822ad\n- PowerShell Suspicious Payload Encoded and Compressed - 81fe9dc6-a2d7-4192-a2d8-eed98afc766a\n- PowerShell Suspicious Script with Screenshot Capabilities - 959a7353-1129-4aa7-9084-30746b256a70\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://admx.help/?Category=Windows_10_2016&Policy=Microsoft.Policies.PowerShell::EnableScriptBlockLogging"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.002","name":"Disable Windows Event Logging","reference":"https://attack.mitre.org/techniques/T1562/002/"}]}]}],"language":"eql","query":"registry where event.type == \"change\" and\n registry.path : (\n \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\PowerShell\\\\ScriptBlockLogging\\\\EnableScriptBlockLogging\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows\\\\PowerShell\\\\ScriptBlockLogging\\\\EnableScriptBlockLogging\"\n ) and registry.data.strings : (\"0\", \"0x00000000\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"818e23e6-2094-4f0e-8c01-22d30f3506c6:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/81fe9dc6-a2d7-4192-a2d8-eed98afc766a:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/81fe9dc6-a2d7-4192-a2d8-eed98afc766a:102.0.0.json new file mode 100644 index 0000000000000..a3b04ecb89942 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/81fe9dc6-a2d7-4192-a2d8-eed98afc766a:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell Suspicious Payload Encoded and Compressed v102.0.0","rule_id":"81fe9dc6-a2d7-4192-a2d8-eed98afc766a:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of .NET functionality for decompression and base64 decoding combined in PowerShell scripts, which malware and security tools heavily use to deobfuscate payloads and load them directly in memory to bypass defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Suspicious Payload Encoded and Compressed\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can embed compressed and encoded payloads in scripts to load directly into the memory without touching the\ndisk. This strategy can circumvent string and file-based security protections.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the script using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately outside engineering or IT business units. As long as the analyst did\nnot identify malware or suspicious activity related to the user or host, this alert can be dismissed.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n- Suspicious .NET Reflection via PowerShell - e26f042e-c590-4e82-8e05-41e81bd822ad\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate PowerShell Scripts which makes use of compression and encoding."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1140","name":"Deobfuscate/Decode Files or Information","reference":"https://attack.mitre.org/techniques/T1140/"},{"id":"T1027","name":"Obfuscated Files or Information","reference":"https://attack.mitre.org/techniques/T1027/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n (\n \"System.IO.Compression.DeflateStream\" or\n \"System.IO.Compression.GzipStream\" or\n \"IO.Compression.DeflateStream\" or\n \"IO.Compression.GzipStream\"\n ) and\n FromBase64String\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"81fe9dc6-a2d7-4192-a2d8-eed98afc766a:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/81fe9dc6-a2d7-4192-a2d8-eed98afc766a:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/81fe9dc6-a2d7-4192-a2d8-eed98afc766a:102.0.1.json new file mode 100644 index 0000000000000..01104d621350d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/81fe9dc6-a2d7-4192-a2d8-eed98afc766a:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell Suspicious Payload Encoded and Compressed v102.0.1","rule_id":"81fe9dc6-a2d7-4192-a2d8-eed98afc766a:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of .NET functionality for decompression and base64 decoding combined in PowerShell scripts, which malware and security tools heavily use to deobfuscate payloads and load them directly in memory to bypass defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Suspicious Payload Encoded and Compressed\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can embed compressed and encoded payloads in scripts to load directly into the memory without touching the\ndisk. This strategy can circumvent string and file-based security protections.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the script using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately outside engineering or IT business units. As long as the analyst did\nnot identify malware or suspicious activity related to the user or host, this alert can be dismissed.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n- Suspicious .NET Reflection via PowerShell - e26f042e-c590-4e82-8e05-41e81bd822ad\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate PowerShell Scripts which makes use of compression and encoding."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1140","name":"Deobfuscate/Decode Files or Information","reference":"https://attack.mitre.org/techniques/T1140/"},{"id":"T1027","name":"Obfuscated Files or Information","reference":"https://attack.mitre.org/techniques/T1027/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n (\n \"System.IO.Compression.DeflateStream\" or\n \"System.IO.Compression.GzipStream\" or\n \"IO.Compression.DeflateStream\" or\n \"IO.Compression.GzipStream\"\n ) and\n FromBase64String\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"81fe9dc6-a2d7-4192-a2d8-eed98afc766a:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/81fe9dc6-a2d7-4192-a2d8-eed98afc766a:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/81fe9dc6-a2d7-4192-a2d8-eed98afc766a:102.0.2.json new file mode 100644 index 0000000000000..640b3778f24c0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/81fe9dc6-a2d7-4192-a2d8-eed98afc766a:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell Suspicious Payload Encoded and Compressed v102.0.2","rule_id":"81fe9dc6-a2d7-4192-a2d8-eed98afc766a:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of .NET functionality for decompression and base64 decoding combined in PowerShell scripts, which malware and security tools heavily use to deobfuscate payloads and load them directly in memory to bypass defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Suspicious Payload Encoded and Compressed\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can embed compressed and encoded payloads in scripts to load directly into the memory without touching the\ndisk. This strategy can circumvent string and file-based security protections.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the script using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately outside engineering or IT business units. As long as the analyst did\nnot identify malware or suspicious activity related to the user or host, this alert can be dismissed.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n- Suspicious .NET Reflection via PowerShell - e26f042e-c590-4e82-8e05-41e81bd822ad\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate PowerShell Scripts which makes use of compression and encoding."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1140","name":"Deobfuscate/Decode Files or Information","reference":"https://attack.mitre.org/techniques/T1140/"},{"id":"T1027","name":"Obfuscated Files or Information","reference":"https://attack.mitre.org/techniques/T1027/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n (\n \"System.IO.Compression.DeflateStream\" or\n \"System.IO.Compression.GzipStream\" or\n \"IO.Compression.DeflateStream\" or\n \"IO.Compression.GzipStream\"\n ) and\n FromBase64String\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"81fe9dc6-a2d7-4192-a2d8-eed98afc766a:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/81ff45f8-f8c2-4e28-992e-5a0e8d98e0fe:2.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/81ff45f8-f8c2-4e28-992e-5a0e8d98e0fe:2.0.0.json new file mode 100644 index 0000000000000..3dad5003d925c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/81ff45f8-f8c2-4e28-992e-5a0e8d98e0fe:2.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Temporarily Scheduled Task Creation v2.0.0","rule_id":"81ff45f8-f8c2-4e28-992e-5a0e8d98e0fe:2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Indicates the creation and deletion of a scheduled task within a short time interval. Adversaries can use these to proxy malicious execution via the schedule service and perform clean up.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4698"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"sequence by host.id, winlog.event_data.TaskName with maxspan=5m\n [iam where event.action == \"scheduled-task-created\" and not user.name : \"*$\"]\n [iam where event.action == \"scheduled-task-deleted\" and not user.name : \"*$\"]\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TaskName","type":"unknown"}]},"id":"81ff45f8-f8c2-4e28-992e-5a0e8d98e0fe:2.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/81ff45f8-f8c2-4e28-992e-5a0e8d98e0fe:2.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/81ff45f8-f8c2-4e28-992e-5a0e8d98e0fe:2.0.1.json new file mode 100644 index 0000000000000..3e1664e80672e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/81ff45f8-f8c2-4e28-992e-5a0e8d98e0fe:2.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Temporarily Scheduled Task Creation v2.0.1","rule_id":"81ff45f8-f8c2-4e28-992e-5a0e8d98e0fe:2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Indicates the creation and deletion of a scheduled task within a short time interval. Adversaries can use these to proxy malicious execution via the schedule service and perform clean up.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4698"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"sequence by host.id, winlog.event_data.TaskName with maxspan=5m\n [iam where event.action == \"scheduled-task-created\" and not user.name : \"*$\"]\n [iam where event.action == \"scheduled-task-deleted\" and not user.name : \"*$\"]\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TaskName","type":"unknown"}]},"id":"81ff45f8-f8c2-4e28-992e-5a0e8d98e0fe:2.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/81ff45f8-f8c2-4e28-992e-5a0e8d98e0fe:2.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/81ff45f8-f8c2-4e28-992e-5a0e8d98e0fe:2.0.2.json new file mode 100644 index 0000000000000..cc56160d377d2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/81ff45f8-f8c2-4e28-992e-5a0e8d98e0fe:2.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Temporarily Scheduled Task Creation v2.0.2","rule_id":"81ff45f8-f8c2-4e28-992e-5a0e8d98e0fe:2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Indicates the creation and deletion of a scheduled task within a short time interval. Adversaries can use these to proxy malicious execution via the schedule service and perform clean up.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4698"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"sequence by host.id, winlog.event_data.TaskName with maxspan=5m\n [iam where event.action == \"scheduled-task-created\" and not user.name : \"*$\"]\n [iam where event.action == \"scheduled-task-deleted\" and not user.name : \"*$\"]\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TaskName","type":"unknown"}]},"id":"81ff45f8-f8c2-4e28-992e-5a0e8d98e0fe:2.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/827f8d8f-4117-4ae4-b551-f56d54b9da6b:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/827f8d8f-4117-4ae4-b551-f56d54b9da6b:100.0.0.json new file mode 100644 index 0000000000000..93c60f9c7d62f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/827f8d8f-4117-4ae4-b551-f56d54b9da6b:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Apple Scripting Execution with Administrator Privileges v100.0.0","rule_id":"827f8d8f-4117-4ae4-b551-f56d54b9da6b:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution of the Apple script interpreter (osascript) without a password prompt and with administrator privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://discussions.apple.com/thread/2266150"],"tags":["Elastic","Host","macOS","Threat Detection","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.name : \"osascript\" and\n process.command_line : \"osascript*with administrator privileges\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"827f8d8f-4117-4ae4-b551-f56d54b9da6b:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/827f8d8f-4117-4ae4-b551-f56d54b9da6b:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/827f8d8f-4117-4ae4-b551-f56d54b9da6b:100.0.1.json new file mode 100644 index 0000000000000..f6a15b0d17f05 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/827f8d8f-4117-4ae4-b551-f56d54b9da6b:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Apple Scripting Execution with Administrator Privileges v100.0.1","rule_id":"827f8d8f-4117-4ae4-b551-f56d54b9da6b:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution of the Apple script interpreter (osascript) without a password prompt and with administrator privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://discussions.apple.com/thread/2266150"],"tags":["Elastic","Host","macOS","Threat Detection","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.name : \"osascript\" and\n process.command_line : \"osascript*with administrator privileges\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"827f8d8f-4117-4ae4-b551-f56d54b9da6b:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/827f8d8f-4117-4ae4-b551-f56d54b9da6b:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/827f8d8f-4117-4ae4-b551-f56d54b9da6b:100.0.2.json new file mode 100644 index 0000000000000..88a046e8d514b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/827f8d8f-4117-4ae4-b551-f56d54b9da6b:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Apple Scripting Execution with Administrator Privileges v100.0.2","rule_id":"827f8d8f-4117-4ae4-b551-f56d54b9da6b:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution of the Apple script interpreter (osascript) without a password prompt and with administrator privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://discussions.apple.com/thread/2266150"],"tags":["Elastic","Host","macOS","Threat Detection","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.name : \"osascript\" and\n process.command_line : \"osascript*with administrator privileges\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"827f8d8f-4117-4ae4-b551-f56d54b9da6b:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/83a1931d-8136-46fc-b7b9-2db4f639e014:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/83a1931d-8136-46fc-b7b9-2db4f639e014:101.0.0.json new file mode 100644 index 0000000000000..91092ff339535 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/83a1931d-8136-46fc-b7b9-2db4f639e014:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Kubernetes Pods Deleted v101.0.0","rule_id":"83a1931d-8136-46fc-b7b9-2db4f639e014:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of Azure Kubernetes Pods. Adversaries may delete a Kubernetes pod to disrupt the normal behavior of the environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Pods may be deleted by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Pods deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkubernetes"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.KUBERNETES/CONNECTEDCLUSTERS/PODS/DELETE\" and\nevent.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"83a1931d-8136-46fc-b7b9-2db4f639e014:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/83a1931d-8136-46fc-b7b9-2db4f639e014:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/83a1931d-8136-46fc-b7b9-2db4f639e014:101.0.1.json new file mode 100644 index 0000000000000..784f1ca0ec204 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/83a1931d-8136-46fc-b7b9-2db4f639e014:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Kubernetes Pods Deleted v101.0.1","rule_id":"83a1931d-8136-46fc-b7b9-2db4f639e014:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of Azure Kubernetes Pods. Adversaries may delete a Kubernetes pod to disrupt the normal behavior of the environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Pods may be deleted by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Pods deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkubernetes"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.KUBERNETES/CONNECTEDCLUSTERS/PODS/DELETE\" and\nevent.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"83a1931d-8136-46fc-b7b9-2db4f639e014:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/83a1931d-8136-46fc-b7b9-2db4f639e014:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/83a1931d-8136-46fc-b7b9-2db4f639e014:101.0.2.json new file mode 100644 index 0000000000000..8a5a7ef7124fe --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/83a1931d-8136-46fc-b7b9-2db4f639e014:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Kubernetes Pods Deleted v101.0.2","rule_id":"83a1931d-8136-46fc-b7b9-2db4f639e014:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of Azure Kubernetes Pods. Adversaries may delete a Kubernetes pod to disrupt the normal behavior of the environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Pods may be deleted by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Pods deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkubernetes"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.KUBERNETES/CONNECTEDCLUSTERS/PODS/DELETE\" and\nevent.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"83a1931d-8136-46fc-b7b9-2db4f639e014:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/84da2554-e12a-11ec-b896-f661ea17fbcd:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/84da2554-e12a-11ec-b896-f661ea17fbcd:102.0.0.json new file mode 100644 index 0000000000000..2c50ba9aeb25e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/84da2554-e12a-11ec-b896-f661ea17fbcd:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Enumerating Domain Trusts via NLTEST.EXE v102.0.0","rule_id":"84da2554-e12a-11ec-b896-f661ea17fbcd:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of nltest.exe for domain trust discovery purposes. Adversaries may use this command-line utility to enumerate domain trusts and gain insight into trust relationships, as well as the state of Domain Controller (DC) replication in a Microsoft Windows NT Domain.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Domain administrators may use this command-line utility for legitimate information gathering purposes, but it is not common for environments with Windows Server 2012 and newer."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/cc731935(v=ws.11)","https://redcanary.com/blog/how-one-hospital-thwarted-a-ryuk-ransomware-outbreak/"],"tags":["Elastic","Host","Windows","Threat Detection","Discovery","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1482","name":"Domain Trust Discovery","reference":"https://attack.mitre.org/techniques/T1482/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"nltest.exe\" and process.args : (\n \"/DCLIST:*\", \"/DCNAME:*\", \"/DSGET*\",\n \"/LSAQUERYFTI:*\", \"/PARENTDOMAIN\",\n \"/DOMAIN_TRUSTS\", \"/BDC_QUERY:*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"84da2554-e12a-11ec-b896-f661ea17fbcd:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/84da2554-e12a-11ec-b896-f661ea17fbcd:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/84da2554-e12a-11ec-b896-f661ea17fbcd:102.0.1.json new file mode 100644 index 0000000000000..d14ff3952d89e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/84da2554-e12a-11ec-b896-f661ea17fbcd:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Enumerating Domain Trusts via NLTEST.EXE v102.0.1","rule_id":"84da2554-e12a-11ec-b896-f661ea17fbcd:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of nltest.exe for domain trust discovery purposes. Adversaries may use this command-line utility to enumerate domain trusts and gain insight into trust relationships, as well as the state of Domain Controller (DC) replication in a Microsoft Windows NT Domain.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Domain administrators may use this command-line utility for legitimate information gathering purposes, but it is not common for environments with Windows Server 2012 and newer."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/cc731935(v=ws.11)","https://redcanary.com/blog/how-one-hospital-thwarted-a-ryuk-ransomware-outbreak/"],"tags":["Elastic","Host","Windows","Threat Detection","Discovery","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1482","name":"Domain Trust Discovery","reference":"https://attack.mitre.org/techniques/T1482/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"nltest.exe\" and process.args : (\n \"/DCLIST:*\", \"/DCNAME:*\", \"/DSGET*\",\n \"/LSAQUERYFTI:*\", \"/PARENTDOMAIN\",\n \"/DOMAIN_TRUSTS\", \"/BDC_QUERY:*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"84da2554-e12a-11ec-b896-f661ea17fbcd:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/84da2554-e12a-11ec-b896-f661ea17fbcd:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/84da2554-e12a-11ec-b896-f661ea17fbcd:102.0.2.json new file mode 100644 index 0000000000000..2db1c4007959b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/84da2554-e12a-11ec-b896-f661ea17fbcd:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Enumerating Domain Trusts via NLTEST.EXE v102.0.2","rule_id":"84da2554-e12a-11ec-b896-f661ea17fbcd:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of nltest.exe for domain trust discovery purposes. Adversaries may use this command-line utility to enumerate domain trusts and gain insight into trust relationships, as well as the state of Domain Controller (DC) replication in a Microsoft Windows NT Domain.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Domain administrators may use this command-line utility for legitimate information gathering purposes, but it is not common for environments with Windows Server 2012 and newer."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/cc731935(v=ws.11)","https://redcanary.com/blog/how-one-hospital-thwarted-a-ryuk-ransomware-outbreak/"],"tags":["Elastic","Host","Windows","Threat Detection","Discovery","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1482","name":"Domain Trust Discovery","reference":"https://attack.mitre.org/techniques/T1482/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"nltest.exe\" and process.args : (\n \"/DCLIST:*\", \"/DCNAME:*\", \"/DSGET*\",\n \"/LSAQUERYFTI:*\", \"/PARENTDOMAIN\",\n \"/DOMAIN_TRUSTS\", \"/BDC_QUERY:*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"84da2554-e12a-11ec-b896-f661ea17fbcd:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/850d901a-2a3c-46c6-8b22-55398a01aad8:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/850d901a-2a3c-46c6-8b22-55398a01aad8:102.0.0.json new file mode 100644 index 0000000000000..e976ef049e85d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/850d901a-2a3c-46c6-8b22-55398a01aad8:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Remote Credential Access via Registry v102.0.0","rule_id":"850d901a-2a3c-46c6-8b22-55398a01aad8:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote access to the registry to potentially dump credential data from the Security Account Manager (SAM) registry hive in preparation for credential access and privileges elevation.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Remote Credential Access via Registry\n\nDumping registry hives is a common way to access credential information. Some hives store credential material,\nsuch as the SAM hive, which stores locally cached credentials (SAM secrets), and the SECURITY hive, which stores domain\ncached credentials (LSA secrets). Dumping these hives in combination with the SYSTEM hive enables the attacker to\ndecrypt these secrets.\n\nAttackers can use tools like secretsdump.py or CrackMapExec to dump the registry hives remotely, and use dumped\ncredentials to access other systems in the domain.\n\n#### Possible investigation steps\n\n- Identify the specifics of the involved assets, such as their role, criticality, and associated users.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Determine the privileges of the compromised accounts.\n- Investigate other alerts associated with the user/source host during the past 48 hours.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (e.g., 4624) to the target\nhost.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently malicious\nmust be monitored by the security team.\n\n### Related rules\n\n- Credential Acquisition via Registry Hive Dumping - a7e7bfa3-088e-4f13-b29e-3986e0e756b8\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine if other hosts were compromised.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Reimage the host operating system or restore the compromised files to clean versions.\n- Ensure that the machine has the latest security updates and is not running unsupported Windows versions.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-9m","references":["https://github.com/SecureAuthCorp/impacket/blob/master/examples/secretsdump.py","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.002","name":"Security Account Manager","reference":"https://attack.mitre.org/techniques/T1003/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by host.id, user.id with maxspan=1m\n [authentication where\n event.outcome == \"success\" and event.action == \"logged-in\" and\n winlog.logon.type == \"Network\" and not user.name == \"ANONYMOUS LOGON\" and\n not user.domain == \"NT AUTHORITY\" and source.ip != \"127.0.0.1\" and source.ip !=\"::1\"]\n [file where event.action == \"creation\" and process.name : \"svchost.exe\" and\n file.Ext.header_bytes : \"72656766*\" and user.id : (\"S-1-5-21-*\", \"S-1-12-1-*\") and file.size >= 30000 and\n not file.path :\n (\"?:\\\\Windows\\\\system32\\\\HKEY_LOCAL_MACHINE_SOFTWARE_Microsoft_*.registry\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Microsoft\\\\Windows\\\\UsrClass.dat.LOG?\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Microsoft\\\\Windows\\\\UsrClass.dat\",\n \"?:\\\\Users\\\\*\\\\ntuser.dat.LOG?\",\n \"?:\\\\Users\\\\*\\\\NTUSER.DAT\")]\n","type":"eql","index":["winlogbeat-*","logs-system.*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":false,"name":"file.Ext.header_bytes","type":"unknown"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"file.size","type":"long"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}],"setup":"This rule uses Elastic Endpoint file creation and system integration events for correlation. Both data should be\ncollected from the host for this detection to work.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"850d901a-2a3c-46c6-8b22-55398a01aad8:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/850d901a-2a3c-46c6-8b22-55398a01aad8:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/850d901a-2a3c-46c6-8b22-55398a01aad8:102.0.1.json new file mode 100644 index 0000000000000..ead0fdbdcb255 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/850d901a-2a3c-46c6-8b22-55398a01aad8:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Remote Credential Access via Registry v102.0.1","rule_id":"850d901a-2a3c-46c6-8b22-55398a01aad8:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote access to the registry to potentially dump credential data from the Security Account Manager (SAM) registry hive in preparation for credential access and privileges elevation.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Remote Credential Access via Registry\n\nDumping registry hives is a common way to access credential information. Some hives store credential material,\nsuch as the SAM hive, which stores locally cached credentials (SAM secrets), and the SECURITY hive, which stores domain\ncached credentials (LSA secrets). Dumping these hives in combination with the SYSTEM hive enables the attacker to\ndecrypt these secrets.\n\nAttackers can use tools like secretsdump.py or CrackMapExec to dump the registry hives remotely, and use dumped\ncredentials to access other systems in the domain.\n\n#### Possible investigation steps\n\n- Identify the specifics of the involved assets, such as their role, criticality, and associated users.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Determine the privileges of the compromised accounts.\n- Investigate other alerts associated with the user/source host during the past 48 hours.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (e.g., 4624) to the target\nhost.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently malicious\nmust be monitored by the security team.\n\n### Related rules\n\n- Credential Acquisition via Registry Hive Dumping - a7e7bfa3-088e-4f13-b29e-3986e0e756b8\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine if other hosts were compromised.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Reimage the host operating system or restore the compromised files to clean versions.\n- Ensure that the machine has the latest security updates and is not running unsupported Windows versions.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-9m","references":["https://github.com/SecureAuthCorp/impacket/blob/master/examples/secretsdump.py","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.002","name":"Security Account Manager","reference":"https://attack.mitre.org/techniques/T1003/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by host.id, user.id with maxspan=1m\n [authentication where\n event.outcome == \"success\" and event.action == \"logged-in\" and\n winlog.logon.type == \"Network\" and not user.name == \"ANONYMOUS LOGON\" and\n not user.domain == \"NT AUTHORITY\" and source.ip != \"127.0.0.1\" and source.ip !=\"::1\"]\n [file where event.action == \"creation\" and process.name : \"svchost.exe\" and\n file.Ext.header_bytes : \"72656766*\" and user.id : (\"S-1-5-21-*\", \"S-1-12-1-*\") and file.size >= 30000 and\n not file.path :\n (\"?:\\\\Windows\\\\system32\\\\HKEY_LOCAL_MACHINE_SOFTWARE_Microsoft_*.registry\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Microsoft\\\\Windows\\\\UsrClass.dat.LOG?\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Microsoft\\\\Windows\\\\UsrClass.dat\",\n \"?:\\\\Users\\\\*\\\\ntuser.dat.LOG?\",\n \"?:\\\\Users\\\\*\\\\NTUSER.DAT\")]\n","type":"eql","index":["winlogbeat-*","logs-system.*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":false,"name":"file.Ext.header_bytes","type":"unknown"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"file.size","type":"long"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}],"setup":"This rule uses Elastic Endpoint file creation and system integration events for correlation. Both data should be\ncollected from the host for this detection to work.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"850d901a-2a3c-46c6-8b22-55398a01aad8:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/850d901a-2a3c-46c6-8b22-55398a01aad8:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/850d901a-2a3c-46c6-8b22-55398a01aad8:102.0.2.json new file mode 100644 index 0000000000000..baafc1e4b1b9c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/850d901a-2a3c-46c6-8b22-55398a01aad8:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Remote Credential Access via Registry v102.0.2","rule_id":"850d901a-2a3c-46c6-8b22-55398a01aad8:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote access to the registry to potentially dump credential data from the Security Account Manager (SAM) registry hive in preparation for credential access and privileges elevation.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Remote Credential Access via Registry\n\nDumping registry hives is a common way to access credential information. Some hives store credential material,\nsuch as the SAM hive, which stores locally cached credentials (SAM secrets), and the SECURITY hive, which stores domain\ncached credentials (LSA secrets). Dumping these hives in combination with the SYSTEM hive enables the attacker to\ndecrypt these secrets.\n\nAttackers can use tools like secretsdump.py or CrackMapExec to dump the registry hives remotely, and use dumped\ncredentials to access other systems in the domain.\n\n#### Possible investigation steps\n\n- Identify the specifics of the involved assets, such as their role, criticality, and associated users.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Determine the privileges of the compromised accounts.\n- Investigate other alerts associated with the user/source host during the past 48 hours.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (e.g., 4624) to the target\nhost.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently malicious\nmust be monitored by the security team.\n\n### Related rules\n\n- Credential Acquisition via Registry Hive Dumping - a7e7bfa3-088e-4f13-b29e-3986e0e756b8\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine if other hosts were compromised.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Reimage the host operating system or restore the compromised files to clean versions.\n- Ensure that the machine has the latest security updates and is not running unsupported Windows versions.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-9m","references":["https://github.com/SecureAuthCorp/impacket/blob/master/examples/secretsdump.py","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.002","name":"Security Account Manager","reference":"https://attack.mitre.org/techniques/T1003/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by host.id, user.id with maxspan=1m\n [authentication where\n event.outcome == \"success\" and event.action == \"logged-in\" and\n winlog.logon.type == \"Network\" and not user.name == \"ANONYMOUS LOGON\" and\n not user.domain == \"NT AUTHORITY\" and source.ip != \"127.0.0.1\" and source.ip !=\"::1\"]\n [file where event.action == \"creation\" and process.name : \"svchost.exe\" and\n file.Ext.header_bytes : \"72656766*\" and user.id : (\"S-1-5-21-*\", \"S-1-12-1-*\") and file.size >= 30000 and\n not file.path :\n (\"?:\\\\Windows\\\\system32\\\\HKEY_LOCAL_MACHINE_SOFTWARE_Microsoft_*.registry\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Microsoft\\\\Windows\\\\UsrClass.dat.LOG?\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Microsoft\\\\Windows\\\\UsrClass.dat\",\n \"?:\\\\Users\\\\*\\\\ntuser.dat.LOG?\",\n \"?:\\\\Users\\\\*\\\\NTUSER.DAT\")]\n","type":"eql","index":["winlogbeat-*","logs-system.*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":false,"name":"file.Ext.header_bytes","type":"unknown"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"file.size","type":"long"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}],"setup":"This rule uses Elastic Endpoint file creation and system integration events for correlation. Both data should be\ncollected from the host for this detection to work.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"850d901a-2a3c-46c6-8b22-55398a01aad8:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/852c1f19-68e8-43a6-9dce-340771fe1be3:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/852c1f19-68e8-43a6-9dce-340771fe1be3:102.0.0.json new file mode 100644 index 0000000000000..fd7ada4de44f5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/852c1f19-68e8-43a6-9dce-340771fe1be3:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious PowerShell Engine ImageLoad v102.0.0","rule_id":"852c1f19-68e8-43a6-9dce-340771fe1be3:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the PowerShell engine being invoked by unexpected processes. Rather than executing PowerShell functionality with powershell.exe, some attackers do this to operate more stealthily.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious PowerShell Engine ImageLoad\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can use PowerShell without having to execute `PowerShell.exe` directly. This technique, often called\n\"PowerShell without PowerShell,\" works by using the underlying System.Management.Automation namespace and can bypass\napplication allowlisting and PowerShell security features.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Retrieve the implementation (DLL, executable, etc.) and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity can happen legitimately. Some vendors have their own PowerShell implementations that are shipped with\nsome products. These benign true positives (B-TPs) can be added as exceptions if necessary after analysis.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"language":"eql","query":"any where (event.category : (\"library\", \"driver\") or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : (\"System.Management.Automation.ni.dll\", \"System.Management.Automation.dll\") or\n file.name : (\"System.Management.Automation.ni.dll\", \"System.Management.Automation.dll\")) and\n\n/* add false positives relevant to your environment here */\nnot process.executable : (\"C:\\\\Windows\\\\System32\\\\RemoteFXvGPUDisablement.exe\", \"C:\\\\Windows\\\\System32\\\\sdiagnhost.exe\") and\nnot process.executable regex~ \"\"\"C:\\\\Program Files( \\(x86\\))?\\\\*\\.exe\"\"\" and\n not process.name :\n (\n \"Altaro.SubAgent.exe\",\n \"AppV_Manage.exe\",\n \"azureadconnect.exe\",\n \"CcmExec.exe\",\n \"configsyncrun.exe\",\n \"choco.exe\",\n \"ctxappvservice.exe\",\n \"DVLS.Console.exe\",\n \"edgetransport.exe\",\n \"exsetup.exe\",\n \"forefrontactivedirectoryconnector.exe\",\n \"InstallUtil.exe\",\n \"JenkinsOnDesktop.exe\",\n \"Microsoft.EnterpriseManagement.ServiceManager.UI.Console.exe\",\n \"mmc.exe\",\n \"mscorsvw.exe\",\n \"msexchangedelivery.exe\",\n \"msexchangefrontendtransport.exe\",\n \"msexchangehmworker.exe\",\n \"msexchangesubmission.exe\",\n \"msiexec.exe\",\n \"MsiExec.exe\",\n \"noderunner.exe\",\n \"NServiceBus.Host.exe\",\n \"NServiceBus.Host32.exe\",\n \"NServiceBus.Hosting.Azure.HostProcess.exe\",\n \"OuiGui.WPF.exe\",\n \"powershell.exe\",\n \"powershell_ise.exe\",\n \"pwsh.exe\",\n \"SCCMCliCtrWPF.exe\",\n \"ScriptEditor.exe\",\n \"ScriptRunner.exe\",\n \"sdiagnhost.exe\",\n \"servermanager.exe\",\n \"setup100.exe\",\n \"ServiceHub.VSDetouredHost.exe\",\n \"SPCAF.Client.exe\",\n \"SPCAF.SettingsEditor.exe\",\n \"SQLPS.exe\",\n \"telemetryservice.exe\",\n \"UMWorkerProcess.exe\",\n \"w3wp.exe\",\n \"wsmprovhost.exe\"\n )\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"852c1f19-68e8-43a6-9dce-340771fe1be3:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/852c1f19-68e8-43a6-9dce-340771fe1be3:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/852c1f19-68e8-43a6-9dce-340771fe1be3:102.0.1.json new file mode 100644 index 0000000000000..4f482a29953d5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/852c1f19-68e8-43a6-9dce-340771fe1be3:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious PowerShell Engine ImageLoad v102.0.1","rule_id":"852c1f19-68e8-43a6-9dce-340771fe1be3:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the PowerShell engine being invoked by unexpected processes. Rather than executing PowerShell functionality with powershell.exe, some attackers do this to operate more stealthily.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious PowerShell Engine ImageLoad\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can use PowerShell without having to execute `PowerShell.exe` directly. This technique, often called\n\"PowerShell without PowerShell,\" works by using the underlying System.Management.Automation namespace and can bypass\napplication allowlisting and PowerShell security features.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Retrieve the implementation (DLL, executable, etc.) and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity can happen legitimately. Some vendors have their own PowerShell implementations that are shipped with\nsome products. These benign true positives (B-TPs) can be added as exceptions if necessary after analysis.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"language":"eql","query":"any where (event.category : (\"library\", \"driver\") or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : (\"System.Management.Automation.ni.dll\", \"System.Management.Automation.dll\") or\n file.name : (\"System.Management.Automation.ni.dll\", \"System.Management.Automation.dll\")) and\n\n/* add false positives relevant to your environment here */\nnot process.executable : (\"C:\\\\Windows\\\\System32\\\\RemoteFXvGPUDisablement.exe\", \"C:\\\\Windows\\\\System32\\\\sdiagnhost.exe\") and\nnot process.executable regex~ \"\"\"C:\\\\Program Files( \\(x86\\))?\\\\*\\.exe\"\"\" and\n not process.name :\n (\n \"Altaro.SubAgent.exe\",\n \"AppV_Manage.exe\",\n \"azureadconnect.exe\",\n \"CcmExec.exe\",\n \"configsyncrun.exe\",\n \"choco.exe\",\n \"ctxappvservice.exe\",\n \"DVLS.Console.exe\",\n \"edgetransport.exe\",\n \"exsetup.exe\",\n \"forefrontactivedirectoryconnector.exe\",\n \"InstallUtil.exe\",\n \"JenkinsOnDesktop.exe\",\n \"Microsoft.EnterpriseManagement.ServiceManager.UI.Console.exe\",\n \"mmc.exe\",\n \"mscorsvw.exe\",\n \"msexchangedelivery.exe\",\n \"msexchangefrontendtransport.exe\",\n \"msexchangehmworker.exe\",\n \"msexchangesubmission.exe\",\n \"msiexec.exe\",\n \"MsiExec.exe\",\n \"noderunner.exe\",\n \"NServiceBus.Host.exe\",\n \"NServiceBus.Host32.exe\",\n \"NServiceBus.Hosting.Azure.HostProcess.exe\",\n \"OuiGui.WPF.exe\",\n \"powershell.exe\",\n \"powershell_ise.exe\",\n \"pwsh.exe\",\n \"SCCMCliCtrWPF.exe\",\n \"ScriptEditor.exe\",\n \"ScriptRunner.exe\",\n \"sdiagnhost.exe\",\n \"servermanager.exe\",\n \"setup100.exe\",\n \"ServiceHub.VSDetouredHost.exe\",\n \"SPCAF.Client.exe\",\n \"SPCAF.SettingsEditor.exe\",\n \"SQLPS.exe\",\n \"telemetryservice.exe\",\n \"UMWorkerProcess.exe\",\n \"w3wp.exe\",\n \"wsmprovhost.exe\"\n )\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"852c1f19-68e8-43a6-9dce-340771fe1be3:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/852c1f19-68e8-43a6-9dce-340771fe1be3:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/852c1f19-68e8-43a6-9dce-340771fe1be3:102.0.2.json new file mode 100644 index 0000000000000..cbc898a4da48f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/852c1f19-68e8-43a6-9dce-340771fe1be3:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious PowerShell Engine ImageLoad v102.0.2","rule_id":"852c1f19-68e8-43a6-9dce-340771fe1be3:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the PowerShell engine being invoked by unexpected processes. Rather than executing PowerShell functionality with powershell.exe, some attackers do this to operate more stealthily.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious PowerShell Engine ImageLoad\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can use PowerShell without having to execute `PowerShell.exe` directly. This technique, often called\n\"PowerShell without PowerShell,\" works by using the underlying System.Management.Automation namespace and can bypass\napplication allowlisting and PowerShell security features.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Retrieve the implementation (DLL, executable, etc.) and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity can happen legitimately. Some vendors have their own PowerShell implementations that are shipped with\nsome products. These benign true positives (B-TPs) can be added as exceptions if necessary after analysis.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"language":"eql","query":"any where (event.category : (\"library\", \"driver\") or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : (\"System.Management.Automation.ni.dll\", \"System.Management.Automation.dll\") or\n file.name : (\"System.Management.Automation.ni.dll\", \"System.Management.Automation.dll\")) and\n\n/* add false positives relevant to your environment here */\nnot process.executable : (\"C:\\\\Windows\\\\System32\\\\RemoteFXvGPUDisablement.exe\", \"C:\\\\Windows\\\\System32\\\\sdiagnhost.exe\") and\nnot process.executable regex~ \"\"\"C:\\\\Program Files( \\(x86\\))?\\\\*\\.exe\"\"\" and\n not process.name :\n (\n \"Altaro.SubAgent.exe\",\n \"AppV_Manage.exe\",\n \"azureadconnect.exe\",\n \"CcmExec.exe\",\n \"configsyncrun.exe\",\n \"choco.exe\",\n \"ctxappvservice.exe\",\n \"DVLS.Console.exe\",\n \"edgetransport.exe\",\n \"exsetup.exe\",\n \"forefrontactivedirectoryconnector.exe\",\n \"InstallUtil.exe\",\n \"JenkinsOnDesktop.exe\",\n \"Microsoft.EnterpriseManagement.ServiceManager.UI.Console.exe\",\n \"mmc.exe\",\n \"mscorsvw.exe\",\n \"msexchangedelivery.exe\",\n \"msexchangefrontendtransport.exe\",\n \"msexchangehmworker.exe\",\n \"msexchangesubmission.exe\",\n \"msiexec.exe\",\n \"MsiExec.exe\",\n \"noderunner.exe\",\n \"NServiceBus.Host.exe\",\n \"NServiceBus.Host32.exe\",\n \"NServiceBus.Hosting.Azure.HostProcess.exe\",\n \"OuiGui.WPF.exe\",\n \"powershell.exe\",\n \"powershell_ise.exe\",\n \"pwsh.exe\",\n \"SCCMCliCtrWPF.exe\",\n \"ScriptEditor.exe\",\n \"ScriptRunner.exe\",\n \"sdiagnhost.exe\",\n \"servermanager.exe\",\n \"setup100.exe\",\n \"ServiceHub.VSDetouredHost.exe\",\n \"SPCAF.Client.exe\",\n \"SPCAF.SettingsEditor.exe\",\n \"SQLPS.exe\",\n \"telemetryservice.exe\",\n \"UMWorkerProcess.exe\",\n \"w3wp.exe\",\n \"wsmprovhost.exe\"\n )\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"852c1f19-68e8-43a6-9dce-340771fe1be3:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8623535c-1e17-44e1-aa97-7a0699c3037d:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8623535c-1e17-44e1-aa97-7a0699c3037d:101.0.0.json new file mode 100644 index 0000000000000..8b861cc118350 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8623535c-1e17-44e1-aa97-7a0699c3037d:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS EC2 Network Access Control List Deletion v101.0.0","rule_id":"8623535c-1e17-44e1-aa97-7a0699c3037d:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an Amazon Elastic Compute Cloud (EC2) network access control list (ACL) or one of its ingress/egress entries.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Network ACL's may be deleted by a network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Network ACL deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/delete-network-acl.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteNetworkAcl.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/delete-network-acl-entry.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteNetworkAclEntry.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:(DeleteNetworkAcl or DeleteNetworkAclEntry) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"8623535c-1e17-44e1-aa97-7a0699c3037d:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8623535c-1e17-44e1-aa97-7a0699c3037d:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8623535c-1e17-44e1-aa97-7a0699c3037d:101.0.1.json new file mode 100644 index 0000000000000..cb42c6ca82cee --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8623535c-1e17-44e1-aa97-7a0699c3037d:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS EC2 Network Access Control List Deletion v101.0.1","rule_id":"8623535c-1e17-44e1-aa97-7a0699c3037d:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an Amazon Elastic Compute Cloud (EC2) network access control list (ACL) or one of its ingress/egress entries.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Network ACL's may be deleted by a network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Network ACL deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/delete-network-acl.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteNetworkAcl.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/delete-network-acl-entry.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteNetworkAclEntry.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:(DeleteNetworkAcl or DeleteNetworkAclEntry) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"8623535c-1e17-44e1-aa97-7a0699c3037d:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8623535c-1e17-44e1-aa97-7a0699c3037d:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8623535c-1e17-44e1-aa97-7a0699c3037d:101.0.2.json new file mode 100644 index 0000000000000..bcb361c600647 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8623535c-1e17-44e1-aa97-7a0699c3037d:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS EC2 Network Access Control List Deletion v101.0.2","rule_id":"8623535c-1e17-44e1-aa97-7a0699c3037d:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an Amazon Elastic Compute Cloud (EC2) network access control list (ACL) or one of its ingress/egress entries.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Network ACL's may be deleted by a network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Network ACL deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/delete-network-acl.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteNetworkAcl.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/delete-network-acl-entry.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteNetworkAclEntry.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:(DeleteNetworkAcl or DeleteNetworkAclEntry) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"8623535c-1e17-44e1-aa97-7a0699c3037d:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/863cdf31-7fd3-41cf-a185-681237ea277b:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/863cdf31-7fd3-41cf-a185-681237ea277b:101.0.0.json new file mode 100644 index 0000000000000..575d8267e8db9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/863cdf31-7fd3-41cf-a185-681237ea277b:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS RDS Security Group Deletion v101.0.0","rule_id":"863cdf31-7fd3-41cf-a185-681237ea277b:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an Amazon Relational Database Service (RDS) Security group.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["An RDS security group deletion may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Security group deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBSecurityGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:DeleteDBSecurityGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"863cdf31-7fd3-41cf-a185-681237ea277b:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/863cdf31-7fd3-41cf-a185-681237ea277b:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/863cdf31-7fd3-41cf-a185-681237ea277b:101.0.1.json new file mode 100644 index 0000000000000..ef8cd90cbf81d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/863cdf31-7fd3-41cf-a185-681237ea277b:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS RDS Security Group Deletion v101.0.1","rule_id":"863cdf31-7fd3-41cf-a185-681237ea277b:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an Amazon Relational Database Service (RDS) Security group.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["An RDS security group deletion may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Security group deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBSecurityGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:DeleteDBSecurityGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"863cdf31-7fd3-41cf-a185-681237ea277b:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/863cdf31-7fd3-41cf-a185-681237ea277b:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/863cdf31-7fd3-41cf-a185-681237ea277b:101.0.2.json new file mode 100644 index 0000000000000..268e83bf1cfd7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/863cdf31-7fd3-41cf-a185-681237ea277b:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS RDS Security Group Deletion v101.0.2","rule_id":"863cdf31-7fd3-41cf-a185-681237ea277b:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an Amazon Relational Database Service (RDS) Security group.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["An RDS security group deletion may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Security group deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBSecurityGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:DeleteDBSecurityGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"863cdf31-7fd3-41cf-a185-681237ea277b:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/867616ec-41e5-4edc-ada2-ab13ab45de8a:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/867616ec-41e5-4edc-ada2-ab13ab45de8a:101.0.0.json new file mode 100644 index 0000000000000..8b8331c08f8f2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/867616ec-41e5-4edc-ada2-ab13ab45de8a:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS IAM Group Deletion v101.0.0","rule_id":"867616ec-41e5-4edc-ada2-ab13ab45de8a:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a specified AWS Identity and Access Management (IAM) resource group. Deleting a resource group does not delete resources that are members of the group; it only deletes the group structure.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A resource group may be deleted by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Resource group deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/delete-group.html","https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:DeleteGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"867616ec-41e5-4edc-ada2-ab13ab45de8a:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/867616ec-41e5-4edc-ada2-ab13ab45de8a:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/867616ec-41e5-4edc-ada2-ab13ab45de8a:101.0.1.json new file mode 100644 index 0000000000000..c3f2591bba9fc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/867616ec-41e5-4edc-ada2-ab13ab45de8a:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS IAM Group Deletion v101.0.1","rule_id":"867616ec-41e5-4edc-ada2-ab13ab45de8a:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a specified AWS Identity and Access Management (IAM) resource group. Deleting a resource group does not delete resources that are members of the group; it only deletes the group structure.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A resource group may be deleted by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Resource group deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/delete-group.html","https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:DeleteGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"867616ec-41e5-4edc-ada2-ab13ab45de8a:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/867616ec-41e5-4edc-ada2-ab13ab45de8a:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/867616ec-41e5-4edc-ada2-ab13ab45de8a:101.0.2.json new file mode 100644 index 0000000000000..da0bc98915702 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/867616ec-41e5-4edc-ada2-ab13ab45de8a:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS IAM Group Deletion v101.0.2","rule_id":"867616ec-41e5-4edc-ada2-ab13ab45de8a:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a specified AWS Identity and Access Management (IAM) resource group. Deleting a resource group does not delete resources that are members of the group; it only deletes the group structure.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A resource group may be deleted by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Resource group deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/delete-group.html","https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteGroup.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:DeleteGroup and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"867616ec-41e5-4edc-ada2-ab13ab45de8a:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/870aecc0-cea4-4110-af3f-e02e9b373655:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/870aecc0-cea4-4110-af3f-e02e9b373655:102.0.0.json new file mode 100644 index 0000000000000..314415786504e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/870aecc0-cea4-4110-af3f-e02e9b373655:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Security Software Discovery via Grep v102.0.0","rule_id":"870aecc0-cea4-4110-af3f-e02e9b373655:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the grep command to discover known third-party macOS and Linux security tools, such as Antivirus or Host Firewall details.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Security Software Discovery via Grep\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `grep` utility with arguments compatible to the enumeration of the security\nsoftware installed on the host. Attackers can use this information to decide whether or not to infect a system, disable\nprotections, use bypasses, etc.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence and whether they are located in expected locations.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, file modifications, and any\nspawned child processes.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Endpoint Security installers, updaters and post installation verification scripts."],"from":"now-9m","tags":["Elastic","Host","macOS","Linux","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1518","name":"Software Discovery","reference":"https://attack.mitre.org/techniques/T1518/","subtechnique":[{"id":"T1518.001","name":"Security Software Discovery","reference":"https://attack.mitre.org/techniques/T1518/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\nprocess.name : \"grep\" and user.id != \"0\" and\n not process.parent.executable : \"/Library/Application Support/*\" and\n process.args :\n (\"Little Snitch*\",\n \"Avast*\",\n \"Avira*\",\n \"ESET*\",\n \"BlockBlock*\",\n \"360Sec*\",\n \"LuLu*\",\n \"KnockKnock*\",\n \"kav\",\n \"KIS\",\n \"RTProtectionDaemon*\",\n \"Malware*\",\n \"VShieldScanner*\",\n \"WebProtection*\",\n \"webinspectord*\",\n \"McAfee*\",\n \"isecespd*\",\n \"macmnsvc*\",\n \"masvc*\",\n \"kesl*\",\n \"avscan*\",\n \"guard*\",\n \"rtvscand*\",\n \"symcfgd*\",\n \"scmdaemon*\",\n \"symantec*\",\n \"sophos*\",\n \"osquery*\",\n \"elastic-endpoint*\"\n ) and\n not (process.args : \"Avast\" and process.args : \"Passwords\")\n","type":"eql","index":["logs-endpoint.events.*","auditbeat-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"870aecc0-cea4-4110-af3f-e02e9b373655:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/870aecc0-cea4-4110-af3f-e02e9b373655:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/870aecc0-cea4-4110-af3f-e02e9b373655:102.0.1.json new file mode 100644 index 0000000000000..c2fcc43a6333b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/870aecc0-cea4-4110-af3f-e02e9b373655:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Security Software Discovery via Grep v102.0.1","rule_id":"870aecc0-cea4-4110-af3f-e02e9b373655:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the grep command to discover known third-party macOS and Linux security tools, such as Antivirus or Host Firewall details.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Security Software Discovery via Grep\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `grep` utility with arguments compatible to the enumeration of the security\nsoftware installed on the host. Attackers can use this information to decide whether or not to infect a system, disable\nprotections, use bypasses, etc.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence and whether they are located in expected locations.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, file modifications, and any\nspawned child processes.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Endpoint Security installers, updaters and post installation verification scripts."],"from":"now-9m","tags":["Elastic","Host","macOS","Linux","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1518","name":"Software Discovery","reference":"https://attack.mitre.org/techniques/T1518/","subtechnique":[{"id":"T1518.001","name":"Security Software Discovery","reference":"https://attack.mitre.org/techniques/T1518/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\nprocess.name : \"grep\" and user.id != \"0\" and\n not process.parent.executable : \"/Library/Application Support/*\" and\n process.args :\n (\"Little Snitch*\",\n \"Avast*\",\n \"Avira*\",\n \"ESET*\",\n \"BlockBlock*\",\n \"360Sec*\",\n \"LuLu*\",\n \"KnockKnock*\",\n \"kav\",\n \"KIS\",\n \"RTProtectionDaemon*\",\n \"Malware*\",\n \"VShieldScanner*\",\n \"WebProtection*\",\n \"webinspectord*\",\n \"McAfee*\",\n \"isecespd*\",\n \"macmnsvc*\",\n \"masvc*\",\n \"kesl*\",\n \"avscan*\",\n \"guard*\",\n \"rtvscand*\",\n \"symcfgd*\",\n \"scmdaemon*\",\n \"symantec*\",\n \"sophos*\",\n \"osquery*\",\n \"elastic-endpoint*\"\n ) and\n not (process.args : \"Avast\" and process.args : \"Passwords\")\n","type":"eql","index":["logs-endpoint.events.*","auditbeat-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"870aecc0-cea4-4110-af3f-e02e9b373655:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/870aecc0-cea4-4110-af3f-e02e9b373655:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/870aecc0-cea4-4110-af3f-e02e9b373655:102.0.2.json new file mode 100644 index 0000000000000..e0524f3475cb1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/870aecc0-cea4-4110-af3f-e02e9b373655:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Security Software Discovery via Grep v102.0.2","rule_id":"870aecc0-cea4-4110-af3f-e02e9b373655:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the grep command to discover known third-party macOS and Linux security tools, such as Antivirus or Host Firewall details.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Security Software Discovery via Grep\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `grep` utility with arguments compatible to the enumeration of the security\nsoftware installed on the host. Attackers can use this information to decide whether or not to infect a system, disable\nprotections, use bypasses, etc.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence and whether they are located in expected locations.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, file modifications, and any\nspawned child processes.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Endpoint Security installers, updaters and post installation verification scripts."],"from":"now-9m","tags":["Elastic","Host","macOS","Linux","Threat Detection","Discovery","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1518","name":"Software Discovery","reference":"https://attack.mitre.org/techniques/T1518/","subtechnique":[{"id":"T1518.001","name":"Security Software Discovery","reference":"https://attack.mitre.org/techniques/T1518/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\nprocess.name : \"grep\" and user.id != \"0\" and\n not process.parent.executable : \"/Library/Application Support/*\" and\n process.args :\n (\"Little Snitch*\",\n \"Avast*\",\n \"Avira*\",\n \"ESET*\",\n \"BlockBlock*\",\n \"360Sec*\",\n \"LuLu*\",\n \"KnockKnock*\",\n \"kav\",\n \"KIS\",\n \"RTProtectionDaemon*\",\n \"Malware*\",\n \"VShieldScanner*\",\n \"WebProtection*\",\n \"webinspectord*\",\n \"McAfee*\",\n \"isecespd*\",\n \"macmnsvc*\",\n \"masvc*\",\n \"kesl*\",\n \"avscan*\",\n \"guard*\",\n \"rtvscand*\",\n \"symcfgd*\",\n \"scmdaemon*\",\n \"symantec*\",\n \"sophos*\",\n \"osquery*\",\n \"elastic-endpoint*\"\n ) and\n not (process.args : \"Avast\" and process.args : \"Passwords\")\n","type":"eql","index":["logs-endpoint.events.*","auditbeat-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"870aecc0-cea4-4110-af3f-e02e9b373655:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/871ea072-1b71-4def-b016-6278b505138d:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/871ea072-1b71-4def-b016-6278b505138d:102.0.0.json new file mode 100644 index 0000000000000..8f8f9a5b67c11 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/871ea072-1b71-4def-b016-6278b505138d:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Enumeration of Administrator Accounts v102.0.0","rule_id":"871ea072-1b71-4def-b016-6278b505138d:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies instances of lower privilege accounts enumerating Administrator accounts or groups using built-in Windows tools.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Enumeration of Administrator Accounts\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `net` and `wmic` utilities to enumerate administrator-related users or groups\nin the domain and local machine scope. Attackers can use this information to plan their next steps of the attack, such\nas mapping targets for credential compromise and other post-exploitation activities.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Related rules\n\n- AdFind Command Activity - eda499b8-a073-4e35-9733-22ec71f57f3a\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1069","name":"Permission Groups Discovery","reference":"https://attack.mitre.org/techniques/T1069/","subtechnique":[{"id":"T1069.002","name":"Domain Groups","reference":"https://attack.mitre.org/techniques/T1069/002/"}]},{"id":"T1087","name":"Account Discovery","reference":"https://attack.mitre.org/techniques/T1087/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (((process.name : \"net.exe\" or process.pe.original_file_name == \"net.exe\") or\n ((process.name : \"net1.exe\" or process.pe.original_file_name == \"net1.exe\") and\n not process.parent.name : \"net.exe\")) and\n process.args : (\"group\", \"user\", \"localgroup\") and\n process.args : (\"admin\", \"Domain Admins\", \"Remote Desktop Users\", \"Enterprise Admins\", \"Organization Management\") and\n not process.args : \"/add\")\n\n or\n\n ((process.name : \"wmic.exe\" or process.pe.original_file_name == \"wmic.exe\") and\n process.args : (\"group\", \"useraccount\"))\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"871ea072-1b71-4def-b016-6278b505138d:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/871ea072-1b71-4def-b016-6278b505138d:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/871ea072-1b71-4def-b016-6278b505138d:102.0.1.json new file mode 100644 index 0000000000000..ddb2117efb699 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/871ea072-1b71-4def-b016-6278b505138d:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Enumeration of Administrator Accounts v102.0.1","rule_id":"871ea072-1b71-4def-b016-6278b505138d:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies instances of lower privilege accounts enumerating Administrator accounts or groups using built-in Windows tools.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Enumeration of Administrator Accounts\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `net` and `wmic` utilities to enumerate administrator-related users or groups\nin the domain and local machine scope. Attackers can use this information to plan their next steps of the attack, such\nas mapping targets for credential compromise and other post-exploitation activities.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Related rules\n\n- AdFind Command Activity - eda499b8-a073-4e35-9733-22ec71f57f3a\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1069","name":"Permission Groups Discovery","reference":"https://attack.mitre.org/techniques/T1069/","subtechnique":[{"id":"T1069.002","name":"Domain Groups","reference":"https://attack.mitre.org/techniques/T1069/002/"}]},{"id":"T1087","name":"Account Discovery","reference":"https://attack.mitre.org/techniques/T1087/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (((process.name : \"net.exe\" or process.pe.original_file_name == \"net.exe\") or\n ((process.name : \"net1.exe\" or process.pe.original_file_name == \"net1.exe\") and\n not process.parent.name : \"net.exe\")) and\n process.args : (\"group\", \"user\", \"localgroup\") and\n process.args : (\"admin\", \"Domain Admins\", \"Remote Desktop Users\", \"Enterprise Admins\", \"Organization Management\") and\n not process.args : \"/add\")\n\n or\n\n ((process.name : \"wmic.exe\" or process.pe.original_file_name == \"wmic.exe\") and\n process.args : (\"group\", \"useraccount\"))\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"871ea072-1b71-4def-b016-6278b505138d:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/871ea072-1b71-4def-b016-6278b505138d:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/871ea072-1b71-4def-b016-6278b505138d:102.0.2.json new file mode 100644 index 0000000000000..d6b11641ccd7d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/871ea072-1b71-4def-b016-6278b505138d:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Enumeration of Administrator Accounts v102.0.2","rule_id":"871ea072-1b71-4def-b016-6278b505138d:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies instances of lower privilege accounts enumerating Administrator accounts or groups using built-in Windows tools.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Enumeration of Administrator Accounts\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `net` and `wmic` utilities to enumerate administrator-related users or groups\nin the domain and local machine scope. Attackers can use this information to plan their next steps of the attack, such\nas mapping targets for credential compromise and other post-exploitation activities.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Related rules\n\n- AdFind Command Activity - eda499b8-a073-4e35-9733-22ec71f57f3a\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1069","name":"Permission Groups Discovery","reference":"https://attack.mitre.org/techniques/T1069/","subtechnique":[{"id":"T1069.002","name":"Domain Groups","reference":"https://attack.mitre.org/techniques/T1069/002/"}]},{"id":"T1087","name":"Account Discovery","reference":"https://attack.mitre.org/techniques/T1087/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (((process.name : \"net.exe\" or process.pe.original_file_name == \"net.exe\") or\n ((process.name : \"net1.exe\" or process.pe.original_file_name == \"net1.exe\") and\n not process.parent.name : \"net.exe\")) and\n process.args : (\"group\", \"user\", \"localgroup\") and\n process.args : (\"admin\", \"Domain Admins\", \"Remote Desktop Users\", \"Enterprise Admins\", \"Organization Management\") and\n not process.args : \"/add\")\n\n or\n\n ((process.name : \"wmic.exe\" or process.pe.original_file_name == \"wmic.exe\") and\n process.args : (\"group\", \"useraccount\"))\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"871ea072-1b71-4def-b016-6278b505138d:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/87594192-4539-4bc4-8543-23bc3d5bd2b4:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/87594192-4539-4bc4-8543-23bc3d5bd2b4:101.0.0.json new file mode 100644 index 0000000000000..e3e1280acf137 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/87594192-4539-4bc4-8543-23bc3d5bd2b4:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS EventBridge Rule Disabled or Deleted v101.0.0","rule_id":"87594192-4539-4bc4-8543-23bc3d5bd2b4:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user has disabled or deleted an EventBridge rule. This activity can result in an unintended loss of visibility in applications or a break in the flow with other AWS services.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["EventBridge Rules could be deleted or disabled by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. EventBridge Rules being deleted or disabled by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-20m","references":["https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_DeleteRule.html","https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_DisableRule.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:eventbridge.amazonaws.com and event.action:(DeleteRule or DisableRule) and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"87594192-4539-4bc4-8543-23bc3d5bd2b4:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/87594192-4539-4bc4-8543-23bc3d5bd2b4:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/87594192-4539-4bc4-8543-23bc3d5bd2b4:101.0.1.json new file mode 100644 index 0000000000000..f2189a610b564 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/87594192-4539-4bc4-8543-23bc3d5bd2b4:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS EventBridge Rule Disabled or Deleted v101.0.1","rule_id":"87594192-4539-4bc4-8543-23bc3d5bd2b4:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user has disabled or deleted an EventBridge rule. This activity can result in an unintended loss of visibility in applications or a break in the flow with other AWS services.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["EventBridge Rules could be deleted or disabled by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. EventBridge Rules being deleted or disabled by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-20m","references":["https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_DeleteRule.html","https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_DisableRule.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:eventbridge.amazonaws.com and event.action:(DeleteRule or DisableRule) and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"87594192-4539-4bc4-8543-23bc3d5bd2b4:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/87594192-4539-4bc4-8543-23bc3d5bd2b4:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/87594192-4539-4bc4-8543-23bc3d5bd2b4:101.0.2.json new file mode 100644 index 0000000000000..a3bfd46ce5c7c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/87594192-4539-4bc4-8543-23bc3d5bd2b4:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS EventBridge Rule Disabled or Deleted v101.0.2","rule_id":"87594192-4539-4bc4-8543-23bc3d5bd2b4:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user has disabled or deleted an EventBridge rule. This activity can result in an unintended loss of visibility in applications or a break in the flow with other AWS services.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["EventBridge Rules could be deleted or disabled by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. EventBridge Rules being deleted or disabled by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-20m","references":["https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_DeleteRule.html","https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_DisableRule.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:eventbridge.amazonaws.com and event.action:(DeleteRule or DisableRule) and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"87594192-4539-4bc4-8543-23bc3d5bd2b4:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/88671231-6626-4e1b-abb7-6e361a171fbb:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/88671231-6626-4e1b-abb7-6e361a171fbb:101.0.0.json new file mode 100644 index 0000000000000..db40b798ab282 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/88671231-6626-4e1b-abb7-6e361a171fbb:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Global Administrator Role Assigned v101.0.0","rule_id":"88671231-6626-4e1b-abb7-6e361a171fbb:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"In Azure Active Directory (Azure AD), permissions to manage resources are assigned using roles. The Global Administrator is a role that enables users to have access to all administrative features in Azure AD and services that use Azure AD identities like the Microsoft 365 Defender portal, the Microsoft 365 compliance center, Exchange, SharePoint Online, and Skype for Business Online. Attackers can add users as Global Administrators to maintain access and manage all subscriptions and their settings and resources.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/roles/permissions-reference#global-administrator"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.003","name":"Additional Cloud Roles","reference":"https://attack.mitre.org/techniques/T1098/003/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.code:\"AzureActiveDirectory\" and event.action:\"Add member to role.\" and\no365.audit.ModifiedProperties.Role_DisplayName.NewValue:\"Global Administrator\"\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"o365.audit.ModifiedProperties.Role_DisplayName.NewValue","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"88671231-6626-4e1b-abb7-6e361a171fbb:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/88671231-6626-4e1b-abb7-6e361a171fbb:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/88671231-6626-4e1b-abb7-6e361a171fbb:101.0.1.json new file mode 100644 index 0000000000000..f99474e74f319 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/88671231-6626-4e1b-abb7-6e361a171fbb:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Global Administrator Role Assigned v101.0.1","rule_id":"88671231-6626-4e1b-abb7-6e361a171fbb:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"In Azure Active Directory (Azure AD), permissions to manage resources are assigned using roles. The Global Administrator is a role that enables users to have access to all administrative features in Azure AD and services that use Azure AD identities like the Microsoft 365 Defender portal, the Microsoft 365 compliance center, Exchange, SharePoint Online, and Skype for Business Online. Attackers can add users as Global Administrators to maintain access and manage all subscriptions and their settings and resources.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/roles/permissions-reference#global-administrator"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.003","name":"Additional Cloud Roles","reference":"https://attack.mitre.org/techniques/T1098/003/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.code:\"AzureActiveDirectory\" and event.action:\"Add member to role.\" and\no365.audit.ModifiedProperties.Role_DisplayName.NewValue:\"Global Administrator\"\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"o365.audit.ModifiedProperties.Role_DisplayName.NewValue","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"88671231-6626-4e1b-abb7-6e361a171fbb:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/88671231-6626-4e1b-abb7-6e361a171fbb:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/88671231-6626-4e1b-abb7-6e361a171fbb:101.0.2.json new file mode 100644 index 0000000000000..3ee29c3d7bd55 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/88671231-6626-4e1b-abb7-6e361a171fbb:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Global Administrator Role Assigned v101.0.2","rule_id":"88671231-6626-4e1b-abb7-6e361a171fbb:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"In Azure Active Directory (Azure AD), permissions to manage resources are assigned using roles. The Global Administrator is a role that enables users to have access to all administrative features in Azure AD and services that use Azure AD identities like the Microsoft 365 Defender portal, the Microsoft 365 compliance center, Exchange, SharePoint Online, and Skype for Business Online. Attackers can add users as Global Administrators to maintain access and manage all subscriptions and their settings and resources.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/roles/permissions-reference#global-administrator"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.003","name":"Additional Cloud Roles","reference":"https://attack.mitre.org/techniques/T1098/003/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.code:\"AzureActiveDirectory\" and event.action:\"Add member to role.\" and\no365.audit.ModifiedProperties.Role_DisplayName.NewValue:\"Global Administrator\"\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"o365.audit.ModifiedProperties.Role_DisplayName.NewValue","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"88671231-6626-4e1b-abb7-6e361a171fbb:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/88817a33-60d3-411f-ba79-7c905d865b2a:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/88817a33-60d3-411f-ba79-7c905d865b2a:100.0.0.json new file mode 100644 index 0000000000000..bbbee4f77b927 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/88817a33-60d3-411f-ba79-7c905d865b2a:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Sublime Plugin or Application Script Modification v100.0.0","rule_id":"88817a33-60d3-411f-ba79-7c905d865b2a:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may create or modify the Sublime application plugins or scripts to execute a malicious payload each time the Sublime application is started.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/persistent-jxa-66e1c3cd1cf5"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1554","name":"Compromise Client Software Binary","reference":"https://attack.mitre.org/techniques/T1554/"}]}],"language":"eql","query":"file where event.type in (\"change\", \"creation\") and file.extension : \"py\" and\n file.path :\n (\n \"/Users/*/Library/Application Support/Sublime Text*/Packages/*.py\",\n \"/Applications/Sublime Text.app/Contents/MacOS/sublime.py\"\n ) and\n not process.executable :\n (\n \"/Applications/Sublime Text*.app/Contents/*\",\n \"/usr/local/Cellar/git/*/bin/git\",\n \"/Library/Developer/CommandLineTools/usr/bin/git\",\n \"/usr/libexec/xpcproxy\",\n \"/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/Resources/DesktopServicesHelper\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"88817a33-60d3-411f-ba79-7c905d865b2a:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/88817a33-60d3-411f-ba79-7c905d865b2a:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/88817a33-60d3-411f-ba79-7c905d865b2a:100.0.1.json new file mode 100644 index 0000000000000..86f6df2cf3726 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/88817a33-60d3-411f-ba79-7c905d865b2a:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Sublime Plugin or Application Script Modification v100.0.1","rule_id":"88817a33-60d3-411f-ba79-7c905d865b2a:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may create or modify the Sublime application plugins or scripts to execute a malicious payload each time the Sublime application is started.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/persistent-jxa-66e1c3cd1cf5"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1554","name":"Compromise Client Software Binary","reference":"https://attack.mitre.org/techniques/T1554/"}]}],"language":"eql","query":"file where event.type in (\"change\", \"creation\") and file.extension : \"py\" and\n file.path :\n (\n \"/Users/*/Library/Application Support/Sublime Text*/Packages/*.py\",\n \"/Applications/Sublime Text.app/Contents/MacOS/sublime.py\"\n ) and\n not process.executable :\n (\n \"/Applications/Sublime Text*.app/Contents/*\",\n \"/usr/local/Cellar/git/*/bin/git\",\n \"/Library/Developer/CommandLineTools/usr/bin/git\",\n \"/usr/libexec/xpcproxy\",\n \"/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/Resources/DesktopServicesHelper\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"88817a33-60d3-411f-ba79-7c905d865b2a:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/88817a33-60d3-411f-ba79-7c905d865b2a:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/88817a33-60d3-411f-ba79-7c905d865b2a:100.0.2.json new file mode 100644 index 0000000000000..3838a6928d83f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/88817a33-60d3-411f-ba79-7c905d865b2a:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Sublime Plugin or Application Script Modification v100.0.2","rule_id":"88817a33-60d3-411f-ba79-7c905d865b2a:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may create or modify the Sublime application plugins or scripts to execute a malicious payload each time the Sublime application is started.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/persistent-jxa-66e1c3cd1cf5"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1554","name":"Compromise Client Software Binary","reference":"https://attack.mitre.org/techniques/T1554/"}]}],"language":"eql","query":"file where event.type in (\"change\", \"creation\") and file.extension : \"py\" and\n file.path :\n (\n \"/Users/*/Library/Application Support/Sublime Text*/Packages/*.py\",\n \"/Applications/Sublime Text.app/Contents/MacOS/sublime.py\"\n ) and\n not process.executable :\n (\n \"/Applications/Sublime Text*.app/Contents/*\",\n \"/usr/local/Cellar/git/*/bin/git\",\n \"/Library/Developer/CommandLineTools/usr/bin/git\",\n \"/usr/libexec/xpcproxy\",\n \"/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/Resources/DesktopServicesHelper\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"88817a33-60d3-411f-ba79-7c905d865b2a:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/891cb88e-441a-4c3e-be2d-120d99fe7b0d:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/891cb88e-441a-4c3e-be2d-120d99fe7b0d:101.0.0.json new file mode 100644 index 0000000000000..73a74f31019fb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/891cb88e-441a-4c3e-be2d-120d99fe7b0d:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious WMI Image Load from MS Office v101.0.0","rule_id":"891cb88e-441a-4c3e-be2d-120d99fe7b0d:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious image load (wmiutils.dll) from Microsoft Office processes. This behavior may indicate adversarial activity where child processes are spawned via Windows Management Instrumentation (WMI). This technique can be used to execute code and evade traditional parent/child processes spawned from Microsoft Office products.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://medium.com/threatpunter/detecting-adversary-tradecraft-with-image-load-event-logging-and-eql-8de93338c16"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1047","name":"Windows Management Instrumentation","reference":"https://attack.mitre.org/techniques/T1047/"}]}],"language":"eql","query":"any where\n (event.category : (\"library\", \"driver\") or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n process.name : (\"WINWORD.EXE\", \"EXCEL.EXE\", \"POWERPNT.EXE\", \"MSPUB.EXE\", \"MSACCESS.EXE\") and\n (dll.name : \"wmiutils.dll\" or file.name : \"wmiutils.dll\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"891cb88e-441a-4c3e-be2d-120d99fe7b0d:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/891cb88e-441a-4c3e-be2d-120d99fe7b0d:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/891cb88e-441a-4c3e-be2d-120d99fe7b0d:101.0.1.json new file mode 100644 index 0000000000000..e226b58825b35 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/891cb88e-441a-4c3e-be2d-120d99fe7b0d:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious WMI Image Load from MS Office v101.0.1","rule_id":"891cb88e-441a-4c3e-be2d-120d99fe7b0d:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious image load (wmiutils.dll) from Microsoft Office processes. This behavior may indicate adversarial activity where child processes are spawned via Windows Management Instrumentation (WMI). This technique can be used to execute code and evade traditional parent/child processes spawned from Microsoft Office products.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://medium.com/threatpunter/detecting-adversary-tradecraft-with-image-load-event-logging-and-eql-8de93338c16"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1047","name":"Windows Management Instrumentation","reference":"https://attack.mitre.org/techniques/T1047/"}]}],"language":"eql","query":"any where\n (event.category : (\"library\", \"driver\") or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n process.name : (\"WINWORD.EXE\", \"EXCEL.EXE\", \"POWERPNT.EXE\", \"MSPUB.EXE\", \"MSACCESS.EXE\") and\n (dll.name : \"wmiutils.dll\" or file.name : \"wmiutils.dll\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"891cb88e-441a-4c3e-be2d-120d99fe7b0d:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/891cb88e-441a-4c3e-be2d-120d99fe7b0d:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/891cb88e-441a-4c3e-be2d-120d99fe7b0d:101.0.2.json new file mode 100644 index 0000000000000..443dca51097b7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/891cb88e-441a-4c3e-be2d-120d99fe7b0d:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious WMI Image Load from MS Office v101.0.2","rule_id":"891cb88e-441a-4c3e-be2d-120d99fe7b0d:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious image load (wmiutils.dll) from Microsoft Office processes. This behavior may indicate adversarial activity where child processes are spawned via Windows Management Instrumentation (WMI). This technique can be used to execute code and evade traditional parent/child processes spawned from Microsoft Office products.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://medium.com/threatpunter/detecting-adversary-tradecraft-with-image-load-event-logging-and-eql-8de93338c16"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1047","name":"Windows Management Instrumentation","reference":"https://attack.mitre.org/techniques/T1047/"}]}],"language":"eql","query":"any where\n (event.category : (\"library\", \"driver\") or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n process.name : (\"WINWORD.EXE\", \"EXCEL.EXE\", \"POWERPNT.EXE\", \"MSPUB.EXE\", \"MSACCESS.EXE\") and\n (dll.name : \"wmiutils.dll\" or file.name : \"wmiutils.dll\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"891cb88e-441a-4c3e-be2d-120d99fe7b0d:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/897dc6b5-b39f-432a-8d75-d3730d50c782:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/897dc6b5-b39f-432a-8d75-d3730d50c782:102.0.0.json new file mode 100644 index 0000000000000..85813f155bfe3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/897dc6b5-b39f-432a-8d75-d3730d50c782:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kerberos Traffic from Unusual Process v102.0.0","rule_id":"897dc6b5-b39f-432a-8d75-d3730d50c782:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies network connections to the standard Kerberos port from an unusual process. On Windows, the only process that normally performs Kerberos traffic from a domain joined host is lsass.exe.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Kerberos Traffic from Unusual Process\n\nKerberos is the default authentication protocol in Active Directory, designed to provide strong authentication for\nclient/server applications by using secret-key cryptography.\n\nDomain-joined hosts usually perform Kerberos traffic using the `lsass.exe` process. This rule detects the occurrence of\ntraffic on the Kerberos port (88) by processes other than `lsass.exe` to detect the unusual request and usage of\nKerberos tickets.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check if the Destination IP is related to a Domain Controller.\n- Review event ID 4769 for suspicious ticket requests.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This rule uses a Kerberos-related port but does not identify the protocol used on that port. HTTP traffic on a\nnon-standard port or destination IP address unrelated to Domain controllers can create false positives.\n- Exceptions can be added for noisy/frequent connections.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n - Ticket requests can be used to investigate potentially compromised accounts.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["HTTP traffic on a non standard port. Verify that the destination IP address is not related to a Domain Controller."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/"}]}],"language":"eql","query":"network where event.type == \"start\" and network.direction : (\"outgoing\", \"egress\") and\n destination.port == 88 and source.port >= 49152 and\n not process.executable :\n (\"?:\\\\Windows\\\\System32\\\\lsass.exe\",\n \"System\",\n \"\\\\device\\\\harddiskvolume?\\\\windows\\\\system32\\\\lsass.exe\",\n \"?:\\\\Program Files\\\\rapid7\\\\nexpose\\\\nse\\\\.DLLCACHE\\\\nseserv.exe\",\n \"?:\\\\Program Files (x86)\\\\GFI\\\\LanGuard 12 Agent\\\\lnsscomm.exe\",\n \"?:\\\\Program Files (x86)\\\\SuperScan\\\\scanner.exe\",\n \"?:\\\\Program Files (x86)\\\\Nmap\\\\nmap.exe\",\n \"\\\\device\\\\harddiskvolume?\\\\program files (x86)\\\\nmap\\\\nmap.exe\") and\n destination.address !=\"127.0.0.1\" and destination.address !=\"::1\" and\n /* insert false positives here */\n not process.name in (\"swi_fc.exe\", \"fsIPcam.exe\", \"IPCamera.exe\", \"MicrosoftEdgeCP.exe\", \"MicrosoftEdge.exe\", \"iexplore.exe\", \"chrome.exe\", \"msedge.exe\", \"opera.exe\", \"firefox.exe\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.address","type":"keyword"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"source.port","type":"long"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"897dc6b5-b39f-432a-8d75-d3730d50c782:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/897dc6b5-b39f-432a-8d75-d3730d50c782:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/897dc6b5-b39f-432a-8d75-d3730d50c782:102.0.1.json new file mode 100644 index 0000000000000..c3fc815228b6b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/897dc6b5-b39f-432a-8d75-d3730d50c782:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kerberos Traffic from Unusual Process v102.0.1","rule_id":"897dc6b5-b39f-432a-8d75-d3730d50c782:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies network connections to the standard Kerberos port from an unusual process. On Windows, the only process that normally performs Kerberos traffic from a domain joined host is lsass.exe.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Kerberos Traffic from Unusual Process\n\nKerberos is the default authentication protocol in Active Directory, designed to provide strong authentication for\nclient/server applications by using secret-key cryptography.\n\nDomain-joined hosts usually perform Kerberos traffic using the `lsass.exe` process. This rule detects the occurrence of\ntraffic on the Kerberos port (88) by processes other than `lsass.exe` to detect the unusual request and usage of\nKerberos tickets.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check if the Destination IP is related to a Domain Controller.\n- Review event ID 4769 for suspicious ticket requests.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This rule uses a Kerberos-related port but does not identify the protocol used on that port. HTTP traffic on a\nnon-standard port or destination IP address unrelated to Domain controllers can create false positives.\n- Exceptions can be added for noisy/frequent connections.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n - Ticket requests can be used to investigate potentially compromised accounts.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["HTTP traffic on a non standard port. Verify that the destination IP address is not related to a Domain Controller."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/"}]}],"language":"eql","query":"network where event.type == \"start\" and network.direction : (\"outgoing\", \"egress\") and\n destination.port == 88 and source.port >= 49152 and\n not process.executable :\n (\"?:\\\\Windows\\\\System32\\\\lsass.exe\",\n \"System\",\n \"\\\\device\\\\harddiskvolume?\\\\windows\\\\system32\\\\lsass.exe\",\n \"?:\\\\Program Files\\\\rapid7\\\\nexpose\\\\nse\\\\.DLLCACHE\\\\nseserv.exe\",\n \"?:\\\\Program Files (x86)\\\\GFI\\\\LanGuard 12 Agent\\\\lnsscomm.exe\",\n \"?:\\\\Program Files (x86)\\\\SuperScan\\\\scanner.exe\",\n \"?:\\\\Program Files (x86)\\\\Nmap\\\\nmap.exe\",\n \"\\\\device\\\\harddiskvolume?\\\\program files (x86)\\\\nmap\\\\nmap.exe\") and\n destination.address !=\"127.0.0.1\" and destination.address !=\"::1\" and\n /* insert false positives here */\n not process.name in (\"swi_fc.exe\", \"fsIPcam.exe\", \"IPCamera.exe\", \"MicrosoftEdgeCP.exe\", \"MicrosoftEdge.exe\", \"iexplore.exe\", \"chrome.exe\", \"msedge.exe\", \"opera.exe\", \"firefox.exe\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.address","type":"keyword"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"source.port","type":"long"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"897dc6b5-b39f-432a-8d75-d3730d50c782:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/897dc6b5-b39f-432a-8d75-d3730d50c782:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/897dc6b5-b39f-432a-8d75-d3730d50c782:102.0.2.json new file mode 100644 index 0000000000000..4f8dcecc44678 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/897dc6b5-b39f-432a-8d75-d3730d50c782:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kerberos Traffic from Unusual Process v102.0.2","rule_id":"897dc6b5-b39f-432a-8d75-d3730d50c782:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies network connections to the standard Kerberos port from an unusual process. On Windows, the only process that normally performs Kerberos traffic from a domain joined host is lsass.exe.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Kerberos Traffic from Unusual Process\n\nKerberos is the default authentication protocol in Active Directory, designed to provide strong authentication for\nclient/server applications by using secret-key cryptography.\n\nDomain-joined hosts usually perform Kerberos traffic using the `lsass.exe` process. This rule detects the occurrence of\ntraffic on the Kerberos port (88) by processes other than `lsass.exe` to detect the unusual request and usage of\nKerberos tickets.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check if the Destination IP is related to a Domain Controller.\n- Review event ID 4769 for suspicious ticket requests.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This rule uses a Kerberos-related port but does not identify the protocol used on that port. HTTP traffic on a\nnon-standard port or destination IP address unrelated to Domain controllers can create false positives.\n- Exceptions can be added for noisy/frequent connections.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n - Ticket requests can be used to investigate potentially compromised accounts.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["HTTP traffic on a non standard port. Verify that the destination IP address is not related to a Domain Controller."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/"}]}],"language":"eql","query":"network where event.type == \"start\" and network.direction : (\"outgoing\", \"egress\") and\n destination.port == 88 and source.port >= 49152 and\n not process.executable :\n (\"?:\\\\Windows\\\\System32\\\\lsass.exe\",\n \"System\",\n \"\\\\device\\\\harddiskvolume?\\\\windows\\\\system32\\\\lsass.exe\",\n \"?:\\\\Program Files\\\\rapid7\\\\nexpose\\\\nse\\\\.DLLCACHE\\\\nseserv.exe\",\n \"?:\\\\Program Files (x86)\\\\GFI\\\\LanGuard 12 Agent\\\\lnsscomm.exe\",\n \"?:\\\\Program Files (x86)\\\\SuperScan\\\\scanner.exe\",\n \"?:\\\\Program Files (x86)\\\\Nmap\\\\nmap.exe\",\n \"\\\\device\\\\harddiskvolume?\\\\program files (x86)\\\\nmap\\\\nmap.exe\") and\n destination.address !=\"127.0.0.1\" and destination.address !=\"::1\" and\n /* insert false positives here */\n not process.name in (\"swi_fc.exe\", \"fsIPcam.exe\", \"IPCamera.exe\", \"MicrosoftEdgeCP.exe\", \"MicrosoftEdge.exe\", \"iexplore.exe\", \"chrome.exe\", \"msedge.exe\", \"opera.exe\", \"firefox.exe\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.address","type":"keyword"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"source.port","type":"long"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"897dc6b5-b39f-432a-8d75-d3730d50c782:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/89f9a4b0-9f8f-4ee0-8823-c4751a6d6696:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/89f9a4b0-9f8f-4ee0-8823-c4751a6d6696:100.0.0.json new file mode 100644 index 0000000000000..233de70543819 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/89f9a4b0-9f8f-4ee0-8823-c4751a6d6696:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Command Prompt Network Connection v100.0.0","rule_id":"89f9a4b0-9f8f-4ee0-8823-c4751a6d6696:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies cmd.exe making a network connection. Adversaries could abuse cmd.exe to download or execute malware from a remote URL.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Administrators may use the command prompt for regular administrative tasks. It's important to baseline your environment for network connections being made from the command prompt to determine any abnormal use of this tool."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"cmd.exe\" and event.type == \"start\"]\n [network where process.name : \"cmd.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\",\n \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\",\n \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"89f9a4b0-9f8f-4ee0-8823-c4751a6d6696:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/89f9a4b0-9f8f-4ee0-8823-c4751a6d6696:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/89f9a4b0-9f8f-4ee0-8823-c4751a6d6696:100.0.1.json new file mode 100644 index 0000000000000..0ab3b91050884 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/89f9a4b0-9f8f-4ee0-8823-c4751a6d6696:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Command Prompt Network Connection v100.0.1","rule_id":"89f9a4b0-9f8f-4ee0-8823-c4751a6d6696:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies cmd.exe making a network connection. Adversaries could abuse cmd.exe to download or execute malware from a remote URL.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Administrators may use the command prompt for regular administrative tasks. It's important to baseline your environment for network connections being made from the command prompt to determine any abnormal use of this tool."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"cmd.exe\" and event.type == \"start\"]\n [network where process.name : \"cmd.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\",\n \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\",\n \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"89f9a4b0-9f8f-4ee0-8823-c4751a6d6696:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/89f9a4b0-9f8f-4ee0-8823-c4751a6d6696:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/89f9a4b0-9f8f-4ee0-8823-c4751a6d6696:100.0.2.json new file mode 100644 index 0000000000000..a0e1f463d9ecc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/89f9a4b0-9f8f-4ee0-8823-c4751a6d6696:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Command Prompt Network Connection v100.0.2","rule_id":"89f9a4b0-9f8f-4ee0-8823-c4751a6d6696:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies cmd.exe making a network connection. Adversaries could abuse cmd.exe to download or execute malware from a remote URL.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Administrators may use the command prompt for regular administrative tasks. It's important to baseline your environment for network connections being made from the command prompt to determine any abnormal use of this tool."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"cmd.exe\" and event.type == \"start\"]\n [network where process.name : \"cmd.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\",\n \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\",\n \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"89f9a4b0-9f8f-4ee0-8823-c4751a6d6696:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/89fa6cb7-6b53-4de2-b604-648488841ab8:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/89fa6cb7-6b53-4de2-b604-648488841ab8:100.0.0.json new file mode 100644 index 0000000000000..43daac27d069d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/89fa6cb7-6b53-4de2-b604-648488841ab8:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via DirectoryService Plugin Modification v100.0.0","rule_id":"89fa6cb7-6b53-4de2-b604-648488841ab8:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of a DirectoryService PlugIns (dsplug) file. The DirectoryService daemon launches on each system boot and automatically reloads after crash. It scans and executes bundles that are located in the DirectoryServices PlugIns folder and can be abused by adversaries to maintain persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.chichou.me/2019/11/21/two-macos-persistence-tricks-abusing-plugins/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and not event.type:deletion and\n file.path:/Library/DirectoryServices/PlugIns/*.dsplug\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}]},"id":"89fa6cb7-6b53-4de2-b604-648488841ab8:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/89fa6cb7-6b53-4de2-b604-648488841ab8:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/89fa6cb7-6b53-4de2-b604-648488841ab8:100.0.1.json new file mode 100644 index 0000000000000..a814b3294405a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/89fa6cb7-6b53-4de2-b604-648488841ab8:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via DirectoryService Plugin Modification v100.0.1","rule_id":"89fa6cb7-6b53-4de2-b604-648488841ab8:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of a DirectoryService PlugIns (dsplug) file. The DirectoryService daemon launches on each system boot and automatically reloads after crash. It scans and executes bundles that are located in the DirectoryServices PlugIns folder and can be abused by adversaries to maintain persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.chichou.me/2019/11/21/two-macos-persistence-tricks-abusing-plugins/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and not event.type:deletion and\n file.path:/Library/DirectoryServices/PlugIns/*.dsplug\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}]},"id":"89fa6cb7-6b53-4de2-b604-648488841ab8:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/89fa6cb7-6b53-4de2-b604-648488841ab8:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/89fa6cb7-6b53-4de2-b604-648488841ab8:100.0.2.json new file mode 100644 index 0000000000000..33232db40c32f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/89fa6cb7-6b53-4de2-b604-648488841ab8:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via DirectoryService Plugin Modification v100.0.2","rule_id":"89fa6cb7-6b53-4de2-b604-648488841ab8:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of a DirectoryService PlugIns (dsplug) file. The DirectoryService daemon launches on each system boot and automatically reloads after crash. It scans and executes bundles that are located in the DirectoryServices PlugIns folder and can be abused by adversaries to maintain persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.chichou.me/2019/11/21/two-macos-persistence-tricks-abusing-plugins/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and not event.type:deletion and\n file.path:/Library/DirectoryServices/PlugIns/*.dsplug\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}]},"id":"89fa6cb7-6b53-4de2-b604-648488841ab8:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8a1b0278-0f9a-487d-96bd-d4833298e87a:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8a1b0278-0f9a-487d-96bd-d4833298e87a:100.0.0.json new file mode 100644 index 0000000000000..9f5d895c19930 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8a1b0278-0f9a-487d-96bd-d4833298e87a:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Setuid / Setgid Bit Set via chmod v100.0.0","rule_id":"8a1b0278-0f9a-487d-96bd-d4833298e87a:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary may add the setuid or setgid bit to a file or directory in order to run a file with the privileges of the owning user or group. An adversary can take advantage of this to either do a shell escape or exploit a vulnerability in an application with the setuid or setgid bit to get code running in a different user’s context. Additionally, adversaries can use this mechanism on their own malware to make sure they're able to execute in elevated contexts in the future.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Linux","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.001","name":"Setuid and Setgid","reference":"https://attack.mitre.org/techniques/T1548/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"lucene","query":"event.category:process AND event.type:(start OR process_started) AND\n process.name:chmod AND process.args:(\"+s\" OR \"u+s\" OR /4[0-9]{3}/ OR g+s OR /2[0-9]{3}/) AND\n NOT process.args:\n (\n /.*\\/Applications\\/VirtualBox.app\\/.+/ OR\n /\\/usr\\/local\\/lib\\/python.+/ OR\n /\\/var\\/folders\\/.+\\/FP.*nstallHelper/ OR\n /\\/Library\\/Filesystems\\/.+/ OR\n /\\/usr\\/lib\\/virtualbox\\/.+/ OR\n /\\/Library\\/Application.*/ OR\n \"/run/postgresql\" OR\n \"/var/crash\" OR\n \"/var/run/postgresql\" OR\n /\\/usr\\/bin\\/.+/ OR /\\/usr\\/local\\/share\\/.+/ OR\n /\\/Applications\\/.+/ OR /\\/usr\\/libexec\\/.+/ OR\n \"/var/metrics\" OR /\\/var\\/lib\\/dpkg\\/.+/ OR\n /\\/run\\/log\\/journal\\/.*/ OR\n \\/Users\\/*\\/.minikube\\/bin\\/docker-machine-driver-hyperkit\n ) AND\n NOT process.parent.executable:\n (\n /\\/var\\/lib\\/docker\\/.+/ OR\n \"/System/Library/PrivateFrameworks/PackageKit.framework/Versions/A/XPCServices/package_script_service.xpc/Contents/MacOS/package_script_service\" OR\n \"/var/lib/dpkg/info/whoopsie.postinst\"\n )\n"},"id":"8a1b0278-0f9a-487d-96bd-d4833298e87a:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8a1b0278-0f9a-487d-96bd-d4833298e87a:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8a1b0278-0f9a-487d-96bd-d4833298e87a:100.0.1.json new file mode 100644 index 0000000000000..ca431944a6d7f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8a1b0278-0f9a-487d-96bd-d4833298e87a:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Setuid / Setgid Bit Set via chmod v100.0.1","rule_id":"8a1b0278-0f9a-487d-96bd-d4833298e87a:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary may add the setuid or setgid bit to a file or directory in order to run a file with the privileges of the owning user or group. An adversary can take advantage of this to either do a shell escape or exploit a vulnerability in an application with the setuid or setgid bit to get code running in a different user’s context. Additionally, adversaries can use this mechanism on their own malware to make sure they're able to execute in elevated contexts in the future.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Linux","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.001","name":"Setuid and Setgid","reference":"https://attack.mitre.org/techniques/T1548/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"lucene","query":"event.category:process AND event.type:(start OR process_started) AND\n process.name:chmod AND process.args:(\"+s\" OR \"u+s\" OR /4[0-9]{3}/ OR g+s OR /2[0-9]{3}/) AND\n NOT process.args:\n (\n /.*\\/Applications\\/VirtualBox.app\\/.+/ OR\n /\\/usr\\/local\\/lib\\/python.+/ OR\n /\\/var\\/folders\\/.+\\/FP.*nstallHelper/ OR\n /\\/Library\\/Filesystems\\/.+/ OR\n /\\/usr\\/lib\\/virtualbox\\/.+/ OR\n /\\/Library\\/Application.*/ OR\n \"/run/postgresql\" OR\n \"/var/crash\" OR\n \"/var/run/postgresql\" OR\n /\\/usr\\/bin\\/.+/ OR /\\/usr\\/local\\/share\\/.+/ OR\n /\\/Applications\\/.+/ OR /\\/usr\\/libexec\\/.+/ OR\n \"/var/metrics\" OR /\\/var\\/lib\\/dpkg\\/.+/ OR\n /\\/run\\/log\\/journal\\/.*/ OR\n \\/Users\\/*\\/.minikube\\/bin\\/docker-machine-driver-hyperkit\n ) AND\n NOT process.parent.executable:\n (\n /\\/var\\/lib\\/docker\\/.+/ OR\n \"/System/Library/PrivateFrameworks/PackageKit.framework/Versions/A/XPCServices/package_script_service.xpc/Contents/MacOS/package_script_service\" OR\n \"/var/lib/dpkg/info/whoopsie.postinst\"\n )\n"},"id":"8a1b0278-0f9a-487d-96bd-d4833298e87a:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8a1b0278-0f9a-487d-96bd-d4833298e87a:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8a1b0278-0f9a-487d-96bd-d4833298e87a:100.0.2.json new file mode 100644 index 0000000000000..82ccc4cbe9caa --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8a1b0278-0f9a-487d-96bd-d4833298e87a:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Setuid / Setgid Bit Set via chmod v100.0.2","rule_id":"8a1b0278-0f9a-487d-96bd-d4833298e87a:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary may add the setuid or setgid bit to a file or directory in order to run a file with the privileges of the owning user or group. An adversary can take advantage of this to either do a shell escape or exploit a vulnerability in an application with the setuid or setgid bit to get code running in a different user’s context. Additionally, adversaries can use this mechanism on their own malware to make sure they're able to execute in elevated contexts in the future.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Linux","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.001","name":"Setuid and Setgid","reference":"https://attack.mitre.org/techniques/T1548/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"lucene","query":"event.category:process AND event.type:(start OR process_started) AND\n process.name:chmod AND process.args:(\"+s\" OR \"u+s\" OR /4[0-9]{3}/ OR g+s OR /2[0-9]{3}/) AND\n NOT process.args:\n (\n /.*\\/Applications\\/VirtualBox.app\\/.+/ OR\n /\\/usr\\/local\\/lib\\/python.+/ OR\n /\\/var\\/folders\\/.+\\/FP.*nstallHelper/ OR\n /\\/Library\\/Filesystems\\/.+/ OR\n /\\/usr\\/lib\\/virtualbox\\/.+/ OR\n /\\/Library\\/Application.*/ OR\n \"/run/postgresql\" OR\n \"/var/crash\" OR\n \"/var/run/postgresql\" OR\n /\\/usr\\/bin\\/.+/ OR /\\/usr\\/local\\/share\\/.+/ OR\n /\\/Applications\\/.+/ OR /\\/usr\\/libexec\\/.+/ OR\n \"/var/metrics\" OR /\\/var\\/lib\\/dpkg\\/.+/ OR\n /\\/run\\/log\\/journal\\/.*/ OR\n \\/Users\\/*\\/.minikube\\/bin\\/docker-machine-driver-hyperkit\n ) AND\n NOT process.parent.executable:\n (\n /\\/var\\/lib\\/docker\\/.+/ OR\n \"/System/Library/PrivateFrameworks/PackageKit.framework/Versions/A/XPCServices/package_script_service.xpc/Contents/MacOS/package_script_service\" OR\n \"/var/lib/dpkg/info/whoopsie.postinst\"\n )\n"},"id":"8a1b0278-0f9a-487d-96bd-d4833298e87a:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8a1d4831-3ce6-4859-9891-28931fa6101d:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8a1d4831-3ce6-4859-9891-28931fa6101d:100.0.0.json new file mode 100644 index 0000000000000..c80e23efc0e39 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8a1d4831-3ce6-4859-9891-28931fa6101d:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Execution from a Mounted Device v100.0.0","rule_id":"8a1d4831-3ce6-4859-9891-28931fa6101d:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a script interpreter or signed binary is launched via a non-standard working directory. An attacker may use this technique to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2021/05/27/new-sophisticated-email-based-attack-from-nobelium/","https://www.volexity.com/blog/2021/05/27/suspected-apt29-operation-launches-election-fraud-themed-phishing-campaigns/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.005","name":"Mshta","reference":"https://attack.mitre.org/techniques/T1218/005/"},{"id":"T1218.010","name":"Regsvr32","reference":"https://attack.mitre.org/techniques/T1218/010/"},{"id":"T1218.011","name":"Rundll32","reference":"https://attack.mitre.org/techniques/T1218/011/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.executable : \"C:\\\\*\" and\n (process.working_directory : \"?:\\\\\" and not process.working_directory: \"C:\\\\\") and\n process.parent.name : \"explorer.exe\" and\n process.name : (\"rundll32.exe\", \"mshta.exe\", \"powershell.exe\", \"pwsh.exe\", \"cmd.exe\", \"regsvr32.exe\",\n \"cscript.exe\", \"wscript.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.working_directory","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"8a1d4831-3ce6-4859-9891-28931fa6101d:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8a1d4831-3ce6-4859-9891-28931fa6101d:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8a1d4831-3ce6-4859-9891-28931fa6101d:100.0.1.json new file mode 100644 index 0000000000000..95e9fa401172e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8a1d4831-3ce6-4859-9891-28931fa6101d:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Execution from a Mounted Device v100.0.1","rule_id":"8a1d4831-3ce6-4859-9891-28931fa6101d:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a script interpreter or signed binary is launched via a non-standard working directory. An attacker may use this technique to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2021/05/27/new-sophisticated-email-based-attack-from-nobelium/","https://www.volexity.com/blog/2021/05/27/suspected-apt29-operation-launches-election-fraud-themed-phishing-campaigns/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.005","name":"Mshta","reference":"https://attack.mitre.org/techniques/T1218/005/"},{"id":"T1218.010","name":"Regsvr32","reference":"https://attack.mitre.org/techniques/T1218/010/"},{"id":"T1218.011","name":"Rundll32","reference":"https://attack.mitre.org/techniques/T1218/011/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.executable : \"C:\\\\*\" and\n (process.working_directory : \"?:\\\\\" and not process.working_directory: \"C:\\\\\") and\n process.parent.name : \"explorer.exe\" and\n process.name : (\"rundll32.exe\", \"mshta.exe\", \"powershell.exe\", \"pwsh.exe\", \"cmd.exe\", \"regsvr32.exe\",\n \"cscript.exe\", \"wscript.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.working_directory","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"8a1d4831-3ce6-4859-9891-28931fa6101d:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8a1d4831-3ce6-4859-9891-28931fa6101d:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8a1d4831-3ce6-4859-9891-28931fa6101d:100.0.2.json new file mode 100644 index 0000000000000..17885075e4f2f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8a1d4831-3ce6-4859-9891-28931fa6101d:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Execution from a Mounted Device v100.0.2","rule_id":"8a1d4831-3ce6-4859-9891-28931fa6101d:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a script interpreter or signed binary is launched via a non-standard working directory. An attacker may use this technique to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2021/05/27/new-sophisticated-email-based-attack-from-nobelium/","https://www.volexity.com/blog/2021/05/27/suspected-apt29-operation-launches-election-fraud-themed-phishing-campaigns/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.005","name":"Mshta","reference":"https://attack.mitre.org/techniques/T1218/005/"},{"id":"T1218.010","name":"Regsvr32","reference":"https://attack.mitre.org/techniques/T1218/010/"},{"id":"T1218.011","name":"Rundll32","reference":"https://attack.mitre.org/techniques/T1218/011/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.executable : \"C:\\\\*\" and\n (process.working_directory : \"?:\\\\\" and not process.working_directory: \"C:\\\\\") and\n process.parent.name : \"explorer.exe\" and\n process.name : (\"rundll32.exe\", \"mshta.exe\", \"powershell.exe\", \"pwsh.exe\", \"cmd.exe\", \"regsvr32.exe\",\n \"cscript.exe\", \"wscript.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.working_directory","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"8a1d4831-3ce6-4859-9891-28931fa6101d:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8a5c1e5f-ad63-481e-b53a-ef959230f7f1:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8a5c1e5f-ad63-481e-b53a-ef959230f7f1:102.0.0.json new file mode 100644 index 0000000000000..97cfdade46923 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8a5c1e5f-ad63-481e-b53a-ef959230f7f1:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Deactivate an Okta Network Zone v102.0.0","rule_id":"8a5c1e5f-ad63-481e-b53a-ef959230f7f1:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to deactivate an Okta network zone. Okta network zones can be configured to limit or restrict access to a network based on IP addresses or geolocations. An adversary may attempt to modify, delete, or deactivate an Okta network zone in order to remove or weaken an organization's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if your organization's Okta network zones are regularly modified."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/network/network-zones.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Network Security","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:zone.deactivate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"8a5c1e5f-ad63-481e-b53a-ef959230f7f1:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8a5c1e5f-ad63-481e-b53a-ef959230f7f1:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8a5c1e5f-ad63-481e-b53a-ef959230f7f1:102.0.1.json new file mode 100644 index 0000000000000..20ed7de0a9cea --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8a5c1e5f-ad63-481e-b53a-ef959230f7f1:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Deactivate an Okta Network Zone v102.0.1","rule_id":"8a5c1e5f-ad63-481e-b53a-ef959230f7f1:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to deactivate an Okta network zone. Okta network zones can be configured to limit or restrict access to a network based on IP addresses or geolocations. An adversary may attempt to modify, delete, or deactivate an Okta network zone in order to remove or weaken an organization's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if your organization's Okta network zones are regularly modified."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/network/network-zones.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Network Security","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:zone.deactivate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"8a5c1e5f-ad63-481e-b53a-ef959230f7f1:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8a5c1e5f-ad63-481e-b53a-ef959230f7f1:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8a5c1e5f-ad63-481e-b53a-ef959230f7f1:102.0.2.json new file mode 100644 index 0000000000000..ce7cd93c4fa1a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8a5c1e5f-ad63-481e-b53a-ef959230f7f1:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Deactivate an Okta Network Zone v102.0.2","rule_id":"8a5c1e5f-ad63-481e-b53a-ef959230f7f1:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to deactivate an Okta network zone. Okta network zones can be configured to limit or restrict access to a network based on IP addresses or geolocations. An adversary may attempt to modify, delete, or deactivate an Okta network zone in order to remove or weaken an organization's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if your organization's Okta network zones are regularly modified."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/network/network-zones.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Network Security","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:zone.deactivate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"8a5c1e5f-ad63-481e-b53a-ef959230f7f1:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8acb7614-1d92-4359-bfcf-478b6d9de150:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8acb7614-1d92-4359-bfcf-478b6d9de150:102.0.0.json new file mode 100644 index 0000000000000..9fa27b94d44e7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8acb7614-1d92-4359-bfcf-478b6d9de150:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious JAVA Child Process v102.0.0","rule_id":"8acb7614-1d92-4359-bfcf-478b6d9de150:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious child processes of the Java interpreter process. This may indicate an attempt to execute a malicious JAR file or an exploitation attempt via a JAVA specific vulnerability.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Java Child Process\n\nThis rule identifies a suspicious child process of the Java interpreter process. It may indicate an attempt to execute\na malicious JAR file or an exploitation attempt via a Java specific vulnerability.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence and whether they are located in expected locations.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, file modifications, and any\nspawned child processes.\n- Examine the command line to determine if the command executed is potentially harmful or malicious.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination\nof process and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.lunasec.io/docs/blog/log4j-zero-day/","https://github.com/christophetd/log4shell-vulnerable-app","https://www.blackhat.com/docs/us-16/materials/us-16-Munoz-A-Journey-From-JNDI-LDAP-Manipulation-To-RCE.pdf","https://www.elastic.co/security-labs/detecting-log4j2-with-elastic-security","https://www.elastic.co/security-labs/analysis-of-log4shell-cve-2021-45046"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.007","name":"JavaScript","reference":"https://attack.mitre.org/techniques/T1059/007/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.parent.name : \"java\" and\n process.name : (\"sh\", \"bash\", \"dash\", \"ksh\", \"tcsh\", \"zsh\", \"curl\", \"wget\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"8acb7614-1d92-4359-bfcf-478b6d9de150:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8acb7614-1d92-4359-bfcf-478b6d9de150:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8acb7614-1d92-4359-bfcf-478b6d9de150:102.0.1.json new file mode 100644 index 0000000000000..f7efdc643e46d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8acb7614-1d92-4359-bfcf-478b6d9de150:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious JAVA Child Process v102.0.1","rule_id":"8acb7614-1d92-4359-bfcf-478b6d9de150:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious child processes of the Java interpreter process. This may indicate an attempt to execute a malicious JAR file or an exploitation attempt via a JAVA specific vulnerability.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Java Child Process\n\nThis rule identifies a suspicious child process of the Java interpreter process. It may indicate an attempt to execute\na malicious JAR file or an exploitation attempt via a Java specific vulnerability.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence and whether they are located in expected locations.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, file modifications, and any\nspawned child processes.\n- Examine the command line to determine if the command executed is potentially harmful or malicious.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination\nof process and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.lunasec.io/docs/blog/log4j-zero-day/","https://github.com/christophetd/log4shell-vulnerable-app","https://www.blackhat.com/docs/us-16/materials/us-16-Munoz-A-Journey-From-JNDI-LDAP-Manipulation-To-RCE.pdf","https://www.elastic.co/security-labs/detecting-log4j2-with-elastic-security","https://www.elastic.co/security-labs/analysis-of-log4shell-cve-2021-45046"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.007","name":"JavaScript","reference":"https://attack.mitre.org/techniques/T1059/007/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.parent.name : \"java\" and\n process.name : (\"sh\", \"bash\", \"dash\", \"ksh\", \"tcsh\", \"zsh\", \"curl\", \"wget\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"8acb7614-1d92-4359-bfcf-478b6d9de150:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8acb7614-1d92-4359-bfcf-478b6d9de150:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8acb7614-1d92-4359-bfcf-478b6d9de150:102.0.2.json new file mode 100644 index 0000000000000..e6c61a929310c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8acb7614-1d92-4359-bfcf-478b6d9de150:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious JAVA Child Process v102.0.2","rule_id":"8acb7614-1d92-4359-bfcf-478b6d9de150:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious child processes of the Java interpreter process. This may indicate an attempt to execute a malicious JAR file or an exploitation attempt via a JAVA specific vulnerability.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Java Child Process\n\nThis rule identifies a suspicious child process of the Java interpreter process. It may indicate an attempt to execute\na malicious JAR file or an exploitation attempt via a Java specific vulnerability.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence and whether they are located in expected locations.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, file modifications, and any\nspawned child processes.\n- Examine the command line to determine if the command executed is potentially harmful or malicious.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination\nof process and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.lunasec.io/docs/blog/log4j-zero-day/","https://github.com/christophetd/log4shell-vulnerable-app","https://www.blackhat.com/docs/us-16/materials/us-16-Munoz-A-Journey-From-JNDI-LDAP-Manipulation-To-RCE.pdf","https://www.elastic.co/security-labs/detecting-log4j2-with-elastic-security","https://www.elastic.co/security-labs/analysis-of-log4shell-cve-2021-45046"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.007","name":"JavaScript","reference":"https://attack.mitre.org/techniques/T1059/007/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.parent.name : \"java\" and\n process.name : (\"sh\", \"bash\", \"dash\", \"ksh\", \"tcsh\", \"zsh\", \"curl\", \"wget\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"8acb7614-1d92-4359-bfcf-478b6d9de150:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8b2b3a62-a598-4293-bc14-3d5fa22bb98f:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8b2b3a62-a598-4293-bc14-3d5fa22bb98f:101.0.0.json new file mode 100644 index 0000000000000..332e9875ceae6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8b2b3a62-a598-4293-bc14-3d5fa22bb98f:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Executable File Creation with Multiple Extensions v101.0.0","rule_id":"8b2b3a62-a598-4293-bc14-3d5fa22bb98f:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Masquerading can allow an adversary to evade defenses and better blend in with the environment. One way it occurs is when the name or location of a file is manipulated as a means of tricking a user into executing what they think is a benign file type but is actually executable code.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.007","name":"Double File Extension","reference":"https://attack.mitre.org/techniques/T1036/007/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1204","name":"User Execution","reference":"https://attack.mitre.org/techniques/T1204/","subtechnique":[{"id":"T1204.002","name":"Malicious File","reference":"https://attack.mitre.org/techniques/T1204/002/"}]}]}],"language":"eql","query":"file where event.type == \"creation\" and file.extension : \"exe\" and\n file.name regex~ \"\"\".*\\.(vbs|vbe|bat|js|cmd|wsh|ps1|pdf|docx?|xlsx?|pptx?|txt|rtf|gif|jpg|png|bmp|hta|txt|img|iso)\\.exe\"\"\" and\n not (process.executable : (\"?:\\\\Windows\\\\System32\\\\msiexec.exe\", \"C:\\\\Users\\\\*\\\\QGIS_SCCM\\\\Files\\\\QGIS-OSGeo4W-*-Setup-x86_64.exe\") and\n file.path : \"?:\\\\Program Files\\\\QGIS *\\\\apps\\\\grass\\\\*.exe\") and\n not process.executable : (\"/bin/sh\", \"/usr/sbin/MailScanner\", \"/usr/bin/perl\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"8b2b3a62-a598-4293-bc14-3d5fa22bb98f:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8b2b3a62-a598-4293-bc14-3d5fa22bb98f:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8b2b3a62-a598-4293-bc14-3d5fa22bb98f:101.0.1.json new file mode 100644 index 0000000000000..32d89ce145a73 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8b2b3a62-a598-4293-bc14-3d5fa22bb98f:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Executable File Creation with Multiple Extensions v101.0.1","rule_id":"8b2b3a62-a598-4293-bc14-3d5fa22bb98f:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Masquerading can allow an adversary to evade defenses and better blend in with the environment. One way it occurs is when the name or location of a file is manipulated as a means of tricking a user into executing what they think is a benign file type but is actually executable code.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.007","name":"Double File Extension","reference":"https://attack.mitre.org/techniques/T1036/007/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1204","name":"User Execution","reference":"https://attack.mitre.org/techniques/T1204/","subtechnique":[{"id":"T1204.002","name":"Malicious File","reference":"https://attack.mitre.org/techniques/T1204/002/"}]}]}],"language":"eql","query":"file where event.type == \"creation\" and file.extension : \"exe\" and\n file.name regex~ \"\"\".*\\.(vbs|vbe|bat|js|cmd|wsh|ps1|pdf|docx?|xlsx?|pptx?|txt|rtf|gif|jpg|png|bmp|hta|txt|img|iso)\\.exe\"\"\" and\n not (process.executable : (\"?:\\\\Windows\\\\System32\\\\msiexec.exe\", \"C:\\\\Users\\\\*\\\\QGIS_SCCM\\\\Files\\\\QGIS-OSGeo4W-*-Setup-x86_64.exe\") and\n file.path : \"?:\\\\Program Files\\\\QGIS *\\\\apps\\\\grass\\\\*.exe\") and\n not process.executable : (\"/bin/sh\", \"/usr/sbin/MailScanner\", \"/usr/bin/perl\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"8b2b3a62-a598-4293-bc14-3d5fa22bb98f:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8b2b3a62-a598-4293-bc14-3d5fa22bb98f:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8b2b3a62-a598-4293-bc14-3d5fa22bb98f:101.0.2.json new file mode 100644 index 0000000000000..fc5ba01c52920 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8b2b3a62-a598-4293-bc14-3d5fa22bb98f:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Executable File Creation with Multiple Extensions v101.0.2","rule_id":"8b2b3a62-a598-4293-bc14-3d5fa22bb98f:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Masquerading can allow an adversary to evade defenses and better blend in with the environment. One way it occurs is when the name or location of a file is manipulated as a means of tricking a user into executing what they think is a benign file type but is actually executable code.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.007","name":"Double File Extension","reference":"https://attack.mitre.org/techniques/T1036/007/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1204","name":"User Execution","reference":"https://attack.mitre.org/techniques/T1204/","subtechnique":[{"id":"T1204.002","name":"Malicious File","reference":"https://attack.mitre.org/techniques/T1204/002/"}]}]}],"language":"eql","query":"file where event.type == \"creation\" and file.extension : \"exe\" and\n file.name regex~ \"\"\".*\\.(vbs|vbe|bat|js|cmd|wsh|ps1|pdf|docx?|xlsx?|pptx?|txt|rtf|gif|jpg|png|bmp|hta|txt|img|iso)\\.exe\"\"\" and\n not (process.executable : (\"?:\\\\Windows\\\\System32\\\\msiexec.exe\", \"C:\\\\Users\\\\*\\\\QGIS_SCCM\\\\Files\\\\QGIS-OSGeo4W-*-Setup-x86_64.exe\") and\n file.path : \"?:\\\\Program Files\\\\QGIS *\\\\apps\\\\grass\\\\*.exe\") and\n not process.executable : (\"/bin/sh\", \"/usr/sbin/MailScanner\", \"/usr/bin/perl\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"8b2b3a62-a598-4293-bc14-3d5fa22bb98f:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8b4f0816-6a65-4630-86a6-c21c179c0d09:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8b4f0816-6a65-4630-86a6-c21c179c0d09:102.0.0.json new file mode 100644 index 0000000000000..48b8f3a6472de --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8b4f0816-6a65-4630-86a6-c21c179c0d09:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Enable Host Network Discovery via Netsh v102.0.0","rule_id":"8b4f0816-6a65-4630-86a6-c21c179c0d09:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the netsh.exe program to enable host discovery via the network. Attackers can use this command-line tool to weaken the host firewall settings.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Enable Host Network Discovery via Netsh\n\nThe Windows Defender Firewall is a native component that provides host-based, two-way network traffic filtering for a\ndevice and blocks unauthorized network traffic flowing into or out of the local device.\n\nAttackers can enable Network Discovery on the Windows firewall to find other systems present in the same network. Systems\nwith this setting enabled will communicate with other systems using broadcast messages, which can be used to identify\ntargets for lateral movement. This rule looks for the setup of this setting using the netsh utility.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity\nand there are justifications for this configuration.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Disable Network Discovery:\n - Using netsh: `netsh advfirewall firewall set rule group=\"Network Discovery\" new enable=No`\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Host Windows Firewall planned system administration changes."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.004","name":"Disable or Modify System Firewall","reference":"https://attack.mitre.org/techniques/T1562/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\nprocess.name : \"netsh.exe\" and\nprocess.args : (\"firewall\", \"advfirewall\") and process.args : \"group=Network Discovery\" and process.args : \"enable=Yes\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"8b4f0816-6a65-4630-86a6-c21c179c0d09:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8b4f0816-6a65-4630-86a6-c21c179c0d09:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8b4f0816-6a65-4630-86a6-c21c179c0d09:102.0.1.json new file mode 100644 index 0000000000000..04c87c8dc6fdb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8b4f0816-6a65-4630-86a6-c21c179c0d09:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Enable Host Network Discovery via Netsh v102.0.1","rule_id":"8b4f0816-6a65-4630-86a6-c21c179c0d09:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the netsh.exe program to enable host discovery via the network. Attackers can use this command-line tool to weaken the host firewall settings.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Enable Host Network Discovery via Netsh\n\nThe Windows Defender Firewall is a native component that provides host-based, two-way network traffic filtering for a\ndevice and blocks unauthorized network traffic flowing into or out of the local device.\n\nAttackers can enable Network Discovery on the Windows firewall to find other systems present in the same network. Systems\nwith this setting enabled will communicate with other systems using broadcast messages, which can be used to identify\ntargets for lateral movement. This rule looks for the setup of this setting using the netsh utility.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity\nand there are justifications for this configuration.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Disable Network Discovery:\n - Using netsh: `netsh advfirewall firewall set rule group=\"Network Discovery\" new enable=No`\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Host Windows Firewall planned system administration changes."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.004","name":"Disable or Modify System Firewall","reference":"https://attack.mitre.org/techniques/T1562/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\nprocess.name : \"netsh.exe\" and\nprocess.args : (\"firewall\", \"advfirewall\") and process.args : \"group=Network Discovery\" and process.args : \"enable=Yes\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"8b4f0816-6a65-4630-86a6-c21c179c0d09:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8b4f0816-6a65-4630-86a6-c21c179c0d09:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8b4f0816-6a65-4630-86a6-c21c179c0d09:102.0.2.json new file mode 100644 index 0000000000000..bd74b9ed7618b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8b4f0816-6a65-4630-86a6-c21c179c0d09:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Enable Host Network Discovery via Netsh v102.0.2","rule_id":"8b4f0816-6a65-4630-86a6-c21c179c0d09:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the netsh.exe program to enable host discovery via the network. Attackers can use this command-line tool to weaken the host firewall settings.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Enable Host Network Discovery via Netsh\n\nThe Windows Defender Firewall is a native component that provides host-based, two-way network traffic filtering for a\ndevice and blocks unauthorized network traffic flowing into or out of the local device.\n\nAttackers can enable Network Discovery on the Windows firewall to find other systems present in the same network. Systems\nwith this setting enabled will communicate with other systems using broadcast messages, which can be used to identify\ntargets for lateral movement. This rule looks for the setup of this setting using the netsh utility.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity\nand there are justifications for this configuration.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Disable Network Discovery:\n - Using netsh: `netsh advfirewall firewall set rule group=\"Network Discovery\" new enable=No`\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Host Windows Firewall planned system administration changes."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.004","name":"Disable or Modify System Firewall","reference":"https://attack.mitre.org/techniques/T1562/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\nprocess.name : \"netsh.exe\" and\nprocess.args : (\"firewall\", \"advfirewall\") and process.args : \"group=Network Discovery\" and process.args : \"enable=Yes\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"8b4f0816-6a65-4630-86a6-c21c179c0d09:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8b64d36a-1307-4b2e-a77b-a0027e4d27c8:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8b64d36a-1307-4b2e-a77b-a0027e4d27c8:101.0.0.json new file mode 100644 index 0000000000000..8814811679c2f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8b64d36a-1307-4b2e-a77b-a0027e4d27c8:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Kubernetes Events Deleted v101.0.0","rule_id":"8b64d36a-1307-4b2e-a77b-a0027e4d27c8:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when events are deleted in Azure Kubernetes. Kubernetes events are objects that log any state changes. Example events are a container creation, an image pull, or a pod scheduling on a node. An adversary may delete events in Azure Kubernetes in an attempt to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Events deletions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Events deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkubernetes"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.KUBERNETES/CONNECTEDCLUSTERS/EVENTS.K8S.IO/EVENTS/DELETE\" and\nevent.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"8b64d36a-1307-4b2e-a77b-a0027e4d27c8:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8b64d36a-1307-4b2e-a77b-a0027e4d27c8:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8b64d36a-1307-4b2e-a77b-a0027e4d27c8:101.0.1.json new file mode 100644 index 0000000000000..3786b91d22a92 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8b64d36a-1307-4b2e-a77b-a0027e4d27c8:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Kubernetes Events Deleted v101.0.1","rule_id":"8b64d36a-1307-4b2e-a77b-a0027e4d27c8:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when events are deleted in Azure Kubernetes. Kubernetes events are objects that log any state changes. Example events are a container creation, an image pull, or a pod scheduling on a node. An adversary may delete events in Azure Kubernetes in an attempt to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Events deletions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Events deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkubernetes"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.KUBERNETES/CONNECTEDCLUSTERS/EVENTS.K8S.IO/EVENTS/DELETE\" and\nevent.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"8b64d36a-1307-4b2e-a77b-a0027e4d27c8:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8b64d36a-1307-4b2e-a77b-a0027e4d27c8:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8b64d36a-1307-4b2e-a77b-a0027e4d27c8:101.0.2.json new file mode 100644 index 0000000000000..33d0b0bdc34ab --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8b64d36a-1307-4b2e-a77b-a0027e4d27c8:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Kubernetes Events Deleted v101.0.2","rule_id":"8b64d36a-1307-4b2e-a77b-a0027e4d27c8:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when events are deleted in Azure Kubernetes. Kubernetes events are objects that log any state changes. Example events are a container creation, an image pull, or a pod scheduling on a node. An adversary may delete events in Azure Kubernetes in an attempt to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Events deletions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Events deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkubernetes"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.KUBERNETES/CONNECTEDCLUSTERS/EVENTS.K8S.IO/EVENTS/DELETE\" and\nevent.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"8b64d36a-1307-4b2e-a77b-a0027e4d27c8:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8c1bdde8-4204-45c0-9e0c-c85ca3902488:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8c1bdde8-4204-45c0-9e0c-c85ca3902488:100.0.0.json new file mode 100644 index 0000000000000..c0dc6ebaf75d7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8c1bdde8-4204-45c0-9e0c-c85ca3902488:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"RDP (Remote Desktop Protocol) from the Internet v100.0.0","rule_id":"8c1bdde8-4204-45c0-9e0c-c85ca3902488:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of RDP traffic from the Internet. RDP is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.","risk_score":47,"severity":"medium","license":"Elastic License v2","timeline_id":"300afc76-072d-4261-864d-4149714bf3f1","timeline_title":"Comprehensive Network Timeline","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some network security policies allow RDP directly from the Internet but usage that is unfamiliar to server or network owners can be unexpected and suspicious. RDP services may be exposed directly to the Internet in some networks such as cloud environments. In such cases, only RDP gateways, bastions or jump servers may be expected expose RDP directly to the Internet and can be exempted from this rule. RDP may be required by some work-flows such as remote access and support for specialized software products and servers. Such work-flows are usually known and not unexpected."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and (destination.port:3389 or event.dataset:zeek.rdp) and\n not source.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n ) and\n destination.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},"id":"8c1bdde8-4204-45c0-9e0c-c85ca3902488:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8c1bdde8-4204-45c0-9e0c-c85ca3902488:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8c1bdde8-4204-45c0-9e0c-c85ca3902488:100.0.1.json new file mode 100644 index 0000000000000..6d3a6acc80fab --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8c1bdde8-4204-45c0-9e0c-c85ca3902488:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"RDP (Remote Desktop Protocol) from the Internet v100.0.1","rule_id":"8c1bdde8-4204-45c0-9e0c-c85ca3902488:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of RDP traffic from the Internet. RDP is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.","risk_score":47,"severity":"medium","license":"Elastic License v2","timeline_id":"300afc76-072d-4261-864d-4149714bf3f1","timeline_title":"Comprehensive Network Timeline","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some network security policies allow RDP directly from the Internet but usage that is unfamiliar to server or network owners can be unexpected and suspicious. RDP services may be exposed directly to the Internet in some networks such as cloud environments. In such cases, only RDP gateways, bastions or jump servers may be expected expose RDP directly to the Internet and can be exempted from this rule. RDP may be required by some work-flows such as remote access and support for specialized software products and servers. Such work-flows are usually known and not unexpected."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and (destination.port:3389 or event.dataset:zeek.rdp) and\n not source.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n ) and\n destination.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},"id":"8c1bdde8-4204-45c0-9e0c-c85ca3902488:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8c1bdde8-4204-45c0-9e0c-c85ca3902488:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8c1bdde8-4204-45c0-9e0c-c85ca3902488:100.0.2.json new file mode 100644 index 0000000000000..1264f270c283f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8c1bdde8-4204-45c0-9e0c-c85ca3902488:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"RDP (Remote Desktop Protocol) from the Internet v100.0.2","rule_id":"8c1bdde8-4204-45c0-9e0c-c85ca3902488:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of RDP traffic from the Internet. RDP is commonly used by system administrators to remotely control a system for maintenance or to use shared resources. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector.","risk_score":47,"severity":"medium","license":"Elastic License v2","timeline_id":"300afc76-072d-4261-864d-4149714bf3f1","timeline_title":"Comprehensive Network Timeline","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some network security policies allow RDP directly from the Internet but usage that is unfamiliar to server or network owners can be unexpected and suspicious. RDP services may be exposed directly to the Internet in some networks such as cloud environments. In such cases, only RDP gateways, bastions or jump servers may be expected expose RDP directly to the Internet and can be exempted from this rule. RDP may be required by some work-flows such as remote access and support for specialized software products and servers. Such work-flows are usually known and not unexpected."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and (destination.port:3389 or event.dataset:zeek.rdp) and\n not source.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n ) and\n destination.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},"id":"8c1bdde8-4204-45c0-9e0c-c85ca3902488:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45:102.0.0.json new file mode 100644 index 0000000000000..2363fc9859758 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Child Process of dns.exe v102.0.0","rule_id":"8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an unexpected process spawning from dns.exe, the process responsible for Windows DNS server services, which may indicate activity related to remote code execution or other forms of exploitation.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Child Process of dns.exe\n\nSIGRed (CVE-2020-1350) is a wormable, critical vulnerability in the Windows DNS server that affects Windows Server\nversions 2003 to 2019 and can be triggered by a malicious DNS response. Because the service is running in elevated\nprivileges (SYSTEM), an attacker that successfully exploits it is granted Domain Administrator rights. This can\neffectively compromise the entire corporate infrastructure.\n\nThis rule looks for unusual children of the `dns.exe` process, which can indicate the exploitation of the SIGRed or a\nsimilar remote code execution vulnerability in the DNS server.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes.\n - Any suspicious or abnormal child process spawned from dns.exe should be carefully reviewed and investigated. It's\n impossible to predict what an adversary may deploy as the follow-on process after the exploit, but built-in\n discovery/enumeration utilities should be top of mind (`whoami.exe`, `netstat.exe`, `systeminfo.exe`, `tasklist.exe`).\n - Built-in Windows programs that contain capabilities used to download and execute additional payloads should also be\n considered. This is not an exhaustive list, but ideal candidates to start out would be: `mshta.exe`, `powershell.exe`,\n `regsvr32.exe`, `rundll32.exe`, `wscript.exe`, `wmic.exe`.\n - If a denial-of-service (DoS) exploit is successful and DNS Server service crashes, be mindful of potential child processes related to\n `werfault.exe` occurring.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Investigate other alerts associated with the host during the past 48 hours.\n- Check whether the server is vulnerable to CVE-2020-1350.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system or restore the compromised server to a clean state.\n- Install the latest patches on systems that run Microsoft DNS Server.\n- Consider the implementation of a patch management system, such as the Windows Server Update Services (WSUS).\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Werfault.exe will legitimately spawn when dns.exe crashes, but the DNS service is very stable and so this is a low occurring event. Denial of Service (DoS) attempts by intentionally crashing the service will also cause werfault.exe to spawn."],"from":"now-9m","references":["https://research.checkpoint.com/2020/resolving-your-way-into-domain-admin-exploiting-a-17-year-old-bug-in-windows-dns-servers/","https://msrc-blog.microsoft.com/2020/07/14/july-2020-security-update-cve-2020-1350-vulnerability-in-windows-domain-name-system-dns-server/","https://github.com/maxpl0it/CVE-2020-1350-DoS","https://www.elastic.co/security-labs/detection-rules-for-sigred-vulnerability"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1133","name":"External Remote Services","reference":"https://attack.mitre.org/techniques/T1133/"}]}],"language":"eql","query":"process where event.type == \"start\" and process.parent.name : \"dns.exe\" and\n not process.name : \"conhost.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45:102.0.1.json new file mode 100644 index 0000000000000..5e2d1a0221201 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Child Process of dns.exe v102.0.1","rule_id":"8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an unexpected process spawning from dns.exe, the process responsible for Windows DNS server services, which may indicate activity related to remote code execution or other forms of exploitation.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Child Process of dns.exe\n\nSIGRed (CVE-2020-1350) is a wormable, critical vulnerability in the Windows DNS server that affects Windows Server\nversions 2003 to 2019 and can be triggered by a malicious DNS response. Because the service is running in elevated\nprivileges (SYSTEM), an attacker that successfully exploits it is granted Domain Administrator rights. This can\neffectively compromise the entire corporate infrastructure.\n\nThis rule looks for unusual children of the `dns.exe` process, which can indicate the exploitation of the SIGRed or a\nsimilar remote code execution vulnerability in the DNS server.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes.\n - Any suspicious or abnormal child process spawned from dns.exe should be carefully reviewed and investigated. It's\n impossible to predict what an adversary may deploy as the follow-on process after the exploit, but built-in\n discovery/enumeration utilities should be top of mind (`whoami.exe`, `netstat.exe`, `systeminfo.exe`, `tasklist.exe`).\n - Built-in Windows programs that contain capabilities used to download and execute additional payloads should also be\n considered. This is not an exhaustive list, but ideal candidates to start out would be: `mshta.exe`, `powershell.exe`,\n `regsvr32.exe`, `rundll32.exe`, `wscript.exe`, `wmic.exe`.\n - If a denial-of-service (DoS) exploit is successful and DNS Server service crashes, be mindful of potential child processes related to\n `werfault.exe` occurring.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Investigate other alerts associated with the host during the past 48 hours.\n- Check whether the server is vulnerable to CVE-2020-1350.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system or restore the compromised server to a clean state.\n- Install the latest patches on systems that run Microsoft DNS Server.\n- Consider the implementation of a patch management system, such as the Windows Server Update Services (WSUS).\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Werfault.exe will legitimately spawn when dns.exe crashes, but the DNS service is very stable and so this is a low occurring event. Denial of Service (DoS) attempts by intentionally crashing the service will also cause werfault.exe to spawn."],"from":"now-9m","references":["https://research.checkpoint.com/2020/resolving-your-way-into-domain-admin-exploiting-a-17-year-old-bug-in-windows-dns-servers/","https://msrc-blog.microsoft.com/2020/07/14/july-2020-security-update-cve-2020-1350-vulnerability-in-windows-domain-name-system-dns-server/","https://github.com/maxpl0it/CVE-2020-1350-DoS","https://www.elastic.co/security-labs/detection-rules-for-sigred-vulnerability"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1133","name":"External Remote Services","reference":"https://attack.mitre.org/techniques/T1133/"}]}],"language":"eql","query":"process where event.type == \"start\" and process.parent.name : \"dns.exe\" and\n not process.name : \"conhost.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45:102.0.2.json new file mode 100644 index 0000000000000..abac893f24932 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Child Process of dns.exe v102.0.2","rule_id":"8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an unexpected process spawning from dns.exe, the process responsible for Windows DNS server services, which may indicate activity related to remote code execution or other forms of exploitation.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Child Process of dns.exe\n\nSIGRed (CVE-2020-1350) is a wormable, critical vulnerability in the Windows DNS server that affects Windows Server\nversions 2003 to 2019 and can be triggered by a malicious DNS response. Because the service is running in elevated\nprivileges (SYSTEM), an attacker that successfully exploits it is granted Domain Administrator rights. This can\neffectively compromise the entire corporate infrastructure.\n\nThis rule looks for unusual children of the `dns.exe` process, which can indicate the exploitation of the SIGRed or a\nsimilar remote code execution vulnerability in the DNS server.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes.\n - Any suspicious or abnormal child process spawned from dns.exe should be carefully reviewed and investigated. It's\n impossible to predict what an adversary may deploy as the follow-on process after the exploit, but built-in\n discovery/enumeration utilities should be top of mind (`whoami.exe`, `netstat.exe`, `systeminfo.exe`, `tasklist.exe`).\n - Built-in Windows programs that contain capabilities used to download and execute additional payloads should also be\n considered. This is not an exhaustive list, but ideal candidates to start out would be: `mshta.exe`, `powershell.exe`,\n `regsvr32.exe`, `rundll32.exe`, `wscript.exe`, `wmic.exe`.\n - If a denial-of-service (DoS) exploit is successful and DNS Server service crashes, be mindful of potential child processes related to\n `werfault.exe` occurring.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Investigate other alerts associated with the host during the past 48 hours.\n- Check whether the server is vulnerable to CVE-2020-1350.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system or restore the compromised server to a clean state.\n- Install the latest patches on systems that run Microsoft DNS Server.\n- Consider the implementation of a patch management system, such as the Windows Server Update Services (WSUS).\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Werfault.exe will legitimately spawn when dns.exe crashes, but the DNS service is very stable and so this is a low occurring event. Denial of Service (DoS) attempts by intentionally crashing the service will also cause werfault.exe to spawn."],"from":"now-9m","references":["https://research.checkpoint.com/2020/resolving-your-way-into-domain-admin-exploiting-a-17-year-old-bug-in-windows-dns-servers/","https://msrc-blog.microsoft.com/2020/07/14/july-2020-security-update-cve-2020-1350-vulnerability-in-windows-domain-name-system-dns-server/","https://github.com/maxpl0it/CVE-2020-1350-DoS","https://www.elastic.co/security-labs/detection-rules-for-sigred-vulnerability"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1133","name":"External Remote Services","reference":"https://attack.mitre.org/techniques/T1133/"}]}],"language":"eql","query":"process where event.type == \"start\" and process.parent.name : \"dns.exe\" and\n not process.name : \"conhost.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8c81e506-6e82-4884-9b9a-75d3d252f967:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8c81e506-6e82-4884-9b9a-75d3d252f967:101.0.0.json new file mode 100644 index 0000000000000..9aaec19c9bbab --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8c81e506-6e82-4884-9b9a-75d3d252f967:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential SharpRDP Behavior v101.0.0","rule_id":"8c81e506-6e82-4884-9b9a-75d3d252f967:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential behavior of SharpRDP, which is a tool that can be used to perform authenticated command execution against a remote target via Remote Desktop Protocol (RDP) for the purposes of lateral movement.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/revisiting-remote-desktop-lateral-movement-8fb905cb46c3","https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES/blob/master/Lateral%20Movement/LM_sysmon_3_12_13_1_SharpRDP.evtx"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.001","name":"Remote Desktop Protocol","reference":"https://attack.mitre.org/techniques/T1021/001/"}]}]}],"language":"eql","query":"/* Incoming RDP followed by a new RunMRU string value set to cmd, powershell, taskmgr or tsclient, followed by process execution within 1m */\n\nsequence by host.id with maxspan=1m\n [network where event.type == \"start\" and process.name : \"svchost.exe\" and destination.port == 3389 and\n network.direction : (\"incoming\", \"ingress\") and network.transport == \"tcp\" and\n source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ]\n\n [registry where process.name : \"explorer.exe\" and\n registry.path : (\"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\RunMRU\\\\*\") and\n registry.data.strings : (\"cmd.exe*\", \"powershell.exe*\", \"taskmgr*\", \"\\\\\\\\tsclient\\\\*.exe\\\\*\")\n ]\n\n [process where event.type == \"start\" and\n (process.parent.name : (\"cmd.exe\", \"powershell.exe\", \"taskmgr.exe\") or process.args : (\"\\\\\\\\tsclient\\\\*.exe\")) and\n not process.name : \"conhost.exe\"\n ]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},"id":"8c81e506-6e82-4884-9b9a-75d3d252f967:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8c81e506-6e82-4884-9b9a-75d3d252f967:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8c81e506-6e82-4884-9b9a-75d3d252f967:101.0.1.json new file mode 100644 index 0000000000000..a37ede26060b4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8c81e506-6e82-4884-9b9a-75d3d252f967:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential SharpRDP Behavior v101.0.1","rule_id":"8c81e506-6e82-4884-9b9a-75d3d252f967:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential behavior of SharpRDP, which is a tool that can be used to perform authenticated command execution against a remote target via Remote Desktop Protocol (RDP) for the purposes of lateral movement.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/revisiting-remote-desktop-lateral-movement-8fb905cb46c3","https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES/blob/master/Lateral%20Movement/LM_sysmon_3_12_13_1_SharpRDP.evtx"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.001","name":"Remote Desktop Protocol","reference":"https://attack.mitre.org/techniques/T1021/001/"}]}]}],"language":"eql","query":"/* Incoming RDP followed by a new RunMRU string value set to cmd, powershell, taskmgr or tsclient, followed by process execution within 1m */\n\nsequence by host.id with maxspan=1m\n [network where event.type == \"start\" and process.name : \"svchost.exe\" and destination.port == 3389 and\n network.direction : (\"incoming\", \"ingress\") and network.transport == \"tcp\" and\n source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ]\n\n [registry where process.name : \"explorer.exe\" and\n registry.path : (\"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\RunMRU\\\\*\") and\n registry.data.strings : (\"cmd.exe*\", \"powershell.exe*\", \"taskmgr*\", \"\\\\\\\\tsclient\\\\*.exe\\\\*\")\n ]\n\n [process where event.type == \"start\" and\n (process.parent.name : (\"cmd.exe\", \"powershell.exe\", \"taskmgr.exe\") or process.args : (\"\\\\\\\\tsclient\\\\*.exe\")) and\n not process.name : \"conhost.exe\"\n ]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},"id":"8c81e506-6e82-4884-9b9a-75d3d252f967:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8c81e506-6e82-4884-9b9a-75d3d252f967:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8c81e506-6e82-4884-9b9a-75d3d252f967:101.0.2.json new file mode 100644 index 0000000000000..f652589aff8e5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8c81e506-6e82-4884-9b9a-75d3d252f967:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential SharpRDP Behavior v101.0.2","rule_id":"8c81e506-6e82-4884-9b9a-75d3d252f967:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential behavior of SharpRDP, which is a tool that can be used to perform authenticated command execution against a remote target via Remote Desktop Protocol (RDP) for the purposes of lateral movement.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/revisiting-remote-desktop-lateral-movement-8fb905cb46c3","https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES/blob/master/Lateral%20Movement/LM_sysmon_3_12_13_1_SharpRDP.evtx"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.001","name":"Remote Desktop Protocol","reference":"https://attack.mitre.org/techniques/T1021/001/"}]}]}],"language":"eql","query":"/* Incoming RDP followed by a new RunMRU string value set to cmd, powershell, taskmgr or tsclient, followed by process execution within 1m */\n\nsequence by host.id with maxspan=1m\n [network where event.type == \"start\" and process.name : \"svchost.exe\" and destination.port == 3389 and\n network.direction : (\"incoming\", \"ingress\") and network.transport == \"tcp\" and\n source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ]\n\n [registry where process.name : \"explorer.exe\" and\n registry.path : (\"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\RunMRU\\\\*\") and\n registry.data.strings : (\"cmd.exe*\", \"powershell.exe*\", \"taskmgr*\", \"\\\\\\\\tsclient\\\\*.exe\\\\*\")\n ]\n\n [process where event.type == \"start\" and\n (process.parent.name : (\"cmd.exe\", \"powershell.exe\", \"taskmgr.exe\") or process.args : (\"\\\\\\\\tsclient\\\\*.exe\")) and\n not process.name : \"conhost.exe\"\n ]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},"id":"8c81e506-6e82-4884-9b9a-75d3d252f967:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8cb4f625-7743-4dfb-ae1b-ad92be9df7bd:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8cb4f625-7743-4dfb-ae1b-ad92be9df7bd:100.0.0.json new file mode 100644 index 0000000000000..231e3ccefdfa3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8cb4f625-7743-4dfb-ae1b-ad92be9df7bd:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Ransomware - Detected - Elastic Endgame v100.0.0","rule_id":"8cb4f625-7743-4dfb-ae1b-ad92be9df7bd:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected ransomware. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":99,"severity":"critical","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame"],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:ransomware_event or endgame.event_subtype_full:ransomware_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"8cb4f625-7743-4dfb-ae1b-ad92be9df7bd:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8cb4f625-7743-4dfb-ae1b-ad92be9df7bd:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8cb4f625-7743-4dfb-ae1b-ad92be9df7bd:100.0.1.json new file mode 100644 index 0000000000000..e67f4b4a97111 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8cb4f625-7743-4dfb-ae1b-ad92be9df7bd:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Ransomware - Detected - Elastic Endgame v100.0.1","rule_id":"8cb4f625-7743-4dfb-ae1b-ad92be9df7bd:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected ransomware. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":99,"severity":"critical","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame"],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:ransomware_event or endgame.event_subtype_full:ransomware_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"8cb4f625-7743-4dfb-ae1b-ad92be9df7bd:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8cb4f625-7743-4dfb-ae1b-ad92be9df7bd:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8cb4f625-7743-4dfb-ae1b-ad92be9df7bd:100.0.2.json new file mode 100644 index 0000000000000..14ec1a6101869 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8cb4f625-7743-4dfb-ae1b-ad92be9df7bd:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Ransomware - Detected - Elastic Endgame v100.0.2","rule_id":"8cb4f625-7743-4dfb-ae1b-ad92be9df7bd:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected ransomware. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":99,"severity":"critical","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame"],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:ransomware_event or endgame.event_subtype_full:ransomware_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"8cb4f625-7743-4dfb-ae1b-ad92be9df7bd:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8cb84371-d053-4f4f-bce0-c74990e28f28:1.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8cb84371-d053-4f4f-bce0-c74990e28f28:1.0.0.json new file mode 100644 index 0000000000000..29e466ad6157a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8cb84371-d053-4f4f-bce0-c74990e28f28:1.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential SSH Password Guessing v1.0.0","rule_id":"8cb84371-d053-4f4f-bce0-c74990e28f28:1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple SSH login failures followed by a successful one from the same source address. Adversaries can attempt to login into multiple users with a common or known password to gain access to accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential SSH Password Guessing Attack\n\nThe rule identifies consecutive SSH login failures followed by a successful login from the same source IP address to the\nsame target host indicating a successful attempt of brute force password guessing.\n\n#### Possible investigation steps\n\n- Investigate the login failure user name(s).\n- Investigate the source IP address of the failed ssh login attempt(s).\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Infrastructure or availability issue.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Ensure active session(s) on the host(s) are terminated as the attacker could have gained initial\naccess to the system(s).\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified.\n- Reset passwords for these accounts and other potentially compromised credentials.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip, user.name with maxspan=3s\n [authentication where event.action in (\"ssh_login\", \"user_login\") and\n event.outcome == \"failure\" and source.ip != null and source.ip != \"0.0.0.0\" and source.ip != \"::\" ] with runs=2\n\n [authentication where event.action in (\"ssh_login\", \"user_login\") and\n event.outcome == \"success\" and source.ip != null and source.ip != \"0.0.0.0\" and source.ip != \"::\" ]\n","type":"eql","index":["auditbeat-*","logs-system.auth-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"8cb84371-d053-4f4f-bce0-c74990e28f28:1.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8cb84371-d053-4f4f-bce0-c74990e28f28:1.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8cb84371-d053-4f4f-bce0-c74990e28f28:1.0.1.json new file mode 100644 index 0000000000000..8b9640cdd42f7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8cb84371-d053-4f4f-bce0-c74990e28f28:1.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential SSH Password Guessing v1.0.1","rule_id":"8cb84371-d053-4f4f-bce0-c74990e28f28:1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple SSH login failures followed by a successful one from the same source address. Adversaries can attempt to login into multiple users with a common or known password to gain access to accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential SSH Password Guessing Attack\n\nThe rule identifies consecutive SSH login failures followed by a successful login from the same source IP address to the\nsame target host indicating a successful attempt of brute force password guessing.\n\n#### Possible investigation steps\n\n- Investigate the login failure user name(s).\n- Investigate the source IP address of the failed ssh login attempt(s).\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Infrastructure or availability issue.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Ensure active session(s) on the host(s) are terminated as the attacker could have gained initial\naccess to the system(s).\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified.\n- Reset passwords for these accounts and other potentially compromised credentials.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip, user.name with maxspan=3s\n [authentication where event.action in (\"ssh_login\", \"user_login\") and\n event.outcome == \"failure\" and source.ip != null and source.ip != \"0.0.0.0\" and source.ip != \"::\" ] with runs=2\n\n [authentication where event.action in (\"ssh_login\", \"user_login\") and\n event.outcome == \"success\" and source.ip != null and source.ip != \"0.0.0.0\" and source.ip != \"::\" ]\n","type":"eql","index":["auditbeat-*","logs-system.auth-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"8cb84371-d053-4f4f-bce0-c74990e28f28:1.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8cb84371-d053-4f4f-bce0-c74990e28f28:1.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8cb84371-d053-4f4f-bce0-c74990e28f28:1.0.2.json new file mode 100644 index 0000000000000..249fcc856c9ce --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8cb84371-d053-4f4f-bce0-c74990e28f28:1.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential SSH Password Guessing v1.0.2","rule_id":"8cb84371-d053-4f4f-bce0-c74990e28f28:1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple SSH login failures followed by a successful one from the same source address. Adversaries can attempt to login into multiple users with a common or known password to gain access to accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential SSH Password Guessing Attack\n\nThe rule identifies consecutive SSH login failures followed by a successful login from the same source IP address to the\nsame target host indicating a successful attempt of brute force password guessing.\n\n#### Possible investigation steps\n\n- Investigate the login failure user name(s).\n- Investigate the source IP address of the failed ssh login attempt(s).\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Infrastructure or availability issue.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Ensure active session(s) on the host(s) are terminated as the attacker could have gained initial\naccess to the system(s).\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified.\n- Reset passwords for these accounts and other potentially compromised credentials.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip, user.name with maxspan=3s\n [authentication where event.action in (\"ssh_login\", \"user_login\") and\n event.outcome == \"failure\" and source.ip != null and source.ip != \"0.0.0.0\" and source.ip != \"::\" ] with runs=2\n\n [authentication where event.action in (\"ssh_login\", \"user_login\") and\n event.outcome == \"success\" and source.ip != null and source.ip != \"0.0.0.0\" and source.ip != \"::\" ]\n","type":"eql","index":["auditbeat-*","logs-system.auth-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"8cb84371-d053-4f4f-bce0-c74990e28f28:1.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8da41fc9-7735-4b24-9cc6-c78dfc9fc9c9:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8da41fc9-7735-4b24-9cc6-c78dfc9fc9c9:100.0.0.json new file mode 100644 index 0000000000000..96ca2e8a69fee --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8da41fc9-7735-4b24-9cc6-c78dfc9fc9c9:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Privilege Escalation via PKEXEC v100.0.0","rule_id":"8da41fc9-7735-4b24-9cc6-c78dfc9fc9c9:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an attempt to exploit a local privilege escalation in polkit pkexec (CVE-2021-4034) via unsecure environment variable injection. Successful exploitation allows an unprivileged user to escalate to the root user.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://seclists.org/oss-sec/2022/q1/80","https://haxx.in/files/blasty-vs-pkexec.c"],"tags":["Elastic","Host","Linux","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.007","name":"Path Interception by PATH Environment Variable","reference":"https://attack.mitre.org/techniques/T1574/007/"}]}]}],"language":"eql","query":"file where file.path : \"/*GCONV_PATH*\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"file.path","type":"keyword"}]},"id":"8da41fc9-7735-4b24-9cc6-c78dfc9fc9c9:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8da41fc9-7735-4b24-9cc6-c78dfc9fc9c9:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8da41fc9-7735-4b24-9cc6-c78dfc9fc9c9:100.0.1.json new file mode 100644 index 0000000000000..b74f6d50a5a4b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8da41fc9-7735-4b24-9cc6-c78dfc9fc9c9:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Privilege Escalation via PKEXEC v100.0.1","rule_id":"8da41fc9-7735-4b24-9cc6-c78dfc9fc9c9:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an attempt to exploit a local privilege escalation in polkit pkexec (CVE-2021-4034) via unsecure environment variable injection. Successful exploitation allows an unprivileged user to escalate to the root user.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://seclists.org/oss-sec/2022/q1/80","https://haxx.in/files/blasty-vs-pkexec.c"],"tags":["Elastic","Host","Linux","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.007","name":"Path Interception by PATH Environment Variable","reference":"https://attack.mitre.org/techniques/T1574/007/"}]}]}],"language":"eql","query":"file where file.path : \"/*GCONV_PATH*\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"file.path","type":"keyword"}]},"id":"8da41fc9-7735-4b24-9cc6-c78dfc9fc9c9:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8da41fc9-7735-4b24-9cc6-c78dfc9fc9c9:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8da41fc9-7735-4b24-9cc6-c78dfc9fc9c9:100.0.2.json new file mode 100644 index 0000000000000..672fddf172f98 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8da41fc9-7735-4b24-9cc6-c78dfc9fc9c9:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Privilege Escalation via PKEXEC v100.0.2","rule_id":"8da41fc9-7735-4b24-9cc6-c78dfc9fc9c9:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an attempt to exploit a local privilege escalation in polkit pkexec (CVE-2021-4034) via unsecure environment variable injection. Successful exploitation allows an unprivileged user to escalate to the root user.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://seclists.org/oss-sec/2022/q1/80","https://haxx.in/files/blasty-vs-pkexec.c"],"tags":["Elastic","Host","Linux","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.007","name":"Path Interception by PATH Environment Variable","reference":"https://attack.mitre.org/techniques/T1574/007/"}]}]}],"language":"eql","query":"file where file.path : \"/*GCONV_PATH*\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"file.path","type":"keyword"}]},"id":"8da41fc9-7735-4b24-9cc6-c78dfc9fc9c9:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8ddab73b-3d15-4e5d-9413-47f05553c1d7:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8ddab73b-3d15-4e5d-9413-47f05553c1d7:101.0.0.json new file mode 100644 index 0000000000000..6653ede076b98 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8ddab73b-3d15-4e5d-9413-47f05553c1d7:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Automation Runbook Deleted v101.0.0","rule_id":"8ddab73b-3d15-4e5d-9413-47f05553c1d7:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Azure Automation runbook is deleted. An adversary may delete an Azure Automation runbook in order to disrupt their target's automated business operations or to remove a malicious runbook for defense evasion.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://powerzure.readthedocs.io/en/latest/Functions/operational.html#create-backdoor","https://github.com/hausec/PowerZure","https://posts.specterops.io/attacking-azure-azure-ad-and-introducing-powerzure-ca70b330511a","https://azure.microsoft.com/en-in/blog/azure-automation-runbook-management/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and\n azure.activitylogs.operation_name:\"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/RUNBOOKS/DELETE\" and\n event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"8ddab73b-3d15-4e5d-9413-47f05553c1d7:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8ddab73b-3d15-4e5d-9413-47f05553c1d7:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8ddab73b-3d15-4e5d-9413-47f05553c1d7:101.0.1.json new file mode 100644 index 0000000000000..124ed3808cb75 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8ddab73b-3d15-4e5d-9413-47f05553c1d7:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Automation Runbook Deleted v101.0.1","rule_id":"8ddab73b-3d15-4e5d-9413-47f05553c1d7:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Azure Automation runbook is deleted. An adversary may delete an Azure Automation runbook in order to disrupt their target's automated business operations or to remove a malicious runbook for defense evasion.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://powerzure.readthedocs.io/en/latest/Functions/operational.html#create-backdoor","https://github.com/hausec/PowerZure","https://posts.specterops.io/attacking-azure-azure-ad-and-introducing-powerzure-ca70b330511a","https://azure.microsoft.com/en-in/blog/azure-automation-runbook-management/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and\n azure.activitylogs.operation_name:\"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/RUNBOOKS/DELETE\" and\n event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"8ddab73b-3d15-4e5d-9413-47f05553c1d7:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8ddab73b-3d15-4e5d-9413-47f05553c1d7:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8ddab73b-3d15-4e5d-9413-47f05553c1d7:101.0.2.json new file mode 100644 index 0000000000000..9191a1993a1bb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8ddab73b-3d15-4e5d-9413-47f05553c1d7:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Automation Runbook Deleted v101.0.2","rule_id":"8ddab73b-3d15-4e5d-9413-47f05553c1d7:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Azure Automation runbook is deleted. An adversary may delete an Azure Automation runbook in order to disrupt their target's automated business operations or to remove a malicious runbook for defense evasion.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://powerzure.readthedocs.io/en/latest/Functions/operational.html#create-backdoor","https://github.com/hausec/PowerZure","https://posts.specterops.io/attacking-azure-azure-ad-and-introducing-powerzure-ca70b330511a","https://azure.microsoft.com/en-in/blog/azure-automation-runbook-management/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and\n azure.activitylogs.operation_name:\"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/RUNBOOKS/DELETE\" and\n event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"8ddab73b-3d15-4e5d-9413-47f05553c1d7:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8f3e91c7-d791-4704-80a1-42c160d7aa27:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8f3e91c7-d791-4704-80a1-42c160d7aa27:100.0.0.json new file mode 100644 index 0000000000000..6c1bda2107e70 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8f3e91c7-d791-4704-80a1-42c160d7aa27:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Port Monitor or Print Processor Registration Abuse v100.0.0","rule_id":"8f3e91c7-d791-4704-80a1-42c160d7aa27:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies port monitor and print processor registry modifications. Adversaries may abuse port monitor and print processors to run malicious DLLs during system boot that will be executed as SYSTEM for privilege escalation and/or persistence, if permissions allow writing a fully-qualified pathname for that DLL.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.welivesecurity.com/2020/05/21/no-game-over-winnti-group/"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.010","name":"Port Monitors","reference":"https://attack.mitre.org/techniques/T1547/010/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.010","name":"Port Monitors","reference":"https://attack.mitre.org/techniques/T1547/010/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n registry.path : (\"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Print\\\\Monitors\\\\*\",\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Print\\\\Environments\\\\Windows*\\\\Print Processors\\\\*\") and\n registry.data.strings : \"*.dll\" and\n /* exclude SYSTEM SID - look for changes by non-SYSTEM user */\n not user.id : \"S-1-5-18\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"8f3e91c7-d791-4704-80a1-42c160d7aa27:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8f3e91c7-d791-4704-80a1-42c160d7aa27:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8f3e91c7-d791-4704-80a1-42c160d7aa27:100.0.1.json new file mode 100644 index 0000000000000..32b59b80323c2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8f3e91c7-d791-4704-80a1-42c160d7aa27:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Port Monitor or Print Processor Registration Abuse v100.0.1","rule_id":"8f3e91c7-d791-4704-80a1-42c160d7aa27:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies port monitor and print processor registry modifications. Adversaries may abuse port monitor and print processors to run malicious DLLs during system boot that will be executed as SYSTEM for privilege escalation and/or persistence, if permissions allow writing a fully-qualified pathname for that DLL.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.welivesecurity.com/2020/05/21/no-game-over-winnti-group/"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.010","name":"Port Monitors","reference":"https://attack.mitre.org/techniques/T1547/010/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.010","name":"Port Monitors","reference":"https://attack.mitre.org/techniques/T1547/010/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n registry.path : (\"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Print\\\\Monitors\\\\*\",\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Print\\\\Environments\\\\Windows*\\\\Print Processors\\\\*\") and\n registry.data.strings : \"*.dll\" and\n /* exclude SYSTEM SID - look for changes by non-SYSTEM user */\n not user.id : \"S-1-5-18\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"8f3e91c7-d791-4704-80a1-42c160d7aa27:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8f3e91c7-d791-4704-80a1-42c160d7aa27:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8f3e91c7-d791-4704-80a1-42c160d7aa27:100.0.2.json new file mode 100644 index 0000000000000..a06b66077937f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8f3e91c7-d791-4704-80a1-42c160d7aa27:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Port Monitor or Print Processor Registration Abuse v100.0.2","rule_id":"8f3e91c7-d791-4704-80a1-42c160d7aa27:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies port monitor and print processor registry modifications. Adversaries may abuse port monitor and print processors to run malicious DLLs during system boot that will be executed as SYSTEM for privilege escalation and/or persistence, if permissions allow writing a fully-qualified pathname for that DLL.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.welivesecurity.com/2020/05/21/no-game-over-winnti-group/"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.010","name":"Port Monitors","reference":"https://attack.mitre.org/techniques/T1547/010/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.010","name":"Port Monitors","reference":"https://attack.mitre.org/techniques/T1547/010/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n registry.path : (\"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Print\\\\Monitors\\\\*\",\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Print\\\\Environments\\\\Windows*\\\\Print Processors\\\\*\") and\n registry.data.strings : \"*.dll\" and\n /* exclude SYSTEM SID - look for changes by non-SYSTEM user */\n not user.id : \"S-1-5-18\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"8f3e91c7-d791-4704-80a1-42c160d7aa27:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8f919d4b-a5af-47ca-a594-6be59cd924a4:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8f919d4b-a5af-47ca-a594-6be59cd924a4:101.0.0.json new file mode 100644 index 0000000000000..9338a8dabd174 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8f919d4b-a5af-47ca-a594-6be59cd924a4:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Incoming DCOM Lateral Movement with ShellBrowserWindow or ShellWindows v101.0.0","rule_id":"8f919d4b-a5af-47ca-a594-6be59cd924a4:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of Distributed Component Object Model (DCOM) to run commands from a remote host, which are launched via the ShellBrowserWindow or ShellWindows Application COM Object. This behavior may indicate an attacker abusing a DCOM application to stealthily move laterally.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.003","name":"Distributed Component Object Model","reference":"https://attack.mitre.org/techniques/T1021/003/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=5s\n [network where event.type == \"start\" and process.name : \"explorer.exe\" and\n network.direction : (\"incoming\", \"ingress\") and network.transport == \"tcp\" and\n source.port > 49151 and destination.port > 49151 and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ] by process.entity_id\n [process where event.type == \"start\" and\n process.parent.name : \"explorer.exe\"\n ] by process.parent.entity_id\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]},"id":"8f919d4b-a5af-47ca-a594-6be59cd924a4:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8f919d4b-a5af-47ca-a594-6be59cd924a4:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8f919d4b-a5af-47ca-a594-6be59cd924a4:101.0.1.json new file mode 100644 index 0000000000000..69dce6cac20f7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8f919d4b-a5af-47ca-a594-6be59cd924a4:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Incoming DCOM Lateral Movement with ShellBrowserWindow or ShellWindows v101.0.1","rule_id":"8f919d4b-a5af-47ca-a594-6be59cd924a4:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of Distributed Component Object Model (DCOM) to run commands from a remote host, which are launched via the ShellBrowserWindow or ShellWindows Application COM Object. This behavior may indicate an attacker abusing a DCOM application to stealthily move laterally.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.003","name":"Distributed Component Object Model","reference":"https://attack.mitre.org/techniques/T1021/003/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=5s\n [network where event.type == \"start\" and process.name : \"explorer.exe\" and\n network.direction : (\"incoming\", \"ingress\") and network.transport == \"tcp\" and\n source.port > 49151 and destination.port > 49151 and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ] by process.entity_id\n [process where event.type == \"start\" and\n process.parent.name : \"explorer.exe\"\n ] by process.parent.entity_id\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]},"id":"8f919d4b-a5af-47ca-a594-6be59cd924a4:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8f919d4b-a5af-47ca-a594-6be59cd924a4:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8f919d4b-a5af-47ca-a594-6be59cd924a4:101.0.2.json new file mode 100644 index 0000000000000..68fe937e77668 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8f919d4b-a5af-47ca-a594-6be59cd924a4:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Incoming DCOM Lateral Movement with ShellBrowserWindow or ShellWindows v101.0.2","rule_id":"8f919d4b-a5af-47ca-a594-6be59cd924a4:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of Distributed Component Object Model (DCOM) to run commands from a remote host, which are launched via the ShellBrowserWindow or ShellWindows Application COM Object. This behavior may indicate an attacker abusing a DCOM application to stealthily move laterally.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.003","name":"Distributed Component Object Model","reference":"https://attack.mitre.org/techniques/T1021/003/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan=5s\n [network where event.type == \"start\" and process.name : \"explorer.exe\" and\n network.direction : (\"incoming\", \"ingress\") and network.transport == \"tcp\" and\n source.port > 49151 and destination.port > 49151 and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ] by process.entity_id\n [process where event.type == \"start\" and\n process.parent.name : \"explorer.exe\"\n ] by process.parent.entity_id\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]},"id":"8f919d4b-a5af-47ca-a594-6be59cd924a4:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8fb75dda-c47a-4e34-8ecd-34facf7aad13:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8fb75dda-c47a-4e34-8ecd-34facf7aad13:102.0.0.json new file mode 100644 index 0000000000000..e9a312886ea07 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8fb75dda-c47a-4e34-8ecd-34facf7aad13:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Service Account Deletion v102.0.0","rule_id":"8fb75dda-c47a-4e34-8ecd-34facf7aad13:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a service account is deleted in Google Cloud Platform (GCP). A service account is a special type of account used by an application or a virtual machine (VM) instance, not a person. Applications use service accounts to make authorized API calls, authorized as either the service account itself, or as G Suite or Cloud Identity users through domain-wide delegation. An adversary may delete a service account in order to disrupt their target's business operations.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Service accounts may be deleted by system administrators. Verify that the behavior was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/iam/docs/service-accounts"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.DeleteServiceAccount and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"8fb75dda-c47a-4e34-8ecd-34facf7aad13:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8fb75dda-c47a-4e34-8ecd-34facf7aad13:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8fb75dda-c47a-4e34-8ecd-34facf7aad13:102.0.1.json new file mode 100644 index 0000000000000..91e1343406f8b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8fb75dda-c47a-4e34-8ecd-34facf7aad13:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Service Account Deletion v102.0.1","rule_id":"8fb75dda-c47a-4e34-8ecd-34facf7aad13:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a service account is deleted in Google Cloud Platform (GCP). A service account is a special type of account used by an application or a virtual machine (VM) instance, not a person. Applications use service accounts to make authorized API calls, authorized as either the service account itself, or as G Suite or Cloud Identity users through domain-wide delegation. An adversary may delete a service account in order to disrupt their target's business operations.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Service accounts may be deleted by system administrators. Verify that the behavior was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/iam/docs/service-accounts"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.DeleteServiceAccount and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"8fb75dda-c47a-4e34-8ecd-34facf7aad13:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/8fb75dda-c47a-4e34-8ecd-34facf7aad13:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/8fb75dda-c47a-4e34-8ecd-34facf7aad13:102.0.2.json new file mode 100644 index 0000000000000..7b659b93514ba --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/8fb75dda-c47a-4e34-8ecd-34facf7aad13:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Service Account Deletion v102.0.2","rule_id":"8fb75dda-c47a-4e34-8ecd-34facf7aad13:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a service account is deleted in Google Cloud Platform (GCP). A service account is a special type of account used by an application or a virtual machine (VM) instance, not a person. Applications use service accounts to make authorized API calls, authorized as either the service account itself, or as G Suite or Cloud Identity users through domain-wide delegation. An adversary may delete a service account in order to disrupt their target's business operations.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Service accounts may be deleted by system administrators. Verify that the behavior was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/iam/docs/service-accounts"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.DeleteServiceAccount and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"8fb75dda-c47a-4e34-8ecd-34facf7aad13:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/90169566-2260-4824-b8e4-8615c3b4ed52:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/90169566-2260-4824-b8e4-8615c3b4ed52:100.0.0.json new file mode 100644 index 0000000000000..789aa6237cab7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/90169566-2260-4824-b8e4-8615c3b4ed52:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Hping Process Activity v100.0.0","rule_id":"90169566-2260-4824-b8e4-8615c3b4ed52:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Hping ran on a Linux host. Hping is a FOSS command-line packet analyzer and has the ability to construct network packets for a wide variety of network security testing applications, including scanning and firewall auditing.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Normal use of hping is uncommon apart from security testing and research. Use by non-security engineers is very uncommon."],"from":"now-9m","references":["https://en.wikipedia.org/wiki/Hping"],"tags":["Elastic","Host","Linux","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:(hping or hping2 or hping3)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"90169566-2260-4824-b8e4-8615c3b4ed52:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/90169566-2260-4824-b8e4-8615c3b4ed52:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/90169566-2260-4824-b8e4-8615c3b4ed52:100.0.1.json new file mode 100644 index 0000000000000..58ceb0b307cef --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/90169566-2260-4824-b8e4-8615c3b4ed52:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Hping Process Activity v100.0.1","rule_id":"90169566-2260-4824-b8e4-8615c3b4ed52:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Hping ran on a Linux host. Hping is a FOSS command-line packet analyzer and has the ability to construct network packets for a wide variety of network security testing applications, including scanning and firewall auditing.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Normal use of hping is uncommon apart from security testing and research. Use by non-security engineers is very uncommon."],"from":"now-9m","references":["https://en.wikipedia.org/wiki/Hping"],"tags":["Elastic","Host","Linux","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:(hping or hping2 or hping3)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"90169566-2260-4824-b8e4-8615c3b4ed52:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/90169566-2260-4824-b8e4-8615c3b4ed52:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/90169566-2260-4824-b8e4-8615c3b4ed52:100.0.2.json new file mode 100644 index 0000000000000..b26de0c9f7d78 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/90169566-2260-4824-b8e4-8615c3b4ed52:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Hping Process Activity v100.0.2","rule_id":"90169566-2260-4824-b8e4-8615c3b4ed52:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Hping ran on a Linux host. Hping is a FOSS command-line packet analyzer and has the ability to construct network packets for a wide variety of network security testing applications, including scanning and firewall auditing.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Normal use of hping is uncommon apart from security testing and research. Use by non-security engineers is very uncommon."],"from":"now-9m","references":["https://en.wikipedia.org/wiki/Hping"],"tags":["Elastic","Host","Linux","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:(hping or hping2 or hping3)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"90169566-2260-4824-b8e4-8615c3b4ed52:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9055ece6-2689-4224-a0e0-b04881e1f8ad:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9055ece6-2689-4224-a0e0-b04881e1f8ad:101.0.0.json new file mode 100644 index 0000000000000..6f4c4444e19de --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9055ece6-2689-4224-a0e0-b04881e1f8ad:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Deletion of RDS Instance or Cluster v101.0.0","rule_id":"9055ece6-2689-4224-a0e0-b04881e1f8ad:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an Amazon Relational Database Service (RDS) Aurora database cluster, global database cluster, or database instance.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Clusters or instances may be deleted by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Cluster or instance deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/delete-db-cluster.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBCluster.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/delete-global-cluster.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteGlobalCluster.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/delete-db-instance.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBInstance.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:(DeleteDBCluster or DeleteGlobalCluster or DeleteDBInstance)\nand event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"9055ece6-2689-4224-a0e0-b04881e1f8ad:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9055ece6-2689-4224-a0e0-b04881e1f8ad:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9055ece6-2689-4224-a0e0-b04881e1f8ad:101.0.1.json new file mode 100644 index 0000000000000..b49e847d18b83 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9055ece6-2689-4224-a0e0-b04881e1f8ad:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Deletion of RDS Instance or Cluster v101.0.1","rule_id":"9055ece6-2689-4224-a0e0-b04881e1f8ad:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an Amazon Relational Database Service (RDS) Aurora database cluster, global database cluster, or database instance.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Clusters or instances may be deleted by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Cluster or instance deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/delete-db-cluster.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBCluster.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/delete-global-cluster.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteGlobalCluster.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/delete-db-instance.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBInstance.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:(DeleteDBCluster or DeleteGlobalCluster or DeleteDBInstance)\nand event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"9055ece6-2689-4224-a0e0-b04881e1f8ad:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9055ece6-2689-4224-a0e0-b04881e1f8ad:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9055ece6-2689-4224-a0e0-b04881e1f8ad:101.0.2.json new file mode 100644 index 0000000000000..58c0e0b472a7d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9055ece6-2689-4224-a0e0-b04881e1f8ad:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Deletion of RDS Instance or Cluster v101.0.2","rule_id":"9055ece6-2689-4224-a0e0-b04881e1f8ad:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an Amazon Relational Database Service (RDS) Aurora database cluster, global database cluster, or database instance.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Clusters or instances may be deleted by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Cluster or instance deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/delete-db-cluster.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBCluster.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/delete-global-cluster.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteGlobalCluster.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/delete-db-instance.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBInstance.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:(DeleteDBCluster or DeleteGlobalCluster or DeleteDBInstance)\nand event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"9055ece6-2689-4224-a0e0-b04881e1f8ad:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9092cd6c-650f-4fa3-8a8a-28256c7489c9:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9092cd6c-650f-4fa3-8a8a-28256c7489c9:100.0.0.json new file mode 100644 index 0000000000000..f429fbdf521b3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9092cd6c-650f-4fa3-8a8a-28256c7489c9:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Keychain Password Retrieval via Command Line v100.0.0","rule_id":"9092cd6c-650f-4fa3-8a8a-28256c7489c9:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may collect keychain storage data from a system to in order to acquire credentials. Keychains are the built-in way for macOS to keep track of users' passwords and credentials for many services and features, including Wi-Fi and website passwords, secure notes, certificates, and Kerberos.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Applications for password management."],"from":"now-9m","references":["https://www.netmeister.org/blog/keychain-passwords.html","https://github.com/priyankchheda/chrome_password_grabber/blob/master/chrome.py","https://ss64.com/osx/security.html","https://www.intezer.com/blog/research/operation-electrorat-attacker-creates-fake-companies-to-drain-your-crypto-wallets/"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.001","name":"Keychain","reference":"https://attack.mitre.org/techniques/T1555/001/"}]},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.003","name":"Credentials from Web Browsers","reference":"https://attack.mitre.org/techniques/T1555/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"security\" and process.args : \"-wa\" and process.args : (\"find-generic-password\", \"find-internet-password\") and\n process.args : (\"Chrome*\", \"Chromium\", \"Opera\", \"Safari*\", \"Brave\", \"Microsoft Edge\", \"Edge\", \"Firefox*\") and\n not process.parent.executable : \"/Applications/Keeper Password Manager.app/Contents/Frameworks/Keeper Password Manager Helper*/Contents/MacOS/Keeper Password Manager Helper*\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9092cd6c-650f-4fa3-8a8a-28256c7489c9:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9092cd6c-650f-4fa3-8a8a-28256c7489c9:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9092cd6c-650f-4fa3-8a8a-28256c7489c9:100.0.1.json new file mode 100644 index 0000000000000..cdb6d217a9ebd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9092cd6c-650f-4fa3-8a8a-28256c7489c9:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Keychain Password Retrieval via Command Line v100.0.1","rule_id":"9092cd6c-650f-4fa3-8a8a-28256c7489c9:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may collect keychain storage data from a system to in order to acquire credentials. Keychains are the built-in way for macOS to keep track of users' passwords and credentials for many services and features, including Wi-Fi and website passwords, secure notes, certificates, and Kerberos.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Applications for password management."],"from":"now-9m","references":["https://www.netmeister.org/blog/keychain-passwords.html","https://github.com/priyankchheda/chrome_password_grabber/blob/master/chrome.py","https://ss64.com/osx/security.html","https://www.intezer.com/blog/research/operation-electrorat-attacker-creates-fake-companies-to-drain-your-crypto-wallets/"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.001","name":"Keychain","reference":"https://attack.mitre.org/techniques/T1555/001/"}]},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.003","name":"Credentials from Web Browsers","reference":"https://attack.mitre.org/techniques/T1555/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"security\" and process.args : \"-wa\" and process.args : (\"find-generic-password\", \"find-internet-password\") and\n process.args : (\"Chrome*\", \"Chromium\", \"Opera\", \"Safari*\", \"Brave\", \"Microsoft Edge\", \"Edge\", \"Firefox*\") and\n not process.parent.executable : \"/Applications/Keeper Password Manager.app/Contents/Frameworks/Keeper Password Manager Helper*/Contents/MacOS/Keeper Password Manager Helper*\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9092cd6c-650f-4fa3-8a8a-28256c7489c9:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9092cd6c-650f-4fa3-8a8a-28256c7489c9:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9092cd6c-650f-4fa3-8a8a-28256c7489c9:100.0.2.json new file mode 100644 index 0000000000000..ea839ae6e6b74 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9092cd6c-650f-4fa3-8a8a-28256c7489c9:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Keychain Password Retrieval via Command Line v100.0.2","rule_id":"9092cd6c-650f-4fa3-8a8a-28256c7489c9:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may collect keychain storage data from a system to in order to acquire credentials. Keychains are the built-in way for macOS to keep track of users' passwords and credentials for many services and features, including Wi-Fi and website passwords, secure notes, certificates, and Kerberos.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Applications for password management."],"from":"now-9m","references":["https://www.netmeister.org/blog/keychain-passwords.html","https://github.com/priyankchheda/chrome_password_grabber/blob/master/chrome.py","https://ss64.com/osx/security.html","https://www.intezer.com/blog/research/operation-electrorat-attacker-creates-fake-companies-to-drain-your-crypto-wallets/"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.001","name":"Keychain","reference":"https://attack.mitre.org/techniques/T1555/001/"}]},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.003","name":"Credentials from Web Browsers","reference":"https://attack.mitre.org/techniques/T1555/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"security\" and process.args : \"-wa\" and process.args : (\"find-generic-password\", \"find-internet-password\") and\n process.args : (\"Chrome*\", \"Chromium\", \"Opera\", \"Safari*\", \"Brave\", \"Microsoft Edge\", \"Edge\", \"Firefox*\") and\n not process.parent.executable : \"/Applications/Keeper Password Manager.app/Contents/Frameworks/Keeper Password Manager Helper*/Contents/MacOS/Keeper Password Manager Helper*\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9092cd6c-650f-4fa3-8a8a-28256c7489c9:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9180ffdf-f3d0-4db3-bf66-7a14bcff71b8:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9180ffdf-f3d0-4db3-bf66-7a14bcff71b8:102.0.0.json new file mode 100644 index 0000000000000..357ae4dc4febb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9180ffdf-f3d0-4db3-bf66-7a14bcff71b8:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Virtual Private Cloud Route Creation v102.0.0","rule_id":"9180ffdf-f3d0-4db3-bf66-7a14bcff71b8:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a virtual private cloud (VPC) route is created in Google Cloud Platform (GCP). Google Cloud routes define the paths that network traffic takes from a virtual machine (VM) instance to other destinations. These destinations can be inside a Google VPC network or outside it. An adversary may create a route in order to impact the flow of network traffic in their target's cloud environment.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Virtual Private Cloud routes may be created by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/routes","https://cloud.google.com/vpc/docs/using-routes"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:(v*.compute.routes.insert or \"beta.compute.routes.insert\")\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"9180ffdf-f3d0-4db3-bf66-7a14bcff71b8:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9180ffdf-f3d0-4db3-bf66-7a14bcff71b8:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9180ffdf-f3d0-4db3-bf66-7a14bcff71b8:102.0.1.json new file mode 100644 index 0000000000000..f9dd74be7a5c5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9180ffdf-f3d0-4db3-bf66-7a14bcff71b8:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Virtual Private Cloud Route Creation v102.0.1","rule_id":"9180ffdf-f3d0-4db3-bf66-7a14bcff71b8:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a virtual private cloud (VPC) route is created in Google Cloud Platform (GCP). Google Cloud routes define the paths that network traffic takes from a virtual machine (VM) instance to other destinations. These destinations can be inside a Google VPC network or outside it. An adversary may create a route in order to impact the flow of network traffic in their target's cloud environment.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Virtual Private Cloud routes may be created by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/routes","https://cloud.google.com/vpc/docs/using-routes"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:(v*.compute.routes.insert or \"beta.compute.routes.insert\")\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"9180ffdf-f3d0-4db3-bf66-7a14bcff71b8:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9180ffdf-f3d0-4db3-bf66-7a14bcff71b8:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9180ffdf-f3d0-4db3-bf66-7a14bcff71b8:102.0.2.json new file mode 100644 index 0000000000000..d0bd20493c3f5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9180ffdf-f3d0-4db3-bf66-7a14bcff71b8:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Virtual Private Cloud Route Creation v102.0.2","rule_id":"9180ffdf-f3d0-4db3-bf66-7a14bcff71b8:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a virtual private cloud (VPC) route is created in Google Cloud Platform (GCP). Google Cloud routes define the paths that network traffic takes from a virtual machine (VM) instance to other destinations. These destinations can be inside a Google VPC network or outside it. An adversary may create a route in order to impact the flow of network traffic in their target's cloud environment.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Virtual Private Cloud routes may be created by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/routes","https://cloud.google.com/vpc/docs/using-routes"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:(v*.compute.routes.insert or \"beta.compute.routes.insert\")\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"9180ffdf-f3d0-4db3-bf66-7a14bcff71b8:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/91d04cd4-47a9-4334-ab14-084abe274d49:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/91d04cd4-47a9-4334-ab14-084abe274d49:101.0.0.json new file mode 100644 index 0000000000000..4fb6b32eb8ea0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/91d04cd4-47a9-4334-ab14-084abe274d49:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS WAF Access Control List Deletion v101.0.0","rule_id":"91d04cd4-47a9-4334-ab14-084abe274d49:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a specified AWS Web Application Firewall (WAF) access control list.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Firewall ACL's may be deleted by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Web ACL deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/waf-regional/delete-web-acl.html","https://docs.aws.amazon.com/waf/latest/APIReference/API_wafRegional_DeleteWebACL.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.action:DeleteWebACL and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"91d04cd4-47a9-4334-ab14-084abe274d49:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/91d04cd4-47a9-4334-ab14-084abe274d49:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/91d04cd4-47a9-4334-ab14-084abe274d49:101.0.1.json new file mode 100644 index 0000000000000..a5eab21211527 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/91d04cd4-47a9-4334-ab14-084abe274d49:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS WAF Access Control List Deletion v101.0.1","rule_id":"91d04cd4-47a9-4334-ab14-084abe274d49:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a specified AWS Web Application Firewall (WAF) access control list.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Firewall ACL's may be deleted by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Web ACL deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/waf-regional/delete-web-acl.html","https://docs.aws.amazon.com/waf/latest/APIReference/API_wafRegional_DeleteWebACL.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.action:DeleteWebACL and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"91d04cd4-47a9-4334-ab14-084abe274d49:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/91d04cd4-47a9-4334-ab14-084abe274d49:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/91d04cd4-47a9-4334-ab14-084abe274d49:101.0.2.json new file mode 100644 index 0000000000000..e01d453e525e0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/91d04cd4-47a9-4334-ab14-084abe274d49:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS WAF Access Control List Deletion v101.0.2","rule_id":"91d04cd4-47a9-4334-ab14-084abe274d49:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a specified AWS Web Application Firewall (WAF) access control list.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Firewall ACL's may be deleted by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Web ACL deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/waf-regional/delete-web-acl.html","https://docs.aws.amazon.com/waf/latest/APIReference/API_wafRegional_DeleteWebACL.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.action:DeleteWebACL and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"91d04cd4-47a9-4334-ab14-084abe274d49:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8d77-07827ac4cee0:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8d77-07827ac4cee0:100.0.0.json new file mode 100644 index 0000000000000..fa950c8b005d3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8d77-07827ac4cee0:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Web User Agent v100.0.0","rule_id":"91f02f01-969f-4167-8d77-07827ac4cee0:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a rare and unusual user agent indicating web browsing activity by an unusual process other than a web browser. This can be due to persistence, command-and-control, or exfiltration activity. Uncommon user agents coming from remote sources to local destinations are often the result of scanners, bots, and web scrapers, which are part of common Internet background traffic. Much of this is noise, but more targeted attacks on websites using tools like Burp or SQLmap can sometimes be discovered by spotting uncommon user agents. Uncommon user agents in traffic from local sources to remote destinations can be any number of things, including harmless programs like weather monitoring or stock-trading programs. However, uncommon user agents from local sources can also be due to malware or scanning activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Web activity that is uncommon, like security scans, may trigger this alert and may need to be excluded. A new or rarely used program that calls web services may trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.001","name":"Web Protocols","reference":"https://attack.mitre.org/techniques/T1071/001/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":"packetbeat_rare_user_agent","type":"machine_learning"},"id":"91f02f01-969f-4167-8d77-07827ac4cee0:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8d77-07827ac4cee0:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8d77-07827ac4cee0:100.0.1.json new file mode 100644 index 0000000000000..e962b46a5557c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8d77-07827ac4cee0:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Web User Agent v100.0.1","rule_id":"91f02f01-969f-4167-8d77-07827ac4cee0:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a rare and unusual user agent indicating web browsing activity by an unusual process other than a web browser. This can be due to persistence, command-and-control, or exfiltration activity. Uncommon user agents coming from remote sources to local destinations are often the result of scanners, bots, and web scrapers, which are part of common Internet background traffic. Much of this is noise, but more targeted attacks on websites using tools like Burp or SQLmap can sometimes be discovered by spotting uncommon user agents. Uncommon user agents in traffic from local sources to remote destinations can be any number of things, including harmless programs like weather monitoring or stock-trading programs. However, uncommon user agents from local sources can also be due to malware or scanning activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Web activity that is uncommon, like security scans, may trigger this alert and may need to be excluded. A new or rarely used program that calls web services may trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.001","name":"Web Protocols","reference":"https://attack.mitre.org/techniques/T1071/001/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":"packetbeat_rare_user_agent","type":"machine_learning"},"id":"91f02f01-969f-4167-8d77-07827ac4cee0:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8d77-07827ac4cee0:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8d77-07827ac4cee0:100.0.2.json new file mode 100644 index 0000000000000..c133b6be423a3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8d77-07827ac4cee0:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Web User Agent v100.0.2","rule_id":"91f02f01-969f-4167-8d77-07827ac4cee0:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a rare and unusual user agent indicating web browsing activity by an unusual process other than a web browser. This can be due to persistence, command-and-control, or exfiltration activity. Uncommon user agents coming from remote sources to local destinations are often the result of scanners, bots, and web scrapers, which are part of common Internet background traffic. Much of this is noise, but more targeted attacks on websites using tools like Burp or SQLmap can sometimes be discovered by spotting uncommon user agents. Uncommon user agents in traffic from local sources to remote destinations can be any number of things, including harmless programs like weather monitoring or stock-trading programs. However, uncommon user agents from local sources can also be due to malware or scanning activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Web activity that is uncommon, like security scans, may trigger this alert and may need to be excluded. A new or rarely used program that calls web services may trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.001","name":"Web Protocols","reference":"https://attack.mitre.org/techniques/T1071/001/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":"packetbeat_rare_user_agent","type":"machine_learning"},"id":"91f02f01-969f-4167-8d77-07827ac4cee0:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8f55-07827ac3acc9:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8f55-07827ac3acc9:100.0.0.json new file mode 100644 index 0000000000000..abef6571936da --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8f55-07827ac3acc9:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Web Request v100.0.0","rule_id":"91f02f01-969f-4167-8f55-07827ac3acc9:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a rare and unusual URL that indicates unusual web browsing activity. This can be due to initial access, persistence, command-and-control, or exfiltration activity. For example, in a strategic web compromise or watering hole attack, when a trusted website is compromised to target a particular sector or organization, targeted users may receive emails with uncommon URLs for trusted websites. These URLs can be used to download and run a payload. When malware is already running, it may send requests to uncommon URLs on trusted websites the malware uses for command-and-control communication. When rare URLs are observed being requested for a local web server by a remote source, these can be due to web scanning, enumeration or attack traffic, or they can be due to bots and web scrapers which are part of common Internet background traffic.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Web activity that occurs rarely in small quantities can trigger this alert. Possible examples are browsing technical support or vendor URLs that are used very sparsely. A user who visits a new and unique web destination may trigger this alert when the activity is sparse. Web applications that generate URLs unique to a transaction may trigger this when they are used sparsely. Web domains can be excluded in cases such as these."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.001","name":"Web Protocols","reference":"https://attack.mitre.org/techniques/T1071/001/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":"packetbeat_rare_urls","type":"machine_learning"},"id":"91f02f01-969f-4167-8f55-07827ac3acc9:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8f55-07827ac3acc9:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8f55-07827ac3acc9:100.0.1.json new file mode 100644 index 0000000000000..7d1eb32a6f527 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8f55-07827ac3acc9:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Web Request v100.0.1","rule_id":"91f02f01-969f-4167-8f55-07827ac3acc9:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a rare and unusual URL that indicates unusual web browsing activity. This can be due to initial access, persistence, command-and-control, or exfiltration activity. For example, in a strategic web compromise or watering hole attack, when a trusted website is compromised to target a particular sector or organization, targeted users may receive emails with uncommon URLs for trusted websites. These URLs can be used to download and run a payload. When malware is already running, it may send requests to uncommon URLs on trusted websites the malware uses for command-and-control communication. When rare URLs are observed being requested for a local web server by a remote source, these can be due to web scanning, enumeration or attack traffic, or they can be due to bots and web scrapers which are part of common Internet background traffic.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Web activity that occurs rarely in small quantities can trigger this alert. Possible examples are browsing technical support or vendor URLs that are used very sparsely. A user who visits a new and unique web destination may trigger this alert when the activity is sparse. Web applications that generate URLs unique to a transaction may trigger this when they are used sparsely. Web domains can be excluded in cases such as these."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.001","name":"Web Protocols","reference":"https://attack.mitre.org/techniques/T1071/001/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":"packetbeat_rare_urls","type":"machine_learning"},"id":"91f02f01-969f-4167-8f55-07827ac3acc9:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8f55-07827ac3acc9:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8f55-07827ac3acc9:100.0.2.json new file mode 100644 index 0000000000000..277b1e39f3741 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8f55-07827ac3acc9:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Web Request v100.0.2","rule_id":"91f02f01-969f-4167-8f55-07827ac3acc9:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a rare and unusual URL that indicates unusual web browsing activity. This can be due to initial access, persistence, command-and-control, or exfiltration activity. For example, in a strategic web compromise or watering hole attack, when a trusted website is compromised to target a particular sector or organization, targeted users may receive emails with uncommon URLs for trusted websites. These URLs can be used to download and run a payload. When malware is already running, it may send requests to uncommon URLs on trusted websites the malware uses for command-and-control communication. When rare URLs are observed being requested for a local web server by a remote source, these can be due to web scanning, enumeration or attack traffic, or they can be due to bots and web scrapers which are part of common Internet background traffic.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Web activity that occurs rarely in small quantities can trigger this alert. Possible examples are browsing technical support or vendor URLs that are used very sparsely. A user who visits a new and unique web destination may trigger this alert when the activity is sparse. Web applications that generate URLs unique to a transaction may trigger this when they are used sparsely. Web domains can be excluded in cases such as these."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.001","name":"Web Protocols","reference":"https://attack.mitre.org/techniques/T1071/001/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":"packetbeat_rare_urls","type":"machine_learning"},"id":"91f02f01-969f-4167-8f55-07827ac3acc9:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8f66-07827ac3bdd9:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8f66-07827ac3bdd9:100.0.0.json new file mode 100644 index 0000000000000..3adb8ea7d3a8a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8f66-07827ac3bdd9:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"DNS Tunneling v100.0.0","rule_id":"91f02f01-969f-4167-8f66-07827ac3bdd9:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected unusually large numbers of DNS queries for a single top-level DNS domain, which is often used for DNS tunneling. DNS tunneling can be used for command-and-control, persistence, or data exfiltration activity. For example, dnscat tends to generate many DNS questions for a top-level domain as it uses the DNS protocol to tunnel data.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["DNS domains that use large numbers of child domains, such as software or content distribution networks, can trigger this alert and such parent domains can be excluded."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1572","name":"Protocol Tunneling","reference":"https://attack.mitre.org/techniques/T1572/"}]}],"anomaly_threshold":50,"machine_learning_job_id":"packetbeat_dns_tunneling","type":"machine_learning"},"id":"91f02f01-969f-4167-8f66-07827ac3bdd9:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8f66-07827ac3bdd9:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8f66-07827ac3bdd9:100.0.1.json new file mode 100644 index 0000000000000..689198568ae1d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8f66-07827ac3bdd9:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"DNS Tunneling v100.0.1","rule_id":"91f02f01-969f-4167-8f66-07827ac3bdd9:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected unusually large numbers of DNS queries for a single top-level DNS domain, which is often used for DNS tunneling. DNS tunneling can be used for command-and-control, persistence, or data exfiltration activity. For example, dnscat tends to generate many DNS questions for a top-level domain as it uses the DNS protocol to tunnel data.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["DNS domains that use large numbers of child domains, such as software or content distribution networks, can trigger this alert and such parent domains can be excluded."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1572","name":"Protocol Tunneling","reference":"https://attack.mitre.org/techniques/T1572/"}]}],"anomaly_threshold":50,"machine_learning_job_id":"packetbeat_dns_tunneling","type":"machine_learning"},"id":"91f02f01-969f-4167-8f66-07827ac3bdd9:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8f66-07827ac3bdd9:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8f66-07827ac3bdd9:100.0.2.json new file mode 100644 index 0000000000000..c071464d0a852 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/91f02f01-969f-4167-8f66-07827ac3bdd9:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"DNS Tunneling v100.0.2","rule_id":"91f02f01-969f-4167-8f66-07827ac3bdd9:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected unusually large numbers of DNS queries for a single top-level DNS domain, which is often used for DNS tunneling. DNS tunneling can be used for command-and-control, persistence, or data exfiltration activity. For example, dnscat tends to generate many DNS questions for a top-level domain as it uses the DNS protocol to tunnel data.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["DNS domains that use large numbers of child domains, such as software or content distribution networks, can trigger this alert and such parent domains can be excluded."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1572","name":"Protocol Tunneling","reference":"https://attack.mitre.org/techniques/T1572/"}]}],"anomaly_threshold":50,"machine_learning_job_id":"packetbeat_dns_tunneling","type":"machine_learning"},"id":"91f02f01-969f-4167-8f66-07827ac3bdd9:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/92a6faf5-78ec-4e25-bea1-73bacc9b59d9:2.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/92a6faf5-78ec-4e25-bea1-73bacc9b59d9:2.0.0.json new file mode 100644 index 0000000000000..52c616fe202ac --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/92a6faf5-78ec-4e25-bea1-73bacc9b59d9:2.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"A scheduled task was created v2.0.0","rule_id":"92a6faf5-78ec-4e25-bea1-73bacc9b59d9:2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Indicates the creation of a scheduled task using Windows event logs. Adversaries can use these to establish persistence, move laterally, and/or escalate privileges.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4698"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"iam where event.action == \"scheduled-task-created\" and\n\n /* excluding tasks created by the computer account */\n not user.name : \"*$\" and\n\n /* TaskContent is not parsed, exclude by full taskname noisy ones */\n not winlog.event_data.TaskName :\n (\"\\\\OneDrive Standalone Update Task-S-1-5-21*\",\n \"\\\\OneDrive Standalone Update Task-S-1-12-1-*\",\n \"\\\\Hewlett-Packard\\\\HP Web Products Detection\",\n \"\\\\Hewlett-Packard\\\\HPDeviceCheck\")\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TaskName","type":"unknown"}]},"id":"92a6faf5-78ec-4e25-bea1-73bacc9b59d9:2.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/92a6faf5-78ec-4e25-bea1-73bacc9b59d9:2.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/92a6faf5-78ec-4e25-bea1-73bacc9b59d9:2.0.1.json new file mode 100644 index 0000000000000..614497d517f91 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/92a6faf5-78ec-4e25-bea1-73bacc9b59d9:2.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"A scheduled task was created v2.0.1","rule_id":"92a6faf5-78ec-4e25-bea1-73bacc9b59d9:2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Indicates the creation of a scheduled task using Windows event logs. Adversaries can use these to establish persistence, move laterally, and/or escalate privileges.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4698"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"iam where event.action == \"scheduled-task-created\" and\n\n /* excluding tasks created by the computer account */\n not user.name : \"*$\" and\n\n /* TaskContent is not parsed, exclude by full taskname noisy ones */\n not winlog.event_data.TaskName :\n (\"\\\\OneDrive Standalone Update Task-S-1-5-21*\",\n \"\\\\OneDrive Standalone Update Task-S-1-12-1-*\",\n \"\\\\Hewlett-Packard\\\\HP Web Products Detection\",\n \"\\\\Hewlett-Packard\\\\HPDeviceCheck\")\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TaskName","type":"unknown"}]},"id":"92a6faf5-78ec-4e25-bea1-73bacc9b59d9:2.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/92a6faf5-78ec-4e25-bea1-73bacc9b59d9:2.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/92a6faf5-78ec-4e25-bea1-73bacc9b59d9:2.0.2.json new file mode 100644 index 0000000000000..6f1342dc6a919 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/92a6faf5-78ec-4e25-bea1-73bacc9b59d9:2.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"A scheduled task was created v2.0.2","rule_id":"92a6faf5-78ec-4e25-bea1-73bacc9b59d9:2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Indicates the creation of a scheduled task using Windows event logs. Adversaries can use these to establish persistence, move laterally, and/or escalate privileges.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4698"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"iam where event.action == \"scheduled-task-created\" and\n\n /* excluding tasks created by the computer account */\n not user.name : \"*$\" and\n\n /* TaskContent is not parsed, exclude by full taskname noisy ones */\n not winlog.event_data.TaskName :\n (\"\\\\OneDrive Standalone Update Task-S-1-5-21*\",\n \"\\\\OneDrive Standalone Update Task-S-1-12-1-*\",\n \"\\\\Hewlett-Packard\\\\HP Web Products Detection\",\n \"\\\\Hewlett-Packard\\\\HPDeviceCheck\")\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TaskName","type":"unknown"}]},"id":"92a6faf5-78ec-4e25-bea1-73bacc9b59d9:2.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/93075852-b0f5-4b8b-89c3-a226efae5726:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/93075852-b0f5-4b8b-89c3-a226efae5726:101.0.0.json new file mode 100644 index 0000000000000..eadfbbee42b57 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/93075852-b0f5-4b8b-89c3-a226efae5726:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Security Token Service (STS) AssumeRole Usage v101.0.0","rule_id":"93075852-b0f5-4b8b-89c3-a226efae5726:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of AssumeRole. AssumeRole returns a set of temporary security credentials that can be used to access AWS resources. An adversary could use those credentials to move laterally and escalate privileges.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Automated processes that use Terraform may lead to false positives."],"references":["https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.001","name":"Application Access Token","reference":"https://attack.mitre.org/techniques/T1550/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:sts.amazonaws.com and event.action:AssumedRole and\naws.cloudtrail.user_identity.session_context.session_issuer.type:Role and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.user_identity.session_context.session_issuer.type","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"93075852-b0f5-4b8b-89c3-a226efae5726:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/93075852-b0f5-4b8b-89c3-a226efae5726:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/93075852-b0f5-4b8b-89c3-a226efae5726:101.0.1.json new file mode 100644 index 0000000000000..324cbbe02cb83 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/93075852-b0f5-4b8b-89c3-a226efae5726:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Security Token Service (STS) AssumeRole Usage v101.0.1","rule_id":"93075852-b0f5-4b8b-89c3-a226efae5726:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of AssumeRole. AssumeRole returns a set of temporary security credentials that can be used to access AWS resources. An adversary could use those credentials to move laterally and escalate privileges.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Automated processes that use Terraform may lead to false positives."],"references":["https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.001","name":"Application Access Token","reference":"https://attack.mitre.org/techniques/T1550/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:sts.amazonaws.com and event.action:AssumedRole and\naws.cloudtrail.user_identity.session_context.session_issuer.type:Role and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.user_identity.session_context.session_issuer.type","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"93075852-b0f5-4b8b-89c3-a226efae5726:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/93075852-b0f5-4b8b-89c3-a226efae5726:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/93075852-b0f5-4b8b-89c3-a226efae5726:101.0.2.json new file mode 100644 index 0000000000000..be6592d5faa48 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/93075852-b0f5-4b8b-89c3-a226efae5726:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Security Token Service (STS) AssumeRole Usage v101.0.2","rule_id":"93075852-b0f5-4b8b-89c3-a226efae5726:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of AssumeRole. AssumeRole returns a set of temporary security credentials that can be used to access AWS resources. An adversary could use those credentials to move laterally and escalate privileges.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Automated processes that use Terraform may lead to false positives."],"references":["https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.001","name":"Application Access Token","reference":"https://attack.mitre.org/techniques/T1550/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:sts.amazonaws.com and event.action:AssumedRole and\naws.cloudtrail.user_identity.session_context.session_issuer.type:Role and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.user_identity.session_context.session_issuer.type","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"93075852-b0f5-4b8b-89c3-a226efae5726:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/931e25a5-0f5e-4ae0-ba0d-9e94eff7e3a4:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/931e25a5-0f5e-4ae0-ba0d-9e94eff7e3a4:100.0.0.json new file mode 100644 index 0000000000000..af49077c5d793 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/931e25a5-0f5e-4ae0-ba0d-9e94eff7e3a4:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Sudoers File Modification v100.0.0","rule_id":"931e25a5-0f5e-4ae0-ba0d-9e94eff7e3a4:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A sudoers file specifies the commands that users or groups can run and from which terminals. Adversaries can take advantage of these configurations to execute commands as other users or spawn processes with higher privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.003","name":"Sudo and Sudo Caching","reference":"https://attack.mitre.org/techniques/T1548/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and event.type:change and file.path:(/etc/sudoers* or /private/etc/sudoers*)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}]},"id":"931e25a5-0f5e-4ae0-ba0d-9e94eff7e3a4:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/931e25a5-0f5e-4ae0-ba0d-9e94eff7e3a4:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/931e25a5-0f5e-4ae0-ba0d-9e94eff7e3a4:100.0.1.json new file mode 100644 index 0000000000000..c09faef19b25d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/931e25a5-0f5e-4ae0-ba0d-9e94eff7e3a4:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Sudoers File Modification v100.0.1","rule_id":"931e25a5-0f5e-4ae0-ba0d-9e94eff7e3a4:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A sudoers file specifies the commands that users or groups can run and from which terminals. Adversaries can take advantage of these configurations to execute commands as other users or spawn processes with higher privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.003","name":"Sudo and Sudo Caching","reference":"https://attack.mitre.org/techniques/T1548/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and event.type:change and file.path:(/etc/sudoers* or /private/etc/sudoers*)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}]},"id":"931e25a5-0f5e-4ae0-ba0d-9e94eff7e3a4:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/931e25a5-0f5e-4ae0-ba0d-9e94eff7e3a4:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/931e25a5-0f5e-4ae0-ba0d-9e94eff7e3a4:100.0.2.json new file mode 100644 index 0000000000000..59a61504b9222 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/931e25a5-0f5e-4ae0-ba0d-9e94eff7e3a4:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Sudoers File Modification v100.0.2","rule_id":"931e25a5-0f5e-4ae0-ba0d-9e94eff7e3a4:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A sudoers file specifies the commands that users or groups can run and from which terminals. Adversaries can take advantage of these configurations to execute commands as other users or spawn processes with higher privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.003","name":"Sudo and Sudo Caching","reference":"https://attack.mitre.org/techniques/T1548/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and event.type:change and file.path:(/etc/sudoers* or /private/etc/sudoers*)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}]},"id":"931e25a5-0f5e-4ae0-ba0d-9e94eff7e3a4:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9395fd2c-9947-4472-86ef-4aceb2f7e872:103.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9395fd2c-9947-4472-86ef-4aceb2f7e872:103.0.0.json new file mode 100644 index 0000000000000..3d46d065dac66 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9395fd2c-9947-4472-86ef-4aceb2f7e872:103.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS VPC Flow Logs Deletion v103.0.0","rule_id":"9395fd2c-9947-4472-86ef-4aceb2f7e872:103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of one or more flow logs in AWS Elastic Compute Cloud (EC2). An adversary may delete flow logs in an attempt to evade defenses.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS VPC Flow Logs Deletion\n\nVPC Flow Logs is an AWS feature that enables you to capture information about the IP traffic going to and from network\ninterfaces in your virtual private cloud (VPC). Flow log data can be published to Amazon CloudWatch Logs or Amazon S3.\n\nThis rule identifies the deletion of VPC flow logs using the API `DeleteFlowLogs` action. Attackers can do this to cover\ntheir tracks and impact security monitoring that relies on this source.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n- Administrators may rotate these logs after a certain period as part of their retention policy or after importing them\nto a SIEM.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Flow log deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/delete-flow-logs.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteFlowLogs.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:DeleteFlowLogs and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"9395fd2c-9947-4472-86ef-4aceb2f7e872:103.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9395fd2c-9947-4472-86ef-4aceb2f7e872:103.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9395fd2c-9947-4472-86ef-4aceb2f7e872:103.0.1.json new file mode 100644 index 0000000000000..6d43f58fe3a23 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9395fd2c-9947-4472-86ef-4aceb2f7e872:103.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS VPC Flow Logs Deletion v103.0.1","rule_id":"9395fd2c-9947-4472-86ef-4aceb2f7e872:103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of one or more flow logs in AWS Elastic Compute Cloud (EC2). An adversary may delete flow logs in an attempt to evade defenses.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS VPC Flow Logs Deletion\n\nVPC Flow Logs is an AWS feature that enables you to capture information about the IP traffic going to and from network\ninterfaces in your virtual private cloud (VPC). Flow log data can be published to Amazon CloudWatch Logs or Amazon S3.\n\nThis rule identifies the deletion of VPC flow logs using the API `DeleteFlowLogs` action. Attackers can do this to cover\ntheir tracks and impact security monitoring that relies on this source.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n- Administrators may rotate these logs after a certain period as part of their retention policy or after importing them\nto a SIEM.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Flow log deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/delete-flow-logs.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteFlowLogs.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:DeleteFlowLogs and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"9395fd2c-9947-4472-86ef-4aceb2f7e872:103.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9395fd2c-9947-4472-86ef-4aceb2f7e872:103.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9395fd2c-9947-4472-86ef-4aceb2f7e872:103.0.2.json new file mode 100644 index 0000000000000..98a1aa6fde96f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9395fd2c-9947-4472-86ef-4aceb2f7e872:103.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS VPC Flow Logs Deletion v103.0.2","rule_id":"9395fd2c-9947-4472-86ef-4aceb2f7e872:103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of one or more flow logs in AWS Elastic Compute Cloud (EC2). An adversary may delete flow logs in an attempt to evade defenses.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS VPC Flow Logs Deletion\n\nVPC Flow Logs is an AWS feature that enables you to capture information about the IP traffic going to and from network\ninterfaces in your virtual private cloud (VPC). Flow log data can be published to Amazon CloudWatch Logs or Amazon S3.\n\nThis rule identifies the deletion of VPC flow logs using the API `DeleteFlowLogs` action. Attackers can do this to cover\ntheir tracks and impact security monitoring that relies on this source.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n- Administrators may rotate these logs after a certain period as part of their retention policy or after importing them\nto a SIEM.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Flow log deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/delete-flow-logs.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteFlowLogs.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:DeleteFlowLogs and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"9395fd2c-9947-4472-86ef-4aceb2f7e872:103.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/93b22c0a-06a0-4131-b830-b10d5e166ff4:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/93b22c0a-06a0-4131-b830-b10d5e166ff4:102.0.0.json new file mode 100644 index 0000000000000..bdb8bb2f17b27 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/93b22c0a-06a0-4131-b830-b10d5e166ff4:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious SolarWinds Child Process v102.0.0","rule_id":"93b22c0a-06a0-4131-b830-b10d5e166ff4:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A suspicious SolarWinds child process was detected, which may indicate an attempt to execute malicious programs.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted SolarWinds child processes, verify process details such as network connections and file writes."],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2020/12/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor.html","https://github.com/mandiant/sunburst_countermeasures/blob/main/rules/SUNBURST/hxioc/SUNBURST%20SUSPICIOUS%20CHILD%20PROCESSES%20(METHODOLOGY).ioc"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1195","name":"Supply Chain Compromise","reference":"https://attack.mitre.org/techniques/T1195/","subtechnique":[{"id":"T1195.002","name":"Compromise Software Supply Chain","reference":"https://attack.mitre.org/techniques/T1195/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name: (\"SolarWinds.BusinessLayerHost.exe\", \"SolarWinds.BusinessLayerHostx64.exe\") and\n not process.name : (\n \"APMServiceControl*.exe\",\n \"ExportToPDFCmd*.Exe\",\n \"SolarWinds.Credentials.Orion.WebApi*.exe\",\n \"SolarWinds.Orion.Topology.Calculator*.exe\",\n \"Database-Maint.exe\",\n \"SolarWinds.Orion.ApiPoller.Service.exe\",\n \"WerFault.exe\",\n \"WerMgr.exe\",\n \"SolarWinds.BusinessLayerHost.exe\",\n \"SolarWinds.BusinessLayerHostx64.exe\") and\n not process.executable : (\"?:\\\\Windows\\\\SysWOW64\\\\ARP.EXE\", \"?:\\\\Windows\\\\SysWOW64\\\\lodctr.exe\", \"?:\\\\Windows\\\\SysWOW64\\\\unlodctr.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"93b22c0a-06a0-4131-b830-b10d5e166ff4:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/93b22c0a-06a0-4131-b830-b10d5e166ff4:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/93b22c0a-06a0-4131-b830-b10d5e166ff4:102.0.1.json new file mode 100644 index 0000000000000..9af397dd6736f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/93b22c0a-06a0-4131-b830-b10d5e166ff4:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious SolarWinds Child Process v102.0.1","rule_id":"93b22c0a-06a0-4131-b830-b10d5e166ff4:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A suspicious SolarWinds child process was detected, which may indicate an attempt to execute malicious programs.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted SolarWinds child processes, verify process details such as network connections and file writes."],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2020/12/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor.html","https://github.com/mandiant/sunburst_countermeasures/blob/main/rules/SUNBURST/hxioc/SUNBURST%20SUSPICIOUS%20CHILD%20PROCESSES%20(METHODOLOGY).ioc"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1195","name":"Supply Chain Compromise","reference":"https://attack.mitre.org/techniques/T1195/","subtechnique":[{"id":"T1195.002","name":"Compromise Software Supply Chain","reference":"https://attack.mitre.org/techniques/T1195/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name: (\"SolarWinds.BusinessLayerHost.exe\", \"SolarWinds.BusinessLayerHostx64.exe\") and\n not process.name : (\n \"APMServiceControl*.exe\",\n \"ExportToPDFCmd*.Exe\",\n \"SolarWinds.Credentials.Orion.WebApi*.exe\",\n \"SolarWinds.Orion.Topology.Calculator*.exe\",\n \"Database-Maint.exe\",\n \"SolarWinds.Orion.ApiPoller.Service.exe\",\n \"WerFault.exe\",\n \"WerMgr.exe\",\n \"SolarWinds.BusinessLayerHost.exe\",\n \"SolarWinds.BusinessLayerHostx64.exe\") and\n not process.executable : (\"?:\\\\Windows\\\\SysWOW64\\\\ARP.EXE\", \"?:\\\\Windows\\\\SysWOW64\\\\lodctr.exe\", \"?:\\\\Windows\\\\SysWOW64\\\\unlodctr.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"93b22c0a-06a0-4131-b830-b10d5e166ff4:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/93b22c0a-06a0-4131-b830-b10d5e166ff4:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/93b22c0a-06a0-4131-b830-b10d5e166ff4:102.0.2.json new file mode 100644 index 0000000000000..8bdf1bb982813 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/93b22c0a-06a0-4131-b830-b10d5e166ff4:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious SolarWinds Child Process v102.0.2","rule_id":"93b22c0a-06a0-4131-b830-b10d5e166ff4:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A suspicious SolarWinds child process was detected, which may indicate an attempt to execute malicious programs.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted SolarWinds child processes, verify process details such as network connections and file writes."],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2020/12/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor.html","https://github.com/mandiant/sunburst_countermeasures/blob/main/rules/SUNBURST/hxioc/SUNBURST%20SUSPICIOUS%20CHILD%20PROCESSES%20(METHODOLOGY).ioc"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1195","name":"Supply Chain Compromise","reference":"https://attack.mitre.org/techniques/T1195/","subtechnique":[{"id":"T1195.002","name":"Compromise Software Supply Chain","reference":"https://attack.mitre.org/techniques/T1195/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name: (\"SolarWinds.BusinessLayerHost.exe\", \"SolarWinds.BusinessLayerHostx64.exe\") and\n not process.name : (\n \"APMServiceControl*.exe\",\n \"ExportToPDFCmd*.Exe\",\n \"SolarWinds.Credentials.Orion.WebApi*.exe\",\n \"SolarWinds.Orion.Topology.Calculator*.exe\",\n \"Database-Maint.exe\",\n \"SolarWinds.Orion.ApiPoller.Service.exe\",\n \"WerFault.exe\",\n \"WerMgr.exe\",\n \"SolarWinds.BusinessLayerHost.exe\",\n \"SolarWinds.BusinessLayerHostx64.exe\") and\n not process.executable : (\"?:\\\\Windows\\\\SysWOW64\\\\ARP.EXE\", \"?:\\\\Windows\\\\SysWOW64\\\\lodctr.exe\", \"?:\\\\Windows\\\\SysWOW64\\\\unlodctr.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"93b22c0a-06a0-4131-b830-b10d5e166ff4:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/93c1ce76-494c-4f01-8167-35edfb52f7b1:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/93c1ce76-494c-4f01-8167-35edfb52f7b1:101.0.0.json new file mode 100644 index 0000000000000..62195ed4f4ea5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/93c1ce76-494c-4f01-8167-35edfb52f7b1:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Encoded Executable Stored in the Registry v101.0.0","rule_id":"93c1ce76-494c-4f01-8167-35edfb52f7b1:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies registry write modifications to hide an encoded portable executable. This could be indicative of adversary defense evasion by avoiding the storing of malicious content directly on disk.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1140","name":"Deobfuscate/Decode Files or Information","reference":"https://attack.mitre.org/techniques/T1140/"},{"id":"T1112","name":"Modify Registry","reference":"https://attack.mitre.org/techniques/T1112/"}]}],"language":"eql","query":"registry where\n/* update here with encoding combinations */\n registry.data.strings : \"TVqQAAMAAAAEAAAA*\"\n","type":"eql","index":["logs-endpoint.events.*","endgame-*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"}]},"id":"93c1ce76-494c-4f01-8167-35edfb52f7b1:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/93c1ce76-494c-4f01-8167-35edfb52f7b1:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/93c1ce76-494c-4f01-8167-35edfb52f7b1:101.0.1.json new file mode 100644 index 0000000000000..d7b5f9aad9fe5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/93c1ce76-494c-4f01-8167-35edfb52f7b1:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Encoded Executable Stored in the Registry v101.0.1","rule_id":"93c1ce76-494c-4f01-8167-35edfb52f7b1:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies registry write modifications to hide an encoded portable executable. This could be indicative of adversary defense evasion by avoiding the storing of malicious content directly on disk.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1140","name":"Deobfuscate/Decode Files or Information","reference":"https://attack.mitre.org/techniques/T1140/"},{"id":"T1112","name":"Modify Registry","reference":"https://attack.mitre.org/techniques/T1112/"}]}],"language":"eql","query":"registry where\n/* update here with encoding combinations */\n registry.data.strings : \"TVqQAAMAAAAEAAAA*\"\n","type":"eql","index":["logs-endpoint.events.*","endgame-*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"}]},"id":"93c1ce76-494c-4f01-8167-35edfb52f7b1:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/93c1ce76-494c-4f01-8167-35edfb52f7b1:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/93c1ce76-494c-4f01-8167-35edfb52f7b1:101.0.2.json new file mode 100644 index 0000000000000..51443c0c04872 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/93c1ce76-494c-4f01-8167-35edfb52f7b1:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Encoded Executable Stored in the Registry v101.0.2","rule_id":"93c1ce76-494c-4f01-8167-35edfb52f7b1:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies registry write modifications to hide an encoded portable executable. This could be indicative of adversary defense evasion by avoiding the storing of malicious content directly on disk.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1140","name":"Deobfuscate/Decode Files or Information","reference":"https://attack.mitre.org/techniques/T1140/"},{"id":"T1112","name":"Modify Registry","reference":"https://attack.mitre.org/techniques/T1112/"}]}],"language":"eql","query":"registry where\n/* update here with encoding combinations */\n registry.data.strings : \"TVqQAAMAAAAEAAAA*\"\n","type":"eql","index":["logs-endpoint.events.*","endgame-*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"}]},"id":"93c1ce76-494c-4f01-8167-35edfb52f7b1:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/93e63c3e-4154-4fc6-9f86-b411e0987bbf:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/93e63c3e-4154-4fc6-9f86-b411e0987bbf:101.0.0.json new file mode 100644 index 0000000000000..ed111fadf1daa --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/93e63c3e-4154-4fc6-9f86-b411e0987bbf:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace Admin Role Deletion v101.0.0","rule_id":"93e63c3e-4154-4fc6-9f86-b411e0987bbf:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a custom admin role is deleted. An adversary may delete a custom admin role in order to impact the permissions or capabilities of system administrators.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Google Workspace admin roles may be deleted by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/2406043?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:DELETE_ROLE\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"93e63c3e-4154-4fc6-9f86-b411e0987bbf:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/93e63c3e-4154-4fc6-9f86-b411e0987bbf:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/93e63c3e-4154-4fc6-9f86-b411e0987bbf:101.0.1.json new file mode 100644 index 0000000000000..49ef14f7b871b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/93e63c3e-4154-4fc6-9f86-b411e0987bbf:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace Admin Role Deletion v101.0.1","rule_id":"93e63c3e-4154-4fc6-9f86-b411e0987bbf:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a custom admin role is deleted. An adversary may delete a custom admin role in order to impact the permissions or capabilities of system administrators.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Google Workspace admin roles may be deleted by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/2406043?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:DELETE_ROLE\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"93e63c3e-4154-4fc6-9f86-b411e0987bbf:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/93e63c3e-4154-4fc6-9f86-b411e0987bbf:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/93e63c3e-4154-4fc6-9f86-b411e0987bbf:101.0.2.json new file mode 100644 index 0000000000000..70c3270c4c5f8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/93e63c3e-4154-4fc6-9f86-b411e0987bbf:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace Admin Role Deletion v101.0.2","rule_id":"93e63c3e-4154-4fc6-9f86-b411e0987bbf:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a custom admin role is deleted. An adversary may delete a custom admin role in order to impact the permissions or capabilities of system administrators.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Google Workspace admin roles may be deleted by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/2406043?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:DELETE_ROLE\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"93e63c3e-4154-4fc6-9f86-b411e0987bbf:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/93f47b6f-5728-4004-ba00-625083b3dcb0:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/93f47b6f-5728-4004-ba00-625083b3dcb0:100.0.0.json new file mode 100644 index 0000000000000..f0c880145ca7a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/93f47b6f-5728-4004-ba00-625083b3dcb0:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Modification of Standard Authentication Module or Configuration v100.0.0","rule_id":"93f47b6f-5728-4004-ba00-625083b3dcb0:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may modify the standard authentication module for persistence via patching the normal authorization process or modifying the login configuration to allow unauthorized access or elevate privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted system module updates or allowed Pluggable Authentication Module (PAM) daemon configuration changes."],"from":"now-9m","references":["https://github.com/zephrax/linux-pam-backdoor","https://github.com/eurialo/pambd","http://0x90909090.blogspot.com/2016/06/creating-backdoor-in-pam-in-5-line-of.html","https://www.trendmicro.com/en_us/research/19/i/skidmap-linux-malware-uses-rootkit-capabilities-to-hide-cryptocurrency-mining-payload.html"],"tags":["Elastic","Host","macOS","Linux","Threat Detection","Credential Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and event.type:change and\n (file.name:pam_*.so or file.path:(/etc/pam.d/* or /private/etc/pam.d/*)) and\n process.executable:\n (* and\n not\n (\n /bin/yum or\n \"/usr/sbin/pam-auth-update\" or\n /usr/libexec/packagekitd or\n /usr/bin/dpkg or\n /usr/bin/vim or\n /usr/libexec/xpcproxy or\n /usr/bin/bsdtar or\n /usr/local/bin/brew or\n /usr/bin/rsync or\n /usr/bin/yum or\n /var/lib/docker/*/bin/yum or\n /var/lib/docker/*/bin/dpkg or\n ./merged/var/lib/docker/*/bin/dpkg or\n \"/System/Library/PrivateFrameworks/PackageKit.framework/Versions/A/XPCServices/package_script_service.xpc/Contents/MacOS/package_script_service\"\n )\n ) and\n not file.path:\n (\n /tmp/snap.rootfs_*/pam_*.so or\n /tmp/newroot/lib/*/pam_*.so or\n /private/var/folders/*/T/com.apple.fileprovider.ArchiveService/TemporaryItems/*/lib/security/pam_*.so or\n /tmp/newroot/usr/lib64/security/pam_*.so\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},"id":"93f47b6f-5728-4004-ba00-625083b3dcb0:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/93f47b6f-5728-4004-ba00-625083b3dcb0:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/93f47b6f-5728-4004-ba00-625083b3dcb0:100.0.1.json new file mode 100644 index 0000000000000..596922ff71cca --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/93f47b6f-5728-4004-ba00-625083b3dcb0:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Modification of Standard Authentication Module or Configuration v100.0.1","rule_id":"93f47b6f-5728-4004-ba00-625083b3dcb0:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may modify the standard authentication module for persistence via patching the normal authorization process or modifying the login configuration to allow unauthorized access or elevate privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted system module updates or allowed Pluggable Authentication Module (PAM) daemon configuration changes."],"from":"now-9m","references":["https://github.com/zephrax/linux-pam-backdoor","https://github.com/eurialo/pambd","http://0x90909090.blogspot.com/2016/06/creating-backdoor-in-pam-in-5-line-of.html","https://www.trendmicro.com/en_us/research/19/i/skidmap-linux-malware-uses-rootkit-capabilities-to-hide-cryptocurrency-mining-payload.html"],"tags":["Elastic","Host","macOS","Linux","Threat Detection","Credential Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and event.type:change and\n (file.name:pam_*.so or file.path:(/etc/pam.d/* or /private/etc/pam.d/*)) and\n process.executable:\n (* and\n not\n (\n /bin/yum or\n \"/usr/sbin/pam-auth-update\" or\n /usr/libexec/packagekitd or\n /usr/bin/dpkg or\n /usr/bin/vim or\n /usr/libexec/xpcproxy or\n /usr/bin/bsdtar or\n /usr/local/bin/brew or\n /usr/bin/rsync or\n /usr/bin/yum or\n /var/lib/docker/*/bin/yum or\n /var/lib/docker/*/bin/dpkg or\n ./merged/var/lib/docker/*/bin/dpkg or\n \"/System/Library/PrivateFrameworks/PackageKit.framework/Versions/A/XPCServices/package_script_service.xpc/Contents/MacOS/package_script_service\"\n )\n ) and\n not file.path:\n (\n /tmp/snap.rootfs_*/pam_*.so or\n /tmp/newroot/lib/*/pam_*.so or\n /private/var/folders/*/T/com.apple.fileprovider.ArchiveService/TemporaryItems/*/lib/security/pam_*.so or\n /tmp/newroot/usr/lib64/security/pam_*.so\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},"id":"93f47b6f-5728-4004-ba00-625083b3dcb0:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/93f47b6f-5728-4004-ba00-625083b3dcb0:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/93f47b6f-5728-4004-ba00-625083b3dcb0:100.0.2.json new file mode 100644 index 0000000000000..69b7c406a6456 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/93f47b6f-5728-4004-ba00-625083b3dcb0:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Modification of Standard Authentication Module or Configuration v100.0.2","rule_id":"93f47b6f-5728-4004-ba00-625083b3dcb0:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may modify the standard authentication module for persistence via patching the normal authorization process or modifying the login configuration to allow unauthorized access or elevate privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted system module updates or allowed Pluggable Authentication Module (PAM) daemon configuration changes."],"from":"now-9m","references":["https://github.com/zephrax/linux-pam-backdoor","https://github.com/eurialo/pambd","http://0x90909090.blogspot.com/2016/06/creating-backdoor-in-pam-in-5-line-of.html","https://www.trendmicro.com/en_us/research/19/i/skidmap-linux-malware-uses-rootkit-capabilities-to-hide-cryptocurrency-mining-payload.html"],"tags":["Elastic","Host","macOS","Linux","Threat Detection","Credential Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and event.type:change and\n (file.name:pam_*.so or file.path:(/etc/pam.d/* or /private/etc/pam.d/*)) and\n process.executable:\n (* and\n not\n (\n /bin/yum or\n \"/usr/sbin/pam-auth-update\" or\n /usr/libexec/packagekitd or\n /usr/bin/dpkg or\n /usr/bin/vim or\n /usr/libexec/xpcproxy or\n /usr/bin/bsdtar or\n /usr/local/bin/brew or\n /usr/bin/rsync or\n /usr/bin/yum or\n /var/lib/docker/*/bin/yum or\n /var/lib/docker/*/bin/dpkg or\n ./merged/var/lib/docker/*/bin/dpkg or\n \"/System/Library/PrivateFrameworks/PackageKit.framework/Versions/A/XPCServices/package_script_service.xpc/Contents/MacOS/package_script_service\"\n )\n ) and\n not file.path:\n (\n /tmp/snap.rootfs_*/pam_*.so or\n /tmp/newroot/lib/*/pam_*.so or\n /private/var/folders/*/T/com.apple.fileprovider.ArchiveService/TemporaryItems/*/lib/security/pam_*.so or\n /tmp/newroot/usr/lib64/security/pam_*.so\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},"id":"93f47b6f-5728-4004-ba00-625083b3dcb0:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9510add4-3392-11ed-bd01-f661ea17fbce:2.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9510add4-3392-11ed-bd01-f661ea17fbce:2.0.0.json new file mode 100644 index 0000000000000..57807ef50dbb5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9510add4-3392-11ed-bd01-f661ea17fbce:2.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace Custom Gmail Route Created or Modified v2.0.0","rule_id":"9510add4-3392-11ed-bd01-f661ea17fbce:2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a custom Gmail route is added or modified in Google Workspace. Adversaries can add a custom e-mail route for outbound mail to route these e-mails to their own inbox of choice for data gathering. This allows adversaries to capture sensitive information from e-mail and potential attachments, such as invoices or payment documents. By default, all email from current Google Workspace users with accounts are routed through a domain's mail server for inbound and outbound mail.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrators may create custom email routes in Google Workspace based on organizational policies, administrative preference or for security purposes regarding spam."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/2685650?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Collection"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1114","name":"Email Collection","reference":"https://attack.mitre.org/techniques/T1114/","subtechnique":[{"id":"T1114.003","name":"Email Forwarding Rule","reference":"https://attack.mitre.org/techniques/T1114/003/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:(\"CREATE_GMAIL_SETTING\" or \"CHANGE_GMAIL_SETTING\")\n and google_workspace.event.type:\"EMAIL_SETTINGS\" and google_workspace.admin.setting.name:(\"EMAIL_ROUTE\" or \"MESSAGE_SECURITY_RULE\")\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.setting.name","type":"keyword"},{"ecs":false,"name":"google_workspace.event.type","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"9510add4-3392-11ed-bd01-f661ea17fbce:2.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9510add4-3392-11ed-bd01-f661ea17fbce:2.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9510add4-3392-11ed-bd01-f661ea17fbce:2.0.1.json new file mode 100644 index 0000000000000..1c459f190ff79 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9510add4-3392-11ed-bd01-f661ea17fbce:2.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace Custom Gmail Route Created or Modified v2.0.1","rule_id":"9510add4-3392-11ed-bd01-f661ea17fbce:2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a custom Gmail route is added or modified in Google Workspace. Adversaries can add a custom e-mail route for outbound mail to route these e-mails to their own inbox of choice for data gathering. This allows adversaries to capture sensitive information from e-mail and potential attachments, such as invoices or payment documents. By default, all email from current Google Workspace users with accounts are routed through a domain's mail server for inbound and outbound mail.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrators may create custom email routes in Google Workspace based on organizational policies, administrative preference or for security purposes regarding spam."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/2685650?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Collection"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1114","name":"Email Collection","reference":"https://attack.mitre.org/techniques/T1114/","subtechnique":[{"id":"T1114.003","name":"Email Forwarding Rule","reference":"https://attack.mitre.org/techniques/T1114/003/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:(\"CREATE_GMAIL_SETTING\" or \"CHANGE_GMAIL_SETTING\")\n and google_workspace.event.type:\"EMAIL_SETTINGS\" and google_workspace.admin.setting.name:(\"EMAIL_ROUTE\" or \"MESSAGE_SECURITY_RULE\")\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.setting.name","type":"keyword"},{"ecs":false,"name":"google_workspace.event.type","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"9510add4-3392-11ed-bd01-f661ea17fbce:2.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9510add4-3392-11ed-bd01-f661ea17fbce:2.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9510add4-3392-11ed-bd01-f661ea17fbce:2.0.2.json new file mode 100644 index 0000000000000..eab074a7768bc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9510add4-3392-11ed-bd01-f661ea17fbce:2.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace Custom Gmail Route Created or Modified v2.0.2","rule_id":"9510add4-3392-11ed-bd01-f661ea17fbce:2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a custom Gmail route is added or modified in Google Workspace. Adversaries can add a custom e-mail route for outbound mail to route these e-mails to their own inbox of choice for data gathering. This allows adversaries to capture sensitive information from e-mail and potential attachments, such as invoices or payment documents. By default, all email from current Google Workspace users with accounts are routed through a domain's mail server for inbound and outbound mail.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrators may create custom email routes in Google Workspace based on organizational policies, administrative preference or for security purposes regarding spam."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/2685650?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Collection"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1114","name":"Email Collection","reference":"https://attack.mitre.org/techniques/T1114/","subtechnique":[{"id":"T1114.003","name":"Email Forwarding Rule","reference":"https://attack.mitre.org/techniques/T1114/003/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:(\"CREATE_GMAIL_SETTING\" or \"CHANGE_GMAIL_SETTING\")\n and google_workspace.event.type:\"EMAIL_SETTINGS\" and google_workspace.admin.setting.name:(\"EMAIL_ROUTE\" or \"MESSAGE_SECURITY_RULE\")\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.setting.name","type":"keyword"},{"ecs":false,"name":"google_workspace.event.type","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"9510add4-3392-11ed-bd01-f661ea17fbce:2.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/954ee7c8-5437-49ae-b2d6-2960883898e9:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/954ee7c8-5437-49ae-b2d6-2960883898e9:102.0.0.json new file mode 100644 index 0000000000000..76e651ff86e69 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/954ee7c8-5437-49ae-b2d6-2960883898e9:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote Scheduled Task Creation v102.0.0","rule_id":"954ee7c8-5437-49ae-b2d6-2960883898e9:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote scheduled task creations on a target host. This could be indicative of adversary lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote Scheduled Task Creation\n\n[Scheduled tasks](https://docs.microsoft.com/en-us/windows/win32/taskschd/about-the-task-scheduler) are a great mechanism\nfor persistence and program execution. These features can be used remotely for a variety of legitimate reasons, but at\nthe same time used by malware and adversaries. When investigating scheduled tasks that were set up remotely, one of the\nfirst steps should be to determine the original intent behind the configuration and to verify if the activity is tied to\nbenign behavior such as software installation or any kind of network administrator work. One objective for these alerts\nis to understand the configured action within the scheduled task. This is captured within the registry event data for\nthis rule and can be base64 decoded to view the value.\n\n#### Possible investigation steps\n\n- Review the base64 encoded tasks actions registry value to investigate the task configured action.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate software\ninstallations.\n- Further examination should include review of host-based artifacts and network logs from around when the scheduled task\nwas created, on both the source and target machines.\n\n### False positive analysis\n\n- There is a high possibility of benign activity tied to the creation of remote scheduled tasks as it is a general feature\nwithin Windows and used for legitimate purposes for a wide range of activity. Any kind of context should be found to\nfurther understand the source of the activity and determine the intent based on the scheduled task's contents.\n\n### Related rules\n\n- Service Command Lateral Movement - d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc\n- Remotely Started Services via RPC - aa9a274d-6b53-424d-ac5e-cb8ca4251650\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Remove scheduled task and any other related artifacts.\n- Review privileged account management and user account management settings. Consider implementing group policy object (GPO) policies to further\nrestrict activity, or configuring settings that only allow administrators to create remote scheduled tasks.\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"/* Task Scheduler service incoming connection followed by TaskCache registry modification */\n\nsequence by host.id, process.entity_id with maxspan = 1m\n [network where process.name : \"svchost.exe\" and\n network.direction : (\"incoming\", \"ingress\") and source.port >= 49152 and destination.port >= 49152 and\n source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ]\n [registry where registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Schedule\\\\TaskCache\\\\Tasks\\\\*\\\\Actions\"]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]},"id":"954ee7c8-5437-49ae-b2d6-2960883898e9:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/954ee7c8-5437-49ae-b2d6-2960883898e9:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/954ee7c8-5437-49ae-b2d6-2960883898e9:102.0.1.json new file mode 100644 index 0000000000000..0b4287217c8ee --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/954ee7c8-5437-49ae-b2d6-2960883898e9:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote Scheduled Task Creation v102.0.1","rule_id":"954ee7c8-5437-49ae-b2d6-2960883898e9:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote scheduled task creations on a target host. This could be indicative of adversary lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote Scheduled Task Creation\n\n[Scheduled tasks](https://docs.microsoft.com/en-us/windows/win32/taskschd/about-the-task-scheduler) are a great mechanism\nfor persistence and program execution. These features can be used remotely for a variety of legitimate reasons, but at\nthe same time used by malware and adversaries. When investigating scheduled tasks that were set up remotely, one of the\nfirst steps should be to determine the original intent behind the configuration and to verify if the activity is tied to\nbenign behavior such as software installation or any kind of network administrator work. One objective for these alerts\nis to understand the configured action within the scheduled task. This is captured within the registry event data for\nthis rule and can be base64 decoded to view the value.\n\n#### Possible investigation steps\n\n- Review the base64 encoded tasks actions registry value to investigate the task configured action.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate software\ninstallations.\n- Further examination should include review of host-based artifacts and network logs from around when the scheduled task\nwas created, on both the source and target machines.\n\n### False positive analysis\n\n- There is a high possibility of benign activity tied to the creation of remote scheduled tasks as it is a general feature\nwithin Windows and used for legitimate purposes for a wide range of activity. Any kind of context should be found to\nfurther understand the source of the activity and determine the intent based on the scheduled task's contents.\n\n### Related rules\n\n- Service Command Lateral Movement - d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc\n- Remotely Started Services via RPC - aa9a274d-6b53-424d-ac5e-cb8ca4251650\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Remove scheduled task and any other related artifacts.\n- Review privileged account management and user account management settings. Consider implementing group policy object (GPO) policies to further\nrestrict activity, or configuring settings that only allow administrators to create remote scheduled tasks.\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"/* Task Scheduler service incoming connection followed by TaskCache registry modification */\n\nsequence by host.id, process.entity_id with maxspan = 1m\n [network where process.name : \"svchost.exe\" and\n network.direction : (\"incoming\", \"ingress\") and source.port >= 49152 and destination.port >= 49152 and\n source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ]\n [registry where registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Schedule\\\\TaskCache\\\\Tasks\\\\*\\\\Actions\"]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]},"id":"954ee7c8-5437-49ae-b2d6-2960883898e9:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/954ee7c8-5437-49ae-b2d6-2960883898e9:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/954ee7c8-5437-49ae-b2d6-2960883898e9:102.0.2.json new file mode 100644 index 0000000000000..74b8c21871266 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/954ee7c8-5437-49ae-b2d6-2960883898e9:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote Scheduled Task Creation v102.0.2","rule_id":"954ee7c8-5437-49ae-b2d6-2960883898e9:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote scheduled task creations on a target host. This could be indicative of adversary lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote Scheduled Task Creation\n\n[Scheduled tasks](https://docs.microsoft.com/en-us/windows/win32/taskschd/about-the-task-scheduler) are a great mechanism\nfor persistence and program execution. These features can be used remotely for a variety of legitimate reasons, but at\nthe same time used by malware and adversaries. When investigating scheduled tasks that were set up remotely, one of the\nfirst steps should be to determine the original intent behind the configuration and to verify if the activity is tied to\nbenign behavior such as software installation or any kind of network administrator work. One objective for these alerts\nis to understand the configured action within the scheduled task. This is captured within the registry event data for\nthis rule and can be base64 decoded to view the value.\n\n#### Possible investigation steps\n\n- Review the base64 encoded tasks actions registry value to investigate the task configured action.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate software\ninstallations.\n- Further examination should include review of host-based artifacts and network logs from around when the scheduled task\nwas created, on both the source and target machines.\n\n### False positive analysis\n\n- There is a high possibility of benign activity tied to the creation of remote scheduled tasks as it is a general feature\nwithin Windows and used for legitimate purposes for a wide range of activity. Any kind of context should be found to\nfurther understand the source of the activity and determine the intent based on the scheduled task's contents.\n\n### Related rules\n\n- Service Command Lateral Movement - d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc\n- Remotely Started Services via RPC - aa9a274d-6b53-424d-ac5e-cb8ca4251650\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Remove scheduled task and any other related artifacts.\n- Review privileged account management and user account management settings. Consider implementing group policy object (GPO) policies to further\nrestrict activity, or configuring settings that only allow administrators to create remote scheduled tasks.\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"/* Task Scheduler service incoming connection followed by TaskCache registry modification */\n\nsequence by host.id, process.entity_id with maxspan = 1m\n [network where process.name : \"svchost.exe\" and\n network.direction : (\"incoming\", \"ingress\") and source.port >= 49152 and destination.port >= 49152 and\n source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ]\n [registry where registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Schedule\\\\TaskCache\\\\Tasks\\\\*\\\\Actions\"]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]},"id":"954ee7c8-5437-49ae-b2d6-2960883898e9:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/959a7353-1129-4aa7-9084-30746b256a70:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/959a7353-1129-4aa7-9084-30746b256a70:102.0.0.json new file mode 100644 index 0000000000000..1ca55d4327cb1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/959a7353-1129-4aa7-9084-30746b256a70:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell Suspicious Script with Screenshot Capabilities v102.0.0","rule_id":"959a7353-1129-4aa7-9084-30746b256a70:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects PowerShell scripts that can take screenshots, which is a common feature in post-exploitation kits and remote access tools (RATs).","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Suspicious Script with Screenshot Capabilities\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks, which makes\nit available for use in various environments and creates an attractive way for attackers to execute code.\n\nAttackers can abuse PowerShell capabilities and take screen captures of desktops to gather information over the course\nof an operation.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Investigate if the script stores the captured data locally.\n- Investigate if the script contains exfiltration capabilities and the destination of this exfiltration.\n- Assess network data to determine if the host communicated with the exfiltration server.\n\n### False positive analysis\n\n- Regular users do not have a business justification for using scripting utilities to take screenshots, which makes false\npositives unlikely. In the case of authorized benign true positives (B-TPs), exceptions can be added.\n\n### Related rules\n\n- PowerShell Keylogging Script - bd2c86a0-8b61-4457-ab38-96943984e889\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/dotnet/api/system.drawing.graphics.copyfromscreen"],"tags":["Elastic","Host","Windows","Threat Detection","Collection","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1113","name":"Screen Capture","reference":"https://attack.mitre.org/techniques/T1113/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n CopyFromScreen and\n (\"System.Drawing.Bitmap\" or \"Drawing.Bitmap\")\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"959a7353-1129-4aa7-9084-30746b256a70:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/959a7353-1129-4aa7-9084-30746b256a70:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/959a7353-1129-4aa7-9084-30746b256a70:102.0.1.json new file mode 100644 index 0000000000000..6786bc1ac0f41 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/959a7353-1129-4aa7-9084-30746b256a70:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell Suspicious Script with Screenshot Capabilities v102.0.1","rule_id":"959a7353-1129-4aa7-9084-30746b256a70:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects PowerShell scripts that can take screenshots, which is a common feature in post-exploitation kits and remote access tools (RATs).","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Suspicious Script with Screenshot Capabilities\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks, which makes\nit available for use in various environments and creates an attractive way for attackers to execute code.\n\nAttackers can abuse PowerShell capabilities and take screen captures of desktops to gather information over the course\nof an operation.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Investigate if the script stores the captured data locally.\n- Investigate if the script contains exfiltration capabilities and the destination of this exfiltration.\n- Assess network data to determine if the host communicated with the exfiltration server.\n\n### False positive analysis\n\n- Regular users do not have a business justification for using scripting utilities to take screenshots, which makes false\npositives unlikely. In the case of authorized benign true positives (B-TPs), exceptions can be added.\n\n### Related rules\n\n- PowerShell Keylogging Script - bd2c86a0-8b61-4457-ab38-96943984e889\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/dotnet/api/system.drawing.graphics.copyfromscreen"],"tags":["Elastic","Host","Windows","Threat Detection","Collection","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1113","name":"Screen Capture","reference":"https://attack.mitre.org/techniques/T1113/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n CopyFromScreen and\n (\"System.Drawing.Bitmap\" or \"Drawing.Bitmap\")\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"959a7353-1129-4aa7-9084-30746b256a70:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/959a7353-1129-4aa7-9084-30746b256a70:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/959a7353-1129-4aa7-9084-30746b256a70:102.0.2.json new file mode 100644 index 0000000000000..9d0c3c507af44 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/959a7353-1129-4aa7-9084-30746b256a70:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell Suspicious Script with Screenshot Capabilities v102.0.2","rule_id":"959a7353-1129-4aa7-9084-30746b256a70:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects PowerShell scripts that can take screenshots, which is a common feature in post-exploitation kits and remote access tools (RATs).","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Suspicious Script with Screenshot Capabilities\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks, which makes\nit available for use in various environments and creates an attractive way for attackers to execute code.\n\nAttackers can abuse PowerShell capabilities and take screen captures of desktops to gather information over the course\nof an operation.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Investigate if the script stores the captured data locally.\n- Investigate if the script contains exfiltration capabilities and the destination of this exfiltration.\n- Assess network data to determine if the host communicated with the exfiltration server.\n\n### False positive analysis\n\n- Regular users do not have a business justification for using scripting utilities to take screenshots, which makes false\npositives unlikely. In the case of authorized benign true positives (B-TPs), exceptions can be added.\n\n### Related rules\n\n- PowerShell Keylogging Script - bd2c86a0-8b61-4457-ab38-96943984e889\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/dotnet/api/system.drawing.graphics.copyfromscreen"],"tags":["Elastic","Host","Windows","Threat Detection","Collection","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1113","name":"Screen Capture","reference":"https://attack.mitre.org/techniques/T1113/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n CopyFromScreen and\n (\"System.Drawing.Bitmap\" or \"Drawing.Bitmap\")\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"959a7353-1129-4aa7-9084-30746b256a70:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/968ccab9-da51-4a87-9ce2-d3c9782fd759:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/968ccab9-da51-4a87-9ce2-d3c9782fd759:100.0.0.json new file mode 100644 index 0000000000000..b8b6f356c8f30 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/968ccab9-da51-4a87-9ce2-d3c9782fd759:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"File made Immutable by Chattr v100.0.0","rule_id":"968ccab9-da51-4a87-9ce2-d3c9782fd759:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects a file being made immutable using the chattr binary. Making a file immutable means it cannot be deleted or renamed, no link can be created to this file, most of the file's metadata can not be modified, and the file can not be opened in write mode. Threat actors will commonly utilize this to prevent tampering or modification of their malicious files or any system files they have modified for purposes of persistence (e.g .ssh, /etc/passwd, etc.).","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1222","name":"File and Directory Permissions Modification","reference":"https://attack.mitre.org/techniques/T1222/","subtechnique":[{"id":"T1222.002","name":"Linux and Mac File and Directory Permissions Modification","reference":"https://attack.mitre.org/techniques/T1222/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and user.name == \"root\" and process.executable : \"/usr/bin/chattr\" and process.args : (\"-*i*\", \"+*i*\") and not process.parent.executable: \"/lib/systemd/systemd\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"968ccab9-da51-4a87-9ce2-d3c9782fd759:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/968ccab9-da51-4a87-9ce2-d3c9782fd759:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/968ccab9-da51-4a87-9ce2-d3c9782fd759:100.0.1.json new file mode 100644 index 0000000000000..fe7b86d11e55b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/968ccab9-da51-4a87-9ce2-d3c9782fd759:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"File made Immutable by Chattr v100.0.1","rule_id":"968ccab9-da51-4a87-9ce2-d3c9782fd759:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects a file being made immutable using the chattr binary. Making a file immutable means it cannot be deleted or renamed, no link can be created to this file, most of the file's metadata can not be modified, and the file can not be opened in write mode. Threat actors will commonly utilize this to prevent tampering or modification of their malicious files or any system files they have modified for purposes of persistence (e.g .ssh, /etc/passwd, etc.).","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1222","name":"File and Directory Permissions Modification","reference":"https://attack.mitre.org/techniques/T1222/","subtechnique":[{"id":"T1222.002","name":"Linux and Mac File and Directory Permissions Modification","reference":"https://attack.mitre.org/techniques/T1222/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and user.name == \"root\" and process.executable : \"/usr/bin/chattr\" and process.args : (\"-*i*\", \"+*i*\") and not process.parent.executable: \"/lib/systemd/systemd\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"968ccab9-da51-4a87-9ce2-d3c9782fd759:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/968ccab9-da51-4a87-9ce2-d3c9782fd759:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/968ccab9-da51-4a87-9ce2-d3c9782fd759:100.0.2.json new file mode 100644 index 0000000000000..f61e9a66795d9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/968ccab9-da51-4a87-9ce2-d3c9782fd759:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"File made Immutable by Chattr v100.0.2","rule_id":"968ccab9-da51-4a87-9ce2-d3c9782fd759:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects a file being made immutable using the chattr binary. Making a file immutable means it cannot be deleted or renamed, no link can be created to this file, most of the file's metadata can not be modified, and the file can not be opened in write mode. Threat actors will commonly utilize this to prevent tampering or modification of their malicious files or any system files they have modified for purposes of persistence (e.g .ssh, /etc/passwd, etc.).","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1222","name":"File and Directory Permissions Modification","reference":"https://attack.mitre.org/techniques/T1222/","subtechnique":[{"id":"T1222.002","name":"Linux and Mac File and Directory Permissions Modification","reference":"https://attack.mitre.org/techniques/T1222/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and user.name == \"root\" and process.executable : \"/usr/bin/chattr\" and process.args : (\"-*i*\", \"+*i*\") and not process.parent.executable: \"/lib/systemd/systemd\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"968ccab9-da51-4a87-9ce2-d3c9782fd759:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/96b9f4ea-0e8c-435b-8d53-2096e75fcac5:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/96b9f4ea-0e8c-435b-8d53-2096e75fcac5:102.0.0.json new file mode 100644 index 0000000000000..e2888eaf900fb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/96b9f4ea-0e8c-435b-8d53-2096e75fcac5:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Create Okta API Token v102.0.0","rule_id":"96b9f4ea-0e8c-435b-8d53-2096e75fcac5:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to create an Okta API token. An adversary may create an Okta API token to maintain access to an organization's network while they work to achieve their objectives. An attacker may abuse an API token to execute techniques such as creating user accounts or disabling security rules or policies.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If the behavior of creating Okta API tokens is expected, consider adding exceptions to this rule to filter false positives."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:system.api_token.create\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"96b9f4ea-0e8c-435b-8d53-2096e75fcac5:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/96b9f4ea-0e8c-435b-8d53-2096e75fcac5:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/96b9f4ea-0e8c-435b-8d53-2096e75fcac5:102.0.1.json new file mode 100644 index 0000000000000..e97143cdacf1b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/96b9f4ea-0e8c-435b-8d53-2096e75fcac5:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Create Okta API Token v102.0.1","rule_id":"96b9f4ea-0e8c-435b-8d53-2096e75fcac5:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to create an Okta API token. An adversary may create an Okta API token to maintain access to an organization's network while they work to achieve their objectives. An attacker may abuse an API token to execute techniques such as creating user accounts or disabling security rules or policies.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If the behavior of creating Okta API tokens is expected, consider adding exceptions to this rule to filter false positives."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:system.api_token.create\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"96b9f4ea-0e8c-435b-8d53-2096e75fcac5:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/96b9f4ea-0e8c-435b-8d53-2096e75fcac5:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/96b9f4ea-0e8c-435b-8d53-2096e75fcac5:102.0.2.json new file mode 100644 index 0000000000000..8ad8215c9e2b5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/96b9f4ea-0e8c-435b-8d53-2096e75fcac5:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Create Okta API Token v102.0.2","rule_id":"96b9f4ea-0e8c-435b-8d53-2096e75fcac5:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to create an Okta API token. An adversary may create an Okta API token to maintain access to an organization's network while they work to achieve their objectives. An attacker may abuse an API token to execute techniques such as creating user accounts or disabling security rules or policies.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If the behavior of creating Okta API tokens is expected, consider adding exceptions to this rule to filter false positives."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1136","name":"Create Account","reference":"https://attack.mitre.org/techniques/T1136/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:system.api_token.create\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"96b9f4ea-0e8c-435b-8d53-2096e75fcac5:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/96e90768-c3b7-4df6-b5d9-6237f8bc36a8:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/96e90768-c3b7-4df6-b5d9-6237f8bc36a8:100.0.0.json new file mode 100644 index 0000000000000..b9ed043c9ec70 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/96e90768-c3b7-4df6-b5d9-6237f8bc36a8:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Access to Keychain Credentials Directories v100.0.0","rule_id":"96e90768-c3b7-4df6-b5d9-6237f8bc36a8:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may collect the keychain storage data from a system to acquire credentials. Keychains are the built-in way for macOS to keep track of users' passwords and credentials for many services and features such as WiFi passwords, websites, secure notes and certificates.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://objective-see.com/blog/blog_0x25.html","https://securelist.com/calisto-trojan-for-macos/86543/"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.001","name":"Keychain","reference":"https://attack.mitre.org/techniques/T1555/001/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.args :\n (\n \"/Users/*/Library/Keychains/*\",\n \"/Library/Keychains/*\",\n \"/Network/Library/Keychains/*\",\n \"System.keychain\",\n \"login.keychain-db\",\n \"login.keychain\"\n ) and\n not process.args : (\"find-certificate\",\n \"add-trusted-cert\",\n \"set-keychain-settings\",\n \"delete-certificate\",\n \"/Users/*/Library/Keychains/openvpn.keychain-db\",\n \"show-keychain-info\",\n \"lock-keychain\",\n \"set-key-partition-list\",\n \"import\",\n \"find-identity\") and\n not process.parent.executable :\n (\n \"/Applications/OpenVPN Connect/OpenVPN Connect.app/Contents/MacOS/OpenVPN Connect\",\n \"/Applications/Microsoft Defender.app/Contents/MacOS/wdavdaemon_enterprise.app/Contents/MacOS/wdavdaemon_enterprise\",\n \"/opt/jc/bin/jumpcloud-agent\"\n ) and\n not process.executable : \"/opt/jc/bin/jumpcloud-agent\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"96e90768-c3b7-4df6-b5d9-6237f8bc36a8:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/96e90768-c3b7-4df6-b5d9-6237f8bc36a8:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/96e90768-c3b7-4df6-b5d9-6237f8bc36a8:100.0.1.json new file mode 100644 index 0000000000000..7b2623e7bbec5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/96e90768-c3b7-4df6-b5d9-6237f8bc36a8:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Access to Keychain Credentials Directories v100.0.1","rule_id":"96e90768-c3b7-4df6-b5d9-6237f8bc36a8:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may collect the keychain storage data from a system to acquire credentials. Keychains are the built-in way for macOS to keep track of users' passwords and credentials for many services and features such as WiFi passwords, websites, secure notes and certificates.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://objective-see.com/blog/blog_0x25.html","https://securelist.com/calisto-trojan-for-macos/86543/"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.001","name":"Keychain","reference":"https://attack.mitre.org/techniques/T1555/001/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.args :\n (\n \"/Users/*/Library/Keychains/*\",\n \"/Library/Keychains/*\",\n \"/Network/Library/Keychains/*\",\n \"System.keychain\",\n \"login.keychain-db\",\n \"login.keychain\"\n ) and\n not process.args : (\"find-certificate\",\n \"add-trusted-cert\",\n \"set-keychain-settings\",\n \"delete-certificate\",\n \"/Users/*/Library/Keychains/openvpn.keychain-db\",\n \"show-keychain-info\",\n \"lock-keychain\",\n \"set-key-partition-list\",\n \"import\",\n \"find-identity\") and\n not process.parent.executable :\n (\n \"/Applications/OpenVPN Connect/OpenVPN Connect.app/Contents/MacOS/OpenVPN Connect\",\n \"/Applications/Microsoft Defender.app/Contents/MacOS/wdavdaemon_enterprise.app/Contents/MacOS/wdavdaemon_enterprise\",\n \"/opt/jc/bin/jumpcloud-agent\"\n ) and\n not process.executable : \"/opt/jc/bin/jumpcloud-agent\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"96e90768-c3b7-4df6-b5d9-6237f8bc36a8:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/96e90768-c3b7-4df6-b5d9-6237f8bc36a8:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/96e90768-c3b7-4df6-b5d9-6237f8bc36a8:100.0.2.json new file mode 100644 index 0000000000000..331beb32e2b6b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/96e90768-c3b7-4df6-b5d9-6237f8bc36a8:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Access to Keychain Credentials Directories v100.0.2","rule_id":"96e90768-c3b7-4df6-b5d9-6237f8bc36a8:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may collect the keychain storage data from a system to acquire credentials. Keychains are the built-in way for macOS to keep track of users' passwords and credentials for many services and features such as WiFi passwords, websites, secure notes and certificates.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://objective-see.com/blog/blog_0x25.html","https://securelist.com/calisto-trojan-for-macos/86543/"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.001","name":"Keychain","reference":"https://attack.mitre.org/techniques/T1555/001/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.args :\n (\n \"/Users/*/Library/Keychains/*\",\n \"/Library/Keychains/*\",\n \"/Network/Library/Keychains/*\",\n \"System.keychain\",\n \"login.keychain-db\",\n \"login.keychain\"\n ) and\n not process.args : (\"find-certificate\",\n \"add-trusted-cert\",\n \"set-keychain-settings\",\n \"delete-certificate\",\n \"/Users/*/Library/Keychains/openvpn.keychain-db\",\n \"show-keychain-info\",\n \"lock-keychain\",\n \"set-key-partition-list\",\n \"import\",\n \"find-identity\") and\n not process.parent.executable :\n (\n \"/Applications/OpenVPN Connect/OpenVPN Connect.app/Contents/MacOS/OpenVPN Connect\",\n \"/Applications/Microsoft Defender.app/Contents/MacOS/wdavdaemon_enterprise.app/Contents/MacOS/wdavdaemon_enterprise\",\n \"/opt/jc/bin/jumpcloud-agent\"\n ) and\n not process.executable : \"/opt/jc/bin/jumpcloud-agent\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"96e90768-c3b7-4df6-b5d9-6237f8bc36a8:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/97020e61-e591-4191-8a3b-2861a2b887cd:1.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/97020e61-e591-4191-8a3b-2861a2b887cd:1.0.0.json new file mode 100644 index 0000000000000..5bd638729b02d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/97020e61-e591-4191-8a3b-2861a2b887cd:1.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"SeDebugPrivilege Enabled by a Suspicious Process v1.0.0","rule_id":"97020e61-e591-4191-8a3b-2861a2b887cd:1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a process running as SYSTEM and impersonating a Windows core binary privileges. Adversaries may create a new process with a different token to escalate privileges and bypass access controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4703","https://blog.palantir.com/windows-privilege-abuse-auditing-detection-and-defense-3078a403d74e"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"language":"eql","query":"any where event.provider: \"Microsoft-Windows-Security-Auditing\" and\n event.action : \"Token Right Adjusted Events\" and\n\n winlog.event_data.EnabledPrivilegeList : \"SeDebugPrivilege\" and\n\n /* exclude processes with System Integrity */\n not winlog.event_data.SubjectUserSid : (\"S-1-5-18\", \"S-1-5-19\", \"S-1-5-20\") and\n\n not winlog.event_data.ProcessName :\n (\"?:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\System32\\\\lsass.exe\",\n \"?:\\\\Windows\\\\WinSxS\\\\*\",\n \"?:\\\\Program Files\\\\*\",\n \"?:\\\\Program Files (x86)\\\\*\",\n \"?:\\\\Windows\\\\System32\\\\MRT.exe\",\n \"?:\\\\Windows\\\\System32\\\\cleanmgr.exe\",\n \"?:\\\\Windows\\\\System32\\\\taskhostw.exe\",\n \"?:\\\\Windows\\\\System32\\\\mmc.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\*-*\\\\DismHost.exe\",\n \"?:\\\\Windows\\\\System32\\\\auditpol.exe\",\n \"?:\\\\Windows\\\\System32\\\\wbem\\\\WmiPrvSe.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\wbem\\\\WmiPrvSe.exe\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"winlog.event_data.EnabledPrivilegeList","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ProcessName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.SubjectUserSid","type":"keyword"}],"setup":"Windows Event 4703 logs Token Privileges changes and need to be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDetailed Tracking >\nToken Right Adjusted Events (Success)\n```"},"id":"97020e61-e591-4191-8a3b-2861a2b887cd:1.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/97020e61-e591-4191-8a3b-2861a2b887cd:1.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/97020e61-e591-4191-8a3b-2861a2b887cd:1.0.1.json new file mode 100644 index 0000000000000..5dfdf989cd659 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/97020e61-e591-4191-8a3b-2861a2b887cd:1.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"SeDebugPrivilege Enabled by a Suspicious Process v1.0.1","rule_id":"97020e61-e591-4191-8a3b-2861a2b887cd:1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a process running as SYSTEM and impersonating a Windows core binary privileges. Adversaries may create a new process with a different token to escalate privileges and bypass access controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4703","https://blog.palantir.com/windows-privilege-abuse-auditing-detection-and-defense-3078a403d74e"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"language":"eql","query":"any where event.provider: \"Microsoft-Windows-Security-Auditing\" and\n event.action : \"Token Right Adjusted Events\" and\n\n winlog.event_data.EnabledPrivilegeList : \"SeDebugPrivilege\" and\n\n /* exclude processes with System Integrity */\n not winlog.event_data.SubjectUserSid : (\"S-1-5-18\", \"S-1-5-19\", \"S-1-5-20\") and\n\n not winlog.event_data.ProcessName :\n (\"?:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\System32\\\\lsass.exe\",\n \"?:\\\\Windows\\\\WinSxS\\\\*\",\n \"?:\\\\Program Files\\\\*\",\n \"?:\\\\Program Files (x86)\\\\*\",\n \"?:\\\\Windows\\\\System32\\\\MRT.exe\",\n \"?:\\\\Windows\\\\System32\\\\cleanmgr.exe\",\n \"?:\\\\Windows\\\\System32\\\\taskhostw.exe\",\n \"?:\\\\Windows\\\\System32\\\\mmc.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\*-*\\\\DismHost.exe\",\n \"?:\\\\Windows\\\\System32\\\\auditpol.exe\",\n \"?:\\\\Windows\\\\System32\\\\wbem\\\\WmiPrvSe.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\wbem\\\\WmiPrvSe.exe\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"winlog.event_data.EnabledPrivilegeList","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ProcessName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.SubjectUserSid","type":"keyword"}],"setup":"Windows Event 4703 logs Token Privileges changes and need to be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDetailed Tracking >\nToken Right Adjusted Events (Success)\n```"},"id":"97020e61-e591-4191-8a3b-2861a2b887cd:1.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/97020e61-e591-4191-8a3b-2861a2b887cd:1.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/97020e61-e591-4191-8a3b-2861a2b887cd:1.0.2.json new file mode 100644 index 0000000000000..296687f97ed08 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/97020e61-e591-4191-8a3b-2861a2b887cd:1.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"SeDebugPrivilege Enabled by a Suspicious Process v1.0.2","rule_id":"97020e61-e591-4191-8a3b-2861a2b887cd:1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a process running as SYSTEM and impersonating a Windows core binary privileges. Adversaries may create a new process with a different token to escalate privileges and bypass access controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4703","https://blog.palantir.com/windows-privilege-abuse-auditing-detection-and-defense-3078a403d74e"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"language":"eql","query":"any where event.provider: \"Microsoft-Windows-Security-Auditing\" and\n event.action : \"Token Right Adjusted Events\" and\n\n winlog.event_data.EnabledPrivilegeList : \"SeDebugPrivilege\" and\n\n /* exclude processes with System Integrity */\n not winlog.event_data.SubjectUserSid : (\"S-1-5-18\", \"S-1-5-19\", \"S-1-5-20\") and\n\n not winlog.event_data.ProcessName :\n (\"?:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\",\n \"?:\\\\Windows\\\\System32\\\\lsass.exe\",\n \"?:\\\\Windows\\\\WinSxS\\\\*\",\n \"?:\\\\Program Files\\\\*\",\n \"?:\\\\Program Files (x86)\\\\*\",\n \"?:\\\\Windows\\\\System32\\\\MRT.exe\",\n \"?:\\\\Windows\\\\System32\\\\cleanmgr.exe\",\n \"?:\\\\Windows\\\\System32\\\\taskhostw.exe\",\n \"?:\\\\Windows\\\\System32\\\\mmc.exe\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\*-*\\\\DismHost.exe\",\n \"?:\\\\Windows\\\\System32\\\\auditpol.exe\",\n \"?:\\\\Windows\\\\System32\\\\wbem\\\\WmiPrvSe.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\wbem\\\\WmiPrvSe.exe\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"winlog.event_data.EnabledPrivilegeList","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ProcessName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.SubjectUserSid","type":"keyword"}],"setup":"Windows Event 4703 logs Token Privileges changes and need to be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDetailed Tracking >\nToken Right Adjusted Events (Success)\n```"},"id":"97020e61-e591-4191-8a3b-2861a2b887cd:1.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/97314185-2568-4561-ae81-f3e480e5e695:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/97314185-2568-4561-ae81-f3e480e5e695:101.0.0.json new file mode 100644 index 0000000000000..1a1cd2f22b34d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/97314185-2568-4561-ae81-f3e480e5e695:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange Anti-Phish Rule Modification v101.0.0","rule_id":"97314185-2568-4561-ae81-f3e480e5e695:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the modification of an anti-phishing rule in Microsoft 365. By default, Microsoft 365 includes built-in features that help protect users from phishing attacks. Anti-phishing rules increase this protection by refining settings to better detect and prevent attacks.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An anti-phishing rule may be deleted by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-antiphishrule?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/disable-antiphishrule?view=exchange-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:(\"Remove-AntiPhishRule\" or \"Disable-AntiPhishRule\") and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"97314185-2568-4561-ae81-f3e480e5e695:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/97314185-2568-4561-ae81-f3e480e5e695:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/97314185-2568-4561-ae81-f3e480e5e695:101.0.1.json new file mode 100644 index 0000000000000..3241aff17fe61 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/97314185-2568-4561-ae81-f3e480e5e695:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange Anti-Phish Rule Modification v101.0.1","rule_id":"97314185-2568-4561-ae81-f3e480e5e695:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the modification of an anti-phishing rule in Microsoft 365. By default, Microsoft 365 includes built-in features that help protect users from phishing attacks. Anti-phishing rules increase this protection by refining settings to better detect and prevent attacks.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An anti-phishing rule may be deleted by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-antiphishrule?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/disable-antiphishrule?view=exchange-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:(\"Remove-AntiPhishRule\" or \"Disable-AntiPhishRule\") and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"97314185-2568-4561-ae81-f3e480e5e695:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/97314185-2568-4561-ae81-f3e480e5e695:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/97314185-2568-4561-ae81-f3e480e5e695:101.0.2.json new file mode 100644 index 0000000000000..40fb4737cce74 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/97314185-2568-4561-ae81-f3e480e5e695:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange Anti-Phish Rule Modification v101.0.2","rule_id":"97314185-2568-4561-ae81-f3e480e5e695:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the modification of an anti-phishing rule in Microsoft 365. By default, Microsoft 365 includes built-in features that help protect users from phishing attacks. Anti-phishing rules increase this protection by refining settings to better detect and prevent attacks.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An anti-phishing rule may be deleted by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-antiphishrule?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/disable-antiphishrule?view=exchange-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:(\"Remove-AntiPhishRule\" or \"Disable-AntiPhishRule\") and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"97314185-2568-4561-ae81-f3e480e5e695:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/97359fd8-757d-4b1d-9af1-ef29e4a8680e:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/97359fd8-757d-4b1d-9af1-ef29e4a8680e:102.0.0.json new file mode 100644 index 0000000000000..c89b84618f543 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/97359fd8-757d-4b1d-9af1-ef29e4a8680e:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Storage Bucket Configuration Modification v102.0.0","rule_id":"97359fd8-757d-4b1d-9af1-ef29e4a8680e:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when the configuration is modified for a storage bucket in Google Cloud Platform (GCP). An adversary may modify the configuration of a storage bucket in order to weaken the security controls of their target's environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Storage bucket configuration may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/storage/docs/key-terms#buckets"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1578","name":"Modify Cloud Compute Infrastructure","reference":"https://attack.mitre.org/techniques/T1578/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:\"storage.buckets.update\" and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"97359fd8-757d-4b1d-9af1-ef29e4a8680e:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/97359fd8-757d-4b1d-9af1-ef29e4a8680e:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/97359fd8-757d-4b1d-9af1-ef29e4a8680e:102.0.1.json new file mode 100644 index 0000000000000..118bdb1f29f1c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/97359fd8-757d-4b1d-9af1-ef29e4a8680e:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Storage Bucket Configuration Modification v102.0.1","rule_id":"97359fd8-757d-4b1d-9af1-ef29e4a8680e:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when the configuration is modified for a storage bucket in Google Cloud Platform (GCP). An adversary may modify the configuration of a storage bucket in order to weaken the security controls of their target's environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Storage bucket configuration may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/storage/docs/key-terms#buckets"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1578","name":"Modify Cloud Compute Infrastructure","reference":"https://attack.mitre.org/techniques/T1578/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:\"storage.buckets.update\" and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"97359fd8-757d-4b1d-9af1-ef29e4a8680e:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/97359fd8-757d-4b1d-9af1-ef29e4a8680e:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/97359fd8-757d-4b1d-9af1-ef29e4a8680e:102.0.2.json new file mode 100644 index 0000000000000..fbefaefe3d388 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/97359fd8-757d-4b1d-9af1-ef29e4a8680e:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Storage Bucket Configuration Modification v102.0.2","rule_id":"97359fd8-757d-4b1d-9af1-ef29e4a8680e:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when the configuration is modified for a storage bucket in Google Cloud Platform (GCP). An adversary may modify the configuration of a storage bucket in order to weaken the security controls of their target's environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Storage bucket configuration may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/storage/docs/key-terms#buckets"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1578","name":"Modify Cloud Compute Infrastructure","reference":"https://attack.mitre.org/techniques/T1578/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:\"storage.buckets.update\" and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"97359fd8-757d-4b1d-9af1-ef29e4a8680e:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/979729e7-0c52-4c4c-b71e-88103304a79f:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/979729e7-0c52-4c4c-b71e-88103304a79f:101.0.0.json new file mode 100644 index 0000000000000..934955a27bdf1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/979729e7-0c52-4c4c-b71e-88103304a79f:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS SAML Activity v101.0.0","rule_id":"979729e7-0c52-4c4c-b71e-88103304a79f:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when SAML activity has occurred in AWS. An adversary could manipulate SAML to maintain access to the target.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["SAML Provider could be updated by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. SAML Provider updates by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateSAMLProvider.html","https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.001","name":"Application Access Token","reference":"https://attack.mitre.org/techniques/T1550/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:(iam.amazonaws.com or sts.amazonaws.com) and event.action:(Assumerolewithsaml or\nUpdateSAMLProvider) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"979729e7-0c52-4c4c-b71e-88103304a79f:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/979729e7-0c52-4c4c-b71e-88103304a79f:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/979729e7-0c52-4c4c-b71e-88103304a79f:101.0.1.json new file mode 100644 index 0000000000000..fa5317aa51c55 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/979729e7-0c52-4c4c-b71e-88103304a79f:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS SAML Activity v101.0.1","rule_id":"979729e7-0c52-4c4c-b71e-88103304a79f:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when SAML activity has occurred in AWS. An adversary could manipulate SAML to maintain access to the target.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["SAML Provider could be updated by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. SAML Provider updates by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateSAMLProvider.html","https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.001","name":"Application Access Token","reference":"https://attack.mitre.org/techniques/T1550/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:(iam.amazonaws.com or sts.amazonaws.com) and event.action:(Assumerolewithsaml or\nUpdateSAMLProvider) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"979729e7-0c52-4c4c-b71e-88103304a79f:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/979729e7-0c52-4c4c-b71e-88103304a79f:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/979729e7-0c52-4c4c-b71e-88103304a79f:101.0.2.json new file mode 100644 index 0000000000000..659874942812d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/979729e7-0c52-4c4c-b71e-88103304a79f:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS SAML Activity v101.0.2","rule_id":"979729e7-0c52-4c4c-b71e-88103304a79f:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when SAML activity has occurred in AWS. An adversary could manipulate SAML to maintain access to the target.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["SAML Provider could be updated by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. SAML Provider updates by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateSAMLProvider.html","https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.001","name":"Application Access Token","reference":"https://attack.mitre.org/techniques/T1550/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:(iam.amazonaws.com or sts.amazonaws.com) and event.action:(Assumerolewithsaml or\nUpdateSAMLProvider) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"979729e7-0c52-4c4c-b71e-88103304a79f:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/97a8e584-fd3b-421f-9b9d-9c9d9e57e9d7:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/97a8e584-fd3b-421f-9b9d-9c9d9e57e9d7:101.0.0.json new file mode 100644 index 0000000000000..2520f79dfad1b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/97a8e584-fd3b-421f-9b9d-9c9d9e57e9d7:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Abuse of Repeated MFA Push Notifications v101.0.0","rule_id":"97a8e584-fd3b-421f-9b9d-9c9d9e57e9d7:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when an attacker abuses the Multi-Factor authentication mechanism by repeatedly issuing login requests until the user eventually accepts the Okta push notification. An adversary may attempt to bypass the Okta MFA policies configured for an organization to obtain unauthorized access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic"],"references":["https://www.mandiant.com/resources/russian-targeting-gov-business","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"language":"eql","query":"sequence by user.email with maxspan=10m\n [any where event.module == \"okta\" and event.action == \"user.mfa.okta_verify.deny_push\"]\n [any where event.module == \"okta\" and event.action == \"user.mfa.okta_verify.deny_push\"]\n [any where event.module == \"okta\" and event.action == \"user.authentication.sso\"]\n","type":"eql","index":["filebeat-*","logs-okta*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"},{"ecs":true,"name":"user.email","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"97a8e584-fd3b-421f-9b9d-9c9d9e57e9d7:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/97a8e584-fd3b-421f-9b9d-9c9d9e57e9d7:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/97a8e584-fd3b-421f-9b9d-9c9d9e57e9d7:101.0.1.json new file mode 100644 index 0000000000000..be20f4dbc9fb5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/97a8e584-fd3b-421f-9b9d-9c9d9e57e9d7:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Abuse of Repeated MFA Push Notifications v101.0.1","rule_id":"97a8e584-fd3b-421f-9b9d-9c9d9e57e9d7:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when an attacker abuses the Multi-Factor authentication mechanism by repeatedly issuing login requests until the user eventually accepts the Okta push notification. An adversary may attempt to bypass the Okta MFA policies configured for an organization to obtain unauthorized access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic"],"references":["https://www.mandiant.com/resources/russian-targeting-gov-business","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"language":"eql","query":"sequence by user.email with maxspan=10m\n [any where event.module == \"okta\" and event.action == \"user.mfa.okta_verify.deny_push\"]\n [any where event.module == \"okta\" and event.action == \"user.mfa.okta_verify.deny_push\"]\n [any where event.module == \"okta\" and event.action == \"user.authentication.sso\"]\n","type":"eql","index":["filebeat-*","logs-okta*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"},{"ecs":true,"name":"user.email","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"97a8e584-fd3b-421f-9b9d-9c9d9e57e9d7:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/97a8e584-fd3b-421f-9b9d-9c9d9e57e9d7:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/97a8e584-fd3b-421f-9b9d-9c9d9e57e9d7:101.0.2.json new file mode 100644 index 0000000000000..05950a583488f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/97a8e584-fd3b-421f-9b9d-9c9d9e57e9d7:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Abuse of Repeated MFA Push Notifications v101.0.2","rule_id":"97a8e584-fd3b-421f-9b9d-9c9d9e57e9d7:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when an attacker abuses the Multi-Factor authentication mechanism by repeatedly issuing login requests until the user eventually accepts the Okta push notification. An adversary may attempt to bypass the Okta MFA policies configured for an organization to obtain unauthorized access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic"],"references":["https://www.mandiant.com/resources/russian-targeting-gov-business","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"language":"eql","query":"sequence by user.email with maxspan=10m\n [any where event.module == \"okta\" and event.action == \"user.mfa.okta_verify.deny_push\"]\n [any where event.module == \"okta\" and event.action == \"user.mfa.okta_verify.deny_push\"]\n [any where event.module == \"okta\" and event.action == \"user.authentication.sso\"]\n","type":"eql","index":["filebeat-*","logs-okta*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"},{"ecs":true,"name":"user.email","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"97a8e584-fd3b-421f-9b9d-9c9d9e57e9d7:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/97aba1ef-6034-4bd3-8c1a-1e0996b27afa:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/97aba1ef-6034-4bd3-8c1a-1e0996b27afa:102.0.0.json new file mode 100644 index 0000000000000..6a375184083d7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/97aba1ef-6034-4bd3-8c1a-1e0996b27afa:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Zoom Child Process v102.0.0","rule_id":"97aba1ef-6034-4bd3-8c1a-1e0996b27afa:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A suspicious Zoom child process was detected, which may indicate an attempt to run unnoticed. Verify process details such as command line, network connections, file writes and associated file signature details as well.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"},{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"Zoom.exe\" and process.name : (\"cmd.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"97aba1ef-6034-4bd3-8c1a-1e0996b27afa:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/97aba1ef-6034-4bd3-8c1a-1e0996b27afa:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/97aba1ef-6034-4bd3-8c1a-1e0996b27afa:102.0.1.json new file mode 100644 index 0000000000000..e00e169b78684 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/97aba1ef-6034-4bd3-8c1a-1e0996b27afa:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Zoom Child Process v102.0.1","rule_id":"97aba1ef-6034-4bd3-8c1a-1e0996b27afa:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A suspicious Zoom child process was detected, which may indicate an attempt to run unnoticed. Verify process details such as command line, network connections, file writes and associated file signature details as well.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"},{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"Zoom.exe\" and process.name : (\"cmd.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"97aba1ef-6034-4bd3-8c1a-1e0996b27afa:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/97aba1ef-6034-4bd3-8c1a-1e0996b27afa:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/97aba1ef-6034-4bd3-8c1a-1e0996b27afa:102.0.2.json new file mode 100644 index 0000000000000..01d60c0e4d5bc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/97aba1ef-6034-4bd3-8c1a-1e0996b27afa:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Zoom Child Process v102.0.2","rule_id":"97aba1ef-6034-4bd3-8c1a-1e0996b27afa:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A suspicious Zoom child process was detected, which may indicate an attempt to run unnoticed. Verify process details such as command line, network connections, file writes and associated file signature details as well.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"},{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"Zoom.exe\" and process.name : (\"cmd.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"97aba1ef-6034-4bd3-8c1a-1e0996b27afa:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/97fc44d3-8dae-4019-ae83-298c3015600f:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/97fc44d3-8dae-4019-ae83-298c3015600f:102.0.0.json new file mode 100644 index 0000000000000..ae82664c89be6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/97fc44d3-8dae-4019-ae83-298c3015600f:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Startup or Run Key Registry Modification v102.0.0","rule_id":"97fc44d3-8dae-4019-ae83-298c3015600f:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies run key or startup key registry modifications. In order to survive reboots and other system interrupts, attackers will modify run keys within the registry or leverage startup folder items as a form of persistence.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Startup or Run Key Registry Modification\n\nAdversaries may achieve persistence by referencing a program with a registry run key. Adding an entry to the run keys\nin the registry will cause the program referenced to be executed when a user logs in. These programs will executed\nunder the context of the user and will have the account's permissions. This rule looks for this behavior by monitoring\na range of registry run keys.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- There is a high possibility of benign legitimate programs being added to registry run keys. This activity could be\nbased on new software installations, patches, or any kind of network administrator related activity. Before undertaking\nfurther investigation, verify that this activity is not benign.\n\n### Related rules\n\n- Suspicious Startup Shell Folder Modification - c8b150f0-0164-475b-a75e-74b47800a9ff\n- Persistent Scripts in the Startup Directory - f7c4dc5a-a58d-491d-9f14-9b66507121c0\n- Startup Folder Persistence via Unsigned Process - 2fba96c0-ade5-4bce-b92f-a5df2509da3f\n- Startup Persistence by a Suspicious Process - 440e2db4-bc7f-4c96-a068-65b78da59bde\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timeline_id":"3e47ef71-ebfc-4520-975c-cb27fc090799","timeline_title":"Comprehensive Registry Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"registry where registry.data.strings != null and\n registry.path : (\n /* Machine Hive */\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnce\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnceEx\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\\\\*\",\n /* Users Hive */\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnce\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnceEx\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\\\\*\"\n ) and\n /* add common legitimate changes without being too restrictive as this is one of the most abused AESPs */\n not registry.data.strings : \"ctfmon.exe /n\" and\n not (registry.value : \"Application Restart #*\" and process.name : \"csrss.exe\") and\n user.id not in (\"S-1-5-18\", \"S-1-5-19\", \"S-1-5-20\") and\n not registry.data.strings : (\"?:\\\\Program Files\\\\*.exe\", \"?:\\\\Program Files (x86)\\\\*.exe\") and\n not process.executable : (\"?:\\\\Windows\\\\System32\\\\msiexec.exe\", \"?:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\") and\n not (process.name : \"OneDriveSetup.exe\" and\n registry.value : (\"Delete Cached Standalone Update Binary\", \"Delete Cached Update Binary\", \"amd64\", \"Uninstall *\") and\n registry.data.strings : \"?:\\\\Windows\\\\system32\\\\cmd.exe /q /c * \\\"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Microsoft\\\\OneDrive\\\\*\\\"\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"registry.value","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"97fc44d3-8dae-4019-ae83-298c3015600f:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/97fc44d3-8dae-4019-ae83-298c3015600f:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/97fc44d3-8dae-4019-ae83-298c3015600f:102.0.1.json new file mode 100644 index 0000000000000..8c1220683d927 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/97fc44d3-8dae-4019-ae83-298c3015600f:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Startup or Run Key Registry Modification v102.0.1","rule_id":"97fc44d3-8dae-4019-ae83-298c3015600f:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies run key or startup key registry modifications. In order to survive reboots and other system interrupts, attackers will modify run keys within the registry or leverage startup folder items as a form of persistence.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Startup or Run Key Registry Modification\n\nAdversaries may achieve persistence by referencing a program with a registry run key. Adding an entry to the run keys\nin the registry will cause the program referenced to be executed when a user logs in. These programs will executed\nunder the context of the user and will have the account's permissions. This rule looks for this behavior by monitoring\na range of registry run keys.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- There is a high possibility of benign legitimate programs being added to registry run keys. This activity could be\nbased on new software installations, patches, or any kind of network administrator related activity. Before undertaking\nfurther investigation, verify that this activity is not benign.\n\n### Related rules\n\n- Suspicious Startup Shell Folder Modification - c8b150f0-0164-475b-a75e-74b47800a9ff\n- Persistent Scripts in the Startup Directory - f7c4dc5a-a58d-491d-9f14-9b66507121c0\n- Startup Folder Persistence via Unsigned Process - 2fba96c0-ade5-4bce-b92f-a5df2509da3f\n- Startup Persistence by a Suspicious Process - 440e2db4-bc7f-4c96-a068-65b78da59bde\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timeline_id":"3e47ef71-ebfc-4520-975c-cb27fc090799","timeline_title":"Comprehensive Registry Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"registry where registry.data.strings != null and\n registry.path : (\n /* Machine Hive */\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnce\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnceEx\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\\\\*\",\n /* Users Hive */\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnce\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnceEx\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\\\\*\"\n ) and\n /* add common legitimate changes without being too restrictive as this is one of the most abused AESPs */\n not registry.data.strings : \"ctfmon.exe /n\" and\n not (registry.value : \"Application Restart #*\" and process.name : \"csrss.exe\") and\n user.id not in (\"S-1-5-18\", \"S-1-5-19\", \"S-1-5-20\") and\n not registry.data.strings : (\"?:\\\\Program Files\\\\*.exe\", \"?:\\\\Program Files (x86)\\\\*.exe\") and\n not process.executable : (\"?:\\\\Windows\\\\System32\\\\msiexec.exe\", \"?:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\") and\n not (process.name : \"OneDriveSetup.exe\" and\n registry.value : (\"Delete Cached Standalone Update Binary\", \"Delete Cached Update Binary\", \"amd64\", \"Uninstall *\") and\n registry.data.strings : \"?:\\\\Windows\\\\system32\\\\cmd.exe /q /c * \\\"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Microsoft\\\\OneDrive\\\\*\\\"\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"registry.value","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"97fc44d3-8dae-4019-ae83-298c3015600f:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/97fc44d3-8dae-4019-ae83-298c3015600f:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/97fc44d3-8dae-4019-ae83-298c3015600f:102.0.2.json new file mode 100644 index 0000000000000..24b0b38780ac2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/97fc44d3-8dae-4019-ae83-298c3015600f:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Startup or Run Key Registry Modification v102.0.2","rule_id":"97fc44d3-8dae-4019-ae83-298c3015600f:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies run key or startup key registry modifications. In order to survive reboots and other system interrupts, attackers will modify run keys within the registry or leverage startup folder items as a form of persistence.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Startup or Run Key Registry Modification\n\nAdversaries may achieve persistence by referencing a program with a registry run key. Adding an entry to the run keys\nin the registry will cause the program referenced to be executed when a user logs in. These programs will executed\nunder the context of the user and will have the account's permissions. This rule looks for this behavior by monitoring\na range of registry run keys.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- There is a high possibility of benign legitimate programs being added to registry run keys. This activity could be\nbased on new software installations, patches, or any kind of network administrator related activity. Before undertaking\nfurther investigation, verify that this activity is not benign.\n\n### Related rules\n\n- Suspicious Startup Shell Folder Modification - c8b150f0-0164-475b-a75e-74b47800a9ff\n- Persistent Scripts in the Startup Directory - f7c4dc5a-a58d-491d-9f14-9b66507121c0\n- Startup Folder Persistence via Unsigned Process - 2fba96c0-ade5-4bce-b92f-a5df2509da3f\n- Startup Persistence by a Suspicious Process - 440e2db4-bc7f-4c96-a068-65b78da59bde\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timeline_id":"3e47ef71-ebfc-4520-975c-cb27fc090799","timeline_title":"Comprehensive Registry Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"registry where registry.data.strings != null and\n registry.path : (\n /* Machine Hive */\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnce\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnceEx\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\\\\*\",\n /* Users Hive */\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnce\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunOnceEx\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\*\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Winlogon\\\\Shell\\\\*\"\n ) and\n /* add common legitimate changes without being too restrictive as this is one of the most abused AESPs */\n not registry.data.strings : \"ctfmon.exe /n\" and\n not (registry.value : \"Application Restart #*\" and process.name : \"csrss.exe\") and\n user.id not in (\"S-1-5-18\", \"S-1-5-19\", \"S-1-5-20\") and\n not registry.data.strings : (\"?:\\\\Program Files\\\\*.exe\", \"?:\\\\Program Files (x86)\\\\*.exe\") and\n not process.executable : (\"?:\\\\Windows\\\\System32\\\\msiexec.exe\", \"?:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\") and\n not (process.name : \"OneDriveSetup.exe\" and\n registry.value : (\"Delete Cached Standalone Update Binary\", \"Delete Cached Update Binary\", \"amd64\", \"Uninstall *\") and\n registry.data.strings : \"?:\\\\Windows\\\\system32\\\\cmd.exe /q /c * \\\"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Microsoft\\\\OneDrive\\\\*\\\"\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"registry.value","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"97fc44d3-8dae-4019-ae83-298c3015600f:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9890ee61-d061-403d-9bf6-64934c51f638:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9890ee61-d061-403d-9bf6-64934c51f638:102.0.0.json new file mode 100644 index 0000000000000..1eb6037c0a479 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9890ee61-d061-403d-9bf6-64934c51f638:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP IAM Service Account Key Deletion v102.0.0","rule_id":"9890ee61-d061-403d-9bf6-64934c51f638:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an Identity and Access Management (IAM) service account key in Google Cloud Platform (GCP). Each service account is associated with two sets of public/private RSA key pairs that are used to authenticate. If a key is deleted, the application will no longer be able to access Google Cloud resources using that key. A security best practice is to rotate your service account keys regularly.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Service account key deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Key deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/iam/docs/service-accounts","https://cloud.google.com/iam/docs/creating-managing-service-account-keys"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.DeleteServiceAccountKey and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"9890ee61-d061-403d-9bf6-64934c51f638:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9890ee61-d061-403d-9bf6-64934c51f638:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9890ee61-d061-403d-9bf6-64934c51f638:102.0.1.json new file mode 100644 index 0000000000000..be122ba623a31 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9890ee61-d061-403d-9bf6-64934c51f638:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP IAM Service Account Key Deletion v102.0.1","rule_id":"9890ee61-d061-403d-9bf6-64934c51f638:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an Identity and Access Management (IAM) service account key in Google Cloud Platform (GCP). Each service account is associated with two sets of public/private RSA key pairs that are used to authenticate. If a key is deleted, the application will no longer be able to access Google Cloud resources using that key. A security best practice is to rotate your service account keys regularly.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Service account key deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Key deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/iam/docs/service-accounts","https://cloud.google.com/iam/docs/creating-managing-service-account-keys"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.DeleteServiceAccountKey and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"9890ee61-d061-403d-9bf6-64934c51f638:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9890ee61-d061-403d-9bf6-64934c51f638:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9890ee61-d061-403d-9bf6-64934c51f638:102.0.2.json new file mode 100644 index 0000000000000..7a870caf30a87 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9890ee61-d061-403d-9bf6-64934c51f638:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP IAM Service Account Key Deletion v102.0.2","rule_id":"9890ee61-d061-403d-9bf6-64934c51f638:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an Identity and Access Management (IAM) service account key in Google Cloud Platform (GCP). Each service account is associated with two sets of public/private RSA key pairs that are used to authenticate. If a key is deleted, the application will no longer be able to access Google Cloud resources using that key. A security best practice is to rotate your service account keys regularly.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Service account key deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Key deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/iam/docs/service-accounts","https://cloud.google.com/iam/docs/creating-managing-service-account-keys"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.DeleteServiceAccountKey and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"9890ee61-d061-403d-9bf6-64934c51f638:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/98995807-5b09-4e37-8a54-5cae5dc932d7:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/98995807-5b09-4e37-8a54-5cae5dc932d7:101.0.0.json new file mode 100644 index 0000000000000..29292cf5e9d21 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/98995807-5b09-4e37-8a54-5cae5dc932d7:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange Management Group Role Assignment v101.0.0","rule_id":"98995807-5b09-4e37-8a54-5cae5dc932d7:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new role is assigned to a management group in Microsoft 365. An adversary may attempt to add a role in order to maintain persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A new role may be assigned to a management group by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/new-managementroleassignment?view=exchange-ps","https://docs.microsoft.com/en-us/microsoft-365/admin/add-users/about-admin-roles?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"New-ManagementRoleAssignment\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"98995807-5b09-4e37-8a54-5cae5dc932d7:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/98995807-5b09-4e37-8a54-5cae5dc932d7:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/98995807-5b09-4e37-8a54-5cae5dc932d7:101.0.1.json new file mode 100644 index 0000000000000..fd753c1fe1ac7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/98995807-5b09-4e37-8a54-5cae5dc932d7:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange Management Group Role Assignment v101.0.1","rule_id":"98995807-5b09-4e37-8a54-5cae5dc932d7:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new role is assigned to a management group in Microsoft 365. An adversary may attempt to add a role in order to maintain persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A new role may be assigned to a management group by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/new-managementroleassignment?view=exchange-ps","https://docs.microsoft.com/en-us/microsoft-365/admin/add-users/about-admin-roles?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"New-ManagementRoleAssignment\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"98995807-5b09-4e37-8a54-5cae5dc932d7:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/98995807-5b09-4e37-8a54-5cae5dc932d7:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/98995807-5b09-4e37-8a54-5cae5dc932d7:101.0.2.json new file mode 100644 index 0000000000000..3d87abcb42647 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/98995807-5b09-4e37-8a54-5cae5dc932d7:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange Management Group Role Assignment v101.0.2","rule_id":"98995807-5b09-4e37-8a54-5cae5dc932d7:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new role is assigned to a management group in Microsoft 365. An adversary may attempt to add a role in order to maintain persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A new role may be assigned to a management group by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/new-managementroleassignment?view=exchange-ps","https://docs.microsoft.com/en-us/microsoft-365/admin/add-users/about-admin-roles?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"New-ManagementRoleAssignment\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"98995807-5b09-4e37-8a54-5cae5dc932d7:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/98fd7407-0bd5-5817-cda0-3fcc33113a56:103.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/98fd7407-0bd5-5817-cda0-3fcc33113a56:103.0.0.json new file mode 100644 index 0000000000000..876f7c893c9f6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/98fd7407-0bd5-5817-cda0-3fcc33113a56:103.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS EC2 Snapshot Activity v103.0.0","rule_id":"98fd7407-0bd5-5817-cda0-3fcc33113a56:103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An attempt was made to modify AWS EC2 snapshot attributes. Snapshots are sometimes shared by threat actors in order to exfiltrate bulk data from an EC2 fleet. If the permissions were modified, verify the snapshot was not shared with an unauthorized or unexpected AWS account.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS EC2 Snapshot Activity\n\nAmazon EC2 snapshots are a mechanism to create point-in-time references to data that reside in storage volumes. System\nadministrators commonly use this for backup operations and data recovery.\n\nThis rule looks for the modification of snapshot attributes using the API `ModifySnapshotAttribute` action. This can be\nused to share snapshots with unauthorized third parties, giving others access to all the data on the snapshot.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Search for dry run attempts against the resource ID of the snapshot from other user accounts within CloudTrail.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences involving other users.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Check if the shared permissions of the snapshot were modified to `Public` or include unknown account IDs.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["IAM users may occasionally share EC2 snapshots with another AWS account belonging to the same organization. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/modify-snapshot-attribute.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifySnapshotAttribute.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility","Exfiltration","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:ModifySnapshotAttribute\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"98fd7407-0bd5-5817-cda0-3fcc33113a56:103.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/98fd7407-0bd5-5817-cda0-3fcc33113a56:103.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/98fd7407-0bd5-5817-cda0-3fcc33113a56:103.0.1.json new file mode 100644 index 0000000000000..6f48e74f07deb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/98fd7407-0bd5-5817-cda0-3fcc33113a56:103.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS EC2 Snapshot Activity v103.0.1","rule_id":"98fd7407-0bd5-5817-cda0-3fcc33113a56:103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An attempt was made to modify AWS EC2 snapshot attributes. Snapshots are sometimes shared by threat actors in order to exfiltrate bulk data from an EC2 fleet. If the permissions were modified, verify the snapshot was not shared with an unauthorized or unexpected AWS account.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS EC2 Snapshot Activity\n\nAmazon EC2 snapshots are a mechanism to create point-in-time references to data that reside in storage volumes. System\nadministrators commonly use this for backup operations and data recovery.\n\nThis rule looks for the modification of snapshot attributes using the API `ModifySnapshotAttribute` action. This can be\nused to share snapshots with unauthorized third parties, giving others access to all the data on the snapshot.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Search for dry run attempts against the resource ID of the snapshot from other user accounts within CloudTrail.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences involving other users.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Check if the shared permissions of the snapshot were modified to `Public` or include unknown account IDs.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["IAM users may occasionally share EC2 snapshots with another AWS account belonging to the same organization. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/modify-snapshot-attribute.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifySnapshotAttribute.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility","Exfiltration","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:ModifySnapshotAttribute\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"98fd7407-0bd5-5817-cda0-3fcc33113a56:103.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/98fd7407-0bd5-5817-cda0-3fcc33113a56:103.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/98fd7407-0bd5-5817-cda0-3fcc33113a56:103.0.2.json new file mode 100644 index 0000000000000..ece33a0d59340 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/98fd7407-0bd5-5817-cda0-3fcc33113a56:103.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS EC2 Snapshot Activity v103.0.2","rule_id":"98fd7407-0bd5-5817-cda0-3fcc33113a56:103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An attempt was made to modify AWS EC2 snapshot attributes. Snapshots are sometimes shared by threat actors in order to exfiltrate bulk data from an EC2 fleet. If the permissions were modified, verify the snapshot was not shared with an unauthorized or unexpected AWS account.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS EC2 Snapshot Activity\n\nAmazon EC2 snapshots are a mechanism to create point-in-time references to data that reside in storage volumes. System\nadministrators commonly use this for backup operations and data recovery.\n\nThis rule looks for the modification of snapshot attributes using the API `ModifySnapshotAttribute` action. This can be\nused to share snapshots with unauthorized third parties, giving others access to all the data on the snapshot.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Search for dry run attempts against the resource ID of the snapshot from other user accounts within CloudTrail.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences involving other users.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Check if the shared permissions of the snapshot were modified to `Public` or include unknown account IDs.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["IAM users may occasionally share EC2 snapshots with another AWS account belonging to the same organization. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/modify-snapshot-attribute.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifySnapshotAttribute.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility","Exfiltration","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:ModifySnapshotAttribute\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"98fd7407-0bd5-5817-cda0-3fcc33113a56:103.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/990838aa-a953-4f3e-b3cb-6ddf7584de9e:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/990838aa-a953-4f3e-b3cb-6ddf7584de9e:100.0.0.json new file mode 100644 index 0000000000000..1a77866494555 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/990838aa-a953-4f3e-b3cb-6ddf7584de9e:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Process Injection - Prevented - Elastic Endgame v100.0.0","rule_id":"990838aa-a953-4f3e-b3cb-6ddf7584de9e:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented Process Injection. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:kernel_shellcode_event or endgame.event_subtype_full:kernel_shellcode_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"990838aa-a953-4f3e-b3cb-6ddf7584de9e:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/990838aa-a953-4f3e-b3cb-6ddf7584de9e:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/990838aa-a953-4f3e-b3cb-6ddf7584de9e:100.0.1.json new file mode 100644 index 0000000000000..027d0df86e4da --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/990838aa-a953-4f3e-b3cb-6ddf7584de9e:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Process Injection - Prevented - Elastic Endgame v100.0.1","rule_id":"990838aa-a953-4f3e-b3cb-6ddf7584de9e:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented Process Injection. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:kernel_shellcode_event or endgame.event_subtype_full:kernel_shellcode_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"990838aa-a953-4f3e-b3cb-6ddf7584de9e:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/990838aa-a953-4f3e-b3cb-6ddf7584de9e:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/990838aa-a953-4f3e-b3cb-6ddf7584de9e:100.0.2.json new file mode 100644 index 0000000000000..33ea0dba91b18 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/990838aa-a953-4f3e-b3cb-6ddf7584de9e:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Process Injection - Prevented - Elastic Endgame v100.0.2","rule_id":"990838aa-a953-4f3e-b3cb-6ddf7584de9e:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented Process Injection. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:kernel_shellcode_event or endgame.event_subtype_full:kernel_shellcode_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"990838aa-a953-4f3e-b3cb-6ddf7584de9e:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/99239e7d-b0d4-46e3-8609-acafcf99f68c:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/99239e7d-b0d4-46e3-8609-acafcf99f68c:100.0.0.json new file mode 100644 index 0000000000000..c77854a017418 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/99239e7d-b0d4-46e3-8609-acafcf99f68c:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"MacOS Installer Package Spawns Network Event v100.0.0","rule_id":"99239e7d-b0d4-46e3-8609-acafcf99f68c:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the execution of a MacOS installer package with an abnormal child process (e.g bash) followed immediately by a network connection via a suspicious process (e.g curl). Threat actors will build and distribute malicious MacOS installer packages, which have a .pkg extension, many times imitating valid software in order to persuade and infect their victims often using the package files (e.g pre/post install scripts etc.) to download additional tools or malicious software. If this rule fires it should indicate the installation of a malicious or suspicious package.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Custom organization-specific macOS packages that use .pkg files to run cURL could trigger this rule. If known behavior is causing false positives, it can be excluded from the rule."],"from":"now-9m","references":["https://redcanary.com/blog/clipping-silver-sparrows-wings","https://posts.specterops.io/introducing-mystikal-4fbd2f7ae520","https://github.com/D00MFist/Mystikal"],"tags":["Elastic","Host","macOS","Threat Detection","Execution","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.007","name":"JavaScript","reference":"https://attack.mitre.org/techniques/T1059/007/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.001","name":"Web Protocols","reference":"https://attack.mitre.org/techniques/T1071/001/"}]}]}],"language":"eql","query":"sequence by host.id, user.id with maxspan=30s\n[process where event.type == \"start\" and event.action == \"exec\" and process.parent.name : (\"installer\", \"package_script_service\") and process.name : (\"bash\", \"sh\", \"zsh\", \"python\", \"osascript\", \"tclsh*\")]\n[network where event.type == \"start\" and process.name : (\"curl\", \"osascript\", \"wget\", \"python\")]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"99239e7d-b0d4-46e3-8609-acafcf99f68c:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/99239e7d-b0d4-46e3-8609-acafcf99f68c:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/99239e7d-b0d4-46e3-8609-acafcf99f68c:100.0.1.json new file mode 100644 index 0000000000000..3992fc1e968fc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/99239e7d-b0d4-46e3-8609-acafcf99f68c:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"MacOS Installer Package Spawns Network Event v100.0.1","rule_id":"99239e7d-b0d4-46e3-8609-acafcf99f68c:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the execution of a MacOS installer package with an abnormal child process (e.g bash) followed immediately by a network connection via a suspicious process (e.g curl). Threat actors will build and distribute malicious MacOS installer packages, which have a .pkg extension, many times imitating valid software in order to persuade and infect their victims often using the package files (e.g pre/post install scripts etc.) to download additional tools or malicious software. If this rule fires it should indicate the installation of a malicious or suspicious package.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Custom organization-specific macOS packages that use .pkg files to run cURL could trigger this rule. If known behavior is causing false positives, it can be excluded from the rule."],"from":"now-9m","references":["https://redcanary.com/blog/clipping-silver-sparrows-wings","https://posts.specterops.io/introducing-mystikal-4fbd2f7ae520","https://github.com/D00MFist/Mystikal"],"tags":["Elastic","Host","macOS","Threat Detection","Execution","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.007","name":"JavaScript","reference":"https://attack.mitre.org/techniques/T1059/007/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.001","name":"Web Protocols","reference":"https://attack.mitre.org/techniques/T1071/001/"}]}]}],"language":"eql","query":"sequence by host.id, user.id with maxspan=30s\n[process where event.type == \"start\" and event.action == \"exec\" and process.parent.name : (\"installer\", \"package_script_service\") and process.name : (\"bash\", \"sh\", \"zsh\", \"python\", \"osascript\", \"tclsh*\")]\n[network where event.type == \"start\" and process.name : (\"curl\", \"osascript\", \"wget\", \"python\")]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"99239e7d-b0d4-46e3-8609-acafcf99f68c:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/99239e7d-b0d4-46e3-8609-acafcf99f68c:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/99239e7d-b0d4-46e3-8609-acafcf99f68c:100.0.2.json new file mode 100644 index 0000000000000..719e320e84847 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/99239e7d-b0d4-46e3-8609-acafcf99f68c:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"MacOS Installer Package Spawns Network Event v100.0.2","rule_id":"99239e7d-b0d4-46e3-8609-acafcf99f68c:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the execution of a MacOS installer package with an abnormal child process (e.g bash) followed immediately by a network connection via a suspicious process (e.g curl). Threat actors will build and distribute malicious MacOS installer packages, which have a .pkg extension, many times imitating valid software in order to persuade and infect their victims often using the package files (e.g pre/post install scripts etc.) to download additional tools or malicious software. If this rule fires it should indicate the installation of a malicious or suspicious package.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Custom organization-specific macOS packages that use .pkg files to run cURL could trigger this rule. If known behavior is causing false positives, it can be excluded from the rule."],"from":"now-9m","references":["https://redcanary.com/blog/clipping-silver-sparrows-wings","https://posts.specterops.io/introducing-mystikal-4fbd2f7ae520","https://github.com/D00MFist/Mystikal"],"tags":["Elastic","Host","macOS","Threat Detection","Execution","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.007","name":"JavaScript","reference":"https://attack.mitre.org/techniques/T1059/007/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.001","name":"Web Protocols","reference":"https://attack.mitre.org/techniques/T1071/001/"}]}]}],"language":"eql","query":"sequence by host.id, user.id with maxspan=30s\n[process where event.type == \"start\" and event.action == \"exec\" and process.parent.name : (\"installer\", \"package_script_service\") and process.name : (\"bash\", \"sh\", \"zsh\", \"python\", \"osascript\", \"tclsh*\")]\n[network where event.type == \"start\" and process.name : (\"curl\", \"osascript\", \"wget\", \"python\")]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"99239e7d-b0d4-46e3-8609-acafcf99f68c:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9960432d-9b26-409f-972b-839a959e79e2:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9960432d-9b26-409f-972b-839a959e79e2:101.0.0.json new file mode 100644 index 0000000000000..7efbf794b14ac --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9960432d-9b26-409f-972b-839a959e79e2:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Credential Access via LSASS Memory Dump v101.0.0","rule_id":"9960432d-9b26-409f-972b-839a959e79e2:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious access to LSASS handle from a call trace pointing to DBGHelp.dll or DBGCore.dll, which both export the MiniDumpWriteDump method that can be used to dump LSASS memory content in preparation for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.ired.team/offensive-security/credential-access-and-credential-dumping/dump-credentials-from-lsass-process-without-mimikatz","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"process where event.code == \"10\" and\n winlog.event_data.TargetImage : \"?:\\\\WINDOWS\\\\system32\\\\lsass.exe\" and\n\n /* DLLs exporting MiniDumpWriteDump API to create an lsass mdmp*/\n winlog.event_data.CallTrace : (\"*dbghelp*\", \"*dbgcore*\") and\n\n /* case of lsass crashing */\n not process.executable : (\"?:\\\\Windows\\\\System32\\\\WerFault.exe\", \"?:\\\\Windows\\\\System32\\\\WerFaultSecure.exe\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallTrace","type":"unknown"},{"ecs":false,"name":"winlog.event_data.TargetImage","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9960432d-9b26-409f-972b-839a959e79e2:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9960432d-9b26-409f-972b-839a959e79e2:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9960432d-9b26-409f-972b-839a959e79e2:101.0.1.json new file mode 100644 index 0000000000000..aadec187be7e0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9960432d-9b26-409f-972b-839a959e79e2:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Credential Access via LSASS Memory Dump v101.0.1","rule_id":"9960432d-9b26-409f-972b-839a959e79e2:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious access to LSASS handle from a call trace pointing to DBGHelp.dll or DBGCore.dll, which both export the MiniDumpWriteDump method that can be used to dump LSASS memory content in preparation for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.ired.team/offensive-security/credential-access-and-credential-dumping/dump-credentials-from-lsass-process-without-mimikatz","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"process where event.code == \"10\" and\n winlog.event_data.TargetImage : \"?:\\\\WINDOWS\\\\system32\\\\lsass.exe\" and\n\n /* DLLs exporting MiniDumpWriteDump API to create an lsass mdmp*/\n winlog.event_data.CallTrace : (\"*dbghelp*\", \"*dbgcore*\") and\n\n /* case of lsass crashing */\n not process.executable : (\"?:\\\\Windows\\\\System32\\\\WerFault.exe\", \"?:\\\\Windows\\\\System32\\\\WerFaultSecure.exe\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallTrace","type":"unknown"},{"ecs":false,"name":"winlog.event_data.TargetImage","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9960432d-9b26-409f-972b-839a959e79e2:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9960432d-9b26-409f-972b-839a959e79e2:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9960432d-9b26-409f-972b-839a959e79e2:101.0.2.json new file mode 100644 index 0000000000000..97dc04f606a3d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9960432d-9b26-409f-972b-839a959e79e2:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Credential Access via LSASS Memory Dump v101.0.2","rule_id":"9960432d-9b26-409f-972b-839a959e79e2:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious access to LSASS handle from a call trace pointing to DBGHelp.dll or DBGCore.dll, which both export the MiniDumpWriteDump method that can be used to dump LSASS memory content in preparation for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.ired.team/offensive-security/credential-access-and-credential-dumping/dump-credentials-from-lsass-process-without-mimikatz","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"process where event.code == \"10\" and\n winlog.event_data.TargetImage : \"?:\\\\WINDOWS\\\\system32\\\\lsass.exe\" and\n\n /* DLLs exporting MiniDumpWriteDump API to create an lsass mdmp*/\n winlog.event_data.CallTrace : (\"*dbghelp*\", \"*dbgcore*\") and\n\n /* case of lsass crashing */\n not process.executable : (\"?:\\\\Windows\\\\System32\\\\WerFault.exe\", \"?:\\\\Windows\\\\System32\\\\WerFaultSecure.exe\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":false,"name":"winlog.event_data.CallTrace","type":"unknown"},{"ecs":false,"name":"winlog.event_data.TargetImage","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9960432d-9b26-409f-972b-839a959e79e2:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/99dcf974-6587-4f65-9252-d866a3fdfd9c:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/99dcf974-6587-4f65-9252-d866a3fdfd9c:100.0.0.json new file mode 100644 index 0000000000000..c9663ef039969 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/99dcf974-6587-4f65-9252-d866a3fdfd9c:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Spike in Failed Logon Events v100.0.0","rule_id":"99dcf974-6587-4f65-9252-d866a3fdfd9c:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job found an unusually large spike in authentication failure events. This can be due to password spraying, user enumeration or brute force activity and may be a precursor to account takeover or credentialed access.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A misconfigured service account can trigger this alert. A password change on an account used by an email client can trigger this alert. Security test cycles that include brute force or password spraying activities may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_high_count_logon_fails","type":"machine_learning"},"id":"99dcf974-6587-4f65-9252-d866a3fdfd9c:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/99dcf974-6587-4f65-9252-d866a3fdfd9c:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/99dcf974-6587-4f65-9252-d866a3fdfd9c:100.0.1.json new file mode 100644 index 0000000000000..4e4b45786775b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/99dcf974-6587-4f65-9252-d866a3fdfd9c:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Spike in Failed Logon Events v100.0.1","rule_id":"99dcf974-6587-4f65-9252-d866a3fdfd9c:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job found an unusually large spike in authentication failure events. This can be due to password spraying, user enumeration or brute force activity and may be a precursor to account takeover or credentialed access.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A misconfigured service account can trigger this alert. A password change on an account used by an email client can trigger this alert. Security test cycles that include brute force or password spraying activities may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_high_count_logon_fails","type":"machine_learning"},"id":"99dcf974-6587-4f65-9252-d866a3fdfd9c:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/99dcf974-6587-4f65-9252-d866a3fdfd9c:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/99dcf974-6587-4f65-9252-d866a3fdfd9c:100.0.2.json new file mode 100644 index 0000000000000..644687f38dca7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/99dcf974-6587-4f65-9252-d866a3fdfd9c:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Spike in Failed Logon Events v100.0.2","rule_id":"99dcf974-6587-4f65-9252-d866a3fdfd9c:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job found an unusually large spike in authentication failure events. This can be due to password spraying, user enumeration or brute force activity and may be a precursor to account takeover or credentialed access.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A misconfigured service account can trigger this alert. A password change on an account used by an email client can trigger this alert. Security test cycles that include brute force or password spraying activities may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_high_count_logon_fails","type":"machine_learning"},"id":"99dcf974-6587-4f65-9252-d866a3fdfd9c:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9a1a2dae-0b5f-4c3d-8305-a268d404c306:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9a1a2dae-0b5f-4c3d-8305-a268d404c306:100.0.0.json new file mode 100644 index 0000000000000..28d8234d7b143 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9a1a2dae-0b5f-4c3d-8305-a268d404c306:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Endpoint Security v100.0.0","rule_id":"9a1a2dae-0b5f-4c3d-8305-a268d404c306:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Generates a detection alert each time an Elastic Endpoint Security alert is received. Enabling this rule allows you to immediately begin investigating your Endpoint alerts.","risk_score":47,"severity":"medium","license":"Elastic License v2","rule_name_override":"message","timestamp_override":"event.ingested","author":["Elastic"],"enabled":true,"exceptions_list":[{"id":"endpoint_list","list_id":"endpoint_list","namespace_type":"agnostic","type":"endpoint"}],"from":"now-10m","max_signals":10000,"risk_score_mapping":[{"field":"event.risk_score","operator":"equals","value":""}],"severity_mapping":[{"field":"event.severity","operator":"equals","severity":"low","value":"21"},{"field":"event.severity","operator":"equals","severity":"medium","value":"47"},{"field":"event.severity","operator":"equals","severity":"high","value":"73"},{"field":"event.severity","operator":"equals","severity":"critical","value":"99"}],"tags":["Elastic","Endpoint Security"],"type":"query","index":["logs-endpoint.alerts-*"],"language":"kuery","query":"event.kind:alert and event.module:(endpoint and not endgame)\n","required_fields":[{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"9a1a2dae-0b5f-4c3d-8305-a268d404c306:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9a1a2dae-0b5f-4c3d-8305-a268d404c306:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9a1a2dae-0b5f-4c3d-8305-a268d404c306:100.0.1.json new file mode 100644 index 0000000000000..1854201a25d9f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9a1a2dae-0b5f-4c3d-8305-a268d404c306:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Endpoint Security v100.0.1","rule_id":"9a1a2dae-0b5f-4c3d-8305-a268d404c306:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Generates a detection alert each time an Elastic Endpoint Security alert is received. Enabling this rule allows you to immediately begin investigating your Endpoint alerts.","risk_score":47,"severity":"medium","license":"Elastic License v2","rule_name_override":"message","timestamp_override":"event.ingested","author":["Elastic"],"enabled":true,"exceptions_list":[{"id":"endpoint_list","list_id":"endpoint_list","namespace_type":"agnostic","type":"endpoint"}],"from":"now-10m","max_signals":10000,"risk_score_mapping":[{"field":"event.risk_score","operator":"equals","value":""}],"severity_mapping":[{"field":"event.severity","operator":"equals","severity":"low","value":"21"},{"field":"event.severity","operator":"equals","severity":"medium","value":"47"},{"field":"event.severity","operator":"equals","severity":"high","value":"73"},{"field":"event.severity","operator":"equals","severity":"critical","value":"99"}],"tags":["Elastic","Endpoint Security"],"type":"query","index":["logs-endpoint.alerts-*"],"language":"kuery","query":"event.kind:alert and event.module:(endpoint and not endgame)\n","required_fields":[{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"9a1a2dae-0b5f-4c3d-8305-a268d404c306:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9a1a2dae-0b5f-4c3d-8305-a268d404c306:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9a1a2dae-0b5f-4c3d-8305-a268d404c306:100.0.2.json new file mode 100644 index 0000000000000..86c0a92e87315 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9a1a2dae-0b5f-4c3d-8305-a268d404c306:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Endpoint Security v100.0.2","rule_id":"9a1a2dae-0b5f-4c3d-8305-a268d404c306:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Generates a detection alert each time an Elastic Endpoint Security alert is received. Enabling this rule allows you to immediately begin investigating your Endpoint alerts.","risk_score":47,"severity":"medium","license":"Elastic License v2","rule_name_override":"message","timestamp_override":"event.ingested","author":["Elastic"],"enabled":true,"exceptions_list":[{"id":"endpoint_list","list_id":"endpoint_list","namespace_type":"agnostic","type":"endpoint"}],"from":"now-10m","max_signals":10000,"risk_score_mapping":[{"field":"event.risk_score","operator":"equals","value":""}],"severity_mapping":[{"field":"event.severity","operator":"equals","severity":"low","value":"21"},{"field":"event.severity","operator":"equals","severity":"medium","value":"47"},{"field":"event.severity","operator":"equals","severity":"high","value":"73"},{"field":"event.severity","operator":"equals","severity":"critical","value":"99"}],"tags":["Elastic","Endpoint Security"],"type":"query","index":["logs-endpoint.alerts-*"],"language":"kuery","query":"event.kind:alert and event.module:(endpoint and not endgame)\n","required_fields":[{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"9a1a2dae-0b5f-4c3d-8305-a268d404c306:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9a3a3689-8ed1-4cdb-83fb-9506db54c61f:2.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9a3a3689-8ed1-4cdb-83fb-9506db54c61f:2.0.0.json new file mode 100644 index 0000000000000..98a580d56f436 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9a3a3689-8ed1-4cdb-83fb-9506db54c61f:2.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Shadow File Read via Command Line Utilities v2.0.0","rule_id":"9a3a3689-8ed1-4cdb-83fb-9506db54c61f:2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies access to the /etc/shadow file via the commandline using standard system utilities. After elevating privileges to root, threat actors may attempt to read or dump this file in order to gain valid credentials. They may utilize these to move laterally undetected and access additional resources.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.cyberciti.biz/faq/unix-linux-password-cracking-john-the-ripper/"],"tags":["Elastic","Host","Linux","Threat Detection","Privilege Escalation","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.008","name":"/etc/passwd and /etc/shadow","reference":"https://attack.mitre.org/techniques/T1003/008/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and event.action == \"exec\" and user.name == \"root\" \n and (process.args : \"/etc/shadow\" or (process.working_directory: \"/etc\" and process.args: \"shadow\"))\n and not process.executable: \n (\"/usr/bin/tar\", \n \"/bin/tar\", \n \"/usr/bin/gzip\", \n \"/bin/gzip\", \n \"/usr/bin/zip\", \n \"/bin/zip\", \n \"/usr/bin/stat\", \n \"/bin/stat\", \n \"/usr/bin/cmp\", \n \"/bin/cmp\", \n \"/usr/bin/sudo\", \n \"/bin/sudo\", \n \"/usr/bin/find\", \n \"/bin/find\", \n \"/usr/bin/ls\", \n \"/bin/ls\", \n \"/usr/bin/uniq\", \n \"/bin/uniq\", \n \"/usr/bin/unzip\", \n \"/bin/unzip\") \n and not process.parent.executable: \"/bin/dracut\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"process.working_directory","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"9a3a3689-8ed1-4cdb-83fb-9506db54c61f:2.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9a3a3689-8ed1-4cdb-83fb-9506db54c61f:2.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9a3a3689-8ed1-4cdb-83fb-9506db54c61f:2.0.1.json new file mode 100644 index 0000000000000..a9763c1aa22b4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9a3a3689-8ed1-4cdb-83fb-9506db54c61f:2.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Shadow File Read via Command Line Utilities v2.0.1","rule_id":"9a3a3689-8ed1-4cdb-83fb-9506db54c61f:2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies access to the /etc/shadow file via the commandline using standard system utilities. After elevating privileges to root, threat actors may attempt to read or dump this file in order to gain valid credentials. They may utilize these to move laterally undetected and access additional resources.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.cyberciti.biz/faq/unix-linux-password-cracking-john-the-ripper/"],"tags":["Elastic","Host","Linux","Threat Detection","Privilege Escalation","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.008","name":"/etc/passwd and /etc/shadow","reference":"https://attack.mitre.org/techniques/T1003/008/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and event.action == \"exec\" and user.name == \"root\" \n and (process.args : \"/etc/shadow\" or (process.working_directory: \"/etc\" and process.args: \"shadow\"))\n and not process.executable: \n (\"/usr/bin/tar\", \n \"/bin/tar\", \n \"/usr/bin/gzip\", \n \"/bin/gzip\", \n \"/usr/bin/zip\", \n \"/bin/zip\", \n \"/usr/bin/stat\", \n \"/bin/stat\", \n \"/usr/bin/cmp\", \n \"/bin/cmp\", \n \"/usr/bin/sudo\", \n \"/bin/sudo\", \n \"/usr/bin/find\", \n \"/bin/find\", \n \"/usr/bin/ls\", \n \"/bin/ls\", \n \"/usr/bin/uniq\", \n \"/bin/uniq\", \n \"/usr/bin/unzip\", \n \"/bin/unzip\") \n and not process.parent.executable: \"/bin/dracut\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"process.working_directory","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"9a3a3689-8ed1-4cdb-83fb-9506db54c61f:2.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9a3a3689-8ed1-4cdb-83fb-9506db54c61f:2.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9a3a3689-8ed1-4cdb-83fb-9506db54c61f:2.0.2.json new file mode 100644 index 0000000000000..3db5f66b2c773 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9a3a3689-8ed1-4cdb-83fb-9506db54c61f:2.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Shadow File Read via Command Line Utilities v2.0.2","rule_id":"9a3a3689-8ed1-4cdb-83fb-9506db54c61f:2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies access to the /etc/shadow file via the commandline using standard system utilities. After elevating privileges to root, threat actors may attempt to read or dump this file in order to gain valid credentials. They may utilize these to move laterally undetected and access additional resources.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.cyberciti.biz/faq/unix-linux-password-cracking-john-the-ripper/"],"tags":["Elastic","Host","Linux","Threat Detection","Privilege Escalation","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.008","name":"/etc/passwd and /etc/shadow","reference":"https://attack.mitre.org/techniques/T1003/008/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and event.action == \"exec\" and user.name == \"root\" \n and (process.args : \"/etc/shadow\" or (process.working_directory: \"/etc\" and process.args: \"shadow\"))\n and not process.executable: \n (\"/usr/bin/tar\", \n \"/bin/tar\", \n \"/usr/bin/gzip\", \n \"/bin/gzip\", \n \"/usr/bin/zip\", \n \"/bin/zip\", \n \"/usr/bin/stat\", \n \"/bin/stat\", \n \"/usr/bin/cmp\", \n \"/bin/cmp\", \n \"/usr/bin/sudo\", \n \"/bin/sudo\", \n \"/usr/bin/find\", \n \"/bin/find\", \n \"/usr/bin/ls\", \n \"/bin/ls\", \n \"/usr/bin/uniq\", \n \"/bin/uniq\", \n \"/usr/bin/unzip\", \n \"/bin/unzip\") \n and not process.parent.executable: \"/bin/dracut\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"process.working_directory","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"9a3a3689-8ed1-4cdb-83fb-9506db54c61f:2.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9a5b4e31-6cde-4295-9ff7-6be1b8567e1b:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9a5b4e31-6cde-4295-9ff7-6be1b8567e1b:101.0.0.json new file mode 100644 index 0000000000000..bf6b7324cef76 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9a5b4e31-6cde-4295-9ff7-6be1b8567e1b:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Explorer Child Process v101.0.0","rule_id":"9a5b4e31-6cde-4295-9ff7-6be1b8567e1b:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious Windows explorer child process. Explorer.exe can be abused to launch malicious scripts or executables from a trusted parent process.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"},{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (\n process.name : (\"cscript.exe\", \"wscript.exe\", \"powershell.exe\", \"rundll32.exe\", \"cmd.exe\", \"mshta.exe\", \"regsvr32.exe\") or\n process.pe.original_file_name in (\"cscript.exe\", \"wscript.exe\", \"PowerShell.EXE\", \"RUNDLL32.EXE\", \"Cmd.Exe\", \"MSHTA.EXE\", \"REGSVR32.EXE\")\n ) and\n /* Explorer started via DCOM */\n process.parent.name : \"explorer.exe\" and process.parent.args : \"-Embedding\" and\n not process.parent.args:\n (\n /* Noisy CLSID_SeparateSingleProcessExplorerHost Explorer COM Class IDs */\n \"/factory,{5BD95610-9434-43C2-886C-57852CC8A120}\",\n \"/factory,{ceff45ee-c862-41de-aee2-a022c81eda92}\"\n )\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9a5b4e31-6cde-4295-9ff7-6be1b8567e1b:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9a5b4e31-6cde-4295-9ff7-6be1b8567e1b:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9a5b4e31-6cde-4295-9ff7-6be1b8567e1b:101.0.1.json new file mode 100644 index 0000000000000..f121504611ff5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9a5b4e31-6cde-4295-9ff7-6be1b8567e1b:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Explorer Child Process v101.0.1","rule_id":"9a5b4e31-6cde-4295-9ff7-6be1b8567e1b:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious Windows explorer child process. Explorer.exe can be abused to launch malicious scripts or executables from a trusted parent process.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"},{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (\n process.name : (\"cscript.exe\", \"wscript.exe\", \"powershell.exe\", \"rundll32.exe\", \"cmd.exe\", \"mshta.exe\", \"regsvr32.exe\") or\n process.pe.original_file_name in (\"cscript.exe\", \"wscript.exe\", \"PowerShell.EXE\", \"RUNDLL32.EXE\", \"Cmd.Exe\", \"MSHTA.EXE\", \"REGSVR32.EXE\")\n ) and\n /* Explorer started via DCOM */\n process.parent.name : \"explorer.exe\" and process.parent.args : \"-Embedding\" and\n not process.parent.args:\n (\n /* Noisy CLSID_SeparateSingleProcessExplorerHost Explorer COM Class IDs */\n \"/factory,{5BD95610-9434-43C2-886C-57852CC8A120}\",\n \"/factory,{ceff45ee-c862-41de-aee2-a022c81eda92}\"\n )\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9a5b4e31-6cde-4295-9ff7-6be1b8567e1b:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9a5b4e31-6cde-4295-9ff7-6be1b8567e1b:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9a5b4e31-6cde-4295-9ff7-6be1b8567e1b:101.0.2.json new file mode 100644 index 0000000000000..5763dbad507ee --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9a5b4e31-6cde-4295-9ff7-6be1b8567e1b:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Explorer Child Process v101.0.2","rule_id":"9a5b4e31-6cde-4295-9ff7-6be1b8567e1b:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious Windows explorer child process. Explorer.exe can be abused to launch malicious scripts or executables from a trusted parent process.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"},{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (\n process.name : (\"cscript.exe\", \"wscript.exe\", \"powershell.exe\", \"rundll32.exe\", \"cmd.exe\", \"mshta.exe\", \"regsvr32.exe\") or\n process.pe.original_file_name in (\"cscript.exe\", \"wscript.exe\", \"PowerShell.EXE\", \"RUNDLL32.EXE\", \"Cmd.Exe\", \"MSHTA.EXE\", \"REGSVR32.EXE\")\n ) and\n /* Explorer started via DCOM */\n process.parent.name : \"explorer.exe\" and process.parent.args : \"-Embedding\" and\n not process.parent.args:\n (\n /* Noisy CLSID_SeparateSingleProcessExplorerHost Explorer COM Class IDs */\n \"/factory,{5BD95610-9434-43C2-886C-57852CC8A120}\",\n \"/factory,{ceff45ee-c862-41de-aee2-a022c81eda92}\"\n )\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9a5b4e31-6cde-4295-9ff7-6be1b8567e1b:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9aa0e1f6-52ce-42e1-abb3-09657cee2698:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9aa0e1f6-52ce-42e1-abb3-09657cee2698:101.0.0.json new file mode 100644 index 0000000000000..cb966880fb555 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9aa0e1f6-52ce-42e1-abb3-09657cee2698:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Scheduled Tasks AT Command Enabled v101.0.0","rule_id":"9aa0e1f6-52ce-42e1-abb3-09657cee2698:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to enable the Windows scheduled tasks AT command via the registry. Attackers may use this method to move laterally or persist locally. The AT command has been deprecated since Windows 8 and Windows Server 2012, but still exists for backwards compatibility.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-scheduledjob"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"registry where\n registry.path : (\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Schedule\\\\Configuration\\\\EnableAt\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Schedule\\\\Configuration\\\\EnableAt\"\n ) and registry.data.strings : (\"1\", \"0x00000001\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9aa0e1f6-52ce-42e1-abb3-09657cee2698:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9aa0e1f6-52ce-42e1-abb3-09657cee2698:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9aa0e1f6-52ce-42e1-abb3-09657cee2698:101.0.1.json new file mode 100644 index 0000000000000..acae8aaa9a6d7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9aa0e1f6-52ce-42e1-abb3-09657cee2698:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Scheduled Tasks AT Command Enabled v101.0.1","rule_id":"9aa0e1f6-52ce-42e1-abb3-09657cee2698:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to enable the Windows scheduled tasks AT command via the registry. Attackers may use this method to move laterally or persist locally. The AT command has been deprecated since Windows 8 and Windows Server 2012, but still exists for backwards compatibility.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-scheduledjob"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"registry where\n registry.path : (\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Schedule\\\\Configuration\\\\EnableAt\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Schedule\\\\Configuration\\\\EnableAt\"\n ) and registry.data.strings : (\"1\", \"0x00000001\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9aa0e1f6-52ce-42e1-abb3-09657cee2698:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9aa0e1f6-52ce-42e1-abb3-09657cee2698:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9aa0e1f6-52ce-42e1-abb3-09657cee2698:101.0.2.json new file mode 100644 index 0000000000000..d8fd50d7fbfaa --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9aa0e1f6-52ce-42e1-abb3-09657cee2698:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Scheduled Tasks AT Command Enabled v101.0.2","rule_id":"9aa0e1f6-52ce-42e1-abb3-09657cee2698:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to enable the Windows scheduled tasks AT command via the registry. Attackers may use this method to move laterally or persist locally. The AT command has been deprecated since Windows 8 and Windows Server 2012, but still exists for backwards compatibility.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-scheduledjob"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"registry where\n registry.path : (\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Schedule\\\\Configuration\\\\EnableAt\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Schedule\\\\Configuration\\\\EnableAt\"\n ) and registry.data.strings : (\"1\", \"0x00000001\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9aa0e1f6-52ce-42e1-abb3-09657cee2698:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9b6813a1-daf1-457e-b0e6-0bb4e55b8a4c:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9b6813a1-daf1-457e-b0e6-0bb4e55b8a4c:102.0.0.json new file mode 100644 index 0000000000000..efbe0768fca05 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9b6813a1-daf1-457e-b0e6-0bb4e55b8a4c:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via WMI Event Subscription v102.0.0","rule_id":"9b6813a1-daf1-457e-b0e6-0bb4e55b8a4c:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary can use Windows Management Instrumentation (WMI) to install event filters, providers, consumers, and bindings that execute code when a defined event occurs. Adversaries may use the capabilities of WMI to subscribe to an event and execute arbitrary code when that event occurs, providing persistence on a system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-1"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.003","name":"Windows Management Instrumentation Event Subscription","reference":"https://attack.mitre.org/techniques/T1546/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"wmic.exe\" or process.pe.original_file_name == \"wmic.exe\") and\n process.args : \"create\" and\n process.args : (\"ActiveScriptEventConsumer\", \"CommandLineEventConsumer\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9b6813a1-daf1-457e-b0e6-0bb4e55b8a4c:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9b6813a1-daf1-457e-b0e6-0bb4e55b8a4c:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9b6813a1-daf1-457e-b0e6-0bb4e55b8a4c:102.0.1.json new file mode 100644 index 0000000000000..4162d8ea39b08 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9b6813a1-daf1-457e-b0e6-0bb4e55b8a4c:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via WMI Event Subscription v102.0.1","rule_id":"9b6813a1-daf1-457e-b0e6-0bb4e55b8a4c:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary can use Windows Management Instrumentation (WMI) to install event filters, providers, consumers, and bindings that execute code when a defined event occurs. Adversaries may use the capabilities of WMI to subscribe to an event and execute arbitrary code when that event occurs, providing persistence on a system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-1"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.003","name":"Windows Management Instrumentation Event Subscription","reference":"https://attack.mitre.org/techniques/T1546/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"wmic.exe\" or process.pe.original_file_name == \"wmic.exe\") and\n process.args : \"create\" and\n process.args : (\"ActiveScriptEventConsumer\", \"CommandLineEventConsumer\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9b6813a1-daf1-457e-b0e6-0bb4e55b8a4c:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9b6813a1-daf1-457e-b0e6-0bb4e55b8a4c:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9b6813a1-daf1-457e-b0e6-0bb4e55b8a4c:102.0.2.json new file mode 100644 index 0000000000000..6298659a12c87 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9b6813a1-daf1-457e-b0e6-0bb4e55b8a4c:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via WMI Event Subscription v102.0.2","rule_id":"9b6813a1-daf1-457e-b0e6-0bb4e55b8a4c:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary can use Windows Management Instrumentation (WMI) to install event filters, providers, consumers, and bindings that execute code when a defined event occurs. Adversaries may use the capabilities of WMI to subscribe to an event and execute arbitrary code when that event occurs, providing persistence on a system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-1"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.003","name":"Windows Management Instrumentation Event Subscription","reference":"https://attack.mitre.org/techniques/T1546/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"wmic.exe\" or process.pe.original_file_name == \"wmic.exe\") and\n process.args : \"create\" and\n process.args : (\"ActiveScriptEventConsumer\", \"CommandLineEventConsumer\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9b6813a1-daf1-457e-b0e6-0bb4e55b8a4c:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9c260313-c811-4ec8-ab89-8f6530e0246c:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9c260313-c811-4ec8-ab89-8f6530e0246c:102.0.0.json new file mode 100644 index 0000000000000..96d3043edbbc3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9c260313-c811-4ec8-ab89-8f6530e0246c:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Hosts File Modified v102.0.0","rule_id":"9c260313-c811-4ec8-ab89-8f6530e0246c:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The hosts file on endpoints is used to control manual IP address to hostname resolutions. The hosts file is the first point of lookup for DNS hostname resolution so if adversaries can modify the endpoint hosts file, they can route traffic to malicious infrastructure. This rule detects modifications to the hosts file on Microsoft Windows, Linux (Ubuntu or RHEL) and macOS systems.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Hosts File Modified\n\nOperating systems use the hosts file to map a connection between an IP address and domain names before going to domain\nname servers. Attackers can abuse this mechanism to route traffic to malicious infrastructure or disrupt security that\ndepends on server communications. For example, Russian threat actors modified this file on a domain controller to\nredirect Duo MFA calls to localhost instead of the Duo server, which prevented the MFA service from contacting its\nserver to validate MFA login. This effectively disabled MFA for active domain accounts because the default policy of Duo\nfor Windows is to \"Fail open\" if the MFA server is unreachable. This can happen in any MFA implementation and is not\nexclusive to Duo. Find more details in this [CISA Alert](https://www.cisa.gov/uscert/ncas/alerts/aa22-074a).\n\nThis rule identifies modifications in the hosts file across multiple operating systems using process creation events for\nLinux and file events in Windows and macOS.\n\n#### Possible investigation steps\n\n- Identify the specifics of the involved assets, such as role, criticality, and associated users.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the changes to the hosts file by comparing it against file backups, volume shadow copies, and other restoration\nmechanisms.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity\nand the configuration was justified.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Consider isolating the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Review the privileges of the administrator account that performed the action.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timeline_id":"4d4c0b59-ea83-483f-b8c1-8c360ee53c5c","timeline_title":"Comprehensive File Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/guide/en/beats/auditbeat/current/auditbeat-reference-yml.html"],"tags":["Elastic","Host","Linux","Windows","macOS","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1565","name":"Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/","subtechnique":[{"id":"T1565.001","name":"Stored Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/001/"}]}]}],"language":"eql","query":"any where\n\n /* file events for creation; file change events are not captured by some of the included sources for linux and so may\n miss this, which is the purpose of the process + command line args logic below */\n (\n event.category == \"file\" and event.type in (\"change\", \"creation\") and\n file.path : (\"/private/etc/hosts\", \"/etc/hosts\", \"?:\\\\Windows\\\\System32\\\\drivers\\\\etc\\\\hosts\")\n )\n or\n\n /* process events for change targeting linux only */\n (\n event.category == \"process\" and event.type in (\"start\") and\n process.name in (\"nano\", \"vim\", \"vi\", \"emacs\", \"echo\", \"sed\") and\n process.args : (\"/etc/hosts\")\n )\n","type":"eql","index":["auditbeat-*","winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"For Windows systems using Auditbeat, this rule requires adding `C:/Windows/System32/drivers/etc` as an additional path in the 'file_integrity' module of auditbeat.yml.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9c260313-c811-4ec8-ab89-8f6530e0246c:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9c260313-c811-4ec8-ab89-8f6530e0246c:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9c260313-c811-4ec8-ab89-8f6530e0246c:102.0.1.json new file mode 100644 index 0000000000000..2ffa76cbc36c6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9c260313-c811-4ec8-ab89-8f6530e0246c:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Hosts File Modified v102.0.1","rule_id":"9c260313-c811-4ec8-ab89-8f6530e0246c:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The hosts file on endpoints is used to control manual IP address to hostname resolutions. The hosts file is the first point of lookup for DNS hostname resolution so if adversaries can modify the endpoint hosts file, they can route traffic to malicious infrastructure. This rule detects modifications to the hosts file on Microsoft Windows, Linux (Ubuntu or RHEL) and macOS systems.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Hosts File Modified\n\nOperating systems use the hosts file to map a connection between an IP address and domain names before going to domain\nname servers. Attackers can abuse this mechanism to route traffic to malicious infrastructure or disrupt security that\ndepends on server communications. For example, Russian threat actors modified this file on a domain controller to\nredirect Duo MFA calls to localhost instead of the Duo server, which prevented the MFA service from contacting its\nserver to validate MFA login. This effectively disabled MFA for active domain accounts because the default policy of Duo\nfor Windows is to \"Fail open\" if the MFA server is unreachable. This can happen in any MFA implementation and is not\nexclusive to Duo. Find more details in this [CISA Alert](https://www.cisa.gov/uscert/ncas/alerts/aa22-074a).\n\nThis rule identifies modifications in the hosts file across multiple operating systems using process creation events for\nLinux and file events in Windows and macOS.\n\n#### Possible investigation steps\n\n- Identify the specifics of the involved assets, such as role, criticality, and associated users.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the changes to the hosts file by comparing it against file backups, volume shadow copies, and other restoration\nmechanisms.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity\nand the configuration was justified.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Consider isolating the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Review the privileges of the administrator account that performed the action.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timeline_id":"4d4c0b59-ea83-483f-b8c1-8c360ee53c5c","timeline_title":"Comprehensive File Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/guide/en/beats/auditbeat/current/auditbeat-reference-yml.html"],"tags":["Elastic","Host","Linux","Windows","macOS","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1565","name":"Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/","subtechnique":[{"id":"T1565.001","name":"Stored Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/001/"}]}]}],"language":"eql","query":"any where\n\n /* file events for creation; file change events are not captured by some of the included sources for linux and so may\n miss this, which is the purpose of the process + command line args logic below */\n (\n event.category == \"file\" and event.type in (\"change\", \"creation\") and\n file.path : (\"/private/etc/hosts\", \"/etc/hosts\", \"?:\\\\Windows\\\\System32\\\\drivers\\\\etc\\\\hosts\")\n )\n or\n\n /* process events for change targeting linux only */\n (\n event.category == \"process\" and event.type in (\"start\") and\n process.name in (\"nano\", \"vim\", \"vi\", \"emacs\", \"echo\", \"sed\") and\n process.args : (\"/etc/hosts\")\n )\n","type":"eql","index":["auditbeat-*","winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"For Windows systems using Auditbeat, this rule requires adding `C:/Windows/System32/drivers/etc` as an additional path in the 'file_integrity' module of auditbeat.yml.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9c260313-c811-4ec8-ab89-8f6530e0246c:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9c260313-c811-4ec8-ab89-8f6530e0246c:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9c260313-c811-4ec8-ab89-8f6530e0246c:102.0.2.json new file mode 100644 index 0000000000000..6dd73ba686c5c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9c260313-c811-4ec8-ab89-8f6530e0246c:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Hosts File Modified v102.0.2","rule_id":"9c260313-c811-4ec8-ab89-8f6530e0246c:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The hosts file on endpoints is used to control manual IP address to hostname resolutions. The hosts file is the first point of lookup for DNS hostname resolution so if adversaries can modify the endpoint hosts file, they can route traffic to malicious infrastructure. This rule detects modifications to the hosts file on Microsoft Windows, Linux (Ubuntu or RHEL) and macOS systems.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Hosts File Modified\n\nOperating systems use the hosts file to map a connection between an IP address and domain names before going to domain\nname servers. Attackers can abuse this mechanism to route traffic to malicious infrastructure or disrupt security that\ndepends on server communications. For example, Russian threat actors modified this file on a domain controller to\nredirect Duo MFA calls to localhost instead of the Duo server, which prevented the MFA service from contacting its\nserver to validate MFA login. This effectively disabled MFA for active domain accounts because the default policy of Duo\nfor Windows is to \"Fail open\" if the MFA server is unreachable. This can happen in any MFA implementation and is not\nexclusive to Duo. Find more details in this [CISA Alert](https://www.cisa.gov/uscert/ncas/alerts/aa22-074a).\n\nThis rule identifies modifications in the hosts file across multiple operating systems using process creation events for\nLinux and file events in Windows and macOS.\n\n#### Possible investigation steps\n\n- Identify the specifics of the involved assets, such as role, criticality, and associated users.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the changes to the hosts file by comparing it against file backups, volume shadow copies, and other restoration\nmechanisms.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity\nand the configuration was justified.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Consider isolating the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Review the privileges of the administrator account that performed the action.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timeline_id":"4d4c0b59-ea83-483f-b8c1-8c360ee53c5c","timeline_title":"Comprehensive File Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/guide/en/beats/auditbeat/current/auditbeat-reference-yml.html"],"tags":["Elastic","Host","Linux","Windows","macOS","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1565","name":"Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/","subtechnique":[{"id":"T1565.001","name":"Stored Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/001/"}]}]}],"language":"eql","query":"any where\n\n /* file events for creation; file change events are not captured by some of the included sources for linux and so may\n miss this, which is the purpose of the process + command line args logic below */\n (\n event.category == \"file\" and event.type in (\"change\", \"creation\") and\n file.path : (\"/private/etc/hosts\", \"/etc/hosts\", \"?:\\\\Windows\\\\System32\\\\drivers\\\\etc\\\\hosts\")\n )\n or\n\n /* process events for change targeting linux only */\n (\n event.category == \"process\" and event.type in (\"start\") and\n process.name in (\"nano\", \"vim\", \"vi\", \"emacs\", \"echo\", \"sed\") and\n process.args : (\"/etc/hosts\")\n )\n","type":"eql","index":["auditbeat-*","winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"For Windows systems using Auditbeat, this rule requires adding `C:/Windows/System32/drivers/etc` as an additional path in the 'file_integrity' module of auditbeat.yml.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9c260313-c811-4ec8-ab89-8f6530e0246c:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9c865691-5599-447a-bac9-b3f2df5f9a9d:1.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9c865691-5599-447a-bac9-b3f2df5f9a9d:1.0.0.json new file mode 100644 index 0000000000000..5fe2839066761 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9c865691-5599-447a-bac9-b3f2df5f9a9d:1.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote Logon followed by Scheduled Task Creation v1.0.0","rule_id":"9c865691-5599-447a-bac9-b3f2df5f9a9d:1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a remote logon followed by a scheduled task creation on the target host. This could be indicative of adversary lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote Scheduled Task Creation\n\n[Scheduled tasks](https://docs.microsoft.com/en-us/windows/win32/taskschd/about-the-task-scheduler) are a great mechanism\nfor persistence and program execution. These features can be used remotely for a variety of legitimate reasons, but at\nthe same time used by malware and adversaries. When investigating scheduled tasks that were set up remotely, one of the\nfirst steps should be to determine the original intent behind the configuration and to verify if the activity is tied to\nbenign behavior such as software installation or any kind of network administrator work. One objective for these alerts\nis to understand the configured action within the scheduled task. This is captured within the registry event data for\nthis rule and can be base64 decoded to view the value.\n\n#### Possible investigation steps\n\n- Review the TaskContent value to investigate the task configured action.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate software\ninstallations.\n- Further examination should include review of host-based artifacts and network logs from around when the scheduled task\nwas created, on both the source and target machines.\n\n### False positive analysis\n\n- There is a high possibility of benign activity tied to the creation of remote scheduled tasks as it is a general feature\nwithin Windows and used for legitimate purposes for a wide range of activity. Any kind of context should be found to\nfurther understand the source of the activity and determine the intent based on the scheduled task's contents.\n\n### Related rules\n\n- Service Command Lateral Movement - d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc\n- Remotely Started Services via RPC - aa9a274d-6b53-424d-ac5e-cb8ca4251650\n- Remote Scheduled Task Creation - 954ee7c8-5437-49ae-b2d6-2960883898e9\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Remove scheduled task and any other related artifacts.\n- Review privileged account management and user account management settings. Consider implementing group policy object (GPO) policies to further\nrestrict activity, or configuring settings that only allow administrators to create remote scheduled tasks.\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"/* Network Logon followed by Scheduled Task creation */\n\nsequence by host.id with maxspan=1m\n [authentication where event.action == \"logged-in\" and\n winlog.logon.type == \"Network\" and event.outcome == \"success\" and\n not user.name == \"ANONYMOUS LOGON\" and not winlog.event_data.SubjectUserName : \"*$\" and\n not user.domain == \"NT AUTHORITY\" and source.ip != \"127.0.0.1\" and source.ip !=\"::1\"] by winlog.event_data.TargetLogonId\n\n [iam where event.action == \"scheduled-task-created\"] by winlog.event_data.SubjectLogonId\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.SubjectUserName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetLogonId","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}]},"id":"9c865691-5599-447a-bac9-b3f2df5f9a9d:1.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9c865691-5599-447a-bac9-b3f2df5f9a9d:1.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9c865691-5599-447a-bac9-b3f2df5f9a9d:1.0.1.json new file mode 100644 index 0000000000000..0f25001985a45 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9c865691-5599-447a-bac9-b3f2df5f9a9d:1.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote Logon followed by Scheduled Task Creation v1.0.1","rule_id":"9c865691-5599-447a-bac9-b3f2df5f9a9d:1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a remote logon followed by a scheduled task creation on the target host. This could be indicative of adversary lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote Scheduled Task Creation\n\n[Scheduled tasks](https://docs.microsoft.com/en-us/windows/win32/taskschd/about-the-task-scheduler) are a great mechanism\nfor persistence and program execution. These features can be used remotely for a variety of legitimate reasons, but at\nthe same time used by malware and adversaries. When investigating scheduled tasks that were set up remotely, one of the\nfirst steps should be to determine the original intent behind the configuration and to verify if the activity is tied to\nbenign behavior such as software installation or any kind of network administrator work. One objective for these alerts\nis to understand the configured action within the scheduled task. This is captured within the registry event data for\nthis rule and can be base64 decoded to view the value.\n\n#### Possible investigation steps\n\n- Review the TaskContent value to investigate the task configured action.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate software\ninstallations.\n- Further examination should include review of host-based artifacts and network logs from around when the scheduled task\nwas created, on both the source and target machines.\n\n### False positive analysis\n\n- There is a high possibility of benign activity tied to the creation of remote scheduled tasks as it is a general feature\nwithin Windows and used for legitimate purposes for a wide range of activity. Any kind of context should be found to\nfurther understand the source of the activity and determine the intent based on the scheduled task's contents.\n\n### Related rules\n\n- Service Command Lateral Movement - d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc\n- Remotely Started Services via RPC - aa9a274d-6b53-424d-ac5e-cb8ca4251650\n- Remote Scheduled Task Creation - 954ee7c8-5437-49ae-b2d6-2960883898e9\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Remove scheduled task and any other related artifacts.\n- Review privileged account management and user account management settings. Consider implementing group policy object (GPO) policies to further\nrestrict activity, or configuring settings that only allow administrators to create remote scheduled tasks.\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"/* Network Logon followed by Scheduled Task creation */\n\nsequence by host.id with maxspan=1m\n [authentication where event.action == \"logged-in\" and\n winlog.logon.type == \"Network\" and event.outcome == \"success\" and\n not user.name == \"ANONYMOUS LOGON\" and not winlog.event_data.SubjectUserName : \"*$\" and\n not user.domain == \"NT AUTHORITY\" and source.ip != \"127.0.0.1\" and source.ip !=\"::1\"] by winlog.event_data.TargetLogonId\n\n [iam where event.action == \"scheduled-task-created\"] by winlog.event_data.SubjectLogonId\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.SubjectUserName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetLogonId","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}]},"id":"9c865691-5599-447a-bac9-b3f2df5f9a9d:1.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9c865691-5599-447a-bac9-b3f2df5f9a9d:1.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9c865691-5599-447a-bac9-b3f2df5f9a9d:1.0.2.json new file mode 100644 index 0000000000000..23132570df804 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9c865691-5599-447a-bac9-b3f2df5f9a9d:1.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote Logon followed by Scheduled Task Creation v1.0.2","rule_id":"9c865691-5599-447a-bac9-b3f2df5f9a9d:1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a remote logon followed by a scheduled task creation on the target host. This could be indicative of adversary lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote Scheduled Task Creation\n\n[Scheduled tasks](https://docs.microsoft.com/en-us/windows/win32/taskschd/about-the-task-scheduler) are a great mechanism\nfor persistence and program execution. These features can be used remotely for a variety of legitimate reasons, but at\nthe same time used by malware and adversaries. When investigating scheduled tasks that were set up remotely, one of the\nfirst steps should be to determine the original intent behind the configuration and to verify if the activity is tied to\nbenign behavior such as software installation or any kind of network administrator work. One objective for these alerts\nis to understand the configured action within the scheduled task. This is captured within the registry event data for\nthis rule and can be base64 decoded to view the value.\n\n#### Possible investigation steps\n\n- Review the TaskContent value to investigate the task configured action.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate software\ninstallations.\n- Further examination should include review of host-based artifacts and network logs from around when the scheduled task\nwas created, on both the source and target machines.\n\n### False positive analysis\n\n- There is a high possibility of benign activity tied to the creation of remote scheduled tasks as it is a general feature\nwithin Windows and used for legitimate purposes for a wide range of activity. Any kind of context should be found to\nfurther understand the source of the activity and determine the intent based on the scheduled task's contents.\n\n### Related rules\n\n- Service Command Lateral Movement - d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc\n- Remotely Started Services via RPC - aa9a274d-6b53-424d-ac5e-cb8ca4251650\n- Remote Scheduled Task Creation - 954ee7c8-5437-49ae-b2d6-2960883898e9\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Remove scheduled task and any other related artifacts.\n- Review privileged account management and user account management settings. Consider implementing group policy object (GPO) policies to further\nrestrict activity, or configuring settings that only allow administrators to create remote scheduled tasks.\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"/* Network Logon followed by Scheduled Task creation */\n\nsequence by host.id with maxspan=1m\n [authentication where event.action == \"logged-in\" and\n winlog.logon.type == \"Network\" and event.outcome == \"success\" and\n not user.name == \"ANONYMOUS LOGON\" and not winlog.event_data.SubjectUserName : \"*$\" and\n not user.domain == \"NT AUTHORITY\" and source.ip != \"127.0.0.1\" and source.ip !=\"::1\"] by winlog.event_data.TargetLogonId\n\n [iam where event.action == \"scheduled-task-created\"] by winlog.event_data.SubjectLogonId\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.SubjectUserName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetLogonId","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}]},"id":"9c865691-5599-447a-bac9-b3f2df5f9a9d:1.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9ccf3ce0-0057-440a-91f5-870c6ad39093:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9ccf3ce0-0057-440a-91f5-870c6ad39093:101.0.0.json new file mode 100644 index 0000000000000..d96b520a6e7f5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9ccf3ce0-0057-440a-91f5-870c6ad39093:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Command Shell Activity Started via RunDLL32 v101.0.0","rule_id":"9ccf3ce0-0057-440a-91f5-870c6ad39093:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies command shell activity started via RunDLL32, which is commonly abused by attackers to host malicious code.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Microsoft Windows installers leveraging RunDLL32 for installation."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"cmd.exe\", \"powershell.exe\") and\n process.parent.name : \"rundll32.exe\" and process.parent.command_line != null and\n /* common FPs can be added here */\n not process.parent.args : (\"C:\\\\Windows\\\\System32\\\\SHELL32.dll,RunAsNewUser_RunDLL\",\n \"C:\\\\WINDOWS\\\\*.tmp,zzzzInvokeManagedCustomActionOutOfProc\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.command_line","type":"wildcard"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9ccf3ce0-0057-440a-91f5-870c6ad39093:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9ccf3ce0-0057-440a-91f5-870c6ad39093:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9ccf3ce0-0057-440a-91f5-870c6ad39093:101.0.1.json new file mode 100644 index 0000000000000..12b28fc569b3d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9ccf3ce0-0057-440a-91f5-870c6ad39093:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Command Shell Activity Started via RunDLL32 v101.0.1","rule_id":"9ccf3ce0-0057-440a-91f5-870c6ad39093:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies command shell activity started via RunDLL32, which is commonly abused by attackers to host malicious code.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Microsoft Windows installers leveraging RunDLL32 for installation."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"cmd.exe\", \"powershell.exe\") and\n process.parent.name : \"rundll32.exe\" and process.parent.command_line != null and\n /* common FPs can be added here */\n not process.parent.args : (\"C:\\\\Windows\\\\System32\\\\SHELL32.dll,RunAsNewUser_RunDLL\",\n \"C:\\\\WINDOWS\\\\*.tmp,zzzzInvokeManagedCustomActionOutOfProc\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.command_line","type":"wildcard"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9ccf3ce0-0057-440a-91f5-870c6ad39093:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9ccf3ce0-0057-440a-91f5-870c6ad39093:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9ccf3ce0-0057-440a-91f5-870c6ad39093:101.0.2.json new file mode 100644 index 0000000000000..2da58c88e5a88 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9ccf3ce0-0057-440a-91f5-870c6ad39093:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Command Shell Activity Started via RunDLL32 v101.0.2","rule_id":"9ccf3ce0-0057-440a-91f5-870c6ad39093:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies command shell activity started via RunDLL32, which is commonly abused by attackers to host malicious code.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Microsoft Windows installers leveraging RunDLL32 for installation."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"cmd.exe\", \"powershell.exe\") and\n process.parent.name : \"rundll32.exe\" and process.parent.command_line != null and\n /* common FPs can be added here */\n not process.parent.args : (\"C:\\\\Windows\\\\System32\\\\SHELL32.dll,RunAsNewUser_RunDLL\",\n \"C:\\\\WINDOWS\\\\*.tmp,zzzzInvokeManagedCustomActionOutOfProc\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.command_line","type":"wildcard"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9ccf3ce0-0057-440a-91f5-870c6ad39093:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9cf7a0ae-2404-11ed-ae7d-f661ea17fbce:2.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9cf7a0ae-2404-11ed-ae7d-f661ea17fbce:2.0.0.json new file mode 100644 index 0000000000000..278f47c6fd856 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9cf7a0ae-2404-11ed-ae7d-f661ea17fbce:2.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace User Group Access Modified to Allow External Access v2.0.0","rule_id":"9cf7a0ae-2404-11ed-ae7d-f661ea17fbce:2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"User groups in Google Workspace are created to help manage users permissions and access to various resources and applications. The security label is only applied to a group when users within that group are expected to access sensitive data and/or resources so administrators add this label to easily manage security groups better. Adversaries with administrator access may modify a security group to allow external access from members outside the organization. This detection does not capture all modifications to security groups, but only those that could increase the risk associated with them.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["User group access may be modified by an administrator to allow external access for community purposes. Doing so for a user group whom has access to sensitive information or operational resources should be monitored closely."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/9468710?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.003","name":"Additional Cloud Roles","reference":"https://attack.mitre.org/techniques/T1098/003/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:\"CHANGE_GROUP_SETTING\" and event.category:\"iam\"\n and ((google_workspace.admin.setting.name:\"ALLOW_EXTERNAL_MEMBERS\" and google_workspace.admin.new_value:\"true\")\n or (google_workspace.admin.setting.name:\"WHO_CAN_JOIN\" and not (google_workspace.admin.new_value:\"INVITED_CAN_JOIN\"\n or google_workspace.admin.new_value:\"CAN_REQUEST_TO_JOIN\")))\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.setting.name","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"9cf7a0ae-2404-11ed-ae7d-f661ea17fbce:2.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9cf7a0ae-2404-11ed-ae7d-f661ea17fbce:2.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9cf7a0ae-2404-11ed-ae7d-f661ea17fbce:2.0.1.json new file mode 100644 index 0000000000000..fd41d465c0631 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9cf7a0ae-2404-11ed-ae7d-f661ea17fbce:2.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace User Group Access Modified to Allow External Access v2.0.1","rule_id":"9cf7a0ae-2404-11ed-ae7d-f661ea17fbce:2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"User groups in Google Workspace are created to help manage users permissions and access to various resources and applications. The security label is only applied to a group when users within that group are expected to access sensitive data and/or resources so administrators add this label to easily manage security groups better. Adversaries with administrator access may modify a security group to allow external access from members outside the organization. This detection does not capture all modifications to security groups, but only those that could increase the risk associated with them.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["User group access may be modified by an administrator to allow external access for community purposes. Doing so for a user group whom has access to sensitive information or operational resources should be monitored closely."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/9468710?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.003","name":"Additional Cloud Roles","reference":"https://attack.mitre.org/techniques/T1098/003/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:\"CHANGE_GROUP_SETTING\" and event.category:\"iam\"\n and ((google_workspace.admin.setting.name:\"ALLOW_EXTERNAL_MEMBERS\" and google_workspace.admin.new_value:\"true\")\n or (google_workspace.admin.setting.name:\"WHO_CAN_JOIN\" and not (google_workspace.admin.new_value:\"INVITED_CAN_JOIN\"\n or google_workspace.admin.new_value:\"CAN_REQUEST_TO_JOIN\")))\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.setting.name","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"9cf7a0ae-2404-11ed-ae7d-f661ea17fbce:2.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9cf7a0ae-2404-11ed-ae7d-f661ea17fbce:2.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9cf7a0ae-2404-11ed-ae7d-f661ea17fbce:2.0.2.json new file mode 100644 index 0000000000000..26af0edb95abd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9cf7a0ae-2404-11ed-ae7d-f661ea17fbce:2.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace User Group Access Modified to Allow External Access v2.0.2","rule_id":"9cf7a0ae-2404-11ed-ae7d-f661ea17fbce:2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"User groups in Google Workspace are created to help manage users permissions and access to various resources and applications. The security label is only applied to a group when users within that group are expected to access sensitive data and/or resources so administrators add this label to easily manage security groups better. Adversaries with administrator access may modify a security group to allow external access from members outside the organization. This detection does not capture all modifications to security groups, but only those that could increase the risk associated with them.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["User group access may be modified by an administrator to allow external access for community purposes. Doing so for a user group whom has access to sensitive information or operational resources should be monitored closely."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/9468710?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.003","name":"Additional Cloud Roles","reference":"https://attack.mitre.org/techniques/T1098/003/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:\"CHANGE_GROUP_SETTING\" and event.category:\"iam\"\n and ((google_workspace.admin.setting.name:\"ALLOW_EXTERNAL_MEMBERS\" and google_workspace.admin.new_value:\"true\")\n or (google_workspace.admin.setting.name:\"WHO_CAN_JOIN\" and not (google_workspace.admin.new_value:\"INVITED_CAN_JOIN\"\n or google_workspace.admin.new_value:\"CAN_REQUEST_TO_JOIN\")))\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.setting.name","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"9cf7a0ae-2404-11ed-ae7d-f661ea17fbce:2.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae2:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae2:101.0.0.json new file mode 100644 index 0000000000000..056dbc29524f9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae2:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft Build Engine Started by a Script Process v101.0.0","rule_id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae2:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, was started by a script or the Windows command interpreter. This behavior is unusual and is sometimes used by malicious payloads.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/","subtechnique":[{"id":"T1127.001","name":"MSBuild","reference":"https://attack.mitre.org/techniques/T1127/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"MSBuild.exe\" or process.pe.original_file_name == \"MSBuild.exe\") and\n process.parent.name : (\"cmd.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\", \"cscript.exe\", \"wscript.exe\", \"mshta.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae2:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae2:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae2:101.0.1.json new file mode 100644 index 0000000000000..629184003cde9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae2:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft Build Engine Started by a Script Process v101.0.1","rule_id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae2:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, was started by a script or the Windows command interpreter. This behavior is unusual and is sometimes used by malicious payloads.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/","subtechnique":[{"id":"T1127.001","name":"MSBuild","reference":"https://attack.mitre.org/techniques/T1127/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"MSBuild.exe\" or process.pe.original_file_name == \"MSBuild.exe\") and\n process.parent.name : (\"cmd.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\", \"cscript.exe\", \"wscript.exe\", \"mshta.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae2:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae2:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae2:101.0.2.json new file mode 100644 index 0000000000000..5fe6f60591bb3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae2:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft Build Engine Started by a Script Process v101.0.2","rule_id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae2:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, was started by a script or the Windows command interpreter. This behavior is unusual and is sometimes used by malicious payloads.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/","subtechnique":[{"id":"T1127.001","name":"MSBuild","reference":"https://attack.mitre.org/techniques/T1127/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"MSBuild.exe\" or process.pe.original_file_name == \"MSBuild.exe\") and\n process.parent.name : (\"cmd.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\", \"cscript.exe\", \"wscript.exe\", \"mshta.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae2:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae3:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae3:102.0.0.json new file mode 100644 index 0000000000000..4054afb66a644 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae3:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft Build Engine Started by a System Process v102.0.0","rule_id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae3:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, was started by Explorer or the WMI (Windows Management Instrumentation) subsystem. This behavior is unusual and is sometimes used by malicious payloads.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/","subtechnique":[{"id":"T1127.001","name":"MSBuild","reference":"https://attack.mitre.org/techniques/T1127/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"MSBuild.exe\" and\n process.parent.name : (\"explorer.exe\", \"wmiprvse.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae3:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae3:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae3:102.0.1.json new file mode 100644 index 0000000000000..e336d0510a0d8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae3:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft Build Engine Started by a System Process v102.0.1","rule_id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae3:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, was started by Explorer or the WMI (Windows Management Instrumentation) subsystem. This behavior is unusual and is sometimes used by malicious payloads.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/","subtechnique":[{"id":"T1127.001","name":"MSBuild","reference":"https://attack.mitre.org/techniques/T1127/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"MSBuild.exe\" and\n process.parent.name : (\"explorer.exe\", \"wmiprvse.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae3:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae3:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae3:102.0.2.json new file mode 100644 index 0000000000000..e1d43be19fb80 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae3:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft Build Engine Started by a System Process v102.0.2","rule_id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae3:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, was started by Explorer or the WMI (Windows Management Instrumentation) subsystem. This behavior is unusual and is sometimes used by malicious payloads.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/","subtechnique":[{"id":"T1127.001","name":"MSBuild","reference":"https://attack.mitre.org/techniques/T1127/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"MSBuild.exe\" and\n process.parent.name : (\"explorer.exe\", \"wmiprvse.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae3:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae4:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae4:102.0.0.json new file mode 100644 index 0000000000000..f2b49e8365e6a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae4:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft Build Engine Using an Alternate Name v102.0.0","rule_id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae4:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, was started after being renamed. This is uncommon behavior and may indicate an attempt to run unnoticed or undetected.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.003","name":"Rename System Utilities","reference":"https://attack.mitre.org/techniques/T1036/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name == \"MSBuild.exe\" and\n not process.name : \"MSBuild.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae4:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae4:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae4:102.0.1.json new file mode 100644 index 0000000000000..423f5e448c26b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae4:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft Build Engine Using an Alternate Name v102.0.1","rule_id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae4:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, was started after being renamed. This is uncommon behavior and may indicate an attempt to run unnoticed or undetected.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.003","name":"Rename System Utilities","reference":"https://attack.mitre.org/techniques/T1036/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name == \"MSBuild.exe\" and\n not process.name : \"MSBuild.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae4:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae4:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae4:102.0.2.json new file mode 100644 index 0000000000000..65f0395c7846f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae4:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft Build Engine Using an Alternate Name v102.0.2","rule_id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae4:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, was started after being renamed. This is uncommon behavior and may indicate an attempt to run unnoticed or undetected.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.003","name":"Rename System Utilities","reference":"https://attack.mitre.org/techniques/T1036/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name == \"MSBuild.exe\" and\n not process.name : \"MSBuild.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae4:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae5:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae5:102.0.0.json new file mode 100644 index 0000000000000..d57e052aaff95 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae5:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Credential Access via Trusted Developer Utility v102.0.0","rule_id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae5:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, loaded DLLs (dynamically linked libraries) responsible for Windows credential management. This technique is sometimes used for credential dumping.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Credential Access via Trusted Developer Utility\n\nThe Microsoft Build Engine is a platform for building applications. This engine, also known as MSBuild, provides an XML\nschema for a project file that controls how the build platform processes and builds software.\n\nAdversaries can abuse MSBuild to proxy the execution of malicious code. The inline task capability of MSBuild that was\nintroduced in .NET version 4 allows for C# or Visual Basic code to be inserted into an XML project file. MSBuild will\ncompile and execute the inline task. `MSBuild.exe` is a signed Microsoft binary, and the execution of code using it can bypass\napplication control defenses that are configured to allow `MSBuild.exe` execution.\n\nThis rule looks for the MSBuild process loading `vaultcli.dll` or `SAMLib.DLL`, which indicates the execution of\ncredential access activities.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the command line to identify the `.csproj` file location.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (for example, 4624) to the target\nhost after the registry modification.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where event.type == \"start\" and (process.name : \"MSBuild.exe\" or process.pe.original_file_name == \"MSBuild.exe\")]\n [any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : (\"vaultcli.dll\", \"SAMLib.DLL\") or file.name : (\"vaultcli.dll\", \"SAMLib.DLL\"))]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}]},"id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae5:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae5:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae5:102.0.1.json new file mode 100644 index 0000000000000..6b519b595bca3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae5:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Credential Access via Trusted Developer Utility v102.0.1","rule_id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae5:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, loaded DLLs (dynamically linked libraries) responsible for Windows credential management. This technique is sometimes used for credential dumping.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Credential Access via Trusted Developer Utility\n\nThe Microsoft Build Engine is a platform for building applications. This engine, also known as MSBuild, provides an XML\nschema for a project file that controls how the build platform processes and builds software.\n\nAdversaries can abuse MSBuild to proxy the execution of malicious code. The inline task capability of MSBuild that was\nintroduced in .NET version 4 allows for C# or Visual Basic code to be inserted into an XML project file. MSBuild will\ncompile and execute the inline task. `MSBuild.exe` is a signed Microsoft binary, and the execution of code using it can bypass\napplication control defenses that are configured to allow `MSBuild.exe` execution.\n\nThis rule looks for the MSBuild process loading `vaultcli.dll` or `SAMLib.DLL`, which indicates the execution of\ncredential access activities.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the command line to identify the `.csproj` file location.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (for example, 4624) to the target\nhost after the registry modification.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where event.type == \"start\" and (process.name : \"MSBuild.exe\" or process.pe.original_file_name == \"MSBuild.exe\")]\n [any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : (\"vaultcli.dll\", \"SAMLib.DLL\") or file.name : (\"vaultcli.dll\", \"SAMLib.DLL\"))]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}]},"id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae5:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae5:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae5:102.0.2.json new file mode 100644 index 0000000000000..de999a2989f05 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae5:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Credential Access via Trusted Developer Utility v102.0.2","rule_id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae5:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, loaded DLLs (dynamically linked libraries) responsible for Windows credential management. This technique is sometimes used for credential dumping.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Credential Access via Trusted Developer Utility\n\nThe Microsoft Build Engine is a platform for building applications. This engine, also known as MSBuild, provides an XML\nschema for a project file that controls how the build platform processes and builds software.\n\nAdversaries can abuse MSBuild to proxy the execution of malicious code. The inline task capability of MSBuild that was\nintroduced in .NET version 4 allows for C# or Visual Basic code to be inserted into an XML project file. MSBuild will\ncompile and execute the inline task. `MSBuild.exe` is a signed Microsoft binary, and the execution of code using it can bypass\napplication control defenses that are configured to allow `MSBuild.exe` execution.\n\nThis rule looks for the MSBuild process loading `vaultcli.dll` or `SAMLib.DLL`, which indicates the execution of\ncredential access activities.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the command line to identify the `.csproj` file location.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (for example, 4624) to the target\nhost after the registry modification.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where event.type == \"start\" and (process.name : \"MSBuild.exe\" or process.pe.original_file_name == \"MSBuild.exe\")]\n [any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : (\"vaultcli.dll\", \"SAMLib.DLL\") or file.name : (\"vaultcli.dll\", \"SAMLib.DLL\"))]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}]},"id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae5:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae6:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae6:102.0.0.json new file mode 100644 index 0000000000000..8b371bda3c077 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae6:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft Build Engine Started an Unusual Process v102.0.0","rule_id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae6:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, started a PowerShell script or the Visual C# Command Line Compiler. This technique is sometimes used to deploy a malicious payload using the Build Engine.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual. If a build system triggers this rule it can be exempted by process, user or host name."],"from":"now-9m","references":["https://blog.talosintelligence.com/2020/02/building-bypass-with-msbuild.html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1027","name":"Obfuscated Files or Information","reference":"https://attack.mitre.org/techniques/T1027/","subtechnique":[{"id":"T1027.004","name":"Compile After Delivery","reference":"https://attack.mitre.org/techniques/T1027/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"MSBuild.exe\" and\n process.name : (\"csc.exe\", \"iexplore.exe\", \"powershell.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae6:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae6:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae6:102.0.1.json new file mode 100644 index 0000000000000..2c9b21366bcb2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae6:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft Build Engine Started an Unusual Process v102.0.1","rule_id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae6:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, started a PowerShell script or the Visual C# Command Line Compiler. This technique is sometimes used to deploy a malicious payload using the Build Engine.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual. If a build system triggers this rule it can be exempted by process, user or host name."],"from":"now-9m","references":["https://blog.talosintelligence.com/2020/02/building-bypass-with-msbuild.html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1027","name":"Obfuscated Files or Information","reference":"https://attack.mitre.org/techniques/T1027/","subtechnique":[{"id":"T1027.004","name":"Compile After Delivery","reference":"https://attack.mitre.org/techniques/T1027/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"MSBuild.exe\" and\n process.name : (\"csc.exe\", \"iexplore.exe\", \"powershell.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae6:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae6:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae6:102.0.2.json new file mode 100644 index 0000000000000..ef8696279d059 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae6:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft Build Engine Started an Unusual Process v102.0.2","rule_id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae6:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, started a PowerShell script or the Visual C# Command Line Compiler. This technique is sometimes used to deploy a malicious payload using the Build Engine.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual. If a build system triggers this rule it can be exempted by process, user or host name."],"from":"now-9m","references":["https://blog.talosintelligence.com/2020/02/building-bypass-with-msbuild.html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1027","name":"Obfuscated Files or Information","reference":"https://attack.mitre.org/techniques/T1027/","subtechnique":[{"id":"T1027.004","name":"Compile After Delivery","reference":"https://attack.mitre.org/techniques/T1027/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"MSBuild.exe\" and\n process.name : (\"csc.exe\", \"iexplore.exe\", \"powershell.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae6:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae9:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae9:101.0.0.json new file mode 100644 index 0000000000000..97eb8fd3812a5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae9:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Process Injection by the Microsoft Build Engine v101.0.0","rule_id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae9:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, created a thread in another process. This technique is sometimes used to evade detection or elevate privileges.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual."],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"process.name:MSBuild.exe and event.action:\"CreateRemoteThread detected (rule: CreateRemoteThread)\"\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae9:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae9:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae9:101.0.1.json new file mode 100644 index 0000000000000..cf356ba653048 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae9:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Process Injection by the Microsoft Build Engine v101.0.1","rule_id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae9:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, created a thread in another process. This technique is sometimes used to evade detection or elevate privileges.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual."],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"process.name:MSBuild.exe and event.action:\"CreateRemoteThread detected (rule: CreateRemoteThread)\"\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae9:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae9:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae9:101.0.2.json new file mode 100644 index 0000000000000..b14d5de1c6962 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae9:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Process Injection by the Microsoft Build Engine v101.0.2","rule_id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae9:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, created a thread in another process. This technique is sometimes used to evade detection or elevate privileges.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual."],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"process.name:MSBuild.exe and event.action:\"CreateRemoteThread detected (rule: CreateRemoteThread)\"\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"9d110cb3-5f4b-4c9a-b9f5-53f0a1707ae9:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9d19ece6-c20e-481a-90c5-ccca596537de:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9d19ece6-c20e-481a-90c5-ccca596537de:100.0.0.json new file mode 100644 index 0000000000000..f64e69e37bff7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9d19ece6-c20e-481a-90c5-ccca596537de:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"LaunchDaemon Creation or Modification and Immediate Loading v100.0.0","rule_id":"9d19ece6-c20e-481a-90c5-ccca596537de:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Indicates the creation or modification of a launch daemon, which adversaries may use to repeatedly execute malicious payloads as part of persistence.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Trusted applications persisting via LaunchDaemons"],"from":"now-9m","references":["https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n [file where event.type != \"deletion\" and file.path : (\"/System/Library/LaunchDaemons/*\", \"/Library/LaunchDaemons/*\")]\n [process where event.type in (\"start\", \"process_started\") and process.name == \"launchctl\" and process.args == \"load\"]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"9d19ece6-c20e-481a-90c5-ccca596537de:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9d19ece6-c20e-481a-90c5-ccca596537de:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9d19ece6-c20e-481a-90c5-ccca596537de:100.0.1.json new file mode 100644 index 0000000000000..4c34ee7f01e7b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9d19ece6-c20e-481a-90c5-ccca596537de:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"LaunchDaemon Creation or Modification and Immediate Loading v100.0.1","rule_id":"9d19ece6-c20e-481a-90c5-ccca596537de:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Indicates the creation or modification of a launch daemon, which adversaries may use to repeatedly execute malicious payloads as part of persistence.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Trusted applications persisting via LaunchDaemons"],"from":"now-9m","references":["https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n [file where event.type != \"deletion\" and file.path : (\"/System/Library/LaunchDaemons/*\", \"/Library/LaunchDaemons/*\")]\n [process where event.type in (\"start\", \"process_started\") and process.name == \"launchctl\" and process.args == \"load\"]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"9d19ece6-c20e-481a-90c5-ccca596537de:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9d19ece6-c20e-481a-90c5-ccca596537de:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9d19ece6-c20e-481a-90c5-ccca596537de:100.0.2.json new file mode 100644 index 0000000000000..c5208975f8458 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9d19ece6-c20e-481a-90c5-ccca596537de:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"LaunchDaemon Creation or Modification and Immediate Loading v100.0.2","rule_id":"9d19ece6-c20e-481a-90c5-ccca596537de:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Indicates the creation or modification of a launch daemon, which adversaries may use to repeatedly execute malicious payloads as part of persistence.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Trusted applications persisting via LaunchDaemons"],"from":"now-9m","references":["https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n [file where event.type != \"deletion\" and file.path : (\"/System/Library/LaunchDaemons/*\", \"/Library/LaunchDaemons/*\")]\n [process where event.type in (\"start\", \"process_started\") and process.name == \"launchctl\" and process.args == \"load\"]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"9d19ece6-c20e-481a-90c5-ccca596537de:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9d302377-d226-4e12-b54c-1906b5aec4f6:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9d302377-d226-4e12-b54c-1906b5aec4f6:100.0.0.json new file mode 100644 index 0000000000000..4bcd97aacbc7b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9d302377-d226-4e12-b54c-1906b5aec4f6:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Linux Process Calling the Metadata Service v100.0.0","rule_id":"9d302377-d226-4e12-b54c-1906b5aec4f6:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for anomalous access to the metadata service by an unusual process. The metadata service may be targeted in order to harvest credentials or user data scripts containing secrets.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program or one that runs very rarely as part of a monthly or quarterly workflow could trigger this detection rule."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.005","name":"Cloud Instance Metadata API","reference":"https://attack.mitre.org/techniques/T1552/005/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_rare_metadata_process"],"type":"machine_learning"},"id":"9d302377-d226-4e12-b54c-1906b5aec4f6:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9d302377-d226-4e12-b54c-1906b5aec4f6:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9d302377-d226-4e12-b54c-1906b5aec4f6:100.0.1.json new file mode 100644 index 0000000000000..8893a52dec572 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9d302377-d226-4e12-b54c-1906b5aec4f6:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Linux Process Calling the Metadata Service v100.0.1","rule_id":"9d302377-d226-4e12-b54c-1906b5aec4f6:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for anomalous access to the metadata service by an unusual process. The metadata service may be targeted in order to harvest credentials or user data scripts containing secrets.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program or one that runs very rarely as part of a monthly or quarterly workflow could trigger this detection rule."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.005","name":"Cloud Instance Metadata API","reference":"https://attack.mitre.org/techniques/T1552/005/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_rare_metadata_process"],"type":"machine_learning"},"id":"9d302377-d226-4e12-b54c-1906b5aec4f6:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9d302377-d226-4e12-b54c-1906b5aec4f6:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9d302377-d226-4e12-b54c-1906b5aec4f6:100.0.2.json new file mode 100644 index 0000000000000..ada79b6d43a37 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9d302377-d226-4e12-b54c-1906b5aec4f6:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Linux Process Calling the Metadata Service v100.0.2","rule_id":"9d302377-d226-4e12-b54c-1906b5aec4f6:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for anomalous access to the metadata service by an unusual process. The metadata service may be targeted in order to harvest credentials or user data scripts containing secrets.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program or one that runs very rarely as part of a monthly or quarterly workflow could trigger this detection rule."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.005","name":"Cloud Instance Metadata API","reference":"https://attack.mitre.org/techniques/T1552/005/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_rare_metadata_process"],"type":"machine_learning"},"id":"9d302377-d226-4e12-b54c-1906b5aec4f6:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9f1c4ca3-44b5-481d-ba42-32dc215a2769:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9f1c4ca3-44b5-481d-ba42-32dc215a2769:100.0.0.json new file mode 100644 index 0000000000000..d1681e876b177 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9f1c4ca3-44b5-481d-ba42-32dc215a2769:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Protocol Tunneling via EarthWorm v100.0.0","rule_id":"9f1c4ca3-44b5-481d-ba42-32dc215a2769:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of the EarthWorm tunneler. Adversaries may tunnel network communications to and from a victim system within a separate protocol to avoid detection and network filtering, or to enable access to otherwise unreachable systems.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["http://rootkiter.com/EarthWorm/","https://decoded.avast.io/luigicamastra/apt-group-targeting-governmental-agencies-in-east-asia/"],"tags":["Elastic","Host","Linux","Threat Detection","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1572","name":"Protocol Tunneling","reference":"https://attack.mitre.org/techniques/T1572/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.args : \"-s\" and process.args : \"-d\" and process.args : \"rssocks\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9f1c4ca3-44b5-481d-ba42-32dc215a2769:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9f1c4ca3-44b5-481d-ba42-32dc215a2769:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9f1c4ca3-44b5-481d-ba42-32dc215a2769:100.0.1.json new file mode 100644 index 0000000000000..0c3a2a64beb1b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9f1c4ca3-44b5-481d-ba42-32dc215a2769:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Protocol Tunneling via EarthWorm v100.0.1","rule_id":"9f1c4ca3-44b5-481d-ba42-32dc215a2769:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of the EarthWorm tunneler. Adversaries may tunnel network communications to and from a victim system within a separate protocol to avoid detection and network filtering, or to enable access to otherwise unreachable systems.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["http://rootkiter.com/EarthWorm/","https://decoded.avast.io/luigicamastra/apt-group-targeting-governmental-agencies-in-east-asia/"],"tags":["Elastic","Host","Linux","Threat Detection","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1572","name":"Protocol Tunneling","reference":"https://attack.mitre.org/techniques/T1572/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.args : \"-s\" and process.args : \"-d\" and process.args : \"rssocks\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9f1c4ca3-44b5-481d-ba42-32dc215a2769:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9f1c4ca3-44b5-481d-ba42-32dc215a2769:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9f1c4ca3-44b5-481d-ba42-32dc215a2769:100.0.2.json new file mode 100644 index 0000000000000..540305cb4ffa7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9f1c4ca3-44b5-481d-ba42-32dc215a2769:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Protocol Tunneling via EarthWorm v100.0.2","rule_id":"9f1c4ca3-44b5-481d-ba42-32dc215a2769:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of the EarthWorm tunneler. Adversaries may tunnel network communications to and from a victim system within a separate protocol to avoid detection and network filtering, or to enable access to otherwise unreachable systems.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["http://rootkiter.com/EarthWorm/","https://decoded.avast.io/luigicamastra/apt-group-targeting-governmental-agencies-in-east-asia/"],"tags":["Elastic","Host","Linux","Threat Detection","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1572","name":"Protocol Tunneling","reference":"https://attack.mitre.org/techniques/T1572/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.args : \"-s\" and process.args : \"-d\" and process.args : \"rssocks\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9f1c4ca3-44b5-481d-ba42-32dc215a2769:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9f962927-1a4f-45f3-a57b-287f2c7029c1:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9f962927-1a4f-45f3-a57b-287f2c7029c1:102.0.0.json new file mode 100644 index 0000000000000..fc9d34c82c1f2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9f962927-1a4f-45f3-a57b-287f2c7029c1:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Credential Access via DCSync v102.0.0","rule_id":"9f962927-1a4f-45f3-a57b-287f2c7029c1:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule identifies when a User Account starts the Active Directory Replication Process. Attackers can use the DCSync technique to get credential information of individual accounts or the entire domain, thus compromising the entire domain.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Credential Access via DCSync\n\nActive Directory replication is the process by which the changes that originate on one domain controller are\nautomatically transferred to other domain controllers that store the same data.\n\nActive Directory data consists of objects that have properties, or attributes. Each object is an instance of an object\nclass, and object classes and their respective attributes are defined in the Active Directory schema. Objects are\ndefined by the values of their attributes, and changes to attribute values must be transferred from the domain\ncontroller on which they occur to every other domain controller that stores a replica of an affected object.\n\nAdversaries can use the DCSync technique that uses Windows Domain Controller's API to simulate the replication process\nfrom a remote domain controller, compromising major credential material such as the Kerberos krbtgt keys used\nlegitimately for tickets creation, but also tickets forging by attackers. This attack requires some extended privileges\nto succeed (DS-Replication-Get-Changes and DS-Replication-Get-Changes-All), which are granted by default to members of\nthe Administrators, Domain Admins, Enterprise Admins, and Domain Controllers groups. Privileged accounts can be abused\nto grant controlled objects the right to DCsync/Replicate.\n\nMore details can be found on [Threat Hunter Playbook](https://threathunterplaybook.com/library/windows/active_directory_replication.html?highlight=dcsync#directory-replication-services-auditing) and [The Hacker Recipes](https://www.thehacker.recipes/ad/movement/credentials/dumping/dcsync).\n\nThis rule monitors for Event ID 4662 (Operation was performed on an Active Directory object) and identifies events that\nuse the access mask 0x100 (Control Access) and properties that contain at least one of the following or their equivalent:\nSchema-Id-GUID (DS-Replication-Get-Changes, DS-Replication-Get-Changes-All, DS-Replication-Get-Changes-In-Filtered-Set).\nIt also filters out events that use computer accounts and also Azure AD Connect MSOL accounts (more details [here](https://techcommunity.microsoft.com/t5/microsoft-defender-for-identity/ad-connect-msol-user-suspected-dcsync-attack/m-p/788028)).\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account and system owners and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Correlate security events 4662 and 4624 (Logon Type 3) by their Logon ID (`winlog.logon.id`) on the Domain Controller\n(DC) that received the replication request. This will tell you where the AD replication request came from, and if it\ncame from another DC or not.\n- Scope which credentials were compromised (for example, whether all accounts were replicated or specific ones).\n\n### False positive analysis\n\n- This activity should not happen legitimately, since replication should be done by Domain Controllers only. Any\npotential benign true positive (B-TP) should be mapped and monitored by the security team. Any account that performs\nthis activity can put the domain at risk for not having the same security standards as computer accounts (which have\nlong, complex, random passwords that change frequently), exposing it to credential cracking attacks (Kerberoasting,\nbrute force, etc.).\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If specific credentials were compromised:\n - Reset the password for these accounts and other potentially compromised credentials, like email, business systems,\n and web services.\n- If the entire domain or the `krbtgt` user were compromised:\n - Activate your incident response plan for total Active Directory compromise which should include, but not be limited\n to, a password reset (twice) of the `krbtgt` user.\n- Investigate how the attacker escalated privileges and identify systems they used to conduct lateral movement. Use this\ninformation to scope ways that the attacker could use to regain access to the environment.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://threathunterplaybook.com/notebooks/windows/06_credential_access/WIN-180815210510.html","https://threathunterplaybook.com/library/windows/active_directory_replication.html?highlight=dcsync#directory-replication-services-auditing","https://github.com/SigmaHQ/sigma/blob/master/rules/windows/builtin/security/win_ad_replication_non_machine_account.yml","https://github.com/atc-project/atomic-threat-coverage/blob/master/Atomic_Threat_Coverage/Logging_Policies/LP_0027_windows_audit_directory_service_access.md","https://attack.stealthbits.com/privilege-escalation-using-mimikatz-dcsync","https://www.thehacker.recipes/ad/movement/credentials/dumping/dcsync"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.006","name":"DCSync","reference":"https://attack.mitre.org/techniques/T1003/006/"}]}]}],"language":"eql","query":"any where event.action == \"Directory Service Access\" and\n event.code == \"4662\" and winlog.event_data.Properties : (\n\n /* Control Access Rights/Permissions Symbol */\n\n \"*DS-Replication-Get-Changes*\",\n \"*DS-Replication-Get-Changes-All*\",\n \"*DS-Replication-Get-Changes-In-Filtered-Set*\",\n\n /* Identifying GUID used in ACE */\n\n \"*1131f6ad-9c07-11d1-f79f-00c04fc2dcd2*\",\n \"*1131f6aa-9c07-11d1-f79f-00c04fc2dcd2*\",\n \"*89e95b76-444d-4c62-991a-0facbeda640c*\")\n\n /* The right to perform an operation controlled by an extended access right. */\n\n and winlog.event_data.AccessMask : \"0x100\" and\n not winlog.event_data.SubjectUserName : (\"*$\", \"MSOL_*\")\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AccessMask","type":"unknown"},{"ecs":false,"name":"winlog.event_data.Properties","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectUserName","type":"keyword"}],"setup":"The 'Audit Directory Service Changes' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9f962927-1a4f-45f3-a57b-287f2c7029c1:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9f962927-1a4f-45f3-a57b-287f2c7029c1:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9f962927-1a4f-45f3-a57b-287f2c7029c1:102.0.1.json new file mode 100644 index 0000000000000..39a9bd1b977db --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9f962927-1a4f-45f3-a57b-287f2c7029c1:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Credential Access via DCSync v102.0.1","rule_id":"9f962927-1a4f-45f3-a57b-287f2c7029c1:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule identifies when a User Account starts the Active Directory Replication Process. Attackers can use the DCSync technique to get credential information of individual accounts or the entire domain, thus compromising the entire domain.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Credential Access via DCSync\n\nActive Directory replication is the process by which the changes that originate on one domain controller are\nautomatically transferred to other domain controllers that store the same data.\n\nActive Directory data consists of objects that have properties, or attributes. Each object is an instance of an object\nclass, and object classes and their respective attributes are defined in the Active Directory schema. Objects are\ndefined by the values of their attributes, and changes to attribute values must be transferred from the domain\ncontroller on which they occur to every other domain controller that stores a replica of an affected object.\n\nAdversaries can use the DCSync technique that uses Windows Domain Controller's API to simulate the replication process\nfrom a remote domain controller, compromising major credential material such as the Kerberos krbtgt keys used\nlegitimately for tickets creation, but also tickets forging by attackers. This attack requires some extended privileges\nto succeed (DS-Replication-Get-Changes and DS-Replication-Get-Changes-All), which are granted by default to members of\nthe Administrators, Domain Admins, Enterprise Admins, and Domain Controllers groups. Privileged accounts can be abused\nto grant controlled objects the right to DCsync/Replicate.\n\nMore details can be found on [Threat Hunter Playbook](https://threathunterplaybook.com/library/windows/active_directory_replication.html?highlight=dcsync#directory-replication-services-auditing) and [The Hacker Recipes](https://www.thehacker.recipes/ad/movement/credentials/dumping/dcsync).\n\nThis rule monitors for Event ID 4662 (Operation was performed on an Active Directory object) and identifies events that\nuse the access mask 0x100 (Control Access) and properties that contain at least one of the following or their equivalent:\nSchema-Id-GUID (DS-Replication-Get-Changes, DS-Replication-Get-Changes-All, DS-Replication-Get-Changes-In-Filtered-Set).\nIt also filters out events that use computer accounts and also Azure AD Connect MSOL accounts (more details [here](https://techcommunity.microsoft.com/t5/microsoft-defender-for-identity/ad-connect-msol-user-suspected-dcsync-attack/m-p/788028)).\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account and system owners and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Correlate security events 4662 and 4624 (Logon Type 3) by their Logon ID (`winlog.logon.id`) on the Domain Controller\n(DC) that received the replication request. This will tell you where the AD replication request came from, and if it\ncame from another DC or not.\n- Scope which credentials were compromised (for example, whether all accounts were replicated or specific ones).\n\n### False positive analysis\n\n- This activity should not happen legitimately, since replication should be done by Domain Controllers only. Any\npotential benign true positive (B-TP) should be mapped and monitored by the security team. Any account that performs\nthis activity can put the domain at risk for not having the same security standards as computer accounts (which have\nlong, complex, random passwords that change frequently), exposing it to credential cracking attacks (Kerberoasting,\nbrute force, etc.).\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If specific credentials were compromised:\n - Reset the password for these accounts and other potentially compromised credentials, like email, business systems,\n and web services.\n- If the entire domain or the `krbtgt` user were compromised:\n - Activate your incident response plan for total Active Directory compromise which should include, but not be limited\n to, a password reset (twice) of the `krbtgt` user.\n- Investigate how the attacker escalated privileges and identify systems they used to conduct lateral movement. Use this\ninformation to scope ways that the attacker could use to regain access to the environment.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://threathunterplaybook.com/notebooks/windows/06_credential_access/WIN-180815210510.html","https://threathunterplaybook.com/library/windows/active_directory_replication.html?highlight=dcsync#directory-replication-services-auditing","https://github.com/SigmaHQ/sigma/blob/master/rules/windows/builtin/security/win_ad_replication_non_machine_account.yml","https://github.com/atc-project/atomic-threat-coverage/blob/master/Atomic_Threat_Coverage/Logging_Policies/LP_0027_windows_audit_directory_service_access.md","https://attack.stealthbits.com/privilege-escalation-using-mimikatz-dcsync","https://www.thehacker.recipes/ad/movement/credentials/dumping/dcsync"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.006","name":"DCSync","reference":"https://attack.mitre.org/techniques/T1003/006/"}]}]}],"language":"eql","query":"any where event.action == \"Directory Service Access\" and\n event.code == \"4662\" and winlog.event_data.Properties : (\n\n /* Control Access Rights/Permissions Symbol */\n\n \"*DS-Replication-Get-Changes*\",\n \"*DS-Replication-Get-Changes-All*\",\n \"*DS-Replication-Get-Changes-In-Filtered-Set*\",\n\n /* Identifying GUID used in ACE */\n\n \"*1131f6ad-9c07-11d1-f79f-00c04fc2dcd2*\",\n \"*1131f6aa-9c07-11d1-f79f-00c04fc2dcd2*\",\n \"*89e95b76-444d-4c62-991a-0facbeda640c*\")\n\n /* The right to perform an operation controlled by an extended access right. */\n\n and winlog.event_data.AccessMask : \"0x100\" and\n not winlog.event_data.SubjectUserName : (\"*$\", \"MSOL_*\")\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AccessMask","type":"unknown"},{"ecs":false,"name":"winlog.event_data.Properties","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectUserName","type":"keyword"}],"setup":"The 'Audit Directory Service Changes' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9f962927-1a4f-45f3-a57b-287f2c7029c1:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9f962927-1a4f-45f3-a57b-287f2c7029c1:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9f962927-1a4f-45f3-a57b-287f2c7029c1:102.0.2.json new file mode 100644 index 0000000000000..adf9c34e62f04 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9f962927-1a4f-45f3-a57b-287f2c7029c1:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Credential Access via DCSync v102.0.2","rule_id":"9f962927-1a4f-45f3-a57b-287f2c7029c1:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule identifies when a User Account starts the Active Directory Replication Process. Attackers can use the DCSync technique to get credential information of individual accounts or the entire domain, thus compromising the entire domain.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Credential Access via DCSync\n\nActive Directory replication is the process by which the changes that originate on one domain controller are\nautomatically transferred to other domain controllers that store the same data.\n\nActive Directory data consists of objects that have properties, or attributes. Each object is an instance of an object\nclass, and object classes and their respective attributes are defined in the Active Directory schema. Objects are\ndefined by the values of their attributes, and changes to attribute values must be transferred from the domain\ncontroller on which they occur to every other domain controller that stores a replica of an affected object.\n\nAdversaries can use the DCSync technique that uses Windows Domain Controller's API to simulate the replication process\nfrom a remote domain controller, compromising major credential material such as the Kerberos krbtgt keys used\nlegitimately for tickets creation, but also tickets forging by attackers. This attack requires some extended privileges\nto succeed (DS-Replication-Get-Changes and DS-Replication-Get-Changes-All), which are granted by default to members of\nthe Administrators, Domain Admins, Enterprise Admins, and Domain Controllers groups. Privileged accounts can be abused\nto grant controlled objects the right to DCsync/Replicate.\n\nMore details can be found on [Threat Hunter Playbook](https://threathunterplaybook.com/library/windows/active_directory_replication.html?highlight=dcsync#directory-replication-services-auditing) and [The Hacker Recipes](https://www.thehacker.recipes/ad/movement/credentials/dumping/dcsync).\n\nThis rule monitors for Event ID 4662 (Operation was performed on an Active Directory object) and identifies events that\nuse the access mask 0x100 (Control Access) and properties that contain at least one of the following or their equivalent:\nSchema-Id-GUID (DS-Replication-Get-Changes, DS-Replication-Get-Changes-All, DS-Replication-Get-Changes-In-Filtered-Set).\nIt also filters out events that use computer accounts and also Azure AD Connect MSOL accounts (more details [here](https://techcommunity.microsoft.com/t5/microsoft-defender-for-identity/ad-connect-msol-user-suspected-dcsync-attack/m-p/788028)).\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account and system owners and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Correlate security events 4662 and 4624 (Logon Type 3) by their Logon ID (`winlog.logon.id`) on the Domain Controller\n(DC) that received the replication request. This will tell you where the AD replication request came from, and if it\ncame from another DC or not.\n- Scope which credentials were compromised (for example, whether all accounts were replicated or specific ones).\n\n### False positive analysis\n\n- This activity should not happen legitimately, since replication should be done by Domain Controllers only. Any\npotential benign true positive (B-TP) should be mapped and monitored by the security team. Any account that performs\nthis activity can put the domain at risk for not having the same security standards as computer accounts (which have\nlong, complex, random passwords that change frequently), exposing it to credential cracking attacks (Kerberoasting,\nbrute force, etc.).\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If specific credentials were compromised:\n - Reset the password for these accounts and other potentially compromised credentials, like email, business systems,\n and web services.\n- If the entire domain or the `krbtgt` user were compromised:\n - Activate your incident response plan for total Active Directory compromise which should include, but not be limited\n to, a password reset (twice) of the `krbtgt` user.\n- Investigate how the attacker escalated privileges and identify systems they used to conduct lateral movement. Use this\ninformation to scope ways that the attacker could use to regain access to the environment.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://threathunterplaybook.com/notebooks/windows/06_credential_access/WIN-180815210510.html","https://threathunterplaybook.com/library/windows/active_directory_replication.html?highlight=dcsync#directory-replication-services-auditing","https://github.com/SigmaHQ/sigma/blob/master/rules/windows/builtin/security/win_ad_replication_non_machine_account.yml","https://github.com/atc-project/atomic-threat-coverage/blob/master/Atomic_Threat_Coverage/Logging_Policies/LP_0027_windows_audit_directory_service_access.md","https://attack.stealthbits.com/privilege-escalation-using-mimikatz-dcsync","https://www.thehacker.recipes/ad/movement/credentials/dumping/dcsync"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.006","name":"DCSync","reference":"https://attack.mitre.org/techniques/T1003/006/"}]}]}],"language":"eql","query":"any where event.action == \"Directory Service Access\" and\n event.code == \"4662\" and winlog.event_data.Properties : (\n\n /* Control Access Rights/Permissions Symbol */\n\n \"*DS-Replication-Get-Changes*\",\n \"*DS-Replication-Get-Changes-All*\",\n \"*DS-Replication-Get-Changes-In-Filtered-Set*\",\n\n /* Identifying GUID used in ACE */\n\n \"*1131f6ad-9c07-11d1-f79f-00c04fc2dcd2*\",\n \"*1131f6aa-9c07-11d1-f79f-00c04fc2dcd2*\",\n \"*89e95b76-444d-4c62-991a-0facbeda640c*\")\n\n /* The right to perform an operation controlled by an extended access right. */\n\n and winlog.event_data.AccessMask : \"0x100\" and\n not winlog.event_data.SubjectUserName : (\"*$\", \"MSOL_*\")\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AccessMask","type":"unknown"},{"ecs":false,"name":"winlog.event_data.Properties","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectUserName","type":"keyword"}],"setup":"The 'Audit Directory Service Changes' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"9f962927-1a4f-45f3-a57b-287f2c7029c1:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9f9a2a82-93a8-4b1a-8778-1780895626d4:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9f9a2a82-93a8-4b1a-8778-1780895626d4:100.0.0.json new file mode 100644 index 0000000000000..045710ef04327 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9f9a2a82-93a8-4b1a-8778-1780895626d4:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"File Permission Modification in Writable Directory v100.0.0","rule_id":"9f9a2a82-93a8-4b1a-8778-1780895626d4:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies file permission modifications in common writable directories by a non-root user. Adversaries often drop files or payloads into a writable directory and change permissions prior to execution.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain programs or applications may modify files or change ownership in writable directories. These can be exempted by username."],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1222","name":"File and Directory Permissions Modification","reference":"https://attack.mitre.org/techniques/T1222/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:(chmod or chown or chattr or chgrp) and\n process.working_directory:(/tmp or /var/tmp or /dev/shm) and\n not user.name:root\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.working_directory","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"9f9a2a82-93a8-4b1a-8778-1780895626d4:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9f9a2a82-93a8-4b1a-8778-1780895626d4:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9f9a2a82-93a8-4b1a-8778-1780895626d4:100.0.1.json new file mode 100644 index 0000000000000..4ab7741cd080e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9f9a2a82-93a8-4b1a-8778-1780895626d4:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"File Permission Modification in Writable Directory v100.0.1","rule_id":"9f9a2a82-93a8-4b1a-8778-1780895626d4:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies file permission modifications in common writable directories by a non-root user. Adversaries often drop files or payloads into a writable directory and change permissions prior to execution.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain programs or applications may modify files or change ownership in writable directories. These can be exempted by username."],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1222","name":"File and Directory Permissions Modification","reference":"https://attack.mitre.org/techniques/T1222/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:(chmod or chown or chattr or chgrp) and\n process.working_directory:(/tmp or /var/tmp or /dev/shm) and\n not user.name:root\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.working_directory","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"9f9a2a82-93a8-4b1a-8778-1780895626d4:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/9f9a2a82-93a8-4b1a-8778-1780895626d4:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/9f9a2a82-93a8-4b1a-8778-1780895626d4:100.0.2.json new file mode 100644 index 0000000000000..f70f424f4f05d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/9f9a2a82-93a8-4b1a-8778-1780895626d4:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"File Permission Modification in Writable Directory v100.0.2","rule_id":"9f9a2a82-93a8-4b1a-8778-1780895626d4:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies file permission modifications in common writable directories by a non-root user. Adversaries often drop files or payloads into a writable directory and change permissions prior to execution.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain programs or applications may modify files or change ownership in writable directories. These can be exempted by username."],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1222","name":"File and Directory Permissions Modification","reference":"https://attack.mitre.org/techniques/T1222/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:(chmod or chown or chattr or chgrp) and\n process.working_directory:(/tmp or /var/tmp or /dev/shm) and\n not user.name:root\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.working_directory","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"9f9a2a82-93a8-4b1a-8778-1780895626d4:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a00681e3-9ed6-447c-ab2c-be648821c622:103.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a00681e3-9ed6-447c-ab2c-be648821c622:103.0.0.json new file mode 100644 index 0000000000000..624584cd5437f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a00681e3-9ed6-447c-ab2c-be648821c622:103.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Access Secret in Secrets Manager v103.0.0","rule_id":"a00681e3-9ed6-447c-ab2c-be648821c622:103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary may attempt to access the secrets in secrets manager to steal certificates, credentials, or other sensitive material","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS Access Secret in Secrets Manager\n\nAWS Secrets Manager is a service that enables the replacement of hardcoded credentials in code, including passwords, with\nan API call to Secrets Manager to retrieve the secret programmatically.\n\nThis rule looks for the retrieval of credentials using the API `GetSecretValue` action.\n\n#### Possible investigation steps\n\n- Identify the account and its role in the environment, and inspect the related policy.\n- Identify the applications that should use this account.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Investigate abnormal values in the `user_agent.original` field by comparing them with the intended and authorized usage\nand historical data. Suspicious user agent values include non-SDK, AWS CLI, custom user agents, etc.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences involving other users.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Review IAM permission policies for the user identity and specific secrets accessed.\n- Examine the request parameters. These might indicate the source of the program or the nature of its tasks.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- False positives may occur due to the intended usage of the service. Tuning is needed in order to have higher\nconfidence. Consider adding exceptions — preferably with a combination of user agent and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Rotate secrets or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Nick Jones","Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be using GetSecretString API for the specified SecretId. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html","http://detectioninthe.cloud/credential_access/access_secret_in_secrets_manager/"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Data Protection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1528","name":"Steal Application Access Token","reference":"https://attack.mitre.org/techniques/T1528/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:secretsmanager.amazonaws.com and event.action:GetSecretValue\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"a00681e3-9ed6-447c-ab2c-be648821c622:103.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a00681e3-9ed6-447c-ab2c-be648821c622:103.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a00681e3-9ed6-447c-ab2c-be648821c622:103.0.1.json new file mode 100644 index 0000000000000..807aec549a87c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a00681e3-9ed6-447c-ab2c-be648821c622:103.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Access Secret in Secrets Manager v103.0.1","rule_id":"a00681e3-9ed6-447c-ab2c-be648821c622:103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary may attempt to access the secrets in secrets manager to steal certificates, credentials, or other sensitive material","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS Access Secret in Secrets Manager\n\nAWS Secrets Manager is a service that enables the replacement of hardcoded credentials in code, including passwords, with\nan API call to Secrets Manager to retrieve the secret programmatically.\n\nThis rule looks for the retrieval of credentials using the API `GetSecretValue` action.\n\n#### Possible investigation steps\n\n- Identify the account and its role in the environment, and inspect the related policy.\n- Identify the applications that should use this account.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Investigate abnormal values in the `user_agent.original` field by comparing them with the intended and authorized usage\nand historical data. Suspicious user agent values include non-SDK, AWS CLI, custom user agents, etc.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences involving other users.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Review IAM permission policies for the user identity and specific secrets accessed.\n- Examine the request parameters. These might indicate the source of the program or the nature of its tasks.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- False positives may occur due to the intended usage of the service. Tuning is needed in order to have higher\nconfidence. Consider adding exceptions — preferably with a combination of user agent and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Rotate secrets or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Nick Jones","Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be using GetSecretString API for the specified SecretId. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html","http://detectioninthe.cloud/credential_access/access_secret_in_secrets_manager/"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Data Protection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1528","name":"Steal Application Access Token","reference":"https://attack.mitre.org/techniques/T1528/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:secretsmanager.amazonaws.com and event.action:GetSecretValue\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"a00681e3-9ed6-447c-ab2c-be648821c622:103.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a00681e3-9ed6-447c-ab2c-be648821c622:103.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a00681e3-9ed6-447c-ab2c-be648821c622:103.0.2.json new file mode 100644 index 0000000000000..1b902f8d63f15 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a00681e3-9ed6-447c-ab2c-be648821c622:103.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Access Secret in Secrets Manager v103.0.2","rule_id":"a00681e3-9ed6-447c-ab2c-be648821c622:103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary may attempt to access the secrets in secrets manager to steal certificates, credentials, or other sensitive material","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS Access Secret in Secrets Manager\n\nAWS Secrets Manager is a service that enables the replacement of hardcoded credentials in code, including passwords, with\nan API call to Secrets Manager to retrieve the secret programmatically.\n\nThis rule looks for the retrieval of credentials using the API `GetSecretValue` action.\n\n#### Possible investigation steps\n\n- Identify the account and its role in the environment, and inspect the related policy.\n- Identify the applications that should use this account.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Investigate abnormal values in the `user_agent.original` field by comparing them with the intended and authorized usage\nand historical data. Suspicious user agent values include non-SDK, AWS CLI, custom user agents, etc.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences involving other users.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Review IAM permission policies for the user identity and specific secrets accessed.\n- Examine the request parameters. These might indicate the source of the program or the nature of its tasks.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- False positives may occur due to the intended usage of the service. Tuning is needed in order to have higher\nconfidence. Consider adding exceptions — preferably with a combination of user agent and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Rotate secrets or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Nick Jones","Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be using GetSecretString API for the specified SecretId. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html","http://detectioninthe.cloud/credential_access/access_secret_in_secrets_manager/"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Data Protection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1528","name":"Steal Application Access Token","reference":"https://attack.mitre.org/techniques/T1528/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:secretsmanager.amazonaws.com and event.action:GetSecretValue\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"a00681e3-9ed6-447c-ab2c-be648821c622:103.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a02cb68e-7c93-48d1-93b2-2c39023308eb:2.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a02cb68e-7c93-48d1-93b2-2c39023308eb:2.0.0.json new file mode 100644 index 0000000000000..e85e96b3eeedb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a02cb68e-7c93-48d1-93b2-2c39023308eb:2.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"A scheduled task was updated v2.0.0","rule_id":"a02cb68e-7c93-48d1-93b2-2c39023308eb:2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Indicates the update of a scheduled task using Windows event logs. Adversaries can use these to establish persistence, by changing the configuration of a legit scheduled task. Some changes such as disabling or enabling a scheduled task are common and may may generate noise.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4698"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"iam where event.action == \"scheduled-task-updated\" and\n\n /* excluding tasks created by the computer account */\n not user.name : \"*$\" and\n not winlog.event_data.TaskName :\n (\"\\\\User_Feed_Synchronization-*\",\n \"\\\\OneDrive Reporting Task-S-1-5-21*\",\n \"\\\\OneDrive Reporting Task-S-1-12-1-*\",\n \"\\\\Hewlett-Packard\\\\HP Web Products Detection\",\n \"\\\\Hewlett-Packard\\\\HPDeviceCheck\")\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TaskName","type":"unknown"}]},"id":"a02cb68e-7c93-48d1-93b2-2c39023308eb:2.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a02cb68e-7c93-48d1-93b2-2c39023308eb:2.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a02cb68e-7c93-48d1-93b2-2c39023308eb:2.0.1.json new file mode 100644 index 0000000000000..b8173c8d69b2a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a02cb68e-7c93-48d1-93b2-2c39023308eb:2.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"A scheduled task was updated v2.0.1","rule_id":"a02cb68e-7c93-48d1-93b2-2c39023308eb:2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Indicates the update of a scheduled task using Windows event logs. Adversaries can use these to establish persistence, by changing the configuration of a legit scheduled task. Some changes such as disabling or enabling a scheduled task are common and may may generate noise.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4698"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"iam where event.action == \"scheduled-task-updated\" and\n\n /* excluding tasks created by the computer account */\n not user.name : \"*$\" and\n not winlog.event_data.TaskName :\n (\"\\\\User_Feed_Synchronization-*\",\n \"\\\\OneDrive Reporting Task-S-1-5-21*\",\n \"\\\\OneDrive Reporting Task-S-1-12-1-*\",\n \"\\\\Hewlett-Packard\\\\HP Web Products Detection\",\n \"\\\\Hewlett-Packard\\\\HPDeviceCheck\")\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TaskName","type":"unknown"}]},"id":"a02cb68e-7c93-48d1-93b2-2c39023308eb:2.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a02cb68e-7c93-48d1-93b2-2c39023308eb:2.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a02cb68e-7c93-48d1-93b2-2c39023308eb:2.0.2.json new file mode 100644 index 0000000000000..8601c1b79a214 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a02cb68e-7c93-48d1-93b2-2c39023308eb:2.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"A scheduled task was updated v2.0.2","rule_id":"a02cb68e-7c93-48d1-93b2-2c39023308eb:2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Indicates the update of a scheduled task using Windows event logs. Adversaries can use these to establish persistence, by changing the configuration of a legit scheduled task. Some changes such as disabling or enabling a scheduled task are common and may may generate noise.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4698"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"iam where event.action == \"scheduled-task-updated\" and\n\n /* excluding tasks created by the computer account */\n not user.name : \"*$\" and\n not winlog.event_data.TaskName :\n (\"\\\\User_Feed_Synchronization-*\",\n \"\\\\OneDrive Reporting Task-S-1-5-21*\",\n \"\\\\OneDrive Reporting Task-S-1-12-1-*\",\n \"\\\\Hewlett-Packard\\\\HP Web Products Detection\",\n \"\\\\Hewlett-Packard\\\\HPDeviceCheck\")\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TaskName","type":"unknown"}]},"id":"a02cb68e-7c93-48d1-93b2-2c39023308eb:2.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a10d3d9d-0f65-48f1-8b25-af175e2594f5:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a10d3d9d-0f65-48f1-8b25-af175e2594f5:102.0.0.json new file mode 100644 index 0000000000000..ffa80d5e998af --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a10d3d9d-0f65-48f1-8b25-af175e2594f5:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Pub/Sub Topic Creation v102.0.0","rule_id":"a10d3d9d-0f65-48f1-8b25-af175e2594f5:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a topic in Google Cloud Platform (GCP). In GCP, the publisher-subscriber relationship (Pub/Sub) is an asynchronous messaging service that decouples event-producing and event-processing services. A topic is used to forward messages from publishers to subscribers.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Topic creations may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Topic creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/pubsub/docs/admin"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1530","name":"Data from Cloud Storage Object","reference":"https://attack.mitre.org/techniques/T1530/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.pubsub.v*.Publisher.CreateTopic and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"a10d3d9d-0f65-48f1-8b25-af175e2594f5:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a10d3d9d-0f65-48f1-8b25-af175e2594f5:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a10d3d9d-0f65-48f1-8b25-af175e2594f5:102.0.1.json new file mode 100644 index 0000000000000..c21d9398600fd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a10d3d9d-0f65-48f1-8b25-af175e2594f5:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Pub/Sub Topic Creation v102.0.1","rule_id":"a10d3d9d-0f65-48f1-8b25-af175e2594f5:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a topic in Google Cloud Platform (GCP). In GCP, the publisher-subscriber relationship (Pub/Sub) is an asynchronous messaging service that decouples event-producing and event-processing services. A topic is used to forward messages from publishers to subscribers.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Topic creations may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Topic creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/pubsub/docs/admin"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1530","name":"Data from Cloud Storage Object","reference":"https://attack.mitre.org/techniques/T1530/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.pubsub.v*.Publisher.CreateTopic and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"a10d3d9d-0f65-48f1-8b25-af175e2594f5:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a10d3d9d-0f65-48f1-8b25-af175e2594f5:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a10d3d9d-0f65-48f1-8b25-af175e2594f5:102.0.2.json new file mode 100644 index 0000000000000..4ae674cc3b97a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a10d3d9d-0f65-48f1-8b25-af175e2594f5:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Pub/Sub Topic Creation v102.0.2","rule_id":"a10d3d9d-0f65-48f1-8b25-af175e2594f5:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a topic in Google Cloud Platform (GCP). In GCP, the publisher-subscriber relationship (Pub/Sub) is an asynchronous messaging service that decouples event-producing and event-processing services. A topic is used to forward messages from publishers to subscribers.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Topic creations may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Topic creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/pubsub/docs/admin"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1530","name":"Data from Cloud Storage Object","reference":"https://attack.mitre.org/techniques/T1530/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.pubsub.v*.Publisher.CreateTopic and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"a10d3d9d-0f65-48f1-8b25-af175e2594f5:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a13167f1-eec2-4015-9631-1fee60406dcf:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a13167f1-eec2-4015-9631-1fee60406dcf:101.0.0.json new file mode 100644 index 0000000000000..49a226ae6d1b3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a13167f1-eec2-4015-9631-1fee60406dcf:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"InstallUtil Process Making Network Connections v101.0.0","rule_id":"a13167f1-eec2-4015-9631-1fee60406dcf:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies InstallUtil.exe making outbound network connections. This may indicate adversarial activity as InstallUtil is often leveraged by adversaries to execute code and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.004","name":"InstallUtil","reference":"https://attack.mitre.org/techniques/T1218/004/"}]}]}],"language":"eql","query":"/* the benefit of doing this as an eql sequence vs kql is this will limit to alerting only on the first network connection */\n\nsequence by process.entity_id\n [process where event.type == \"start\" and process.name : \"installutil.exe\"]\n [network where process.name : \"installutil.exe\" and network.direction : (\"outgoing\", \"egress\")]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"a13167f1-eec2-4015-9631-1fee60406dcf:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a13167f1-eec2-4015-9631-1fee60406dcf:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a13167f1-eec2-4015-9631-1fee60406dcf:101.0.1.json new file mode 100644 index 0000000000000..cd8b467b1d883 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a13167f1-eec2-4015-9631-1fee60406dcf:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"InstallUtil Process Making Network Connections v101.0.1","rule_id":"a13167f1-eec2-4015-9631-1fee60406dcf:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies InstallUtil.exe making outbound network connections. This may indicate adversarial activity as InstallUtil is often leveraged by adversaries to execute code and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.004","name":"InstallUtil","reference":"https://attack.mitre.org/techniques/T1218/004/"}]}]}],"language":"eql","query":"/* the benefit of doing this as an eql sequence vs kql is this will limit to alerting only on the first network connection */\n\nsequence by process.entity_id\n [process where event.type == \"start\" and process.name : \"installutil.exe\"]\n [network where process.name : \"installutil.exe\" and network.direction : (\"outgoing\", \"egress\")]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"a13167f1-eec2-4015-9631-1fee60406dcf:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a13167f1-eec2-4015-9631-1fee60406dcf:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a13167f1-eec2-4015-9631-1fee60406dcf:101.0.2.json new file mode 100644 index 0000000000000..cd804eb29cb08 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a13167f1-eec2-4015-9631-1fee60406dcf:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"InstallUtil Process Making Network Connections v101.0.2","rule_id":"a13167f1-eec2-4015-9631-1fee60406dcf:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies InstallUtil.exe making outbound network connections. This may indicate adversarial activity as InstallUtil is often leveraged by adversaries to execute code and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.004","name":"InstallUtil","reference":"https://attack.mitre.org/techniques/T1218/004/"}]}]}],"language":"eql","query":"/* the benefit of doing this as an eql sequence vs kql is this will limit to alerting only on the first network connection */\n\nsequence by process.entity_id\n [process where event.type == \"start\" and process.name : \"installutil.exe\"]\n [network where process.name : \"installutil.exe\" and network.direction : (\"outgoing\", \"egress\")]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"a13167f1-eec2-4015-9631-1fee60406dcf:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a1329140-8de3-4445-9f87-908fb6d824f4:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a1329140-8de3-4445-9f87-908fb6d824f4:100.0.0.json new file mode 100644 index 0000000000000..a0c3b3afe7916 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a1329140-8de3-4445-9f87-908fb6d824f4:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"File Deletion via Shred v100.0.0","rule_id":"a1329140-8de3-4445-9f87-908fb6d824f4:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Malware or other files dropped or created on a system by an adversary may leave traces behind as to what was done within a network and how. Adversaries may remove these files over the course of an intrusion to keep their footprint low or remove them at the end as part of the post-intrusion cleanup process.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.004","name":"File Deletion","reference":"https://attack.mitre.org/techniques/T1070/004/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:shred and\n process.args:(\"-u\" or \"--remove\" or \"-z\" or \"--zero\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"a1329140-8de3-4445-9f87-908fb6d824f4:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a1329140-8de3-4445-9f87-908fb6d824f4:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a1329140-8de3-4445-9f87-908fb6d824f4:100.0.1.json new file mode 100644 index 0000000000000..b7fe5b71ec344 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a1329140-8de3-4445-9f87-908fb6d824f4:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"File Deletion via Shred v100.0.1","rule_id":"a1329140-8de3-4445-9f87-908fb6d824f4:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Malware or other files dropped or created on a system by an adversary may leave traces behind as to what was done within a network and how. Adversaries may remove these files over the course of an intrusion to keep their footprint low or remove them at the end as part of the post-intrusion cleanup process.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.004","name":"File Deletion","reference":"https://attack.mitre.org/techniques/T1070/004/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:shred and\n process.args:(\"-u\" or \"--remove\" or \"-z\" or \"--zero\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"a1329140-8de3-4445-9f87-908fb6d824f4:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a1329140-8de3-4445-9f87-908fb6d824f4:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a1329140-8de3-4445-9f87-908fb6d824f4:100.0.2.json new file mode 100644 index 0000000000000..eeb37226bbd74 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a1329140-8de3-4445-9f87-908fb6d824f4:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"File Deletion via Shred v100.0.2","rule_id":"a1329140-8de3-4445-9f87-908fb6d824f4:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Malware or other files dropped or created on a system by an adversary may leave traces behind as to what was done within a network and how. Adversaries may remove these files over the course of an intrusion to keep their footprint low or remove them at the end as part of the post-intrusion cleanup process.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.004","name":"File Deletion","reference":"https://attack.mitre.org/techniques/T1070/004/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:shred and\n process.args:(\"-u\" or \"--remove\" or \"-z\" or \"--zero\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"a1329140-8de3-4445-9f87-908fb6d824f4:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a16612dd-b30e-4d41-86a0-ebe70974ec00:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a16612dd-b30e-4d41-86a0-ebe70974ec00:101.0.0.json new file mode 100644 index 0000000000000..43e7f45cdf523 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a16612dd-b30e-4d41-86a0-ebe70974ec00:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential LSASS Clone Creation via PssCaptureSnapShot v101.0.0","rule_id":"a16612dd-b30e-4d41-86a0-ebe70974ec00:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an LSASS process clone via PssCaptureSnapShot where the parent process is the initial LSASS process instance. This may indicate an attempt to evade detection and dump LSASS memory for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.matteomalvica.com/blog/2019/12/02/win-defender-atp-cred-bypass/","https://medium.com/@Achilles8284/the-birth-of-a-process-part-2-97c6fb9c42a2"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"process where event.code:\"4688\" and\n process.executable : \"?:\\\\Windows\\\\System32\\\\lsass.exe\" and\n process.parent.executable : \"?:\\\\Windows\\\\System32\\\\lsass.exe\"\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"This is meant to run only on datasources using Windows security event 4688 that captures the process clone creation.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"a16612dd-b30e-4d41-86a0-ebe70974ec00:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a16612dd-b30e-4d41-86a0-ebe70974ec00:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a16612dd-b30e-4d41-86a0-ebe70974ec00:101.0.1.json new file mode 100644 index 0000000000000..23302b0c07e28 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a16612dd-b30e-4d41-86a0-ebe70974ec00:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential LSASS Clone Creation via PssCaptureSnapShot v101.0.1","rule_id":"a16612dd-b30e-4d41-86a0-ebe70974ec00:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an LSASS process clone via PssCaptureSnapShot where the parent process is the initial LSASS process instance. This may indicate an attempt to evade detection and dump LSASS memory for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.matteomalvica.com/blog/2019/12/02/win-defender-atp-cred-bypass/","https://medium.com/@Achilles8284/the-birth-of-a-process-part-2-97c6fb9c42a2"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"process where event.code:\"4688\" and\n process.executable : \"?:\\\\Windows\\\\System32\\\\lsass.exe\" and\n process.parent.executable : \"?:\\\\Windows\\\\System32\\\\lsass.exe\"\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"This is meant to run only on datasources using Windows security event 4688 that captures the process clone creation.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"a16612dd-b30e-4d41-86a0-ebe70974ec00:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a16612dd-b30e-4d41-86a0-ebe70974ec00:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a16612dd-b30e-4d41-86a0-ebe70974ec00:101.0.2.json new file mode 100644 index 0000000000000..e70f17c3188d1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a16612dd-b30e-4d41-86a0-ebe70974ec00:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential LSASS Clone Creation via PssCaptureSnapShot v101.0.2","rule_id":"a16612dd-b30e-4d41-86a0-ebe70974ec00:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an LSASS process clone via PssCaptureSnapShot where the parent process is the initial LSASS process instance. This may indicate an attempt to evade detection and dump LSASS memory for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.matteomalvica.com/blog/2019/12/02/win-defender-atp-cred-bypass/","https://medium.com/@Achilles8284/the-birth-of-a-process-part-2-97c6fb9c42a2"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"process where event.code:\"4688\" and\n process.executable : \"?:\\\\Windows\\\\System32\\\\lsass.exe\" and\n process.parent.executable : \"?:\\\\Windows\\\\System32\\\\lsass.exe\"\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"This is meant to run only on datasources using Windows security event 4688 that captures the process clone creation.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"a16612dd-b30e-4d41-86a0-ebe70974ec00:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a17bcc91-297b-459b-b5ce-bc7460d8f82a:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a17bcc91-297b-459b-b5ce-bc7460d8f82a:102.0.0.json new file mode 100644 index 0000000000000..c57dee667f1b5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a17bcc91-297b-459b-b5ce-bc7460d8f82a:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Virtual Private Cloud Route Deletion v102.0.0","rule_id":"a17bcc91-297b-459b-b5ce-bc7460d8f82a:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Virtual Private Cloud (VPC) route is deleted in Google Cloud Platform (GCP). Google Cloud routes define the paths that network traffic takes from a virtual machine (VM) instance to other destinations. These destinations can be inside a Google VPC network or outside it. An adversary may delete a route in order to impact the flow of network traffic in their target's cloud environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Virtual Private Cloud routes may be deleted by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/routes","https://cloud.google.com/vpc/docs/using-routes"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:v*.compute.routes.delete and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"a17bcc91-297b-459b-b5ce-bc7460d8f82a:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a17bcc91-297b-459b-b5ce-bc7460d8f82a:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a17bcc91-297b-459b-b5ce-bc7460d8f82a:102.0.1.json new file mode 100644 index 0000000000000..4bcd5038e55a6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a17bcc91-297b-459b-b5ce-bc7460d8f82a:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Virtual Private Cloud Route Deletion v102.0.1","rule_id":"a17bcc91-297b-459b-b5ce-bc7460d8f82a:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Virtual Private Cloud (VPC) route is deleted in Google Cloud Platform (GCP). Google Cloud routes define the paths that network traffic takes from a virtual machine (VM) instance to other destinations. These destinations can be inside a Google VPC network or outside it. An adversary may delete a route in order to impact the flow of network traffic in their target's cloud environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Virtual Private Cloud routes may be deleted by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/routes","https://cloud.google.com/vpc/docs/using-routes"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:v*.compute.routes.delete and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"a17bcc91-297b-459b-b5ce-bc7460d8f82a:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a17bcc91-297b-459b-b5ce-bc7460d8f82a:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a17bcc91-297b-459b-b5ce-bc7460d8f82a:102.0.2.json new file mode 100644 index 0000000000000..c27d24bd10c03 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a17bcc91-297b-459b-b5ce-bc7460d8f82a:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Virtual Private Cloud Route Deletion v102.0.2","rule_id":"a17bcc91-297b-459b-b5ce-bc7460d8f82a:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Virtual Private Cloud (VPC) route is deleted in Google Cloud Platform (GCP). Google Cloud routes define the paths that network traffic takes from a virtual machine (VM) instance to other destinations. These destinations can be inside a Google VPC network or outside it. An adversary may delete a route in order to impact the flow of network traffic in their target's cloud environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Virtual Private Cloud routes may be deleted by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/routes","https://cloud.google.com/vpc/docs/using-routes"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:v*.compute.routes.delete and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"a17bcc91-297b-459b-b5ce-bc7460d8f82a:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a1a0375f-22c2-48c0-81a4-7c2d11cc6856:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a1a0375f-22c2-48c0-81a4-7c2d11cc6856:102.0.0.json new file mode 100644 index 0000000000000..df285663d51ed --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a1a0375f-22c2-48c0-81a4-7c2d11cc6856:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Reverse Shell Activity via Terminal v102.0.0","rule_id":"a1a0375f-22c2-48c0-81a4-7c2d11cc6856:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a shell process with suspicious arguments which may be indicative of reverse shell activity.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Reverse Shell Activity via Terminal\n\nA reverse shell is a mechanism that's abused to connect back to an attacker-controlled system. It effectively redirects\nthe system's input and output and delivers a fully functional remote shell to the attacker. Even private systems are\nvulnerable since the connection is outgoing. This activity is typically the result of vulnerability exploitation,\nmalware infection, or penetration testing.\n\nThis rule identifies commands that are potentially related to reverse shell activities using shell applications.\n\n#### Possible investigation steps\n\n- Examine the command line and extract the target domain or IP address information.\n - Check if the domain is newly registered or unexpected.\n - Check the reputation of the domain or IP address.\n - Scope other potentially compromised hosts in your environment by mapping hosts that also communicated with the\n domain or IP address.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, file modifications, and any\nspawned child processes.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently\nmalicious must be monitored by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Take actions to terminate processes and connections used by the attacker.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md","https://github.com/WangYihang/Reverse-Shell-Manager","https://www.netsparker.com/blog/web-security/understanding-reverse-shells/"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.name in (\"sh\", \"bash\", \"zsh\", \"dash\", \"zmodload\") and\n process.args : (\"*/dev/tcp/*\", \"*/dev/udp/*\", \"*zsh/net/tcp*\", \"*zsh/net/udp*\") and\n\n /* noisy FPs */\n not (process.parent.name : \"timeout\" and process.executable : \"/var/lib/docker/overlay*\") and\n not process.command_line : (\"*/dev/tcp/sirh_db/*\", \"*/dev/tcp/remoteiot.com/*\", \"*dev/tcp/elk.stag.one/*\", \"*dev/tcp/kafka/*\", \"*/dev/tcp/$0/$1*\", \"*/dev/tcp/127.*\", \"*/dev/udp/127.*\", \"*/dev/tcp/localhost/*\") and\n not process.parent.command_line : \"runc init\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.command_line","type":"wildcard"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"a1a0375f-22c2-48c0-81a4-7c2d11cc6856:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a1a0375f-22c2-48c0-81a4-7c2d11cc6856:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a1a0375f-22c2-48c0-81a4-7c2d11cc6856:102.0.1.json new file mode 100644 index 0000000000000..06bb8f506d7fb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a1a0375f-22c2-48c0-81a4-7c2d11cc6856:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Reverse Shell Activity via Terminal v102.0.1","rule_id":"a1a0375f-22c2-48c0-81a4-7c2d11cc6856:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a shell process with suspicious arguments which may be indicative of reverse shell activity.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Reverse Shell Activity via Terminal\n\nA reverse shell is a mechanism that's abused to connect back to an attacker-controlled system. It effectively redirects\nthe system's input and output and delivers a fully functional remote shell to the attacker. Even private systems are\nvulnerable since the connection is outgoing. This activity is typically the result of vulnerability exploitation,\nmalware infection, or penetration testing.\n\nThis rule identifies commands that are potentially related to reverse shell activities using shell applications.\n\n#### Possible investigation steps\n\n- Examine the command line and extract the target domain or IP address information.\n - Check if the domain is newly registered or unexpected.\n - Check the reputation of the domain or IP address.\n - Scope other potentially compromised hosts in your environment by mapping hosts that also communicated with the\n domain or IP address.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, file modifications, and any\nspawned child processes.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently\nmalicious must be monitored by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Take actions to terminate processes and connections used by the attacker.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md","https://github.com/WangYihang/Reverse-Shell-Manager","https://www.netsparker.com/blog/web-security/understanding-reverse-shells/"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.name in (\"sh\", \"bash\", \"zsh\", \"dash\", \"zmodload\") and\n process.args : (\"*/dev/tcp/*\", \"*/dev/udp/*\", \"*zsh/net/tcp*\", \"*zsh/net/udp*\") and\n\n /* noisy FPs */\n not (process.parent.name : \"timeout\" and process.executable : \"/var/lib/docker/overlay*\") and\n not process.command_line : (\"*/dev/tcp/sirh_db/*\", \"*/dev/tcp/remoteiot.com/*\", \"*dev/tcp/elk.stag.one/*\", \"*dev/tcp/kafka/*\", \"*/dev/tcp/$0/$1*\", \"*/dev/tcp/127.*\", \"*/dev/udp/127.*\", \"*/dev/tcp/localhost/*\") and\n not process.parent.command_line : \"runc init\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.command_line","type":"wildcard"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"a1a0375f-22c2-48c0-81a4-7c2d11cc6856:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a1a0375f-22c2-48c0-81a4-7c2d11cc6856:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a1a0375f-22c2-48c0-81a4-7c2d11cc6856:102.0.2.json new file mode 100644 index 0000000000000..0b5e203d83a2c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a1a0375f-22c2-48c0-81a4-7c2d11cc6856:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Reverse Shell Activity via Terminal v102.0.2","rule_id":"a1a0375f-22c2-48c0-81a4-7c2d11cc6856:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a shell process with suspicious arguments which may be indicative of reverse shell activity.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential Reverse Shell Activity via Terminal\n\nA reverse shell is a mechanism that's abused to connect back to an attacker-controlled system. It effectively redirects\nthe system's input and output and delivers a fully functional remote shell to the attacker. Even private systems are\nvulnerable since the connection is outgoing. This activity is typically the result of vulnerability exploitation,\nmalware infection, or penetration testing.\n\nThis rule identifies commands that are potentially related to reverse shell activities using shell applications.\n\n#### Possible investigation steps\n\n- Examine the command line and extract the target domain or IP address information.\n - Check if the domain is newly registered or unexpected.\n - Check the reputation of the domain or IP address.\n - Scope other potentially compromised hosts in your environment by mapping hosts that also communicated with the\n domain or IP address.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, file modifications, and any\nspawned child processes.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently\nmalicious must be monitored by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Take actions to terminate processes and connections used by the attacker.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md","https://github.com/WangYihang/Reverse-Shell-Manager","https://www.netsparker.com/blog/web-security/understanding-reverse-shells/"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.name in (\"sh\", \"bash\", \"zsh\", \"dash\", \"zmodload\") and\n process.args : (\"*/dev/tcp/*\", \"*/dev/udp/*\", \"*zsh/net/tcp*\", \"*zsh/net/udp*\") and\n\n /* noisy FPs */\n not (process.parent.name : \"timeout\" and process.executable : \"/var/lib/docker/overlay*\") and\n not process.command_line : (\"*/dev/tcp/sirh_db/*\", \"*/dev/tcp/remoteiot.com/*\", \"*dev/tcp/elk.stag.one/*\", \"*dev/tcp/kafka/*\", \"*/dev/tcp/$0/$1*\", \"*/dev/tcp/127.*\", \"*/dev/udp/127.*\", \"*/dev/tcp/localhost/*\") and\n not process.parent.command_line : \"runc init\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.command_line","type":"wildcard"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"a1a0375f-22c2-48c0-81a4-7c2d11cc6856:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a22a09c2-2162-4df0-a356-9aacbeb56a04:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a22a09c2-2162-4df0-a356-9aacbeb56a04:101.0.0.json new file mode 100644 index 0000000000000..c346d0c7c4103 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a22a09c2-2162-4df0-a356-9aacbeb56a04:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"DNS-over-HTTPS Enabled via Registry v101.0.0","rule_id":"a22a09c2-2162-4df0-a356-9aacbeb56a04:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user enables DNS-over-HTTPS. This can be used to hide internet activity or the process of exfiltrating data. With this enabled, an organization will lose visibility into data such as query type, response, and originating IP, which are used to determine bad actors.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"from":"now-9m","references":["https://www.tenforums.com/tutorials/151318-how-enable-disable-dns-over-https-doh-microsoft-edge.html","https://chromeenterprise.google/policies/?policy=DnsOverHttpsMode"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n (registry.path : \"*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Edge\\\\BuiltInDnsClientEnabled\" and\n registry.data.strings : \"1\") or\n (registry.path : \"*\\\\SOFTWARE\\\\Google\\\\Chrome\\\\DnsOverHttpsMode\" and\n registry.data.strings : \"secure\") or\n (registry.path : \"*\\\\SOFTWARE\\\\Policies\\\\Mozilla\\\\Firefox\\\\DNSOverHTTPS\" and\n registry.data.strings : \"1\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"a22a09c2-2162-4df0-a356-9aacbeb56a04:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a22a09c2-2162-4df0-a356-9aacbeb56a04:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a22a09c2-2162-4df0-a356-9aacbeb56a04:101.0.1.json new file mode 100644 index 0000000000000..6e17285ffa8ea --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a22a09c2-2162-4df0-a356-9aacbeb56a04:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"DNS-over-HTTPS Enabled via Registry v101.0.1","rule_id":"a22a09c2-2162-4df0-a356-9aacbeb56a04:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user enables DNS-over-HTTPS. This can be used to hide internet activity or the process of exfiltrating data. With this enabled, an organization will lose visibility into data such as query type, response, and originating IP, which are used to determine bad actors.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"from":"now-9m","references":["https://www.tenforums.com/tutorials/151318-how-enable-disable-dns-over-https-doh-microsoft-edge.html","https://chromeenterprise.google/policies/?policy=DnsOverHttpsMode"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n (registry.path : \"*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Edge\\\\BuiltInDnsClientEnabled\" and\n registry.data.strings : \"1\") or\n (registry.path : \"*\\\\SOFTWARE\\\\Google\\\\Chrome\\\\DnsOverHttpsMode\" and\n registry.data.strings : \"secure\") or\n (registry.path : \"*\\\\SOFTWARE\\\\Policies\\\\Mozilla\\\\Firefox\\\\DNSOverHTTPS\" and\n registry.data.strings : \"1\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"a22a09c2-2162-4df0-a356-9aacbeb56a04:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a22a09c2-2162-4df0-a356-9aacbeb56a04:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a22a09c2-2162-4df0-a356-9aacbeb56a04:101.0.2.json new file mode 100644 index 0000000000000..9846c590eb4ff --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a22a09c2-2162-4df0-a356-9aacbeb56a04:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"DNS-over-HTTPS Enabled via Registry v101.0.2","rule_id":"a22a09c2-2162-4df0-a356-9aacbeb56a04:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user enables DNS-over-HTTPS. This can be used to hide internet activity or the process of exfiltrating data. With this enabled, an organization will lose visibility into data such as query type, response, and originating IP, which are used to determine bad actors.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"from":"now-9m","references":["https://www.tenforums.com/tutorials/151318-how-enable-disable-dns-over-https-doh-microsoft-edge.html","https://chromeenterprise.google/policies/?policy=DnsOverHttpsMode"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n (registry.path : \"*\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Edge\\\\BuiltInDnsClientEnabled\" and\n registry.data.strings : \"1\") or\n (registry.path : \"*\\\\SOFTWARE\\\\Google\\\\Chrome\\\\DnsOverHttpsMode\" and\n registry.data.strings : \"secure\") or\n (registry.path : \"*\\\\SOFTWARE\\\\Policies\\\\Mozilla\\\\Firefox\\\\DNSOverHTTPS\" and\n registry.data.strings : \"1\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"a22a09c2-2162-4df0-a356-9aacbeb56a04:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a2795334-2499-11ed-9e1a-f661ea17fbce:2.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a2795334-2499-11ed-9e1a-f661ea17fbce:2.0.0.json new file mode 100644 index 0000000000000..5dfb53aff1809 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a2795334-2499-11ed-9e1a-f661ea17fbce:2.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace Restrictions for Google Marketplace Modified to Allow Any App v2.0.0","rule_id":"a2795334-2499-11ed-9e1a-f661ea17fbce:2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when the Google Marketplace restrictions are changed to allow any application for users in Google Workspace. Malicious APKs created by adversaries may be uploaded to the Google marketplace but not installed on devices managed within Google Workspace. Administrators should set restrictions to not allow any application from the marketplace for security reasons. Adversaries may enable any app to be installed and executed on mobile devices within a Google Workspace environment prior to distributing the malicious APK to the end user.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Applications can be added and removed from blocklists by Google Workspace administrators, but they can all be explicitly allowed for users. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/6089179?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:\"CHANGE_APPLICATION_SETTING\" and event.category:(iam or configuration)\n and google_workspace.event.type:\"APPLICATION_SETTINGS\" and google_workspace.admin.application.name:\"Google Workspace Marketplace\"\n and google_workspace.admin.setting.name:\"Apps Access Setting Allowlist access\" and google_workspace.admin.new_value:\"ALLOW_ALL\"\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.application.name","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.setting.name","type":"keyword"},{"ecs":false,"name":"google_workspace.event.type","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"a2795334-2499-11ed-9e1a-f661ea17fbce:2.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a2795334-2499-11ed-9e1a-f661ea17fbce:2.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a2795334-2499-11ed-9e1a-f661ea17fbce:2.0.1.json new file mode 100644 index 0000000000000..89fc4bbf87d54 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a2795334-2499-11ed-9e1a-f661ea17fbce:2.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace Restrictions for Google Marketplace Modified to Allow Any App v2.0.1","rule_id":"a2795334-2499-11ed-9e1a-f661ea17fbce:2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when the Google Marketplace restrictions are changed to allow any application for users in Google Workspace. Malicious APKs created by adversaries may be uploaded to the Google marketplace but not installed on devices managed within Google Workspace. Administrators should set restrictions to not allow any application from the marketplace for security reasons. Adversaries may enable any app to be installed and executed on mobile devices within a Google Workspace environment prior to distributing the malicious APK to the end user.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Applications can be added and removed from blocklists by Google Workspace administrators, but they can all be explicitly allowed for users. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/6089179?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:\"CHANGE_APPLICATION_SETTING\" and event.category:(iam or configuration)\n and google_workspace.event.type:\"APPLICATION_SETTINGS\" and google_workspace.admin.application.name:\"Google Workspace Marketplace\"\n and google_workspace.admin.setting.name:\"Apps Access Setting Allowlist access\" and google_workspace.admin.new_value:\"ALLOW_ALL\"\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.application.name","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.setting.name","type":"keyword"},{"ecs":false,"name":"google_workspace.event.type","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"a2795334-2499-11ed-9e1a-f661ea17fbce:2.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a2795334-2499-11ed-9e1a-f661ea17fbce:2.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a2795334-2499-11ed-9e1a-f661ea17fbce:2.0.2.json new file mode 100644 index 0000000000000..8ff13315c2065 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a2795334-2499-11ed-9e1a-f661ea17fbce:2.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace Restrictions for Google Marketplace Modified to Allow Any App v2.0.2","rule_id":"a2795334-2499-11ed-9e1a-f661ea17fbce:2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when the Google Marketplace restrictions are changed to allow any application for users in Google Workspace. Malicious APKs created by adversaries may be uploaded to the Google marketplace but not installed on devices managed within Google Workspace. Administrators should set restrictions to not allow any application from the marketplace for security reasons. Adversaries may enable any app to be installed and executed on mobile devices within a Google Workspace environment prior to distributing the malicious APK to the end user.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Applications can be added and removed from blocklists by Google Workspace administrators, but they can all be explicitly allowed for users. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/6089179?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.action:\"CHANGE_APPLICATION_SETTING\" and event.category:(iam or configuration)\n and google_workspace.event.type:\"APPLICATION_SETTINGS\" and google_workspace.admin.application.name:\"Google Workspace Marketplace\"\n and google_workspace.admin.setting.name:\"Apps Access Setting Allowlist access\" and google_workspace.admin.new_value:\"ALLOW_ALL\"\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.application.name","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.setting.name","type":"keyword"},{"ecs":false,"name":"google_workspace.event.type","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"a2795334-2499-11ed-9e1a-f661ea17fbce:2.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a3ea12f3-0d4e-4667-8b44-4230c63f3c75:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a3ea12f3-0d4e-4667-8b44-4230c63f3c75:101.0.0.json new file mode 100644 index 0000000000000..637d84879877b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a3ea12f3-0d4e-4667-8b44-4230c63f3c75:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Execution via local SxS Shared Module v101.0.0","rule_id":"a3ea12f3-0d4e-4667-8b44-4230c63f3c75:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation, change, or deletion of a DLL module within a Windows SxS local folder. Adversaries may abuse shared modules to execute malicious payloads by instructing the Windows module loader to load DLLs from arbitrary local paths.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\nThe SxS DotLocal folder is a legitimate feature that can be abused to hijack standard modules loading order by forcing an executable on the same application.exe.local folder to load a malicious DLL module from the same directory.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-redirection"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1129","name":"Shared Modules","reference":"https://attack.mitre.org/techniques/T1129/"}]}],"language":"eql","query":"file where file.extension : \"dll\" and file.path : \"C:\\\\*\\\\*.exe.local\\\\*.dll\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"a3ea12f3-0d4e-4667-8b44-4230c63f3c75:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a3ea12f3-0d4e-4667-8b44-4230c63f3c75:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a3ea12f3-0d4e-4667-8b44-4230c63f3c75:101.0.1.json new file mode 100644 index 0000000000000..bd29bd8303586 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a3ea12f3-0d4e-4667-8b44-4230c63f3c75:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Execution via local SxS Shared Module v101.0.1","rule_id":"a3ea12f3-0d4e-4667-8b44-4230c63f3c75:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation, change, or deletion of a DLL module within a Windows SxS local folder. Adversaries may abuse shared modules to execute malicious payloads by instructing the Windows module loader to load DLLs from arbitrary local paths.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\nThe SxS DotLocal folder is a legitimate feature that can be abused to hijack standard modules loading order by forcing an executable on the same application.exe.local folder to load a malicious DLL module from the same directory.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-redirection"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1129","name":"Shared Modules","reference":"https://attack.mitre.org/techniques/T1129/"}]}],"language":"eql","query":"file where file.extension : \"dll\" and file.path : \"C:\\\\*\\\\*.exe.local\\\\*.dll\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"a3ea12f3-0d4e-4667-8b44-4230c63f3c75:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a3ea12f3-0d4e-4667-8b44-4230c63f3c75:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a3ea12f3-0d4e-4667-8b44-4230c63f3c75:101.0.2.json new file mode 100644 index 0000000000000..2c830fde4ff57 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a3ea12f3-0d4e-4667-8b44-4230c63f3c75:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Execution via local SxS Shared Module v101.0.2","rule_id":"a3ea12f3-0d4e-4667-8b44-4230c63f3c75:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation, change, or deletion of a DLL module within a Windows SxS local folder. Adversaries may abuse shared modules to execute malicious payloads by instructing the Windows module loader to load DLLs from arbitrary local paths.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\nThe SxS DotLocal folder is a legitimate feature that can be abused to hijack standard modules loading order by forcing an executable on the same application.exe.local folder to load a malicious DLL module from the same directory.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-redirection"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1129","name":"Shared Modules","reference":"https://attack.mitre.org/techniques/T1129/"}]}],"language":"eql","query":"file where file.extension : \"dll\" and file.path : \"C:\\\\*\\\\*.exe.local\\\\*.dll\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"a3ea12f3-0d4e-4667-8b44-4230c63f3c75:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a4c7473a-5cb4-4bc1-9d06-e4a75adbc494:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a4c7473a-5cb4-4bc1-9d06-e4a75adbc494:102.0.0.json new file mode 100644 index 0000000000000..20124eb326ba2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a4c7473a-5cb4-4bc1-9d06-e4a75adbc494:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Windows Registry File Creation in SMB Share v102.0.0","rule_id":"a4c7473a-5cb4-4bc1-9d06-e4a75adbc494:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of a medium-size registry hive file on a Server Message Block (SMB) share, which may indicate an exfiltration attempt of a previously dumped Security Account Manager (SAM) registry hive for credential extraction on an attacker-controlled system.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Registry File Creation in SMB Share\n\nDumping registry hives is a common way to access credential information. Some hives store credential material, as is the\ncase for the SAM hive, which stores locally cached credentials (SAM secrets), and the SECURITY hive, which stores domain\ncached credentials (LSA secrets). Dumping these hives in combination with the SYSTEM hive enables the attacker to\ndecrypt these secrets.\n\nAttackers can try to evade detection on the host by transferring this data to a system that is not\nmonitored to be parsed and decrypted. This rule identifies the creation or modification of a medium-size registry hive\nfile on an SMB share, which may indicate this kind of exfiltration attempt.\n\n#### Possible investigation steps\n\n- Investigate other alerts associated with the user/source host during the past 48 hours.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Inspect the source host for suspicious or abnormal behaviors in the alert timeframe.\n- Capture the registry file(s) to determine the extent of the credential compromise in an eventual incident response.\n\n### False positive analysis\n\n- Administrators can export registry hives for backup purposes. Check whether the user should be performing this kind of\nactivity and is aware of it.\n\n### Related rules\n\n- Credential Acquisition via Registry Hive Dumping - a7e7bfa3-088e-4f13-b29e-3986e0e756b8\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system and restore compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.002","name":"Security Account Manager","reference":"https://attack.mitre.org/techniques/T1003/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"file where event.type == \"creation\" and\n /* regf file header */\n file.Ext.header_bytes : \"72656766*\" and file.size >= 30000 and\n process.pid == 4 and user.id : (\"S-1-5-21*\", \"S-1-12-1-*\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"file.Ext.header_bytes","type":"unknown"},{"ecs":true,"name":"file.size","type":"long"},{"ecs":true,"name":"process.pid","type":"long"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"a4c7473a-5cb4-4bc1-9d06-e4a75adbc494:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a4c7473a-5cb4-4bc1-9d06-e4a75adbc494:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a4c7473a-5cb4-4bc1-9d06-e4a75adbc494:102.0.1.json new file mode 100644 index 0000000000000..2806686c32324 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a4c7473a-5cb4-4bc1-9d06-e4a75adbc494:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Windows Registry File Creation in SMB Share v102.0.1","rule_id":"a4c7473a-5cb4-4bc1-9d06-e4a75adbc494:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of a medium-size registry hive file on a Server Message Block (SMB) share, which may indicate an exfiltration attempt of a previously dumped Security Account Manager (SAM) registry hive for credential extraction on an attacker-controlled system.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Registry File Creation in SMB Share\n\nDumping registry hives is a common way to access credential information. Some hives store credential material, as is the\ncase for the SAM hive, which stores locally cached credentials (SAM secrets), and the SECURITY hive, which stores domain\ncached credentials (LSA secrets). Dumping these hives in combination with the SYSTEM hive enables the attacker to\ndecrypt these secrets.\n\nAttackers can try to evade detection on the host by transferring this data to a system that is not\nmonitored to be parsed and decrypted. This rule identifies the creation or modification of a medium-size registry hive\nfile on an SMB share, which may indicate this kind of exfiltration attempt.\n\n#### Possible investigation steps\n\n- Investigate other alerts associated with the user/source host during the past 48 hours.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Inspect the source host for suspicious or abnormal behaviors in the alert timeframe.\n- Capture the registry file(s) to determine the extent of the credential compromise in an eventual incident response.\n\n### False positive analysis\n\n- Administrators can export registry hives for backup purposes. Check whether the user should be performing this kind of\nactivity and is aware of it.\n\n### Related rules\n\n- Credential Acquisition via Registry Hive Dumping - a7e7bfa3-088e-4f13-b29e-3986e0e756b8\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system and restore compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.002","name":"Security Account Manager","reference":"https://attack.mitre.org/techniques/T1003/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"file where event.type == \"creation\" and\n /* regf file header */\n file.Ext.header_bytes : \"72656766*\" and file.size >= 30000 and\n process.pid == 4 and user.id : (\"S-1-5-21*\", \"S-1-12-1-*\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"file.Ext.header_bytes","type":"unknown"},{"ecs":true,"name":"file.size","type":"long"},{"ecs":true,"name":"process.pid","type":"long"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"a4c7473a-5cb4-4bc1-9d06-e4a75adbc494:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a4c7473a-5cb4-4bc1-9d06-e4a75adbc494:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a4c7473a-5cb4-4bc1-9d06-e4a75adbc494:102.0.2.json new file mode 100644 index 0000000000000..adc5cfea25354 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a4c7473a-5cb4-4bc1-9d06-e4a75adbc494:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Windows Registry File Creation in SMB Share v102.0.2","rule_id":"a4c7473a-5cb4-4bc1-9d06-e4a75adbc494:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of a medium-size registry hive file on a Server Message Block (SMB) share, which may indicate an exfiltration attempt of a previously dumped Security Account Manager (SAM) registry hive for credential extraction on an attacker-controlled system.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Registry File Creation in SMB Share\n\nDumping registry hives is a common way to access credential information. Some hives store credential material, as is the\ncase for the SAM hive, which stores locally cached credentials (SAM secrets), and the SECURITY hive, which stores domain\ncached credentials (LSA secrets). Dumping these hives in combination with the SYSTEM hive enables the attacker to\ndecrypt these secrets.\n\nAttackers can try to evade detection on the host by transferring this data to a system that is not\nmonitored to be parsed and decrypted. This rule identifies the creation or modification of a medium-size registry hive\nfile on an SMB share, which may indicate this kind of exfiltration attempt.\n\n#### Possible investigation steps\n\n- Investigate other alerts associated with the user/source host during the past 48 hours.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Inspect the source host for suspicious or abnormal behaviors in the alert timeframe.\n- Capture the registry file(s) to determine the extent of the credential compromise in an eventual incident response.\n\n### False positive analysis\n\n- Administrators can export registry hives for backup purposes. Check whether the user should be performing this kind of\nactivity and is aware of it.\n\n### Related rules\n\n- Credential Acquisition via Registry Hive Dumping - a7e7bfa3-088e-4f13-b29e-3986e0e756b8\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system and restore compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.002","name":"Security Account Manager","reference":"https://attack.mitre.org/techniques/T1003/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"file where event.type == \"creation\" and\n /* regf file header */\n file.Ext.header_bytes : \"72656766*\" and file.size >= 30000 and\n process.pid == 4 and user.id : (\"S-1-5-21*\", \"S-1-12-1-*\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"file.Ext.header_bytes","type":"unknown"},{"ecs":true,"name":"file.size","type":"long"},{"ecs":true,"name":"process.pid","type":"long"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"a4c7473a-5cb4-4bc1-9d06-e4a75adbc494:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a5f0d057-d540-44f5-924d-c6a2ae92f045:1.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a5f0d057-d540-44f5-924d-c6a2ae92f045:1.0.0.json new file mode 100644 index 0000000000000..895b36bcd95b6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a5f0d057-d540-44f5-924d-c6a2ae92f045:1.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential SSH Brute Force Detected on Privileged Account v1.0.0","rule_id":"a5f0d057-d540-44f5-924d-c6a2ae92f045:1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple consecutive login failures targeting a root user account from the same source address and within a short time interval. Adversaries will often brute force login attempts on privileged accounts with a common or known password, in an attempt to gain privileged access to systems.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential SSH Brute Force Attack on Privileged Account\n\nThe rule identifies consecutive SSH login failures targeting a privileged (root) account from the same source IP\naddress to the same target host indicating brute force login attempts.\n\n#### Possible investigation steps\n\n- Investigate the login failure on privileged account(s).\n- Investigate the source IP address of the failed ssh login attempt(s).\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Infrastructure or availability issue.\n\n### Response and remediation\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified.\n- Reset passwords for these accounts and other potentially compromised credentials.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip with maxspan=10s\n [authentication where event.action in (\"ssh_login\", \"user_login\") and\n event.outcome == \"failure\" and source.ip != null and source.ip != \"0.0.0.0\" and\n source.ip != \"::\" and user.name in (\"*root*\" , \"*admin*\")] with runs=3\n","type":"eql","index":["auditbeat-*","logs-system.auth-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"a5f0d057-d540-44f5-924d-c6a2ae92f045:1.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a5f0d057-d540-44f5-924d-c6a2ae92f045:1.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a5f0d057-d540-44f5-924d-c6a2ae92f045:1.0.1.json new file mode 100644 index 0000000000000..c3a69ac9375f8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a5f0d057-d540-44f5-924d-c6a2ae92f045:1.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential SSH Brute Force Detected on Privileged Account v1.0.1","rule_id":"a5f0d057-d540-44f5-924d-c6a2ae92f045:1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple consecutive login failures targeting a root user account from the same source address and within a short time interval. Adversaries will often brute force login attempts on privileged accounts with a common or known password, in an attempt to gain privileged access to systems.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential SSH Brute Force Attack on Privileged Account\n\nThe rule identifies consecutive SSH login failures targeting a privileged (root) account from the same source IP\naddress to the same target host indicating brute force login attempts.\n\n#### Possible investigation steps\n\n- Investigate the login failure on privileged account(s).\n- Investigate the source IP address of the failed ssh login attempt(s).\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Infrastructure or availability issue.\n\n### Response and remediation\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified.\n- Reset passwords for these accounts and other potentially compromised credentials.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip with maxspan=10s\n [authentication where event.action in (\"ssh_login\", \"user_login\") and\n event.outcome == \"failure\" and source.ip != null and source.ip != \"0.0.0.0\" and\n source.ip != \"::\" and user.name in (\"*root*\" , \"*admin*\")] with runs=3\n","type":"eql","index":["auditbeat-*","logs-system.auth-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"a5f0d057-d540-44f5-924d-c6a2ae92f045:1.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a5f0d057-d540-44f5-924d-c6a2ae92f045:1.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a5f0d057-d540-44f5-924d-c6a2ae92f045:1.0.2.json new file mode 100644 index 0000000000000..407e05bbe7741 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a5f0d057-d540-44f5-924d-c6a2ae92f045:1.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential SSH Brute Force Detected on Privileged Account v1.0.2","rule_id":"a5f0d057-d540-44f5-924d-c6a2ae92f045:1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple consecutive login failures targeting a root user account from the same source address and within a short time interval. Adversaries will often brute force login attempts on privileged accounts with a common or known password, in an attempt to gain privileged access to systems.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Potential SSH Brute Force Attack on Privileged Account\n\nThe rule identifies consecutive SSH login failures targeting a privileged (root) account from the same source IP\naddress to the same target host indicating brute force login attempts.\n\n#### Possible investigation steps\n\n- Investigate the login failure on privileged account(s).\n- Investigate the source IP address of the failed ssh login attempt(s).\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Infrastructure or availability issue.\n\n### Response and remediation\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified.\n- Reset passwords for these accounts and other potentially compromised credentials.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip with maxspan=10s\n [authentication where event.action in (\"ssh_login\", \"user_login\") and\n event.outcome == \"failure\" and source.ip != null and source.ip != \"0.0.0.0\" and\n source.ip != \"::\" and user.name in (\"*root*\" , \"*admin*\")] with runs=3\n","type":"eql","index":["auditbeat-*","logs-system.auth-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"a5f0d057-d540-44f5-924d-c6a2ae92f045:1.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a60326d7-dca7-4fb7-93eb-1ca03a1febbd:103.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a60326d7-dca7-4fb7-93eb-1ca03a1febbd:103.0.0.json new file mode 100644 index 0000000000000..3ace6f56b703e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a60326d7-dca7-4fb7-93eb-1ca03a1febbd:103.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS IAM Assume Role Policy Update v103.0.0","rule_id":"a60326d7-dca7-4fb7-93eb-1ca03a1febbd:103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to modify an AWS IAM Assume Role Policy. An adversary may attempt to modify the AssumeRolePolicy of a misconfigured role in order to gain the privileges of that role.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS IAM Assume Role Policy Update\n\nAn IAM role is an IAM identity that you can create in your account that has specific permissions. An IAM role is similar\nto an IAM user, in that it is an AWS identity with permission policies that determine what the identity can and cannot\ndo in AWS. However, instead of being uniquely associated with one person, a role is intended to be assumable by anyone\nwho needs it. Also, a role does not have standard long-term credentials such as a password or access keys associated\nwith it. Instead, when you assume a role, it provides you with temporary security credentials for your role session.\n\nThe role trust policy is a JSON document in which you define the principals you trust to assume the role. This policy is\na required resource-based policy that is attached to a role in IAM. An attacker may attempt to modify this policy by\nusing the `UpdateAssumeRolePolicy` API action to gain the privileges of that role.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- False positives may occur due to the intended usage of the service. Tuning is needed in order to have higher\nconfidence. Consider adding exceptions — preferably with a combination of the user agent and user ID conditions — to\ncover administrator activities and infrastructure as code tooling.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Use AWS [policy versioning](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-versioning.html) to restore the trust policy to the desired state.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Policy updates from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://labs.bishopfox.com/tech-blog/5-privesc-attack-vectors-in-aws"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:UpdateAssumeRolePolicy and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"a60326d7-dca7-4fb7-93eb-1ca03a1febbd:103.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a60326d7-dca7-4fb7-93eb-1ca03a1febbd:103.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a60326d7-dca7-4fb7-93eb-1ca03a1febbd:103.0.1.json new file mode 100644 index 0000000000000..ea4cf6118a70d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a60326d7-dca7-4fb7-93eb-1ca03a1febbd:103.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS IAM Assume Role Policy Update v103.0.1","rule_id":"a60326d7-dca7-4fb7-93eb-1ca03a1febbd:103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to modify an AWS IAM Assume Role Policy. An adversary may attempt to modify the AssumeRolePolicy of a misconfigured role in order to gain the privileges of that role.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS IAM Assume Role Policy Update\n\nAn IAM role is an IAM identity that you can create in your account that has specific permissions. An IAM role is similar\nto an IAM user, in that it is an AWS identity with permission policies that determine what the identity can and cannot\ndo in AWS. However, instead of being uniquely associated with one person, a role is intended to be assumable by anyone\nwho needs it. Also, a role does not have standard long-term credentials such as a password or access keys associated\nwith it. Instead, when you assume a role, it provides you with temporary security credentials for your role session.\n\nThe role trust policy is a JSON document in which you define the principals you trust to assume the role. This policy is\na required resource-based policy that is attached to a role in IAM. An attacker may attempt to modify this policy by\nusing the `UpdateAssumeRolePolicy` API action to gain the privileges of that role.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- False positives may occur due to the intended usage of the service. Tuning is needed in order to have higher\nconfidence. Consider adding exceptions — preferably with a combination of the user agent and user ID conditions — to\ncover administrator activities and infrastructure as code tooling.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Use AWS [policy versioning](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-versioning.html) to restore the trust policy to the desired state.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Policy updates from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://labs.bishopfox.com/tech-blog/5-privesc-attack-vectors-in-aws"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:UpdateAssumeRolePolicy and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"a60326d7-dca7-4fb7-93eb-1ca03a1febbd:103.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a60326d7-dca7-4fb7-93eb-1ca03a1febbd:103.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a60326d7-dca7-4fb7-93eb-1ca03a1febbd:103.0.2.json new file mode 100644 index 0000000000000..b10b02977107b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a60326d7-dca7-4fb7-93eb-1ca03a1febbd:103.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS IAM Assume Role Policy Update v103.0.2","rule_id":"a60326d7-dca7-4fb7-93eb-1ca03a1febbd:103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to modify an AWS IAM Assume Role Policy. An adversary may attempt to modify the AssumeRolePolicy of a misconfigured role in order to gain the privileges of that role.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS IAM Assume Role Policy Update\n\nAn IAM role is an IAM identity that you can create in your account that has specific permissions. An IAM role is similar\nto an IAM user, in that it is an AWS identity with permission policies that determine what the identity can and cannot\ndo in AWS. However, instead of being uniquely associated with one person, a role is intended to be assumable by anyone\nwho needs it. Also, a role does not have standard long-term credentials such as a password or access keys associated\nwith it. Instead, when you assume a role, it provides you with temporary security credentials for your role session.\n\nThe role trust policy is a JSON document in which you define the principals you trust to assume the role. This policy is\na required resource-based policy that is attached to a role in IAM. An attacker may attempt to modify this policy by\nusing the `UpdateAssumeRolePolicy` API action to gain the privileges of that role.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- False positives may occur due to the intended usage of the service. Tuning is needed in order to have higher\nconfidence. Consider adding exceptions — preferably with a combination of the user agent and user ID conditions — to\ncover administrator activities and infrastructure as code tooling.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Use AWS [policy versioning](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-versioning.html) to restore the trust policy to the desired state.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Policy updates from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://labs.bishopfox.com/tech-blog/5-privesc-attack-vectors-in-aws"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:UpdateAssumeRolePolicy and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"a60326d7-dca7-4fb7-93eb-1ca03a1febbd:103.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a605c51a-73ad-406d-bf3a-f24cc41d5c97:103.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a605c51a-73ad-406d-bf3a-f24cc41d5c97:103.0.0.json new file mode 100644 index 0000000000000..13c52da13a4d6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a605c51a-73ad-406d-bf3a-f24cc41d5c97:103.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Active Directory PowerShell Sign-in v103.0.0","rule_id":"a605c51a-73ad-406d-bf3a-f24cc41d5c97:103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a sign-in using the Azure Active Directory PowerShell module. PowerShell for Azure Active Directory allows for managing settings from the command line, which is intended for users who are members of an admin role.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Azure Active Directory PowerShell Sign-in\n\nAzure Active Directory PowerShell for Graph (Azure AD PowerShell) is a module IT professionals commonly use to manage\ntheir Azure Active Directory. The cmdlets in the Azure AD PowerShell module enable you to retrieve data from the\ndirectory, create new objects in the directory, update existing objects, remove objects, as well as configure the\ndirectory and its features.\n\nThis rule identifies sign-ins that use the Azure Active Directory PowerShell module, which can indicate unauthorized\naccess if done outside of IT or engineering.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Evaluate whether the user needs to access Azure AD using PowerShell to complete its tasks.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Consider the source IP address and geolocation for the involved user account. Do they look normal?\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate suspicious actions taken by the user using the module, for example, modifications in security settings\nthat weakens the security policy, persistence-related tasks, and data access.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, consider adding IT, Engineering, and other authorized users\nas exceptions — preferably with a combination of user and device conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Sign-ins using PowerShell may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be signing into your environment. Sign-ins from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://msrc-blog.microsoft.com/2020/12/13/customer-guidance-on-recent-nation-state-cyber-attacks/","https://docs.microsoft.com/en-us/microsoft-365/enterprise/connect-to-microsoft-365-powershell?view=o365-worldwide"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.004","name":"Cloud Accounts","reference":"https://attack.mitre.org/techniques/T1078/004/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.signinlogs and\n azure.signinlogs.properties.app_display_name:\"Azure Active Directory PowerShell\" and\n azure.signinlogs.properties.token_issuer_type:AzureAD and event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.signinlogs.properties.app_display_name","type":"keyword"},{"ecs":false,"name":"azure.signinlogs.properties.token_issuer_type","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"a605c51a-73ad-406d-bf3a-f24cc41d5c97:103.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a605c51a-73ad-406d-bf3a-f24cc41d5c97:103.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a605c51a-73ad-406d-bf3a-f24cc41d5c97:103.0.1.json new file mode 100644 index 0000000000000..f21b8c5c0f3b4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a605c51a-73ad-406d-bf3a-f24cc41d5c97:103.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Active Directory PowerShell Sign-in v103.0.1","rule_id":"a605c51a-73ad-406d-bf3a-f24cc41d5c97:103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a sign-in using the Azure Active Directory PowerShell module. PowerShell for Azure Active Directory allows for managing settings from the command line, which is intended for users who are members of an admin role.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Azure Active Directory PowerShell Sign-in\n\nAzure Active Directory PowerShell for Graph (Azure AD PowerShell) is a module IT professionals commonly use to manage\ntheir Azure Active Directory. The cmdlets in the Azure AD PowerShell module enable you to retrieve data from the\ndirectory, create new objects in the directory, update existing objects, remove objects, as well as configure the\ndirectory and its features.\n\nThis rule identifies sign-ins that use the Azure Active Directory PowerShell module, which can indicate unauthorized\naccess if done outside of IT or engineering.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Evaluate whether the user needs to access Azure AD using PowerShell to complete its tasks.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Consider the source IP address and geolocation for the involved user account. Do they look normal?\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate suspicious actions taken by the user using the module, for example, modifications in security settings\nthat weakens the security policy, persistence-related tasks, and data access.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, consider adding IT, Engineering, and other authorized users\nas exceptions — preferably with a combination of user and device conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Sign-ins using PowerShell may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be signing into your environment. Sign-ins from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://msrc-blog.microsoft.com/2020/12/13/customer-guidance-on-recent-nation-state-cyber-attacks/","https://docs.microsoft.com/en-us/microsoft-365/enterprise/connect-to-microsoft-365-powershell?view=o365-worldwide"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.004","name":"Cloud Accounts","reference":"https://attack.mitre.org/techniques/T1078/004/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.signinlogs and\n azure.signinlogs.properties.app_display_name:\"Azure Active Directory PowerShell\" and\n azure.signinlogs.properties.token_issuer_type:AzureAD and event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.signinlogs.properties.app_display_name","type":"keyword"},{"ecs":false,"name":"azure.signinlogs.properties.token_issuer_type","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"a605c51a-73ad-406d-bf3a-f24cc41d5c97:103.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a605c51a-73ad-406d-bf3a-f24cc41d5c97:103.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a605c51a-73ad-406d-bf3a-f24cc41d5c97:103.0.2.json new file mode 100644 index 0000000000000..31a27cde1d5c9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a605c51a-73ad-406d-bf3a-f24cc41d5c97:103.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Active Directory PowerShell Sign-in v103.0.2","rule_id":"a605c51a-73ad-406d-bf3a-f24cc41d5c97:103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a sign-in using the Azure Active Directory PowerShell module. PowerShell for Azure Active Directory allows for managing settings from the command line, which is intended for users who are members of an admin role.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Azure Active Directory PowerShell Sign-in\n\nAzure Active Directory PowerShell for Graph (Azure AD PowerShell) is a module IT professionals commonly use to manage\ntheir Azure Active Directory. The cmdlets in the Azure AD PowerShell module enable you to retrieve data from the\ndirectory, create new objects in the directory, update existing objects, remove objects, as well as configure the\ndirectory and its features.\n\nThis rule identifies sign-ins that use the Azure Active Directory PowerShell module, which can indicate unauthorized\naccess if done outside of IT or engineering.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Evaluate whether the user needs to access Azure AD using PowerShell to complete its tasks.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Consider the source IP address and geolocation for the involved user account. Do they look normal?\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate suspicious actions taken by the user using the module, for example, modifications in security settings\nthat weakens the security policy, persistence-related tasks, and data access.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, consider adding IT, Engineering, and other authorized users\nas exceptions — preferably with a combination of user and device conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Sign-ins using PowerShell may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be signing into your environment. Sign-ins from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://msrc-blog.microsoft.com/2020/12/13/customer-guidance-on-recent-nation-state-cyber-attacks/","https://docs.microsoft.com/en-us/microsoft-365/enterprise/connect-to-microsoft-365-powershell?view=o365-worldwide"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.004","name":"Cloud Accounts","reference":"https://attack.mitre.org/techniques/T1078/004/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.signinlogs and\n azure.signinlogs.properties.app_display_name:\"Azure Active Directory PowerShell\" and\n azure.signinlogs.properties.token_issuer_type:AzureAD and event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.signinlogs.properties.app_display_name","type":"keyword"},{"ecs":false,"name":"azure.signinlogs.properties.token_issuer_type","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"a605c51a-73ad-406d-bf3a-f24cc41d5c97:103.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a624863f-a70d-417f-a7d2-7a404638d47f:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a624863f-a70d-417f-a7d2-7a404638d47f:102.0.0.json new file mode 100644 index 0000000000000..c16f7dcfbb6f3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a624863f-a70d-417f-a7d2-7a404638d47f:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious MS Office Child Process v102.0.0","rule_id":"a624863f-a70d-417f-a7d2-7a404638d47f:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious child processes of frequently targeted Microsoft Office applications (Word, PowerPoint, Excel). These child processes are often launched during exploitation of Office applications or from documents with malicious macros.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious MS Office Child Process\n\nMicrosoft Office (MS Office) is a suite of applications designed to help with productivity and completing common tasks on a computer.\nYou can create and edit documents containing text and images, work with data in spreadsheets and databases, and create\npresentations and posters. As it is some of the most-used software across companies, MS Office is frequently targeted\nfor initial access. It also has a wide variety of capabilities that attackers can take advantage of.\n\nThis rule looks for suspicious processes spawned by MS Office programs. This is generally the result of the execution of\nmalicious documents.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve MS Office documents received and opened by the user that could cause this behavior. Common locations include,\nbut are not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/blog/vulnerability-summary-follina"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"eqnedt32.exe\", \"excel.exe\", \"fltldr.exe\", \"msaccess.exe\", \"mspub.exe\", \"powerpnt.exe\", \"winword.exe\", \"outlook.exe\") and\n process.name : (\"Microsoft.Workflow.Compiler.exe\", \"arp.exe\", \"atbroker.exe\", \"bginfo.exe\", \"bitsadmin.exe\", \"cdb.exe\", \"certutil.exe\",\n \"cmd.exe\", \"cmstp.exe\", \"control.exe\", \"cscript.exe\", \"csi.exe\", \"dnx.exe\", \"dsget.exe\", \"dsquery.exe\", \"forfiles.exe\",\n \"fsi.exe\", \"ftp.exe\", \"gpresult.exe\", \"hostname.exe\", \"ieexec.exe\", \"iexpress.exe\", \"installutil.exe\", \"ipconfig.exe\",\n \"mshta.exe\", \"msxsl.exe\", \"nbtstat.exe\", \"net.exe\", \"net1.exe\", \"netsh.exe\", \"netstat.exe\", \"nltest.exe\", \"odbcconf.exe\",\n \"ping.exe\", \"powershell.exe\", \"pwsh.exe\", \"qprocess.exe\", \"quser.exe\", \"qwinsta.exe\", \"rcsi.exe\", \"reg.exe\", \"regasm.exe\",\n \"regsvcs.exe\", \"regsvr32.exe\", \"sc.exe\", \"schtasks.exe\", \"systeminfo.exe\", \"tasklist.exe\", \"tracert.exe\", \"whoami.exe\",\n \"wmic.exe\", \"wscript.exe\", \"xwizard.exe\", \"explorer.exe\", \"rundll32.exe\", \"hh.exe\", \"msdt.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"a624863f-a70d-417f-a7d2-7a404638d47f:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a624863f-a70d-417f-a7d2-7a404638d47f:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a624863f-a70d-417f-a7d2-7a404638d47f:102.0.1.json new file mode 100644 index 0000000000000..9facec2f7f60b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a624863f-a70d-417f-a7d2-7a404638d47f:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious MS Office Child Process v102.0.1","rule_id":"a624863f-a70d-417f-a7d2-7a404638d47f:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious child processes of frequently targeted Microsoft Office applications (Word, PowerPoint, Excel). These child processes are often launched during exploitation of Office applications or from documents with malicious macros.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious MS Office Child Process\n\nMicrosoft Office (MS Office) is a suite of applications designed to help with productivity and completing common tasks on a computer.\nYou can create and edit documents containing text and images, work with data in spreadsheets and databases, and create\npresentations and posters. As it is some of the most-used software across companies, MS Office is frequently targeted\nfor initial access. It also has a wide variety of capabilities that attackers can take advantage of.\n\nThis rule looks for suspicious processes spawned by MS Office programs. This is generally the result of the execution of\nmalicious documents.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve MS Office documents received and opened by the user that could cause this behavior. Common locations include,\nbut are not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/blog/vulnerability-summary-follina"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"eqnedt32.exe\", \"excel.exe\", \"fltldr.exe\", \"msaccess.exe\", \"mspub.exe\", \"powerpnt.exe\", \"winword.exe\", \"outlook.exe\") and\n process.name : (\"Microsoft.Workflow.Compiler.exe\", \"arp.exe\", \"atbroker.exe\", \"bginfo.exe\", \"bitsadmin.exe\", \"cdb.exe\", \"certutil.exe\",\n \"cmd.exe\", \"cmstp.exe\", \"control.exe\", \"cscript.exe\", \"csi.exe\", \"dnx.exe\", \"dsget.exe\", \"dsquery.exe\", \"forfiles.exe\",\n \"fsi.exe\", \"ftp.exe\", \"gpresult.exe\", \"hostname.exe\", \"ieexec.exe\", \"iexpress.exe\", \"installutil.exe\", \"ipconfig.exe\",\n \"mshta.exe\", \"msxsl.exe\", \"nbtstat.exe\", \"net.exe\", \"net1.exe\", \"netsh.exe\", \"netstat.exe\", \"nltest.exe\", \"odbcconf.exe\",\n \"ping.exe\", \"powershell.exe\", \"pwsh.exe\", \"qprocess.exe\", \"quser.exe\", \"qwinsta.exe\", \"rcsi.exe\", \"reg.exe\", \"regasm.exe\",\n \"regsvcs.exe\", \"regsvr32.exe\", \"sc.exe\", \"schtasks.exe\", \"systeminfo.exe\", \"tasklist.exe\", \"tracert.exe\", \"whoami.exe\",\n \"wmic.exe\", \"wscript.exe\", \"xwizard.exe\", \"explorer.exe\", \"rundll32.exe\", \"hh.exe\", \"msdt.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"a624863f-a70d-417f-a7d2-7a404638d47f:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a624863f-a70d-417f-a7d2-7a404638d47f:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a624863f-a70d-417f-a7d2-7a404638d47f:102.0.2.json new file mode 100644 index 0000000000000..96b7cdc4849c1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a624863f-a70d-417f-a7d2-7a404638d47f:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious MS Office Child Process v102.0.2","rule_id":"a624863f-a70d-417f-a7d2-7a404638d47f:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious child processes of frequently targeted Microsoft Office applications (Word, PowerPoint, Excel). These child processes are often launched during exploitation of Office applications or from documents with malicious macros.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious MS Office Child Process\n\nMicrosoft Office (MS Office) is a suite of applications designed to help with productivity and completing common tasks on a computer.\nYou can create and edit documents containing text and images, work with data in spreadsheets and databases, and create\npresentations and posters. As it is some of the most-used software across companies, MS Office is frequently targeted\nfor initial access. It also has a wide variety of capabilities that attackers can take advantage of.\n\nThis rule looks for suspicious processes spawned by MS Office programs. This is generally the result of the execution of\nmalicious documents.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve MS Office documents received and opened by the user that could cause this behavior. Common locations include,\nbut are not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/blog/vulnerability-summary-follina"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"eqnedt32.exe\", \"excel.exe\", \"fltldr.exe\", \"msaccess.exe\", \"mspub.exe\", \"powerpnt.exe\", \"winword.exe\", \"outlook.exe\") and\n process.name : (\"Microsoft.Workflow.Compiler.exe\", \"arp.exe\", \"atbroker.exe\", \"bginfo.exe\", \"bitsadmin.exe\", \"cdb.exe\", \"certutil.exe\",\n \"cmd.exe\", \"cmstp.exe\", \"control.exe\", \"cscript.exe\", \"csi.exe\", \"dnx.exe\", \"dsget.exe\", \"dsquery.exe\", \"forfiles.exe\",\n \"fsi.exe\", \"ftp.exe\", \"gpresult.exe\", \"hostname.exe\", \"ieexec.exe\", \"iexpress.exe\", \"installutil.exe\", \"ipconfig.exe\",\n \"mshta.exe\", \"msxsl.exe\", \"nbtstat.exe\", \"net.exe\", \"net1.exe\", \"netsh.exe\", \"netstat.exe\", \"nltest.exe\", \"odbcconf.exe\",\n \"ping.exe\", \"powershell.exe\", \"pwsh.exe\", \"qprocess.exe\", \"quser.exe\", \"qwinsta.exe\", \"rcsi.exe\", \"reg.exe\", \"regasm.exe\",\n \"regsvcs.exe\", \"regsvr32.exe\", \"sc.exe\", \"schtasks.exe\", \"systeminfo.exe\", \"tasklist.exe\", \"tracert.exe\", \"whoami.exe\",\n \"wmic.exe\", \"wscript.exe\", \"xwizard.exe\", \"explorer.exe\", \"rundll32.exe\", \"hh.exe\", \"msdt.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"a624863f-a70d-417f-a7d2-7a404638d47f:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a6bf4dd4-743e-4da8-8c03-3ebd753a6c90:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a6bf4dd4-743e-4da8-8c03-3ebd753a6c90:100.0.0.json new file mode 100644 index 0000000000000..933905f2e6f61 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a6bf4dd4-743e-4da8-8c03-3ebd753a6c90:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Emond Rules Creation or Modification v100.0.0","rule_id":"a6bf4dd4-743e-4da8-8c03-3ebd753a6c90:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of the Event Monitor Daemon (emond) rules. Adversaries may abuse this service by writing a rule to execute commands when a defined event occurs, such as system start up or user authentication.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.xorrior.com/emond-persistence/","https://www.sentinelone.com/blog/how-malware-persists-on-macos/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.014","name":"Emond","reference":"https://attack.mitre.org/techniques/T1546/014/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path : (\"/private/etc/emond.d/rules/*.plist\", \"/etc/emon.d/rules/*.plist\", \"/private/var/db/emondClients/*\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"a6bf4dd4-743e-4da8-8c03-3ebd753a6c90:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a6bf4dd4-743e-4da8-8c03-3ebd753a6c90:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a6bf4dd4-743e-4da8-8c03-3ebd753a6c90:100.0.1.json new file mode 100644 index 0000000000000..45d53743097a3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a6bf4dd4-743e-4da8-8c03-3ebd753a6c90:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Emond Rules Creation or Modification v100.0.1","rule_id":"a6bf4dd4-743e-4da8-8c03-3ebd753a6c90:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of the Event Monitor Daemon (emond) rules. Adversaries may abuse this service by writing a rule to execute commands when a defined event occurs, such as system start up or user authentication.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.xorrior.com/emond-persistence/","https://www.sentinelone.com/blog/how-malware-persists-on-macos/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.014","name":"Emond","reference":"https://attack.mitre.org/techniques/T1546/014/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path : (\"/private/etc/emond.d/rules/*.plist\", \"/etc/emon.d/rules/*.plist\", \"/private/var/db/emondClients/*\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"a6bf4dd4-743e-4da8-8c03-3ebd753a6c90:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a6bf4dd4-743e-4da8-8c03-3ebd753a6c90:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a6bf4dd4-743e-4da8-8c03-3ebd753a6c90:100.0.2.json new file mode 100644 index 0000000000000..f01a62faaf124 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a6bf4dd4-743e-4da8-8c03-3ebd753a6c90:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Emond Rules Creation or Modification v100.0.2","rule_id":"a6bf4dd4-743e-4da8-8c03-3ebd753a6c90:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of the Event Monitor Daemon (emond) rules. Adversaries may abuse this service by writing a rule to execute commands when a defined event occurs, such as system start up or user authentication.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.xorrior.com/emond-persistence/","https://www.sentinelone.com/blog/how-malware-persists-on-macos/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.014","name":"Emond","reference":"https://attack.mitre.org/techniques/T1546/014/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path : (\"/private/etc/emond.d/rules/*.plist\", \"/etc/emon.d/rules/*.plist\", \"/private/var/db/emondClients/*\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"a6bf4dd4-743e-4da8-8c03-3ebd753a6c90:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a7ccae7b-9d2c-44b2-a061-98e5946971fa:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a7ccae7b-9d2c-44b2-a061-98e5946971fa:102.0.0.json new file mode 100644 index 0000000000000..d1771789c2f60 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a7ccae7b-9d2c-44b2-a061-98e5946971fa:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Print Spooler SPL File Created v102.0.0","rule_id":"a7ccae7b-9d2c-44b2-a061-98e5946971fa:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to exploit privilege escalation vulnerabilities related to the Print Spooler service including CVE-2020-1048 and CVE-2020-1337.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Print Spooler SPL File Created\n\nPrint Spooler is a Windows service enabled by default in all Windows clients and servers. The service manages print jobs\nby loading printer drivers, receiving files to be printed, queuing them, scheduling, etc.\n\nThe Print Spooler service has some known vulnerabilities that attackers can abuse to escalate privileges to SYSTEM, like\nCVE-2020-1048 and CVE-2020-1337. This rule looks for unusual processes writing SPL files to the location\n`?:\\Windows\\System32\\spool\\PRINTERS\\`, which is an essential step in exploiting these vulnerabilities.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination\nof process executable and file conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Ensure that the machine has the latest security updates and is not running legacy Windows versions.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://safebreach.com/Post/How-we-bypassed-CVE-2020-1048-Patch-and-got-CVE-2020-1337"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.extension : \"spl\" and\n file.path : \"?:\\\\Windows\\\\System32\\\\spool\\\\PRINTERS\\\\*\" and\n not process.name : (\"spoolsv.exe\",\n \"printfilterpipelinesvc.exe\",\n \"PrintIsolationHost.exe\",\n \"splwow64.exe\",\n \"msiexec.exe\",\n \"poqexec.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"a7ccae7b-9d2c-44b2-a061-98e5946971fa:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a7ccae7b-9d2c-44b2-a061-98e5946971fa:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a7ccae7b-9d2c-44b2-a061-98e5946971fa:102.0.1.json new file mode 100644 index 0000000000000..bc4a23337f006 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a7ccae7b-9d2c-44b2-a061-98e5946971fa:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Print Spooler SPL File Created v102.0.1","rule_id":"a7ccae7b-9d2c-44b2-a061-98e5946971fa:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to exploit privilege escalation vulnerabilities related to the Print Spooler service including CVE-2020-1048 and CVE-2020-1337.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Print Spooler SPL File Created\n\nPrint Spooler is a Windows service enabled by default in all Windows clients and servers. The service manages print jobs\nby loading printer drivers, receiving files to be printed, queuing them, scheduling, etc.\n\nThe Print Spooler service has some known vulnerabilities that attackers can abuse to escalate privileges to SYSTEM, like\nCVE-2020-1048 and CVE-2020-1337. This rule looks for unusual processes writing SPL files to the location\n`?:\\Windows\\System32\\spool\\PRINTERS\\`, which is an essential step in exploiting these vulnerabilities.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination\nof process executable and file conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Ensure that the machine has the latest security updates and is not running legacy Windows versions.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://safebreach.com/Post/How-we-bypassed-CVE-2020-1048-Patch-and-got-CVE-2020-1337"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.extension : \"spl\" and\n file.path : \"?:\\\\Windows\\\\System32\\\\spool\\\\PRINTERS\\\\*\" and\n not process.name : (\"spoolsv.exe\",\n \"printfilterpipelinesvc.exe\",\n \"PrintIsolationHost.exe\",\n \"splwow64.exe\",\n \"msiexec.exe\",\n \"poqexec.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"a7ccae7b-9d2c-44b2-a061-98e5946971fa:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a7ccae7b-9d2c-44b2-a061-98e5946971fa:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a7ccae7b-9d2c-44b2-a061-98e5946971fa:102.0.2.json new file mode 100644 index 0000000000000..c1540d33e0390 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a7ccae7b-9d2c-44b2-a061-98e5946971fa:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Print Spooler SPL File Created v102.0.2","rule_id":"a7ccae7b-9d2c-44b2-a061-98e5946971fa:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to exploit privilege escalation vulnerabilities related to the Print Spooler service including CVE-2020-1048 and CVE-2020-1337.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Print Spooler SPL File Created\n\nPrint Spooler is a Windows service enabled by default in all Windows clients and servers. The service manages print jobs\nby loading printer drivers, receiving files to be printed, queuing them, scheduling, etc.\n\nThe Print Spooler service has some known vulnerabilities that attackers can abuse to escalate privileges to SYSTEM, like\nCVE-2020-1048 and CVE-2020-1337. This rule looks for unusual processes writing SPL files to the location\n`?:\\Windows\\System32\\spool\\PRINTERS\\`, which is an essential step in exploiting these vulnerabilities.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination\nof process executable and file conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Ensure that the machine has the latest security updates and is not running legacy Windows versions.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://safebreach.com/Post/How-we-bypassed-CVE-2020-1048-Patch-and-got-CVE-2020-1337"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.extension : \"spl\" and\n file.path : \"?:\\\\Windows\\\\System32\\\\spool\\\\PRINTERS\\\\*\" and\n not process.name : (\"spoolsv.exe\",\n \"printfilterpipelinesvc.exe\",\n \"PrintIsolationHost.exe\",\n \"splwow64.exe\",\n \"msiexec.exe\",\n \"poqexec.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"a7ccae7b-9d2c-44b2-a061-98e5946971fa:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a7e7bfa3-088e-4f13-b29e-3986e0e756b8:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a7e7bfa3-088e-4f13-b29e-3986e0e756b8:102.0.0.json new file mode 100644 index 0000000000000..2009224eae1a1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a7e7bfa3-088e-4f13-b29e-3986e0e756b8:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Credential Acquisition via Registry Hive Dumping v102.0.0","rule_id":"a7e7bfa3-088e-4f13-b29e-3986e0e756b8:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to export a registry hive which may contain credentials using the Windows reg.exe tool.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Credential Acquisition via Registry Hive Dumping\n\nDumping registry hives is a common way to access credential information as some hives store credential material.\n\nFor example, the SAM hive stores locally cached credentials (SAM Secrets), and the SECURITY hive stores domain cached\ncredentials (LSA secrets).\n\nDumping these hives in combination with the SYSTEM hive enables the attacker to decrypt these secrets.\n\nThis rule identifies the usage of `reg.exe` to dump SECURITY and/or SAM hives, which potentially indicates the\ncompromise of the credentials stored in the host.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate if the credential material was exfiltrated or processed locally by other tools.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (e.g., 4624) to the target\nhost.\n\n### False positive analysis\n\n- Administrators can export registry hives for backup purposes using command line tools like `reg.exe`. Check whether\nthe user is legitamitely performing this kind of activity.\n\n### Related rules\n\n- Registry Hive File Creation via SMB - a4c7473a-5cb4-4bc1-9d06-e4a75adbc494\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system and restore compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://medium.com/threatpunter/detecting-attempts-to-steal-passwords-from-the-registry-7512674487f8","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.002","name":"Security Account Manager","reference":"https://attack.mitre.org/techniques/T1003/002/"},{"id":"T1003.004","name":"LSA Secrets","reference":"https://attack.mitre.org/techniques/T1003/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name == \"reg.exe\" and\n process.args : (\"save\", \"export\") and\n process.args : (\"hklm\\\\sam\", \"hklm\\\\security\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"a7e7bfa3-088e-4f13-b29e-3986e0e756b8:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a7e7bfa3-088e-4f13-b29e-3986e0e756b8:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a7e7bfa3-088e-4f13-b29e-3986e0e756b8:102.0.1.json new file mode 100644 index 0000000000000..88dbe28075628 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a7e7bfa3-088e-4f13-b29e-3986e0e756b8:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Credential Acquisition via Registry Hive Dumping v102.0.1","rule_id":"a7e7bfa3-088e-4f13-b29e-3986e0e756b8:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to export a registry hive which may contain credentials using the Windows reg.exe tool.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Credential Acquisition via Registry Hive Dumping\n\nDumping registry hives is a common way to access credential information as some hives store credential material.\n\nFor example, the SAM hive stores locally cached credentials (SAM Secrets), and the SECURITY hive stores domain cached\ncredentials (LSA secrets).\n\nDumping these hives in combination with the SYSTEM hive enables the attacker to decrypt these secrets.\n\nThis rule identifies the usage of `reg.exe` to dump SECURITY and/or SAM hives, which potentially indicates the\ncompromise of the credentials stored in the host.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate if the credential material was exfiltrated or processed locally by other tools.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (e.g., 4624) to the target\nhost.\n\n### False positive analysis\n\n- Administrators can export registry hives for backup purposes using command line tools like `reg.exe`. Check whether\nthe user is legitamitely performing this kind of activity.\n\n### Related rules\n\n- Registry Hive File Creation via SMB - a4c7473a-5cb4-4bc1-9d06-e4a75adbc494\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system and restore compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://medium.com/threatpunter/detecting-attempts-to-steal-passwords-from-the-registry-7512674487f8","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.002","name":"Security Account Manager","reference":"https://attack.mitre.org/techniques/T1003/002/"},{"id":"T1003.004","name":"LSA Secrets","reference":"https://attack.mitre.org/techniques/T1003/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name == \"reg.exe\" and\n process.args : (\"save\", \"export\") and\n process.args : (\"hklm\\\\sam\", \"hklm\\\\security\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"a7e7bfa3-088e-4f13-b29e-3986e0e756b8:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a7e7bfa3-088e-4f13-b29e-3986e0e756b8:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a7e7bfa3-088e-4f13-b29e-3986e0e756b8:102.0.2.json new file mode 100644 index 0000000000000..149f9f521560c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a7e7bfa3-088e-4f13-b29e-3986e0e756b8:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Credential Acquisition via Registry Hive Dumping v102.0.2","rule_id":"a7e7bfa3-088e-4f13-b29e-3986e0e756b8:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to export a registry hive which may contain credentials using the Windows reg.exe tool.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Credential Acquisition via Registry Hive Dumping\n\nDumping registry hives is a common way to access credential information as some hives store credential material.\n\nFor example, the SAM hive stores locally cached credentials (SAM Secrets), and the SECURITY hive stores domain cached\ncredentials (LSA secrets).\n\nDumping these hives in combination with the SYSTEM hive enables the attacker to decrypt these secrets.\n\nThis rule identifies the usage of `reg.exe` to dump SECURITY and/or SAM hives, which potentially indicates the\ncompromise of the credentials stored in the host.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate if the credential material was exfiltrated or processed locally by other tools.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (e.g., 4624) to the target\nhost.\n\n### False positive analysis\n\n- Administrators can export registry hives for backup purposes using command line tools like `reg.exe`. Check whether\nthe user is legitamitely performing this kind of activity.\n\n### Related rules\n\n- Registry Hive File Creation via SMB - a4c7473a-5cb4-4bc1-9d06-e4a75adbc494\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system and restore compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://medium.com/threatpunter/detecting-attempts-to-steal-passwords-from-the-registry-7512674487f8","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.002","name":"Security Account Manager","reference":"https://attack.mitre.org/techniques/T1003/002/"},{"id":"T1003.004","name":"LSA Secrets","reference":"https://attack.mitre.org/techniques/T1003/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name == \"reg.exe\" and\n process.args : (\"save\", \"export\") and\n process.args : (\"hklm\\\\sam\", \"hklm\\\\security\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"a7e7bfa3-088e-4f13-b29e-3986e0e756b8:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a87a4e42-1d82-44bd-b0bf-d9b7f91fb89e:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a87a4e42-1d82-44bd-b0bf-d9b7f91fb89e:100.0.0.json new file mode 100644 index 0000000000000..224ac1ca98106 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a87a4e42-1d82-44bd-b0bf-d9b7f91fb89e:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Web Application Suspicious Activity: POST Request Declined v100.0.0","rule_id":"a87a4e42-1d82-44bd-b0bf-d9b7f91fb89e:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A POST request to a web application returned a 403 response, which indicates the web application declined to process the request because the action requested was not allowed.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Security scans and tests may result in these errors. Misconfigured or buggy applications may produce large numbers of these errors. If the source is unexpected, the user unauthorized, or the request unusual, these may indicate suspicious or malicious activity."],"references":["https://en.wikipedia.org/wiki/HTTP_403"],"tags":["Elastic","APM"],"type":"query","index":["apm-*-transaction*","traces-apm*"],"language":"kuery","query":"http.response.status_code:403 and http.request.method:post\n","required_fields":[{"ecs":true,"name":"http.request.method","type":"keyword"},{"ecs":true,"name":"http.response.status_code","type":"long"}]},"id":"a87a4e42-1d82-44bd-b0bf-d9b7f91fb89e:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a87a4e42-1d82-44bd-b0bf-d9b7f91fb89e:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a87a4e42-1d82-44bd-b0bf-d9b7f91fb89e:100.0.1.json new file mode 100644 index 0000000000000..b269da4b039b1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a87a4e42-1d82-44bd-b0bf-d9b7f91fb89e:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Web Application Suspicious Activity: POST Request Declined v100.0.1","rule_id":"a87a4e42-1d82-44bd-b0bf-d9b7f91fb89e:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A POST request to a web application returned a 403 response, which indicates the web application declined to process the request because the action requested was not allowed.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Security scans and tests may result in these errors. Misconfigured or buggy applications may produce large numbers of these errors. If the source is unexpected, the user unauthorized, or the request unusual, these may indicate suspicious or malicious activity."],"references":["https://en.wikipedia.org/wiki/HTTP_403"],"tags":["Elastic","APM"],"type":"query","index":["apm-*-transaction*","traces-apm*"],"language":"kuery","query":"http.response.status_code:403 and http.request.method:post\n","required_fields":[{"ecs":true,"name":"http.request.method","type":"keyword"},{"ecs":true,"name":"http.response.status_code","type":"long"}]},"id":"a87a4e42-1d82-44bd-b0bf-d9b7f91fb89e:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a87a4e42-1d82-44bd-b0bf-d9b7f91fb89e:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a87a4e42-1d82-44bd-b0bf-d9b7f91fb89e:100.0.2.json new file mode 100644 index 0000000000000..b047bc91a31ce --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a87a4e42-1d82-44bd-b0bf-d9b7f91fb89e:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Web Application Suspicious Activity: POST Request Declined v100.0.2","rule_id":"a87a4e42-1d82-44bd-b0bf-d9b7f91fb89e:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A POST request to a web application returned a 403 response, which indicates the web application declined to process the request because the action requested was not allowed.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Security scans and tests may result in these errors. Misconfigured or buggy applications may produce large numbers of these errors. If the source is unexpected, the user unauthorized, or the request unusual, these may indicate suspicious or malicious activity."],"references":["https://en.wikipedia.org/wiki/HTTP_403"],"tags":["Elastic","APM"],"type":"query","index":["apm-*-transaction*","traces-apm*"],"language":"kuery","query":"http.response.status_code:403 and http.request.method:post\n","required_fields":[{"ecs":true,"name":"http.request.method","type":"keyword"},{"ecs":true,"name":"http.response.status_code","type":"long"}]},"id":"a87a4e42-1d82-44bd-b0bf-d9b7f91fb89e:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a989fa1b-9a11-4dd8-a3e9-f0de9c6eb5f2:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a989fa1b-9a11-4dd8-a3e9-f0de9c6eb5f2:101.0.0.json new file mode 100644 index 0000000000000..80b8fe9a8d799 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a989fa1b-9a11-4dd8-a3e9-f0de9c6eb5f2:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange Safe Link Policy Disabled v101.0.0","rule_id":"a989fa1b-9a11-4dd8-a3e9-f0de9c6eb5f2:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Safe Link policy is disabled in Microsoft 365. Safe Link policies for Office applications extend phishing protection to documents that contain hyperlinks, even after they have been delivered to a user.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Disabling safe links may be done by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/disable-safelinksrule?view=exchange-ps","https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/atp-safe-links?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Disable-SafeLinksRule\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"a989fa1b-9a11-4dd8-a3e9-f0de9c6eb5f2:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a989fa1b-9a11-4dd8-a3e9-f0de9c6eb5f2:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a989fa1b-9a11-4dd8-a3e9-f0de9c6eb5f2:101.0.1.json new file mode 100644 index 0000000000000..c767c8ad9a04d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a989fa1b-9a11-4dd8-a3e9-f0de9c6eb5f2:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange Safe Link Policy Disabled v101.0.1","rule_id":"a989fa1b-9a11-4dd8-a3e9-f0de9c6eb5f2:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Safe Link policy is disabled in Microsoft 365. Safe Link policies for Office applications extend phishing protection to documents that contain hyperlinks, even after they have been delivered to a user.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Disabling safe links may be done by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/disable-safelinksrule?view=exchange-ps","https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/atp-safe-links?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Disable-SafeLinksRule\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"a989fa1b-9a11-4dd8-a3e9-f0de9c6eb5f2:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a989fa1b-9a11-4dd8-a3e9-f0de9c6eb5f2:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a989fa1b-9a11-4dd8-a3e9-f0de9c6eb5f2:101.0.2.json new file mode 100644 index 0000000000000..e2c0624dae6a4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a989fa1b-9a11-4dd8-a3e9-f0de9c6eb5f2:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange Safe Link Policy Disabled v101.0.2","rule_id":"a989fa1b-9a11-4dd8-a3e9-f0de9c6eb5f2:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Safe Link policy is disabled in Microsoft 365. Safe Link policies for Office applications extend phishing protection to documents that contain hyperlinks, even after they have been delivered to a user.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Disabling safe links may be done by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/disable-safelinksrule?view=exchange-ps","https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/atp-safe-links?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Disable-SafeLinksRule\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"a989fa1b-9a11-4dd8-a3e9-f0de9c6eb5f2:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a99f82f5-8e77-4f8b-b3ce-10c0f6afbc73:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a99f82f5-8e77-4f8b-b3ce-10c0f6afbc73:101.0.0.json new file mode 100644 index 0000000000000..d65e2387c8373 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a99f82f5-8e77-4f8b-b3ce-10c0f6afbc73:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace Password Policy Modified v101.0.0","rule_id":"a99f82f5-8e77-4f8b-b3ce-10c0f6afbc73:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a Google Workspace password policy is modified. An adversary may attempt to modify a password policy in order to weaken an organization’s security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Password policies may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and\n event.action:(CHANGE_APPLICATION_SETTING or CREATE_APPLICATION_SETTING) and\n google_workspace.admin.setting.name:(\n \"Password Management - Enforce strong password\" or\n \"Password Management - Password reset frequency\" or\n \"Password Management - Enable password reuse\" or\n \"Password Management - Enforce password policy at next login\" or\n \"Password Management - Minimum password length\" or\n \"Password Management - Maximum password length\"\n )\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.setting.name","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"a99f82f5-8e77-4f8b-b3ce-10c0f6afbc73:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a99f82f5-8e77-4f8b-b3ce-10c0f6afbc73:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a99f82f5-8e77-4f8b-b3ce-10c0f6afbc73:101.0.1.json new file mode 100644 index 0000000000000..603ab531f5677 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a99f82f5-8e77-4f8b-b3ce-10c0f6afbc73:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace Password Policy Modified v101.0.1","rule_id":"a99f82f5-8e77-4f8b-b3ce-10c0f6afbc73:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a Google Workspace password policy is modified. An adversary may attempt to modify a password policy in order to weaken an organization’s security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Password policies may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and\n event.action:(CHANGE_APPLICATION_SETTING or CREATE_APPLICATION_SETTING) and\n google_workspace.admin.setting.name:(\n \"Password Management - Enforce strong password\" or\n \"Password Management - Password reset frequency\" or\n \"Password Management - Enable password reuse\" or\n \"Password Management - Enforce password policy at next login\" or\n \"Password Management - Minimum password length\" or\n \"Password Management - Maximum password length\"\n )\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.setting.name","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"a99f82f5-8e77-4f8b-b3ce-10c0f6afbc73:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a99f82f5-8e77-4f8b-b3ce-10c0f6afbc73:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a99f82f5-8e77-4f8b-b3ce-10c0f6afbc73:101.0.2.json new file mode 100644 index 0000000000000..242130263d1a7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a99f82f5-8e77-4f8b-b3ce-10c0f6afbc73:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace Password Policy Modified v101.0.2","rule_id":"a99f82f5-8e77-4f8b-b3ce-10c0f6afbc73:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a Google Workspace password policy is modified. An adversary may attempt to modify a password policy in order to weaken an organization’s security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Password policies may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and\n event.action:(CHANGE_APPLICATION_SETTING or CREATE_APPLICATION_SETTING) and\n google_workspace.admin.setting.name:(\n \"Password Management - Enforce strong password\" or\n \"Password Management - Password reset frequency\" or\n \"Password Management - Enable password reuse\" or\n \"Password Management - Enforce password policy at next login\" or\n \"Password Management - Minimum password length\" or\n \"Password Management - Maximum password length\"\n )\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.setting.name","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"a99f82f5-8e77-4f8b-b3ce-10c0f6afbc73:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a9b05c3b-b304-4bf9-970d-acdfaef2944c:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a9b05c3b-b304-4bf9-970d-acdfaef2944c:100.0.0.json new file mode 100644 index 0000000000000..e18898b3493f2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a9b05c3b-b304-4bf9-970d-acdfaef2944c:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via Hidden Run Key Detected v100.0.0","rule_id":"a9b05c3b-b304-4bf9-970d-acdfaef2944c:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a persistence mechanism that utilizes the NtSetValueKey native API to create a hidden (null terminated) registry key. An adversary may use this method to hide from system utilities such as the Registry Editor (regedit).","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/outflanknl/SharpHide","https://github.com/ewhitehats/InvisiblePersistence/blob/master/InvisibleRegValues_Whitepaper.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"/* Registry Path ends with backslash */\nregistry where /* length(registry.data.strings) > 0 and */\n registry.path : (\"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\\",\n \"HKU\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\\",\n \"HKLM\\\\Software\\\\WOW6432Node\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\\",\n \"HKU\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"a9b05c3b-b304-4bf9-970d-acdfaef2944c:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a9b05c3b-b304-4bf9-970d-acdfaef2944c:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a9b05c3b-b304-4bf9-970d-acdfaef2944c:100.0.1.json new file mode 100644 index 0000000000000..7ef2365997cbd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a9b05c3b-b304-4bf9-970d-acdfaef2944c:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via Hidden Run Key Detected v100.0.1","rule_id":"a9b05c3b-b304-4bf9-970d-acdfaef2944c:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a persistence mechanism that utilizes the NtSetValueKey native API to create a hidden (null terminated) registry key. An adversary may use this method to hide from system utilities such as the Registry Editor (regedit).","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/outflanknl/SharpHide","https://github.com/ewhitehats/InvisiblePersistence/blob/master/InvisibleRegValues_Whitepaper.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"/* Registry Path ends with backslash */\nregistry where /* length(registry.data.strings) > 0 and */\n registry.path : (\"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\\",\n \"HKU\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\\",\n \"HKLM\\\\Software\\\\WOW6432Node\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\\",\n \"HKU\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"a9b05c3b-b304-4bf9-970d-acdfaef2944c:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a9b05c3b-b304-4bf9-970d-acdfaef2944c:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a9b05c3b-b304-4bf9-970d-acdfaef2944c:100.0.2.json new file mode 100644 index 0000000000000..335c6c330c882 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a9b05c3b-b304-4bf9-970d-acdfaef2944c:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via Hidden Run Key Detected v100.0.2","rule_id":"a9b05c3b-b304-4bf9-970d-acdfaef2944c:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a persistence mechanism that utilizes the NtSetValueKey native API to create a hidden (null terminated) registry key. An adversary may use this method to hide from system utilities such as the Registry Editor (regedit).","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/outflanknl/SharpHide","https://github.com/ewhitehats/InvisiblePersistence/blob/master/InvisibleRegValues_Whitepaper.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"/* Registry Path ends with backslash */\nregistry where /* length(registry.data.strings) > 0 and */\n registry.path : (\"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\\",\n \"HKU\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\\",\n \"HKLM\\\\Software\\\\WOW6432Node\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\\\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\\",\n \"HKU\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\Explorer\\\\Run\\\\\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"a9b05c3b-b304-4bf9-970d-acdfaef2944c:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a9cb3641-ff4b-4cdc-a063-b4b8d02a67c7:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a9cb3641-ff4b-4cdc-a063-b4b8d02a67c7:100.0.0.json new file mode 100644 index 0000000000000..dc50f74d3680c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a9cb3641-ff4b-4cdc-a063-b4b8d02a67c7:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"IPSEC NAT Traversal Port Activity v100.0.0","rule_id":"a9cb3641-ff4b-4cdc-a063-b4b8d02a67c7:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects events that could be describing IPSEC NAT Traversal traffic. IPSEC is a VPN technology that allows one system to talk to another using encrypted tunnels. NAT Traversal enables these tunnels to communicate over the Internet where one of the sides is behind a NAT router gateway. This may be common on your network, but this technique is also used by threat actors to avoid detection.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some networks may utilize these protocols but usage that is unfamiliar to local network administrators can be unexpected and suspicious. Because this port is in the ephemeral range, this rule may false under certain conditions, such as when an application server with a public IP address replies to a client which has used a UDP port in the range by coincidence. This is uncommon but such servers can be excluded."],"from":"now-9m","tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:udp and destination.port:4500\n","required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"}]},"id":"a9cb3641-ff4b-4cdc-a063-b4b8d02a67c7:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a9cb3641-ff4b-4cdc-a063-b4b8d02a67c7:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a9cb3641-ff4b-4cdc-a063-b4b8d02a67c7:100.0.1.json new file mode 100644 index 0000000000000..8da2f90c4b832 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a9cb3641-ff4b-4cdc-a063-b4b8d02a67c7:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"IPSEC NAT Traversal Port Activity v100.0.1","rule_id":"a9cb3641-ff4b-4cdc-a063-b4b8d02a67c7:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects events that could be describing IPSEC NAT Traversal traffic. IPSEC is a VPN technology that allows one system to talk to another using encrypted tunnels. NAT Traversal enables these tunnels to communicate over the Internet where one of the sides is behind a NAT router gateway. This may be common on your network, but this technique is also used by threat actors to avoid detection.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some networks may utilize these protocols but usage that is unfamiliar to local network administrators can be unexpected and suspicious. Because this port is in the ephemeral range, this rule may false under certain conditions, such as when an application server with a public IP address replies to a client which has used a UDP port in the range by coincidence. This is uncommon but such servers can be excluded."],"from":"now-9m","tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:udp and destination.port:4500\n","required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"}]},"id":"a9cb3641-ff4b-4cdc-a063-b4b8d02a67c7:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/a9cb3641-ff4b-4cdc-a063-b4b8d02a67c7:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/a9cb3641-ff4b-4cdc-a063-b4b8d02a67c7:100.0.2.json new file mode 100644 index 0000000000000..f92f3d05e8a5e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/a9cb3641-ff4b-4cdc-a063-b4b8d02a67c7:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"IPSEC NAT Traversal Port Activity v100.0.2","rule_id":"a9cb3641-ff4b-4cdc-a063-b4b8d02a67c7:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects events that could be describing IPSEC NAT Traversal traffic. IPSEC is a VPN technology that allows one system to talk to another using encrypted tunnels. NAT Traversal enables these tunnels to communicate over the Internet where one of the sides is behind a NAT router gateway. This may be common on your network, but this technique is also used by threat actors to avoid detection.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some networks may utilize these protocols but usage that is unfamiliar to local network administrators can be unexpected and suspicious. Because this port is in the ephemeral range, this rule may false under certain conditions, such as when an application server with a public IP address replies to a client which has used a UDP port in the range by coincidence. This is uncommon but such servers can be excluded."],"from":"now-9m","tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:udp and destination.port:4500\n","required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"}]},"id":"a9cb3641-ff4b-4cdc-a063-b4b8d02a67c7:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/aa8007f0-d1df-49ef-8520-407857594827:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/aa8007f0-d1df-49ef-8520-407857594827:102.0.0.json new file mode 100644 index 0000000000000..5c71d1a061860 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/aa8007f0-d1df-49ef-8520-407857594827:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP IAM Custom Role Creation v102.0.0","rule_id":"aa8007f0-d1df-49ef-8520-407857594827:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an Identity and Access Management (IAM) custom role creation in Google Cloud Platform (GCP). Custom roles are user-defined, and allow for the bundling of one or more supported permissions to meet specific needs. Custom roles will not be updated automatically and could lead to privilege creep if not carefully scrutinized.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Custom role creations may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Role creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/iam/docs/understanding-custom-roles"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.CreateRole and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"aa8007f0-d1df-49ef-8520-407857594827:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/aa8007f0-d1df-49ef-8520-407857594827:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/aa8007f0-d1df-49ef-8520-407857594827:102.0.1.json new file mode 100644 index 0000000000000..a47cfdab41193 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/aa8007f0-d1df-49ef-8520-407857594827:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP IAM Custom Role Creation v102.0.1","rule_id":"aa8007f0-d1df-49ef-8520-407857594827:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an Identity and Access Management (IAM) custom role creation in Google Cloud Platform (GCP). Custom roles are user-defined, and allow for the bundling of one or more supported permissions to meet specific needs. Custom roles will not be updated automatically and could lead to privilege creep if not carefully scrutinized.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Custom role creations may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Role creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/iam/docs/understanding-custom-roles"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.CreateRole and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"aa8007f0-d1df-49ef-8520-407857594827:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/aa8007f0-d1df-49ef-8520-407857594827:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/aa8007f0-d1df-49ef-8520-407857594827:102.0.2.json new file mode 100644 index 0000000000000..7fdf48c08aef5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/aa8007f0-d1df-49ef-8520-407857594827:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP IAM Custom Role Creation v102.0.2","rule_id":"aa8007f0-d1df-49ef-8520-407857594827:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an Identity and Access Management (IAM) custom role creation in Google Cloud Platform (GCP). Custom roles are user-defined, and allow for the bundling of one or more supported permissions to meet specific needs. Custom roles will not be updated automatically and could lead to privilege creep if not carefully scrutinized.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Custom role creations may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Role creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/iam/docs/understanding-custom-roles"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.CreateRole and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"aa8007f0-d1df-49ef-8520-407857594827:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/aa895aea-b69c-4411-b110-8d7599634b30:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/aa895aea-b69c-4411-b110-8d7599634b30:101.0.0.json new file mode 100644 index 0000000000000..7f0b8e916a067 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/aa895aea-b69c-4411-b110-8d7599634b30:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"System Log File Deletion v101.0.0","rule_id":"aa895aea-b69c-4411-b110-8d7599634b30:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of sensitive Linux system logs. This may indicate an attempt to evade detection or destroy forensic evidence on a system.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2020/11/live-off-the-land-an-overview-of-unc1945.html"],"tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.002","name":"Clear Linux or Mac System Logs","reference":"https://attack.mitre.org/techniques/T1070/002/"}]}]}],"language":"eql","query":"file where event.type == \"deletion\" and\n file.path :\n (\n \"/var/run/utmp\",\n \"/var/log/wtmp\",\n \"/var/log/btmp\",\n \"/var/log/lastlog\",\n \"/var/log/faillog\",\n \"/var/log/syslog\",\n \"/var/log/messages\",\n \"/var/log/secure\",\n \"/var/log/auth.log\",\n \"/var/log/boot.log\",\n \"/var/log/kern.log\"\n ) and\n not process.name : (\"gzip\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"aa895aea-b69c-4411-b110-8d7599634b30:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/aa895aea-b69c-4411-b110-8d7599634b30:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/aa895aea-b69c-4411-b110-8d7599634b30:101.0.1.json new file mode 100644 index 0000000000000..ab958147de3d6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/aa895aea-b69c-4411-b110-8d7599634b30:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"System Log File Deletion v101.0.1","rule_id":"aa895aea-b69c-4411-b110-8d7599634b30:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of sensitive Linux system logs. This may indicate an attempt to evade detection or destroy forensic evidence on a system.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2020/11/live-off-the-land-an-overview-of-unc1945.html"],"tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.002","name":"Clear Linux or Mac System Logs","reference":"https://attack.mitre.org/techniques/T1070/002/"}]}]}],"language":"eql","query":"file where event.type == \"deletion\" and\n file.path :\n (\n \"/var/run/utmp\",\n \"/var/log/wtmp\",\n \"/var/log/btmp\",\n \"/var/log/lastlog\",\n \"/var/log/faillog\",\n \"/var/log/syslog\",\n \"/var/log/messages\",\n \"/var/log/secure\",\n \"/var/log/auth.log\",\n \"/var/log/boot.log\",\n \"/var/log/kern.log\"\n ) and\n not process.name : (\"gzip\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"aa895aea-b69c-4411-b110-8d7599634b30:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/aa895aea-b69c-4411-b110-8d7599634b30:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/aa895aea-b69c-4411-b110-8d7599634b30:101.0.2.json new file mode 100644 index 0000000000000..dd3cb3a3c9192 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/aa895aea-b69c-4411-b110-8d7599634b30:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"System Log File Deletion v101.0.2","rule_id":"aa895aea-b69c-4411-b110-8d7599634b30:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of sensitive Linux system logs. This may indicate an attempt to evade detection or destroy forensic evidence on a system.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2020/11/live-off-the-land-an-overview-of-unc1945.html"],"tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.002","name":"Clear Linux or Mac System Logs","reference":"https://attack.mitre.org/techniques/T1070/002/"}]}]}],"language":"eql","query":"file where event.type == \"deletion\" and\n file.path :\n (\n \"/var/run/utmp\",\n \"/var/log/wtmp\",\n \"/var/log/btmp\",\n \"/var/log/lastlog\",\n \"/var/log/faillog\",\n \"/var/log/syslog\",\n \"/var/log/messages\",\n \"/var/log/secure\",\n \"/var/log/auth.log\",\n \"/var/log/boot.log\",\n \"/var/log/kern.log\"\n ) and\n not process.name : (\"gzip\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"aa895aea-b69c-4411-b110-8d7599634b30:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/aa9a274d-6b53-424d-ac5e-cb8ca4251650:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/aa9a274d-6b53-424d-ac5e-cb8ca4251650:102.0.0.json new file mode 100644 index 0000000000000..38bac4efd0703 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/aa9a274d-6b53-424d-ac5e-cb8ca4251650:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remotely Started Services via RPC v102.0.0","rule_id":"aa9a274d-6b53-424d-ac5e-cb8ca4251650:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote execution of Windows services over remote procedure call (RPC). This could be indicative of lateral movement, but will be noisy if commonly done by administrators.\"","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remotely Started Services via RPC\n\nThe Service Control Manager Remote Protocol is a client/server protocol used for configuring and controlling service\nprograms running on a remote computer. A remote service management session begins with the client initiating the\nconnection request to the server. If the server grants the request, the connection is established. The client can then\nmake multiple requests to modify, query the configuration, or start and stop services on the server by using the same\nsession until the session is terminated.\n\nThis rule detects the remote creation or start of a service by correlating a `services.exe` network connection and the\nspawn of a child process.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Review login events (e.g., 4624) in the alert timeframe to identify the account used to perform this action. Use the\n`source.address` field to help identify the source system.\n- Review network events from the source system using the source port identified on the alert and try to identify the\nprogram used to initiate the action.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Validate if the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- Remote management software like SCCM may trigger this rule. If noisy on your environment, consider adding exceptions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-scmr/705b624a-13de-43cc-b8a2-99573da3635f"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence with maxspan=1s\n [network where process.name : \"services.exe\" and\n network.direction : (\"incoming\", \"ingress\") and network.transport == \"tcp\" and\n source.port >= 49152 and destination.port >= 49152 and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ] by host.id, process.entity_id\n\n [process where event.type == \"start\" and process.parent.name : \"services.exe\" and \n not (process.name : \"svchost.exe\" and process.args : \"tiledatamodelsvc\") and\n not (process.name : \"msiexec.exe\" and process.args : \"/V\") and\n not process.executable :\n (\"?:\\\\Windows\\\\ADCR_Agent\\\\adcrsvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\VSSVC.exe\",\n \"?:\\\\Windows\\\\servicing\\\\TrustedInstaller.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Windows\\\\PSEXESVC.EXE\",\n \"?:\\\\Windows\\\\System32\\\\sppsvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\wbem\\\\WmiApSrv.exe\",\n \"?:\\\\WINDOWS\\\\RemoteAuditService.exe\",\n \"?:\\\\Windows\\\\VeeamVssSupport\\\\VeeamGuestHelper.exe\",\n \"?:\\\\Windows\\\\VeeamLogShipper\\\\VeeamLogShipper.exe\",\n \"?:\\\\Windows\\\\CAInvokerService.exe\",\n \"?:\\\\Windows\\\\System32\\\\upfc.exe\",\n \"?:\\\\Windows\\\\AdminArsenal\\\\PDQ*.exe\",\n \"?:\\\\Windows\\\\System32\\\\vds.exe\",\n \"?:\\\\Windows\\\\Veeam\\\\Backup\\\\VeeamDeploymentSvc.exe\",\n \"?:\\\\Windows\\\\ProPatches\\\\Scheduler\\\\STSchedEx.exe\",\n \"?:\\\\Windows\\\\System32\\\\certsrv.exe\",\n \"?:\\\\Windows\\\\eset-remote-install-service.exe\",\n \"?:\\\\Pella Corporation\\\\Pella Order Management\\\\GPAutoSvc.exe\",\n \"?:\\\\Pella Corporation\\\\OSCToGPAutoService\\\\OSCToGPAutoSvc.exe\",\n \"?:\\\\Pella Corporation\\\\Pella Order Management\\\\GPAutoSvc.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\NwxExeSvc\\\\NwxExeSvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\taskhostex.exe\")\n ] by host.id, process.parent.entity_id\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]},"id":"aa9a274d-6b53-424d-ac5e-cb8ca4251650:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/aa9a274d-6b53-424d-ac5e-cb8ca4251650:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/aa9a274d-6b53-424d-ac5e-cb8ca4251650:102.0.1.json new file mode 100644 index 0000000000000..4aba99343371c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/aa9a274d-6b53-424d-ac5e-cb8ca4251650:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remotely Started Services via RPC v102.0.1","rule_id":"aa9a274d-6b53-424d-ac5e-cb8ca4251650:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote execution of Windows services over remote procedure call (RPC). This could be indicative of lateral movement, but will be noisy if commonly done by administrators.\"","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remotely Started Services via RPC\n\nThe Service Control Manager Remote Protocol is a client/server protocol used for configuring and controlling service\nprograms running on a remote computer. A remote service management session begins with the client initiating the\nconnection request to the server. If the server grants the request, the connection is established. The client can then\nmake multiple requests to modify, query the configuration, or start and stop services on the server by using the same\nsession until the session is terminated.\n\nThis rule detects the remote creation or start of a service by correlating a `services.exe` network connection and the\nspawn of a child process.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Review login events (e.g., 4624) in the alert timeframe to identify the account used to perform this action. Use the\n`source.address` field to help identify the source system.\n- Review network events from the source system using the source port identified on the alert and try to identify the\nprogram used to initiate the action.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Validate if the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- Remote management software like SCCM may trigger this rule. If noisy on your environment, consider adding exceptions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-scmr/705b624a-13de-43cc-b8a2-99573da3635f"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence with maxspan=1s\n [network where process.name : \"services.exe\" and\n network.direction : (\"incoming\", \"ingress\") and network.transport == \"tcp\" and\n source.port >= 49152 and destination.port >= 49152 and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ] by host.id, process.entity_id\n\n [process where event.type == \"start\" and process.parent.name : \"services.exe\" and \n not (process.name : \"svchost.exe\" and process.args : \"tiledatamodelsvc\") and\n not (process.name : \"msiexec.exe\" and process.args : \"/V\") and\n not process.executable :\n (\"?:\\\\Windows\\\\ADCR_Agent\\\\adcrsvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\VSSVC.exe\",\n \"?:\\\\Windows\\\\servicing\\\\TrustedInstaller.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Windows\\\\PSEXESVC.EXE\",\n \"?:\\\\Windows\\\\System32\\\\sppsvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\wbem\\\\WmiApSrv.exe\",\n \"?:\\\\WINDOWS\\\\RemoteAuditService.exe\",\n \"?:\\\\Windows\\\\VeeamVssSupport\\\\VeeamGuestHelper.exe\",\n \"?:\\\\Windows\\\\VeeamLogShipper\\\\VeeamLogShipper.exe\",\n \"?:\\\\Windows\\\\CAInvokerService.exe\",\n \"?:\\\\Windows\\\\System32\\\\upfc.exe\",\n \"?:\\\\Windows\\\\AdminArsenal\\\\PDQ*.exe\",\n \"?:\\\\Windows\\\\System32\\\\vds.exe\",\n \"?:\\\\Windows\\\\Veeam\\\\Backup\\\\VeeamDeploymentSvc.exe\",\n \"?:\\\\Windows\\\\ProPatches\\\\Scheduler\\\\STSchedEx.exe\",\n \"?:\\\\Windows\\\\System32\\\\certsrv.exe\",\n \"?:\\\\Windows\\\\eset-remote-install-service.exe\",\n \"?:\\\\Pella Corporation\\\\Pella Order Management\\\\GPAutoSvc.exe\",\n \"?:\\\\Pella Corporation\\\\OSCToGPAutoService\\\\OSCToGPAutoSvc.exe\",\n \"?:\\\\Pella Corporation\\\\Pella Order Management\\\\GPAutoSvc.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\NwxExeSvc\\\\NwxExeSvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\taskhostex.exe\")\n ] by host.id, process.parent.entity_id\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]},"id":"aa9a274d-6b53-424d-ac5e-cb8ca4251650:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/aa9a274d-6b53-424d-ac5e-cb8ca4251650:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/aa9a274d-6b53-424d-ac5e-cb8ca4251650:102.0.2.json new file mode 100644 index 0000000000000..d3b40ddb7be37 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/aa9a274d-6b53-424d-ac5e-cb8ca4251650:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remotely Started Services via RPC v102.0.2","rule_id":"aa9a274d-6b53-424d-ac5e-cb8ca4251650:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies remote execution of Windows services over remote procedure call (RPC). This could be indicative of lateral movement, but will be noisy if commonly done by administrators.\"","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remotely Started Services via RPC\n\nThe Service Control Manager Remote Protocol is a client/server protocol used for configuring and controlling service\nprograms running on a remote computer. A remote service management session begins with the client initiating the\nconnection request to the server. If the server grants the request, the connection is established. The client can then\nmake multiple requests to modify, query the configuration, or start and stop services on the server by using the same\nsession until the session is terminated.\n\nThis rule detects the remote creation or start of a service by correlating a `services.exe` network connection and the\nspawn of a child process.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Review login events (e.g., 4624) in the alert timeframe to identify the account used to perform this action. Use the\n`source.address` field to help identify the source system.\n- Review network events from the source system using the source port identified on the alert and try to identify the\nprogram used to initiate the action.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Validate if the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- Remote management software like SCCM may trigger this rule. If noisy on your environment, consider adding exceptions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-scmr/705b624a-13de-43cc-b8a2-99573da3635f"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence with maxspan=1s\n [network where process.name : \"services.exe\" and\n network.direction : (\"incoming\", \"ingress\") and network.transport == \"tcp\" and\n source.port >= 49152 and destination.port >= 49152 and source.ip != \"127.0.0.1\" and source.ip != \"::1\"\n ] by host.id, process.entity_id\n\n [process where event.type == \"start\" and process.parent.name : \"services.exe\" and \n not (process.name : \"svchost.exe\" and process.args : \"tiledatamodelsvc\") and\n not (process.name : \"msiexec.exe\" and process.args : \"/V\") and\n not process.executable :\n (\"?:\\\\Windows\\\\ADCR_Agent\\\\adcrsvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\VSSVC.exe\",\n \"?:\\\\Windows\\\\servicing\\\\TrustedInstaller.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Windows\\\\PSEXESVC.EXE\",\n \"?:\\\\Windows\\\\System32\\\\sppsvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\wbem\\\\WmiApSrv.exe\",\n \"?:\\\\WINDOWS\\\\RemoteAuditService.exe\",\n \"?:\\\\Windows\\\\VeeamVssSupport\\\\VeeamGuestHelper.exe\",\n \"?:\\\\Windows\\\\VeeamLogShipper\\\\VeeamLogShipper.exe\",\n \"?:\\\\Windows\\\\CAInvokerService.exe\",\n \"?:\\\\Windows\\\\System32\\\\upfc.exe\",\n \"?:\\\\Windows\\\\AdminArsenal\\\\PDQ*.exe\",\n \"?:\\\\Windows\\\\System32\\\\vds.exe\",\n \"?:\\\\Windows\\\\Veeam\\\\Backup\\\\VeeamDeploymentSvc.exe\",\n \"?:\\\\Windows\\\\ProPatches\\\\Scheduler\\\\STSchedEx.exe\",\n \"?:\\\\Windows\\\\System32\\\\certsrv.exe\",\n \"?:\\\\Windows\\\\eset-remote-install-service.exe\",\n \"?:\\\\Pella Corporation\\\\Pella Order Management\\\\GPAutoSvc.exe\",\n \"?:\\\\Pella Corporation\\\\OSCToGPAutoService\\\\OSCToGPAutoSvc.exe\",\n \"?:\\\\Pella Corporation\\\\Pella Order Management\\\\GPAutoSvc.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\NwxExeSvc\\\\NwxExeSvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\taskhostex.exe\")\n ] by host.id, process.parent.entity_id\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]},"id":"aa9a274d-6b53-424d-ac5e-cb8ca4251650:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ab75c24b-2502-43a0-bf7c-e60e662c811e:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ab75c24b-2502-43a0-bf7c-e60e662c811e:102.0.0.json new file mode 100644 index 0000000000000..9453599b7a6ea --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ab75c24b-2502-43a0-bf7c-e60e662c811e:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote Execution via File Shares v102.0.0","rule_id":"ab75c24b-2502-43a0-bf7c-e60e662c811e:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a file that was created by the virtual system process. This may indicate lateral movement via network file shares.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote Execution via File Shares\n\nAdversaries can use network shares to host tooling to support the compromise of other hosts in the environment. These\ntools can include discovery utilities, credential dumpers, malware, etc.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Review adjacent login events (e.g., 4624) in the alert timeframe to identify the account used to perform this action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity can happen legitimately. Consider adding exceptions if it is expected and noisy in your environment.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Review the privileges needed to write to the network share and restrict write access as needed.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://blog.menasec.net/2020/08/new-trick-to-detect-lateral-movement.html"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"sequence with maxspan=1m\n [file where event.type in (\"creation\", \"change\") and process.pid == 4 and file.extension : \"exe\"] by host.id, file.path\n [process where event.type == \"start\"] by host.id, process.executable\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"}]},"id":"ab75c24b-2502-43a0-bf7c-e60e662c811e:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ab75c24b-2502-43a0-bf7c-e60e662c811e:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ab75c24b-2502-43a0-bf7c-e60e662c811e:102.0.1.json new file mode 100644 index 0000000000000..7b76c8dffae9b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ab75c24b-2502-43a0-bf7c-e60e662c811e:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote Execution via File Shares v102.0.1","rule_id":"ab75c24b-2502-43a0-bf7c-e60e662c811e:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a file that was created by the virtual system process. This may indicate lateral movement via network file shares.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote Execution via File Shares\n\nAdversaries can use network shares to host tooling to support the compromise of other hosts in the environment. These\ntools can include discovery utilities, credential dumpers, malware, etc.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Review adjacent login events (e.g., 4624) in the alert timeframe to identify the account used to perform this action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity can happen legitimately. Consider adding exceptions if it is expected and noisy in your environment.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Review the privileges needed to write to the network share and restrict write access as needed.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://blog.menasec.net/2020/08/new-trick-to-detect-lateral-movement.html"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"sequence with maxspan=1m\n [file where event.type in (\"creation\", \"change\") and process.pid == 4 and file.extension : \"exe\"] by host.id, file.path\n [process where event.type == \"start\"] by host.id, process.executable\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"}]},"id":"ab75c24b-2502-43a0-bf7c-e60e662c811e:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ab75c24b-2502-43a0-bf7c-e60e662c811e:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ab75c24b-2502-43a0-bf7c-e60e662c811e:102.0.2.json new file mode 100644 index 0000000000000..10318ff767f3e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ab75c24b-2502-43a0-bf7c-e60e662c811e:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote Execution via File Shares v102.0.2","rule_id":"ab75c24b-2502-43a0-bf7c-e60e662c811e:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a file that was created by the virtual system process. This may indicate lateral movement via network file shares.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote Execution via File Shares\n\nAdversaries can use network shares to host tooling to support the compromise of other hosts in the environment. These\ntools can include discovery utilities, credential dumpers, malware, etc.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Review adjacent login events (e.g., 4624) in the alert timeframe to identify the account used to perform this action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity can happen legitimately. Consider adding exceptions if it is expected and noisy in your environment.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Review the privileges needed to write to the network share and restrict write access as needed.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","references":["https://blog.menasec.net/2020/08/new-trick-to-detect-lateral-movement.html"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"sequence with maxspan=1m\n [file where event.type in (\"creation\", \"change\") and process.pid == 4 and file.extension : \"exe\"] by host.id, file.path\n [process where event.type == \"start\"] by host.id, process.executable\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"}]},"id":"ab75c24b-2502-43a0-bf7c-e60e662c811e:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/abae61a8-c560-4dbd-acca-1e1438bff36b:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/abae61a8-c560-4dbd-acca-1e1438bff36b:100.0.0.json new file mode 100644 index 0000000000000..53aa73d46d1fb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/abae61a8-c560-4dbd-acca-1e1438bff36b:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Windows Process Calling the Metadata Service v100.0.0","rule_id":"abae61a8-c560-4dbd-acca-1e1438bff36b:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for anomalous access to the metadata service by an unusual process. The metadata service may be targeted in order to harvest credentials or user data scripts containing secrets.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program or one that runs very rarely as part of a monthly or quarterly workflow could trigger this detection rule."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Windows","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.005","name":"Cloud Instance Metadata API","reference":"https://attack.mitre.org/techniques/T1552/005/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_rare_metadata_process"],"type":"machine_learning"},"id":"abae61a8-c560-4dbd-acca-1e1438bff36b:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/abae61a8-c560-4dbd-acca-1e1438bff36b:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/abae61a8-c560-4dbd-acca-1e1438bff36b:100.0.1.json new file mode 100644 index 0000000000000..1ebe214a1922d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/abae61a8-c560-4dbd-acca-1e1438bff36b:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Windows Process Calling the Metadata Service v100.0.1","rule_id":"abae61a8-c560-4dbd-acca-1e1438bff36b:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for anomalous access to the metadata service by an unusual process. The metadata service may be targeted in order to harvest credentials or user data scripts containing secrets.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program or one that runs very rarely as part of a monthly or quarterly workflow could trigger this detection rule."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Windows","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.005","name":"Cloud Instance Metadata API","reference":"https://attack.mitre.org/techniques/T1552/005/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_rare_metadata_process"],"type":"machine_learning"},"id":"abae61a8-c560-4dbd-acca-1e1438bff36b:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/abae61a8-c560-4dbd-acca-1e1438bff36b:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/abae61a8-c560-4dbd-acca-1e1438bff36b:100.0.2.json new file mode 100644 index 0000000000000..5fa9faa8bc25f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/abae61a8-c560-4dbd-acca-1e1438bff36b:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Windows Process Calling the Metadata Service v100.0.2","rule_id":"abae61a8-c560-4dbd-acca-1e1438bff36b:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for anomalous access to the metadata service by an unusual process. The metadata service may be targeted in order to harvest credentials or user data scripts containing secrets.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program or one that runs very rarely as part of a monthly or quarterly workflow could trigger this detection rule."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Windows","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.005","name":"Cloud Instance Metadata API","reference":"https://attack.mitre.org/techniques/T1552/005/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_rare_metadata_process"],"type":"machine_learning"},"id":"abae61a8-c560-4dbd-acca-1e1438bff36b:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ac412404-57a5-476f-858f-4e8fbb4f48d8:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ac412404-57a5-476f-858f-4e8fbb4f48d8:101.0.0.json new file mode 100644 index 0000000000000..e519b07bc741b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ac412404-57a5-476f-858f-4e8fbb4f48d8:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Persistence via Login Hook v101.0.0","rule_id":"ac412404-57a5-476f-858f-4e8fbb4f48d8:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of the login window property list (plist). Adversaries may modify plist files to run a program during system boot or user login for persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\nStarting in Mac OS X 10.7 (Lion), users can specify certain applications to be re-opened when a user reboots their machine. This can be abused to establish or maintain persistence on a compromised system.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/D00MFist/PersistentJXA/blob/master/LoginScript.js"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1647","name":"Plist File Modification","reference":"https://attack.mitre.org/techniques/T1647/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:\"file\" and not event.type:\"deletion\" and\n file.name:\"com.apple.loginwindow.plist\" and\n process.name:(* and not (systemmigrationd or DesktopServicesHelper or diskmanagementd or rsync or launchd or cfprefsd or xpcproxy or ManagedClient or MCXCompositor or backupd or \"iMazing Profile Editor\"\n))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"ac412404-57a5-476f-858f-4e8fbb4f48d8:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ac412404-57a5-476f-858f-4e8fbb4f48d8:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ac412404-57a5-476f-858f-4e8fbb4f48d8:101.0.1.json new file mode 100644 index 0000000000000..9ed96e33a1ed0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ac412404-57a5-476f-858f-4e8fbb4f48d8:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Persistence via Login Hook v101.0.1","rule_id":"ac412404-57a5-476f-858f-4e8fbb4f48d8:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of the login window property list (plist). Adversaries may modify plist files to run a program during system boot or user login for persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\nStarting in Mac OS X 10.7 (Lion), users can specify certain applications to be re-opened when a user reboots their machine. This can be abused to establish or maintain persistence on a compromised system.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/D00MFist/PersistentJXA/blob/master/LoginScript.js"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1647","name":"Plist File Modification","reference":"https://attack.mitre.org/techniques/T1647/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:\"file\" and not event.type:\"deletion\" and\n file.name:\"com.apple.loginwindow.plist\" and\n process.name:(* and not (systemmigrationd or DesktopServicesHelper or diskmanagementd or rsync or launchd or cfprefsd or xpcproxy or ManagedClient or MCXCompositor or backupd or \"iMazing Profile Editor\"\n))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"ac412404-57a5-476f-858f-4e8fbb4f48d8:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ac412404-57a5-476f-858f-4e8fbb4f48d8:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ac412404-57a5-476f-858f-4e8fbb4f48d8:101.0.2.json new file mode 100644 index 0000000000000..7ec64eeae293c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ac412404-57a5-476f-858f-4e8fbb4f48d8:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Persistence via Login Hook v101.0.2","rule_id":"ac412404-57a5-476f-858f-4e8fbb4f48d8:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of the login window property list (plist). Adversaries may modify plist files to run a program during system boot or user login for persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\nStarting in Mac OS X 10.7 (Lion), users can specify certain applications to be re-opened when a user reboots their machine. This can be abused to establish or maintain persistence on a compromised system.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/D00MFist/PersistentJXA/blob/master/LoginScript.js"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1647","name":"Plist File Modification","reference":"https://attack.mitre.org/techniques/T1647/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:\"file\" and not event.type:\"deletion\" and\n file.name:\"com.apple.loginwindow.plist\" and\n process.name:(* and not (systemmigrationd or DesktopServicesHelper or diskmanagementd or rsync or launchd or cfprefsd or xpcproxy or ManagedClient or MCXCompositor or backupd or \"iMazing Profile Editor\"\n))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"ac412404-57a5-476f-858f-4e8fbb4f48d8:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ac5012b8-8da8-440b-aaaf-aedafdea2dff:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ac5012b8-8da8-440b-aaaf-aedafdea2dff:102.0.0.json new file mode 100644 index 0000000000000..645d0ce52132d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ac5012b8-8da8-440b-aaaf-aedafdea2dff:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious WerFault Child Process v102.0.0","rule_id":"ac5012b8-8da8-440b-aaaf-aedafdea2dff:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A suspicious WerFault child process was detected, which may indicate an attempt to run unnoticed. Verify process details such as command line, network connections, file writes and parent process details as well.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Custom Windows error reporting debugger or applications restarted by WerFault after a crash."],"from":"now-9m","references":["https://www.hexacorn.com/blog/2019/09/19/silentprocessexit-quick-look-under-the-hood/","https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES/blob/master/Persistence/persistence_SilentProcessExit_ImageHijack_sysmon_13_1.evtx","https://blog.menasec.net/2021/01/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"WerFault.exe\" and\n not process.name : (\"cofire.exe\",\n \"psr.exe\",\n \"VsJITDebugger.exe\",\n \"TTTracer.exe\",\n \"rundll32.exe\",\n \"LogiOptionsMgr.exe\") and\n not process.args : (\"/LOADSAVEDWINDOWS\",\n \"/restore\",\n \"RestartByRestartManager*\",\n \"--restarted\",\n \"createdump\",\n \"dontsend\",\n \"/watson\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"ac5012b8-8da8-440b-aaaf-aedafdea2dff:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ac5012b8-8da8-440b-aaaf-aedafdea2dff:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ac5012b8-8da8-440b-aaaf-aedafdea2dff:102.0.1.json new file mode 100644 index 0000000000000..3d3acd1aa1a82 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ac5012b8-8da8-440b-aaaf-aedafdea2dff:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious WerFault Child Process v102.0.1","rule_id":"ac5012b8-8da8-440b-aaaf-aedafdea2dff:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A suspicious WerFault child process was detected, which may indicate an attempt to run unnoticed. Verify process details such as command line, network connections, file writes and parent process details as well.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Custom Windows error reporting debugger or applications restarted by WerFault after a crash."],"from":"now-9m","references":["https://www.hexacorn.com/blog/2019/09/19/silentprocessexit-quick-look-under-the-hood/","https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES/blob/master/Persistence/persistence_SilentProcessExit_ImageHijack_sysmon_13_1.evtx","https://blog.menasec.net/2021/01/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"WerFault.exe\" and\n not process.name : (\"cofire.exe\",\n \"psr.exe\",\n \"VsJITDebugger.exe\",\n \"TTTracer.exe\",\n \"rundll32.exe\",\n \"LogiOptionsMgr.exe\") and\n not process.args : (\"/LOADSAVEDWINDOWS\",\n \"/restore\",\n \"RestartByRestartManager*\",\n \"--restarted\",\n \"createdump\",\n \"dontsend\",\n \"/watson\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"ac5012b8-8da8-440b-aaaf-aedafdea2dff:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ac5012b8-8da8-440b-aaaf-aedafdea2dff:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ac5012b8-8da8-440b-aaaf-aedafdea2dff:102.0.2.json new file mode 100644 index 0000000000000..3ec9ed2961bc3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ac5012b8-8da8-440b-aaaf-aedafdea2dff:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious WerFault Child Process v102.0.2","rule_id":"ac5012b8-8da8-440b-aaaf-aedafdea2dff:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A suspicious WerFault child process was detected, which may indicate an attempt to run unnoticed. Verify process details such as command line, network connections, file writes and parent process details as well.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Custom Windows error reporting debugger or applications restarted by WerFault after a crash."],"from":"now-9m","references":["https://www.hexacorn.com/blog/2019/09/19/silentprocessexit-quick-look-under-the-hood/","https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES/blob/master/Persistence/persistence_SilentProcessExit_ImageHijack_sysmon_13_1.evtx","https://blog.menasec.net/2021/01/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"WerFault.exe\" and\n not process.name : (\"cofire.exe\",\n \"psr.exe\",\n \"VsJITDebugger.exe\",\n \"TTTracer.exe\",\n \"rundll32.exe\",\n \"LogiOptionsMgr.exe\") and\n not process.args : (\"/LOADSAVEDWINDOWS\",\n \"/restore\",\n \"RestartByRestartManager*\",\n \"--restarted\",\n \"createdump\",\n \"dontsend\",\n \"/watson\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"ac5012b8-8da8-440b-aaaf-aedafdea2dff:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1:102.0.0.json new file mode 100644 index 0000000000000..344edbd6d0d05 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual AWS Command for a User v102.0.0","rule_id":"ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an AWS API command that, while not inherently suspicious or abnormal, is being made by a user context that does not normally use the command. This can be the result of compromised credentials or keys as someone uses a valid account to persist, move laterally, or exfiltrate data.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual AWS Command for a User\n\nCloudTrail logging provides visibility on actions taken within an AWS environment. By monitoring these events and\nunderstanding what is considered normal behavior within an organization, you can spot suspicious or malicious activity\nwhen deviations occur.\n\nThis rule uses a machine learning job to detect an AWS API command that while not inherently suspicious or abnormal, is\nbeing made by a user context that does not normally use the command. This can be the result of compromised credentials or\nkeys as someone uses a valid account to persist, move laterally, or exfiltrate data.\n\nDetection alerts from this rule indicate an AWS API command or method call that is rare and unusual for the calling IAM\nuser.\n\n#### Possible investigation steps\n\n- Identify the user account involved and the action performed. Verify whether it should perform this kind of action.\n - Examine the user identity in the `aws.cloudtrail.user_identity.arn` field and the access key ID in the\n `aws.cloudtrail.user_identity.access_key_id` field, which can help identify the precise user context.\n - The user agent details in the `user_agent.original` field may also indicate what kind of a client made the request.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, or network administrator activity.\n- Examine the request parameters. These might indicate the source of the program or the nature of its tasks.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Contact the account owner and confirm whether they are aware of this activity if suspicious.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- Examine the history of the command. If the command only manifested recently, it might be part of a new automation\nmodule or script. If it has a consistent cadence (for example, it appears in small numbers on a weekly or monthly cadence),\nit might be part of a housekeeping or maintenance process. You can find the command in the `event.action field` field.\n\n### Related Rules\n\n- Unusual City For an AWS Command - 809b70d3-e2c3-455e-af1b-2626a5a1a276\n- Unusual Country For an AWS Command - dca28dee-c999-400f-b640-50a081cc0fd1\n- Rare AWS Error Code - 19de8096-e2b0-4bd8-80c9-34a820813fff\n- Spike in AWS Error Messages - 78d3d8d9-b476-451d-a9e0-7a5addd70670\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"false_positives":["New or unusual user command activity can be due to manual troubleshooting or reconfiguration; changes in cloud automation scripts or workflows; adoption of new services; or changes in the way services are used."],"from":"now-2h","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Cloud","AWS","ML","Investigation Guide"],"anomaly_threshold":75,"machine_learning_job_id":"rare_method_for_a_username","type":"machine_learning","related_integrations":[],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1:102.0.1.json new file mode 100644 index 0000000000000..4bdf28e7a403a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual AWS Command for a User v102.0.1","rule_id":"ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an AWS API command that, while not inherently suspicious or abnormal, is being made by a user context that does not normally use the command. This can be the result of compromised credentials or keys as someone uses a valid account to persist, move laterally, or exfiltrate data.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual AWS Command for a User\n\nCloudTrail logging provides visibility on actions taken within an AWS environment. By monitoring these events and\nunderstanding what is considered normal behavior within an organization, you can spot suspicious or malicious activity\nwhen deviations occur.\n\nThis rule uses a machine learning job to detect an AWS API command that while not inherently suspicious or abnormal, is\nbeing made by a user context that does not normally use the command. This can be the result of compromised credentials or\nkeys as someone uses a valid account to persist, move laterally, or exfiltrate data.\n\nDetection alerts from this rule indicate an AWS API command or method call that is rare and unusual for the calling IAM\nuser.\n\n#### Possible investigation steps\n\n- Identify the user account involved and the action performed. Verify whether it should perform this kind of action.\n - Examine the user identity in the `aws.cloudtrail.user_identity.arn` field and the access key ID in the\n `aws.cloudtrail.user_identity.access_key_id` field, which can help identify the precise user context.\n - The user agent details in the `user_agent.original` field may also indicate what kind of a client made the request.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, or network administrator activity.\n- Examine the request parameters. These might indicate the source of the program or the nature of its tasks.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Contact the account owner and confirm whether they are aware of this activity if suspicious.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- Examine the history of the command. If the command only manifested recently, it might be part of a new automation\nmodule or script. If it has a consistent cadence (for example, it appears in small numbers on a weekly or monthly cadence),\nit might be part of a housekeeping or maintenance process. You can find the command in the `event.action field` field.\n\n### Related Rules\n\n- Unusual City For an AWS Command - 809b70d3-e2c3-455e-af1b-2626a5a1a276\n- Unusual Country For an AWS Command - dca28dee-c999-400f-b640-50a081cc0fd1\n- Rare AWS Error Code - 19de8096-e2b0-4bd8-80c9-34a820813fff\n- Spike in AWS Error Messages - 78d3d8d9-b476-451d-a9e0-7a5addd70670\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"false_positives":["New or unusual user command activity can be due to manual troubleshooting or reconfiguration; changes in cloud automation scripts or workflows; adoption of new services; or changes in the way services are used."],"from":"now-2h","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Cloud","AWS","ML","Investigation Guide"],"anomaly_threshold":75,"machine_learning_job_id":"rare_method_for_a_username","type":"machine_learning","related_integrations":[],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1:102.0.2.json new file mode 100644 index 0000000000000..7570ce9b1bb59 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual AWS Command for a User v102.0.2","rule_id":"ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an AWS API command that, while not inherently suspicious or abnormal, is being made by a user context that does not normally use the command. This can be the result of compromised credentials or keys as someone uses a valid account to persist, move laterally, or exfiltrate data.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual AWS Command for a User\n\nCloudTrail logging provides visibility on actions taken within an AWS environment. By monitoring these events and\nunderstanding what is considered normal behavior within an organization, you can spot suspicious or malicious activity\nwhen deviations occur.\n\nThis rule uses a machine learning job to detect an AWS API command that while not inherently suspicious or abnormal, is\nbeing made by a user context that does not normally use the command. This can be the result of compromised credentials or\nkeys as someone uses a valid account to persist, move laterally, or exfiltrate data.\n\nDetection alerts from this rule indicate an AWS API command or method call that is rare and unusual for the calling IAM\nuser.\n\n#### Possible investigation steps\n\n- Identify the user account involved and the action performed. Verify whether it should perform this kind of action.\n - Examine the user identity in the `aws.cloudtrail.user_identity.arn` field and the access key ID in the\n `aws.cloudtrail.user_identity.access_key_id` field, which can help identify the precise user context.\n - The user agent details in the `user_agent.original` field may also indicate what kind of a client made the request.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, or network administrator activity.\n- Examine the request parameters. These might indicate the source of the program or the nature of its tasks.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Contact the account owner and confirm whether they are aware of this activity if suspicious.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- Examine the history of the command. If the command only manifested recently, it might be part of a new automation\nmodule or script. If it has a consistent cadence (for example, it appears in small numbers on a weekly or monthly cadence),\nit might be part of a housekeeping or maintenance process. You can find the command in the `event.action field` field.\n\n### Related Rules\n\n- Unusual City For an AWS Command - 809b70d3-e2c3-455e-af1b-2626a5a1a276\n- Unusual Country For an AWS Command - dca28dee-c999-400f-b640-50a081cc0fd1\n- Rare AWS Error Code - 19de8096-e2b0-4bd8-80c9-34a820813fff\n- Spike in AWS Error Messages - 78d3d8d9-b476-451d-a9e0-7a5addd70670\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"false_positives":["New or unusual user command activity can be due to manual troubleshooting or reconfiguration; changes in cloud automation scripts or workflows; adoption of new services; or changes in the way services are used."],"from":"now-2h","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Cloud","AWS","ML","Investigation Guide"],"anomaly_threshold":75,"machine_learning_job_id":"rare_method_for_a_username","type":"machine_learning","related_integrations":[],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ac96ceb8-4399-4191-af1d-4feeac1f1f46:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ac96ceb8-4399-4191-af1d-4feeac1f1f46:102.0.0.json new file mode 100644 index 0000000000000..82a0493341a08 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ac96ceb8-4399-4191-af1d-4feeac1f1f46:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Invoke-Mimikatz PowerShell Script v102.0.0","rule_id":"ac96ceb8-4399-4191-af1d-4feeac1f1f46:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Mimikatz is a credential dumper capable of obtaining plaintext Windows account logins and passwords, along with many other features that make it useful for testing the security of networks. This rule detects Invoke-Mimikatz PowerShell script and alike.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Mimikatz PowerShell Activity\n\n[Mimikatz](https://github.com/gentilkiwi/mimikatz) is an open-source tool used to collect, decrypt, and/or use cached\ncredentials. This tool is commonly abused by adversaries during the post-compromise stage where adversaries have gained\nan initial foothold on an endpoint and are looking to elevate privileges and seek out additional authentication objects\nsuch as tokens/hashes/credentials that can then be used to move laterally and pivot across a network.\n\nThis rule looks for PowerShell scripts that load mimikatz in memory, like Invoke-Mimikataz, which are used to dump\ncredentials from the Local Security Authority Subsystem Service (LSASS). Any activity triggered from this rule should be\ntreated with high priority as it typically represents an active adversary.\n\nMore information about Mimikatz components and how to detect/prevent them can be found on [ADSecurity](https://adsecurity.org/?page_id=1821).\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n - Invoke-Mimitakz and alike scripts heavily use other capabilities covered by other detections described in the\n \"Related Rules\" section.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (for example, 4624) to the\ntarget host.\n - Examine network and security events in the environment to identify potential lateral movement using compromised credentials.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n- Suspicious .NET Reflection via PowerShell - e26f042e-c590-4e82-8e05-41e81bd822ad\n- PowerShell Suspicious Payload Encoded and Compressed - 81fe9dc6-a2d7-4192-a2d8-eed98afc766a\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n- Mimikatz Memssp Log File Detected - ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6\n- Modification of WDigest Security Provider - d703a5af-d5b0-43bd-8ddb-7a5d500b7da5\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Validate that cleartext passwords are disabled in memory for use with `WDigest`.\n- Look into preventing access to `LSASS` using capabilities such as LSA protection or antivirus/EDR tools that provide\nthis capability.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://attack.mitre.org/software/S0002/","https://raw.githubusercontent.com/EmpireProject/Empire/master/data/module_source/credentials/Invoke-Mimikatz.ps1","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\npowershell.file.script_block_text:(\n (DumpCreds and\n DumpCerts) or\n \"sekurlsa::logonpasswords\" or\n (\"crypto::certificates\" and\n \"CERT_SYSTEM_STORE_LOCAL_MACHINE\")\n)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"ac96ceb8-4399-4191-af1d-4feeac1f1f46:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ac96ceb8-4399-4191-af1d-4feeac1f1f46:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ac96ceb8-4399-4191-af1d-4feeac1f1f46:102.0.1.json new file mode 100644 index 0000000000000..6f95242b08a05 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ac96ceb8-4399-4191-af1d-4feeac1f1f46:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Invoke-Mimikatz PowerShell Script v102.0.1","rule_id":"ac96ceb8-4399-4191-af1d-4feeac1f1f46:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Mimikatz is a credential dumper capable of obtaining plaintext Windows account logins and passwords, along with many other features that make it useful for testing the security of networks. This rule detects Invoke-Mimikatz PowerShell script and alike.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Mimikatz PowerShell Activity\n\n[Mimikatz](https://github.com/gentilkiwi/mimikatz) is an open-source tool used to collect, decrypt, and/or use cached\ncredentials. This tool is commonly abused by adversaries during the post-compromise stage where adversaries have gained\nan initial foothold on an endpoint and are looking to elevate privileges and seek out additional authentication objects\nsuch as tokens/hashes/credentials that can then be used to move laterally and pivot across a network.\n\nThis rule looks for PowerShell scripts that load mimikatz in memory, like Invoke-Mimikataz, which are used to dump\ncredentials from the Local Security Authority Subsystem Service (LSASS). Any activity triggered from this rule should be\ntreated with high priority as it typically represents an active adversary.\n\nMore information about Mimikatz components and how to detect/prevent them can be found on [ADSecurity](https://adsecurity.org/?page_id=1821).\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n - Invoke-Mimitakz and alike scripts heavily use other capabilities covered by other detections described in the\n \"Related Rules\" section.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (for example, 4624) to the\ntarget host.\n - Examine network and security events in the environment to identify potential lateral movement using compromised credentials.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n- Suspicious .NET Reflection via PowerShell - e26f042e-c590-4e82-8e05-41e81bd822ad\n- PowerShell Suspicious Payload Encoded and Compressed - 81fe9dc6-a2d7-4192-a2d8-eed98afc766a\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n- Mimikatz Memssp Log File Detected - ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6\n- Modification of WDigest Security Provider - d703a5af-d5b0-43bd-8ddb-7a5d500b7da5\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Validate that cleartext passwords are disabled in memory for use with `WDigest`.\n- Look into preventing access to `LSASS` using capabilities such as LSA protection or antivirus/EDR tools that provide\nthis capability.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://attack.mitre.org/software/S0002/","https://raw.githubusercontent.com/EmpireProject/Empire/master/data/module_source/credentials/Invoke-Mimikatz.ps1","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\npowershell.file.script_block_text:(\n (DumpCreds and\n DumpCerts) or\n \"sekurlsa::logonpasswords\" or\n (\"crypto::certificates\" and\n \"CERT_SYSTEM_STORE_LOCAL_MACHINE\")\n)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"ac96ceb8-4399-4191-af1d-4feeac1f1f46:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ac96ceb8-4399-4191-af1d-4feeac1f1f46:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ac96ceb8-4399-4191-af1d-4feeac1f1f46:102.0.2.json new file mode 100644 index 0000000000000..af21e76f8e3e1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ac96ceb8-4399-4191-af1d-4feeac1f1f46:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Invoke-Mimikatz PowerShell Script v102.0.2","rule_id":"ac96ceb8-4399-4191-af1d-4feeac1f1f46:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Mimikatz is a credential dumper capable of obtaining plaintext Windows account logins and passwords, along with many other features that make it useful for testing the security of networks. This rule detects Invoke-Mimikatz PowerShell script and alike.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Mimikatz PowerShell Activity\n\n[Mimikatz](https://github.com/gentilkiwi/mimikatz) is an open-source tool used to collect, decrypt, and/or use cached\ncredentials. This tool is commonly abused by adversaries during the post-compromise stage where adversaries have gained\nan initial foothold on an endpoint and are looking to elevate privileges and seek out additional authentication objects\nsuch as tokens/hashes/credentials that can then be used to move laterally and pivot across a network.\n\nThis rule looks for PowerShell scripts that load mimikatz in memory, like Invoke-Mimikataz, which are used to dump\ncredentials from the Local Security Authority Subsystem Service (LSASS). Any activity triggered from this rule should be\ntreated with high priority as it typically represents an active adversary.\n\nMore information about Mimikatz components and how to detect/prevent them can be found on [ADSecurity](https://adsecurity.org/?page_id=1821).\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n - Invoke-Mimitakz and alike scripts heavily use other capabilities covered by other detections described in the\n \"Related Rules\" section.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (for example, 4624) to the\ntarget host.\n - Examine network and security events in the environment to identify potential lateral movement using compromised credentials.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n- Suspicious .NET Reflection via PowerShell - e26f042e-c590-4e82-8e05-41e81bd822ad\n- PowerShell Suspicious Payload Encoded and Compressed - 81fe9dc6-a2d7-4192-a2d8-eed98afc766a\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n- Mimikatz Memssp Log File Detected - ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6\n- Modification of WDigest Security Provider - d703a5af-d5b0-43bd-8ddb-7a5d500b7da5\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Validate that cleartext passwords are disabled in memory for use with `WDigest`.\n- Look into preventing access to `LSASS` using capabilities such as LSA protection or antivirus/EDR tools that provide\nthis capability.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://attack.mitre.org/software/S0002/","https://raw.githubusercontent.com/EmpireProject/Empire/master/data/module_source/credentials/Invoke-Mimikatz.ps1","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\npowershell.file.script_block_text:(\n (DumpCreds and\n DumpCerts) or\n \"sekurlsa::logonpasswords\" or\n (\"crypto::certificates\" and\n \"CERT_SYSTEM_STORE_LOCAL_MACHINE\")\n)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be configured (Enable).\n\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"ac96ceb8-4399-4191-af1d-4feeac1f1f46:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/acbc8bb9-2486-49a8-8779-45fb5f9a93ee:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/acbc8bb9-2486-49a8-8779-45fb5f9a93ee:101.0.0.json new file mode 100644 index 0000000000000..c419c92fadc78 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/acbc8bb9-2486-49a8-8779-45fb5f9a93ee:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace API Access Granted via Domain-Wide Delegation of Authority v101.0.0","rule_id":"acbc8bb9-2486-49a8-8779-45fb5f9a93ee:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a domain-wide delegation of authority is granted to a service account. Domain-wide delegation can be configured to grant third-party and internal applications to access the data of Google Workspace users. An adversary may configure domain-wide delegation to maintain access to their target’s data.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Domain-wide delegation of authority may be granted to service accounts by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://developers.google.com/admin-sdk/directory/v1/guides/delegation"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:AUTHORIZE_API_CLIENT_ACCESS\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"acbc8bb9-2486-49a8-8779-45fb5f9a93ee:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/acbc8bb9-2486-49a8-8779-45fb5f9a93ee:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/acbc8bb9-2486-49a8-8779-45fb5f9a93ee:101.0.1.json new file mode 100644 index 0000000000000..fa9282acaf995 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/acbc8bb9-2486-49a8-8779-45fb5f9a93ee:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace API Access Granted via Domain-Wide Delegation of Authority v101.0.1","rule_id":"acbc8bb9-2486-49a8-8779-45fb5f9a93ee:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a domain-wide delegation of authority is granted to a service account. Domain-wide delegation can be configured to grant third-party and internal applications to access the data of Google Workspace users. An adversary may configure domain-wide delegation to maintain access to their target’s data.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Domain-wide delegation of authority may be granted to service accounts by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://developers.google.com/admin-sdk/directory/v1/guides/delegation"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:AUTHORIZE_API_CLIENT_ACCESS\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"acbc8bb9-2486-49a8-8779-45fb5f9a93ee:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/acbc8bb9-2486-49a8-8779-45fb5f9a93ee:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/acbc8bb9-2486-49a8-8779-45fb5f9a93ee:101.0.2.json new file mode 100644 index 0000000000000..c57aff1f2d277 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/acbc8bb9-2486-49a8-8779-45fb5f9a93ee:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace API Access Granted via Domain-Wide Delegation of Authority v101.0.2","rule_id":"acbc8bb9-2486-49a8-8779-45fb5f9a93ee:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a domain-wide delegation of authority is granted to a service account. Domain-wide delegation can be configured to grant third-party and internal applications to access the data of Google Workspace users. An adversary may configure domain-wide delegation to maintain access to their target’s data.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Domain-wide delegation of authority may be granted to service accounts by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://developers.google.com/admin-sdk/directory/v1/guides/delegation"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:AUTHORIZE_API_CLIENT_ACCESS\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"acbc8bb9-2486-49a8-8779-45fb5f9a93ee:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/acd611f3-2b93-47b3-a0a3-7723bcc46f6d:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/acd611f3-2b93-47b3-a0a3-7723bcc46f6d:100.0.0.json new file mode 100644 index 0000000000000..7a363821e4a91 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/acd611f3-2b93-47b3-a0a3-7723bcc46f6d:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Command and Control via Internet Explorer v100.0.0","rule_id":"acd611f3-2b93-47b3-a0a3-7723bcc46f6d:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies instances of Internet Explorer (iexplore.exe) being started via the Component Object Model (COM) making unusual network connections. Adversaries could abuse Internet Explorer via COM to avoid suspicious processes making network connections and bypass host-based firewall restrictions.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Processes such as MS Office using IEproxy to render HTML content."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1559","name":"Inter-Process Communication","reference":"https://attack.mitre.org/techniques/T1559/","subtechnique":[{"id":"T1559.001","name":"Component Object Model","reference":"https://attack.mitre.org/techniques/T1559/001/"}]}]}],"language":"eql","query":"sequence by host.id, user.name with maxspan = 5s\n [library where dll.name : \"IEProxy.dll\" and process.name : (\"rundll32.exe\", \"regsvr32.exe\")]\n [process where event.type == \"start\" and process.parent.name : \"iexplore.exe\" and process.parent.args : \"-Embedding\"]\n /* IE started via COM in normal conditions makes few connections, mainly to Microsoft and OCSP related domains, add FPs here */\n [network where network.protocol == \"dns\" and process.name : \"iexplore.exe\" and\n not dns.question.name :\n (\n \"*.microsoft.com\",\n \"*.digicert.com\",\n \"*.msocsp.com\",\n \"*.windowsupdate.com\",\n \"*.bing.com\",\n \"*.identrust.com\",\n \"*.sharepoint.com\",\n \"*.office365.com\",\n \"*.office.com\"\n )\n ] /* with runs=5 */\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"dns.question.name","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"acd611f3-2b93-47b3-a0a3-7723bcc46f6d:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/acd611f3-2b93-47b3-a0a3-7723bcc46f6d:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/acd611f3-2b93-47b3-a0a3-7723bcc46f6d:100.0.1.json new file mode 100644 index 0000000000000..59bb638440a60 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/acd611f3-2b93-47b3-a0a3-7723bcc46f6d:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Command and Control via Internet Explorer v100.0.1","rule_id":"acd611f3-2b93-47b3-a0a3-7723bcc46f6d:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies instances of Internet Explorer (iexplore.exe) being started via the Component Object Model (COM) making unusual network connections. Adversaries could abuse Internet Explorer via COM to avoid suspicious processes making network connections and bypass host-based firewall restrictions.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Processes such as MS Office using IEproxy to render HTML content."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1559","name":"Inter-Process Communication","reference":"https://attack.mitre.org/techniques/T1559/","subtechnique":[{"id":"T1559.001","name":"Component Object Model","reference":"https://attack.mitre.org/techniques/T1559/001/"}]}]}],"language":"eql","query":"sequence by host.id, user.name with maxspan = 5s\n [library where dll.name : \"IEProxy.dll\" and process.name : (\"rundll32.exe\", \"regsvr32.exe\")]\n [process where event.type == \"start\" and process.parent.name : \"iexplore.exe\" and process.parent.args : \"-Embedding\"]\n /* IE started via COM in normal conditions makes few connections, mainly to Microsoft and OCSP related domains, add FPs here */\n [network where network.protocol == \"dns\" and process.name : \"iexplore.exe\" and\n not dns.question.name :\n (\n \"*.microsoft.com\",\n \"*.digicert.com\",\n \"*.msocsp.com\",\n \"*.windowsupdate.com\",\n \"*.bing.com\",\n \"*.identrust.com\",\n \"*.sharepoint.com\",\n \"*.office365.com\",\n \"*.office.com\"\n )\n ] /* with runs=5 */\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"dns.question.name","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"acd611f3-2b93-47b3-a0a3-7723bcc46f6d:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/acd611f3-2b93-47b3-a0a3-7723bcc46f6d:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/acd611f3-2b93-47b3-a0a3-7723bcc46f6d:100.0.2.json new file mode 100644 index 0000000000000..f06272ef36850 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/acd611f3-2b93-47b3-a0a3-7723bcc46f6d:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Command and Control via Internet Explorer v100.0.2","rule_id":"acd611f3-2b93-47b3-a0a3-7723bcc46f6d:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies instances of Internet Explorer (iexplore.exe) being started via the Component Object Model (COM) making unusual network connections. Adversaries could abuse Internet Explorer via COM to avoid suspicious processes making network connections and bypass host-based firewall restrictions.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Processes such as MS Office using IEproxy to render HTML content."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1559","name":"Inter-Process Communication","reference":"https://attack.mitre.org/techniques/T1559/","subtechnique":[{"id":"T1559.001","name":"Component Object Model","reference":"https://attack.mitre.org/techniques/T1559/001/"}]}]}],"language":"eql","query":"sequence by host.id, user.name with maxspan = 5s\n [library where dll.name : \"IEProxy.dll\" and process.name : (\"rundll32.exe\", \"regsvr32.exe\")]\n [process where event.type == \"start\" and process.parent.name : \"iexplore.exe\" and process.parent.args : \"-Embedding\"]\n /* IE started via COM in normal conditions makes few connections, mainly to Microsoft and OCSP related domains, add FPs here */\n [network where network.protocol == \"dns\" and process.name : \"iexplore.exe\" and\n not dns.question.name :\n (\n \"*.microsoft.com\",\n \"*.digicert.com\",\n \"*.msocsp.com\",\n \"*.windowsupdate.com\",\n \"*.bing.com\",\n \"*.identrust.com\",\n \"*.sharepoint.com\",\n \"*.office365.com\",\n \"*.office.com\"\n )\n ] /* with runs=5 */\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"dns.question.name","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"acd611f3-2b93-47b3-a0a3-7723bcc46f6d:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ace1e989-a541-44df-93a8-a8b0591b63c0:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ace1e989-a541-44df-93a8-a8b0591b63c0:101.0.0.json new file mode 100644 index 0000000000000..d80a6e05c4b8e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ace1e989-a541-44df-93a8-a8b0591b63c0:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential macOS SSH Brute Force Detected v101.0.0","rule_id":"ace1e989-a541-44df-93a8-a8b0591b63c0:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number (20) of macOS SSH KeyGen process executions from the same host. An adversary may attempt a brute force attack to obtain unauthorized access to user accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://themittenmac.com/detecting-ssh-activity-via-process-monitoring/"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.category:process and event.type:start and process.name:\"sshd-keygen-wrapper\" and process.parent.name:launchd\n","threshold":{"field":["host.id"],"value":20},"type":"threshold","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},"id":"ace1e989-a541-44df-93a8-a8b0591b63c0:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ace1e989-a541-44df-93a8-a8b0591b63c0:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ace1e989-a541-44df-93a8-a8b0591b63c0:101.0.1.json new file mode 100644 index 0000000000000..31a8d9e74f5fa --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ace1e989-a541-44df-93a8-a8b0591b63c0:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential macOS SSH Brute Force Detected v101.0.1","rule_id":"ace1e989-a541-44df-93a8-a8b0591b63c0:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number (20) of macOS SSH KeyGen process executions from the same host. An adversary may attempt a brute force attack to obtain unauthorized access to user accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://themittenmac.com/detecting-ssh-activity-via-process-monitoring/"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.category:process and event.type:start and process.name:\"sshd-keygen-wrapper\" and process.parent.name:launchd\n","threshold":{"field":["host.id"],"value":20},"type":"threshold","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},"id":"ace1e989-a541-44df-93a8-a8b0591b63c0:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ace1e989-a541-44df-93a8-a8b0591b63c0:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ace1e989-a541-44df-93a8-a8b0591b63c0:101.0.2.json new file mode 100644 index 0000000000000..f661c0a24fc8e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ace1e989-a541-44df-93a8-a8b0591b63c0:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential macOS SSH Brute Force Detected v101.0.2","rule_id":"ace1e989-a541-44df-93a8-a8b0591b63c0:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number (20) of macOS SSH KeyGen process executions from the same host. An adversary may attempt a brute force attack to obtain unauthorized access to user accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://themittenmac.com/detecting-ssh-activity-via-process-monitoring/"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.category:process and event.type:start and process.name:\"sshd-keygen-wrapper\" and process.parent.name:launchd\n","threshold":{"field":["host.id"],"value":20},"type":"threshold","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},"id":"ace1e989-a541-44df-93a8-a8b0591b63c0:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/acf738b5-b5b2-4acc-bad9-1e18ee234f40:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/acf738b5-b5b2-4acc-bad9-1e18ee234f40:100.0.0.json new file mode 100644 index 0000000000000..0a29504521c1b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/acf738b5-b5b2-4acc-bad9-1e18ee234f40:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Managed Code Hosting Process v100.0.0","rule_id":"acf738b5-b5b2-4acc-bad9-1e18ee234f40:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious managed code hosting process which could indicate code injection or other form of suspicious code execution.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://blog.menasec.net/2019/07/interesting-difr-traces-of-net-clr.html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=5m\n [process where event.type == \"start\" and\n process.name : (\"wscript.exe\", \"cscript.exe\", \"mshta.exe\", \"wmic.exe\", \"regsvr32.exe\", \"svchost.exe\", \"dllhost.exe\", \"cmstp.exe\")]\n [file where event.type != \"deletion\" and\n file.name : (\"wscript.exe.log\",\n \"cscript.exe\",\n \"mshta.exe.log\",\n \"wmic.exe.log\",\n \"svchost.exe.log\",\n \"dllhost.exe.log\",\n \"cmstp.exe.log\",\n \"regsvr32.exe.log\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"acf738b5-b5b2-4acc-bad9-1e18ee234f40:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/acf738b5-b5b2-4acc-bad9-1e18ee234f40:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/acf738b5-b5b2-4acc-bad9-1e18ee234f40:100.0.1.json new file mode 100644 index 0000000000000..210a1647fce16 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/acf738b5-b5b2-4acc-bad9-1e18ee234f40:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Managed Code Hosting Process v100.0.1","rule_id":"acf738b5-b5b2-4acc-bad9-1e18ee234f40:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious managed code hosting process which could indicate code injection or other form of suspicious code execution.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://blog.menasec.net/2019/07/interesting-difr-traces-of-net-clr.html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=5m\n [process where event.type == \"start\" and\n process.name : (\"wscript.exe\", \"cscript.exe\", \"mshta.exe\", \"wmic.exe\", \"regsvr32.exe\", \"svchost.exe\", \"dllhost.exe\", \"cmstp.exe\")]\n [file where event.type != \"deletion\" and\n file.name : (\"wscript.exe.log\",\n \"cscript.exe\",\n \"mshta.exe.log\",\n \"wmic.exe.log\",\n \"svchost.exe.log\",\n \"dllhost.exe.log\",\n \"cmstp.exe.log\",\n \"regsvr32.exe.log\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"acf738b5-b5b2-4acc-bad9-1e18ee234f40:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/acf738b5-b5b2-4acc-bad9-1e18ee234f40:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/acf738b5-b5b2-4acc-bad9-1e18ee234f40:100.0.2.json new file mode 100644 index 0000000000000..e65dea1a0ec09 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/acf738b5-b5b2-4acc-bad9-1e18ee234f40:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Managed Code Hosting Process v100.0.2","rule_id":"acf738b5-b5b2-4acc-bad9-1e18ee234f40:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious managed code hosting process which could indicate code injection or other form of suspicious code execution.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://blog.menasec.net/2019/07/interesting-difr-traces-of-net-clr.html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=5m\n [process where event.type == \"start\" and\n process.name : (\"wscript.exe\", \"cscript.exe\", \"mshta.exe\", \"wmic.exe\", \"regsvr32.exe\", \"svchost.exe\", \"dllhost.exe\", \"cmstp.exe\")]\n [file where event.type != \"deletion\" and\n file.name : (\"wscript.exe.log\",\n \"cscript.exe\",\n \"mshta.exe.log\",\n \"wmic.exe.log\",\n \"svchost.exe.log\",\n \"dllhost.exe.log\",\n \"cmstp.exe.log\",\n \"regsvr32.exe.log\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"acf738b5-b5b2-4acc-bad9-1e18ee234f40:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ad0d2742-9a49-11ec-8d6b-acde48001122:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ad0d2742-9a49-11ec-8d6b-acde48001122:102.0.0.json new file mode 100644 index 0000000000000..6df99897e58c2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ad0d2742-9a49-11ec-8d6b-acde48001122:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Signed Proxy Execution via MS Work Folders v102.0.0","rule_id":"ad0d2742-9a49-11ec-8d6b-acde48001122:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of Windows Work Folders to execute a potentially masqueraded control.exe file in the current working directory. Misuse of Windows Work Folders could indicate malicious activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Signed Proxy Execution via MS Work Folders\n\nWork Folders is a role service for file servers running Windows Server that provides a consistent way for users to access\ntheir work files from their PCs and devices. This allows users to store work files and access them from anywhere. When\ncalled, Work Folders will automatically execute any Portable Executable (PE) named control.exe as an argument before\naccessing the synced share.\n\nUsing Work Folders to execute a masqueraded control.exe could allow an adversary to bypass application controls and\nincrease privileges.\n\n#### Possible investigation steps\n\n- Investigate the process tree starting with parent process WorkFolders.exe and child process control.exe to determine\nif other child processes spawned during execution.\n- Trace the activity related to the control.exe binary to identify any continuing intrusion activity on the host.\n- Examine the location of the WorkFolders.exe binary to determine if it was copied to the location of the control.exe\nbinary. It resides in the System32 directory by default.\n- Review the control.exe binary executed with Work Folders to determine maliciousness such as additional host activity\nor network traffic.\n- Determine if control.exe was synced to sync share, indicating potential lateral movement.\n- Review how control.exe was originally delivered on the host, such as emailed, downloaded from the web, or written to\ndisk from a separate binary.\n\n### False positive analysis\n\n- Windows Work Folders are used legitimately by end users and administrators for file sharing and syncing but not in the\ninstance where a suspicious control.exe is passed as an argument.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Review the Work Folders synced share to determine if the control.exe was shared and if so remove it.\n- If no lateral movement was identified during investigation, take the affected host offline if possible and remove the\ncontrol.exe binary as well as any additional artifacts identified during investigation.\n- Review integrating Windows Information Protection (WIP) to enforce data protection by encrypting the data on PCs using\nWork Folders.\n- Confirm with the user whether this was expected or not, and reset their password.","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows-server/storage/work-folders/work-folders-overview","https://twitter.com/ElliotKillick/status/1449812843772227588","https://lolbas-project.github.io/lolbas/Binaries/WorkFolders/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]}],"language":"eql","query":"process where event.type == \"start\" \n and process.name : \"control.exe\" and process.parent.name : \"WorkFolders.exe\"\n and not process.executable : (\"?:\\\\Windows\\\\System32\\\\control.exe\", \"?:\\\\Windows\\\\SysWOW64\\\\control.exe\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"ad0d2742-9a49-11ec-8d6b-acde48001122:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ad0d2742-9a49-11ec-8d6b-acde48001122:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ad0d2742-9a49-11ec-8d6b-acde48001122:102.0.1.json new file mode 100644 index 0000000000000..52f131c469f56 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ad0d2742-9a49-11ec-8d6b-acde48001122:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Signed Proxy Execution via MS Work Folders v102.0.1","rule_id":"ad0d2742-9a49-11ec-8d6b-acde48001122:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of Windows Work Folders to execute a potentially masqueraded control.exe file in the current working directory. Misuse of Windows Work Folders could indicate malicious activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Signed Proxy Execution via MS Work Folders\n\nWork Folders is a role service for file servers running Windows Server that provides a consistent way for users to access\ntheir work files from their PCs and devices. This allows users to store work files and access them from anywhere. When\ncalled, Work Folders will automatically execute any Portable Executable (PE) named control.exe as an argument before\naccessing the synced share.\n\nUsing Work Folders to execute a masqueraded control.exe could allow an adversary to bypass application controls and\nincrease privileges.\n\n#### Possible investigation steps\n\n- Investigate the process tree starting with parent process WorkFolders.exe and child process control.exe to determine\nif other child processes spawned during execution.\n- Trace the activity related to the control.exe binary to identify any continuing intrusion activity on the host.\n- Examine the location of the WorkFolders.exe binary to determine if it was copied to the location of the control.exe\nbinary. It resides in the System32 directory by default.\n- Review the control.exe binary executed with Work Folders to determine maliciousness such as additional host activity\nor network traffic.\n- Determine if control.exe was synced to sync share, indicating potential lateral movement.\n- Review how control.exe was originally delivered on the host, such as emailed, downloaded from the web, or written to\ndisk from a separate binary.\n\n### False positive analysis\n\n- Windows Work Folders are used legitimately by end users and administrators for file sharing and syncing but not in the\ninstance where a suspicious control.exe is passed as an argument.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Review the Work Folders synced share to determine if the control.exe was shared and if so remove it.\n- If no lateral movement was identified during investigation, take the affected host offline if possible and remove the\ncontrol.exe binary as well as any additional artifacts identified during investigation.\n- Review integrating Windows Information Protection (WIP) to enforce data protection by encrypting the data on PCs using\nWork Folders.\n- Confirm with the user whether this was expected or not, and reset their password.","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows-server/storage/work-folders/work-folders-overview","https://twitter.com/ElliotKillick/status/1449812843772227588","https://lolbas-project.github.io/lolbas/Binaries/WorkFolders/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]}],"language":"eql","query":"process where event.type == \"start\" \n and process.name : \"control.exe\" and process.parent.name : \"WorkFolders.exe\"\n and not process.executable : (\"?:\\\\Windows\\\\System32\\\\control.exe\", \"?:\\\\Windows\\\\SysWOW64\\\\control.exe\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"ad0d2742-9a49-11ec-8d6b-acde48001122:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ad0d2742-9a49-11ec-8d6b-acde48001122:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ad0d2742-9a49-11ec-8d6b-acde48001122:102.0.2.json new file mode 100644 index 0000000000000..e93979c7854ad --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ad0d2742-9a49-11ec-8d6b-acde48001122:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Signed Proxy Execution via MS Work Folders v102.0.2","rule_id":"ad0d2742-9a49-11ec-8d6b-acde48001122:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of Windows Work Folders to execute a potentially masqueraded control.exe file in the current working directory. Misuse of Windows Work Folders could indicate malicious activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Signed Proxy Execution via MS Work Folders\n\nWork Folders is a role service for file servers running Windows Server that provides a consistent way for users to access\ntheir work files from their PCs and devices. This allows users to store work files and access them from anywhere. When\ncalled, Work Folders will automatically execute any Portable Executable (PE) named control.exe as an argument before\naccessing the synced share.\n\nUsing Work Folders to execute a masqueraded control.exe could allow an adversary to bypass application controls and\nincrease privileges.\n\n#### Possible investigation steps\n\n- Investigate the process tree starting with parent process WorkFolders.exe and child process control.exe to determine\nif other child processes spawned during execution.\n- Trace the activity related to the control.exe binary to identify any continuing intrusion activity on the host.\n- Examine the location of the WorkFolders.exe binary to determine if it was copied to the location of the control.exe\nbinary. It resides in the System32 directory by default.\n- Review the control.exe binary executed with Work Folders to determine maliciousness such as additional host activity\nor network traffic.\n- Determine if control.exe was synced to sync share, indicating potential lateral movement.\n- Review how control.exe was originally delivered on the host, such as emailed, downloaded from the web, or written to\ndisk from a separate binary.\n\n### False positive analysis\n\n- Windows Work Folders are used legitimately by end users and administrators for file sharing and syncing but not in the\ninstance where a suspicious control.exe is passed as an argument.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Review the Work Folders synced share to determine if the control.exe was shared and if so remove it.\n- If no lateral movement was identified during investigation, take the affected host offline if possible and remove the\ncontrol.exe binary as well as any additional artifacts identified during investigation.\n- Review integrating Windows Information Protection (WIP) to enforce data protection by encrypting the data on PCs using\nWork Folders.\n- Confirm with the user whether this was expected or not, and reset their password.","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows-server/storage/work-folders/work-folders-overview","https://twitter.com/ElliotKillick/status/1449812843772227588","https://lolbas-project.github.io/lolbas/Binaries/WorkFolders/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]}],"language":"eql","query":"process where event.type == \"start\" \n and process.name : \"control.exe\" and process.parent.name : \"WorkFolders.exe\"\n and not process.executable : (\"?:\\\\Windows\\\\System32\\\\control.exe\", \"?:\\\\Windows\\\\SysWOW64\\\\control.exe\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"ad0d2742-9a49-11ec-8d6b-acde48001122:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ad3f2807-2b3e-47d7-b282-f84acbbe14be:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ad3f2807-2b3e-47d7-b282-f84acbbe14be:101.0.0.json new file mode 100644 index 0000000000000..bdf994cbf4e6f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ad3f2807-2b3e-47d7-b282-f84acbbe14be:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace Custom Admin Role Created v101.0.0","rule_id":"ad3f2807-2b3e-47d7-b282-f84acbbe14be:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a custom admin role is created in Google Workspace. An adversary may create a custom admin role in order to elevate the permissions of other user accounts and persist in their target’s environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Custom Google Workspace admin roles may be created by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/2406043?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:CREATE_ROLE\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"ad3f2807-2b3e-47d7-b282-f84acbbe14be:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ad3f2807-2b3e-47d7-b282-f84acbbe14be:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ad3f2807-2b3e-47d7-b282-f84acbbe14be:101.0.1.json new file mode 100644 index 0000000000000..1fb0db4cf9c67 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ad3f2807-2b3e-47d7-b282-f84acbbe14be:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace Custom Admin Role Created v101.0.1","rule_id":"ad3f2807-2b3e-47d7-b282-f84acbbe14be:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a custom admin role is created in Google Workspace. An adversary may create a custom admin role in order to elevate the permissions of other user accounts and persist in their target’s environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Custom Google Workspace admin roles may be created by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/2406043?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:CREATE_ROLE\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"ad3f2807-2b3e-47d7-b282-f84acbbe14be:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ad3f2807-2b3e-47d7-b282-f84acbbe14be:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ad3f2807-2b3e-47d7-b282-f84acbbe14be:101.0.2.json new file mode 100644 index 0000000000000..897fa1b847147 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ad3f2807-2b3e-47d7-b282-f84acbbe14be:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace Custom Admin Role Created v101.0.2","rule_id":"ad3f2807-2b3e-47d7-b282-f84acbbe14be:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a custom admin role is created in Google Workspace. An adversary may create a custom admin role in order to elevate the permissions of other user accounts and persist in their target’s environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Custom Google Workspace admin roles may be created by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/2406043?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:CREATE_ROLE\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"ad3f2807-2b3e-47d7-b282-f84acbbe14be:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ad84d445-b1ce-4377-82d9-7c633f28bf9a:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ad84d445-b1ce-4377-82d9-7c633f28bf9a:102.0.0.json new file mode 100644 index 0000000000000..4b60471a89daf --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ad84d445-b1ce-4377-82d9-7c633f28bf9a:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Portable Executable Encoded in Powershell Script v102.0.0","rule_id":"ad84d445-b1ce-4377-82d9-7c633f28bf9a:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the presence of a portable executable (PE) in a PowerShell script by looking for its encoded header. Attackers embed PEs into PowerShell scripts to inject them into memory, avoiding defences by not writing to disk.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Portable Executable Encoded in Powershell Script\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can abuse PowerShell in-memory capabilities to inject executables into memory without touching the disk,\nbypassing file-based security protections. These executables are generally base64 encoded.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the script using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- Suspicious .NET Reflection via PowerShell - e26f042e-c590-4e82-8e05-41e81bd822ad\n- PowerShell Suspicious Payload Encoded and Compressed - 81fe9dc6-a2d7-4192-a2d8-eed98afc766a\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Reimage the host operating system or restore the compromised files to clean versions.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n TVqQAAMAAAAEAAAA\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"ad84d445-b1ce-4377-82d9-7c633f28bf9a:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ad84d445-b1ce-4377-82d9-7c633f28bf9a:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ad84d445-b1ce-4377-82d9-7c633f28bf9a:102.0.1.json new file mode 100644 index 0000000000000..6e379e0442a4d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ad84d445-b1ce-4377-82d9-7c633f28bf9a:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Portable Executable Encoded in Powershell Script v102.0.1","rule_id":"ad84d445-b1ce-4377-82d9-7c633f28bf9a:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the presence of a portable executable (PE) in a PowerShell script by looking for its encoded header. Attackers embed PEs into PowerShell scripts to inject them into memory, avoiding defences by not writing to disk.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Portable Executable Encoded in Powershell Script\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can abuse PowerShell in-memory capabilities to inject executables into memory without touching the disk,\nbypassing file-based security protections. These executables are generally base64 encoded.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the script using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- Suspicious .NET Reflection via PowerShell - e26f042e-c590-4e82-8e05-41e81bd822ad\n- PowerShell Suspicious Payload Encoded and Compressed - 81fe9dc6-a2d7-4192-a2d8-eed98afc766a\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Reimage the host operating system or restore the compromised files to clean versions.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n TVqQAAMAAAAEAAAA\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"ad84d445-b1ce-4377-82d9-7c633f28bf9a:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ad84d445-b1ce-4377-82d9-7c633f28bf9a:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ad84d445-b1ce-4377-82d9-7c633f28bf9a:102.0.2.json new file mode 100644 index 0000000000000..d1eeb1c43ad06 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ad84d445-b1ce-4377-82d9-7c633f28bf9a:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Portable Executable Encoded in Powershell Script v102.0.2","rule_id":"ad84d445-b1ce-4377-82d9-7c633f28bf9a:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the presence of a portable executable (PE) in a PowerShell script by looking for its encoded header. Attackers embed PEs into PowerShell scripts to inject them into memory, avoiding defences by not writing to disk.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Portable Executable Encoded in Powershell Script\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can abuse PowerShell in-memory capabilities to inject executables into memory without touching the disk,\nbypassing file-based security protections. These executables are generally base64 encoded.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the script using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- Suspicious .NET Reflection via PowerShell - e26f042e-c590-4e82-8e05-41e81bd822ad\n- PowerShell Suspicious Payload Encoded and Compressed - 81fe9dc6-a2d7-4192-a2d8-eed98afc766a\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Reimage the host operating system or restore the compromised files to clean versions.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0109_windows_powershell_script_block_log.md"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n TVqQAAMAAAAEAAAA\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"ad84d445-b1ce-4377-82d9-7c633f28bf9a:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ad88231f-e2ab-491c-8fc6-64746da26cfe:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ad88231f-e2ab-491c-8fc6-64746da26cfe:100.0.0.json new file mode 100644 index 0000000000000..2ceeed60c81a1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ad88231f-e2ab-491c-8fc6-64746da26cfe:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kerberos Cached Credentials Dumping v100.0.0","rule_id":"ad88231f-e2ab-491c-8fc6-64746da26cfe:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the Kerberos credential cache (kcc) utility to dump locally cached Kerberos tickets. Adversaries may attempt to dump credential material in the form of tickets that can be leveraged for lateral movement.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/EmpireProject/EmPyre/blob/master/lib/modules/collection/osx/kerberosdump.py","https://opensource.apple.com/source/Heimdal/Heimdal-323.12/kuser/kcc-commands.in.auto.html"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"},{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/","subtechnique":[{"id":"T1558.003","name":"Kerberoasting","reference":"https://attack.mitre.org/techniques/T1558/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:kcc and\n process.args:copy_cred_cache\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"ad88231f-e2ab-491c-8fc6-64746da26cfe:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ad88231f-e2ab-491c-8fc6-64746da26cfe:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ad88231f-e2ab-491c-8fc6-64746da26cfe:100.0.1.json new file mode 100644 index 0000000000000..bfcc688a96ffc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ad88231f-e2ab-491c-8fc6-64746da26cfe:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kerberos Cached Credentials Dumping v100.0.1","rule_id":"ad88231f-e2ab-491c-8fc6-64746da26cfe:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the Kerberos credential cache (kcc) utility to dump locally cached Kerberos tickets. Adversaries may attempt to dump credential material in the form of tickets that can be leveraged for lateral movement.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/EmpireProject/EmPyre/blob/master/lib/modules/collection/osx/kerberosdump.py","https://opensource.apple.com/source/Heimdal/Heimdal-323.12/kuser/kcc-commands.in.auto.html"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"},{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/","subtechnique":[{"id":"T1558.003","name":"Kerberoasting","reference":"https://attack.mitre.org/techniques/T1558/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:kcc and\n process.args:copy_cred_cache\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"ad88231f-e2ab-491c-8fc6-64746da26cfe:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ad88231f-e2ab-491c-8fc6-64746da26cfe:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ad88231f-e2ab-491c-8fc6-64746da26cfe:100.0.2.json new file mode 100644 index 0000000000000..18f0b7d6c87a9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ad88231f-e2ab-491c-8fc6-64746da26cfe:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kerberos Cached Credentials Dumping v100.0.2","rule_id":"ad88231f-e2ab-491c-8fc6-64746da26cfe:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the Kerberos credential cache (kcc) utility to dump locally cached Kerberos tickets. Adversaries may attempt to dump credential material in the form of tickets that can be leveraged for lateral movement.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/EmpireProject/EmPyre/blob/master/lib/modules/collection/osx/kerberosdump.py","https://opensource.apple.com/source/Heimdal/Heimdal-323.12/kuser/kcc-commands.in.auto.html"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"},{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/","subtechnique":[{"id":"T1558.003","name":"Kerberoasting","reference":"https://attack.mitre.org/techniques/T1558/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:kcc and\n process.args:copy_cred_cache\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"ad88231f-e2ab-491c-8fc6-64746da26cfe:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/adb961e0-cb74-42a0-af9e-29fc41f88f5f:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/adb961e0-cb74-42a0-af9e-29fc41f88f5f:102.0.0.json new file mode 100644 index 0000000000000..40ea3bd83be00 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/adb961e0-cb74-42a0-af9e-29fc41f88f5f:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"File Transfer or Listener Established via Netcat v102.0.0","rule_id":"adb961e0-cb74-42a0-af9e-29fc41f88f5f:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A netcat process is engaging in network activity on a Linux host. Netcat is often used as a persistence mechanism by exporting a reverse shell or by serving a shell on a listening port. Netcat is also sometimes used for data exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Netcat Network Activity\n\nNetcat is a dual-use command line tool that can be used for various purposes, such as port scanning, file transfers, and\nconnection tests. Attackers can abuse its functionality for malicious purposes such creating bind shells or reverse\nshells to gain access to the target system.\n\nA reverse shell is a mechanism that's abused to connect back to an attacker-controlled system. It effectively redirects\nthe system's input and output and delivers a fully functional remote shell to the attacker. Even private systems are\nvulnerable since the connection is outgoing.\n\nA bind shell is a type of backdoor that attackers set up on the target host and binds to a specific port to listen for\nan incoming connection from the attacker.\n\nThis rule identifies potential reverse shell or bind shell activity using Netcat by checking for the execution of Netcat\nfollowed by a network connection.\n\n#### Possible investigation steps\n\n- Examine the command line to identify if the command is suspicious.\n- Extract and examine the target domain or IP address.\n - Check if the domain is newly registered or unexpected.\n - Check the reputation of the domain or IP address.\n - Scope other potentially compromised hosts in your environment by mapping hosts that also communicated with the\n domain or IP address.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, file modifications, and any\nspawned child processes.\n\n### False positive analysis\n\n- Netcat is a dual-use tool that can be used for benign or malicious activity. It is included in some Linux\ndistributions, so its presence is not necessarily suspicious. Some normal use of this program, while uncommon, may\noriginate from scripts, automation tools, and frameworks.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Block the identified indicators of compromise (IoCs).\n- Take actions to terminate processes and connections used by the attacker.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"false_positives":["Netcat is a dual-use tool that can be used for benign or malicious activity. Netcat is included in some Linux distributions so its presence is not necessarily suspicious. Some normal use of this program, while uncommon, may originate from scripts, automation tools, and frameworks."],"from":"now-9m","references":["http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet","https://www.sans.org/security-resources/sec560/netcat_cheat_sheet_v1.pdf","https://en.wikipedia.org/wiki/Netcat","https://www.hackers-arise.com/hacking-fundamentals","https://null-byte.wonderhowto.com/how-to/hack-like-pro-use-netcat-swiss-army-knife-hacking-tools-0148657/","https://levelup.gitconnected.com/ethical-hacking-part-15-netcat-nc-and-netcat-f6a8f7df43fd"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.004","name":"Unix Shell","reference":"https://attack.mitre.org/techniques/T1059/004/"}]}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name:(\"nc\",\"ncat\",\"netcat\",\"netcat.openbsd\",\"netcat.traditional\") and (\n /* bind shell to echo for command execution */\n (process.args:(\"-l\",\"-p\") and process.args:(\"-c\",\"echo\",\"$*\"))\n /* bind shell to specific port */\n or process.args:(\"-l\",\"-p\",\"-lp\")\n /* reverse shell to command-line interpreter used for command execution */\n or (process.args:(\"-e\") and process.args:(\"/bin/bash\",\"/bin/sh\"))\n /* file transfer via stdout */\n or process.args:(\">\",\"<\")\n /* file transfer via pipe */\n or (process.args:(\"|\") and process.args:(\"nc\",\"ncat\"))\n )]\n [network where (process.name == \"nc\" or process.name == \"ncat\" or process.name == \"netcat\" or\n process.name == \"netcat.openbsd\" or process.name == \"netcat.traditional\")]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"adb961e0-cb74-42a0-af9e-29fc41f88f5f:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/adb961e0-cb74-42a0-af9e-29fc41f88f5f:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/adb961e0-cb74-42a0-af9e-29fc41f88f5f:102.0.1.json new file mode 100644 index 0000000000000..69b278b62a3c6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/adb961e0-cb74-42a0-af9e-29fc41f88f5f:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"File Transfer or Listener Established via Netcat v102.0.1","rule_id":"adb961e0-cb74-42a0-af9e-29fc41f88f5f:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A netcat process is engaging in network activity on a Linux host. Netcat is often used as a persistence mechanism by exporting a reverse shell or by serving a shell on a listening port. Netcat is also sometimes used for data exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Netcat Network Activity\n\nNetcat is a dual-use command line tool that can be used for various purposes, such as port scanning, file transfers, and\nconnection tests. Attackers can abuse its functionality for malicious purposes such creating bind shells or reverse\nshells to gain access to the target system.\n\nA reverse shell is a mechanism that's abused to connect back to an attacker-controlled system. It effectively redirects\nthe system's input and output and delivers a fully functional remote shell to the attacker. Even private systems are\nvulnerable since the connection is outgoing.\n\nA bind shell is a type of backdoor that attackers set up on the target host and binds to a specific port to listen for\nan incoming connection from the attacker.\n\nThis rule identifies potential reverse shell or bind shell activity using Netcat by checking for the execution of Netcat\nfollowed by a network connection.\n\n#### Possible investigation steps\n\n- Examine the command line to identify if the command is suspicious.\n- Extract and examine the target domain or IP address.\n - Check if the domain is newly registered or unexpected.\n - Check the reputation of the domain or IP address.\n - Scope other potentially compromised hosts in your environment by mapping hosts that also communicated with the\n domain or IP address.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, file modifications, and any\nspawned child processes.\n\n### False positive analysis\n\n- Netcat is a dual-use tool that can be used for benign or malicious activity. It is included in some Linux\ndistributions, so its presence is not necessarily suspicious. Some normal use of this program, while uncommon, may\noriginate from scripts, automation tools, and frameworks.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Block the identified indicators of compromise (IoCs).\n- Take actions to terminate processes and connections used by the attacker.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"false_positives":["Netcat is a dual-use tool that can be used for benign or malicious activity. Netcat is included in some Linux distributions so its presence is not necessarily suspicious. Some normal use of this program, while uncommon, may originate from scripts, automation tools, and frameworks."],"from":"now-9m","references":["http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet","https://www.sans.org/security-resources/sec560/netcat_cheat_sheet_v1.pdf","https://en.wikipedia.org/wiki/Netcat","https://www.hackers-arise.com/hacking-fundamentals","https://null-byte.wonderhowto.com/how-to/hack-like-pro-use-netcat-swiss-army-knife-hacking-tools-0148657/","https://levelup.gitconnected.com/ethical-hacking-part-15-netcat-nc-and-netcat-f6a8f7df43fd"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.004","name":"Unix Shell","reference":"https://attack.mitre.org/techniques/T1059/004/"}]}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name:(\"nc\",\"ncat\",\"netcat\",\"netcat.openbsd\",\"netcat.traditional\") and (\n /* bind shell to echo for command execution */\n (process.args:(\"-l\",\"-p\") and process.args:(\"-c\",\"echo\",\"$*\"))\n /* bind shell to specific port */\n or process.args:(\"-l\",\"-p\",\"-lp\")\n /* reverse shell to command-line interpreter used for command execution */\n or (process.args:(\"-e\") and process.args:(\"/bin/bash\",\"/bin/sh\"))\n /* file transfer via stdout */\n or process.args:(\">\",\"<\")\n /* file transfer via pipe */\n or (process.args:(\"|\") and process.args:(\"nc\",\"ncat\"))\n )]\n [network where (process.name == \"nc\" or process.name == \"ncat\" or process.name == \"netcat\" or\n process.name == \"netcat.openbsd\" or process.name == \"netcat.traditional\")]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"adb961e0-cb74-42a0-af9e-29fc41f88f5f:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/adb961e0-cb74-42a0-af9e-29fc41f88f5f:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/adb961e0-cb74-42a0-af9e-29fc41f88f5f:102.0.2.json new file mode 100644 index 0000000000000..6fc38c72854f6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/adb961e0-cb74-42a0-af9e-29fc41f88f5f:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"File Transfer or Listener Established via Netcat v102.0.2","rule_id":"adb961e0-cb74-42a0-af9e-29fc41f88f5f:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A netcat process is engaging in network activity on a Linux host. Netcat is often used as a persistence mechanism by exporting a reverse shell or by serving a shell on a listening port. Netcat is also sometimes used for data exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Netcat Network Activity\n\nNetcat is a dual-use command line tool that can be used for various purposes, such as port scanning, file transfers, and\nconnection tests. Attackers can abuse its functionality for malicious purposes such creating bind shells or reverse\nshells to gain access to the target system.\n\nA reverse shell is a mechanism that's abused to connect back to an attacker-controlled system. It effectively redirects\nthe system's input and output and delivers a fully functional remote shell to the attacker. Even private systems are\nvulnerable since the connection is outgoing.\n\nA bind shell is a type of backdoor that attackers set up on the target host and binds to a specific port to listen for\nan incoming connection from the attacker.\n\nThis rule identifies potential reverse shell or bind shell activity using Netcat by checking for the execution of Netcat\nfollowed by a network connection.\n\n#### Possible investigation steps\n\n- Examine the command line to identify if the command is suspicious.\n- Extract and examine the target domain or IP address.\n - Check if the domain is newly registered or unexpected.\n - Check the reputation of the domain or IP address.\n - Scope other potentially compromised hosts in your environment by mapping hosts that also communicated with the\n domain or IP address.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, file modifications, and any\nspawned child processes.\n\n### False positive analysis\n\n- Netcat is a dual-use tool that can be used for benign or malicious activity. It is included in some Linux\ndistributions, so its presence is not necessarily suspicious. Some normal use of this program, while uncommon, may\noriginate from scripts, automation tools, and frameworks.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Block the identified indicators of compromise (IoCs).\n- Take actions to terminate processes and connections used by the attacker.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"false_positives":["Netcat is a dual-use tool that can be used for benign or malicious activity. Netcat is included in some Linux distributions so its presence is not necessarily suspicious. Some normal use of this program, while uncommon, may originate from scripts, automation tools, and frameworks."],"from":"now-9m","references":["http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet","https://www.sans.org/security-resources/sec560/netcat_cheat_sheet_v1.pdf","https://en.wikipedia.org/wiki/Netcat","https://www.hackers-arise.com/hacking-fundamentals","https://null-byte.wonderhowto.com/how-to/hack-like-pro-use-netcat-swiss-army-knife-hacking-tools-0148657/","https://levelup.gitconnected.com/ethical-hacking-part-15-netcat-nc-and-netcat-f6a8f7df43fd"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.004","name":"Unix Shell","reference":"https://attack.mitre.org/techniques/T1059/004/"}]}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name:(\"nc\",\"ncat\",\"netcat\",\"netcat.openbsd\",\"netcat.traditional\") and (\n /* bind shell to echo for command execution */\n (process.args:(\"-l\",\"-p\") and process.args:(\"-c\",\"echo\",\"$*\"))\n /* bind shell to specific port */\n or process.args:(\"-l\",\"-p\",\"-lp\")\n /* reverse shell to command-line interpreter used for command execution */\n or (process.args:(\"-e\") and process.args:(\"/bin/bash\",\"/bin/sh\"))\n /* file transfer via stdout */\n or process.args:(\">\",\"<\")\n /* file transfer via pipe */\n or (process.args:(\"|\") and process.args:(\"nc\",\"ncat\"))\n )]\n [network where (process.name == \"nc\" or process.name == \"ncat\" or process.name == \"netcat\" or\n process.name == \"netcat.openbsd\" or process.name == \"netcat.traditional\")]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"adb961e0-cb74-42a0-af9e-29fc41f88f5f:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/afcce5ad-65de-4ed2-8516-5e093d3ac99a:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/afcce5ad-65de-4ed2-8516-5e093d3ac99a:101.0.0.json new file mode 100644 index 0000000000000..48c581b2209d5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/afcce5ad-65de-4ed2-8516-5e093d3ac99a:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Local Scheduled Task Creation v101.0.0","rule_id":"afcce5ad-65de-4ed2-8516-5e093d3ac99a:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Indicates the creation of a scheduled task. Adversaries can use these to establish persistence, move laterally, and/or escalate privileges.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","references":["https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-1","https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-2"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"sequence with maxspan=1m\n [process where event.type != \"end\" and\n ((process.name : (\"cmd.exe\", \"wscript.exe\", \"rundll32.exe\", \"regsvr32.exe\", \"wmic.exe\", \"mshta.exe\",\n \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\", \"WmiPrvSe.exe\", \"wsmprovhost.exe\", \"winrshost.exe\") or\n process.pe.original_file_name : (\"cmd.exe\", \"wscript.exe\", \"rundll32.exe\", \"regsvr32.exe\", \"wmic.exe\", \"mshta.exe\",\n \"powershell.exe\", \"pwsh.dll\", \"powershell_ise.exe\", \"WmiPrvSe.exe\", \"wsmprovhost.exe\",\n \"winrshost.exe\")) or\n process.code_signature.trusted == false)] by process.entity_id\n [process where event.type == \"start\" and\n (process.name : \"schtasks.exe\" or process.pe.original_file_name == \"schtasks.exe\") and\n process.args : (\"/create\", \"-create\") and process.args : (\"/RU\", \"/SC\", \"/TN\", \"/TR\", \"/F\", \"/XML\") and\n /* exclude SYSTEM Integrity Level - look for task creations by non-SYSTEM user */\n not (?process.Ext.token.integrity_level_name : \"System\" or ?winlog.event_data.IntegrityLevel : \"System\")\n ] by process.parent.entity_id\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.IntegrityLevel","type":"keyword"}]},"id":"afcce5ad-65de-4ed2-8516-5e093d3ac99a:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/afcce5ad-65de-4ed2-8516-5e093d3ac99a:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/afcce5ad-65de-4ed2-8516-5e093d3ac99a:101.0.1.json new file mode 100644 index 0000000000000..01ee25d3530ac --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/afcce5ad-65de-4ed2-8516-5e093d3ac99a:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Local Scheduled Task Creation v101.0.1","rule_id":"afcce5ad-65de-4ed2-8516-5e093d3ac99a:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Indicates the creation of a scheduled task. Adversaries can use these to establish persistence, move laterally, and/or escalate privileges.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","references":["https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-1","https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-2"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"sequence with maxspan=1m\n [process where event.type != \"end\" and\n ((process.name : (\"cmd.exe\", \"wscript.exe\", \"rundll32.exe\", \"regsvr32.exe\", \"wmic.exe\", \"mshta.exe\",\n \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\", \"WmiPrvSe.exe\", \"wsmprovhost.exe\", \"winrshost.exe\") or\n process.pe.original_file_name : (\"cmd.exe\", \"wscript.exe\", \"rundll32.exe\", \"regsvr32.exe\", \"wmic.exe\", \"mshta.exe\",\n \"powershell.exe\", \"pwsh.dll\", \"powershell_ise.exe\", \"WmiPrvSe.exe\", \"wsmprovhost.exe\",\n \"winrshost.exe\")) or\n process.code_signature.trusted == false)] by process.entity_id\n [process where event.type == \"start\" and\n (process.name : \"schtasks.exe\" or process.pe.original_file_name == \"schtasks.exe\") and\n process.args : (\"/create\", \"-create\") and process.args : (\"/RU\", \"/SC\", \"/TN\", \"/TR\", \"/F\", \"/XML\") and\n /* exclude SYSTEM Integrity Level - look for task creations by non-SYSTEM user */\n not (?process.Ext.token.integrity_level_name : \"System\" or ?winlog.event_data.IntegrityLevel : \"System\")\n ] by process.parent.entity_id\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.IntegrityLevel","type":"keyword"}]},"id":"afcce5ad-65de-4ed2-8516-5e093d3ac99a:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/afcce5ad-65de-4ed2-8516-5e093d3ac99a:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/afcce5ad-65de-4ed2-8516-5e093d3ac99a:101.0.2.json new file mode 100644 index 0000000000000..0a35713745aca --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/afcce5ad-65de-4ed2-8516-5e093d3ac99a:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Local Scheduled Task Creation v101.0.2","rule_id":"afcce5ad-65de-4ed2-8516-5e093d3ac99a:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Indicates the creation of a scheduled task. Adversaries can use these to establish persistence, move laterally, and/or escalate privileges.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Legitimate scheduled tasks may be created during installation of new software."],"from":"now-9m","references":["https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-1","https://www.elastic.co/security-labs/hunting-for-persistence-using-elastic-security-part-2"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"sequence with maxspan=1m\n [process where event.type != \"end\" and\n ((process.name : (\"cmd.exe\", \"wscript.exe\", \"rundll32.exe\", \"regsvr32.exe\", \"wmic.exe\", \"mshta.exe\",\n \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\", \"WmiPrvSe.exe\", \"wsmprovhost.exe\", \"winrshost.exe\") or\n process.pe.original_file_name : (\"cmd.exe\", \"wscript.exe\", \"rundll32.exe\", \"regsvr32.exe\", \"wmic.exe\", \"mshta.exe\",\n \"powershell.exe\", \"pwsh.dll\", \"powershell_ise.exe\", \"WmiPrvSe.exe\", \"wsmprovhost.exe\",\n \"winrshost.exe\")) or\n process.code_signature.trusted == false)] by process.entity_id\n [process where event.type == \"start\" and\n (process.name : \"schtasks.exe\" or process.pe.original_file_name == \"schtasks.exe\") and\n process.args : (\"/create\", \"-create\") and process.args : (\"/RU\", \"/SC\", \"/TN\", \"/TR\", \"/F\", \"/XML\") and\n /* exclude SYSTEM Integrity Level - look for task creations by non-SYSTEM user */\n not (?process.Ext.token.integrity_level_name : \"System\" or ?winlog.event_data.IntegrityLevel : \"System\")\n ] by process.parent.entity_id\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.IntegrityLevel","type":"keyword"}]},"id":"afcce5ad-65de-4ed2-8516-5e093d3ac99a:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b0046934-486e-462f-9487-0d4cf9e429c6:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b0046934-486e-462f-9487-0d4cf9e429c6:100.0.0.json new file mode 100644 index 0000000000000..51f4d1114b6c8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b0046934-486e-462f-9487-0d4cf9e429c6:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Timestomping using Touch Command v100.0.0","rule_id":"b0046934-486e-462f-9487-0d4cf9e429c6:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Timestomping is an anti-forensics technique which is used to modify the timestamps of a file, often to mimic files that are in the same folder.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Linux","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.006","name":"Timestomp","reference":"https://attack.mitre.org/techniques/T1070/006/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"touch\" and user.id != \"0\" and\n process.args : (\"-r\", \"-t\", \"-a*\",\"-m*\") and\n not process.args : (\"/usr/lib/go-*/bin/go\", \"/usr/lib/dracut/dracut-functions.sh\", \"/tmp/KSInstallAction.*/m/.patch/*\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"b0046934-486e-462f-9487-0d4cf9e429c6:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b0046934-486e-462f-9487-0d4cf9e429c6:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b0046934-486e-462f-9487-0d4cf9e429c6:100.0.1.json new file mode 100644 index 0000000000000..74b207ce457bc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b0046934-486e-462f-9487-0d4cf9e429c6:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Timestomping using Touch Command v100.0.1","rule_id":"b0046934-486e-462f-9487-0d4cf9e429c6:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Timestomping is an anti-forensics technique which is used to modify the timestamps of a file, often to mimic files that are in the same folder.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Linux","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.006","name":"Timestomp","reference":"https://attack.mitre.org/techniques/T1070/006/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"touch\" and user.id != \"0\" and\n process.args : (\"-r\", \"-t\", \"-a*\",\"-m*\") and\n not process.args : (\"/usr/lib/go-*/bin/go\", \"/usr/lib/dracut/dracut-functions.sh\", \"/tmp/KSInstallAction.*/m/.patch/*\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"b0046934-486e-462f-9487-0d4cf9e429c6:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b0046934-486e-462f-9487-0d4cf9e429c6:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b0046934-486e-462f-9487-0d4cf9e429c6:100.0.2.json new file mode 100644 index 0000000000000..82896437074cf --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b0046934-486e-462f-9487-0d4cf9e429c6:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Timestomping using Touch Command v100.0.2","rule_id":"b0046934-486e-462f-9487-0d4cf9e429c6:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Timestomping is an anti-forensics technique which is used to modify the timestamps of a file, often to mimic files that are in the same folder.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Linux","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.006","name":"Timestomp","reference":"https://attack.mitre.org/techniques/T1070/006/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"touch\" and user.id != \"0\" and\n process.args : (\"-r\", \"-t\", \"-a*\",\"-m*\") and\n not process.args : (\"/usr/lib/go-*/bin/go\", \"/usr/lib/dracut/dracut-functions.sh\", \"/tmp/KSInstallAction.*/m/.patch/*\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"b0046934-486e-462f-9487-0d4cf9e429c6:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b00bcd89-000c-4425-b94c-716ef67762f6:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b00bcd89-000c-4425-b94c-716ef67762f6:100.0.0.json new file mode 100644 index 0000000000000..d79083a0a9025 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b00bcd89-000c-4425-b94c-716ef67762f6:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"TCC Bypass via Mounted APFS Snapshot Access v100.0.0","rule_id":"b00bcd89-000c-4425-b94c-716ef67762f6:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the mount_apfs command to mount the entire file system through Apple File System (APFS) snapshots as read-only and with the noowners flag set. This action enables the adversary to access almost any file in the file system, including all user data and files protected by Apple’s privacy framework (TCC).","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://theevilbit.github.io/posts/cve_2020_9771/"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion","CVE_2020_9771"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1006","name":"Direct Volume Access","reference":"https://attack.mitre.org/techniques/T1006/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category : process and event.type : (start or process_started) and process.name : mount_apfs and\n process.args : (/System/Volumes/Data and noowners)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"b00bcd89-000c-4425-b94c-716ef67762f6:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b00bcd89-000c-4425-b94c-716ef67762f6:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b00bcd89-000c-4425-b94c-716ef67762f6:100.0.1.json new file mode 100644 index 0000000000000..2a27562fe1f06 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b00bcd89-000c-4425-b94c-716ef67762f6:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"TCC Bypass via Mounted APFS Snapshot Access v100.0.1","rule_id":"b00bcd89-000c-4425-b94c-716ef67762f6:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the mount_apfs command to mount the entire file system through Apple File System (APFS) snapshots as read-only and with the noowners flag set. This action enables the adversary to access almost any file in the file system, including all user data and files protected by Apple’s privacy framework (TCC).","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://theevilbit.github.io/posts/cve_2020_9771/"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion","CVE_2020_9771"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1006","name":"Direct Volume Access","reference":"https://attack.mitre.org/techniques/T1006/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category : process and event.type : (start or process_started) and process.name : mount_apfs and\n process.args : (/System/Volumes/Data and noowners)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"b00bcd89-000c-4425-b94c-716ef67762f6:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b00bcd89-000c-4425-b94c-716ef67762f6:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b00bcd89-000c-4425-b94c-716ef67762f6:100.0.2.json new file mode 100644 index 0000000000000..c40a089d52552 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b00bcd89-000c-4425-b94c-716ef67762f6:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"TCC Bypass via Mounted APFS Snapshot Access v100.0.2","rule_id":"b00bcd89-000c-4425-b94c-716ef67762f6:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the mount_apfs command to mount the entire file system through Apple File System (APFS) snapshots as read-only and with the noowners flag set. This action enables the adversary to access almost any file in the file system, including all user data and files protected by Apple’s privacy framework (TCC).","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://theevilbit.github.io/posts/cve_2020_9771/"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion","CVE_2020_9771"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1006","name":"Direct Volume Access","reference":"https://attack.mitre.org/techniques/T1006/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category : process and event.type : (start or process_started) and process.name : mount_apfs and\n process.args : (/System/Volumes/Data and noowners)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"b00bcd89-000c-4425-b94c-716ef67762f6:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b240bfb8-26b7-4e5e-924e-218144a3fa71:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b240bfb8-26b7-4e5e-924e-218144a3fa71:100.0.0.json new file mode 100644 index 0000000000000..fa928e27a42c3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b240bfb8-26b7-4e5e-924e-218144a3fa71:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Spike in Network Traffic v100.0.0","rule_id":"b240bfb8-26b7-4e5e-924e-218144a3fa71:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusually large spike in network traffic. Such a burst of traffic, if not caused by a surge in business activity, can be due to suspicious or malicious activity. Large-scale data exfiltration may produce a burst of network traffic; this could also be due to unusually large amounts of reconnaissance or enumeration traffic. Denial-of-service attacks or traffic floods may also produce such a surge in traffic.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Business workflows that occur very occasionally, and involve an unusual surge in network traffic, can trigger this alert. A new business workflow or a surge in business activity may trigger this alert. A misconfigured network application or firewall may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML"],"anomaly_threshold":75,"machine_learning_job_id":"high_count_network_events","type":"machine_learning"},"id":"b240bfb8-26b7-4e5e-924e-218144a3fa71:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b240bfb8-26b7-4e5e-924e-218144a3fa71:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b240bfb8-26b7-4e5e-924e-218144a3fa71:100.0.1.json new file mode 100644 index 0000000000000..8163805f86c6e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b240bfb8-26b7-4e5e-924e-218144a3fa71:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Spike in Network Traffic v100.0.1","rule_id":"b240bfb8-26b7-4e5e-924e-218144a3fa71:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusually large spike in network traffic. Such a burst of traffic, if not caused by a surge in business activity, can be due to suspicious or malicious activity. Large-scale data exfiltration may produce a burst of network traffic; this could also be due to unusually large amounts of reconnaissance or enumeration traffic. Denial-of-service attacks or traffic floods may also produce such a surge in traffic.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Business workflows that occur very occasionally, and involve an unusual surge in network traffic, can trigger this alert. A new business workflow or a surge in business activity may trigger this alert. A misconfigured network application or firewall may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML"],"anomaly_threshold":75,"machine_learning_job_id":"high_count_network_events","type":"machine_learning"},"id":"b240bfb8-26b7-4e5e-924e-218144a3fa71:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b240bfb8-26b7-4e5e-924e-218144a3fa71:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b240bfb8-26b7-4e5e-924e-218144a3fa71:100.0.2.json new file mode 100644 index 0000000000000..02802255f2d61 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b240bfb8-26b7-4e5e-924e-218144a3fa71:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Spike in Network Traffic v100.0.2","rule_id":"b240bfb8-26b7-4e5e-924e-218144a3fa71:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusually large spike in network traffic. Such a burst of traffic, if not caused by a surge in business activity, can be due to suspicious or malicious activity. Large-scale data exfiltration may produce a burst of network traffic; this could also be due to unusually large amounts of reconnaissance or enumeration traffic. Denial-of-service attacks or traffic floods may also produce such a surge in traffic.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Business workflows that occur very occasionally, and involve an unusual surge in network traffic, can trigger this alert. A new business workflow or a surge in business activity may trigger this alert. A misconfigured network application or firewall may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML"],"anomaly_threshold":75,"machine_learning_job_id":"high_count_network_events","type":"machine_learning"},"id":"b240bfb8-26b7-4e5e-924e-218144a3fa71:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b25a7df2-120a-4db2-bd3f-3e4b86b24bee:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b25a7df2-120a-4db2-bd3f-3e4b86b24bee:102.0.0.json new file mode 100644 index 0000000000000..f5e85160e4568 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b25a7df2-120a-4db2-bd3f-3e4b86b24bee:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote File Copy via TeamViewer v102.0.0","rule_id":"b25a7df2-120a-4db2-bd3f-3e4b86b24bee:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an executable or script file remotely downloaded via a TeamViewer transfer session.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote File Copy via TeamViewer\n\nAttackers commonly transfer tooling or malware from external systems into a compromised environment using the command\nand control channel. However, they can also abuse legitimate utilities to drop these files.\n\nTeamViewer is a remote access and remote control tool used by helpdesks and system administrators to perform various\nsupport activities. It is also frequently used by attackers and scammers to deploy malware interactively and other\nmalicious activities. This rule looks for the TeamViewer process creating files with suspicious extensions.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Contact the user to gather information about who and why was conducting the remote access.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check whether the company uses TeamViewer for the support activities and if there is a support ticket related to this\naccess.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the company relies on TeamViewer to conduct\nremote access and the triage has not identified suspicious or malicious files.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.menasec.net/2019/11/hunting-for-suspicious-use-of.html"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"},{"id":"T1219","name":"Remote Access Software","reference":"https://attack.mitre.org/techniques/T1219/"}]}],"language":"eql","query":"file where event.type == \"creation\" and process.name : \"TeamViewer.exe\" and\n file.extension : (\"exe\", \"dll\", \"scr\", \"com\", \"bat\", \"ps1\", \"vbs\", \"vbe\", \"js\", \"wsh\", \"hta\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"b25a7df2-120a-4db2-bd3f-3e4b86b24bee:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b25a7df2-120a-4db2-bd3f-3e4b86b24bee:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b25a7df2-120a-4db2-bd3f-3e4b86b24bee:102.0.1.json new file mode 100644 index 0000000000000..53c7665b00d02 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b25a7df2-120a-4db2-bd3f-3e4b86b24bee:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote File Copy via TeamViewer v102.0.1","rule_id":"b25a7df2-120a-4db2-bd3f-3e4b86b24bee:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an executable or script file remotely downloaded via a TeamViewer transfer session.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote File Copy via TeamViewer\n\nAttackers commonly transfer tooling or malware from external systems into a compromised environment using the command\nand control channel. However, they can also abuse legitimate utilities to drop these files.\n\nTeamViewer is a remote access and remote control tool used by helpdesks and system administrators to perform various\nsupport activities. It is also frequently used by attackers and scammers to deploy malware interactively and other\nmalicious activities. This rule looks for the TeamViewer process creating files with suspicious extensions.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Contact the user to gather information about who and why was conducting the remote access.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check whether the company uses TeamViewer for the support activities and if there is a support ticket related to this\naccess.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the company relies on TeamViewer to conduct\nremote access and the triage has not identified suspicious or malicious files.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.menasec.net/2019/11/hunting-for-suspicious-use-of.html"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"},{"id":"T1219","name":"Remote Access Software","reference":"https://attack.mitre.org/techniques/T1219/"}]}],"language":"eql","query":"file where event.type == \"creation\" and process.name : \"TeamViewer.exe\" and\n file.extension : (\"exe\", \"dll\", \"scr\", \"com\", \"bat\", \"ps1\", \"vbs\", \"vbe\", \"js\", \"wsh\", \"hta\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"b25a7df2-120a-4db2-bd3f-3e4b86b24bee:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b25a7df2-120a-4db2-bd3f-3e4b86b24bee:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b25a7df2-120a-4db2-bd3f-3e4b86b24bee:102.0.2.json new file mode 100644 index 0000000000000..265ad1fe3f5a9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b25a7df2-120a-4db2-bd3f-3e4b86b24bee:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote File Copy via TeamViewer v102.0.2","rule_id":"b25a7df2-120a-4db2-bd3f-3e4b86b24bee:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an executable or script file remotely downloaded via a TeamViewer transfer session.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote File Copy via TeamViewer\n\nAttackers commonly transfer tooling or malware from external systems into a compromised environment using the command\nand control channel. However, they can also abuse legitimate utilities to drop these files.\n\nTeamViewer is a remote access and remote control tool used by helpdesks and system administrators to perform various\nsupport activities. It is also frequently used by attackers and scammers to deploy malware interactively and other\nmalicious activities. This rule looks for the TeamViewer process creating files with suspicious extensions.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Contact the user to gather information about who and why was conducting the remote access.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check whether the company uses TeamViewer for the support activities and if there is a support ticket related to this\naccess.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the company relies on TeamViewer to conduct\nremote access and the triage has not identified suspicious or malicious files.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.menasec.net/2019/11/hunting-for-suspicious-use-of.html"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"},{"id":"T1219","name":"Remote Access Software","reference":"https://attack.mitre.org/techniques/T1219/"}]}],"language":"eql","query":"file where event.type == \"creation\" and process.name : \"TeamViewer.exe\" and\n file.extension : (\"exe\", \"dll\", \"scr\", \"com\", \"bat\", \"ps1\", \"vbs\", \"vbe\", \"js\", \"wsh\", \"hta\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"b25a7df2-120a-4db2-bd3f-3e4b86b24bee:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b2951150-658f-4a60-832f-a00d1e6c6745:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b2951150-658f-4a60-832f-a00d1e6c6745:101.0.0.json new file mode 100644 index 0000000000000..8ed38493dc33e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b2951150-658f-4a60-832f-a00d1e6c6745:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Unusual Volume of File Deletion v101.0.0","rule_id":"b2951150-658f-4a60-832f-a00d1e6c6745:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies that a user has deleted an unusually large volume of files as reported by Microsoft Cloud App Security.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Users or System Administrator cleaning out folders."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/cloud-app-security/anomaly-detection-policy","https://docs.microsoft.com/en-us/cloud-app-security/policy-template-reference"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:SecurityComplianceCenter and event.category:web and event.action:\"Unusual volume of file deletion\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"b2951150-658f-4a60-832f-a00d1e6c6745:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b2951150-658f-4a60-832f-a00d1e6c6745:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b2951150-658f-4a60-832f-a00d1e6c6745:101.0.1.json new file mode 100644 index 0000000000000..5b34716393480 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b2951150-658f-4a60-832f-a00d1e6c6745:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Unusual Volume of File Deletion v101.0.1","rule_id":"b2951150-658f-4a60-832f-a00d1e6c6745:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies that a user has deleted an unusually large volume of files as reported by Microsoft Cloud App Security.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Users or System Administrator cleaning out folders."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/cloud-app-security/anomaly-detection-policy","https://docs.microsoft.com/en-us/cloud-app-security/policy-template-reference"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:SecurityComplianceCenter and event.category:web and event.action:\"Unusual volume of file deletion\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"b2951150-658f-4a60-832f-a00d1e6c6745:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b2951150-658f-4a60-832f-a00d1e6c6745:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b2951150-658f-4a60-832f-a00d1e6c6745:101.0.2.json new file mode 100644 index 0000000000000..8ee89d01cd60e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b2951150-658f-4a60-832f-a00d1e6c6745:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Unusual Volume of File Deletion v101.0.2","rule_id":"b2951150-658f-4a60-832f-a00d1e6c6745:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies that a user has deleted an unusually large volume of files as reported by Microsoft Cloud App Security.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Users or System Administrator cleaning out folders."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/cloud-app-security/anomaly-detection-policy","https://docs.microsoft.com/en-us/cloud-app-security/policy-template-reference"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:SecurityComplianceCenter and event.category:web and event.action:\"Unusual volume of file deletion\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"b2951150-658f-4a60-832f-a00d1e6c6745:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b29ee2be-bf99-446c-ab1a-2dc0183394b8:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b29ee2be-bf99-446c-ab1a-2dc0183394b8:100.0.0.json new file mode 100644 index 0000000000000..be26fb9feaddd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b29ee2be-bf99-446c-ab1a-2dc0183394b8:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Network Connection via Compiled HTML File v100.0.0","rule_id":"b29ee2be-bf99-446c-ab1a-2dc0183394b8:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Compiled HTML files (.chm) are commonly distributed as part of the Microsoft HTML Help system. Adversaries may conceal malicious code in a CHM file and deliver it to a victim for execution. CHM content is loaded by the HTML Help executable program (hh.exe).","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1204","name":"User Execution","reference":"https://attack.mitre.org/techniques/T1204/","subtechnique":[{"id":"T1204.002","name":"Malicious File","reference":"https://attack.mitre.org/techniques/T1204/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.001","name":"Compiled HTML File","reference":"https://attack.mitre.org/techniques/T1218/001/"}]}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"hh.exe\" and event.type == \"start\"]\n [network where process.name : \"hh.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\",\n \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\",\n \"100.64.0.0/10\", \"192.175.48.0/24\",\"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"b29ee2be-bf99-446c-ab1a-2dc0183394b8:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b29ee2be-bf99-446c-ab1a-2dc0183394b8:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b29ee2be-bf99-446c-ab1a-2dc0183394b8:100.0.1.json new file mode 100644 index 0000000000000..b230d5e0f25b1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b29ee2be-bf99-446c-ab1a-2dc0183394b8:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Network Connection via Compiled HTML File v100.0.1","rule_id":"b29ee2be-bf99-446c-ab1a-2dc0183394b8:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Compiled HTML files (.chm) are commonly distributed as part of the Microsoft HTML Help system. Adversaries may conceal malicious code in a CHM file and deliver it to a victim for execution. CHM content is loaded by the HTML Help executable program (hh.exe).","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1204","name":"User Execution","reference":"https://attack.mitre.org/techniques/T1204/","subtechnique":[{"id":"T1204.002","name":"Malicious File","reference":"https://attack.mitre.org/techniques/T1204/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.001","name":"Compiled HTML File","reference":"https://attack.mitre.org/techniques/T1218/001/"}]}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"hh.exe\" and event.type == \"start\"]\n [network where process.name : \"hh.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\",\n \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\",\n \"100.64.0.0/10\", \"192.175.48.0/24\",\"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"b29ee2be-bf99-446c-ab1a-2dc0183394b8:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b29ee2be-bf99-446c-ab1a-2dc0183394b8:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b29ee2be-bf99-446c-ab1a-2dc0183394b8:100.0.2.json new file mode 100644 index 0000000000000..fa4ea6b28c85e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b29ee2be-bf99-446c-ab1a-2dc0183394b8:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Network Connection via Compiled HTML File v100.0.2","rule_id":"b29ee2be-bf99-446c-ab1a-2dc0183394b8:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Compiled HTML files (.chm) are commonly distributed as part of the Microsoft HTML Help system. Adversaries may conceal malicious code in a CHM file and deliver it to a victim for execution. CHM content is loaded by the HTML Help executable program (hh.exe).","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1204","name":"User Execution","reference":"https://attack.mitre.org/techniques/T1204/","subtechnique":[{"id":"T1204.002","name":"Malicious File","reference":"https://attack.mitre.org/techniques/T1204/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.001","name":"Compiled HTML File","reference":"https://attack.mitre.org/techniques/T1218/001/"}]}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"hh.exe\" and event.type == \"start\"]\n [network where process.name : \"hh.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\",\n \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\",\n \"100.64.0.0/10\", \"192.175.48.0/24\",\"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"b29ee2be-bf99-446c-ab1a-2dc0183394b8:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b347b919-665f-4aac-b9e8-68369bf2340c:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b347b919-665f-4aac-b9e8-68369bf2340c:100.0.0.json new file mode 100644 index 0000000000000..c6abf1a442731 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b347b919-665f-4aac-b9e8-68369bf2340c:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Linux Username v100.0.0","rule_id":"b347b919-665f-4aac-b9e8-68369bf2340c:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected activity for a username that is not normally active, which can indicate unauthorized changes, activity by unauthorized users, lateral movement, or compromised credentials. In many organizations, new usernames are not often created apart from specific types of system activities, such as creating new accounts for new employees. These user accounts quickly become active and routine. Events from rarely used usernames can point to suspicious activity. Additionally, automated Linux fleets tend to see activity from rarely used usernames only when personnel log in to make authorized or unauthorized changes, or threat actors have acquired credentials and log in for malicious purposes. Unusual usernames can also indicate pivoting, where compromised credentials are used to try and move laterally from one host to another.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Linux User\nDetection alerts from this rule indicate activity for a Linux user name that is rare and unusual. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is this program part of an expected workflow for the user who ran this program on this host? Could this be related to troubleshooting or debugging activity by a developer or site reliability engineer?\n- Examine the history of user activity. If this user only manifested recently, it might be a service account for a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks that the user is performing.","author":["Elastic"],"false_positives":["Uncommon user activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Linux","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_anomalous_user_name"],"type":"machine_learning"},"id":"b347b919-665f-4aac-b9e8-68369bf2340c:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b347b919-665f-4aac-b9e8-68369bf2340c:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b347b919-665f-4aac-b9e8-68369bf2340c:100.0.1.json new file mode 100644 index 0000000000000..e0443cbffd499 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b347b919-665f-4aac-b9e8-68369bf2340c:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Linux Username v100.0.1","rule_id":"b347b919-665f-4aac-b9e8-68369bf2340c:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected activity for a username that is not normally active, which can indicate unauthorized changes, activity by unauthorized users, lateral movement, or compromised credentials. In many organizations, new usernames are not often created apart from specific types of system activities, such as creating new accounts for new employees. These user accounts quickly become active and routine. Events from rarely used usernames can point to suspicious activity. Additionally, automated Linux fleets tend to see activity from rarely used usernames only when personnel log in to make authorized or unauthorized changes, or threat actors have acquired credentials and log in for malicious purposes. Unusual usernames can also indicate pivoting, where compromised credentials are used to try and move laterally from one host to another.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Linux User\nDetection alerts from this rule indicate activity for a Linux user name that is rare and unusual. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is this program part of an expected workflow for the user who ran this program on this host? Could this be related to troubleshooting or debugging activity by a developer or site reliability engineer?\n- Examine the history of user activity. If this user only manifested recently, it might be a service account for a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks that the user is performing.","author":["Elastic"],"false_positives":["Uncommon user activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Linux","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_anomalous_user_name"],"type":"machine_learning"},"id":"b347b919-665f-4aac-b9e8-68369bf2340c:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b347b919-665f-4aac-b9e8-68369bf2340c:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b347b919-665f-4aac-b9e8-68369bf2340c:100.0.2.json new file mode 100644 index 0000000000000..bd1a425fae0ab --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b347b919-665f-4aac-b9e8-68369bf2340c:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Linux Username v100.0.2","rule_id":"b347b919-665f-4aac-b9e8-68369bf2340c:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected activity for a username that is not normally active, which can indicate unauthorized changes, activity by unauthorized users, lateral movement, or compromised credentials. In many organizations, new usernames are not often created apart from specific types of system activities, such as creating new accounts for new employees. These user accounts quickly become active and routine. Events from rarely used usernames can point to suspicious activity. Additionally, automated Linux fleets tend to see activity from rarely used usernames only when personnel log in to make authorized or unauthorized changes, or threat actors have acquired credentials and log in for malicious purposes. Unusual usernames can also indicate pivoting, where compromised credentials are used to try and move laterally from one host to another.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating an Unusual Linux User\nDetection alerts from this rule indicate activity for a Linux user name that is rare and unusual. Here are some possible avenues of investigation:\n- Consider the user as identified by the username field. Is this program part of an expected workflow for the user who ran this program on this host? Could this be related to troubleshooting or debugging activity by a developer or site reliability engineer?\n- Examine the history of user activity. If this user only manifested recently, it might be a service account for a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks that the user is performing.","author":["Elastic"],"false_positives":["Uncommon user activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Linux","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_anomalous_user_name"],"type":"machine_learning"},"id":"b347b919-665f-4aac-b9e8-68369bf2340c:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b41a13c6-ba45-4bab-a534-df53d0cfed6a:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b41a13c6-ba45-4bab-a534-df53d0cfed6a:102.0.0.json new file mode 100644 index 0000000000000..4158dccd86f11 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b41a13c6-ba45-4bab-a534-df53d0cfed6a:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Endpoint Security Parent Process v102.0.0","rule_id":"b41a13c6-ba45-4bab-a534-df53d0cfed6a:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A suspicious Endpoint Security parent process was detected. This may indicate a process hollowing or other form of code injection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"esensor.exe\", \"elastic-endpoint.exe\") and\n process.parent.executable != null and\n /* add FPs here */\n not process.parent.executable : (\"C:\\\\Program Files\\\\Elastic\\\\*\",\n \"C:\\\\Windows\\\\System32\\\\services.exe\",\n \"C:\\\\Windows\\\\System32\\\\WerFault*.exe\",\n \"C:\\\\Windows\\\\System32\\\\wermgr.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"b41a13c6-ba45-4bab-a534-df53d0cfed6a:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b41a13c6-ba45-4bab-a534-df53d0cfed6a:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b41a13c6-ba45-4bab-a534-df53d0cfed6a:102.0.1.json new file mode 100644 index 0000000000000..8a68be1886467 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b41a13c6-ba45-4bab-a534-df53d0cfed6a:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Endpoint Security Parent Process v102.0.1","rule_id":"b41a13c6-ba45-4bab-a534-df53d0cfed6a:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A suspicious Endpoint Security parent process was detected. This may indicate a process hollowing or other form of code injection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"esensor.exe\", \"elastic-endpoint.exe\") and\n process.parent.executable != null and\n /* add FPs here */\n not process.parent.executable : (\"C:\\\\Program Files\\\\Elastic\\\\*\",\n \"C:\\\\Windows\\\\System32\\\\services.exe\",\n \"C:\\\\Windows\\\\System32\\\\WerFault*.exe\",\n \"C:\\\\Windows\\\\System32\\\\wermgr.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"b41a13c6-ba45-4bab-a534-df53d0cfed6a:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b41a13c6-ba45-4bab-a534-df53d0cfed6a:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b41a13c6-ba45-4bab-a534-df53d0cfed6a:102.0.2.json new file mode 100644 index 0000000000000..11986247fb30e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b41a13c6-ba45-4bab-a534-df53d0cfed6a:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Endpoint Security Parent Process v102.0.2","rule_id":"b41a13c6-ba45-4bab-a534-df53d0cfed6a:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A suspicious Endpoint Security parent process was detected. This may indicate a process hollowing or other form of code injection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"esensor.exe\", \"elastic-endpoint.exe\") and\n process.parent.executable != null and\n /* add FPs here */\n not process.parent.executable : (\"C:\\\\Program Files\\\\Elastic\\\\*\",\n \"C:\\\\Windows\\\\System32\\\\services.exe\",\n \"C:\\\\Windows\\\\System32\\\\WerFault*.exe\",\n \"C:\\\\Windows\\\\System32\\\\wermgr.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"b41a13c6-ba45-4bab-a534-df53d0cfed6a:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b4449455-f986-4b5a-82ed-e36b129331f7:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b4449455-f986-4b5a-82ed-e36b129331f7:100.0.0.json new file mode 100644 index 0000000000000..f71c895a8ff49 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b4449455-f986-4b5a-82ed-e36b129331f7:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Persistence via Atom Init Script Modification v100.0.0","rule_id":"b4449455-f986-4b5a-82ed-e36b129331f7:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to the Atom desktop text editor Init File. Adversaries may add malicious JavaScript code to the init.coffee file that will be executed upon the Atom application opening.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/D00MFist/PersistentJXA/blob/master/AtomPersist.js","https://flight-manual.atom.io/hacking-atom/sections/the-init-file/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1037","name":"Boot or Logon Initialization Scripts","reference":"https://attack.mitre.org/techniques/T1037/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:\"file\" and not event.type:\"deletion\" and\n file.path:/Users/*/.atom/init.coffee and not process.name:(Atom or xpcproxy) and not user.name:root\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"b4449455-f986-4b5a-82ed-e36b129331f7:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b4449455-f986-4b5a-82ed-e36b129331f7:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b4449455-f986-4b5a-82ed-e36b129331f7:100.0.1.json new file mode 100644 index 0000000000000..f5fbafe816fc8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b4449455-f986-4b5a-82ed-e36b129331f7:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Persistence via Atom Init Script Modification v100.0.1","rule_id":"b4449455-f986-4b5a-82ed-e36b129331f7:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to the Atom desktop text editor Init File. Adversaries may add malicious JavaScript code to the init.coffee file that will be executed upon the Atom application opening.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/D00MFist/PersistentJXA/blob/master/AtomPersist.js","https://flight-manual.atom.io/hacking-atom/sections/the-init-file/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1037","name":"Boot or Logon Initialization Scripts","reference":"https://attack.mitre.org/techniques/T1037/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:\"file\" and not event.type:\"deletion\" and\n file.path:/Users/*/.atom/init.coffee and not process.name:(Atom or xpcproxy) and not user.name:root\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"b4449455-f986-4b5a-82ed-e36b129331f7:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b4449455-f986-4b5a-82ed-e36b129331f7:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b4449455-f986-4b5a-82ed-e36b129331f7:100.0.2.json new file mode 100644 index 0000000000000..368ead8ba11e8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b4449455-f986-4b5a-82ed-e36b129331f7:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Persistence via Atom Init Script Modification v100.0.2","rule_id":"b4449455-f986-4b5a-82ed-e36b129331f7:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to the Atom desktop text editor Init File. Adversaries may add malicious JavaScript code to the init.coffee file that will be executed upon the Atom application opening.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/D00MFist/PersistentJXA/blob/master/AtomPersist.js","https://flight-manual.atom.io/hacking-atom/sections/the-init-file/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1037","name":"Boot or Logon Initialization Scripts","reference":"https://attack.mitre.org/techniques/T1037/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:\"file\" and not event.type:\"deletion\" and\n file.path:/Users/*/.atom/init.coffee and not process.name:(Atom or xpcproxy) and not user.name:root\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"b4449455-f986-4b5a-82ed-e36b129331f7:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b45ab1d2-712f-4f01-a751-df3826969807:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b45ab1d2-712f-4f01-a751-df3826969807:101.0.0.json new file mode 100644 index 0000000000000..8cf8a0033b662 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b45ab1d2-712f-4f01-a751-df3826969807:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS STS GetSessionToken Abuse v101.0.0","rule_id":"b45ab1d2-712f-4f01-a751-df3826969807:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the suspicious use of GetSessionToken. Tokens could be created and used by attackers to move laterally and escalate privileges.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["GetSessionToken may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. GetSessionToken from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.001","name":"Application Access Token","reference":"https://attack.mitre.org/techniques/T1550/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:sts.amazonaws.com and event.action:GetSessionToken and\naws.cloudtrail.user_identity.type:IAMUser and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.user_identity.type","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"b45ab1d2-712f-4f01-a751-df3826969807:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b45ab1d2-712f-4f01-a751-df3826969807:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b45ab1d2-712f-4f01-a751-df3826969807:101.0.1.json new file mode 100644 index 0000000000000..1217ddc82a169 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b45ab1d2-712f-4f01-a751-df3826969807:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS STS GetSessionToken Abuse v101.0.1","rule_id":"b45ab1d2-712f-4f01-a751-df3826969807:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the suspicious use of GetSessionToken. Tokens could be created and used by attackers to move laterally and escalate privileges.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["GetSessionToken may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. GetSessionToken from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.001","name":"Application Access Token","reference":"https://attack.mitre.org/techniques/T1550/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:sts.amazonaws.com and event.action:GetSessionToken and\naws.cloudtrail.user_identity.type:IAMUser and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.user_identity.type","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"b45ab1d2-712f-4f01-a751-df3826969807:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b45ab1d2-712f-4f01-a751-df3826969807:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b45ab1d2-712f-4f01-a751-df3826969807:101.0.2.json new file mode 100644 index 0000000000000..d0faba35736d0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b45ab1d2-712f-4f01-a751-df3826969807:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS STS GetSessionToken Abuse v101.0.2","rule_id":"b45ab1d2-712f-4f01-a751-df3826969807:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the suspicious use of GetSessionToken. Tokens could be created and used by attackers to move laterally and escalate privileges.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["GetSessionToken may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. GetSessionToken from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1550","name":"Use Alternate Authentication Material","reference":"https://attack.mitre.org/techniques/T1550/","subtechnique":[{"id":"T1550.001","name":"Application Access Token","reference":"https://attack.mitre.org/techniques/T1550/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:sts.amazonaws.com and event.action:GetSessionToken and\naws.cloudtrail.user_identity.type:IAMUser and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.user_identity.type","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"b45ab1d2-712f-4f01-a751-df3826969807:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b4bb1440-0fcb-4ed1-87e5-b06d58efc5e9:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b4bb1440-0fcb-4ed1-87e5-b06d58efc5e9:102.0.0.json new file mode 100644 index 0000000000000..14e023d681ffe --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b4bb1440-0fcb-4ed1-87e5-b06d58efc5e9:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Delete an Okta Policy v102.0.0","rule_id":"b4bb1440-0fcb-4ed1-87e5-b06d58efc5e9:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to delete an Okta policy. An adversary may attempt to delete an Okta policy in order to weaken an organization's security controls. For example, an adversary may attempt to delete an Okta multi-factor authentication (MFA) policy in order to weaken the authentication requirements for user accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Okta policies are regularly deleted in your organization."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/Security_Policies.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.lifecycle.delete\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"b4bb1440-0fcb-4ed1-87e5-b06d58efc5e9:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b4bb1440-0fcb-4ed1-87e5-b06d58efc5e9:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b4bb1440-0fcb-4ed1-87e5-b06d58efc5e9:102.0.1.json new file mode 100644 index 0000000000000..a5453b0311d7b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b4bb1440-0fcb-4ed1-87e5-b06d58efc5e9:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Delete an Okta Policy v102.0.1","rule_id":"b4bb1440-0fcb-4ed1-87e5-b06d58efc5e9:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to delete an Okta policy. An adversary may attempt to delete an Okta policy in order to weaken an organization's security controls. For example, an adversary may attempt to delete an Okta multi-factor authentication (MFA) policy in order to weaken the authentication requirements for user accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Okta policies are regularly deleted in your organization."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/Security_Policies.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.lifecycle.delete\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"b4bb1440-0fcb-4ed1-87e5-b06d58efc5e9:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b4bb1440-0fcb-4ed1-87e5-b06d58efc5e9:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b4bb1440-0fcb-4ed1-87e5-b06d58efc5e9:102.0.2.json new file mode 100644 index 0000000000000..9c88148d3e89c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b4bb1440-0fcb-4ed1-87e5-b06d58efc5e9:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Delete an Okta Policy v102.0.2","rule_id":"b4bb1440-0fcb-4ed1-87e5-b06d58efc5e9:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to delete an Okta policy. An adversary may attempt to delete an Okta policy in order to weaken an organization's security controls. For example, an adversary may attempt to delete an Okta multi-factor authentication (MFA) policy in order to weaken the authentication requirements for user accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Okta policies are regularly deleted in your organization."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/Security_Policies.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.lifecycle.delete\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"b4bb1440-0fcb-4ed1-87e5-b06d58efc5e9:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b5877334-677f-4fb9-86d5-a9721274223b:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b5877334-677f-4fb9-86d5-a9721274223b:102.0.0.json new file mode 100644 index 0000000000000..38aa85c534cc2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b5877334-677f-4fb9-86d5-a9721274223b:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Clearing Windows Console History v102.0.0","rule_id":"b5877334-677f-4fb9-86d5-a9721274223b:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user attempts to clear console history. An adversary may clear the command history of a compromised account to conceal the actions undertaken during an intrusion.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Clearing Windows Console History\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can try to cover their tracks by clearing PowerShell console history. PowerShell has two different ways of\nlogging commands: the built-in history and the command history managed by the PSReadLine module. This rule looks for the\nexecution of commands that can clear the built-in PowerShell logs or delete the `ConsoleHost_history.txt` file.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n - Verify if any other anti-forensics behaviors were observed.\n- Investigate the PowerShell logs on the SIEM to determine if there was suspicious behavior that an attacker may be\ntrying to cover up.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n - Ensure that PowerShell auditing policies and log collection are in place to grant future visibility.","timestamp_override":"event.ingested","author":["Austin Songer"],"from":"now-9m","references":["https://stefanos.cloud/kb/how-to-clear-the-powershell-command-history/","https://www.shellhacks.com/clear-history-powershell/","https://community.sophos.com/sophos-labs/b/blog/posts/powershell-command-history-forensics"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.003","name":"Clear Command History","reference":"https://attack.mitre.org/techniques/T1070/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") or process.pe.original_file_name == \"PowerShell.EXE\") and\n (process.args : \"*Clear-History*\" or\n (process.args : (\"*Remove-Item*\", \"rm\") and process.args : (\"*ConsoleHost_history.txt*\", \"*(Get-PSReadlineOption).HistorySavePath*\")) or\n (process.args : \"*Set-PSReadlineOption*\" and process.args : \"*SaveNothing*\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"b5877334-677f-4fb9-86d5-a9721274223b:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b5877334-677f-4fb9-86d5-a9721274223b:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b5877334-677f-4fb9-86d5-a9721274223b:102.0.1.json new file mode 100644 index 0000000000000..43784f6749147 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b5877334-677f-4fb9-86d5-a9721274223b:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Clearing Windows Console History v102.0.1","rule_id":"b5877334-677f-4fb9-86d5-a9721274223b:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user attempts to clear console history. An adversary may clear the command history of a compromised account to conceal the actions undertaken during an intrusion.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Clearing Windows Console History\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can try to cover their tracks by clearing PowerShell console history. PowerShell has two different ways of\nlogging commands: the built-in history and the command history managed by the PSReadLine module. This rule looks for the\nexecution of commands that can clear the built-in PowerShell logs or delete the `ConsoleHost_history.txt` file.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n - Verify if any other anti-forensics behaviors were observed.\n- Investigate the PowerShell logs on the SIEM to determine if there was suspicious behavior that an attacker may be\ntrying to cover up.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n - Ensure that PowerShell auditing policies and log collection are in place to grant future visibility.","timestamp_override":"event.ingested","author":["Austin Songer"],"from":"now-9m","references":["https://stefanos.cloud/kb/how-to-clear-the-powershell-command-history/","https://www.shellhacks.com/clear-history-powershell/","https://community.sophos.com/sophos-labs/b/blog/posts/powershell-command-history-forensics"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.003","name":"Clear Command History","reference":"https://attack.mitre.org/techniques/T1070/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") or process.pe.original_file_name == \"PowerShell.EXE\") and\n (process.args : \"*Clear-History*\" or\n (process.args : (\"*Remove-Item*\", \"rm\") and process.args : (\"*ConsoleHost_history.txt*\", \"*(Get-PSReadlineOption).HistorySavePath*\")) or\n (process.args : \"*Set-PSReadlineOption*\" and process.args : \"*SaveNothing*\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"b5877334-677f-4fb9-86d5-a9721274223b:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b5877334-677f-4fb9-86d5-a9721274223b:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b5877334-677f-4fb9-86d5-a9721274223b:102.0.2.json new file mode 100644 index 0000000000000..35a760634a81c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b5877334-677f-4fb9-86d5-a9721274223b:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Clearing Windows Console History v102.0.2","rule_id":"b5877334-677f-4fb9-86d5-a9721274223b:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a user attempts to clear console history. An adversary may clear the command history of a compromised account to conceal the actions undertaken during an intrusion.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Clearing Windows Console History\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can try to cover their tracks by clearing PowerShell console history. PowerShell has two different ways of\nlogging commands: the built-in history and the command history managed by the PSReadLine module. This rule looks for the\nexecution of commands that can clear the built-in PowerShell logs or delete the `ConsoleHost_history.txt` file.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n - Verify if any other anti-forensics behaviors were observed.\n- Investigate the PowerShell logs on the SIEM to determine if there was suspicious behavior that an attacker may be\ntrying to cover up.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n - Ensure that PowerShell auditing policies and log collection are in place to grant future visibility.","timestamp_override":"event.ingested","author":["Austin Songer"],"from":"now-9m","references":["https://stefanos.cloud/kb/how-to-clear-the-powershell-command-history/","https://www.shellhacks.com/clear-history-powershell/","https://community.sophos.com/sophos-labs/b/blog/posts/powershell-command-history-forensics"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.003","name":"Clear Command History","reference":"https://attack.mitre.org/techniques/T1070/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") or process.pe.original_file_name == \"PowerShell.EXE\") and\n (process.args : \"*Clear-History*\" or\n (process.args : (\"*Remove-Item*\", \"rm\") and process.args : (\"*ConsoleHost_history.txt*\", \"*(Get-PSReadlineOption).HistorySavePath*\")) or\n (process.args : \"*Set-PSReadlineOption*\" and process.args : \"*SaveNothing*\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"b5877334-677f-4fb9-86d5-a9721274223b:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b5ea4bfe-a1b2-421f-9d47-22a75a6f2921:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b5ea4bfe-a1b2-421f-9d47-22a75a6f2921:102.0.0.json new file mode 100644 index 0000000000000..a0c522bd06d54 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b5ea4bfe-a1b2-421f-9d47-22a75a6f2921:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Volume Shadow Copy Deleted or Resized via VssAdmin v102.0.0","rule_id":"b5ea4bfe-a1b2-421f-9d47-22a75a6f2921:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of vssadmin.exe for shadow copy deletion or resizing on endpoints. This commonly occurs in tandem with ransomware or other destructive attacks.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Volume Shadow Copy Deleted or Resized via VssAdmin\n\nThe Volume Shadow Copy Service (VSS) is a Windows feature that enables system administrators to take snapshots of volumes\nthat can later be restored or mounted to recover specific files or folders.\n\nA typical step in the playbook of an attacker attempting to deploy ransomware is to delete Volume Shadow\nCopies to ensure that victims have no alternative to paying the ransom, making any action that deletes shadow\ncopies worth monitoring.\n\nThis rule monitors the execution of Vssadmin.exe to either delete or resize shadow copies.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- In the case of a resize operation, check if the resize value is equal to suspicious values, like 401MB.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- If unsigned files are found on the process tree, retrieve them and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Use process name, command line, and file hash to search for occurrences in other hosts.\n- Check if any files on the host machine have been encrypted.\n\n\n### False positive analysis\n\n- This rule may produce benign true positives (B-TPs). If this activity is expected and noisy in your\nenvironment, consider adding exceptions — preferably with a combination of user and command line conditions.\n\n### Related rules\n\n- Volume Shadow Copy Deleted or Resized via VssAdmin - b5ea4bfe-a1b2-421f-9d47-22a75a6f2921\n- Volume Shadow Copy Deletion via PowerShell - d99a037b-c8e2-47a5-97b9-170d076827c4\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- Priority should be given due to the advanced stage of this activity on the attack.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- If data was encrypted, deleted, or modified, activate your data recovery plan.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Perform data recovery locally or restore the backups from replicated copies (cloud, other servers, etc.).\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"process where event.type == \"start\"\n and (process.name : \"vssadmin.exe\" or process.pe.original_file_name == \"VSSADMIN.EXE\") and\n process.args in (\"delete\", \"resize\") and process.args : \"shadows*\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"b5ea4bfe-a1b2-421f-9d47-22a75a6f2921:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b5ea4bfe-a1b2-421f-9d47-22a75a6f2921:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b5ea4bfe-a1b2-421f-9d47-22a75a6f2921:102.0.1.json new file mode 100644 index 0000000000000..837ba2f12e804 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b5ea4bfe-a1b2-421f-9d47-22a75a6f2921:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Volume Shadow Copy Deleted or Resized via VssAdmin v102.0.1","rule_id":"b5ea4bfe-a1b2-421f-9d47-22a75a6f2921:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of vssadmin.exe for shadow copy deletion or resizing on endpoints. This commonly occurs in tandem with ransomware or other destructive attacks.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Volume Shadow Copy Deleted or Resized via VssAdmin\n\nThe Volume Shadow Copy Service (VSS) is a Windows feature that enables system administrators to take snapshots of volumes\nthat can later be restored or mounted to recover specific files or folders.\n\nA typical step in the playbook of an attacker attempting to deploy ransomware is to delete Volume Shadow\nCopies to ensure that victims have no alternative to paying the ransom, making any action that deletes shadow\ncopies worth monitoring.\n\nThis rule monitors the execution of Vssadmin.exe to either delete or resize shadow copies.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- In the case of a resize operation, check if the resize value is equal to suspicious values, like 401MB.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- If unsigned files are found on the process tree, retrieve them and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Use process name, command line, and file hash to search for occurrences in other hosts.\n- Check if any files on the host machine have been encrypted.\n\n\n### False positive analysis\n\n- This rule may produce benign true positives (B-TPs). If this activity is expected and noisy in your\nenvironment, consider adding exceptions — preferably with a combination of user and command line conditions.\n\n### Related rules\n\n- Volume Shadow Copy Deleted or Resized via VssAdmin - b5ea4bfe-a1b2-421f-9d47-22a75a6f2921\n- Volume Shadow Copy Deletion via PowerShell - d99a037b-c8e2-47a5-97b9-170d076827c4\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- Priority should be given due to the advanced stage of this activity on the attack.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- If data was encrypted, deleted, or modified, activate your data recovery plan.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Perform data recovery locally or restore the backups from replicated copies (cloud, other servers, etc.).\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"process where event.type == \"start\"\n and (process.name : \"vssadmin.exe\" or process.pe.original_file_name == \"VSSADMIN.EXE\") and\n process.args in (\"delete\", \"resize\") and process.args : \"shadows*\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"b5ea4bfe-a1b2-421f-9d47-22a75a6f2921:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b5ea4bfe-a1b2-421f-9d47-22a75a6f2921:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b5ea4bfe-a1b2-421f-9d47-22a75a6f2921:102.0.2.json new file mode 100644 index 0000000000000..8b9291dc875ec --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b5ea4bfe-a1b2-421f-9d47-22a75a6f2921:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Volume Shadow Copy Deleted or Resized via VssAdmin v102.0.2","rule_id":"b5ea4bfe-a1b2-421f-9d47-22a75a6f2921:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of vssadmin.exe for shadow copy deletion or resizing on endpoints. This commonly occurs in tandem with ransomware or other destructive attacks.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Volume Shadow Copy Deleted or Resized via VssAdmin\n\nThe Volume Shadow Copy Service (VSS) is a Windows feature that enables system administrators to take snapshots of volumes\nthat can later be restored or mounted to recover specific files or folders.\n\nA typical step in the playbook of an attacker attempting to deploy ransomware is to delete Volume Shadow\nCopies to ensure that victims have no alternative to paying the ransom, making any action that deletes shadow\ncopies worth monitoring.\n\nThis rule monitors the execution of Vssadmin.exe to either delete or resize shadow copies.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- In the case of a resize operation, check if the resize value is equal to suspicious values, like 401MB.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- If unsigned files are found on the process tree, retrieve them and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Use process name, command line, and file hash to search for occurrences in other hosts.\n- Check if any files on the host machine have been encrypted.\n\n\n### False positive analysis\n\n- This rule may produce benign true positives (B-TPs). If this activity is expected and noisy in your\nenvironment, consider adding exceptions — preferably with a combination of user and command line conditions.\n\n### Related rules\n\n- Volume Shadow Copy Deleted or Resized via VssAdmin - b5ea4bfe-a1b2-421f-9d47-22a75a6f2921\n- Volume Shadow Copy Deletion via PowerShell - d99a037b-c8e2-47a5-97b9-170d076827c4\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- Priority should be given due to the advanced stage of this activity on the attack.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- If data was encrypted, deleted, or modified, activate your data recovery plan.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Perform data recovery locally or restore the backups from replicated copies (cloud, other servers, etc.).\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"process where event.type == \"start\"\n and (process.name : \"vssadmin.exe\" or process.pe.original_file_name == \"VSSADMIN.EXE\") and\n process.args in (\"delete\", \"resize\") and process.args : \"shadows*\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"b5ea4bfe-a1b2-421f-9d47-22a75a6f2921:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b627cd12-dac4-11ec-9582-f661ea17fbcd:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b627cd12-dac4-11ec-9582-f661ea17fbcd:100.0.0.json new file mode 100644 index 0000000000000..a9f228bd90878 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b627cd12-dac4-11ec-9582-f661ea17fbcd:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Elastic Agent Service Terminated v100.0.0","rule_id":"b627cd12-dac4-11ec-9582-f661ea17fbcd:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the Elastic endpoint agent has stopped and is no longer running on the host. Adversaries may attempt to disable security monitoring tools in an attempt to evade detection or prevention capabilities during an intrusion. This may also indicate an issue with the agent itself and should be addressed to ensure defensive measures are back in a stable state.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Windows","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"process where\n/* net, sc or wmic stopping or deleting Elastic Agent on Windows */\n(event.type == \"start\" and\n process.name : (\"net.exe\", \"sc.exe\", \"wmic.exe\",\"powershell.exe\",\"taskkill.exe\",\"PsKill.exe\",\"ProcessHacker.exe\") and\n process.args : (\"stopservice\",\"uninstall\", \"stop\", \"disabled\",\"Stop-Process\",\"terminate\",\"suspend\") and\n process.args : (\"elasticendpoint\", \"Elastic Agent\",\"elastic-agent\",\"elastic-endpoint\"))\nor\n/* service or systemctl used to stop Elastic Agent on Linux */\n(event.type == \"end\" and\n (process.name : (\"systemctl\", \"service\") and\n process.args : \"elastic-agent\" and\n process.args : \"stop\")\n or\n /* Unload Elastic Agent extension on MacOS */\n (process.name : \"kextunload\" and\n process.args : \"com.apple.iokit.EndpointSecurity\" and\n event.action : \"end\"))\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"b627cd12-dac4-11ec-9582-f661ea17fbcd:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b627cd12-dac4-11ec-9582-f661ea17fbcd:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b627cd12-dac4-11ec-9582-f661ea17fbcd:100.0.1.json new file mode 100644 index 0000000000000..2245852bd5ff1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b627cd12-dac4-11ec-9582-f661ea17fbcd:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Elastic Agent Service Terminated v100.0.1","rule_id":"b627cd12-dac4-11ec-9582-f661ea17fbcd:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the Elastic endpoint agent has stopped and is no longer running on the host. Adversaries may attempt to disable security monitoring tools in an attempt to evade detection or prevention capabilities during an intrusion. This may also indicate an issue with the agent itself and should be addressed to ensure defensive measures are back in a stable state.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Windows","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"process where\n/* net, sc or wmic stopping or deleting Elastic Agent on Windows */\n(event.type == \"start\" and\n process.name : (\"net.exe\", \"sc.exe\", \"wmic.exe\",\"powershell.exe\",\"taskkill.exe\",\"PsKill.exe\",\"ProcessHacker.exe\") and\n process.args : (\"stopservice\",\"uninstall\", \"stop\", \"disabled\",\"Stop-Process\",\"terminate\",\"suspend\") and\n process.args : (\"elasticendpoint\", \"Elastic Agent\",\"elastic-agent\",\"elastic-endpoint\"))\nor\n/* service or systemctl used to stop Elastic Agent on Linux */\n(event.type == \"end\" and\n (process.name : (\"systemctl\", \"service\") and\n process.args : \"elastic-agent\" and\n process.args : \"stop\")\n or\n /* Unload Elastic Agent extension on MacOS */\n (process.name : \"kextunload\" and\n process.args : \"com.apple.iokit.EndpointSecurity\" and\n event.action : \"end\"))\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"b627cd12-dac4-11ec-9582-f661ea17fbcd:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b627cd12-dac4-11ec-9582-f661ea17fbcd:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b627cd12-dac4-11ec-9582-f661ea17fbcd:100.0.2.json new file mode 100644 index 0000000000000..f9f443ab0bfa3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b627cd12-dac4-11ec-9582-f661ea17fbcd:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Elastic Agent Service Terminated v100.0.2","rule_id":"b627cd12-dac4-11ec-9582-f661ea17fbcd:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the Elastic endpoint agent has stopped and is no longer running on the host. Adversaries may attempt to disable security monitoring tools in an attempt to evade detection or prevention capabilities during an intrusion. This may also indicate an issue with the agent itself and should be addressed to ensure defensive measures are back in a stable state.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Windows","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"process where\n/* net, sc or wmic stopping or deleting Elastic Agent on Windows */\n(event.type == \"start\" and\n process.name : (\"net.exe\", \"sc.exe\", \"wmic.exe\",\"powershell.exe\",\"taskkill.exe\",\"PsKill.exe\",\"ProcessHacker.exe\") and\n process.args : (\"stopservice\",\"uninstall\", \"stop\", \"disabled\",\"Stop-Process\",\"terminate\",\"suspend\") and\n process.args : (\"elasticendpoint\", \"Elastic Agent\",\"elastic-agent\",\"elastic-endpoint\"))\nor\n/* service or systemctl used to stop Elastic Agent on Linux */\n(event.type == \"end\" and\n (process.name : (\"systemctl\", \"service\") and\n process.args : \"elastic-agent\" and\n process.args : \"stop\")\n or\n /* Unload Elastic Agent extension on MacOS */\n (process.name : \"kextunload\" and\n process.args : \"com.apple.iokit.EndpointSecurity\" and\n event.action : \"end\"))\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"b627cd12-dac4-11ec-9582-f661ea17fbcd:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b64b183e-1a76-422d-9179-7b389513e74d:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b64b183e-1a76-422d-9179-7b389513e74d:101.0.0.json new file mode 100644 index 0000000000000..3961ad5f4ce0f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b64b183e-1a76-422d-9179-7b389513e74d:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Windows Script Interpreter Executing Process via WMI v101.0.0","rule_id":"b64b183e-1a76-422d-9179-7b389513e74d:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the built-in Windows script interpreters (cscript.exe or wscript.exe) being used to execute a process via Windows Management Instrumentation (WMI). This may be indicative of malicious activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan = 5s\n [any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : \"wmiutils.dll\" or file.name : \"wmiutils.dll\") and process.name : (\"wscript.exe\", \"cscript.exe\")]\n [process where event.type == \"start\" and\n process.parent.name : \"wmiprvse.exe\" and\n user.domain != \"NT AUTHORITY\" and\n (process.pe.original_file_name :\n (\n \"cscript.exe\",\n \"wscript.exe\",\n \"PowerShell.EXE\",\n \"Cmd.Exe\",\n \"MSHTA.EXE\",\n \"RUNDLL32.EXE\",\n \"REGSVR32.EXE\",\n \"MSBuild.exe\",\n \"InstallUtil.exe\",\n \"RegAsm.exe\",\n \"RegSvcs.exe\",\n \"msxsl.exe\",\n \"CONTROL.EXE\",\n \"EXPLORER.EXE\",\n \"Microsoft.Workflow.Compiler.exe\",\n \"msiexec.exe\"\n ) or\n process.executable : (\"C:\\\\Users\\\\*.exe\", \"C:\\\\ProgramData\\\\*.exe\")\n )\n ]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}]},"id":"b64b183e-1a76-422d-9179-7b389513e74d:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b64b183e-1a76-422d-9179-7b389513e74d:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b64b183e-1a76-422d-9179-7b389513e74d:101.0.1.json new file mode 100644 index 0000000000000..9848c5c2edc5a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b64b183e-1a76-422d-9179-7b389513e74d:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Windows Script Interpreter Executing Process via WMI v101.0.1","rule_id":"b64b183e-1a76-422d-9179-7b389513e74d:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the built-in Windows script interpreters (cscript.exe or wscript.exe) being used to execute a process via Windows Management Instrumentation (WMI). This may be indicative of malicious activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan = 5s\n [any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : \"wmiutils.dll\" or file.name : \"wmiutils.dll\") and process.name : (\"wscript.exe\", \"cscript.exe\")]\n [process where event.type == \"start\" and\n process.parent.name : \"wmiprvse.exe\" and\n user.domain != \"NT AUTHORITY\" and\n (process.pe.original_file_name :\n (\n \"cscript.exe\",\n \"wscript.exe\",\n \"PowerShell.EXE\",\n \"Cmd.Exe\",\n \"MSHTA.EXE\",\n \"RUNDLL32.EXE\",\n \"REGSVR32.EXE\",\n \"MSBuild.exe\",\n \"InstallUtil.exe\",\n \"RegAsm.exe\",\n \"RegSvcs.exe\",\n \"msxsl.exe\",\n \"CONTROL.EXE\",\n \"EXPLORER.EXE\",\n \"Microsoft.Workflow.Compiler.exe\",\n \"msiexec.exe\"\n ) or\n process.executable : (\"C:\\\\Users\\\\*.exe\", \"C:\\\\ProgramData\\\\*.exe\")\n )\n ]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}]},"id":"b64b183e-1a76-422d-9179-7b389513e74d:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b64b183e-1a76-422d-9179-7b389513e74d:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b64b183e-1a76-422d-9179-7b389513e74d:101.0.2.json new file mode 100644 index 0000000000000..c87c55d147f0a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b64b183e-1a76-422d-9179-7b389513e74d:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Windows Script Interpreter Executing Process via WMI v101.0.2","rule_id":"b64b183e-1a76-422d-9179-7b389513e74d:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the built-in Windows script interpreters (cscript.exe or wscript.exe) being used to execute a process via Windows Management Instrumentation (WMI). This may be indicative of malicious activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan = 5s\n [any where (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (dll.name : \"wmiutils.dll\" or file.name : \"wmiutils.dll\") and process.name : (\"wscript.exe\", \"cscript.exe\")]\n [process where event.type == \"start\" and\n process.parent.name : \"wmiprvse.exe\" and\n user.domain != \"NT AUTHORITY\" and\n (process.pe.original_file_name :\n (\n \"cscript.exe\",\n \"wscript.exe\",\n \"PowerShell.EXE\",\n \"Cmd.Exe\",\n \"MSHTA.EXE\",\n \"RUNDLL32.EXE\",\n \"REGSVR32.EXE\",\n \"MSBuild.exe\",\n \"InstallUtil.exe\",\n \"RegAsm.exe\",\n \"RegSvcs.exe\",\n \"msxsl.exe\",\n \"CONTROL.EXE\",\n \"EXPLORER.EXE\",\n \"Microsoft.Workflow.Compiler.exe\",\n \"msiexec.exe\"\n ) or\n process.executable : (\"C:\\\\Users\\\\*.exe\", \"C:\\\\ProgramData\\\\*.exe\")\n )\n ]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}]},"id":"b64b183e-1a76-422d-9179-7b389513e74d:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b6dce542-2b75-4ffb-b7d6-38787298ba9d:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b6dce542-2b75-4ffb-b7d6-38787298ba9d:101.0.0.json new file mode 100644 index 0000000000000..396460508b267 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b6dce542-2b75-4ffb-b7d6-38787298ba9d:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Event Hub Authorization Rule Created or Updated v101.0.0","rule_id":"b6dce542-2b75-4ffb-b7d6-38787298ba9d:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Event Hub Authorization Rule is created or updated in Azure. An authorization rule is associated with specific rights, and carries a pair of cryptographic keys. When you create an Event Hubs namespace, a policy rule named RootManageSharedAccessKey is created for the namespace. This has manage permissions for the entire namespace and it's recommended that you treat this rule like an administrative root account and don't use it in your application.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Authorization rule additions or modifications may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Authorization rule additions or modifications from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/event-hubs/authorize-access-shared-access-signature"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1530","name":"Data from Cloud Storage Object","reference":"https://attack.mitre.org/techniques/T1530/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.EVENTHUB/NAMESPACES/AUTHORIZATIONRULES/WRITE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"b6dce542-2b75-4ffb-b7d6-38787298ba9d:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b6dce542-2b75-4ffb-b7d6-38787298ba9d:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b6dce542-2b75-4ffb-b7d6-38787298ba9d:101.0.1.json new file mode 100644 index 0000000000000..79fb71884f4a0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b6dce542-2b75-4ffb-b7d6-38787298ba9d:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Event Hub Authorization Rule Created or Updated v101.0.1","rule_id":"b6dce542-2b75-4ffb-b7d6-38787298ba9d:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Event Hub Authorization Rule is created or updated in Azure. An authorization rule is associated with specific rights, and carries a pair of cryptographic keys. When you create an Event Hubs namespace, a policy rule named RootManageSharedAccessKey is created for the namespace. This has manage permissions for the entire namespace and it's recommended that you treat this rule like an administrative root account and don't use it in your application.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Authorization rule additions or modifications may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Authorization rule additions or modifications from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/event-hubs/authorize-access-shared-access-signature"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1530","name":"Data from Cloud Storage Object","reference":"https://attack.mitre.org/techniques/T1530/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.EVENTHUB/NAMESPACES/AUTHORIZATIONRULES/WRITE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"b6dce542-2b75-4ffb-b7d6-38787298ba9d:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b6dce542-2b75-4ffb-b7d6-38787298ba9d:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b6dce542-2b75-4ffb-b7d6-38787298ba9d:101.0.2.json new file mode 100644 index 0000000000000..49a48a35c283c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b6dce542-2b75-4ffb-b7d6-38787298ba9d:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Event Hub Authorization Rule Created or Updated v101.0.2","rule_id":"b6dce542-2b75-4ffb-b7d6-38787298ba9d:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Event Hub Authorization Rule is created or updated in Azure. An authorization rule is associated with specific rights, and carries a pair of cryptographic keys. When you create an Event Hubs namespace, a policy rule named RootManageSharedAccessKey is created for the namespace. This has manage permissions for the entire namespace and it's recommended that you treat this rule like an administrative root account and don't use it in your application.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Authorization rule additions or modifications may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Authorization rule additions or modifications from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/event-hubs/authorize-access-shared-access-signature"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1530","name":"Data from Cloud Storage Object","reference":"https://attack.mitre.org/techniques/T1530/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.EVENTHUB/NAMESPACES/AUTHORIZATIONRULES/WRITE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"b6dce542-2b75-4ffb-b7d6-38787298ba9d:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b719a170-3bdb-4141-b0e3-13e3cf627bfe:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b719a170-3bdb-4141-b0e3-13e3cf627bfe:102.0.0.json new file mode 100644 index 0000000000000..c0c45fe68516a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b719a170-3bdb-4141-b0e3-13e3cf627bfe:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Deactivate an Okta Policy v102.0.0","rule_id":"b719a170-3bdb-4141-b0e3-13e3cf627bfe:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to deactivate an Okta policy. An adversary may attempt to deactivate an Okta policy in order to weaken an organization's security controls. For example, an adversary may attempt to deactivate an Okta multi-factor authentication (MFA) policy in order to weaken the authentication requirements for user accounts.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If the behavior of deactivating Okta policies is expected, consider adding exceptions to this rule to filter false positives."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/Security_Policies.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.lifecycle.deactivate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"b719a170-3bdb-4141-b0e3-13e3cf627bfe:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b719a170-3bdb-4141-b0e3-13e3cf627bfe:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b719a170-3bdb-4141-b0e3-13e3cf627bfe:102.0.1.json new file mode 100644 index 0000000000000..155e71c01fe65 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b719a170-3bdb-4141-b0e3-13e3cf627bfe:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Deactivate an Okta Policy v102.0.1","rule_id":"b719a170-3bdb-4141-b0e3-13e3cf627bfe:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to deactivate an Okta policy. An adversary may attempt to deactivate an Okta policy in order to weaken an organization's security controls. For example, an adversary may attempt to deactivate an Okta multi-factor authentication (MFA) policy in order to weaken the authentication requirements for user accounts.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If the behavior of deactivating Okta policies is expected, consider adding exceptions to this rule to filter false positives."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/Security_Policies.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.lifecycle.deactivate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"b719a170-3bdb-4141-b0e3-13e3cf627bfe:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b719a170-3bdb-4141-b0e3-13e3cf627bfe:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b719a170-3bdb-4141-b0e3-13e3cf627bfe:102.0.2.json new file mode 100644 index 0000000000000..2e17291e3a883 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b719a170-3bdb-4141-b0e3-13e3cf627bfe:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Deactivate an Okta Policy v102.0.2","rule_id":"b719a170-3bdb-4141-b0e3-13e3cf627bfe:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to deactivate an Okta policy. An adversary may attempt to deactivate an Okta policy in order to weaken an organization's security controls. For example, an adversary may attempt to deactivate an Okta multi-factor authentication (MFA) policy in order to weaken the authentication requirements for user accounts.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If the behavior of deactivating Okta policies is expected, consider adding exceptions to this rule to filter false positives."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/Security_Policies.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.lifecycle.deactivate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"b719a170-3bdb-4141-b0e3-13e3cf627bfe:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b8075894-0b62-46e5-977c-31275da34419:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b8075894-0b62-46e5-977c-31275da34419:102.0.0.json new file mode 100644 index 0000000000000..b474eea5a7ed7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b8075894-0b62-46e5-977c-31275da34419:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Administrator Privileges Assigned to an Okta Group v102.0.0","rule_id":"b8075894-0b62-46e5-977c-31275da34419:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when an administrator role is assigned to an Okta group. An adversary may attempt to assign administrator privileges to an Okta group in order to assign additional permissions to compromised user accounts and maintain access to their target organization.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrator roles may be assigned to Okta users by a Super Admin user. Verify that the behavior was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/administrators-admin-comparison.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:group.privilege.grant\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"b8075894-0b62-46e5-977c-31275da34419:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b8075894-0b62-46e5-977c-31275da34419:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b8075894-0b62-46e5-977c-31275da34419:102.0.1.json new file mode 100644 index 0000000000000..fd786c223551d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b8075894-0b62-46e5-977c-31275da34419:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Administrator Privileges Assigned to an Okta Group v102.0.1","rule_id":"b8075894-0b62-46e5-977c-31275da34419:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when an administrator role is assigned to an Okta group. An adversary may attempt to assign administrator privileges to an Okta group in order to assign additional permissions to compromised user accounts and maintain access to their target organization.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrator roles may be assigned to Okta users by a Super Admin user. Verify that the behavior was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/administrators-admin-comparison.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:group.privilege.grant\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"b8075894-0b62-46e5-977c-31275da34419:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b8075894-0b62-46e5-977c-31275da34419:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b8075894-0b62-46e5-977c-31275da34419:102.0.2.json new file mode 100644 index 0000000000000..e9b3768d37f4d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b8075894-0b62-46e5-977c-31275da34419:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Administrator Privileges Assigned to an Okta Group v102.0.2","rule_id":"b8075894-0b62-46e5-977c-31275da34419:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when an administrator role is assigned to an Okta group. An adversary may attempt to assign administrator privileges to an Okta group in order to assign additional permissions to compromised user accounts and maintain access to their target organization.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrator roles may be assigned to Okta users by a Super Admin user. Verify that the behavior was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/administrators-admin-comparison.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:group.privilege.grant\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"b8075894-0b62-46e5-977c-31275da34419:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b83a7e96-2eb3-4edf-8346-427b6858d3bd:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b83a7e96-2eb3-4edf-8346-427b6858d3bd:101.0.0.json new file mode 100644 index 0000000000000..ee4ea2f17338a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b83a7e96-2eb3-4edf-8346-427b6858d3bd:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Creation or Modification of Domain Backup DPAPI private key v101.0.0","rule_id":"b83a7e96-2eb3-4edf-8346-427b6858d3bd:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of Domain Backup private keys. Adversaries may extract the Data Protection API (DPAPI) domain backup key from a Domain Controller (DC) to be able to decrypt any domain user master key file.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\nDomain DPAPI Backup keys are stored on domain controllers and can be dumped remotely with tools such as Mimikatz. The resulting .pvk private key can be used to decrypt ANY domain user masterkeys, which then can be used to decrypt any secrets protected by those keys.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.dsinternals.com/en/retrieving-dpapi-backup-keys-from-active-directory/","https://posts.specterops.io/operational-guidance-for-offensive-user-dpapi-abuse-1fb7fac8b107"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.004","name":"Private Keys","reference":"https://attack.mitre.org/techniques/T1552/004/"}]},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and file.name : (\"ntds_capi_*.pfx\", \"ntds_capi_*.pvk\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"b83a7e96-2eb3-4edf-8346-427b6858d3bd:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b83a7e96-2eb3-4edf-8346-427b6858d3bd:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b83a7e96-2eb3-4edf-8346-427b6858d3bd:101.0.1.json new file mode 100644 index 0000000000000..f104f99625870 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b83a7e96-2eb3-4edf-8346-427b6858d3bd:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Creation or Modification of Domain Backup DPAPI private key v101.0.1","rule_id":"b83a7e96-2eb3-4edf-8346-427b6858d3bd:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of Domain Backup private keys. Adversaries may extract the Data Protection API (DPAPI) domain backup key from a Domain Controller (DC) to be able to decrypt any domain user master key file.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\nDomain DPAPI Backup keys are stored on domain controllers and can be dumped remotely with tools such as Mimikatz. The resulting .pvk private key can be used to decrypt ANY domain user masterkeys, which then can be used to decrypt any secrets protected by those keys.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.dsinternals.com/en/retrieving-dpapi-backup-keys-from-active-directory/","https://posts.specterops.io/operational-guidance-for-offensive-user-dpapi-abuse-1fb7fac8b107"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.004","name":"Private Keys","reference":"https://attack.mitre.org/techniques/T1552/004/"}]},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and file.name : (\"ntds_capi_*.pfx\", \"ntds_capi_*.pvk\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"b83a7e96-2eb3-4edf-8346-427b6858d3bd:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b83a7e96-2eb3-4edf-8346-427b6858d3bd:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b83a7e96-2eb3-4edf-8346-427b6858d3bd:101.0.2.json new file mode 100644 index 0000000000000..65cb80d2d8889 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b83a7e96-2eb3-4edf-8346-427b6858d3bd:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Creation or Modification of Domain Backup DPAPI private key v101.0.2","rule_id":"b83a7e96-2eb3-4edf-8346-427b6858d3bd:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of Domain Backup private keys. Adversaries may extract the Data Protection API (DPAPI) domain backup key from a Domain Controller (DC) to be able to decrypt any domain user master key file.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\nDomain DPAPI Backup keys are stored on domain controllers and can be dumped remotely with tools such as Mimikatz. The resulting .pvk private key can be used to decrypt ANY domain user masterkeys, which then can be used to decrypt any secrets protected by those keys.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.dsinternals.com/en/retrieving-dpapi-backup-keys-from-active-directory/","https://posts.specterops.io/operational-guidance-for-offensive-user-dpapi-abuse-1fb7fac8b107"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.004","name":"Private Keys","reference":"https://attack.mitre.org/techniques/T1552/004/"}]},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and file.name : (\"ntds_capi_*.pfx\", \"ntds_capi_*.pvk\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"b83a7e96-2eb3-4edf-8346-427b6858d3bd:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b86afe07-0d98-4738-b15d-8d7465f95ff5:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b86afe07-0d98-4738-b15d-8d7465f95ff5:100.0.0.json new file mode 100644 index 0000000000000..b0433f27ea05b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b86afe07-0d98-4738-b15d-8d7465f95ff5:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Network Connection via MsXsl v100.0.0","rule_id":"b86afe07-0d98-4738-b15d-8d7465f95ff5:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies msxsl.exe making a network connection. This may indicate adversarial activity as msxsl.exe is often leveraged by adversaries to execute malicious scripts and evade detection.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1220","name":"XSL Script Processing","reference":"https://attack.mitre.org/techniques/T1220/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"msxsl.exe\" and event.type == \"start\"]\n [network where process.name : \"msxsl.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\",\n \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\",\n \"100.64.0.0/10\", \"192.175.48.0/24\",\"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"b86afe07-0d98-4738-b15d-8d7465f95ff5:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b86afe07-0d98-4738-b15d-8d7465f95ff5:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b86afe07-0d98-4738-b15d-8d7465f95ff5:100.0.1.json new file mode 100644 index 0000000000000..534b60df4c453 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b86afe07-0d98-4738-b15d-8d7465f95ff5:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Network Connection via MsXsl v100.0.1","rule_id":"b86afe07-0d98-4738-b15d-8d7465f95ff5:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies msxsl.exe making a network connection. This may indicate adversarial activity as msxsl.exe is often leveraged by adversaries to execute malicious scripts and evade detection.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1220","name":"XSL Script Processing","reference":"https://attack.mitre.org/techniques/T1220/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"msxsl.exe\" and event.type == \"start\"]\n [network where process.name : \"msxsl.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\",\n \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\",\n \"100.64.0.0/10\", \"192.175.48.0/24\",\"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"b86afe07-0d98-4738-b15d-8d7465f95ff5:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b86afe07-0d98-4738-b15d-8d7465f95ff5:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b86afe07-0d98-4738-b15d-8d7465f95ff5:100.0.2.json new file mode 100644 index 0000000000000..52db5702a3a29 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b86afe07-0d98-4738-b15d-8d7465f95ff5:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Network Connection via MsXsl v100.0.2","rule_id":"b86afe07-0d98-4738-b15d-8d7465f95ff5:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies msxsl.exe making a network connection. This may indicate adversarial activity as msxsl.exe is often leveraged by adversaries to execute malicious scripts and evade detection.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1220","name":"XSL Script Processing","reference":"https://attack.mitre.org/techniques/T1220/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name : \"msxsl.exe\" and event.type == \"start\"]\n [network where process.name : \"msxsl.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\",\n \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\",\n \"100.64.0.0/10\", \"192.175.48.0/24\",\"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"b86afe07-0d98-4738-b15d-8d7465f95ff5:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b90cdde7-7e0d-4359-8bf0-2c112ce2008a:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b90cdde7-7e0d-4359-8bf0-2c112ce2008a:101.0.0.json new file mode 100644 index 0000000000000..15fb16f416ab5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b90cdde7-7e0d-4359-8bf0-2c112ce2008a:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"UAC Bypass Attempt with IEditionUpgradeManager Elevated COM Interface v101.0.0","rule_id":"b90cdde7-7e0d-4359-8bf0-2c112ce2008a:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to bypass User Account Control (UAC) by abusing an elevated COM Interface to launch a rogue Windows ClipUp program. Attackers may attempt to bypass UAC to stealthily execute code with elevated permissions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/hfiref0x/UACME"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.name : \"Clipup.exe\" and\n not process.executable : \"C:\\\\Windows\\\\System32\\\\ClipUp.exe\" and process.parent.name : \"dllhost.exe\" and\n /* CLSID of the Elevated COM Interface IEditionUpgradeManager */\n process.parent.args : \"/Processid:{BD54C901-076B-434E-B6C7-17C531F4AB41}\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"b90cdde7-7e0d-4359-8bf0-2c112ce2008a:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b90cdde7-7e0d-4359-8bf0-2c112ce2008a:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b90cdde7-7e0d-4359-8bf0-2c112ce2008a:101.0.1.json new file mode 100644 index 0000000000000..6d1918850eae2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b90cdde7-7e0d-4359-8bf0-2c112ce2008a:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"UAC Bypass Attempt with IEditionUpgradeManager Elevated COM Interface v101.0.1","rule_id":"b90cdde7-7e0d-4359-8bf0-2c112ce2008a:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to bypass User Account Control (UAC) by abusing an elevated COM Interface to launch a rogue Windows ClipUp program. Attackers may attempt to bypass UAC to stealthily execute code with elevated permissions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/hfiref0x/UACME"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.name : \"Clipup.exe\" and\n not process.executable : \"C:\\\\Windows\\\\System32\\\\ClipUp.exe\" and process.parent.name : \"dllhost.exe\" and\n /* CLSID of the Elevated COM Interface IEditionUpgradeManager */\n process.parent.args : \"/Processid:{BD54C901-076B-434E-B6C7-17C531F4AB41}\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"b90cdde7-7e0d-4359-8bf0-2c112ce2008a:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b90cdde7-7e0d-4359-8bf0-2c112ce2008a:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b90cdde7-7e0d-4359-8bf0-2c112ce2008a:101.0.2.json new file mode 100644 index 0000000000000..f753d054ef07e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b90cdde7-7e0d-4359-8bf0-2c112ce2008a:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"UAC Bypass Attempt with IEditionUpgradeManager Elevated COM Interface v101.0.2","rule_id":"b90cdde7-7e0d-4359-8bf0-2c112ce2008a:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to bypass User Account Control (UAC) by abusing an elevated COM Interface to launch a rogue Windows ClipUp program. Attackers may attempt to bypass UAC to stealthily execute code with elevated permissions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/hfiref0x/UACME"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.name : \"Clipup.exe\" and\n not process.executable : \"C:\\\\Windows\\\\System32\\\\ClipUp.exe\" and process.parent.name : \"dllhost.exe\" and\n /* CLSID of the Elevated COM Interface IEditionUpgradeManager */\n process.parent.args : \"/Processid:{BD54C901-076B-434E-B6C7-17C531F4AB41}\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"b90cdde7-7e0d-4359-8bf0-2c112ce2008a:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b910f25a-2d44-47f2-a873-aabdc0d355e6:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b910f25a-2d44-47f2-a873-aabdc0d355e6:100.0.0.json new file mode 100644 index 0000000000000..d4c841726ea85 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b910f25a-2d44-47f2-a873-aabdc0d355e6:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Chkconfig Service Add v100.0.0","rule_id":"b910f25a-2d44-47f2-a873-aabdc0d355e6:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of the chkconfig binary to manually add a service for management by chkconfig. Threat actors may utilize this technique to maintain persistence on a system. When a new service is added, chkconfig ensures that the service has either a start or a kill entry in every runlevel and when the system is rebooted the service file added will run providing long-term persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.intezer.com/blog/research/lightning-framework-new-linux-threat/"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Lightning Framework"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1037","name":"Boot or Logon Initialization Scripts","reference":"https://attack.mitre.org/techniques/T1037/","subtechnique":[{"id":"T1037.004","name":"RC Scripts","reference":"https://attack.mitre.org/techniques/T1037/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.executable : \"/usr/sbin/chkconfig\" and process.args : \"--add\") or\n (process.args : \"*chkconfig\" and process.args : \"--add\")\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},"id":"b910f25a-2d44-47f2-a873-aabdc0d355e6:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b910f25a-2d44-47f2-a873-aabdc0d355e6:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b910f25a-2d44-47f2-a873-aabdc0d355e6:100.0.1.json new file mode 100644 index 0000000000000..ae4284ff39335 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b910f25a-2d44-47f2-a873-aabdc0d355e6:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Chkconfig Service Add v100.0.1","rule_id":"b910f25a-2d44-47f2-a873-aabdc0d355e6:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of the chkconfig binary to manually add a service for management by chkconfig. Threat actors may utilize this technique to maintain persistence on a system. When a new service is added, chkconfig ensures that the service has either a start or a kill entry in every runlevel and when the system is rebooted the service file added will run providing long-term persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.intezer.com/blog/research/lightning-framework-new-linux-threat/"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Lightning Framework"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1037","name":"Boot or Logon Initialization Scripts","reference":"https://attack.mitre.org/techniques/T1037/","subtechnique":[{"id":"T1037.004","name":"RC Scripts","reference":"https://attack.mitre.org/techniques/T1037/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.executable : \"/usr/sbin/chkconfig\" and process.args : \"--add\") or\n (process.args : \"*chkconfig\" and process.args : \"--add\")\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},"id":"b910f25a-2d44-47f2-a873-aabdc0d355e6:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b910f25a-2d44-47f2-a873-aabdc0d355e6:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b910f25a-2d44-47f2-a873-aabdc0d355e6:100.0.2.json new file mode 100644 index 0000000000000..3d809cbdac1b4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b910f25a-2d44-47f2-a873-aabdc0d355e6:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Chkconfig Service Add v100.0.2","rule_id":"b910f25a-2d44-47f2-a873-aabdc0d355e6:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of the chkconfig binary to manually add a service for management by chkconfig. Threat actors may utilize this technique to maintain persistence on a system. When a new service is added, chkconfig ensures that the service has either a start or a kill entry in every runlevel and when the system is rebooted the service file added will run providing long-term persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.intezer.com/blog/research/lightning-framework-new-linux-threat/"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Lightning Framework"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1037","name":"Boot or Logon Initialization Scripts","reference":"https://attack.mitre.org/techniques/T1037/","subtechnique":[{"id":"T1037.004","name":"RC Scripts","reference":"https://attack.mitre.org/techniques/T1037/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.executable : \"/usr/sbin/chkconfig\" and process.args : \"--add\") or\n (process.args : \"*chkconfig\" and process.args : \"--add\")\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},"id":"b910f25a-2d44-47f2-a873-aabdc0d355e6:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b946c2f7-df06-4c00-a5aa-1f6fbc7bb72c:1.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b946c2f7-df06-4c00-a5aa-1f6fbc7bb72c:1.0.0.json new file mode 100644 index 0000000000000..18f2b33801b60 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b946c2f7-df06-4c00-a5aa-1f6fbc7bb72c:1.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Multiple Alerts in Different ATT&CK Tactics on a Single Host v1.0.0","rule_id":"b946c2f7-df06-4c00-a5aa-1f6fbc7bb72c:1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule uses alert data to determine when multiple alerts in different phases of an attack involving the same host are triggered. Analysts can use this to prioritize triage and response, as these hosts are more likely to be compromised.","risk_score":73,"severity":"high","license":"Elastic License v2","timeline_id":"4434b91a-94ca-4a89-83cb-a37cdc0532b7","timeline_title":"Alerts Involving a Single Host Timeline","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["False positives can occur because the rules may be mapped to a few MITRE ATT&CK tactics. Use the attached Timeline to determine which detections were triggered on the host."],"from":"now-24h","interval":"1h","tags":["Elastic","Threat Detection","Higher-Order Rules"],"query":"signal.rule.name:* and kibana.alert.rule.threat.tactic.id:*\n","threshold":{"field":["host.id"],"value":1,"cardinality":[{"field":"kibana.alert.rule.threat.tactic.id","value":3}]},"type":"threshold","index":[".alerts-*"],"language":"kuery","required_fields":[{"ecs":false,"name":"kibana.alert.rule.threat.tactic.id","type":"unknown"},{"ecs":false,"name":"signal.rule.name","type":"unknown"}]},"id":"b946c2f7-df06-4c00-a5aa-1f6fbc7bb72c:1.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b946c2f7-df06-4c00-a5aa-1f6fbc7bb72c:1.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b946c2f7-df06-4c00-a5aa-1f6fbc7bb72c:1.0.1.json new file mode 100644 index 0000000000000..3ca1c94b92414 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b946c2f7-df06-4c00-a5aa-1f6fbc7bb72c:1.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Multiple Alerts in Different ATT&CK Tactics on a Single Host v1.0.1","rule_id":"b946c2f7-df06-4c00-a5aa-1f6fbc7bb72c:1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule uses alert data to determine when multiple alerts in different phases of an attack involving the same host are triggered. Analysts can use this to prioritize triage and response, as these hosts are more likely to be compromised.","risk_score":73,"severity":"high","license":"Elastic License v2","timeline_id":"4434b91a-94ca-4a89-83cb-a37cdc0532b7","timeline_title":"Alerts Involving a Single Host Timeline","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["False positives can occur because the rules may be mapped to a few MITRE ATT&CK tactics. Use the attached Timeline to determine which detections were triggered on the host."],"from":"now-24h","interval":"1h","tags":["Elastic","Threat Detection","Higher-Order Rules"],"query":"signal.rule.name:* and kibana.alert.rule.threat.tactic.id:*\n","threshold":{"field":["host.id"],"value":1,"cardinality":[{"field":"kibana.alert.rule.threat.tactic.id","value":3}]},"type":"threshold","index":[".alerts-*"],"language":"kuery","required_fields":[{"ecs":false,"name":"kibana.alert.rule.threat.tactic.id","type":"unknown"},{"ecs":false,"name":"signal.rule.name","type":"unknown"}]},"id":"b946c2f7-df06-4c00-a5aa-1f6fbc7bb72c:1.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b946c2f7-df06-4c00-a5aa-1f6fbc7bb72c:1.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b946c2f7-df06-4c00-a5aa-1f6fbc7bb72c:1.0.2.json new file mode 100644 index 0000000000000..be2d00a4fa022 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b946c2f7-df06-4c00-a5aa-1f6fbc7bb72c:1.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Multiple Alerts in Different ATT&CK Tactics on a Single Host v1.0.2","rule_id":"b946c2f7-df06-4c00-a5aa-1f6fbc7bb72c:1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule uses alert data to determine when multiple alerts in different phases of an attack involving the same host are triggered. Analysts can use this to prioritize triage and response, as these hosts are more likely to be compromised.","risk_score":73,"severity":"high","license":"Elastic License v2","timeline_id":"4434b91a-94ca-4a89-83cb-a37cdc0532b7","timeline_title":"Alerts Involving a Single Host Timeline","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["False positives can occur because the rules may be mapped to a few MITRE ATT&CK tactics. Use the attached Timeline to determine which detections were triggered on the host."],"from":"now-24h","interval":"1h","tags":["Elastic","Threat Detection","Higher-Order Rules"],"query":"signal.rule.name:* and kibana.alert.rule.threat.tactic.id:*\n","threshold":{"field":["host.id"],"value":1,"cardinality":[{"field":"kibana.alert.rule.threat.tactic.id","value":3}]},"type":"threshold","index":[".alerts-*"],"language":"kuery","required_fields":[{"ecs":false,"name":"kibana.alert.rule.threat.tactic.id","type":"unknown"},{"ecs":false,"name":"signal.rule.name","type":"unknown"}]},"id":"b946c2f7-df06-4c00-a5aa-1f6fbc7bb72c:1.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b9554892-5e0e-424b-83a0-5aef95aa43bf:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b9554892-5e0e-424b-83a0-5aef95aa43bf:102.0.0.json new file mode 100644 index 0000000000000..e2427835e87be --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b9554892-5e0e-424b-83a0-5aef95aa43bf:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Group Policy Abuse for Privilege Addition v102.0.0","rule_id":"b9554892-5e0e-424b-83a0-5aef95aa43bf:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the first occurrence of a modification to Group Policy Object Attributes to add privileges to user accounts or use them to add users as local admins.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Group Policy Abuse for Privilege Addition\n\nGroup Policy Objects (GPOs) can be used to add rights and/or modify Group Membership on GPOs by changing the contents of an INF\nfile named GptTmpl.inf, which is responsible for storing every setting under the Security Settings container in the GPO.\nThis file is unique for each GPO, and only exists if the GPO contains security settings.\nExample Path: \"\\\\DC.com\\SysVol\\DC.com\\Policies\\{PolicyGUID}\\Machine\\Microsoft\\Windows NT\\SecEdit\\GptTmpl.inf\"\n\n#### Possible investigation steps\n\n- This attack abuses a legitimate mechanism of Active Directory, so it is important to determine whether the activity\nis legitimate and the administrator is authorized to perform this operation.\n- Retrieve the contents of the `GptTmpl.inf` file, and under the `Privilege Rights` section, look for potentially\ndangerous high privileges, for example: SeTakeOwnershipPrivilege, SeEnableDelegationPrivilege, etc.\n- Inspect the user security identifiers (SIDs) associated with these privileges, and if they should have these privileges.\n\n### False positive analysis\n\n- Inspect whether the user that has done the modifications should be allowed to. The user name can be found in the\n`winlog.event_data.SubjectUserName` field.\n\n### Related rules\n\n- Scheduled Task Execution at Scale via GPO - 15a8ba77-1c13-4274-88fe-6bd14133861e\n- Startup/Logon Script added to Group Policy Object - 16fac1a1-21ee-4ca6-b720-458e3855d046\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- The investigation and containment must be performed in every computer controlled by the GPO, where necessary.\n- Remove the script from the GPO.\n- Check if other GPOs have suspicious scripts attached.","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0025_windows_audit_directory_service_changes.md","https://labs.f-secure.com/tools/sharpgpoabuse"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1484","name":"Domain Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/","subtechnique":[{"id":"T1484.001","name":"Group Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.code: \"5136\" and winlog.event_data.AttributeLDAPDisplayName:\"gPCMachineExtensionNames\" and\nwinlog.event_data.AttributeValue:(*827D319E-6EAC-11D2-A4EA-00C04F79F83A* and *803E14A0-B4FB-11D0-A0D0-00A0C90F574B*)\n","required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeValue","type":"unknown"}],"setup":"The 'Audit Directory Service Changes' audit policy must be configured (Success Failure).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```"},"id":"b9554892-5e0e-424b-83a0-5aef95aa43bf:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b9554892-5e0e-424b-83a0-5aef95aa43bf:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b9554892-5e0e-424b-83a0-5aef95aa43bf:102.0.1.json new file mode 100644 index 0000000000000..aeb65e7ad6583 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b9554892-5e0e-424b-83a0-5aef95aa43bf:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Group Policy Abuse for Privilege Addition v102.0.1","rule_id":"b9554892-5e0e-424b-83a0-5aef95aa43bf:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the first occurrence of a modification to Group Policy Object Attributes to add privileges to user accounts or use them to add users as local admins.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Group Policy Abuse for Privilege Addition\n\nGroup Policy Objects (GPOs) can be used to add rights and/or modify Group Membership on GPOs by changing the contents of an INF\nfile named GptTmpl.inf, which is responsible for storing every setting under the Security Settings container in the GPO.\nThis file is unique for each GPO, and only exists if the GPO contains security settings.\nExample Path: \"\\\\DC.com\\SysVol\\DC.com\\Policies\\{PolicyGUID}\\Machine\\Microsoft\\Windows NT\\SecEdit\\GptTmpl.inf\"\n\n#### Possible investigation steps\n\n- This attack abuses a legitimate mechanism of Active Directory, so it is important to determine whether the activity\nis legitimate and the administrator is authorized to perform this operation.\n- Retrieve the contents of the `GptTmpl.inf` file, and under the `Privilege Rights` section, look for potentially\ndangerous high privileges, for example: SeTakeOwnershipPrivilege, SeEnableDelegationPrivilege, etc.\n- Inspect the user security identifiers (SIDs) associated with these privileges, and if they should have these privileges.\n\n### False positive analysis\n\n- Inspect whether the user that has done the modifications should be allowed to. The user name can be found in the\n`winlog.event_data.SubjectUserName` field.\n\n### Related rules\n\n- Scheduled Task Execution at Scale via GPO - 15a8ba77-1c13-4274-88fe-6bd14133861e\n- Startup/Logon Script added to Group Policy Object - 16fac1a1-21ee-4ca6-b720-458e3855d046\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- The investigation and containment must be performed in every computer controlled by the GPO, where necessary.\n- Remove the script from the GPO.\n- Check if other GPOs have suspicious scripts attached.","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0025_windows_audit_directory_service_changes.md","https://labs.f-secure.com/tools/sharpgpoabuse"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1484","name":"Domain Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/","subtechnique":[{"id":"T1484.001","name":"Group Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.code: \"5136\" and winlog.event_data.AttributeLDAPDisplayName:\"gPCMachineExtensionNames\" and\nwinlog.event_data.AttributeValue:(*827D319E-6EAC-11D2-A4EA-00C04F79F83A* and *803E14A0-B4FB-11D0-A0D0-00A0C90F574B*)\n","required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeValue","type":"unknown"}],"setup":"The 'Audit Directory Service Changes' audit policy must be configured (Success Failure).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```"},"id":"b9554892-5e0e-424b-83a0-5aef95aa43bf:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b9554892-5e0e-424b-83a0-5aef95aa43bf:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b9554892-5e0e-424b-83a0-5aef95aa43bf:102.0.2.json new file mode 100644 index 0000000000000..106a590fcee89 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b9554892-5e0e-424b-83a0-5aef95aa43bf:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Group Policy Abuse for Privilege Addition v102.0.2","rule_id":"b9554892-5e0e-424b-83a0-5aef95aa43bf:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the first occurrence of a modification to Group Policy Object Attributes to add privileges to user accounts or use them to add users as local admins.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Group Policy Abuse for Privilege Addition\n\nGroup Policy Objects (GPOs) can be used to add rights and/or modify Group Membership on GPOs by changing the contents of an INF\nfile named GptTmpl.inf, which is responsible for storing every setting under the Security Settings container in the GPO.\nThis file is unique for each GPO, and only exists if the GPO contains security settings.\nExample Path: \"\\\\DC.com\\SysVol\\DC.com\\Policies\\{PolicyGUID}\\Machine\\Microsoft\\Windows NT\\SecEdit\\GptTmpl.inf\"\n\n#### Possible investigation steps\n\n- This attack abuses a legitimate mechanism of Active Directory, so it is important to determine whether the activity\nis legitimate and the administrator is authorized to perform this operation.\n- Retrieve the contents of the `GptTmpl.inf` file, and under the `Privilege Rights` section, look for potentially\ndangerous high privileges, for example: SeTakeOwnershipPrivilege, SeEnableDelegationPrivilege, etc.\n- Inspect the user security identifiers (SIDs) associated with these privileges, and if they should have these privileges.\n\n### False positive analysis\n\n- Inspect whether the user that has done the modifications should be allowed to. The user name can be found in the\n`winlog.event_data.SubjectUserName` field.\n\n### Related rules\n\n- Scheduled Task Execution at Scale via GPO - 15a8ba77-1c13-4274-88fe-6bd14133861e\n- Startup/Logon Script added to Group Policy Object - 16fac1a1-21ee-4ca6-b720-458e3855d046\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- The investigation and containment must be performed in every computer controlled by the GPO, where necessary.\n- Remove the script from the GPO.\n- Check if other GPOs have suspicious scripts attached.","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://github.com/atc-project/atc-data/blob/master/docs/Logging_Policies/LP_0025_windows_audit_directory_service_changes.md","https://labs.f-secure.com/tools/sharpgpoabuse"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1484","name":"Domain Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/","subtechnique":[{"id":"T1484.001","name":"Group Policy Modification","reference":"https://attack.mitre.org/techniques/T1484/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.code: \"5136\" and winlog.event_data.AttributeLDAPDisplayName:\"gPCMachineExtensionNames\" and\nwinlog.event_data.AttributeValue:(*827D319E-6EAC-11D2-A4EA-00C04F79F83A* and *803E14A0-B4FB-11D0-A0D0-00A0C90F574B*)\n","required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AttributeLDAPDisplayName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.AttributeValue","type":"unknown"}],"setup":"The 'Audit Directory Service Changes' audit policy must be configured (Success Failure).\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nDS Access >\nAudit Directory Service Changes (Success,Failure)\n```"},"id":"b9554892-5e0e-424b-83a0-5aef95aa43bf:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b9666521-4742-49ce-9ddc-b8e84c35acae:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b9666521-4742-49ce-9ddc-b8e84c35acae:100.0.0.json new file mode 100644 index 0000000000000..c53911e3f9368 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b9666521-4742-49ce-9ddc-b8e84c35acae:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Creation of Hidden Files and Directories via CommandLine v100.0.0","rule_id":"b9666521-4742-49ce-9ddc-b8e84c35acae:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Users can mark specific files as hidden simply by putting a \".\" as the first character in the file or folder name. Adversaries can use this to their advantage to hide files and folders on the system for persistence and defense evasion. This rule looks for hidden files or folders in common writable directories.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain tools may create hidden temporary files or directories upon installation or as part of their normal behavior. These events can be filtered by the process arguments, username, or process name values."],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.001","name":"Hidden Files and Directories","reference":"https://attack.mitre.org/techniques/T1564/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.working_directory in (\"/tmp\", \"/var/tmp\", \"/dev/shm\") and\n process.args regex~ \"\"\"\\.[a-z0-9_\\-][a-z0-9_\\-\\.]{1,254}\"\"\" and\n not process.name in (\"ls\", \"find\", \"grep\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.working_directory","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"b9666521-4742-49ce-9ddc-b8e84c35acae:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b9666521-4742-49ce-9ddc-b8e84c35acae:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b9666521-4742-49ce-9ddc-b8e84c35acae:100.0.1.json new file mode 100644 index 0000000000000..71721da3240f6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b9666521-4742-49ce-9ddc-b8e84c35acae:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Creation of Hidden Files and Directories via CommandLine v100.0.1","rule_id":"b9666521-4742-49ce-9ddc-b8e84c35acae:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Users can mark specific files as hidden simply by putting a \".\" as the first character in the file or folder name. Adversaries can use this to their advantage to hide files and folders on the system for persistence and defense evasion. This rule looks for hidden files or folders in common writable directories.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain tools may create hidden temporary files or directories upon installation or as part of their normal behavior. These events can be filtered by the process arguments, username, or process name values."],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.001","name":"Hidden Files and Directories","reference":"https://attack.mitre.org/techniques/T1564/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.working_directory in (\"/tmp\", \"/var/tmp\", \"/dev/shm\") and\n process.args regex~ \"\"\"\\.[a-z0-9_\\-][a-z0-9_\\-\\.]{1,254}\"\"\" and\n not process.name in (\"ls\", \"find\", \"grep\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.working_directory","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"b9666521-4742-49ce-9ddc-b8e84c35acae:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b9666521-4742-49ce-9ddc-b8e84c35acae:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b9666521-4742-49ce-9ddc-b8e84c35acae:100.0.2.json new file mode 100644 index 0000000000000..6730ea4718820 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b9666521-4742-49ce-9ddc-b8e84c35acae:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Creation of Hidden Files and Directories via CommandLine v100.0.2","rule_id":"b9666521-4742-49ce-9ddc-b8e84c35acae:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Users can mark specific files as hidden simply by putting a \".\" as the first character in the file or folder name. Adversaries can use this to their advantage to hide files and folders on the system for persistence and defense evasion. This rule looks for hidden files or folders in common writable directories.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain tools may create hidden temporary files or directories upon installation or as part of their normal behavior. These events can be filtered by the process arguments, username, or process name values."],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1564","name":"Hide Artifacts","reference":"https://attack.mitre.org/techniques/T1564/","subtechnique":[{"id":"T1564.001","name":"Hidden Files and Directories","reference":"https://attack.mitre.org/techniques/T1564/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.working_directory in (\"/tmp\", \"/var/tmp\", \"/dev/shm\") and\n process.args regex~ \"\"\"\\.[a-z0-9_\\-][a-z0-9_\\-\\.]{1,254}\"\"\" and\n not process.name in (\"ls\", \"find\", \"grep\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.working_directory","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"b9666521-4742-49ce-9ddc-b8e84c35acae:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b9960fef-82c6-4816-befa-44745030e917:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b9960fef-82c6-4816-befa-44745030e917:101.0.0.json new file mode 100644 index 0000000000000..0cea237a5ec47 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b9960fef-82c6-4816-befa-44745030e917:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"SolarWinds Process Disabling Services via Registry v101.0.0","rule_id":"b9960fef-82c6-4816-befa-44745030e917:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a SolarWinds binary modifying the start type of a service to be disabled. An adversary may abuse this technique to manipulate relevant security services.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2020/12/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor.html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1195","name":"Supply Chain Compromise","reference":"https://attack.mitre.org/techniques/T1195/","subtechnique":[{"id":"T1195.002","name":"Compromise Software Supply Chain","reference":"https://attack.mitre.org/techniques/T1195/002/"}]}]}],"language":"eql","query":"registry where registry.path : (\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\Start\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\Start\"\n ) and\n registry.data.strings : (\"4\", \"0x00000004\") and\n process.name : (\n \"SolarWinds.BusinessLayerHost*.exe\",\n \"ConfigurationWizard*.exe\",\n \"NetflowDatabaseMaintenance*.exe\",\n \"NetFlowService*.exe\",\n \"SolarWinds.Administration*.exe\",\n \"SolarWinds.Collector.Service*.exe\",\n \"SolarwindsDiagnostics*.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"b9960fef-82c6-4816-befa-44745030e917:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b9960fef-82c6-4816-befa-44745030e917:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b9960fef-82c6-4816-befa-44745030e917:101.0.1.json new file mode 100644 index 0000000000000..06e4be87192a9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b9960fef-82c6-4816-befa-44745030e917:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"SolarWinds Process Disabling Services via Registry v101.0.1","rule_id":"b9960fef-82c6-4816-befa-44745030e917:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a SolarWinds binary modifying the start type of a service to be disabled. An adversary may abuse this technique to manipulate relevant security services.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2020/12/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor.html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1195","name":"Supply Chain Compromise","reference":"https://attack.mitre.org/techniques/T1195/","subtechnique":[{"id":"T1195.002","name":"Compromise Software Supply Chain","reference":"https://attack.mitre.org/techniques/T1195/002/"}]}]}],"language":"eql","query":"registry where registry.path : (\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\Start\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\Start\"\n ) and\n registry.data.strings : (\"4\", \"0x00000004\") and\n process.name : (\n \"SolarWinds.BusinessLayerHost*.exe\",\n \"ConfigurationWizard*.exe\",\n \"NetflowDatabaseMaintenance*.exe\",\n \"NetFlowService*.exe\",\n \"SolarWinds.Administration*.exe\",\n \"SolarWinds.Collector.Service*.exe\",\n \"SolarwindsDiagnostics*.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"b9960fef-82c6-4816-befa-44745030e917:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/b9960fef-82c6-4816-befa-44745030e917:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/b9960fef-82c6-4816-befa-44745030e917:101.0.2.json new file mode 100644 index 0000000000000..f3c6ad68e759a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/b9960fef-82c6-4816-befa-44745030e917:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"SolarWinds Process Disabling Services via Registry v101.0.2","rule_id":"b9960fef-82c6-4816-befa-44745030e917:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a SolarWinds binary modifying the start type of a service to be disabled. An adversary may abuse this technique to manipulate relevant security services.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2020/12/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor.html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1195","name":"Supply Chain Compromise","reference":"https://attack.mitre.org/techniques/T1195/","subtechnique":[{"id":"T1195.002","name":"Compromise Software Supply Chain","reference":"https://attack.mitre.org/techniques/T1195/002/"}]}]}],"language":"eql","query":"registry where registry.path : (\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\Start\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SYSTEM\\\\*ControlSet*\\\\Services\\\\*\\\\Start\"\n ) and\n registry.data.strings : (\"4\", \"0x00000004\") and\n process.name : (\n \"SolarWinds.BusinessLayerHost*.exe\",\n \"ConfigurationWizard*.exe\",\n \"NetflowDatabaseMaintenance*.exe\",\n \"NetFlowService*.exe\",\n \"SolarWinds.Administration*.exe\",\n \"SolarWinds.Collector.Service*.exe\",\n \"SolarwindsDiagnostics*.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"b9960fef-82c6-4816-befa-44745030e917:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ba342eb2-583c-439f-b04d-1fdd7c1417cc:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ba342eb2-583c-439f-b04d-1fdd7c1417cc:100.0.0.json new file mode 100644 index 0000000000000..0e18d860b88a0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ba342eb2-583c-439f-b04d-1fdd7c1417cc:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Windows Network Activity v100.0.0","rule_id":"ba342eb2-583c-439f-b04d-1fdd7c1417cc:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Windows processes that do not usually use the network but have unexpected network activity, which can indicate command-and-control, lateral movement, persistence, or data exfiltration activity. A process with unusual network activity can denote process exploitation or injection, where the process is used to run persistence mechanisms that allow a malicious actor remote access or control of the host, data exfiltration, and execution of unauthorized network applications.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Network Activity\nDetection alerts from this rule indicate the presence of network activity from a Windows process for which network activity is very unusual. Here are some possible avenues of investigation:\n- Consider the IP addresses, protocol and ports. Are these used by normal but infrequent network workflows? Are they expected or unexpected?\n- If the destination IP address is remote or external, does it associate with an expected domain, organization or geography? Note: avoid interacting directly with suspected malicious IP addresses.\n- Consider the user as identified by the username field. Is this network activity part of an expected workflow for the user who ran the program?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.\n- Consider the same for the parent process. If the parent process is a legitimate system utility or service, this could be related to software updates or system management. If the parent process is something user-facing like an Office application, this process could be more suspicious.\n- If you have file hash values in the event data, and you suspect malware, you can optionally run a search for the file hash to see if the file is identified as malware by anti-malware tools.","author":["Elastic"],"false_positives":["A newly installed program or one that rarely uses the network could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML"],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_network_activity"],"type":"machine_learning"},"id":"ba342eb2-583c-439f-b04d-1fdd7c1417cc:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ba342eb2-583c-439f-b04d-1fdd7c1417cc:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ba342eb2-583c-439f-b04d-1fdd7c1417cc:100.0.1.json new file mode 100644 index 0000000000000..0c50c58b3d7b5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ba342eb2-583c-439f-b04d-1fdd7c1417cc:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Windows Network Activity v100.0.1","rule_id":"ba342eb2-583c-439f-b04d-1fdd7c1417cc:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Windows processes that do not usually use the network but have unexpected network activity, which can indicate command-and-control, lateral movement, persistence, or data exfiltration activity. A process with unusual network activity can denote process exploitation or injection, where the process is used to run persistence mechanisms that allow a malicious actor remote access or control of the host, data exfiltration, and execution of unauthorized network applications.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Network Activity\nDetection alerts from this rule indicate the presence of network activity from a Windows process for which network activity is very unusual. Here are some possible avenues of investigation:\n- Consider the IP addresses, protocol and ports. Are these used by normal but infrequent network workflows? Are they expected or unexpected?\n- If the destination IP address is remote or external, does it associate with an expected domain, organization or geography? Note: avoid interacting directly with suspected malicious IP addresses.\n- Consider the user as identified by the username field. Is this network activity part of an expected workflow for the user who ran the program?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.\n- Consider the same for the parent process. If the parent process is a legitimate system utility or service, this could be related to software updates or system management. If the parent process is something user-facing like an Office application, this process could be more suspicious.\n- If you have file hash values in the event data, and you suspect malware, you can optionally run a search for the file hash to see if the file is identified as malware by anti-malware tools.","author":["Elastic"],"false_positives":["A newly installed program or one that rarely uses the network could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML"],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_network_activity"],"type":"machine_learning"},"id":"ba342eb2-583c-439f-b04d-1fdd7c1417cc:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ba342eb2-583c-439f-b04d-1fdd7c1417cc:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ba342eb2-583c-439f-b04d-1fdd7c1417cc:100.0.2.json new file mode 100644 index 0000000000000..6ca9145db38cd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ba342eb2-583c-439f-b04d-1fdd7c1417cc:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Windows Network Activity v100.0.2","rule_id":"ba342eb2-583c-439f-b04d-1fdd7c1417cc:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Windows processes that do not usually use the network but have unexpected network activity, which can indicate command-and-control, lateral movement, persistence, or data exfiltration activity. A process with unusual network activity can denote process exploitation or injection, where the process is used to run persistence mechanisms that allow a malicious actor remote access or control of the host, data exfiltration, and execution of unauthorized network applications.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Network Activity\nDetection alerts from this rule indicate the presence of network activity from a Windows process for which network activity is very unusual. Here are some possible avenues of investigation:\n- Consider the IP addresses, protocol and ports. Are these used by normal but infrequent network workflows? Are they expected or unexpected?\n- If the destination IP address is remote or external, does it associate with an expected domain, organization or geography? Note: avoid interacting directly with suspected malicious IP addresses.\n- Consider the user as identified by the username field. Is this network activity part of an expected workflow for the user who ran the program?\n- Examine the history of execution. If this process only manifested recently, it might be part of a new software package. If it has a consistent cadence (for example if it runs monthly or quarterly), it might be part of a monthly or quarterly business process.\n- Examine the process arguments, title and working directory. These may provide indications as to the source of the program or the nature of the tasks it is performing.\n- Consider the same for the parent process. If the parent process is a legitimate system utility or service, this could be related to software updates or system management. If the parent process is something user-facing like an Office application, this process could be more suspicious.\n- If you have file hash values in the event data, and you suspect malware, you can optionally run a search for the file hash to see if the file is identified as malware by anti-malware tools.","author":["Elastic"],"false_positives":["A newly installed program or one that rarely uses the network could trigger this alert."],"from":"now-45m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Host","Windows","Threat Detection","ML"],"anomaly_threshold":50,"machine_learning_job_id":["v3_windows_anomalous_network_activity"],"type":"machine_learning"},"id":"ba342eb2-583c-439f-b04d-1fdd7c1417cc:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/baa5d22c-5e1c-4f33-bfc9-efa73bb53022:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/baa5d22c-5e1c-4f33-bfc9-efa73bb53022:100.0.0.json new file mode 100644 index 0000000000000..9ca434c25a628 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/baa5d22c-5e1c-4f33-bfc9-efa73bb53022:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Image Load (taskschd.dll) from MS Office v100.0.0","rule_id":"baa5d22c-5e1c-4f33-bfc9-efa73bb53022:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious image load (taskschd.dll) from Microsoft Office processes. This behavior may indicate adversarial activity where a scheduled task is configured via Windows Component Object Model (COM). This technique can be used to configure persistence and evade monitoring by avoiding the usage of the traditional Windows binary (schtasks.exe) used to manage scheduled tasks.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://medium.com/threatpunter/detecting-adversary-tradecraft-with-image-load-event-logging-and-eql-8de93338c16","https://www.clearskysec.com/wp-content/uploads/2020/10/Operation-Quicksand.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/"}]}],"language":"eql","query":"any where\n (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n process.name : (\"WINWORD.EXE\", \"EXCEL.EXE\", \"POWERPNT.EXE\", \"MSPUB.EXE\", \"MSACCESS.EXE\") and\n (dll.name : \"taskschd.dll\" or file.name : \"taskschd.dll\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"baa5d22c-5e1c-4f33-bfc9-efa73bb53022:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/baa5d22c-5e1c-4f33-bfc9-efa73bb53022:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/baa5d22c-5e1c-4f33-bfc9-efa73bb53022:100.0.1.json new file mode 100644 index 0000000000000..72530aea19221 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/baa5d22c-5e1c-4f33-bfc9-efa73bb53022:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Image Load (taskschd.dll) from MS Office v100.0.1","rule_id":"baa5d22c-5e1c-4f33-bfc9-efa73bb53022:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious image load (taskschd.dll) from Microsoft Office processes. This behavior may indicate adversarial activity where a scheduled task is configured via Windows Component Object Model (COM). This technique can be used to configure persistence and evade monitoring by avoiding the usage of the traditional Windows binary (schtasks.exe) used to manage scheduled tasks.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://medium.com/threatpunter/detecting-adversary-tradecraft-with-image-load-event-logging-and-eql-8de93338c16","https://www.clearskysec.com/wp-content/uploads/2020/10/Operation-Quicksand.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/"}]}],"language":"eql","query":"any where\n (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n process.name : (\"WINWORD.EXE\", \"EXCEL.EXE\", \"POWERPNT.EXE\", \"MSPUB.EXE\", \"MSACCESS.EXE\") and\n (dll.name : \"taskschd.dll\" or file.name : \"taskschd.dll\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"baa5d22c-5e1c-4f33-bfc9-efa73bb53022:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/baa5d22c-5e1c-4f33-bfc9-efa73bb53022:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/baa5d22c-5e1c-4f33-bfc9-efa73bb53022:100.0.2.json new file mode 100644 index 0000000000000..6bb451b84d5f4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/baa5d22c-5e1c-4f33-bfc9-efa73bb53022:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Image Load (taskschd.dll) from MS Office v100.0.2","rule_id":"baa5d22c-5e1c-4f33-bfc9-efa73bb53022:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious image load (taskschd.dll) from Microsoft Office processes. This behavior may indicate adversarial activity where a scheduled task is configured via Windows Component Object Model (COM). This technique can be used to configure persistence and evade monitoring by avoiding the usage of the traditional Windows binary (schtasks.exe) used to manage scheduled tasks.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://medium.com/threatpunter/detecting-adversary-tradecraft-with-image-load-event-logging-and-eql-8de93338c16","https://www.clearskysec.com/wp-content/uploads/2020/10/Operation-Quicksand.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/"}]}],"language":"eql","query":"any where\n (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n process.name : (\"WINWORD.EXE\", \"EXCEL.EXE\", \"POWERPNT.EXE\", \"MSPUB.EXE\", \"MSACCESS.EXE\") and\n (dll.name : \"taskschd.dll\" or file.name : \"taskschd.dll\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"baa5d22c-5e1c-4f33-bfc9-efa73bb53022:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bb4fe8d2-7ae2-475c-8b5d-55b449e4264f:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bb4fe8d2-7ae2-475c-8b5d-55b449e4264f:101.0.0.json new file mode 100644 index 0000000000000..9bae441e16ee2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bb4fe8d2-7ae2-475c-8b5d-55b449e4264f:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Resource Group Deletion v101.0.0","rule_id":"bb4fe8d2-7ae2-475c-8b5d-55b449e4264f:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a resource group in Azure, which includes all resources within the group. Deletion is permanent and irreversible. An adversary may delete a resource group in an attempt to evade defenses or intentionally destroy data.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Deletion of a resource group may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Resource group deletions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-portal"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.RESOURCES/SUBSCRIPTIONS/RESOURCEGROUPS/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"bb4fe8d2-7ae2-475c-8b5d-55b449e4264f:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bb4fe8d2-7ae2-475c-8b5d-55b449e4264f:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bb4fe8d2-7ae2-475c-8b5d-55b449e4264f:101.0.1.json new file mode 100644 index 0000000000000..96a1c5222bbf3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bb4fe8d2-7ae2-475c-8b5d-55b449e4264f:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Resource Group Deletion v101.0.1","rule_id":"bb4fe8d2-7ae2-475c-8b5d-55b449e4264f:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a resource group in Azure, which includes all resources within the group. Deletion is permanent and irreversible. An adversary may delete a resource group in an attempt to evade defenses or intentionally destroy data.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Deletion of a resource group may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Resource group deletions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-portal"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.RESOURCES/SUBSCRIPTIONS/RESOURCEGROUPS/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"bb4fe8d2-7ae2-475c-8b5d-55b449e4264f:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bb4fe8d2-7ae2-475c-8b5d-55b449e4264f:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bb4fe8d2-7ae2-475c-8b5d-55b449e4264f:101.0.2.json new file mode 100644 index 0000000000000..e87e8eab54c0d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bb4fe8d2-7ae2-475c-8b5d-55b449e4264f:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Resource Group Deletion v101.0.2","rule_id":"bb4fe8d2-7ae2-475c-8b5d-55b449e4264f:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a resource group in Azure, which includes all resources within the group. Deletion is permanent and irreversible. An adversary may delete a resource group in an attempt to evade defenses or intentionally destroy data.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Deletion of a resource group may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Resource group deletions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-portal"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.RESOURCES/SUBSCRIPTIONS/RESOURCEGROUPS/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"bb4fe8d2-7ae2-475c-8b5d-55b449e4264f:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bb9b13b2-1700-48a8-a750-b43b0a72ab69:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bb9b13b2-1700-48a8-a750-b43b0a72ab69:101.0.0.json new file mode 100644 index 0000000000000..5a65e3161c008 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bb9b13b2-1700-48a8-a750-b43b0a72ab69:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS EC2 Encryption Disabled v101.0.0","rule_id":"bb9b13b2-1700-48a8-a750-b43b0a72ab69:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies disabling of Amazon Elastic Block Store (EBS) encryption by default in the current region. Disabling encryption by default does not change the encryption status of your existing volumes.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Disabling encryption may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Disabling encryption by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/disable-ebs-encryption-by-default.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisableEbsEncryptionByDefault.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Data Protection"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1565","name":"Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/","subtechnique":[{"id":"T1565.001","name":"Stored Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:DisableEbsEncryptionByDefault and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"bb9b13b2-1700-48a8-a750-b43b0a72ab69:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bb9b13b2-1700-48a8-a750-b43b0a72ab69:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bb9b13b2-1700-48a8-a750-b43b0a72ab69:101.0.1.json new file mode 100644 index 0000000000000..216257b678cb7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bb9b13b2-1700-48a8-a750-b43b0a72ab69:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS EC2 Encryption Disabled v101.0.1","rule_id":"bb9b13b2-1700-48a8-a750-b43b0a72ab69:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies disabling of Amazon Elastic Block Store (EBS) encryption by default in the current region. Disabling encryption by default does not change the encryption status of your existing volumes.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Disabling encryption may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Disabling encryption by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/disable-ebs-encryption-by-default.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisableEbsEncryptionByDefault.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Data Protection"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1565","name":"Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/","subtechnique":[{"id":"T1565.001","name":"Stored Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:DisableEbsEncryptionByDefault and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"bb9b13b2-1700-48a8-a750-b43b0a72ab69:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bb9b13b2-1700-48a8-a750-b43b0a72ab69:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bb9b13b2-1700-48a8-a750-b43b0a72ab69:101.0.2.json new file mode 100644 index 0000000000000..664eb025c8e2c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bb9b13b2-1700-48a8-a750-b43b0a72ab69:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS EC2 Encryption Disabled v101.0.2","rule_id":"bb9b13b2-1700-48a8-a750-b43b0a72ab69:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies disabling of Amazon Elastic Block Store (EBS) encryption by default in the current region. Disabling encryption by default does not change the encryption status of your existing volumes.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Disabling encryption may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Disabling encryption by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/disable-ebs-encryption-by-default.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisableEbsEncryptionByDefault.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Data Protection"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1565","name":"Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/","subtechnique":[{"id":"T1565.001","name":"Stored Data Manipulation","reference":"https://attack.mitre.org/techniques/T1565/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:DisableEbsEncryptionByDefault and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"bb9b13b2-1700-48a8-a750-b43b0a72ab69:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bba1b212-b85c-41c6-9b28-be0e5cdfc9b1:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bba1b212-b85c-41c6-9b28-be0e5cdfc9b1:101.0.0.json new file mode 100644 index 0000000000000..02c0f23fd40ba --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bba1b212-b85c-41c6-9b28-be0e5cdfc9b1:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"OneDrive Malware File Upload v101.0.0","rule_id":"bba1b212-b85c-41c6-9b28-be0e5cdfc9b1:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the occurence of files uploaded to OneDrive being detected as Malware by the file scanning engine. Attackers can use File Sharing and Organization Repositories to spread laterally within the company and amplify their access. Users can inadvertently share these files without knowing their maliciousness, giving adversaries opportunity to gain initial access to other endpoints in the environment.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Benign files can trigger signatures in the built-in virus protection"],"from":"now-30m","references":["https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/virus-detection-in-spo?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1080","name":"Taint Shared Content","reference":"https://attack.mitre.org/techniques/T1080/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:OneDrive and event.code:SharePointFileOperation and event.action:FileMalwareDetected\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"bba1b212-b85c-41c6-9b28-be0e5cdfc9b1:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bba1b212-b85c-41c6-9b28-be0e5cdfc9b1:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bba1b212-b85c-41c6-9b28-be0e5cdfc9b1:101.0.1.json new file mode 100644 index 0000000000000..41c79cf85f557 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bba1b212-b85c-41c6-9b28-be0e5cdfc9b1:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"OneDrive Malware File Upload v101.0.1","rule_id":"bba1b212-b85c-41c6-9b28-be0e5cdfc9b1:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the occurence of files uploaded to OneDrive being detected as Malware by the file scanning engine. Attackers can use File Sharing and Organization Repositories to spread laterally within the company and amplify their access. Users can inadvertently share these files without knowing their maliciousness, giving adversaries opportunity to gain initial access to other endpoints in the environment.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Benign files can trigger signatures in the built-in virus protection"],"from":"now-30m","references":["https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/virus-detection-in-spo?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1080","name":"Taint Shared Content","reference":"https://attack.mitre.org/techniques/T1080/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:OneDrive and event.code:SharePointFileOperation and event.action:FileMalwareDetected\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"bba1b212-b85c-41c6-9b28-be0e5cdfc9b1:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bba1b212-b85c-41c6-9b28-be0e5cdfc9b1:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bba1b212-b85c-41c6-9b28-be0e5cdfc9b1:101.0.2.json new file mode 100644 index 0000000000000..552414e2da1ee --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bba1b212-b85c-41c6-9b28-be0e5cdfc9b1:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"OneDrive Malware File Upload v101.0.2","rule_id":"bba1b212-b85c-41c6-9b28-be0e5cdfc9b1:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the occurence of files uploaded to OneDrive being detected as Malware by the file scanning engine. Attackers can use File Sharing and Organization Repositories to spread laterally within the company and amplify their access. Users can inadvertently share these files without knowing their maliciousness, giving adversaries opportunity to gain initial access to other endpoints in the environment.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Benign files can trigger signatures in the built-in virus protection"],"from":"now-30m","references":["https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/virus-detection-in-spo?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1080","name":"Taint Shared Content","reference":"https://attack.mitre.org/techniques/T1080/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:OneDrive and event.code:SharePointFileOperation and event.action:FileMalwareDetected\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"bba1b212-b85c-41c6-9b28-be0e5cdfc9b1:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bbd1a775-8267-41fa-9232-20e5582596ac:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bbd1a775-8267-41fa-9232-20e5582596ac:101.0.0.json new file mode 100644 index 0000000000000..aa24653d6aa96 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bbd1a775-8267-41fa-9232-20e5582596ac:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Teams Custom Application Interaction Allowed v101.0.0","rule_id":"bbd1a775-8267-41fa-9232-20e5582596ac:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when custom applications are allowed in Microsoft Teams. If an organization requires applications other than those available in the Teams app store, custom applications can be developed as packages and uploaded. An adversary may abuse this behavior to establish persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Custom applications may be allowed by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/deploy-and-publish/apps-upload"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:MicrosoftTeams and\nevent.category:web and event.action:TeamsTenantSettingChanged and\no365.audit.Name:\"Allow sideloading and interaction of custom apps\" and\no365.audit.NewValue:True and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Name","type":"keyword"},{"ecs":false,"name":"o365.audit.NewValue","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"bbd1a775-8267-41fa-9232-20e5582596ac:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bbd1a775-8267-41fa-9232-20e5582596ac:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bbd1a775-8267-41fa-9232-20e5582596ac:101.0.1.json new file mode 100644 index 0000000000000..b4bd10034ea96 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bbd1a775-8267-41fa-9232-20e5582596ac:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Teams Custom Application Interaction Allowed v101.0.1","rule_id":"bbd1a775-8267-41fa-9232-20e5582596ac:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when custom applications are allowed in Microsoft Teams. If an organization requires applications other than those available in the Teams app store, custom applications can be developed as packages and uploaded. An adversary may abuse this behavior to establish persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Custom applications may be allowed by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/deploy-and-publish/apps-upload"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:MicrosoftTeams and\nevent.category:web and event.action:TeamsTenantSettingChanged and\no365.audit.Name:\"Allow sideloading and interaction of custom apps\" and\no365.audit.NewValue:True and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Name","type":"keyword"},{"ecs":false,"name":"o365.audit.NewValue","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"bbd1a775-8267-41fa-9232-20e5582596ac:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bbd1a775-8267-41fa-9232-20e5582596ac:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bbd1a775-8267-41fa-9232-20e5582596ac:101.0.2.json new file mode 100644 index 0000000000000..2d8f27be68f39 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bbd1a775-8267-41fa-9232-20e5582596ac:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Teams Custom Application Interaction Allowed v101.0.2","rule_id":"bbd1a775-8267-41fa-9232-20e5582596ac:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when custom applications are allowed in Microsoft Teams. If an organization requires applications other than those available in the Teams app store, custom applications can be developed as packages and uploaded. An adversary may abuse this behavior to establish persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Custom applications may be allowed by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/deploy-and-publish/apps-upload"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:MicrosoftTeams and\nevent.category:web and event.action:TeamsTenantSettingChanged and\no365.audit.Name:\"Allow sideloading and interaction of custom apps\" and\no365.audit.NewValue:True and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Name","type":"keyword"},{"ecs":false,"name":"o365.audit.NewValue","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"bbd1a775-8267-41fa-9232-20e5582596ac:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bc0c6f0d-dab0-47a3-b135-0925f0a333bc:103.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bc0c6f0d-dab0-47a3-b135-0925f0a333bc:103.0.0.json new file mode 100644 index 0000000000000..47cab23302c30 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bc0c6f0d-dab0-47a3-b135-0925f0a333bc:103.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Root Login Without MFA v103.0.0","rule_id":"bc0c6f0d-dab0-47a3-b135-0925f0a333bc:103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to login to AWS as the root user without using multi-factor authentication (MFA). Amazon AWS best practices indicate that the root user should be protected by MFA.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS Root Login Without MFA\n\nMulti-factor authentication (MFA) in AWS is a simple best practice that adds an extra layer of protection on top of your\nuser name and password. With MFA enabled, when a user signs in to an AWS Management Console, they will be prompted for\ntheir user name and password, as well as for an authentication code from their AWS MFA device. Taken together, these\nmultiple factors provide increased security for your AWS account settings and resources.\n\nFor more information about using MFA in AWS, access the [official documentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html).\n\nThe AWS root account is the one identity that has complete access to all AWS services and resources in the account,\nwhich is created when the AWS account is created. AWS strongly recommends that you do not use the root user for your\neveryday tasks, even the administrative ones. Instead, adhere to the best practice of using the root user only to create\nyour first IAM user. Then securely lock away the root user credentials and use them to perform only a few account and\nservice management tasks. Amazon provides a [list of the tasks that require root user](https://docs.aws.amazon.com/general/latest/gr/root-vs-iam.html#aws_tasks-that-require-root).\n\nThis rule looks for attempts to log in to AWS as the root user without using multi-factor authentication (MFA), meaning\nthe account is not secured properly.\n\n#### Possible investigation steps\n\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Examine whether this activity is common in the environment by looking for past occurrences on your logs.\n- Consider the source IP address and geolocation for the calling user who issued the command. Do they look normal for the\n calling user?\n- Examine the commands, API calls, and data management actions performed by the account in the last 24 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking access to servers,\nservices, and data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- While this activity is not inherently malicious, the root account must use MFA. The security team should address any\npotential benign true positive (B-TP), as this configuration can risk the entire cloud environment.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Identify the services or servers involved criticality.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify if there are any regulatory or legal ramifications related to this activity.\n- Configure multi-factor authentication for the user.\n- Follow security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some organizations allow login with the root user without MFA, however, this is not considered best practice by AWS and increases the risk of compromised credentials."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:signin.amazonaws.com and event.action:ConsoleLogin and\n aws.cloudtrail.user_identity.type:Root and\n aws.cloudtrail.console_login.additional_eventdata.mfa_used:false and\n event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.console_login.additional_eventdata.mfa_used","type":"boolean"},{"ecs":false,"name":"aws.cloudtrail.user_identity.type","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"bc0c6f0d-dab0-47a3-b135-0925f0a333bc:103.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bc0c6f0d-dab0-47a3-b135-0925f0a333bc:103.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bc0c6f0d-dab0-47a3-b135-0925f0a333bc:103.0.1.json new file mode 100644 index 0000000000000..be387dc8b12cc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bc0c6f0d-dab0-47a3-b135-0925f0a333bc:103.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Root Login Without MFA v103.0.1","rule_id":"bc0c6f0d-dab0-47a3-b135-0925f0a333bc:103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to login to AWS as the root user without using multi-factor authentication (MFA). Amazon AWS best practices indicate that the root user should be protected by MFA.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS Root Login Without MFA\n\nMulti-factor authentication (MFA) in AWS is a simple best practice that adds an extra layer of protection on top of your\nuser name and password. With MFA enabled, when a user signs in to an AWS Management Console, they will be prompted for\ntheir user name and password, as well as for an authentication code from their AWS MFA device. Taken together, these\nmultiple factors provide increased security for your AWS account settings and resources.\n\nFor more information about using MFA in AWS, access the [official documentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html).\n\nThe AWS root account is the one identity that has complete access to all AWS services and resources in the account,\nwhich is created when the AWS account is created. AWS strongly recommends that you do not use the root user for your\neveryday tasks, even the administrative ones. Instead, adhere to the best practice of using the root user only to create\nyour first IAM user. Then securely lock away the root user credentials and use them to perform only a few account and\nservice management tasks. Amazon provides a [list of the tasks that require root user](https://docs.aws.amazon.com/general/latest/gr/root-vs-iam.html#aws_tasks-that-require-root).\n\nThis rule looks for attempts to log in to AWS as the root user without using multi-factor authentication (MFA), meaning\nthe account is not secured properly.\n\n#### Possible investigation steps\n\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Examine whether this activity is common in the environment by looking for past occurrences on your logs.\n- Consider the source IP address and geolocation for the calling user who issued the command. Do they look normal for the\n calling user?\n- Examine the commands, API calls, and data management actions performed by the account in the last 24 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking access to servers,\nservices, and data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- While this activity is not inherently malicious, the root account must use MFA. The security team should address any\npotential benign true positive (B-TP), as this configuration can risk the entire cloud environment.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Identify the services or servers involved criticality.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify if there are any regulatory or legal ramifications related to this activity.\n- Configure multi-factor authentication for the user.\n- Follow security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some organizations allow login with the root user without MFA, however, this is not considered best practice by AWS and increases the risk of compromised credentials."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:signin.amazonaws.com and event.action:ConsoleLogin and\n aws.cloudtrail.user_identity.type:Root and\n aws.cloudtrail.console_login.additional_eventdata.mfa_used:false and\n event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.console_login.additional_eventdata.mfa_used","type":"boolean"},{"ecs":false,"name":"aws.cloudtrail.user_identity.type","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"bc0c6f0d-dab0-47a3-b135-0925f0a333bc:103.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bc0c6f0d-dab0-47a3-b135-0925f0a333bc:103.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bc0c6f0d-dab0-47a3-b135-0925f0a333bc:103.0.2.json new file mode 100644 index 0000000000000..b2c4edea0b1ca --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bc0c6f0d-dab0-47a3-b135-0925f0a333bc:103.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Root Login Without MFA v103.0.2","rule_id":"bc0c6f0d-dab0-47a3-b135-0925f0a333bc:103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to login to AWS as the root user without using multi-factor authentication (MFA). Amazon AWS best practices indicate that the root user should be protected by MFA.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS Root Login Without MFA\n\nMulti-factor authentication (MFA) in AWS is a simple best practice that adds an extra layer of protection on top of your\nuser name and password. With MFA enabled, when a user signs in to an AWS Management Console, they will be prompted for\ntheir user name and password, as well as for an authentication code from their AWS MFA device. Taken together, these\nmultiple factors provide increased security for your AWS account settings and resources.\n\nFor more information about using MFA in AWS, access the [official documentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html).\n\nThe AWS root account is the one identity that has complete access to all AWS services and resources in the account,\nwhich is created when the AWS account is created. AWS strongly recommends that you do not use the root user for your\neveryday tasks, even the administrative ones. Instead, adhere to the best practice of using the root user only to create\nyour first IAM user. Then securely lock away the root user credentials and use them to perform only a few account and\nservice management tasks. Amazon provides a [list of the tasks that require root user](https://docs.aws.amazon.com/general/latest/gr/root-vs-iam.html#aws_tasks-that-require-root).\n\nThis rule looks for attempts to log in to AWS as the root user without using multi-factor authentication (MFA), meaning\nthe account is not secured properly.\n\n#### Possible investigation steps\n\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Examine whether this activity is common in the environment by looking for past occurrences on your logs.\n- Consider the source IP address and geolocation for the calling user who issued the command. Do they look normal for the\n calling user?\n- Examine the commands, API calls, and data management actions performed by the account in the last 24 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking access to servers,\nservices, and data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- While this activity is not inherently malicious, the root account must use MFA. The security team should address any\npotential benign true positive (B-TP), as this configuration can risk the entire cloud environment.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Identify the services or servers involved criticality.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify if there are any regulatory or legal ramifications related to this activity.\n- Configure multi-factor authentication for the user.\n- Follow security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some organizations allow login with the root user without MFA, however, this is not considered best practice by AWS and increases the risk of compromised credentials."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:signin.amazonaws.com and event.action:ConsoleLogin and\n aws.cloudtrail.user_identity.type:Root and\n aws.cloudtrail.console_login.additional_eventdata.mfa_used:false and\n event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.console_login.additional_eventdata.mfa_used","type":"boolean"},{"ecs":false,"name":"aws.cloudtrail.user_identity.type","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"bc0c6f0d-dab0-47a3-b135-0925f0a333bc:103.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bc0f2d83-32b8-4ae2-b0e6-6a45772e9331:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bc0f2d83-32b8-4ae2-b0e6-6a45772e9331:102.0.0.json new file mode 100644 index 0000000000000..b25c8c85a1ac4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bc0f2d83-32b8-4ae2-b0e6-6a45772e9331:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Storage Bucket Deletion v102.0.0","rule_id":"bc0f2d83-32b8-4ae2-b0e6-6a45772e9331:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Google Cloud Platform (GCP) storage bucket is deleted. An adversary may delete a storage bucket in order to disrupt their target's business operations.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Storage buckets may be deleted by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Bucket deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/storage/docs/key-terms#buckets"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:\"storage.buckets.delete\"\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"bc0f2d83-32b8-4ae2-b0e6-6a45772e9331:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bc0f2d83-32b8-4ae2-b0e6-6a45772e9331:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bc0f2d83-32b8-4ae2-b0e6-6a45772e9331:102.0.1.json new file mode 100644 index 0000000000000..39a2410c048d2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bc0f2d83-32b8-4ae2-b0e6-6a45772e9331:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Storage Bucket Deletion v102.0.1","rule_id":"bc0f2d83-32b8-4ae2-b0e6-6a45772e9331:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Google Cloud Platform (GCP) storage bucket is deleted. An adversary may delete a storage bucket in order to disrupt their target's business operations.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Storage buckets may be deleted by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Bucket deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/storage/docs/key-terms#buckets"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:\"storage.buckets.delete\"\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"bc0f2d83-32b8-4ae2-b0e6-6a45772e9331:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bc0f2d83-32b8-4ae2-b0e6-6a45772e9331:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bc0f2d83-32b8-4ae2-b0e6-6a45772e9331:102.0.2.json new file mode 100644 index 0000000000000..d641c71ac640a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bc0f2d83-32b8-4ae2-b0e6-6a45772e9331:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Storage Bucket Deletion v102.0.2","rule_id":"bc0f2d83-32b8-4ae2-b0e6-6a45772e9331:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Google Cloud Platform (GCP) storage bucket is deleted. An adversary may delete a storage bucket in order to disrupt their target's business operations.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Storage buckets may be deleted by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Bucket deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/storage/docs/key-terms#buckets"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:\"storage.buckets.delete\"\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"bc0f2d83-32b8-4ae2-b0e6-6a45772e9331:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bc1eeacf-2972-434f-b782-3a532b100d67:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bc1eeacf-2972-434f-b782-3a532b100d67:100.0.0.json new file mode 100644 index 0000000000000..88f54c6b9bacd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bc1eeacf-2972-434f-b782-3a532b100d67:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Install Root Certificate v100.0.0","rule_id":"bc1eeacf-2972-434f-b782-3a532b100d67:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may install a root certificate on a compromised system to avoid warnings when connecting to their command and control servers. Root certificates are used in public key cryptography to identify a root certificate authority (CA). When a root certificate is installed, the system or application will trust certificates in the root's chain of trust that have been signed by the root certificate.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain applications may install root certificates for the purpose of inspecting SSL traffic."],"from":"now-9m","references":["https://ss64.com/osx/security-cert.html"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1553","name":"Subvert Trust Controls","reference":"https://attack.mitre.org/techniques/T1553/","subtechnique":[{"id":"T1553.004","name":"Install Root Certificate","reference":"https://attack.mitre.org/techniques/T1553/004/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:security and process.args:\"add-trusted-cert\" and\n not process.parent.executable:(\"/Library/Bitdefender/AVP/product/bin/BDCoreIssues\" or \"/Applications/Bitdefender/SecurityNetworkInstallerApp.app/Contents/MacOS/SecurityNetworkInstallerApp\"\n)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},"id":"bc1eeacf-2972-434f-b782-3a532b100d67:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bc1eeacf-2972-434f-b782-3a532b100d67:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bc1eeacf-2972-434f-b782-3a532b100d67:100.0.1.json new file mode 100644 index 0000000000000..d7cc7fdc2d82f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bc1eeacf-2972-434f-b782-3a532b100d67:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Install Root Certificate v100.0.1","rule_id":"bc1eeacf-2972-434f-b782-3a532b100d67:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may install a root certificate on a compromised system to avoid warnings when connecting to their command and control servers. Root certificates are used in public key cryptography to identify a root certificate authority (CA). When a root certificate is installed, the system or application will trust certificates in the root's chain of trust that have been signed by the root certificate.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain applications may install root certificates for the purpose of inspecting SSL traffic."],"from":"now-9m","references":["https://ss64.com/osx/security-cert.html"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1553","name":"Subvert Trust Controls","reference":"https://attack.mitre.org/techniques/T1553/","subtechnique":[{"id":"T1553.004","name":"Install Root Certificate","reference":"https://attack.mitre.org/techniques/T1553/004/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:security and process.args:\"add-trusted-cert\" and\n not process.parent.executable:(\"/Library/Bitdefender/AVP/product/bin/BDCoreIssues\" or \"/Applications/Bitdefender/SecurityNetworkInstallerApp.app/Contents/MacOS/SecurityNetworkInstallerApp\"\n)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},"id":"bc1eeacf-2972-434f-b782-3a532b100d67:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bc1eeacf-2972-434f-b782-3a532b100d67:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bc1eeacf-2972-434f-b782-3a532b100d67:100.0.2.json new file mode 100644 index 0000000000000..fc398d1bb8885 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bc1eeacf-2972-434f-b782-3a532b100d67:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Install Root Certificate v100.0.2","rule_id":"bc1eeacf-2972-434f-b782-3a532b100d67:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may install a root certificate on a compromised system to avoid warnings when connecting to their command and control servers. Root certificates are used in public key cryptography to identify a root certificate authority (CA). When a root certificate is installed, the system or application will trust certificates in the root's chain of trust that have been signed by the root certificate.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain applications may install root certificates for the purpose of inspecting SSL traffic."],"from":"now-9m","references":["https://ss64.com/osx/security-cert.html"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1553","name":"Subvert Trust Controls","reference":"https://attack.mitre.org/techniques/T1553/","subtechnique":[{"id":"T1553.004","name":"Install Root Certificate","reference":"https://attack.mitre.org/techniques/T1553/004/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:security and process.args:\"add-trusted-cert\" and\n not process.parent.executable:(\"/Library/Bitdefender/AVP/product/bin/BDCoreIssues\" or \"/Applications/Bitdefender/SecurityNetworkInstallerApp.app/Contents/MacOS/SecurityNetworkInstallerApp\"\n)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},"id":"bc1eeacf-2972-434f-b782-3a532b100d67:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bc48bba7-4a23-4232-b551-eca3ca1e3f20:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bc48bba7-4a23-4232-b551-eca3ca1e3f20:101.0.0.json new file mode 100644 index 0000000000000..7957170780895 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bc48bba7-4a23-4232-b551-eca3ca1e3f20:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Conditional Access Policy Modified v101.0.0","rule_id":"bc48bba7-4a23-4232-b551-eca3ca1e3f20:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Azure Conditional Access policy is modified. Azure Conditional Access policies control access to resources via if-then statements. For example, if a user wants to access a resource, then they must complete an action such as using multi-factor authentication to access it. An adversary may modify a Conditional Access policy in order to weaken their target's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/conditional-access/overview"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:(azure.activitylogs or azure.auditlogs) and\nevent.action:\"Update conditional access policy\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"},{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"bc48bba7-4a23-4232-b551-eca3ca1e3f20:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bc48bba7-4a23-4232-b551-eca3ca1e3f20:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bc48bba7-4a23-4232-b551-eca3ca1e3f20:101.0.1.json new file mode 100644 index 0000000000000..d87e7939235a9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bc48bba7-4a23-4232-b551-eca3ca1e3f20:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Conditional Access Policy Modified v101.0.1","rule_id":"bc48bba7-4a23-4232-b551-eca3ca1e3f20:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Azure Conditional Access policy is modified. Azure Conditional Access policies control access to resources via if-then statements. For example, if a user wants to access a resource, then they must complete an action such as using multi-factor authentication to access it. An adversary may modify a Conditional Access policy in order to weaken their target's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/conditional-access/overview"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:(azure.activitylogs or azure.auditlogs) and\nevent.action:\"Update conditional access policy\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"},{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"bc48bba7-4a23-4232-b551-eca3ca1e3f20:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bc48bba7-4a23-4232-b551-eca3ca1e3f20:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bc48bba7-4a23-4232-b551-eca3ca1e3f20:101.0.2.json new file mode 100644 index 0000000000000..cda23da123d28 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bc48bba7-4a23-4232-b551-eca3ca1e3f20:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Conditional Access Policy Modified v101.0.2","rule_id":"bc48bba7-4a23-4232-b551-eca3ca1e3f20:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Azure Conditional Access policy is modified. Azure Conditional Access policies control access to resources via if-then statements. For example, if a user wants to access a resource, then they must complete an action such as using multi-factor authentication to access it. An adversary may modify a Conditional Access policy in order to weaken their target's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/active-directory/conditional-access/overview"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:(azure.activitylogs or azure.auditlogs) and\nevent.action:\"Update conditional access policy\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"},{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"bc48bba7-4a23-4232-b551-eca3ca1e3f20:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bc8ca7e0-92fd-4b7c-b11e-ee0266b8d9c9:1.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bc8ca7e0-92fd-4b7c-b11e-ee0266b8d9c9:1.0.0.json new file mode 100644 index 0000000000000..921d65fc0bec9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bc8ca7e0-92fd-4b7c-b11e-ee0266b8d9c9:1.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Non-Standard Port SSH connection v1.0.0","rule_id":"bc8ca7e0-92fd-4b7c-b11e-ee0266b8d9c9:1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potentially malicious processes communicating via a port paring typically not associated with SSH. For example, SSH over port 2200 or port 2222 as opposed to the traditional port 22. Adversaries may make changes to the standard port a protocol uses to bypass filtering or muddle analysis/parsing of network data.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["SSH over ports apart from the traditional port 22 is highly uncommon. This rule alerts the usage of the such uncommon ports by the ssh service. Tuning is needed to have higher confidence. If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination whitelisted ports for such legitimate ssh activities."],"from":"now-9m","references":["https://attack.mitre.org/techniques/T1571/"],"tags":["Elastic","Host","Linux","Threat Detection","Command and Control","macOS"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1571","name":"Non-Standard Port","reference":"https://attack.mitre.org/techniques/T1571/"}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=1m\n[process where event.action == \"exec\" and process.name:\"ssh\"]\n[network where process.name:\"ssh\"\n and event.action in (\"connection_attempted\", \"connection_accepted\")\n and destination.port != 22\n and destination.ip != \"127.0.0.1\"\n and network.transport: \"tcp\"\n]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"bc8ca7e0-92fd-4b7c-b11e-ee0266b8d9c9:1.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bc8ca7e0-92fd-4b7c-b11e-ee0266b8d9c9:1.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bc8ca7e0-92fd-4b7c-b11e-ee0266b8d9c9:1.0.1.json new file mode 100644 index 0000000000000..1e4d9be14de4a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bc8ca7e0-92fd-4b7c-b11e-ee0266b8d9c9:1.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Non-Standard Port SSH connection v1.0.1","rule_id":"bc8ca7e0-92fd-4b7c-b11e-ee0266b8d9c9:1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potentially malicious processes communicating via a port paring typically not associated with SSH. For example, SSH over port 2200 or port 2222 as opposed to the traditional port 22. Adversaries may make changes to the standard port a protocol uses to bypass filtering or muddle analysis/parsing of network data.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["SSH over ports apart from the traditional port 22 is highly uncommon. This rule alerts the usage of the such uncommon ports by the ssh service. Tuning is needed to have higher confidence. If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination whitelisted ports for such legitimate ssh activities."],"from":"now-9m","references":["https://attack.mitre.org/techniques/T1571/"],"tags":["Elastic","Host","Linux","Threat Detection","Command and Control","macOS"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1571","name":"Non-Standard Port","reference":"https://attack.mitre.org/techniques/T1571/"}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=1m\n[process where event.action == \"exec\" and process.name:\"ssh\"]\n[network where process.name:\"ssh\"\n and event.action in (\"connection_attempted\", \"connection_accepted\")\n and destination.port != 22\n and destination.ip != \"127.0.0.1\"\n and network.transport: \"tcp\"\n]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"bc8ca7e0-92fd-4b7c-b11e-ee0266b8d9c9:1.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bc8ca7e0-92fd-4b7c-b11e-ee0266b8d9c9:1.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bc8ca7e0-92fd-4b7c-b11e-ee0266b8d9c9:1.0.2.json new file mode 100644 index 0000000000000..abe7b7c1ffa6a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bc8ca7e0-92fd-4b7c-b11e-ee0266b8d9c9:1.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Non-Standard Port SSH connection v1.0.2","rule_id":"bc8ca7e0-92fd-4b7c-b11e-ee0266b8d9c9:1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potentially malicious processes communicating via a port paring typically not associated with SSH. For example, SSH over port 2200 or port 2222 as opposed to the traditional port 22. Adversaries may make changes to the standard port a protocol uses to bypass filtering or muddle analysis/parsing of network data.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["SSH over ports apart from the traditional port 22 is highly uncommon. This rule alerts the usage of the such uncommon ports by the ssh service. Tuning is needed to have higher confidence. If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination whitelisted ports for such legitimate ssh activities."],"from":"now-9m","references":["https://attack.mitre.org/techniques/T1571/"],"tags":["Elastic","Host","Linux","Threat Detection","Command and Control","macOS"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1571","name":"Non-Standard Port","reference":"https://attack.mitre.org/techniques/T1571/"}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=1m\n[process where event.action == \"exec\" and process.name:\"ssh\"]\n[network where process.name:\"ssh\"\n and event.action in (\"connection_attempted\", \"connection_accepted\")\n and destination.port != 22\n and destination.ip != \"127.0.0.1\"\n and network.transport: \"tcp\"\n]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"bc8ca7e0-92fd-4b7c-b11e-ee0266b8d9c9:1.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bca7d28e-4a48-47b1-adb7-5074310e9a61:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bca7d28e-4a48-47b1-adb7-5074310e9a61:102.0.0.json new file mode 100644 index 0000000000000..7f130943cac54 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bca7d28e-4a48-47b1-adb7-5074310e9a61:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Service Account Disabled v102.0.0","rule_id":"bca7d28e-4a48-47b1-adb7-5074310e9a61:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a service account is disabled in Google Cloud Platform (GCP). A service account is a special type of account used by an application or a virtual machine (VM) instance, not a person. Applications use service accounts to make authorized API calls, authorized as either the service account itself, or as G Suite or Cloud Identity users through domain-wide delegation. An adversary may disable a service account in order to disrupt to disrupt their target's business operations.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Service accounts may be disabled by system administrators. Verify that the behavior was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/iam/docs/service-accounts"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.DisableServiceAccount and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"bca7d28e-4a48-47b1-adb7-5074310e9a61:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bca7d28e-4a48-47b1-adb7-5074310e9a61:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bca7d28e-4a48-47b1-adb7-5074310e9a61:102.0.1.json new file mode 100644 index 0000000000000..1d4dd3a57f315 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bca7d28e-4a48-47b1-adb7-5074310e9a61:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Service Account Disabled v102.0.1","rule_id":"bca7d28e-4a48-47b1-adb7-5074310e9a61:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a service account is disabled in Google Cloud Platform (GCP). A service account is a special type of account used by an application or a virtual machine (VM) instance, not a person. Applications use service accounts to make authorized API calls, authorized as either the service account itself, or as G Suite or Cloud Identity users through domain-wide delegation. An adversary may disable a service account in order to disrupt to disrupt their target's business operations.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Service accounts may be disabled by system administrators. Verify that the behavior was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/iam/docs/service-accounts"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.DisableServiceAccount and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"bca7d28e-4a48-47b1-adb7-5074310e9a61:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bca7d28e-4a48-47b1-adb7-5074310e9a61:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bca7d28e-4a48-47b1-adb7-5074310e9a61:102.0.2.json new file mode 100644 index 0000000000000..378362e9255d1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bca7d28e-4a48-47b1-adb7-5074310e9a61:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Service Account Disabled v102.0.2","rule_id":"bca7d28e-4a48-47b1-adb7-5074310e9a61:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a service account is disabled in Google Cloud Platform (GCP). A service account is a special type of account used by an application or a virtual machine (VM) instance, not a person. Applications use service accounts to make authorized API calls, authorized as either the service account itself, or as G Suite or Cloud Identity users through domain-wide delegation. An adversary may disable a service account in order to disrupt to disrupt their target's business operations.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Service accounts may be disabled by system administrators. Verify that the behavior was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/iam/docs/service-accounts"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.DisableServiceAccount and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"bca7d28e-4a48-47b1-adb7-5074310e9a61:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bd2c86a0-8b61-4457-ab38-96943984e889:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bd2c86a0-8b61-4457-ab38-96943984e889:102.0.0.json new file mode 100644 index 0000000000000..f070444b3a543 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bd2c86a0-8b61-4457-ab38-96943984e889:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell Keylogging Script v102.0.0","rule_id":"bd2c86a0-8b61-4457-ab38-96943984e889:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of Win32 API Functions that can be used to capture user keystrokes in PowerShell scripts. Attackers use this technique to capture user input, looking for credentials and/or other valuable data.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Keylogging Script\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can abuse PowerShell capabilities to capture user keystrokes with the goal of stealing credentials and other\nvaluable information as credit card data and confidential conversations.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Investigate if the script stores the captured data locally.\n- Investigate if the script contains exfiltration capabilities and the destination of this exfiltration.\n- Assess network data to determine if the host communicated with the exfiltration server.\n\n### False positive analysis\n\n- Regular users do not have a business justification for using scripting utilities to capture keystrokes, making\nfalse positives unlikely. In the case of authorized benign true positives (B-TPs), exceptions can be added.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- The response must be prioritized if this alert involves key executives or potentially valuable targets for espionage.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/EmpireProject/Empire/blob/master/data/module_source/collection/Get-Keystrokes.ps1","https://github.com/MojtabaTajik/FunnyKeylogger/blob/master/FunnyLogger.ps1"],"tags":["Elastic","Host","Windows","Threat Detection","Collection","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1056","name":"Input Capture","reference":"https://attack.mitre.org/techniques/T1056/","subtechnique":[{"id":"T1056.001","name":"Keylogging","reference":"https://attack.mitre.org/techniques/T1056/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n (\n powershell.file.script_block_text : (GetAsyncKeyState or NtUserGetAsyncKeyState or GetKeyboardState or \"Get-Keystrokes\") or\n powershell.file.script_block_text : (\n (SetWindowsHookA or SetWindowsHookW or SetWindowsHookEx or SetWindowsHookExA or NtUserSetWindowsHookEx) and\n (GetForegroundWindow or GetWindowTextA or GetWindowTextW or \"WM_KEYBOARD_LL\")\n )\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"bd2c86a0-8b61-4457-ab38-96943984e889:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bd2c86a0-8b61-4457-ab38-96943984e889:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bd2c86a0-8b61-4457-ab38-96943984e889:102.0.1.json new file mode 100644 index 0000000000000..bf50932c4349b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bd2c86a0-8b61-4457-ab38-96943984e889:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell Keylogging Script v102.0.1","rule_id":"bd2c86a0-8b61-4457-ab38-96943984e889:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of Win32 API Functions that can be used to capture user keystrokes in PowerShell scripts. Attackers use this technique to capture user input, looking for credentials and/or other valuable data.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Keylogging Script\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can abuse PowerShell capabilities to capture user keystrokes with the goal of stealing credentials and other\nvaluable information as credit card data and confidential conversations.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Investigate if the script stores the captured data locally.\n- Investigate if the script contains exfiltration capabilities and the destination of this exfiltration.\n- Assess network data to determine if the host communicated with the exfiltration server.\n\n### False positive analysis\n\n- Regular users do not have a business justification for using scripting utilities to capture keystrokes, making\nfalse positives unlikely. In the case of authorized benign true positives (B-TPs), exceptions can be added.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- The response must be prioritized if this alert involves key executives or potentially valuable targets for espionage.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/EmpireProject/Empire/blob/master/data/module_source/collection/Get-Keystrokes.ps1","https://github.com/MojtabaTajik/FunnyKeylogger/blob/master/FunnyLogger.ps1"],"tags":["Elastic","Host","Windows","Threat Detection","Collection","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1056","name":"Input Capture","reference":"https://attack.mitre.org/techniques/T1056/","subtechnique":[{"id":"T1056.001","name":"Keylogging","reference":"https://attack.mitre.org/techniques/T1056/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n (\n powershell.file.script_block_text : (GetAsyncKeyState or NtUserGetAsyncKeyState or GetKeyboardState or \"Get-Keystrokes\") or\n powershell.file.script_block_text : (\n (SetWindowsHookA or SetWindowsHookW or SetWindowsHookEx or SetWindowsHookExA or NtUserSetWindowsHookEx) and\n (GetForegroundWindow or GetWindowTextA or GetWindowTextW or \"WM_KEYBOARD_LL\")\n )\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"bd2c86a0-8b61-4457-ab38-96943984e889:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bd2c86a0-8b61-4457-ab38-96943984e889:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bd2c86a0-8b61-4457-ab38-96943984e889:102.0.2.json new file mode 100644 index 0000000000000..ff5e445f56890 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bd2c86a0-8b61-4457-ab38-96943984e889:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell Keylogging Script v102.0.2","rule_id":"bd2c86a0-8b61-4457-ab38-96943984e889:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of Win32 API Functions that can be used to capture user keystrokes in PowerShell scripts. Attackers use this technique to capture user input, looking for credentials and/or other valuable data.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating PowerShell Keylogging Script\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can abuse PowerShell capabilities to capture user keystrokes with the goal of stealing credentials and other\nvaluable information as credit card data and confidential conversations.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Investigate if the script stores the captured data locally.\n- Investigate if the script contains exfiltration capabilities and the destination of this exfiltration.\n- Assess network data to determine if the host communicated with the exfiltration server.\n\n### False positive analysis\n\n- Regular users do not have a business justification for using scripting utilities to capture keystrokes, making\nfalse positives unlikely. In the case of authorized benign true positives (B-TPs), exceptions can be added.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- The response must be prioritized if this alert involves key executives or potentially valuable targets for espionage.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/EmpireProject/Empire/blob/master/data/module_source/collection/Get-Keystrokes.ps1","https://github.com/MojtabaTajik/FunnyKeylogger/blob/master/FunnyLogger.ps1"],"tags":["Elastic","Host","Windows","Threat Detection","Collection","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1056","name":"Input Capture","reference":"https://attack.mitre.org/techniques/T1056/","subtechnique":[{"id":"T1056.001","name":"Keylogging","reference":"https://attack.mitre.org/techniques/T1056/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n (\n powershell.file.script_block_text : (GetAsyncKeyState or NtUserGetAsyncKeyState or GetKeyboardState or \"Get-Keystrokes\") or\n powershell.file.script_block_text : (\n (SetWindowsHookA or SetWindowsHookW or SetWindowsHookEx or SetWindowsHookExA or NtUserSetWindowsHookEx) and\n (GetForegroundWindow or GetWindowTextA or GetWindowTextW or \"WM_KEYBOARD_LL\")\n )\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"bd2c86a0-8b61-4457-ab38-96943984e889:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bd7eefee-f671-494e-98df-f01daf9e5f17:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bd7eefee-f671-494e-98df-f01daf9e5f17:100.0.0.json new file mode 100644 index 0000000000000..7b96197085d6f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bd7eefee-f671-494e-98df-f01daf9e5f17:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Print Spooler Point and Print DLL v100.0.0","rule_id":"bd7eefee-f671-494e-98df-f01daf9e5f17:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to exploit a privilege escalation vulnerability (CVE-2020-1030) related to the print spooler service. Exploitation involves chaining multiple primitives to load an arbitrary DLL into the print spooler process running as SYSTEM.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.accenture.com/us-en/blogs/cyber-defense/discovering-exploiting-shutting-down-dangerous-windows-print-spooler-vulnerability","https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES/blob/master/Privilege%20Escalation/privesc_sysmon_cve_20201030_spooler.evtx","https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2020-1030"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"sequence by host.id with maxspan=30s\n[registry where\n registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Print\\\\Printers\\\\*\\\\SpoolDirectory\" and\n registry.data.strings : \"C:\\\\Windows\\\\System32\\\\spool\\\\drivers\\\\x64\\\\4\"]\n[registry where\n registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Print\\\\Printers\\\\*\\\\CopyFiles\\\\Payload\\\\Module\" and\n registry.data.strings : \"C:\\\\Windows\\\\System32\\\\spool\\\\drivers\\\\x64\\\\4\\\\*\"]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"bd7eefee-f671-494e-98df-f01daf9e5f17:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bd7eefee-f671-494e-98df-f01daf9e5f17:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bd7eefee-f671-494e-98df-f01daf9e5f17:100.0.1.json new file mode 100644 index 0000000000000..9a67493e52f37 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bd7eefee-f671-494e-98df-f01daf9e5f17:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Print Spooler Point and Print DLL v100.0.1","rule_id":"bd7eefee-f671-494e-98df-f01daf9e5f17:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to exploit a privilege escalation vulnerability (CVE-2020-1030) related to the print spooler service. Exploitation involves chaining multiple primitives to load an arbitrary DLL into the print spooler process running as SYSTEM.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.accenture.com/us-en/blogs/cyber-defense/discovering-exploiting-shutting-down-dangerous-windows-print-spooler-vulnerability","https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES/blob/master/Privilege%20Escalation/privesc_sysmon_cve_20201030_spooler.evtx","https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2020-1030"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"sequence by host.id with maxspan=30s\n[registry where\n registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Print\\\\Printers\\\\*\\\\SpoolDirectory\" and\n registry.data.strings : \"C:\\\\Windows\\\\System32\\\\spool\\\\drivers\\\\x64\\\\4\"]\n[registry where\n registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Print\\\\Printers\\\\*\\\\CopyFiles\\\\Payload\\\\Module\" and\n registry.data.strings : \"C:\\\\Windows\\\\System32\\\\spool\\\\drivers\\\\x64\\\\4\\\\*\"]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"bd7eefee-f671-494e-98df-f01daf9e5f17:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bd7eefee-f671-494e-98df-f01daf9e5f17:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bd7eefee-f671-494e-98df-f01daf9e5f17:100.0.2.json new file mode 100644 index 0000000000000..476ecaca46f1d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bd7eefee-f671-494e-98df-f01daf9e5f17:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Print Spooler Point and Print DLL v100.0.2","rule_id":"bd7eefee-f671-494e-98df-f01daf9e5f17:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to exploit a privilege escalation vulnerability (CVE-2020-1030) related to the print spooler service. Exploitation involves chaining multiple primitives to load an arbitrary DLL into the print spooler process running as SYSTEM.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.accenture.com/us-en/blogs/cyber-defense/discovering-exploiting-shutting-down-dangerous-windows-print-spooler-vulnerability","https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES/blob/master/Privilege%20Escalation/privesc_sysmon_cve_20201030_spooler.evtx","https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2020-1030"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"sequence by host.id with maxspan=30s\n[registry where\n registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Print\\\\Printers\\\\*\\\\SpoolDirectory\" and\n registry.data.strings : \"C:\\\\Windows\\\\System32\\\\spool\\\\drivers\\\\x64\\\\4\"]\n[registry where\n registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Print\\\\Printers\\\\*\\\\CopyFiles\\\\Payload\\\\Module\" and\n registry.data.strings : \"C:\\\\Windows\\\\System32\\\\spool\\\\drivers\\\\x64\\\\4\\\\*\"]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"bd7eefee-f671-494e-98df-f01daf9e5f17:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bdcf646b-08d4-492c-870a-6c04e3700034:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bdcf646b-08d4-492c-870a-6c04e3700034:100.0.0.json new file mode 100644 index 0000000000000..059a7dbdc02c7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bdcf646b-08d4-492c-870a-6c04e3700034:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Privileged Escalation via SamAccountName Spoofing v100.0.0","rule_id":"bdcf646b-08d4-492c-870a-6c04e3700034:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious computer account name rename event, which may indicate an attempt to exploit CVE-2021-42278 to elevate privileges from a standard domain user to a user with domain admin privileges. CVE-2021-42278 is a security vulnerability that allows potential attackers to impersonate a domain controller via samAccountName attribute spoofing.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://support.microsoft.com/en-us/topic/kb5008102-active-directory-security-accounts-manager-hardening-changes-cve-2021-42278-5975b463-4c95-45e1-831a-d120004e258e","https://cloudbrothers.info/en/exploit-kerberos-samaccountname-spoofing/","https://github.com/cube0x0/noPac","https://twitter.com/exploitph/status/1469157138928914432","https://exploit.ph/cve-2021-42287-cve-2021-42278-weaponisation.html"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.002","name":"Domain Accounts","reference":"https://attack.mitre.org/techniques/T1078/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"language":"eql","query":"iam where event.action == \"renamed-user-account\" and\n /* machine account name renamed to user like account name */\n winlog.event_data.OldTargetUserName : \"*$\" and not winlog.event_data.NewTargetUserName : \"*$\"\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":false,"name":"winlog.event_data.NewTargetUserName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.OldTargetUserName","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"bdcf646b-08d4-492c-870a-6c04e3700034:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bdcf646b-08d4-492c-870a-6c04e3700034:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bdcf646b-08d4-492c-870a-6c04e3700034:100.0.1.json new file mode 100644 index 0000000000000..fdf456917353d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bdcf646b-08d4-492c-870a-6c04e3700034:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Privileged Escalation via SamAccountName Spoofing v100.0.1","rule_id":"bdcf646b-08d4-492c-870a-6c04e3700034:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious computer account name rename event, which may indicate an attempt to exploit CVE-2021-42278 to elevate privileges from a standard domain user to a user with domain admin privileges. CVE-2021-42278 is a security vulnerability that allows potential attackers to impersonate a domain controller via samAccountName attribute spoofing.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://support.microsoft.com/en-us/topic/kb5008102-active-directory-security-accounts-manager-hardening-changes-cve-2021-42278-5975b463-4c95-45e1-831a-d120004e258e","https://cloudbrothers.info/en/exploit-kerberos-samaccountname-spoofing/","https://github.com/cube0x0/noPac","https://twitter.com/exploitph/status/1469157138928914432","https://exploit.ph/cve-2021-42287-cve-2021-42278-weaponisation.html"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.002","name":"Domain Accounts","reference":"https://attack.mitre.org/techniques/T1078/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"language":"eql","query":"iam where event.action == \"renamed-user-account\" and\n /* machine account name renamed to user like account name */\n winlog.event_data.OldTargetUserName : \"*$\" and not winlog.event_data.NewTargetUserName : \"*$\"\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":false,"name":"winlog.event_data.NewTargetUserName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.OldTargetUserName","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"bdcf646b-08d4-492c-870a-6c04e3700034:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bdcf646b-08d4-492c-870a-6c04e3700034:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bdcf646b-08d4-492c-870a-6c04e3700034:100.0.2.json new file mode 100644 index 0000000000000..cf32929403fcf --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bdcf646b-08d4-492c-870a-6c04e3700034:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Privileged Escalation via SamAccountName Spoofing v100.0.2","rule_id":"bdcf646b-08d4-492c-870a-6c04e3700034:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious computer account name rename event, which may indicate an attempt to exploit CVE-2021-42278 to elevate privileges from a standard domain user to a user with domain admin privileges. CVE-2021-42278 is a security vulnerability that allows potential attackers to impersonate a domain controller via samAccountName attribute spoofing.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://support.microsoft.com/en-us/topic/kb5008102-active-directory-security-accounts-manager-hardening-changes-cve-2021-42278-5975b463-4c95-45e1-831a-d120004e258e","https://cloudbrothers.info/en/exploit-kerberos-samaccountname-spoofing/","https://github.com/cube0x0/noPac","https://twitter.com/exploitph/status/1469157138928914432","https://exploit.ph/cve-2021-42287-cve-2021-42278-weaponisation.html"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.002","name":"Domain Accounts","reference":"https://attack.mitre.org/techniques/T1078/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"language":"eql","query":"iam where event.action == \"renamed-user-account\" and\n /* machine account name renamed to user like account name */\n winlog.event_data.OldTargetUserName : \"*$\" and not winlog.event_data.NewTargetUserName : \"*$\"\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":false,"name":"winlog.event_data.NewTargetUserName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.OldTargetUserName","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"bdcf646b-08d4-492c-870a-6c04e3700034:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/be8afaed-4bcd-4e0a-b5f9-5562003dde81:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/be8afaed-4bcd-4e0a-b5f9-5562003dde81:102.0.0.json new file mode 100644 index 0000000000000..5b8246330146c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/be8afaed-4bcd-4e0a-b5f9-5562003dde81:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Searching for Saved Credentials via VaultCmd v102.0.0","rule_id":"be8afaed-4bcd-4e0a-b5f9-5562003dde81:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Windows Credential Manager allows you to create, view, or delete saved credentials for signing into websites, connected applications, and networks. An adversary may abuse this to list or dump credentials stored in the Credential Manager for saved usernames and passwords. This may also be performed in preparation of lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://medium.com/threatpunter/detecting-adversary-tradecraft-with-image-load-event-logging-and-eql-8de93338c16","https://web.archive.org/web/20201004080456/https://rastamouse.me/blog/rdp-jump-boxes/","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.004","name":"Windows Credential Manager","reference":"https://attack.mitre.org/techniques/T1555/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.pe.original_file_name:\"vaultcmd.exe\" or process.name:\"vaultcmd.exe\") and\n process.args:\"/list*\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"be8afaed-4bcd-4e0a-b5f9-5562003dde81:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/be8afaed-4bcd-4e0a-b5f9-5562003dde81:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/be8afaed-4bcd-4e0a-b5f9-5562003dde81:102.0.1.json new file mode 100644 index 0000000000000..4dbe0a9403684 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/be8afaed-4bcd-4e0a-b5f9-5562003dde81:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Searching for Saved Credentials via VaultCmd v102.0.1","rule_id":"be8afaed-4bcd-4e0a-b5f9-5562003dde81:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Windows Credential Manager allows you to create, view, or delete saved credentials for signing into websites, connected applications, and networks. An adversary may abuse this to list or dump credentials stored in the Credential Manager for saved usernames and passwords. This may also be performed in preparation of lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://medium.com/threatpunter/detecting-adversary-tradecraft-with-image-load-event-logging-and-eql-8de93338c16","https://web.archive.org/web/20201004080456/https://rastamouse.me/blog/rdp-jump-boxes/","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.004","name":"Windows Credential Manager","reference":"https://attack.mitre.org/techniques/T1555/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.pe.original_file_name:\"vaultcmd.exe\" or process.name:\"vaultcmd.exe\") and\n process.args:\"/list*\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"be8afaed-4bcd-4e0a-b5f9-5562003dde81:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/be8afaed-4bcd-4e0a-b5f9-5562003dde81:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/be8afaed-4bcd-4e0a-b5f9-5562003dde81:102.0.2.json new file mode 100644 index 0000000000000..c62f9499e3233 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/be8afaed-4bcd-4e0a-b5f9-5562003dde81:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Searching for Saved Credentials via VaultCmd v102.0.2","rule_id":"be8afaed-4bcd-4e0a-b5f9-5562003dde81:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Windows Credential Manager allows you to create, view, or delete saved credentials for signing into websites, connected applications, and networks. An adversary may abuse this to list or dump credentials stored in the Credential Manager for saved usernames and passwords. This may also be performed in preparation of lateral movement.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://medium.com/threatpunter/detecting-adversary-tradecraft-with-image-load-event-logging-and-eql-8de93338c16","https://web.archive.org/web/20201004080456/https://rastamouse.me/blog/rdp-jump-boxes/","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"},{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.004","name":"Windows Credential Manager","reference":"https://attack.mitre.org/techniques/T1555/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.pe.original_file_name:\"vaultcmd.exe\" or process.name:\"vaultcmd.exe\") and\n process.args:\"/list*\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"be8afaed-4bcd-4e0a-b5f9-5562003dde81:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bf1073bf-ce26-4607-b405-ba1ed8e9e204:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bf1073bf-ce26-4607-b405-ba1ed8e9e204:101.0.0.json new file mode 100644 index 0000000000000..a7aead9d0f43a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bf1073bf-ce26-4607-b405-ba1ed8e9e204:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS RDS Snapshot Restored v101.0.0","rule_id":"bf1073bf-ce26-4607-b405-ba1ed8e9e204:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an attempt was made to restore an RDS Snapshot. Snapshots are sometimes shared by threat actors in order to exfiltrate bulk data or evade detection after performing malicious activities. If the permissions were modified, verify if the snapshot was shared with an unauthorized or unexpected AWS account.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Restoring snapshots may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Snapshot restoration by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html","https://github.com/RhinoSecurityLabs/pacu/blob/master/pacu/modules/rds__explore_snapshots/main.py"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1578","name":"Modify Cloud Compute Infrastructure","reference":"https://attack.mitre.org/techniques/T1578/","subtechnique":[{"id":"T1578.004","name":"Revert Cloud Instance","reference":"https://attack.mitre.org/techniques/T1578/004/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:RestoreDBInstanceFromDBSnapshot and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"bf1073bf-ce26-4607-b405-ba1ed8e9e204:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bf1073bf-ce26-4607-b405-ba1ed8e9e204:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bf1073bf-ce26-4607-b405-ba1ed8e9e204:101.0.1.json new file mode 100644 index 0000000000000..a4f5dec9cbb8d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bf1073bf-ce26-4607-b405-ba1ed8e9e204:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS RDS Snapshot Restored v101.0.1","rule_id":"bf1073bf-ce26-4607-b405-ba1ed8e9e204:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an attempt was made to restore an RDS Snapshot. Snapshots are sometimes shared by threat actors in order to exfiltrate bulk data or evade detection after performing malicious activities. If the permissions were modified, verify if the snapshot was shared with an unauthorized or unexpected AWS account.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Restoring snapshots may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Snapshot restoration by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html","https://github.com/RhinoSecurityLabs/pacu/blob/master/pacu/modules/rds__explore_snapshots/main.py"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1578","name":"Modify Cloud Compute Infrastructure","reference":"https://attack.mitre.org/techniques/T1578/","subtechnique":[{"id":"T1578.004","name":"Revert Cloud Instance","reference":"https://attack.mitre.org/techniques/T1578/004/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:RestoreDBInstanceFromDBSnapshot and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"bf1073bf-ce26-4607-b405-ba1ed8e9e204:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bf1073bf-ce26-4607-b405-ba1ed8e9e204:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bf1073bf-ce26-4607-b405-ba1ed8e9e204:101.0.2.json new file mode 100644 index 0000000000000..29fba821733af --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bf1073bf-ce26-4607-b405-ba1ed8e9e204:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS RDS Snapshot Restored v101.0.2","rule_id":"bf1073bf-ce26-4607-b405-ba1ed8e9e204:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an attempt was made to restore an RDS Snapshot. Snapshots are sometimes shared by threat actors in order to exfiltrate bulk data or evade detection after performing malicious activities. If the permissions were modified, verify if the snapshot was shared with an unauthorized or unexpected AWS account.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Restoring snapshots may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Snapshot restoration by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html","https://github.com/RhinoSecurityLabs/pacu/blob/master/pacu/modules/rds__explore_snapshots/main.py"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1578","name":"Modify Cloud Compute Infrastructure","reference":"https://attack.mitre.org/techniques/T1578/","subtechnique":[{"id":"T1578.004","name":"Revert Cloud Instance","reference":"https://attack.mitre.org/techniques/T1578/004/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:RestoreDBInstanceFromDBSnapshot and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"bf1073bf-ce26-4607-b405-ba1ed8e9e204:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bfeaf89b-a2a7-48a3-817f-e41829dc61ee:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bfeaf89b-a2a7-48a3-817f-e41829dc61ee:102.0.0.json new file mode 100644 index 0000000000000..4ca327da6fe15 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bfeaf89b-a2a7-48a3-817f-e41829dc61ee:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious DLL Loaded for Persistence or Privilege Escalation v102.0.0","rule_id":"bfeaf89b-a2a7-48a3-817f-e41829dc61ee:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the loading of a non Microsoft signed DLL that is missing on a default Windows install (phantom DLL) or one that can be loaded from a different location by a native Windows process. This may be abused to persist or elevate privileges via privileged file write vulnerabilities.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious DLL Loaded for Persistence or Privilege Escalation\n\nAttackers can execute malicious code by abusing missing modules that processes try to load, enabling them to escalate\nprivileges or gain persistence. This rule identifies the loading of a non-Microsoft-signed DLL that is missing on a\ndefault Windows installation or one that can be loaded from a different location by a native Windows process.\n\n#### Possible investigation steps\n\n- Examine the DLL signature and identify the process that created it.\n - Investigate any abnormal behaviors by the process such as network connections, registry or file modifications, and\n any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve the DLL and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently\nmalicious must be monitored by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://itm4n.github.io/windows-dll-hijacking-clarified/","http://remoteawesomethoughts.blogspot.com/2019/05/windows-10-task-schedulerservice.html","https://googleprojectzero.blogspot.com/2018/04/windows-exploitation-tricks-exploiting.html","https://shellz.club/2020/10/16/edgegdi-dll-for-persistence-and-lateral-movement.html","https://windows-internals.com/faxing-your-way-to-system/","http://waleedassar.blogspot.com/2013/01/wow64logdll.html"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.002","name":"DLL Side-Loading","reference":"https://attack.mitre.org/techniques/T1574/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.001","name":"DLL Search Order Hijacking","reference":"https://attack.mitre.org/techniques/T1574/001/"}]}]}],"language":"eql","query":"any where\n (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (\n /* compatible with Elastic Endpoint Library Events */\n (dll.name : (\"wlbsctrl.dll\", \"wbemcomn.dll\", \"WptsExtensions.dll\", \"Tsmsisrv.dll\", \"TSVIPSrv.dll\", \"Msfte.dll\",\n \"wow64log.dll\", \"WindowsCoreDeviceInfo.dll\", \"Ualapi.dll\", \"wlanhlp.dll\", \"phoneinfo.dll\", \"EdgeGdi.dll\",\n \"cdpsgshims.dll\", \"windowsperformancerecordercontrol.dll\", \"diagtrack_win.dll\")\n and (dll.code_signature.trusted == false or dll.code_signature.exists == false)) or\n\n /* compatible with Sysmon EventID 7 - Image Load */\n (file.name : (\"wlbsctrl.dll\", \"wbemcomn.dll\", \"WptsExtensions.dll\", \"Tsmsisrv.dll\", \"TSVIPSrv.dll\", \"Msfte.dll\",\n \"wow64log.dll\", \"WindowsCoreDeviceInfo.dll\", \"Ualapi.dll\", \"wlanhlp.dll\", \"phoneinfo.dll\", \"EdgeGdi.dll\",\n \"cdpsgshims.dll\", \"windowsperformancerecordercontrol.dll\", \"diagtrack_win.dll\")\n and not file.code_signature.status == \"Valid\")\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.code_signature.exists","type":"boolean"},{"ecs":true,"name":"dll.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.code_signature.status","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"bfeaf89b-a2a7-48a3-817f-e41829dc61ee:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bfeaf89b-a2a7-48a3-817f-e41829dc61ee:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bfeaf89b-a2a7-48a3-817f-e41829dc61ee:102.0.1.json new file mode 100644 index 0000000000000..a96cc902122da --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bfeaf89b-a2a7-48a3-817f-e41829dc61ee:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious DLL Loaded for Persistence or Privilege Escalation v102.0.1","rule_id":"bfeaf89b-a2a7-48a3-817f-e41829dc61ee:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the loading of a non Microsoft signed DLL that is missing on a default Windows install (phantom DLL) or one that can be loaded from a different location by a native Windows process. This may be abused to persist or elevate privileges via privileged file write vulnerabilities.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious DLL Loaded for Persistence or Privilege Escalation\n\nAttackers can execute malicious code by abusing missing modules that processes try to load, enabling them to escalate\nprivileges or gain persistence. This rule identifies the loading of a non-Microsoft-signed DLL that is missing on a\ndefault Windows installation or one that can be loaded from a different location by a native Windows process.\n\n#### Possible investigation steps\n\n- Examine the DLL signature and identify the process that created it.\n - Investigate any abnormal behaviors by the process such as network connections, registry or file modifications, and\n any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve the DLL and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently\nmalicious must be monitored by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://itm4n.github.io/windows-dll-hijacking-clarified/","http://remoteawesomethoughts.blogspot.com/2019/05/windows-10-task-schedulerservice.html","https://googleprojectzero.blogspot.com/2018/04/windows-exploitation-tricks-exploiting.html","https://shellz.club/2020/10/16/edgegdi-dll-for-persistence-and-lateral-movement.html","https://windows-internals.com/faxing-your-way-to-system/","http://waleedassar.blogspot.com/2013/01/wow64logdll.html"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.002","name":"DLL Side-Loading","reference":"https://attack.mitre.org/techniques/T1574/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.001","name":"DLL Search Order Hijacking","reference":"https://attack.mitre.org/techniques/T1574/001/"}]}]}],"language":"eql","query":"any where\n (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (\n /* compatible with Elastic Endpoint Library Events */\n (dll.name : (\"wlbsctrl.dll\", \"wbemcomn.dll\", \"WptsExtensions.dll\", \"Tsmsisrv.dll\", \"TSVIPSrv.dll\", \"Msfte.dll\",\n \"wow64log.dll\", \"WindowsCoreDeviceInfo.dll\", \"Ualapi.dll\", \"wlanhlp.dll\", \"phoneinfo.dll\", \"EdgeGdi.dll\",\n \"cdpsgshims.dll\", \"windowsperformancerecordercontrol.dll\", \"diagtrack_win.dll\")\n and (dll.code_signature.trusted == false or dll.code_signature.exists == false)) or\n\n /* compatible with Sysmon EventID 7 - Image Load */\n (file.name : (\"wlbsctrl.dll\", \"wbemcomn.dll\", \"WptsExtensions.dll\", \"Tsmsisrv.dll\", \"TSVIPSrv.dll\", \"Msfte.dll\",\n \"wow64log.dll\", \"WindowsCoreDeviceInfo.dll\", \"Ualapi.dll\", \"wlanhlp.dll\", \"phoneinfo.dll\", \"EdgeGdi.dll\",\n \"cdpsgshims.dll\", \"windowsperformancerecordercontrol.dll\", \"diagtrack_win.dll\")\n and not file.code_signature.status == \"Valid\")\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.code_signature.exists","type":"boolean"},{"ecs":true,"name":"dll.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.code_signature.status","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"bfeaf89b-a2a7-48a3-817f-e41829dc61ee:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/bfeaf89b-a2a7-48a3-817f-e41829dc61ee:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/bfeaf89b-a2a7-48a3-817f-e41829dc61ee:102.0.2.json new file mode 100644 index 0000000000000..5dc44d76da099 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/bfeaf89b-a2a7-48a3-817f-e41829dc61ee:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious DLL Loaded for Persistence or Privilege Escalation v102.0.2","rule_id":"bfeaf89b-a2a7-48a3-817f-e41829dc61ee:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the loading of a non Microsoft signed DLL that is missing on a default Windows install (phantom DLL) or one that can be loaded from a different location by a native Windows process. This may be abused to persist or elevate privileges via privileged file write vulnerabilities.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious DLL Loaded for Persistence or Privilege Escalation\n\nAttackers can execute malicious code by abusing missing modules that processes try to load, enabling them to escalate\nprivileges or gain persistence. This rule identifies the loading of a non-Microsoft-signed DLL that is missing on a\ndefault Windows installation or one that can be loaded from a different location by a native Windows process.\n\n#### Possible investigation steps\n\n- Examine the DLL signature and identify the process that created it.\n - Investigate any abnormal behaviors by the process such as network connections, registry or file modifications, and\n any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve the DLL and determine if it is malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Any activity that triggered the alert and is not inherently\nmalicious must be monitored by the security team.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://itm4n.github.io/windows-dll-hijacking-clarified/","http://remoteawesomethoughts.blogspot.com/2019/05/windows-10-task-schedulerservice.html","https://googleprojectzero.blogspot.com/2018/04/windows-exploitation-tricks-exploiting.html","https://shellz.club/2020/10/16/edgegdi-dll-for-persistence-and-lateral-movement.html","https://windows-internals.com/faxing-your-way-to-system/","http://waleedassar.blogspot.com/2013/01/wow64logdll.html"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.002","name":"DLL Side-Loading","reference":"https://attack.mitre.org/techniques/T1574/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.001","name":"DLL Search Order Hijacking","reference":"https://attack.mitre.org/techniques/T1574/001/"}]}]}],"language":"eql","query":"any where\n (event.category == \"library\" or (event.category == \"process\" and event.action : \"Image loaded*\")) and\n (\n /* compatible with Elastic Endpoint Library Events */\n (dll.name : (\"wlbsctrl.dll\", \"wbemcomn.dll\", \"WptsExtensions.dll\", \"Tsmsisrv.dll\", \"TSVIPSrv.dll\", \"Msfte.dll\",\n \"wow64log.dll\", \"WindowsCoreDeviceInfo.dll\", \"Ualapi.dll\", \"wlanhlp.dll\", \"phoneinfo.dll\", \"EdgeGdi.dll\",\n \"cdpsgshims.dll\", \"windowsperformancerecordercontrol.dll\", \"diagtrack_win.dll\")\n and (dll.code_signature.trusted == false or dll.code_signature.exists == false)) or\n\n /* compatible with Sysmon EventID 7 - Image Load */\n (file.name : (\"wlbsctrl.dll\", \"wbemcomn.dll\", \"WptsExtensions.dll\", \"Tsmsisrv.dll\", \"TSVIPSrv.dll\", \"Msfte.dll\",\n \"wow64log.dll\", \"WindowsCoreDeviceInfo.dll\", \"Ualapi.dll\", \"wlanhlp.dll\", \"phoneinfo.dll\", \"EdgeGdi.dll\",\n \"cdpsgshims.dll\", \"windowsperformancerecordercontrol.dll\", \"diagtrack_win.dll\")\n and not file.code_signature.status == \"Valid\")\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dll.code_signature.exists","type":"boolean"},{"ecs":true,"name":"dll.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"dll.name","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.code_signature.status","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"bfeaf89b-a2a7-48a3-817f-e41829dc61ee:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c02c8b9f-5e1d-463c-a1b0-04edcdfe1a3d:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c02c8b9f-5e1d-463c-a1b0-04edcdfe1a3d:100.0.0.json new file mode 100644 index 0000000000000..b232e9ff3fa49 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c02c8b9f-5e1d-463c-a1b0-04edcdfe1a3d:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Privacy Control Bypass via Localhost Secure Copy v100.0.0","rule_id":"c02c8b9f-5e1d-463c-a1b0-04edcdfe1a3d:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the Secure Copy Protocol (SCP) to copy files locally by abusing the auto addition of the Secure Shell Daemon (sshd) to the authorized application list for Full Disk Access. This may indicate attempts to bypass macOS privacy controls to access sensitive files.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.trendmicro.com/en_us/research/20/h/xcsset-mac-malware--infects-xcode-projects--uses-0-days.html"],"tags":["Elastic","Host","macOS","Threat Detection","Privilege Escalation","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.name:\"scp\" and\n process.args:\"StrictHostKeyChecking=no\" and\n process.command_line:(\"scp *localhost:/*\", \"scp *127.0.0.1:/*\") and\n not process.args:\"vagrant@*127.0.0.1*\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c02c8b9f-5e1d-463c-a1b0-04edcdfe1a3d:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c02c8b9f-5e1d-463c-a1b0-04edcdfe1a3d:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c02c8b9f-5e1d-463c-a1b0-04edcdfe1a3d:100.0.1.json new file mode 100644 index 0000000000000..bead4c71999f9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c02c8b9f-5e1d-463c-a1b0-04edcdfe1a3d:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Privacy Control Bypass via Localhost Secure Copy v100.0.1","rule_id":"c02c8b9f-5e1d-463c-a1b0-04edcdfe1a3d:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the Secure Copy Protocol (SCP) to copy files locally by abusing the auto addition of the Secure Shell Daemon (sshd) to the authorized application list for Full Disk Access. This may indicate attempts to bypass macOS privacy controls to access sensitive files.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.trendmicro.com/en_us/research/20/h/xcsset-mac-malware--infects-xcode-projects--uses-0-days.html"],"tags":["Elastic","Host","macOS","Threat Detection","Privilege Escalation","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.name:\"scp\" and\n process.args:\"StrictHostKeyChecking=no\" and\n process.command_line:(\"scp *localhost:/*\", \"scp *127.0.0.1:/*\") and\n not process.args:\"vagrant@*127.0.0.1*\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c02c8b9f-5e1d-463c-a1b0-04edcdfe1a3d:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c02c8b9f-5e1d-463c-a1b0-04edcdfe1a3d:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c02c8b9f-5e1d-463c-a1b0-04edcdfe1a3d:100.0.2.json new file mode 100644 index 0000000000000..ac05cb763ee7d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c02c8b9f-5e1d-463c-a1b0-04edcdfe1a3d:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Privacy Control Bypass via Localhost Secure Copy v100.0.2","rule_id":"c02c8b9f-5e1d-463c-a1b0-04edcdfe1a3d:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the Secure Copy Protocol (SCP) to copy files locally by abusing the auto addition of the Secure Shell Daemon (sshd) to the authorized application list for Full Disk Access. This may indicate attempts to bypass macOS privacy controls to access sensitive files.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.trendmicro.com/en_us/research/20/h/xcsset-mac-malware--infects-xcode-projects--uses-0-days.html"],"tags":["Elastic","Host","macOS","Threat Detection","Privilege Escalation","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.name:\"scp\" and\n process.args:\"StrictHostKeyChecking=no\" and\n process.command_line:(\"scp *localhost:/*\", \"scp *127.0.0.1:/*\") and\n not process.args:\"vagrant@*127.0.0.1*\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c02c8b9f-5e1d-463c-a1b0-04edcdfe1a3d:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c0429aa8-9974-42da-bfb6-53a0a515a145:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c0429aa8-9974-42da-bfb6-53a0a515a145:101.0.0.json new file mode 100644 index 0000000000000..b696d4b90f7b3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c0429aa8-9974-42da-bfb6-53a0a515a145:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Creation or Modification of a new GPO Scheduled Task or Service v101.0.0","rule_id":"c0429aa8-9974-42da-bfb6-53a0a515a145:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the creation or modification of a new Group Policy based scheduled task or service. These methods are used for legitimate system administration, but can also be abused by an attacker with domain admin permissions to execute a malicious payload remotely on all or a subset of the domain joined machines.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path : (\"?:\\\\Windows\\\\SYSVOL\\\\domain\\\\Policies\\\\*\\\\MACHINE\\\\Preferences\\\\ScheduledTasks\\\\ScheduledTasks.xml\",\n \"?:\\\\Windows\\\\SYSVOL\\\\domain\\\\Policies\\\\*\\\\MACHINE\\\\Preferences\\\\Services\\\\Services.xml\") and\n not process.name : \"dfsrs.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c0429aa8-9974-42da-bfb6-53a0a515a145:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c0429aa8-9974-42da-bfb6-53a0a515a145:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c0429aa8-9974-42da-bfb6-53a0a515a145:101.0.1.json new file mode 100644 index 0000000000000..c4ced66b700c8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c0429aa8-9974-42da-bfb6-53a0a515a145:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Creation or Modification of a new GPO Scheduled Task or Service v101.0.1","rule_id":"c0429aa8-9974-42da-bfb6-53a0a515a145:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the creation or modification of a new Group Policy based scheduled task or service. These methods are used for legitimate system administration, but can also be abused by an attacker with domain admin permissions to execute a malicious payload remotely on all or a subset of the domain joined machines.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path : (\"?:\\\\Windows\\\\SYSVOL\\\\domain\\\\Policies\\\\*\\\\MACHINE\\\\Preferences\\\\ScheduledTasks\\\\ScheduledTasks.xml\",\n \"?:\\\\Windows\\\\SYSVOL\\\\domain\\\\Policies\\\\*\\\\MACHINE\\\\Preferences\\\\Services\\\\Services.xml\") and\n not process.name : \"dfsrs.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c0429aa8-9974-42da-bfb6-53a0a515a145:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c0429aa8-9974-42da-bfb6-53a0a515a145:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c0429aa8-9974-42da-bfb6-53a0a515a145:101.0.2.json new file mode 100644 index 0000000000000..efc501f253838 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c0429aa8-9974-42da-bfb6-53a0a515a145:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Creation or Modification of a new GPO Scheduled Task or Service v101.0.2","rule_id":"c0429aa8-9974-42da-bfb6-53a0a515a145:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the creation or modification of a new Group Policy based scheduled task or service. These methods are used for legitimate system administration, but can also be abused by an attacker with domain admin permissions to execute a malicious payload remotely on all or a subset of the domain joined machines.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1053","name":"Scheduled Task/Job","reference":"https://attack.mitre.org/techniques/T1053/","subtechnique":[{"id":"T1053.005","name":"Scheduled Task","reference":"https://attack.mitre.org/techniques/T1053/005/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.path : (\"?:\\\\Windows\\\\SYSVOL\\\\domain\\\\Policies\\\\*\\\\MACHINE\\\\Preferences\\\\ScheduledTasks\\\\ScheduledTasks.xml\",\n \"?:\\\\Windows\\\\SYSVOL\\\\domain\\\\Policies\\\\*\\\\MACHINE\\\\Preferences\\\\Services\\\\Services.xml\") and\n not process.name : \"dfsrs.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c0429aa8-9974-42da-bfb6-53a0a515a145:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c0be5f31-e180-48ed-aa08-96b36899d48f:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c0be5f31-e180-48ed-aa08-96b36899d48f:100.0.0.json new file mode 100644 index 0000000000000..570d050b5ddf1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c0be5f31-e180-48ed-aa08-96b36899d48f:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Credential Manipulation - Detected - Elastic Endgame v100.0.0","rule_id":"c0be5f31-e180-48ed-aa08-96b36899d48f:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected Credential Manipulation. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:token_manipulation_event or endgame.event_subtype_full:token_manipulation_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"c0be5f31-e180-48ed-aa08-96b36899d48f:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c0be5f31-e180-48ed-aa08-96b36899d48f:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c0be5f31-e180-48ed-aa08-96b36899d48f:100.0.1.json new file mode 100644 index 0000000000000..77b10fbc73c17 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c0be5f31-e180-48ed-aa08-96b36899d48f:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Credential Manipulation - Detected - Elastic Endgame v100.0.1","rule_id":"c0be5f31-e180-48ed-aa08-96b36899d48f:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected Credential Manipulation. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:token_manipulation_event or endgame.event_subtype_full:token_manipulation_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"c0be5f31-e180-48ed-aa08-96b36899d48f:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c0be5f31-e180-48ed-aa08-96b36899d48f:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c0be5f31-e180-48ed-aa08-96b36899d48f:100.0.2.json new file mode 100644 index 0000000000000..e1d9cc320055d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c0be5f31-e180-48ed-aa08-96b36899d48f:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Credential Manipulation - Detected - Elastic Endgame v100.0.2","rule_id":"c0be5f31-e180-48ed-aa08-96b36899d48f:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected Credential Manipulation. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:token_manipulation_event or endgame.event_subtype_full:token_manipulation_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"c0be5f31-e180-48ed-aa08-96b36899d48f:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c1812764-0788-470f-8e74-eb4a14d47573:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c1812764-0788-470f-8e74-eb4a14d47573:101.0.0.json new file mode 100644 index 0000000000000..aa87bb230be47 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c1812764-0788-470f-8e74-eb4a14d47573:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS EC2 Full Network Packet Capture Detected v101.0.0","rule_id":"c1812764-0788-470f-8e74-eb4a14d47573:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential Traffic Mirroring in an Amazon Elastic Compute Cloud (EC2) instance. Traffic Mirroring is an Amazon VPC feature that you can use to copy network traffic from an Elastic network interface. This feature can potentially be abused to exfiltrate sensitive data from unencrypted internal traffic.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Traffic Mirroring may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Traffic Mirroring from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_TrafficMirrorFilter.html","https://github.com/easttimor/aws-incident-response"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1020","name":"Automated Exfiltration","reference":"https://attack.mitre.org/techniques/T1020/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1074","name":"Data Staged","reference":"https://attack.mitre.org/techniques/T1074/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and\nevent.action:(CreateTrafficMirrorFilter or CreateTrafficMirrorFilterRule or CreateTrafficMirrorSession or CreateTrafficMirrorTarget) and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"c1812764-0788-470f-8e74-eb4a14d47573:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c1812764-0788-470f-8e74-eb4a14d47573:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c1812764-0788-470f-8e74-eb4a14d47573:101.0.1.json new file mode 100644 index 0000000000000..37bb70512399b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c1812764-0788-470f-8e74-eb4a14d47573:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS EC2 Full Network Packet Capture Detected v101.0.1","rule_id":"c1812764-0788-470f-8e74-eb4a14d47573:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential Traffic Mirroring in an Amazon Elastic Compute Cloud (EC2) instance. Traffic Mirroring is an Amazon VPC feature that you can use to copy network traffic from an Elastic network interface. This feature can potentially be abused to exfiltrate sensitive data from unencrypted internal traffic.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Traffic Mirroring may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Traffic Mirroring from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_TrafficMirrorFilter.html","https://github.com/easttimor/aws-incident-response"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1020","name":"Automated Exfiltration","reference":"https://attack.mitre.org/techniques/T1020/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1074","name":"Data Staged","reference":"https://attack.mitre.org/techniques/T1074/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and\nevent.action:(CreateTrafficMirrorFilter or CreateTrafficMirrorFilterRule or CreateTrafficMirrorSession or CreateTrafficMirrorTarget) and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"c1812764-0788-470f-8e74-eb4a14d47573:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c1812764-0788-470f-8e74-eb4a14d47573:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c1812764-0788-470f-8e74-eb4a14d47573:101.0.2.json new file mode 100644 index 0000000000000..f32c81ba14c45 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c1812764-0788-470f-8e74-eb4a14d47573:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS EC2 Full Network Packet Capture Detected v101.0.2","rule_id":"c1812764-0788-470f-8e74-eb4a14d47573:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential Traffic Mirroring in an Amazon Elastic Compute Cloud (EC2) instance. Traffic Mirroring is an Amazon VPC feature that you can use to copy network traffic from an Elastic network interface. This feature can potentially be abused to exfiltrate sensitive data from unencrypted internal traffic.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Traffic Mirroring may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Traffic Mirroring from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_TrafficMirrorFilter.html","https://github.com/easttimor/aws-incident-response"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1020","name":"Automated Exfiltration","reference":"https://attack.mitre.org/techniques/T1020/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1074","name":"Data Staged","reference":"https://attack.mitre.org/techniques/T1074/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and\nevent.action:(CreateTrafficMirrorFilter or CreateTrafficMirrorFilterRule or CreateTrafficMirrorSession or CreateTrafficMirrorTarget) and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"c1812764-0788-470f-8e74-eb4a14d47573:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c25e9c87-95e1-4368-bfab-9fd34cf867ec:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c25e9c87-95e1-4368-bfab-9fd34cf867ec:102.0.0.json new file mode 100644 index 0000000000000..4801228241661 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c25e9c87-95e1-4368-bfab-9fd34cf867ec:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft IIS Connection Strings Decryption v102.0.0","rule_id":"c25e9c87-95e1-4368-bfab-9fd34cf867ec:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of aspnet_regiis to decrypt Microsoft IIS connection strings. An attacker with Microsoft IIS web server access via a webshell or alike can decrypt and dump any hardcoded connection strings, such as the MSSQL service account password using aspnet_regiis command.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"references":["https://blog.netspi.com/decrypting-iis-passwords-to-break-out-of-the-dmz-part-1/","https://symantec-enterprise-blogs.security.com/blogs/threat-intelligence/greenbug-espionage-telco-south-asia"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"aspnet_regiis.exe\" or process.pe.original_file_name == \"aspnet_regiis.exe\") and\n process.args : \"connectionStrings\" and process.args : \"-pdf\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c25e9c87-95e1-4368-bfab-9fd34cf867ec:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c25e9c87-95e1-4368-bfab-9fd34cf867ec:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c25e9c87-95e1-4368-bfab-9fd34cf867ec:102.0.1.json new file mode 100644 index 0000000000000..425db50af4904 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c25e9c87-95e1-4368-bfab-9fd34cf867ec:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft IIS Connection Strings Decryption v102.0.1","rule_id":"c25e9c87-95e1-4368-bfab-9fd34cf867ec:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of aspnet_regiis to decrypt Microsoft IIS connection strings. An attacker with Microsoft IIS web server access via a webshell or alike can decrypt and dump any hardcoded connection strings, such as the MSSQL service account password using aspnet_regiis command.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"references":["https://blog.netspi.com/decrypting-iis-passwords-to-break-out-of-the-dmz-part-1/","https://symantec-enterprise-blogs.security.com/blogs/threat-intelligence/greenbug-espionage-telco-south-asia"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"aspnet_regiis.exe\" or process.pe.original_file_name == \"aspnet_regiis.exe\") and\n process.args : \"connectionStrings\" and process.args : \"-pdf\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c25e9c87-95e1-4368-bfab-9fd34cf867ec:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c25e9c87-95e1-4368-bfab-9fd34cf867ec:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c25e9c87-95e1-4368-bfab-9fd34cf867ec:102.0.2.json new file mode 100644 index 0000000000000..fed463f36cb82 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c25e9c87-95e1-4368-bfab-9fd34cf867ec:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft IIS Connection Strings Decryption v102.0.2","rule_id":"c25e9c87-95e1-4368-bfab-9fd34cf867ec:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of aspnet_regiis to decrypt Microsoft IIS connection strings. An attacker with Microsoft IIS web server access via a webshell or alike can decrypt and dump any hardcoded connection strings, such as the MSSQL service account password using aspnet_regiis command.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"references":["https://blog.netspi.com/decrypting-iis-passwords-to-break-out-of-the-dmz-part-1/","https://symantec-enterprise-blogs.security.com/blogs/threat-intelligence/greenbug-espionage-telco-south-asia"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"aspnet_regiis.exe\" or process.pe.original_file_name == \"aspnet_regiis.exe\") and\n process.args : \"connectionStrings\" and process.args : \"-pdf\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c25e9c87-95e1-4368-bfab-9fd34cf867ec:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c28c4d8c-f014-40ef-88b6-79a1d67cd499:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c28c4d8c-f014-40ef-88b6-79a1d67cd499:100.0.0.json new file mode 100644 index 0000000000000..620553eb4cce1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c28c4d8c-f014-40ef-88b6-79a1d67cd499:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Linux Network Connection Discovery v100.0.0","rule_id":"c28c4d8c-f014-40ef-88b6-79a1d67cd499:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for commands related to system network connection discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used by a threat actor to engage in system network connection discovery in order to increase their understanding of connected services and systems. This information may be used to shape follow-up behaviors such as lateral movement or additional discovery.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user command activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1049","name":"System Network Connections Discovery","reference":"https://attack.mitre.org/techniques/T1049/"}]}],"anomaly_threshold":25,"machine_learning_job_id":["v3_linux_network_connection_discovery"],"type":"machine_learning"},"id":"c28c4d8c-f014-40ef-88b6-79a1d67cd499:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c28c4d8c-f014-40ef-88b6-79a1d67cd499:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c28c4d8c-f014-40ef-88b6-79a1d67cd499:100.0.1.json new file mode 100644 index 0000000000000..bcc714f82510f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c28c4d8c-f014-40ef-88b6-79a1d67cd499:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Linux Network Connection Discovery v100.0.1","rule_id":"c28c4d8c-f014-40ef-88b6-79a1d67cd499:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for commands related to system network connection discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used by a threat actor to engage in system network connection discovery in order to increase their understanding of connected services and systems. This information may be used to shape follow-up behaviors such as lateral movement or additional discovery.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user command activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1049","name":"System Network Connections Discovery","reference":"https://attack.mitre.org/techniques/T1049/"}]}],"anomaly_threshold":25,"machine_learning_job_id":["v3_linux_network_connection_discovery"],"type":"machine_learning"},"id":"c28c4d8c-f014-40ef-88b6-79a1d67cd499:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c28c4d8c-f014-40ef-88b6-79a1d67cd499:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c28c4d8c-f014-40ef-88b6-79a1d67cd499:100.0.2.json new file mode 100644 index 0000000000000..467d661b3c873 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c28c4d8c-f014-40ef-88b6-79a1d67cd499:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Linux Network Connection Discovery v100.0.2","rule_id":"c28c4d8c-f014-40ef-88b6-79a1d67cd499:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for commands related to system network connection discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used by a threat actor to engage in system network connection discovery in order to increase their understanding of connected services and systems. This information may be used to shape follow-up behaviors such as lateral movement or additional discovery.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user command activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1049","name":"System Network Connections Discovery","reference":"https://attack.mitre.org/techniques/T1049/"}]}],"anomaly_threshold":25,"machine_learning_job_id":["v3_linux_network_connection_discovery"],"type":"machine_learning"},"id":"c28c4d8c-f014-40ef-88b6-79a1d67cd499:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c292fa52-4115-408a-b897-e14f684b3cb7:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c292fa52-4115-408a-b897-e14f684b3cb7:100.0.0.json new file mode 100644 index 0000000000000..cc21b1d742517 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c292fa52-4115-408a-b897-e14f684b3cb7:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via Folder Action Script v100.0.0","rule_id":"c292fa52-4115-408a-b897-e14f684b3cb7:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects modification of a Folder Action script. A Folder Action script is executed when the folder to which it is attached has items added or removed, or when its window is opened, closed, moved, or resized. Adversaries may abuse this feature to establish persistence by utilizing a malicious script.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/folder-actions-for-persistence-on-macos-8923f222343d"],"tags":["Elastic","Host","macOS","Threat Detection","Execution","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1037","name":"Boot or Logon Initialization Scripts","reference":"https://attack.mitre.org/techniques/T1037/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"sequence by host.id with maxspan=5s\n [process where event.type in (\"start\", \"process_started\", \"info\") and process.name == \"com.apple.foundation.UserScriptService\"] by process.pid\n [process where event.type in (\"start\", \"process_started\") and process.name in (\"osascript\", \"python\", \"tcl\", \"node\", \"perl\", \"ruby\", \"php\", \"bash\", \"csh\", \"zsh\", \"sh\") and\n not process.args : \"/Users/*/Library/Application Support/iTerm2/Scripts/AutoLaunch/*.scpt\"\n ] by process.parent.pid\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.pid","type":"long"},{"ecs":true,"name":"process.pid","type":"long"}]},"id":"c292fa52-4115-408a-b897-e14f684b3cb7:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c292fa52-4115-408a-b897-e14f684b3cb7:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c292fa52-4115-408a-b897-e14f684b3cb7:100.0.1.json new file mode 100644 index 0000000000000..ee856a7c108bc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c292fa52-4115-408a-b897-e14f684b3cb7:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via Folder Action Script v100.0.1","rule_id":"c292fa52-4115-408a-b897-e14f684b3cb7:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects modification of a Folder Action script. A Folder Action script is executed when the folder to which it is attached has items added or removed, or when its window is opened, closed, moved, or resized. Adversaries may abuse this feature to establish persistence by utilizing a malicious script.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/folder-actions-for-persistence-on-macos-8923f222343d"],"tags":["Elastic","Host","macOS","Threat Detection","Execution","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1037","name":"Boot or Logon Initialization Scripts","reference":"https://attack.mitre.org/techniques/T1037/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"sequence by host.id with maxspan=5s\n [process where event.type in (\"start\", \"process_started\", \"info\") and process.name == \"com.apple.foundation.UserScriptService\"] by process.pid\n [process where event.type in (\"start\", \"process_started\") and process.name in (\"osascript\", \"python\", \"tcl\", \"node\", \"perl\", \"ruby\", \"php\", \"bash\", \"csh\", \"zsh\", \"sh\") and\n not process.args : \"/Users/*/Library/Application Support/iTerm2/Scripts/AutoLaunch/*.scpt\"\n ] by process.parent.pid\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.pid","type":"long"},{"ecs":true,"name":"process.pid","type":"long"}]},"id":"c292fa52-4115-408a-b897-e14f684b3cb7:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c292fa52-4115-408a-b897-e14f684b3cb7:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c292fa52-4115-408a-b897-e14f684b3cb7:100.0.2.json new file mode 100644 index 0000000000000..93159134112e3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c292fa52-4115-408a-b897-e14f684b3cb7:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via Folder Action Script v100.0.2","rule_id":"c292fa52-4115-408a-b897-e14f684b3cb7:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects modification of a Folder Action script. A Folder Action script is executed when the folder to which it is attached has items added or removed, or when its window is opened, closed, moved, or resized. Adversaries may abuse this feature to establish persistence by utilizing a malicious script.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/folder-actions-for-persistence-on-macos-8923f222343d"],"tags":["Elastic","Host","macOS","Threat Detection","Execution","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1037","name":"Boot or Logon Initialization Scripts","reference":"https://attack.mitre.org/techniques/T1037/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"sequence by host.id with maxspan=5s\n [process where event.type in (\"start\", \"process_started\", \"info\") and process.name == \"com.apple.foundation.UserScriptService\"] by process.pid\n [process where event.type in (\"start\", \"process_started\") and process.name in (\"osascript\", \"python\", \"tcl\", \"node\", \"perl\", \"ruby\", \"php\", \"bash\", \"csh\", \"zsh\", \"sh\") and\n not process.args : \"/Users/*/Library/Application Support/iTerm2/Scripts/AutoLaunch/*.scpt\"\n ] by process.parent.pid\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.pid","type":"long"},{"ecs":true,"name":"process.pid","type":"long"}]},"id":"c292fa52-4115-408a-b897-e14f684b3cb7:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c2d90150-0133-451c-a783-533e736c12d7:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c2d90150-0133-451c-a783-533e736c12d7:101.0.0.json new file mode 100644 index 0000000000000..c8436e663a67e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c2d90150-0133-451c-a783-533e736c12d7:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Mshta Making Network Connections v101.0.0","rule_id":"c2d90150-0133-451c-a783-533e736c12d7:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Mshta.exe making outbound network connections. This may indicate adversarial activity, as Mshta is often leveraged by adversaries to execute malicious scripts and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-20m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.005","name":"Mshta","reference":"https://attack.mitre.org/techniques/T1218/005/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=10m\n [process where event.type == \"start\" and process.name : \"mshta.exe\" and\n not process.parent.name : \"Microsoft.ConfigurationManagement.exe\" and\n not (process.parent.executable : \"C:\\\\Amazon\\\\Amazon Assistant\\\\amazonAssistantService.exe\" or\n process.parent.executable : \"C:\\\\TeamViewer\\\\TeamViewer.exe\") and\n not process.args : \"ADSelfService_Enroll.hta\"]\n [network where process.name : \"mshta.exe\"]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},"id":"c2d90150-0133-451c-a783-533e736c12d7:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c2d90150-0133-451c-a783-533e736c12d7:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c2d90150-0133-451c-a783-533e736c12d7:101.0.1.json new file mode 100644 index 0000000000000..a31ee47b87f00 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c2d90150-0133-451c-a783-533e736c12d7:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Mshta Making Network Connections v101.0.1","rule_id":"c2d90150-0133-451c-a783-533e736c12d7:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Mshta.exe making outbound network connections. This may indicate adversarial activity, as Mshta is often leveraged by adversaries to execute malicious scripts and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-20m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.005","name":"Mshta","reference":"https://attack.mitre.org/techniques/T1218/005/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=10m\n [process where event.type == \"start\" and process.name : \"mshta.exe\" and\n not process.parent.name : \"Microsoft.ConfigurationManagement.exe\" and\n not (process.parent.executable : \"C:\\\\Amazon\\\\Amazon Assistant\\\\amazonAssistantService.exe\" or\n process.parent.executable : \"C:\\\\TeamViewer\\\\TeamViewer.exe\") and\n not process.args : \"ADSelfService_Enroll.hta\"]\n [network where process.name : \"mshta.exe\"]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},"id":"c2d90150-0133-451c-a783-533e736c12d7:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c2d90150-0133-451c-a783-533e736c12d7:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c2d90150-0133-451c-a783-533e736c12d7:101.0.2.json new file mode 100644 index 0000000000000..f304d13c0da2a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c2d90150-0133-451c-a783-533e736c12d7:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Mshta Making Network Connections v101.0.2","rule_id":"c2d90150-0133-451c-a783-533e736c12d7:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Mshta.exe making outbound network connections. This may indicate adversarial activity, as Mshta is often leveraged by adversaries to execute malicious scripts and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-20m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.005","name":"Mshta","reference":"https://attack.mitre.org/techniques/T1218/005/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=10m\n [process where event.type == \"start\" and process.name : \"mshta.exe\" and\n not process.parent.name : \"Microsoft.ConfigurationManagement.exe\" and\n not (process.parent.executable : \"C:\\\\Amazon\\\\Amazon Assistant\\\\amazonAssistantService.exe\" or\n process.parent.executable : \"C:\\\\TeamViewer\\\\TeamViewer.exe\") and\n not process.args : \"ADSelfService_Enroll.hta\"]\n [network where process.name : \"mshta.exe\"]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},"id":"c2d90150-0133-451c-a783-533e736c12d7:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c3167e1b-f73c-41be-b60b-87f4df707fe3:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c3167e1b-f73c-41be-b60b-87f4df707fe3:100.0.0.json new file mode 100644 index 0000000000000..39ae9778e1abb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c3167e1b-f73c-41be-b60b-87f4df707fe3:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Permission Theft - Detected - Elastic Endgame v100.0.0","rule_id":"c3167e1b-f73c-41be-b60b-87f4df707fe3:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected Permission Theft. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:token_protection_event or endgame.event_subtype_full:token_protection_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"c3167e1b-f73c-41be-b60b-87f4df707fe3:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c3167e1b-f73c-41be-b60b-87f4df707fe3:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c3167e1b-f73c-41be-b60b-87f4df707fe3:100.0.1.json new file mode 100644 index 0000000000000..39ae4cb3d0507 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c3167e1b-f73c-41be-b60b-87f4df707fe3:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Permission Theft - Detected - Elastic Endgame v100.0.1","rule_id":"c3167e1b-f73c-41be-b60b-87f4df707fe3:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected Permission Theft. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:token_protection_event or endgame.event_subtype_full:token_protection_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"c3167e1b-f73c-41be-b60b-87f4df707fe3:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c3167e1b-f73c-41be-b60b-87f4df707fe3:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c3167e1b-f73c-41be-b60b-87f4df707fe3:100.0.2.json new file mode 100644 index 0000000000000..4af065d87a9d2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c3167e1b-f73c-41be-b60b-87f4df707fe3:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Permission Theft - Detected - Elastic Endgame v100.0.2","rule_id":"c3167e1b-f73c-41be-b60b-87f4df707fe3:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame detected Permission Theft. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:detection and (event.action:token_protection_event or endgame.event_subtype_full:token_protection_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"c3167e1b-f73c-41be-b60b-87f4df707fe3:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c3b915e0-22f3-4bf7-991d-b643513c722f:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c3b915e0-22f3-4bf7-991d-b643513c722f:100.0.0.json new file mode 100644 index 0000000000000..1aa32b95c15d4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c3b915e0-22f3-4bf7-991d-b643513c722f:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via BITS Job Notify Cmdline v100.0.0","rule_id":"c3b915e0-22f3-4bf7-991d-b643513c722f:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary can use the Background Intelligent Transfer Service (BITS) SetNotifyCmdLine method to execute a program that runs after a job finishes transferring data or after a job enters a specified state in order to persist on a system.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://pentestlab.blog/2019/10/30/persistence-bits-jobs/","https://docs.microsoft.com/en-us/windows/win32/api/bits1_5/nf-bits1_5-ibackgroundcopyjob2-setnotifycmdline","https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/bitsadmin-setnotifycmdline","https://www.elastic.co/blog/hunting-for-persistence-using-elastic-security-part-2"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1197","name":"BITS Jobs","reference":"https://attack.mitre.org/techniques/T1197/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"svchost.exe\" and process.parent.args : \"BITS\" and\n not process.executable :\n (\"?:\\\\Windows\\\\System32\\\\WerFaultSecure.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\System32\\\\wermgr.exe\",\n \"?:\\\\WINDOWS\\\\system32\\\\directxdatabaseupdater.exe\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c3b915e0-22f3-4bf7-991d-b643513c722f:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c3b915e0-22f3-4bf7-991d-b643513c722f:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c3b915e0-22f3-4bf7-991d-b643513c722f:100.0.1.json new file mode 100644 index 0000000000000..ed67655da7e35 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c3b915e0-22f3-4bf7-991d-b643513c722f:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via BITS Job Notify Cmdline v100.0.1","rule_id":"c3b915e0-22f3-4bf7-991d-b643513c722f:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary can use the Background Intelligent Transfer Service (BITS) SetNotifyCmdLine method to execute a program that runs after a job finishes transferring data or after a job enters a specified state in order to persist on a system.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://pentestlab.blog/2019/10/30/persistence-bits-jobs/","https://docs.microsoft.com/en-us/windows/win32/api/bits1_5/nf-bits1_5-ibackgroundcopyjob2-setnotifycmdline","https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/bitsadmin-setnotifycmdline","https://www.elastic.co/blog/hunting-for-persistence-using-elastic-security-part-2"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1197","name":"BITS Jobs","reference":"https://attack.mitre.org/techniques/T1197/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"svchost.exe\" and process.parent.args : \"BITS\" and\n not process.executable :\n (\"?:\\\\Windows\\\\System32\\\\WerFaultSecure.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\System32\\\\wermgr.exe\",\n \"?:\\\\WINDOWS\\\\system32\\\\directxdatabaseupdater.exe\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c3b915e0-22f3-4bf7-991d-b643513c722f:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c3b915e0-22f3-4bf7-991d-b643513c722f:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c3b915e0-22f3-4bf7-991d-b643513c722f:100.0.2.json new file mode 100644 index 0000000000000..4f63f930ab00a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c3b915e0-22f3-4bf7-991d-b643513c722f:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via BITS Job Notify Cmdline v100.0.2","rule_id":"c3b915e0-22f3-4bf7-991d-b643513c722f:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary can use the Background Intelligent Transfer Service (BITS) SetNotifyCmdLine method to execute a program that runs after a job finishes transferring data or after a job enters a specified state in order to persist on a system.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://pentestlab.blog/2019/10/30/persistence-bits-jobs/","https://docs.microsoft.com/en-us/windows/win32/api/bits1_5/nf-bits1_5-ibackgroundcopyjob2-setnotifycmdline","https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/bitsadmin-setnotifycmdline","https://www.elastic.co/blog/hunting-for-persistence-using-elastic-security-part-2"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1197","name":"BITS Jobs","reference":"https://attack.mitre.org/techniques/T1197/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"svchost.exe\" and process.parent.args : \"BITS\" and\n not process.executable :\n (\"?:\\\\Windows\\\\System32\\\\WerFaultSecure.exe\",\n \"?:\\\\Windows\\\\System32\\\\WerFault.exe\",\n \"?:\\\\Windows\\\\System32\\\\wermgr.exe\",\n \"?:\\\\WINDOWS\\\\system32\\\\directxdatabaseupdater.exe\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c3b915e0-22f3-4bf7-991d-b643513c722f:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c3f5e1d8-910e-43b4-8d44-d748e498ca86:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c3f5e1d8-910e-43b4-8d44-d748e498ca86:101.0.0.json new file mode 100644 index 0000000000000..3148837221243 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c3f5e1d8-910e-43b4-8d44-d748e498ca86:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential JAVA/JNDI Exploitation Attempt v101.0.0","rule_id":"c3f5e1d8-910e-43b4-8d44-d748e498ca86:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an outbound network connection by JAVA to LDAP, RMI or DNS standard ports followed by a suspicious JAVA child processes. This may indicate an attempt to exploit a JAVA/NDI (Java Naming and Directory Interface) injection vulnerability.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.lunasec.io/docs/blog/log4j-zero-day/","https://github.com/christophetd/log4shell-vulnerable-app","https://www.blackhat.com/docs/us-16/materials/us-16-Munoz-A-Journey-From-JNDI-LDAP-Manipulation-To-RCE.pdf","https://www.elastic.co/security-labs/detecting-log4j2-with-elastic-security","https://www.elastic.co/security-labs/analysis-of-log4shell-cve-2021-45046"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.007","name":"JavaScript","reference":"https://attack.mitre.org/techniques/T1059/007/"}]},{"id":"T1203","name":"Exploitation for Client Execution","reference":"https://attack.mitre.org/techniques/T1203/"}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n [network where event.action == \"connection_attempted\" and\n process.name : \"java\" and\n /*\n outbound connection attempt to\n LDAP, RMI or DNS standard ports\n by JAVA process\n */\n destination.port in (1389, 389, 1099, 53, 5353)] by process.pid\n [process where event.type == \"start\" and\n\n /* Suspicious JAVA child process */\n process.parent.name : \"java\" and\n process.name : (\"sh\",\n \"bash\",\n \"dash\",\n \"ksh\",\n \"tcsh\",\n \"zsh\",\n \"curl\",\n \"perl*\",\n \"python*\",\n \"ruby*\",\n \"php*\",\n \"wget\")] by process.parent.pid\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.parent.pid","type":"long"},{"ecs":true,"name":"process.pid","type":"long"}]},"id":"c3f5e1d8-910e-43b4-8d44-d748e498ca86:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c3f5e1d8-910e-43b4-8d44-d748e498ca86:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c3f5e1d8-910e-43b4-8d44-d748e498ca86:101.0.1.json new file mode 100644 index 0000000000000..a66dab656fe5b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c3f5e1d8-910e-43b4-8d44-d748e498ca86:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential JAVA/JNDI Exploitation Attempt v101.0.1","rule_id":"c3f5e1d8-910e-43b4-8d44-d748e498ca86:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an outbound network connection by JAVA to LDAP, RMI or DNS standard ports followed by a suspicious JAVA child processes. This may indicate an attempt to exploit a JAVA/NDI (Java Naming and Directory Interface) injection vulnerability.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.lunasec.io/docs/blog/log4j-zero-day/","https://github.com/christophetd/log4shell-vulnerable-app","https://www.blackhat.com/docs/us-16/materials/us-16-Munoz-A-Journey-From-JNDI-LDAP-Manipulation-To-RCE.pdf","https://www.elastic.co/security-labs/detecting-log4j2-with-elastic-security","https://www.elastic.co/security-labs/analysis-of-log4shell-cve-2021-45046"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.007","name":"JavaScript","reference":"https://attack.mitre.org/techniques/T1059/007/"}]},{"id":"T1203","name":"Exploitation for Client Execution","reference":"https://attack.mitre.org/techniques/T1203/"}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n [network where event.action == \"connection_attempted\" and\n process.name : \"java\" and\n /*\n outbound connection attempt to\n LDAP, RMI or DNS standard ports\n by JAVA process\n */\n destination.port in (1389, 389, 1099, 53, 5353)] by process.pid\n [process where event.type == \"start\" and\n\n /* Suspicious JAVA child process */\n process.parent.name : \"java\" and\n process.name : (\"sh\",\n \"bash\",\n \"dash\",\n \"ksh\",\n \"tcsh\",\n \"zsh\",\n \"curl\",\n \"perl*\",\n \"python*\",\n \"ruby*\",\n \"php*\",\n \"wget\")] by process.parent.pid\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.parent.pid","type":"long"},{"ecs":true,"name":"process.pid","type":"long"}]},"id":"c3f5e1d8-910e-43b4-8d44-d748e498ca86:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c3f5e1d8-910e-43b4-8d44-d748e498ca86:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c3f5e1d8-910e-43b4-8d44-d748e498ca86:101.0.2.json new file mode 100644 index 0000000000000..954b3b10b8748 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c3f5e1d8-910e-43b4-8d44-d748e498ca86:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential JAVA/JNDI Exploitation Attempt v101.0.2","rule_id":"c3f5e1d8-910e-43b4-8d44-d748e498ca86:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an outbound network connection by JAVA to LDAP, RMI or DNS standard ports followed by a suspicious JAVA child processes. This may indicate an attempt to exploit a JAVA/NDI (Java Naming and Directory Interface) injection vulnerability.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.lunasec.io/docs/blog/log4j-zero-day/","https://github.com/christophetd/log4shell-vulnerable-app","https://www.blackhat.com/docs/us-16/materials/us-16-Munoz-A-Journey-From-JNDI-LDAP-Manipulation-To-RCE.pdf","https://www.elastic.co/security-labs/detecting-log4j2-with-elastic-security","https://www.elastic.co/security-labs/analysis-of-log4shell-cve-2021-45046"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.007","name":"JavaScript","reference":"https://attack.mitre.org/techniques/T1059/007/"}]},{"id":"T1203","name":"Exploitation for Client Execution","reference":"https://attack.mitre.org/techniques/T1203/"}]}],"language":"eql","query":"sequence by host.id with maxspan=1m\n [network where event.action == \"connection_attempted\" and\n process.name : \"java\" and\n /*\n outbound connection attempt to\n LDAP, RMI or DNS standard ports\n by JAVA process\n */\n destination.port in (1389, 389, 1099, 53, 5353)] by process.pid\n [process where event.type == \"start\" and\n\n /* Suspicious JAVA child process */\n process.parent.name : \"java\" and\n process.name : (\"sh\",\n \"bash\",\n \"dash\",\n \"ksh\",\n \"tcsh\",\n \"zsh\",\n \"curl\",\n \"perl*\",\n \"python*\",\n \"ruby*\",\n \"php*\",\n \"wget\")] by process.parent.pid\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.parent.pid","type":"long"},{"ecs":true,"name":"process.pid","type":"long"}]},"id":"c3f5e1d8-910e-43b4-8d44-d748e498ca86:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c4210e1c-64f2-4f48-b67e-b5a8ffe3aa14:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c4210e1c-64f2-4f48-b67e-b5a8ffe3aa14:102.0.0.json new file mode 100644 index 0000000000000..c6ca8e3ff247c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c4210e1c-64f2-4f48-b67e-b5a8ffe3aa14:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Mounting Hidden or WebDav Remote Shares v102.0.0","rule_id":"c4210e1c-64f2-4f48-b67e-b5a8ffe3aa14:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of net.exe to mount a WebDav or hidden remote share. This may indicate lateral movement or preparation for data exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.003","name":"Local Accounts","reference":"https://attack.mitre.org/techniques/T1078/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n ((process.name : \"net.exe\" or process.pe.original_file_name == \"net.exe\") or ((process.name : \"net1.exe\" or process.pe.original_file_name == \"net1.exe\") and\n not process.parent.name : \"net.exe\")) and\n process.args : \"use\" and\n /* including hidden and webdav based online shares such as onedrive */\n process.args : (\"\\\\\\\\*\\\\*$*\", \"\\\\\\\\*@SSL\\\\*\", \"http*\") and\n /* excluding shares deletion operation */\n not process.args : \"/d*\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c4210e1c-64f2-4f48-b67e-b5a8ffe3aa14:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c4210e1c-64f2-4f48-b67e-b5a8ffe3aa14:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c4210e1c-64f2-4f48-b67e-b5a8ffe3aa14:102.0.1.json new file mode 100644 index 0000000000000..af69722e88b2c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c4210e1c-64f2-4f48-b67e-b5a8ffe3aa14:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Mounting Hidden or WebDav Remote Shares v102.0.1","rule_id":"c4210e1c-64f2-4f48-b67e-b5a8ffe3aa14:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of net.exe to mount a WebDav or hidden remote share. This may indicate lateral movement or preparation for data exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.003","name":"Local Accounts","reference":"https://attack.mitre.org/techniques/T1078/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n ((process.name : \"net.exe\" or process.pe.original_file_name == \"net.exe\") or ((process.name : \"net1.exe\" or process.pe.original_file_name == \"net1.exe\") and\n not process.parent.name : \"net.exe\")) and\n process.args : \"use\" and\n /* including hidden and webdav based online shares such as onedrive */\n process.args : (\"\\\\\\\\*\\\\*$*\", \"\\\\\\\\*@SSL\\\\*\", \"http*\") and\n /* excluding shares deletion operation */\n not process.args : \"/d*\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c4210e1c-64f2-4f48-b67e-b5a8ffe3aa14:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c4210e1c-64f2-4f48-b67e-b5a8ffe3aa14:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c4210e1c-64f2-4f48-b67e-b5a8ffe3aa14:102.0.2.json new file mode 100644 index 0000000000000..d90951e768984 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c4210e1c-64f2-4f48-b67e-b5a8ffe3aa14:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Mounting Hidden or WebDav Remote Shares v102.0.2","rule_id":"c4210e1c-64f2-4f48-b67e-b5a8ffe3aa14:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of net.exe to mount a WebDav or hidden remote share. This may indicate lateral movement or preparation for data exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.003","name":"Local Accounts","reference":"https://attack.mitre.org/techniques/T1078/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n ((process.name : \"net.exe\" or process.pe.original_file_name == \"net.exe\") or ((process.name : \"net1.exe\" or process.pe.original_file_name == \"net1.exe\") and\n not process.parent.name : \"net.exe\")) and\n process.args : \"use\" and\n /* including hidden and webdav based online shares such as onedrive */\n process.args : (\"\\\\\\\\*\\\\*$*\", \"\\\\\\\\*@SSL\\\\*\", \"http*\") and\n /* excluding shares deletion operation */\n not process.args : \"/d*\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c4210e1c-64f2-4f48-b67e-b5a8ffe3aa14:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c4818812-d44f-47be-aaef-4cfb2f9cc799:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c4818812-d44f-47be-aaef-4cfb2f9cc799:100.0.0.json new file mode 100644 index 0000000000000..7c546678c2fbd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c4818812-d44f-47be-aaef-4cfb2f9cc799:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Print Spooler File Deletion v100.0.0","rule_id":"c4818812-d44f-47be-aaef-4cfb2f9cc799:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects deletion of print driver files by an unusual process. This may indicate a clean up attempt post successful privilege escalation via Print Spooler service related vulnerabilities.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Uninstall or manual deletion of a legitimate printing driver files. Verify the printer file metadata such as manufacturer and signature information."],"from":"now-9m","references":["https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34527"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"file where event.type : \"deletion\" and\n not process.name : (\"spoolsv.exe\", \"dllhost.exe\", \"explorer.exe\") and\n file.path : \"?:\\\\Windows\\\\System32\\\\spool\\\\drivers\\\\x64\\\\3\\\\*.dll\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c4818812-d44f-47be-aaef-4cfb2f9cc799:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c4818812-d44f-47be-aaef-4cfb2f9cc799:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c4818812-d44f-47be-aaef-4cfb2f9cc799:100.0.1.json new file mode 100644 index 0000000000000..6bdd708f10719 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c4818812-d44f-47be-aaef-4cfb2f9cc799:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Print Spooler File Deletion v100.0.1","rule_id":"c4818812-d44f-47be-aaef-4cfb2f9cc799:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects deletion of print driver files by an unusual process. This may indicate a clean up attempt post successful privilege escalation via Print Spooler service related vulnerabilities.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Uninstall or manual deletion of a legitimate printing driver files. Verify the printer file metadata such as manufacturer and signature information."],"from":"now-9m","references":["https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34527"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"file where event.type : \"deletion\" and\n not process.name : (\"spoolsv.exe\", \"dllhost.exe\", \"explorer.exe\") and\n file.path : \"?:\\\\Windows\\\\System32\\\\spool\\\\drivers\\\\x64\\\\3\\\\*.dll\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c4818812-d44f-47be-aaef-4cfb2f9cc799:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c4818812-d44f-47be-aaef-4cfb2f9cc799:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c4818812-d44f-47be-aaef-4cfb2f9cc799:100.0.2.json new file mode 100644 index 0000000000000..1f223dedc7f95 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c4818812-d44f-47be-aaef-4cfb2f9cc799:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Print Spooler File Deletion v100.0.2","rule_id":"c4818812-d44f-47be-aaef-4cfb2f9cc799:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects deletion of print driver files by an unusual process. This may indicate a clean up attempt post successful privilege escalation via Print Spooler service related vulnerabilities.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Uninstall or manual deletion of a legitimate printing driver files. Verify the printer file metadata such as manufacturer and signature information."],"from":"now-9m","references":["https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34527"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"file where event.type : \"deletion\" and\n not process.name : (\"spoolsv.exe\", \"dllhost.exe\", \"explorer.exe\") and\n file.path : \"?:\\\\Windows\\\\System32\\\\spool\\\\drivers\\\\x64\\\\3\\\\*.dll\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c4818812-d44f-47be-aaef-4cfb2f9cc799:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c57f8579-e2a5-4804-847f-f2732edc5156:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c57f8579-e2a5-4804-847f-f2732edc5156:100.0.0.json new file mode 100644 index 0000000000000..4d8ecff323172 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c57f8579-e2a5-4804-847f-f2732edc5156:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Remote Desktop Shadowing Activity v100.0.0","rule_id":"c57f8579-e2a5-4804-847f-f2732edc5156:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the modification of the Remote Desktop Protocol (RDP) Shadow registry or the execution of processes indicative of an active RDP shadowing session. An adversary may abuse the RDP Shadowing feature to spy on or control other users active RDP sessions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://bitsadm.in/blog/spying-on-users-using-rdp-shadowing","https://swarm.ptsecurity.com/remote-desktop-services-shadowing/"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"/* Identifies the modification of RDP Shadow registry or\n the execution of processes indicative of active shadow RDP session */\n\nany where\n (event.category == \"registry\" and\n registry.path : \"HKLM\\\\Software\\\\Policies\\\\Microsoft\\\\Windows NT\\\\Terminal Services\\\\Shadow\"\n ) or\n (event.category == \"process\" and\n (process.name : (\"RdpSaUacHelper.exe\", \"RdpSaProxy.exe\") and process.parent.name : \"svchost.exe\") or\n (process.pe.original_file_name : \"mstsc.exe\" and process.args : \"/shadow:*\")\n )\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c57f8579-e2a5-4804-847f-f2732edc5156:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c57f8579-e2a5-4804-847f-f2732edc5156:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c57f8579-e2a5-4804-847f-f2732edc5156:100.0.1.json new file mode 100644 index 0000000000000..57c9cfed613d9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c57f8579-e2a5-4804-847f-f2732edc5156:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Remote Desktop Shadowing Activity v100.0.1","rule_id":"c57f8579-e2a5-4804-847f-f2732edc5156:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the modification of the Remote Desktop Protocol (RDP) Shadow registry or the execution of processes indicative of an active RDP shadowing session. An adversary may abuse the RDP Shadowing feature to spy on or control other users active RDP sessions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://bitsadm.in/blog/spying-on-users-using-rdp-shadowing","https://swarm.ptsecurity.com/remote-desktop-services-shadowing/"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"/* Identifies the modification of RDP Shadow registry or\n the execution of processes indicative of active shadow RDP session */\n\nany where\n (event.category == \"registry\" and\n registry.path : \"HKLM\\\\Software\\\\Policies\\\\Microsoft\\\\Windows NT\\\\Terminal Services\\\\Shadow\"\n ) or\n (event.category == \"process\" and\n (process.name : (\"RdpSaUacHelper.exe\", \"RdpSaProxy.exe\") and process.parent.name : \"svchost.exe\") or\n (process.pe.original_file_name : \"mstsc.exe\" and process.args : \"/shadow:*\")\n )\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c57f8579-e2a5-4804-847f-f2732edc5156:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c57f8579-e2a5-4804-847f-f2732edc5156:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c57f8579-e2a5-4804-847f-f2732edc5156:100.0.2.json new file mode 100644 index 0000000000000..be903516f1171 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c57f8579-e2a5-4804-847f-f2732edc5156:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Remote Desktop Shadowing Activity v100.0.2","rule_id":"c57f8579-e2a5-4804-847f-f2732edc5156:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the modification of the Remote Desktop Protocol (RDP) Shadow registry or the execution of processes indicative of an active RDP shadowing session. An adversary may abuse the RDP Shadowing feature to spy on or control other users active RDP sessions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://bitsadm.in/blog/spying-on-users-using-rdp-shadowing","https://swarm.ptsecurity.com/remote-desktop-services-shadowing/"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"/* Identifies the modification of RDP Shadow registry or\n the execution of processes indicative of active shadow RDP session */\n\nany where\n (event.category == \"registry\" and\n registry.path : \"HKLM\\\\Software\\\\Policies\\\\Microsoft\\\\Windows NT\\\\Terminal Services\\\\Shadow\"\n ) or\n (event.category == \"process\" and\n (process.name : (\"RdpSaUacHelper.exe\", \"RdpSaProxy.exe\") and process.parent.name : \"svchost.exe\") or\n (process.pe.original_file_name : \"mstsc.exe\" and process.args : \"/shadow:*\")\n )\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c57f8579-e2a5-4804-847f-f2732edc5156:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c58c3081-2e1d-4497-8491-e73a45d1a6d6:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c58c3081-2e1d-4497-8491-e73a45d1a6d6:102.0.0.json new file mode 100644 index 0000000000000..dc85909d5a482 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c58c3081-2e1d-4497-8491-e73a45d1a6d6:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Virtual Private Cloud Network Deletion v102.0.0","rule_id":"c58c3081-2e1d-4497-8491-e73a45d1a6d6:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Virtual Private Cloud (VPC) network is deleted in Google Cloud Platform (GCP). A VPC network is a virtual version of a physical network within a GCP project. Each VPC network has its own subnets, routes, and firewall, as well as other elements. An adversary may delete a VPC network in order to disrupt their target's network and business operations.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Virtual Private Cloud networks may be deleted by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/vpc"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:v*.compute.networks.delete and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"c58c3081-2e1d-4497-8491-e73a45d1a6d6:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c58c3081-2e1d-4497-8491-e73a45d1a6d6:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c58c3081-2e1d-4497-8491-e73a45d1a6d6:102.0.1.json new file mode 100644 index 0000000000000..c1c34825cf586 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c58c3081-2e1d-4497-8491-e73a45d1a6d6:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Virtual Private Cloud Network Deletion v102.0.1","rule_id":"c58c3081-2e1d-4497-8491-e73a45d1a6d6:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Virtual Private Cloud (VPC) network is deleted in Google Cloud Platform (GCP). A VPC network is a virtual version of a physical network within a GCP project. Each VPC network has its own subnets, routes, and firewall, as well as other elements. An adversary may delete a VPC network in order to disrupt their target's network and business operations.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Virtual Private Cloud networks may be deleted by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/vpc"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:v*.compute.networks.delete and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"c58c3081-2e1d-4497-8491-e73a45d1a6d6:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c58c3081-2e1d-4497-8491-e73a45d1a6d6:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c58c3081-2e1d-4497-8491-e73a45d1a6d6:102.0.2.json new file mode 100644 index 0000000000000..1644fea74601e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c58c3081-2e1d-4497-8491-e73a45d1a6d6:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Virtual Private Cloud Network Deletion v102.0.2","rule_id":"c58c3081-2e1d-4497-8491-e73a45d1a6d6:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Virtual Private Cloud (VPC) network is deleted in Google Cloud Platform (GCP). A VPC network is a virtual version of a physical network within a GCP project. Each VPC network has its own subnets, routes, and firewall, as well as other elements. An adversary may delete a VPC network in order to disrupt their target's network and business operations.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Virtual Private Cloud networks may be deleted by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/vpc"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:v*.compute.networks.delete and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"c58c3081-2e1d-4497-8491-e73a45d1a6d6:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c5c9f591-d111-4cf8-baec-c26a39bc31ef:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c5c9f591-d111-4cf8-baec-c26a39bc31ef:101.0.0.json new file mode 100644 index 0000000000000..fe6e3f027043a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c5c9f591-d111-4cf8-baec-c26a39bc31ef:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Credential Access via Renamed COM+ Services DLL v101.0.0","rule_id":"c5c9f591-d111-4cf8-baec-c26a39bc31ef:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious renamed COMSVCS.DLL Image Load, which exports the MiniDump function that can be used to dump a process memory. This may indicate an attempt to dump LSASS memory while bypassing command-line based detection in preparation for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic"],"from":"now-9m","references":["https://modexp.wordpress.com/2019/08/30/minidumpwritedump-via-com-services-dll/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=1m\n [process where event.category == \"process\" and\n process.name : \"rundll32.exe\"]\n [process where event.category == \"process\" and event.dataset : \"windows.sysmon_operational\" and event.code == \"7\" and\n (file.pe.original_file_name : \"COMSVCS.DLL\" or file.pe.imphash : \"EADBCCBB324829ACB5F2BBE87E5549A8\") and\n /* renamed COMSVCS */\n not file.name : \"COMSVCS.DLL\"]\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.pe.imphash","type":"keyword"},{"ecs":true,"name":"file.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"You will need to enable logging of ImageLoads in your Sysmon configuration to include COMSVCS.DLL by Imphash or Original\nFile Name."},"id":"c5c9f591-d111-4cf8-baec-c26a39bc31ef:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c5c9f591-d111-4cf8-baec-c26a39bc31ef:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c5c9f591-d111-4cf8-baec-c26a39bc31ef:101.0.1.json new file mode 100644 index 0000000000000..989f0ea7f3684 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c5c9f591-d111-4cf8-baec-c26a39bc31ef:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Credential Access via Renamed COM+ Services DLL v101.0.1","rule_id":"c5c9f591-d111-4cf8-baec-c26a39bc31ef:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious renamed COMSVCS.DLL Image Load, which exports the MiniDump function that can be used to dump a process memory. This may indicate an attempt to dump LSASS memory while bypassing command-line based detection in preparation for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic"],"from":"now-9m","references":["https://modexp.wordpress.com/2019/08/30/minidumpwritedump-via-com-services-dll/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=1m\n [process where event.category == \"process\" and\n process.name : \"rundll32.exe\"]\n [process where event.category == \"process\" and event.dataset : \"windows.sysmon_operational\" and event.code == \"7\" and\n (file.pe.original_file_name : \"COMSVCS.DLL\" or file.pe.imphash : \"EADBCCBB324829ACB5F2BBE87E5549A8\") and\n /* renamed COMSVCS */\n not file.name : \"COMSVCS.DLL\"]\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.pe.imphash","type":"keyword"},{"ecs":true,"name":"file.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"You will need to enable logging of ImageLoads in your Sysmon configuration to include COMSVCS.DLL by Imphash or Original\nFile Name."},"id":"c5c9f591-d111-4cf8-baec-c26a39bc31ef:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c5c9f591-d111-4cf8-baec-c26a39bc31ef:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c5c9f591-d111-4cf8-baec-c26a39bc31ef:101.0.2.json new file mode 100644 index 0000000000000..bf0d64a6171d8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c5c9f591-d111-4cf8-baec-c26a39bc31ef:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Credential Access via Renamed COM+ Services DLL v101.0.2","rule_id":"c5c9f591-d111-4cf8-baec-c26a39bc31ef:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious renamed COMSVCS.DLL Image Load, which exports the MiniDump function that can be used to dump a process memory. This may indicate an attempt to dump LSASS memory while bypassing command-line based detection in preparation for credential access.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","author":["Elastic"],"from":"now-9m","references":["https://modexp.wordpress.com/2019/08/30/minidumpwritedump-via-com-services-dll/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Sysmon Only"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=1m\n [process where event.category == \"process\" and\n process.name : \"rundll32.exe\"]\n [process where event.category == \"process\" and event.dataset : \"windows.sysmon_operational\" and event.code == \"7\" and\n (file.pe.original_file_name : \"COMSVCS.DLL\" or file.pe.imphash : \"EADBCCBB324829ACB5F2BBE87E5549A8\") and\n /* renamed COMSVCS */\n not file.name : \"COMSVCS.DLL\"]\n","type":"eql","index":["winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.pe.imphash","type":"keyword"},{"ecs":true,"name":"file.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"You will need to enable logging of ImageLoads in your Sysmon configuration to include COMSVCS.DLL by Imphash or Original\nFile Name."},"id":"c5c9f591-d111-4cf8-baec-c26a39bc31ef:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c5ce48a6-7f57-4ee8-9313-3d0024caee10:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c5ce48a6-7f57-4ee8-9313-3d0024caee10:101.0.0.json new file mode 100644 index 0000000000000..4b8e5c6c1cc5a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c5ce48a6-7f57-4ee8-9313-3d0024caee10:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Installation of Custom Shim Databases v101.0.0","rule_id":"c5ce48a6-7f57-4ee8-9313-3d0024caee10:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the installation of custom Application Compatibility Shim databases. This Windows functionality has been abused by attackers to stealthily gain persistence and arbitrary code execution in legitimate Windows processes.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.011","name":"Application Shimming","reference":"https://attack.mitre.org/techniques/T1546/011/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan = 5m\n [process where event.type == \"start\" and\n not (process.name : \"sdbinst.exe\" and process.parent.name : \"msiexec.exe\")]\n [registry where event.type in (\"creation\", \"change\") and\n registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\AppCompatFlags\\\\Custom\\\\*.sdb\"]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"c5ce48a6-7f57-4ee8-9313-3d0024caee10:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c5ce48a6-7f57-4ee8-9313-3d0024caee10:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c5ce48a6-7f57-4ee8-9313-3d0024caee10:101.0.1.json new file mode 100644 index 0000000000000..7839034949c19 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c5ce48a6-7f57-4ee8-9313-3d0024caee10:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Installation of Custom Shim Databases v101.0.1","rule_id":"c5ce48a6-7f57-4ee8-9313-3d0024caee10:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the installation of custom Application Compatibility Shim databases. This Windows functionality has been abused by attackers to stealthily gain persistence and arbitrary code execution in legitimate Windows processes.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.011","name":"Application Shimming","reference":"https://attack.mitre.org/techniques/T1546/011/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan = 5m\n [process where event.type == \"start\" and\n not (process.name : \"sdbinst.exe\" and process.parent.name : \"msiexec.exe\")]\n [registry where event.type in (\"creation\", \"change\") and\n registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\AppCompatFlags\\\\Custom\\\\*.sdb\"]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"c5ce48a6-7f57-4ee8-9313-3d0024caee10:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c5ce48a6-7f57-4ee8-9313-3d0024caee10:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c5ce48a6-7f57-4ee8-9313-3d0024caee10:101.0.2.json new file mode 100644 index 0000000000000..dbddfcf2a97d7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c5ce48a6-7f57-4ee8-9313-3d0024caee10:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Installation of Custom Shim Databases v101.0.2","rule_id":"c5ce48a6-7f57-4ee8-9313-3d0024caee10:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the installation of custom Application Compatibility Shim databases. This Windows functionality has been abused by attackers to stealthily gain persistence and arbitrary code execution in legitimate Windows processes.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.011","name":"Application Shimming","reference":"https://attack.mitre.org/techniques/T1546/011/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan = 5m\n [process where event.type == \"start\" and\n not (process.name : \"sdbinst.exe\" and process.parent.name : \"msiexec.exe\")]\n [registry where event.type in (\"creation\", \"change\") and\n registry.path : \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\AppCompatFlags\\\\Custom\\\\*.sdb\"]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"c5ce48a6-7f57-4ee8-9313-3d0024caee10:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c5dc3223-13a2-44a2-946c-e9dc0aa0449c:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c5dc3223-13a2-44a2-946c-e9dc0aa0449c:102.0.0.json new file mode 100644 index 0000000000000..2599317d81785 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c5dc3223-13a2-44a2-946c-e9dc0aa0449c:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft Build Engine Started by an Office Application v102.0.0","rule_id":"c5dc3223-13a2-44a2-946c-e9dc0aa0449c:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, was started by Excel or Word. This is unusual behavior for the Build Engine and could have been caused by an Excel or Word document executing a malicious script payload.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Microsoft Build Engine Started by an Office Application\n\nMicrosoft Office (MS Office) is a suite of applications designed to help with productivity and completing common tasks on a computer.\nYou can create and edit documents containing text and images, work with data in spreadsheets and databases, and create\npresentations and posters. As it is some of the most-used software across companies, MS Office is frequently targeted\nfor initial access. It also has a wide variety of capabilities that attackers can take advantage of.\n\nThe Microsoft Build Engine is a platform for building applications. This engine, also known as MSBuild, provides an XML\nschema for a project file that controls how the build platform processes and builds software, and can be abused to proxy\nexecution of code.\n\nThis rule looks for the `Msbuild.exe` utility spawned by MS Office programs. This is generally the result of the\nexecution of malicious documents.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve MS Office documents received and opened by the user that could cause this behavior. Common locations include,\nbut are not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual. It is quite unusual for this program to be started by an Office application like Word or Excel."],"from":"now-9m","references":["https://blog.talosintelligence.com/2020/02/building-bypass-with-msbuild.html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/","subtechnique":[{"id":"T1127.001","name":"MSBuild","reference":"https://attack.mitre.org/techniques/T1127/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"MSBuild.exe\" and\n process.parent.name : (\"eqnedt32.exe\",\n \"excel.exe\",\n \"fltldr.exe\",\n \"msaccess.exe\",\n \"mspub.exe\",\n \"outlook.exe\",\n \"powerpnt.exe\",\n \"winword.exe\" )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c5dc3223-13a2-44a2-946c-e9dc0aa0449c:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c5dc3223-13a2-44a2-946c-e9dc0aa0449c:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c5dc3223-13a2-44a2-946c-e9dc0aa0449c:102.0.1.json new file mode 100644 index 0000000000000..7c227818b5a66 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c5dc3223-13a2-44a2-946c-e9dc0aa0449c:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft Build Engine Started by an Office Application v102.0.1","rule_id":"c5dc3223-13a2-44a2-946c-e9dc0aa0449c:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, was started by Excel or Word. This is unusual behavior for the Build Engine and could have been caused by an Excel or Word document executing a malicious script payload.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Microsoft Build Engine Started by an Office Application\n\nMicrosoft Office (MS Office) is a suite of applications designed to help with productivity and completing common tasks on a computer.\nYou can create and edit documents containing text and images, work with data in spreadsheets and databases, and create\npresentations and posters. As it is some of the most-used software across companies, MS Office is frequently targeted\nfor initial access. It also has a wide variety of capabilities that attackers can take advantage of.\n\nThe Microsoft Build Engine is a platform for building applications. This engine, also known as MSBuild, provides an XML\nschema for a project file that controls how the build platform processes and builds software, and can be abused to proxy\nexecution of code.\n\nThis rule looks for the `Msbuild.exe` utility spawned by MS Office programs. This is generally the result of the\nexecution of malicious documents.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve MS Office documents received and opened by the user that could cause this behavior. Common locations include,\nbut are not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual. It is quite unusual for this program to be started by an Office application like Word or Excel."],"from":"now-9m","references":["https://blog.talosintelligence.com/2020/02/building-bypass-with-msbuild.html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/","subtechnique":[{"id":"T1127.001","name":"MSBuild","reference":"https://attack.mitre.org/techniques/T1127/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"MSBuild.exe\" and\n process.parent.name : (\"eqnedt32.exe\",\n \"excel.exe\",\n \"fltldr.exe\",\n \"msaccess.exe\",\n \"mspub.exe\",\n \"outlook.exe\",\n \"powerpnt.exe\",\n \"winword.exe\" )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c5dc3223-13a2-44a2-946c-e9dc0aa0449c:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c5dc3223-13a2-44a2-946c-e9dc0aa0449c:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c5dc3223-13a2-44a2-946c-e9dc0aa0449c:102.0.2.json new file mode 100644 index 0000000000000..da5c0fab40686 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c5dc3223-13a2-44a2-946c-e9dc0aa0449c:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft Build Engine Started by an Office Application v102.0.2","rule_id":"c5dc3223-13a2-44a2-946c-e9dc0aa0449c:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An instance of MSBuild, the Microsoft Build Engine, was started by Excel or Word. This is unusual behavior for the Build Engine and could have been caused by an Excel or Word document executing a malicious script payload.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Microsoft Build Engine Started by an Office Application\n\nMicrosoft Office (MS Office) is a suite of applications designed to help with productivity and completing common tasks on a computer.\nYou can create and edit documents containing text and images, work with data in spreadsheets and databases, and create\npresentations and posters. As it is some of the most-used software across companies, MS Office is frequently targeted\nfor initial access. It also has a wide variety of capabilities that attackers can take advantage of.\n\nThe Microsoft Build Engine is a platform for building applications. This engine, also known as MSBuild, provides an XML\nschema for a project file that controls how the build platform processes and builds software, and can be abused to proxy\nexecution of code.\n\nThis rule looks for the `Msbuild.exe` utility spawned by MS Office programs. This is generally the result of the\nexecution of malicious documents.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate abnormal behaviors observed by the subject process, such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve MS Office documents received and opened by the user that could cause this behavior. Common locations include,\nbut are not limited to, the Downloads and Document folders and the folder configured at the email client.\n- Determine if the collected files are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full scan using the antimalware tool in place. This scan can reveal additional artifacts left in the system,\npersistence mechanisms, and malware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n - If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The Build Engine is commonly used by Windows developers but use by non-engineers is unusual. It is quite unusual for this program to be started by an Office application like Word or Excel."],"from":"now-9m","references":["https://blog.talosintelligence.com/2020/02/building-bypass-with-msbuild.html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1127","name":"Trusted Developer Utilities Proxy Execution","reference":"https://attack.mitre.org/techniques/T1127/","subtechnique":[{"id":"T1127.001","name":"MSBuild","reference":"https://attack.mitre.org/techniques/T1127/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"MSBuild.exe\" and\n process.parent.name : (\"eqnedt32.exe\",\n \"excel.exe\",\n \"fltldr.exe\",\n \"msaccess.exe\",\n \"mspub.exe\",\n \"outlook.exe\",\n \"powerpnt.exe\",\n \"winword.exe\" )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c5dc3223-13a2-44a2-946c-e9dc0aa0449c:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c5f81243-56e0-47f9-b5bb-55a5ed89ba57:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c5f81243-56e0-47f9-b5bb-55a5ed89ba57:101.0.0.json new file mode 100644 index 0000000000000..4419c2632784e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c5f81243-56e0-47f9-b5bb-55a5ed89ba57:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"CyberArk Privileged Access Security Recommended Monitor v101.0.0","rule_id":"c5f81243-56e0-47f9-b5bb-55a5ed89ba57:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the occurrence of a CyberArk Privileged Access Security (PAS) non-error level audit event which is recommended for monitoring by the vendor. The event.code correlates to the CyberArk Vault Audit Action Code.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\nThis is a promotion rule for CyberArk events, which the vendor recommends should be monitored.\nConsult vendor documentation on interpreting specific events.","rule_name_override":"event.action","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["To tune this rule, add exceptions to exclude any event.code which should not trigger this rule."],"from":"now-30m","references":["https://docs.cyberark.com/Product-Doc/OnlineHelp/PAS/Latest/en/Content/PASREF/Vault%20Audit%20Action%20Codes.htm?tocpath=Administration%7CReferences%7C_____3#RecommendedActionCodesforMonitoring"],"tags":["Elastic","cyberarkpas","SecOps","Log Auditing","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-cyberarkpas.audit*"],"language":"kuery","query":"event.dataset:cyberarkpas.audit and\n event.code:(4 or 22 or 24 or 31 or 38 or 57 or 60 or 130 or 295 or 300 or 302 or\n 308 or 319 or 344 or 346 or 359 or 361 or 378 or 380 or 411) and\n not event.type:error\n","related_integrations":[{"package":"cyberarkpas","version":"^2.2.0"}],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"}],"setup":"The CyberArk Privileged Access Security (PAS) Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"c5f81243-56e0-47f9-b5bb-55a5ed89ba57:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c5f81243-56e0-47f9-b5bb-55a5ed89ba57:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c5f81243-56e0-47f9-b5bb-55a5ed89ba57:101.0.1.json new file mode 100644 index 0000000000000..5e09a3a8f0a80 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c5f81243-56e0-47f9-b5bb-55a5ed89ba57:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"CyberArk Privileged Access Security Recommended Monitor v101.0.1","rule_id":"c5f81243-56e0-47f9-b5bb-55a5ed89ba57:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the occurrence of a CyberArk Privileged Access Security (PAS) non-error level audit event which is recommended for monitoring by the vendor. The event.code correlates to the CyberArk Vault Audit Action Code.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\nThis is a promotion rule for CyberArk events, which the vendor recommends should be monitored.\nConsult vendor documentation on interpreting specific events.","rule_name_override":"event.action","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["To tune this rule, add exceptions to exclude any event.code which should not trigger this rule."],"from":"now-30m","references":["https://docs.cyberark.com/Product-Doc/OnlineHelp/PAS/Latest/en/Content/PASREF/Vault%20Audit%20Action%20Codes.htm?tocpath=Administration%7CReferences%7C_____3#RecommendedActionCodesforMonitoring"],"tags":["Elastic","cyberarkpas","SecOps","Log Auditing","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-cyberarkpas.audit*"],"language":"kuery","query":"event.dataset:cyberarkpas.audit and\n event.code:(4 or 22 or 24 or 31 or 38 or 57 or 60 or 130 or 295 or 300 or 302 or\n 308 or 319 or 344 or 346 or 359 or 361 or 378 or 380 or 411) and\n not event.type:error\n","related_integrations":[{"package":"cyberarkpas","version":"^2.2.0"}],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"}],"setup":"The CyberArk Privileged Access Security (PAS) Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"c5f81243-56e0-47f9-b5bb-55a5ed89ba57:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c5f81243-56e0-47f9-b5bb-55a5ed89ba57:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c5f81243-56e0-47f9-b5bb-55a5ed89ba57:101.0.2.json new file mode 100644 index 0000000000000..da18c2274cb9a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c5f81243-56e0-47f9-b5bb-55a5ed89ba57:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"CyberArk Privileged Access Security Recommended Monitor v101.0.2","rule_id":"c5f81243-56e0-47f9-b5bb-55a5ed89ba57:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the occurrence of a CyberArk Privileged Access Security (PAS) non-error level audit event which is recommended for monitoring by the vendor. The event.code correlates to the CyberArk Vault Audit Action Code.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\nThis is a promotion rule for CyberArk events, which the vendor recommends should be monitored.\nConsult vendor documentation on interpreting specific events.","rule_name_override":"event.action","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["To tune this rule, add exceptions to exclude any event.code which should not trigger this rule."],"from":"now-30m","references":["https://docs.cyberark.com/Product-Doc/OnlineHelp/PAS/Latest/en/Content/PASREF/Vault%20Audit%20Action%20Codes.htm?tocpath=Administration%7CReferences%7C_____3#RecommendedActionCodesforMonitoring"],"tags":["Elastic","cyberarkpas","SecOps","Log Auditing","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-cyberarkpas.audit*"],"language":"kuery","query":"event.dataset:cyberarkpas.audit and\n event.code:(4 or 22 or 24 or 31 or 38 or 57 or 60 or 130 or 295 or 300 or 302 or\n 308 or 319 or 344 or 346 or 359 or 361 or 378 or 380 or 411) and\n not event.type:error\n","related_integrations":[{"package":"cyberarkpas","version":"^2.2.0"}],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"}],"setup":"The CyberArk Privileged Access Security (PAS) Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"c5f81243-56e0-47f9-b5bb-55a5ed89ba57:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c6453e73-90eb-4fe7-a98c-cde7bbfc504a:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c6453e73-90eb-4fe7-a98c-cde7bbfc504a:102.0.0.json new file mode 100644 index 0000000000000..b27e517c8f727 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c6453e73-90eb-4fe7-a98c-cde7bbfc504a:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote File Download via MpCmdRun v102.0.0","rule_id":"c6453e73-90eb-4fe7-a98c-cde7bbfc504a:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the Windows Defender configuration utility (MpCmdRun.exe) being used to download a remote file.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote File Download via MpCmdRun\n\nAttackers commonly transfer tooling or malware from external systems into a compromised environment using the command\nand control channel. However, they can also abuse signed utilities to drop these files.\n\nThe `MpCmdRun.exe` is a command-line tool part of Windows Defender and is used to manage various Microsoft Windows\nDefender Antivirus settings and perform certain tasks. It can also be abused by attackers to download remote files,\nincluding malware and offensive tooling. This rule looks for the patterns used to perform downloads using the utility.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check the reputation of the domain or IP address used to host the downloaded file.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://twitter.com/mohammadaskar2/status/1301263551638761477","https://www.bleepingcomputer.com/news/microsoft/microsoft-defender-can-ironically-be-used-to-download-malware/"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"MpCmdRun.exe\" or process.pe.original_file_name == \"MpCmdRun.exe\") and\n process.args : \"-DownloadFile\" and process.args : \"-url\" and process.args : \"-path\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c6453e73-90eb-4fe7-a98c-cde7bbfc504a:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c6453e73-90eb-4fe7-a98c-cde7bbfc504a:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c6453e73-90eb-4fe7-a98c-cde7bbfc504a:102.0.1.json new file mode 100644 index 0000000000000..0178fa2cbf273 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c6453e73-90eb-4fe7-a98c-cde7bbfc504a:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote File Download via MpCmdRun v102.0.1","rule_id":"c6453e73-90eb-4fe7-a98c-cde7bbfc504a:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the Windows Defender configuration utility (MpCmdRun.exe) being used to download a remote file.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote File Download via MpCmdRun\n\nAttackers commonly transfer tooling or malware from external systems into a compromised environment using the command\nand control channel. However, they can also abuse signed utilities to drop these files.\n\nThe `MpCmdRun.exe` is a command-line tool part of Windows Defender and is used to manage various Microsoft Windows\nDefender Antivirus settings and perform certain tasks. It can also be abused by attackers to download remote files,\nincluding malware and offensive tooling. This rule looks for the patterns used to perform downloads using the utility.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check the reputation of the domain or IP address used to host the downloaded file.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://twitter.com/mohammadaskar2/status/1301263551638761477","https://www.bleepingcomputer.com/news/microsoft/microsoft-defender-can-ironically-be-used-to-download-malware/"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"MpCmdRun.exe\" or process.pe.original_file_name == \"MpCmdRun.exe\") and\n process.args : \"-DownloadFile\" and process.args : \"-url\" and process.args : \"-path\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c6453e73-90eb-4fe7-a98c-cde7bbfc504a:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c6453e73-90eb-4fe7-a98c-cde7bbfc504a:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c6453e73-90eb-4fe7-a98c-cde7bbfc504a:102.0.2.json new file mode 100644 index 0000000000000..d60d2575ab190 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c6453e73-90eb-4fe7-a98c-cde7bbfc504a:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote File Download via MpCmdRun v102.0.2","rule_id":"c6453e73-90eb-4fe7-a98c-cde7bbfc504a:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the Windows Defender configuration utility (MpCmdRun.exe) being used to download a remote file.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Remote File Download via MpCmdRun\n\nAttackers commonly transfer tooling or malware from external systems into a compromised environment using the command\nand control channel. However, they can also abuse signed utilities to drop these files.\n\nThe `MpCmdRun.exe` is a command-line tool part of Windows Defender and is used to manage various Microsoft Windows\nDefender Antivirus settings and perform certain tasks. It can also be abused by attackers to download remote files,\nincluding malware and offensive tooling. This rule looks for the patterns used to perform downloads using the utility.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Check the reputation of the domain or IP address used to host the downloaded file.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://twitter.com/mohammadaskar2/status/1301263551638761477","https://www.bleepingcomputer.com/news/microsoft/microsoft-defender-can-ironically-be-used-to-download-malware/"],"tags":["Elastic","Host","Windows","Threat Detection","Command and Control","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"MpCmdRun.exe\" or process.pe.original_file_name == \"MpCmdRun.exe\") and\n process.args : \"-DownloadFile\" and process.args : \"-url\" and process.args : \"-path\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c6453e73-90eb-4fe7-a98c-cde7bbfc504a:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c749e367-a069-4a73-b1f2-43a3798153ad:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c749e367-a069-4a73-b1f2-43a3798153ad:102.0.0.json new file mode 100644 index 0000000000000..0b58525f743fd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c749e367-a069-4a73-b1f2-43a3798153ad:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Delete an Okta Network Zone v102.0.0","rule_id":"c749e367-a069-4a73-b1f2-43a3798153ad:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to delete an Okta network zone. Okta network zones can be configured to limit or restrict access to a network based on IP addresses or geolocations. An adversary may attempt to modify, delete, or deactivate an Okta network zone in order to remove or weaken an organization's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Oyour organization's Okta network zones are regularly deleted."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/network/network-zones.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Network Security","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:zone.delete\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"c749e367-a069-4a73-b1f2-43a3798153ad:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c749e367-a069-4a73-b1f2-43a3798153ad:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c749e367-a069-4a73-b1f2-43a3798153ad:102.0.1.json new file mode 100644 index 0000000000000..a10f3e928d63a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c749e367-a069-4a73-b1f2-43a3798153ad:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Delete an Okta Network Zone v102.0.1","rule_id":"c749e367-a069-4a73-b1f2-43a3798153ad:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to delete an Okta network zone. Okta network zones can be configured to limit or restrict access to a network based on IP addresses or geolocations. An adversary may attempt to modify, delete, or deactivate an Okta network zone in order to remove or weaken an organization's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Oyour organization's Okta network zones are regularly deleted."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/network/network-zones.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Network Security","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:zone.delete\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"c749e367-a069-4a73-b1f2-43a3798153ad:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c749e367-a069-4a73-b1f2-43a3798153ad:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c749e367-a069-4a73-b1f2-43a3798153ad:102.0.2.json new file mode 100644 index 0000000000000..4e6ab2690d449 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c749e367-a069-4a73-b1f2-43a3798153ad:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Delete an Okta Network Zone v102.0.2","rule_id":"c749e367-a069-4a73-b1f2-43a3798153ad:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to delete an Okta network zone. Okta network zones can be configured to limit or restrict access to a network based on IP addresses or geolocations. An adversary may attempt to modify, delete, or deactivate an Okta network zone in order to remove or weaken an organization's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Oyour organization's Okta network zones are regularly deleted."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/network/network-zones.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Network Security","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:zone.delete\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"c749e367-a069-4a73-b1f2-43a3798153ad:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c74fd275-ab2c-4d49-8890-e2943fa65c09:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c74fd275-ab2c-4d49-8890-e2943fa65c09:102.0.0.json new file mode 100644 index 0000000000000..9f9864882e427 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c74fd275-ab2c-4d49-8890-e2943fa65c09:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Modify an Okta Application v102.0.0","rule_id":"c74fd275-ab2c-4d49-8890-e2943fa65c09:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to modify an Okta application. An adversary may attempt to modify, deactivate, or delete an Okta application in order to weaken an organization's security controls or disrupt their business operations.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if your organization's Okta applications are regularly modified and the behavior is expected."],"references":["https://help.okta.com/en/prod/Content/Topics/Apps/Apps_Apps.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:application.lifecycle.update\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"c74fd275-ab2c-4d49-8890-e2943fa65c09:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c74fd275-ab2c-4d49-8890-e2943fa65c09:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c74fd275-ab2c-4d49-8890-e2943fa65c09:102.0.1.json new file mode 100644 index 0000000000000..676c9f24efe34 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c74fd275-ab2c-4d49-8890-e2943fa65c09:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Modify an Okta Application v102.0.1","rule_id":"c74fd275-ab2c-4d49-8890-e2943fa65c09:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to modify an Okta application. An adversary may attempt to modify, deactivate, or delete an Okta application in order to weaken an organization's security controls or disrupt their business operations.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if your organization's Okta applications are regularly modified and the behavior is expected."],"references":["https://help.okta.com/en/prod/Content/Topics/Apps/Apps_Apps.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:application.lifecycle.update\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"c74fd275-ab2c-4d49-8890-e2943fa65c09:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c74fd275-ab2c-4d49-8890-e2943fa65c09:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c74fd275-ab2c-4d49-8890-e2943fa65c09:102.0.2.json new file mode 100644 index 0000000000000..9f232abe015c9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c74fd275-ab2c-4d49-8890-e2943fa65c09:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Modify an Okta Application v102.0.2","rule_id":"c74fd275-ab2c-4d49-8890-e2943fa65c09:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to modify an Okta application. An adversary may attempt to modify, deactivate, or delete an Okta application in order to weaken an organization's security controls or disrupt their business operations.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if your organization's Okta applications are regularly modified and the behavior is expected."],"references":["https://help.okta.com/en/prod/Content/Topics/Apps/Apps_Apps.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:application.lifecycle.update\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"c74fd275-ab2c-4d49-8890-e2943fa65c09:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c7894234-7814-44c2-92a9-f7d851ea246a:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c7894234-7814-44c2-92a9-f7d851ea246a:101.0.0.json new file mode 100644 index 0000000000000..e7d556661a82b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c7894234-7814-44c2-92a9-f7d851ea246a:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Network Connection via DllHost v101.0.0","rule_id":"c7894234-7814-44c2-92a9-f7d851ea246a:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual instances of dllhost.exe making outbound network connections. This may indicate adversarial Command and Control activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2021/05/27/new-sophisticated-email-based-attack-from-nobelium/","https://www.volexity.com/blog/2021/05/27/suspected-apt29-operation-launches-election-fraud-themed-phishing-campaigns/","https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan=1m\n [process where event.type == \"start\" and process.name : \"dllhost.exe\" and process.args_count == 1]\n [network where process.name : \"dllhost.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\", \"192.0.2.0/24\",\n \"192.31.196.0/24\", \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\",\n \"192.175.48.0/24\", \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\", \"FE80::/10\",\n \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"c7894234-7814-44c2-92a9-f7d851ea246a:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c7894234-7814-44c2-92a9-f7d851ea246a:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c7894234-7814-44c2-92a9-f7d851ea246a:101.0.1.json new file mode 100644 index 0000000000000..26a3dfb52f217 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c7894234-7814-44c2-92a9-f7d851ea246a:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Network Connection via DllHost v101.0.1","rule_id":"c7894234-7814-44c2-92a9-f7d851ea246a:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual instances of dllhost.exe making outbound network connections. This may indicate adversarial Command and Control activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2021/05/27/new-sophisticated-email-based-attack-from-nobelium/","https://www.volexity.com/blog/2021/05/27/suspected-apt29-operation-launches-election-fraud-themed-phishing-campaigns/","https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan=1m\n [process where event.type == \"start\" and process.name : \"dllhost.exe\" and process.args_count == 1]\n [network where process.name : \"dllhost.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\", \"192.0.2.0/24\",\n \"192.31.196.0/24\", \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\",\n \"192.175.48.0/24\", \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\", \"FE80::/10\",\n \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"c7894234-7814-44c2-92a9-f7d851ea246a:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c7894234-7814-44c2-92a9-f7d851ea246a:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c7894234-7814-44c2-92a9-f7d851ea246a:101.0.2.json new file mode 100644 index 0000000000000..ae3776837f74b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c7894234-7814-44c2-92a9-f7d851ea246a:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Network Connection via DllHost v101.0.2","rule_id":"c7894234-7814-44c2-92a9-f7d851ea246a:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual instances of dllhost.exe making outbound network connections. This may indicate adversarial Command and Control activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2021/05/27/new-sophisticated-email-based-attack-from-nobelium/","https://www.volexity.com/blog/2021/05/27/suspected-apt29-operation-launches-election-fraud-themed-phishing-campaigns/","https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]}],"language":"eql","query":"sequence by host.id, process.entity_id with maxspan=1m\n [process where event.type == \"start\" and process.name : \"dllhost.exe\" and process.args_count == 1]\n [network where process.name : \"dllhost.exe\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\", \"192.0.2.0/24\",\n \"192.31.196.0/24\", \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\",\n \"192.175.48.0/24\", \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\", \"FE80::/10\",\n \"FF00::/8\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"c7894234-7814-44c2-92a9-f7d851ea246a:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c7908cac-337a-4f38-b50d-5eeb78bdb531:200.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c7908cac-337a-4f38-b50d-5eeb78bdb531:200.0.0.json new file mode 100644 index 0000000000000..72478c65efbfa --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c7908cac-337a-4f38-b50d-5eeb78bdb531:200.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Privileged Pod Created v200.0.0","rule_id":"c7908cac-337a-4f38-b50d-5eeb78bdb531:200.0.0","rule_version":"200.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects when a user creates a pod/container running in privileged mode. A highly privileged container has access to the node's resources and breaks the isolation between containers. If compromised, an attacker can use the privileged container to gain access to the underlying host. Gaining access to the host may provide the adversary with the opportunity to achieve follow-on objectives, such as establishing persistence, moving laterally within the environment, or setting up a command and control channel on the host.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["By default a container is not allowed to access any devices on the host, but a \"privileged\" container is given access to all devices on the host. This allows the container nearly all the same access as processes running on the host. An administrator may want to run a privileged container to use operating system administrative capabilities such as manipulating the network stack or accessing hardware devices from within the cluster. Add exceptions for trusted container images using the query field \"kubernetes.audit.requestObject.spec.container.image\""],"references":["https://media.defense.gov/2021/Aug/03/2002820425/-1/-1/1/CTR_KUBERNETES%20HARDENING%20GUIDANCE.PDF","https://kubernetes.io/docs/tasks/configure-pod-container/security-context/"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\"\n and kubernetes.audit.objectRef.resource:pods \n and kubernetes.audit.verb:create \n and kubernetes.audit.requestObject.spec.containers.securityContext.privileged:true\n and not kubernetes.audit.requestObject.spec.containers.image: (\"docker.elastic.co/beats/elastic-agent:8.4.0\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.securityContext.privileged","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"c7908cac-337a-4f38-b50d-5eeb78bdb531:200.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c7908cac-337a-4f38-b50d-5eeb78bdb531:200.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c7908cac-337a-4f38-b50d-5eeb78bdb531:200.0.1.json new file mode 100644 index 0000000000000..8666df2561ae9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c7908cac-337a-4f38-b50d-5eeb78bdb531:200.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Privileged Pod Created v200.0.1","rule_id":"c7908cac-337a-4f38-b50d-5eeb78bdb531:200.0.1","rule_version":"200.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects when a user creates a pod/container running in privileged mode. A highly privileged container has access to the node's resources and breaks the isolation between containers. If compromised, an attacker can use the privileged container to gain access to the underlying host. Gaining access to the host may provide the adversary with the opportunity to achieve follow-on objectives, such as establishing persistence, moving laterally within the environment, or setting up a command and control channel on the host.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["By default a container is not allowed to access any devices on the host, but a \"privileged\" container is given access to all devices on the host. This allows the container nearly all the same access as processes running on the host. An administrator may want to run a privileged container to use operating system administrative capabilities such as manipulating the network stack or accessing hardware devices from within the cluster. Add exceptions for trusted container images using the query field \"kubernetes.audit.requestObject.spec.container.image\""],"references":["https://media.defense.gov/2021/Aug/03/2002820425/-1/-1/1/CTR_KUBERNETES%20HARDENING%20GUIDANCE.PDF","https://kubernetes.io/docs/tasks/configure-pod-container/security-context/"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\"\n and kubernetes.audit.objectRef.resource:pods \n and kubernetes.audit.verb:create \n and kubernetes.audit.requestObject.spec.containers.securityContext.privileged:true\n and not kubernetes.audit.requestObject.spec.containers.image: (\"docker.elastic.co/beats/elastic-agent:8.4.0\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.securityContext.privileged","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"c7908cac-337a-4f38-b50d-5eeb78bdb531:200.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c7908cac-337a-4f38-b50d-5eeb78bdb531:200.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c7908cac-337a-4f38-b50d-5eeb78bdb531:200.0.2.json new file mode 100644 index 0000000000000..ba9a59e29ced1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c7908cac-337a-4f38-b50d-5eeb78bdb531:200.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Privileged Pod Created v200.0.2","rule_id":"c7908cac-337a-4f38-b50d-5eeb78bdb531:200.0.2","rule_version":"200.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects when a user creates a pod/container running in privileged mode. A highly privileged container has access to the node's resources and breaks the isolation between containers. If compromised, an attacker can use the privileged container to gain access to the underlying host. Gaining access to the host may provide the adversary with the opportunity to achieve follow-on objectives, such as establishing persistence, moving laterally within the environment, or setting up a command and control channel on the host.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["By default a container is not allowed to access any devices on the host, but a \"privileged\" container is given access to all devices on the host. This allows the container nearly all the same access as processes running on the host. An administrator may want to run a privileged container to use operating system administrative capabilities such as manipulating the network stack or accessing hardware devices from within the cluster. Add exceptions for trusted container images using the query field \"kubernetes.audit.requestObject.spec.container.image\""],"references":["https://media.defense.gov/2021/Aug/03/2002820425/-1/-1/1/CTR_KUBERNETES%20HARDENING%20GUIDANCE.PDF","https://kubernetes.io/docs/tasks/configure-pod-container/security-context/"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\"\n and kubernetes.audit.objectRef.resource:pods \n and kubernetes.audit.verb:create \n and kubernetes.audit.requestObject.spec.containers.securityContext.privileged:true\n and not kubernetes.audit.requestObject.spec.containers.image: (\"docker.elastic.co/beats/elastic-agent:8.4.0\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.securityContext.privileged","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"c7908cac-337a-4f38-b50d-5eeb78bdb531:200.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9:101.0.0.json new file mode 100644 index 0000000000000..833051b04816f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual File Modification by dns.exe v101.0.0","rule_id":"c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an unexpected file being modified by dns.exe, the process responsible for Windows DNS Server services, which may indicate activity related to remote code execution or other forms of exploitation.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual File Write\nDetection alerts from this rule indicate potential unusual/abnormal file writes from the DNS Server service process (`dns.exe`) after exploitation from CVE-2020-1350 (SigRed) has occurred. Here are some possible avenues of investigation:\n- Post-exploitation, adversaries may write additional files or payloads to the system as additional discovery/exploitation/persistence mechanisms.\n- Any suspicious or abnormal files written from `dns.exe` should be reviewed and investigated with care.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://research.checkpoint.com/2020/resolving-your-way-into-domain-admin-exploiting-a-17-year-old-bug-in-windows-dns-servers/","https://msrc-blog.microsoft.com/2020/07/14/july-2020-security-update-cve-2020-1350-vulnerability-in-windows-domain-name-system-dns-server/","https://www.elastic.co/security-labs/detection-rules-for-sigred-vulnerability"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1133","name":"External Remote Services","reference":"https://attack.mitre.org/techniques/T1133/"}]}],"language":"eql","query":"file where process.name : \"dns.exe\" and event.type in (\"creation\", \"deletion\", \"change\") and\n not file.name : \"dns.log\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9:101.0.1.json new file mode 100644 index 0000000000000..abc06b97e23fa --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual File Modification by dns.exe v101.0.1","rule_id":"c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an unexpected file being modified by dns.exe, the process responsible for Windows DNS Server services, which may indicate activity related to remote code execution or other forms of exploitation.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual File Write\nDetection alerts from this rule indicate potential unusual/abnormal file writes from the DNS Server service process (`dns.exe`) after exploitation from CVE-2020-1350 (SigRed) has occurred. Here are some possible avenues of investigation:\n- Post-exploitation, adversaries may write additional files or payloads to the system as additional discovery/exploitation/persistence mechanisms.\n- Any suspicious or abnormal files written from `dns.exe` should be reviewed and investigated with care.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://research.checkpoint.com/2020/resolving-your-way-into-domain-admin-exploiting-a-17-year-old-bug-in-windows-dns-servers/","https://msrc-blog.microsoft.com/2020/07/14/july-2020-security-update-cve-2020-1350-vulnerability-in-windows-domain-name-system-dns-server/","https://www.elastic.co/security-labs/detection-rules-for-sigred-vulnerability"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1133","name":"External Remote Services","reference":"https://attack.mitre.org/techniques/T1133/"}]}],"language":"eql","query":"file where process.name : \"dns.exe\" and event.type in (\"creation\", \"deletion\", \"change\") and\n not file.name : \"dns.log\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9:101.0.2.json new file mode 100644 index 0000000000000..a255820c70941 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual File Modification by dns.exe v101.0.2","rule_id":"c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an unexpected file being modified by dns.exe, the process responsible for Windows DNS Server services, which may indicate activity related to remote code execution or other forms of exploitation.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual File Write\nDetection alerts from this rule indicate potential unusual/abnormal file writes from the DNS Server service process (`dns.exe`) after exploitation from CVE-2020-1350 (SigRed) has occurred. Here are some possible avenues of investigation:\n- Post-exploitation, adversaries may write additional files or payloads to the system as additional discovery/exploitation/persistence mechanisms.\n- Any suspicious or abnormal files written from `dns.exe` should be reviewed and investigated with care.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://research.checkpoint.com/2020/resolving-your-way-into-domain-admin-exploiting-a-17-year-old-bug-in-windows-dns-servers/","https://msrc-blog.microsoft.com/2020/07/14/july-2020-security-update-cve-2020-1350-vulnerability-in-windows-domain-name-system-dns-server/","https://www.elastic.co/security-labs/detection-rules-for-sigred-vulnerability"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1133","name":"External Remote Services","reference":"https://attack.mitre.org/techniques/T1133/"}]}],"language":"eql","query":"file where process.name : \"dns.exe\" and event.type in (\"creation\", \"deletion\", \"change\") and\n not file.name : \"dns.log\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c7ce36c0-32ff-4f9a-bfc2-dcb242bf99f9:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c7db5533-ca2a-41f6-a8b0-ee98abe0f573:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c7db5533-ca2a-41f6-a8b0-ee98abe0f573:100.0.0.json new file mode 100644 index 0000000000000..1d2b6e5321c95 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c7db5533-ca2a-41f6-a8b0-ee98abe0f573:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Spike in Network Traffic To a Country v100.0.0","rule_id":"c7db5533-ca2a-41f6-a8b0-ee98abe0f573:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusually large spike in network activity to one destination country in the network logs. This could be due to unusually large amounts of reconnaissance or enumeration traffic. Data exfiltration activity may also produce such a surge in traffic to a destination country which does not normally appear in network traffic or business work-flows. Malware instances and persistence mechanisms may communicate with command-and-control (C2) infrastructure in their country of origin, which may be an unusual destination country for the source network.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Business workflows that occur very occasionally, and involve an unusual surge in network traffic to one destination country, can trigger this alert. A new business workflow or a surge in business activity in a particular country may trigger this alert. Business travelers who roam to many countries for brief periods may trigger this alert if they engage in volumetric network activity."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML"],"anomaly_threshold":75,"machine_learning_job_id":"high_count_by_destination_country","type":"machine_learning"},"id":"c7db5533-ca2a-41f6-a8b0-ee98abe0f573:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c7db5533-ca2a-41f6-a8b0-ee98abe0f573:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c7db5533-ca2a-41f6-a8b0-ee98abe0f573:100.0.1.json new file mode 100644 index 0000000000000..fc155acf6e1f1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c7db5533-ca2a-41f6-a8b0-ee98abe0f573:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Spike in Network Traffic To a Country v100.0.1","rule_id":"c7db5533-ca2a-41f6-a8b0-ee98abe0f573:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusually large spike in network activity to one destination country in the network logs. This could be due to unusually large amounts of reconnaissance or enumeration traffic. Data exfiltration activity may also produce such a surge in traffic to a destination country which does not normally appear in network traffic or business work-flows. Malware instances and persistence mechanisms may communicate with command-and-control (C2) infrastructure in their country of origin, which may be an unusual destination country for the source network.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Business workflows that occur very occasionally, and involve an unusual surge in network traffic to one destination country, can trigger this alert. A new business workflow or a surge in business activity in a particular country may trigger this alert. Business travelers who roam to many countries for brief periods may trigger this alert if they engage in volumetric network activity."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML"],"anomaly_threshold":75,"machine_learning_job_id":"high_count_by_destination_country","type":"machine_learning"},"id":"c7db5533-ca2a-41f6-a8b0-ee98abe0f573:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c7db5533-ca2a-41f6-a8b0-ee98abe0f573:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c7db5533-ca2a-41f6-a8b0-ee98abe0f573:100.0.2.json new file mode 100644 index 0000000000000..aa4208b57b666 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c7db5533-ca2a-41f6-a8b0-ee98abe0f573:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Spike in Network Traffic To a Country v100.0.2","rule_id":"c7db5533-ca2a-41f6-a8b0-ee98abe0f573:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusually large spike in network activity to one destination country in the network logs. This could be due to unusually large amounts of reconnaissance or enumeration traffic. Data exfiltration activity may also produce such a surge in traffic to a destination country which does not normally appear in network traffic or business work-flows. Malware instances and persistence mechanisms may communicate with command-and-control (C2) infrastructure in their country of origin, which may be an unusual destination country for the source network.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Business workflows that occur very occasionally, and involve an unusual surge in network traffic to one destination country, can trigger this alert. A new business workflow or a surge in business activity in a particular country may trigger this alert. Business travelers who roam to many countries for brief periods may trigger this alert if they engage in volumetric network activity."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML"],"anomaly_threshold":75,"machine_learning_job_id":"high_count_by_destination_country","type":"machine_learning"},"id":"c7db5533-ca2a-41f6-a8b0-ee98abe0f573:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c81cefcb-82b9-4408-a533-3c3df549e62d:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c81cefcb-82b9-4408-a533-3c3df549e62d:100.0.0.json new file mode 100644 index 0000000000000..6588287c33989 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c81cefcb-82b9-4408-a533-3c3df549e62d:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via Docker Shortcut Modification v100.0.0","rule_id":"c81cefcb-82b9-4408-a533-3c3df549e62d:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary can establish persistence by modifying an existing macOS dock property list in order to execute a malicious application instead of the intended one when invoked.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/specterops/presentations/raw/master/Leo%20Pitt/Hey_Im_Still_in_Here_Modern_macOS_Persistence_SO-CON2020.pdf"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category : file and event.action : modification and\n file.path : /Users/*/Library/Preferences/com.apple.dock.plist and\n not process.name : (xpcproxy or cfprefsd or plutil or jamf or PlistBuddy or InstallerRemotePluginService)\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"c81cefcb-82b9-4408-a533-3c3df549e62d:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c81cefcb-82b9-4408-a533-3c3df549e62d:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c81cefcb-82b9-4408-a533-3c3df549e62d:100.0.1.json new file mode 100644 index 0000000000000..d7c261b56c770 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c81cefcb-82b9-4408-a533-3c3df549e62d:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via Docker Shortcut Modification v100.0.1","rule_id":"c81cefcb-82b9-4408-a533-3c3df549e62d:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary can establish persistence by modifying an existing macOS dock property list in order to execute a malicious application instead of the intended one when invoked.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/specterops/presentations/raw/master/Leo%20Pitt/Hey_Im_Still_in_Here_Modern_macOS_Persistence_SO-CON2020.pdf"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category : file and event.action : modification and\n file.path : /Users/*/Library/Preferences/com.apple.dock.plist and\n not process.name : (xpcproxy or cfprefsd or plutil or jamf or PlistBuddy or InstallerRemotePluginService)\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"c81cefcb-82b9-4408-a533-3c3df549e62d:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c81cefcb-82b9-4408-a533-3c3df549e62d:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c81cefcb-82b9-4408-a533-3c3df549e62d:100.0.2.json new file mode 100644 index 0000000000000..5cf51a96936fe --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c81cefcb-82b9-4408-a533-3c3df549e62d:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via Docker Shortcut Modification v100.0.2","rule_id":"c81cefcb-82b9-4408-a533-3c3df549e62d:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary can establish persistence by modifying an existing macOS dock property list in order to execute a malicious application instead of the intended one when invoked.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/specterops/presentations/raw/master/Leo%20Pitt/Hey_Im_Still_in_Here_Modern_macOS_Persistence_SO-CON2020.pdf"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category : file and event.action : modification and\n file.path : /Users/*/Library/Preferences/com.apple.dock.plist and\n not process.name : (xpcproxy or cfprefsd or plutil or jamf or PlistBuddy or InstallerRemotePluginService)\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"c81cefcb-82b9-4408-a533-3c3df549e62d:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c82b2bd8-d701-420c-ba43-f11a155b681a:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c82b2bd8-d701-420c-ba43-f11a155b681a:100.0.0.json new file mode 100644 index 0000000000000..0d4299d0da7c7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c82b2bd8-d701-420c-ba43-f11a155b681a:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"SMB (Windows File Sharing) Activity to the Internet v100.0.0","rule_id":"c82b2bd8-d701-420c-ba43-f11a155b681a:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of Windows file sharing (also called SMB or CIFS) traffic to the Internet. SMB is commonly used within networks to share files, printers, and other system resources amongst trusted systems. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector or for data exfiltration.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Initial Access","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1048","name":"Exfiltration Over Alternative Protocol","reference":"https://attack.mitre.org/techniques/T1048/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and (destination.port:(139 or 445) or event.dataset:zeek.smb) and\n source.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n ) and\n not destination.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},"id":"c82b2bd8-d701-420c-ba43-f11a155b681a:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c82b2bd8-d701-420c-ba43-f11a155b681a:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c82b2bd8-d701-420c-ba43-f11a155b681a:100.0.1.json new file mode 100644 index 0000000000000..62d17507c72ce --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c82b2bd8-d701-420c-ba43-f11a155b681a:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"SMB (Windows File Sharing) Activity to the Internet v100.0.1","rule_id":"c82b2bd8-d701-420c-ba43-f11a155b681a:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of Windows file sharing (also called SMB or CIFS) traffic to the Internet. SMB is commonly used within networks to share files, printers, and other system resources amongst trusted systems. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector or for data exfiltration.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Initial Access","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1048","name":"Exfiltration Over Alternative Protocol","reference":"https://attack.mitre.org/techniques/T1048/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and (destination.port:(139 or 445) or event.dataset:zeek.smb) and\n source.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n ) and\n not destination.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},"id":"c82b2bd8-d701-420c-ba43-f11a155b681a:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c82b2bd8-d701-420c-ba43-f11a155b681a:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c82b2bd8-d701-420c-ba43-f11a155b681a:100.0.2.json new file mode 100644 index 0000000000000..042522ba8202b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c82b2bd8-d701-420c-ba43-f11a155b681a:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"SMB (Windows File Sharing) Activity to the Internet v100.0.2","rule_id":"c82b2bd8-d701-420c-ba43-f11a155b681a:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects network events that may indicate the use of Windows file sharing (also called SMB or CIFS) traffic to the Internet. SMB is commonly used within networks to share files, printers, and other system resources amongst trusted systems. It should almost never be directly exposed to the Internet, as it is frequently targeted and exploited by threat actors as an initial access or backdoor vector or for data exfiltration.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Network","Threat Detection","Initial Access","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1048","name":"Exfiltration Over Alternative Protocol","reference":"https://attack.mitre.org/techniques/T1048/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and (destination.port:(139 or 445) or event.dataset:zeek.smb) and\n source.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n ) and\n not destination.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"}]},"id":"c82b2bd8-d701-420c-ba43-f11a155b681a:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c82c7d8f-fb9e-4874-a4bd-fd9e3f9becf1:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c82c7d8f-fb9e-4874-a4bd-fd9e3f9becf1:102.0.0.json new file mode 100644 index 0000000000000..7447b4c582006 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c82c7d8f-fb9e-4874-a4bd-fd9e3f9becf1:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Direct Outbound SMB Connection v102.0.0","rule_id":"c82c7d8f-fb9e-4874-a4bd-fd9e3f9becf1:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unexpected processes making network connections over port 445. Windows File Sharing is typically implemented over Server Message Block (SMB), which communicates between hosts using port 445. When legitimate, these network connections are established by the kernel. Processes making 445/tcp connections may be port scanners, exploits, or suspicious user-level processes moving laterally.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Direct Outbound SMB Connection\n\nThis rule looks for unexpected processes making network connections over port 445. Windows file sharing is typically\nimplemented over Server Message Block (SMB), which communicates between hosts using port 445. When legitimate, these\nnetwork connections are established by the kernel (PID 4). Occurrences of non-system processes using this port can indicate\nport scanners, exploits, and tools used to move laterally on the environment.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"sequence by process.entity_id\n [process where event.type == \"start\" and host.os.name == \"Windows\" and process.pid != 4 and\n not (process.executable : \"D:\\\\EnterpriseCare\\\\tools\\\\jre.1\\\\bin\\\\java.exe\" and process.args : \"com.emeraldcube.prism.launcher.Invoker\") and\n not (process.executable : \"C:\\\\Docusnap 11\\\\Tools\\\\nmap\\\\nmap.exe\" and process.args : \"smb-os-discovery.nse\") and\n not process.executable :\n (\"?:\\\\Program Files\\\\SentinelOne\\\\Sentinel Agent *\\\\Ranger\\\\SentinelRanger.exe\",\n \"?:\\\\Program Files\\\\Ivanti\\\\Security Controls\\\\ST.EngineHost.exe\",\n \"?:\\\\Program Files (x86)\\\\Fortinet\\\\FSAE\\\\collectoragent.exe\",\n \"?:\\\\Program Files (x86)\\\\Nmap\\\\nmap.exe\",\n \"?:\\\\Program Files\\\\Azure Advanced Threat Protection Sensor\\\\*\\\\Microsoft.Tri.Sensor.exe\",\n \"?:\\\\Program Files\\\\CloudMatters\\\\auvik\\\\AuvikService-release-*\\\\AuvikService.exe\",\n \"?:\\\\Program Files\\\\uptime software\\\\uptime\\\\UptimeDataCollector.exe\",\n \"?:\\\\Program Files\\\\CloudMatters\\\\auvik\\\\AuvikAgentService.exe\",\n \"?:\\\\Program Files\\\\Rumble\\\\rumble-agent-*.exe\")]\n [network where destination.port == 445 and process.pid != 4 and\n not cidrmatch(destination.ip, \"127.0.0.1\", \"::1\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.os.name","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"}]},"id":"c82c7d8f-fb9e-4874-a4bd-fd9e3f9becf1:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c82c7d8f-fb9e-4874-a4bd-fd9e3f9becf1:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c82c7d8f-fb9e-4874-a4bd-fd9e3f9becf1:102.0.1.json new file mode 100644 index 0000000000000..91f63fc76eabd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c82c7d8f-fb9e-4874-a4bd-fd9e3f9becf1:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Direct Outbound SMB Connection v102.0.1","rule_id":"c82c7d8f-fb9e-4874-a4bd-fd9e3f9becf1:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unexpected processes making network connections over port 445. Windows File Sharing is typically implemented over Server Message Block (SMB), which communicates between hosts using port 445. When legitimate, these network connections are established by the kernel. Processes making 445/tcp connections may be port scanners, exploits, or suspicious user-level processes moving laterally.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Direct Outbound SMB Connection\n\nThis rule looks for unexpected processes making network connections over port 445. Windows file sharing is typically\nimplemented over Server Message Block (SMB), which communicates between hosts using port 445. When legitimate, these\nnetwork connections are established by the kernel (PID 4). Occurrences of non-system processes using this port can indicate\nport scanners, exploits, and tools used to move laterally on the environment.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"sequence by process.entity_id\n [process where event.type == \"start\" and host.os.name == \"Windows\" and process.pid != 4 and\n not (process.executable : \"D:\\\\EnterpriseCare\\\\tools\\\\jre.1\\\\bin\\\\java.exe\" and process.args : \"com.emeraldcube.prism.launcher.Invoker\") and\n not (process.executable : \"C:\\\\Docusnap 11\\\\Tools\\\\nmap\\\\nmap.exe\" and process.args : \"smb-os-discovery.nse\") and\n not process.executable :\n (\"?:\\\\Program Files\\\\SentinelOne\\\\Sentinel Agent *\\\\Ranger\\\\SentinelRanger.exe\",\n \"?:\\\\Program Files\\\\Ivanti\\\\Security Controls\\\\ST.EngineHost.exe\",\n \"?:\\\\Program Files (x86)\\\\Fortinet\\\\FSAE\\\\collectoragent.exe\",\n \"?:\\\\Program Files (x86)\\\\Nmap\\\\nmap.exe\",\n \"?:\\\\Program Files\\\\Azure Advanced Threat Protection Sensor\\\\*\\\\Microsoft.Tri.Sensor.exe\",\n \"?:\\\\Program Files\\\\CloudMatters\\\\auvik\\\\AuvikService-release-*\\\\AuvikService.exe\",\n \"?:\\\\Program Files\\\\uptime software\\\\uptime\\\\UptimeDataCollector.exe\",\n \"?:\\\\Program Files\\\\CloudMatters\\\\auvik\\\\AuvikAgentService.exe\",\n \"?:\\\\Program Files\\\\Rumble\\\\rumble-agent-*.exe\")]\n [network where destination.port == 445 and process.pid != 4 and\n not cidrmatch(destination.ip, \"127.0.0.1\", \"::1\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.os.name","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"}]},"id":"c82c7d8f-fb9e-4874-a4bd-fd9e3f9becf1:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c82c7d8f-fb9e-4874-a4bd-fd9e3f9becf1:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c82c7d8f-fb9e-4874-a4bd-fd9e3f9becf1:102.0.2.json new file mode 100644 index 0000000000000..270ffc27535a5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c82c7d8f-fb9e-4874-a4bd-fd9e3f9becf1:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Direct Outbound SMB Connection v102.0.2","rule_id":"c82c7d8f-fb9e-4874-a4bd-fd9e3f9becf1:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unexpected processes making network connections over port 445. Windows File Sharing is typically implemented over Server Message Block (SMB), which communicates between hosts using port 445. When legitimate, these network connections are established by the kernel. Processes making 445/tcp connections may be port scanners, exploits, or suspicious user-level processes moving laterally.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Direct Outbound SMB Connection\n\nThis rule looks for unexpected processes making network connections over port 445. Windows file sharing is typically\nimplemented over Server Message Block (SMB), which communicates between hosts using port 445. When legitimate, these\nnetwork connections are established by the kernel (PID 4). Occurrences of non-system processes using this port can indicate\nport scanners, exploits, and tools used to move laterally on the environment.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"sequence by process.entity_id\n [process where event.type == \"start\" and host.os.name == \"Windows\" and process.pid != 4 and\n not (process.executable : \"D:\\\\EnterpriseCare\\\\tools\\\\jre.1\\\\bin\\\\java.exe\" and process.args : \"com.emeraldcube.prism.launcher.Invoker\") and\n not (process.executable : \"C:\\\\Docusnap 11\\\\Tools\\\\nmap\\\\nmap.exe\" and process.args : \"smb-os-discovery.nse\") and\n not process.executable :\n (\"?:\\\\Program Files\\\\SentinelOne\\\\Sentinel Agent *\\\\Ranger\\\\SentinelRanger.exe\",\n \"?:\\\\Program Files\\\\Ivanti\\\\Security Controls\\\\ST.EngineHost.exe\",\n \"?:\\\\Program Files (x86)\\\\Fortinet\\\\FSAE\\\\collectoragent.exe\",\n \"?:\\\\Program Files (x86)\\\\Nmap\\\\nmap.exe\",\n \"?:\\\\Program Files\\\\Azure Advanced Threat Protection Sensor\\\\*\\\\Microsoft.Tri.Sensor.exe\",\n \"?:\\\\Program Files\\\\CloudMatters\\\\auvik\\\\AuvikService-release-*\\\\AuvikService.exe\",\n \"?:\\\\Program Files\\\\uptime software\\\\uptime\\\\UptimeDataCollector.exe\",\n \"?:\\\\Program Files\\\\CloudMatters\\\\auvik\\\\AuvikAgentService.exe\",\n \"?:\\\\Program Files\\\\Rumble\\\\rumble-agent-*.exe\")]\n [network where destination.port == 445 and process.pid != 4 and\n not cidrmatch(destination.ip, \"127.0.0.1\", \"::1\")]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.os.name","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"}]},"id":"c82c7d8f-fb9e-4874-a4bd-fd9e3f9becf1:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c85eb82c-d2c8-485c-a36f-534f914b7663:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c85eb82c-d2c8-485c-a36f-534f914b7663:100.0.0.json new file mode 100644 index 0000000000000..24211ad89f984 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c85eb82c-d2c8-485c-a36f-534f914b7663:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Virtual Machine Fingerprinting via Grep v100.0.0","rule_id":"c85eb82c-d2c8-485c-a36f-534f914b7663:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary may attempt to get detailed information about the operating system and hardware. This rule identifies common locations used to discover virtual machine hardware by a non-root user. This technique has been used by the Pupy RAT and other malware.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain tools or automated software may enumerate hardware information. These tools can be exempted via user name or process arguments to eliminate potential noise."],"from":"now-9m","references":["https://objective-see.com/blog/blog_0x4F.html"],"tags":["Elastic","Host","macOS","Linux","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name in (\"grep\", \"egrep\") and user.id != \"0\" and\n process.args : (\"parallels*\", \"vmware*\", \"virtualbox*\") and process.args : \"Manufacturer*\" and\n not process.parent.executable in (\"/Applications/Docker.app/Contents/MacOS/Docker\", \"/usr/libexec/kcare/virt-what\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c85eb82c-d2c8-485c-a36f-534f914b7663:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c85eb82c-d2c8-485c-a36f-534f914b7663:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c85eb82c-d2c8-485c-a36f-534f914b7663:100.0.1.json new file mode 100644 index 0000000000000..9539557eaffaa --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c85eb82c-d2c8-485c-a36f-534f914b7663:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Virtual Machine Fingerprinting via Grep v100.0.1","rule_id":"c85eb82c-d2c8-485c-a36f-534f914b7663:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary may attempt to get detailed information about the operating system and hardware. This rule identifies common locations used to discover virtual machine hardware by a non-root user. This technique has been used by the Pupy RAT and other malware.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain tools or automated software may enumerate hardware information. These tools can be exempted via user name or process arguments to eliminate potential noise."],"from":"now-9m","references":["https://objective-see.com/blog/blog_0x4F.html"],"tags":["Elastic","Host","macOS","Linux","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name in (\"grep\", \"egrep\") and user.id != \"0\" and\n process.args : (\"parallels*\", \"vmware*\", \"virtualbox*\") and process.args : \"Manufacturer*\" and\n not process.parent.executable in (\"/Applications/Docker.app/Contents/MacOS/Docker\", \"/usr/libexec/kcare/virt-what\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c85eb82c-d2c8-485c-a36f-534f914b7663:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c85eb82c-d2c8-485c-a36f-534f914b7663:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c85eb82c-d2c8-485c-a36f-534f914b7663:100.0.2.json new file mode 100644 index 0000000000000..e8078f2826812 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c85eb82c-d2c8-485c-a36f-534f914b7663:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Virtual Machine Fingerprinting via Grep v100.0.2","rule_id":"c85eb82c-d2c8-485c-a36f-534f914b7663:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"An adversary may attempt to get detailed information about the operating system and hardware. This rule identifies common locations used to discover virtual machine hardware by a non-root user. This technique has been used by the Pupy RAT and other malware.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Certain tools or automated software may enumerate hardware information. These tools can be exempted via user name or process arguments to eliminate potential noise."],"from":"now-9m","references":["https://objective-see.com/blog/blog_0x4F.html"],"tags":["Elastic","Host","macOS","Linux","Threat Detection","Discovery"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name in (\"grep\", \"egrep\") and user.id != \"0\" and\n process.args : (\"parallels*\", \"vmware*\", \"virtualbox*\") and process.args : \"Manufacturer*\" and\n not process.parent.executable in (\"/Applications/Docker.app/Contents/MacOS/Docker\", \"/usr/libexec/kcare/virt-what\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c85eb82c-d2c8-485c-a36f-534f914b7663:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c88d4bd0-5649-4c52-87ea-9be59dbfbcf2:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c88d4bd0-5649-4c52-87ea-9be59dbfbcf2:100.0.0.json new file mode 100644 index 0000000000000..5f4bb8d939ba3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c88d4bd0-5649-4c52-87ea-9be59dbfbcf2:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Parent Process PID Spoofing v100.0.0","rule_id":"c88d4bd0-5649-4c52-87ea-9be59dbfbcf2:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies parent process spoofing used to thwart detection. Adversaries may spoof the parent process identifier (PPID) of a new process to evade process-monitoring defenses or to elevate privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://blog.didierstevens.com/2017/03/20/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/","subtechnique":[{"id":"T1134.004","name":"Parent PID Spoofing","reference":"https://attack.mitre.org/techniques/T1134/004/"}]}]}],"language":"eql","query":"/* This rule is compatible with Elastic Endpoint only */\n\nsequence by host.id, user.id with maxspan=5m\n [process where event.type == \"start\" and\n process.Ext.token.integrity_level_name != \"system\" and\n (\n process.pe.original_file_name : (\"winword.exe\", \"excel.exe\", \"outlook.exe\", \"powerpnt.exe\", \"eqnedt32.exe\",\n \"fltldr.exe\", \"mspub.exe\", \"msaccess.exe\", \"powershell.exe\", \"pwsh.exe\",\n \"cscript.exe\", \"wscript.exe\", \"rundll32.exe\", \"regsvr32.exe\", \"msbuild.exe\",\n \"mshta.exe\", \"wmic.exe\", \"cmstp.exe\", \"msxsl.exe\") or\n process.executable : (\"?:\\\\Users\\\\*.exe\",\n \"?:\\\\ProgramData\\\\*.exe\",\n \"?:\\\\Windows\\\\Microsoft.NET\\\\*.exe\",\n \"?:\\\\Windows\\\\Temp\\\\*.exe\",\n \"?:\\\\Windows\\\\Tasks\\\\*\") or\n process.code_signature.trusted != true\n )\n ] by process.pid\n [process where event.type == \"start\" and process.parent.Ext.real.pid > 0 and\n /* process.parent.Ext.real.pid is only populated if the parent process pid doesn't match */\n\n not (process.name : \"msedge.exe\" and process.parent.name : \"sihost.exe\")\n ] by process.parent.Ext.real.pid\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":false,"name":"process.parent.Ext.real.pid","type":"unknown"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"c88d4bd0-5649-4c52-87ea-9be59dbfbcf2:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c88d4bd0-5649-4c52-87ea-9be59dbfbcf2:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c88d4bd0-5649-4c52-87ea-9be59dbfbcf2:100.0.1.json new file mode 100644 index 0000000000000..e73014457efe3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c88d4bd0-5649-4c52-87ea-9be59dbfbcf2:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Parent Process PID Spoofing v100.0.1","rule_id":"c88d4bd0-5649-4c52-87ea-9be59dbfbcf2:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies parent process spoofing used to thwart detection. Adversaries may spoof the parent process identifier (PPID) of a new process to evade process-monitoring defenses or to elevate privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://blog.didierstevens.com/2017/03/20/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/","subtechnique":[{"id":"T1134.004","name":"Parent PID Spoofing","reference":"https://attack.mitre.org/techniques/T1134/004/"}]}]}],"language":"eql","query":"/* This rule is compatible with Elastic Endpoint only */\n\nsequence by host.id, user.id with maxspan=5m\n [process where event.type == \"start\" and\n process.Ext.token.integrity_level_name != \"system\" and\n (\n process.pe.original_file_name : (\"winword.exe\", \"excel.exe\", \"outlook.exe\", \"powerpnt.exe\", \"eqnedt32.exe\",\n \"fltldr.exe\", \"mspub.exe\", \"msaccess.exe\", \"powershell.exe\", \"pwsh.exe\",\n \"cscript.exe\", \"wscript.exe\", \"rundll32.exe\", \"regsvr32.exe\", \"msbuild.exe\",\n \"mshta.exe\", \"wmic.exe\", \"cmstp.exe\", \"msxsl.exe\") or\n process.executable : (\"?:\\\\Users\\\\*.exe\",\n \"?:\\\\ProgramData\\\\*.exe\",\n \"?:\\\\Windows\\\\Microsoft.NET\\\\*.exe\",\n \"?:\\\\Windows\\\\Temp\\\\*.exe\",\n \"?:\\\\Windows\\\\Tasks\\\\*\") or\n process.code_signature.trusted != true\n )\n ] by process.pid\n [process where event.type == \"start\" and process.parent.Ext.real.pid > 0 and\n /* process.parent.Ext.real.pid is only populated if the parent process pid doesn't match */\n\n not (process.name : \"msedge.exe\" and process.parent.name : \"sihost.exe\")\n ] by process.parent.Ext.real.pid\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":false,"name":"process.parent.Ext.real.pid","type":"unknown"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"c88d4bd0-5649-4c52-87ea-9be59dbfbcf2:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c88d4bd0-5649-4c52-87ea-9be59dbfbcf2:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c88d4bd0-5649-4c52-87ea-9be59dbfbcf2:100.0.2.json new file mode 100644 index 0000000000000..4ae0ced57fd65 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c88d4bd0-5649-4c52-87ea-9be59dbfbcf2:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Parent Process PID Spoofing v100.0.2","rule_id":"c88d4bd0-5649-4c52-87ea-9be59dbfbcf2:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies parent process spoofing used to thwart detection. Adversaries may spoof the parent process identifier (PPID) of a new process to evade process-monitoring defenses or to elevate privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://blog.didierstevens.com/2017/03/20/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/","subtechnique":[{"id":"T1134.004","name":"Parent PID Spoofing","reference":"https://attack.mitre.org/techniques/T1134/004/"}]}]}],"language":"eql","query":"/* This rule is compatible with Elastic Endpoint only */\n\nsequence by host.id, user.id with maxspan=5m\n [process where event.type == \"start\" and\n process.Ext.token.integrity_level_name != \"system\" and\n (\n process.pe.original_file_name : (\"winword.exe\", \"excel.exe\", \"outlook.exe\", \"powerpnt.exe\", \"eqnedt32.exe\",\n \"fltldr.exe\", \"mspub.exe\", \"msaccess.exe\", \"powershell.exe\", \"pwsh.exe\",\n \"cscript.exe\", \"wscript.exe\", \"rundll32.exe\", \"regsvr32.exe\", \"msbuild.exe\",\n \"mshta.exe\", \"wmic.exe\", \"cmstp.exe\", \"msxsl.exe\") or\n process.executable : (\"?:\\\\Users\\\\*.exe\",\n \"?:\\\\ProgramData\\\\*.exe\",\n \"?:\\\\Windows\\\\Microsoft.NET\\\\*.exe\",\n \"?:\\\\Windows\\\\Temp\\\\*.exe\",\n \"?:\\\\Windows\\\\Tasks\\\\*\") or\n process.code_signature.trusted != true\n )\n ] by process.pid\n [process where event.type == \"start\" and process.parent.Ext.real.pid > 0 and\n /* process.parent.Ext.real.pid is only populated if the parent process pid doesn't match */\n\n not (process.name : \"msedge.exe\" and process.parent.name : \"sihost.exe\")\n ] by process.parent.Ext.real.pid\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":false,"name":"process.parent.Ext.real.pid","type":"unknown"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"process.pid","type":"long"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"c88d4bd0-5649-4c52-87ea-9be59dbfbcf2:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c8b150f0-0164-475b-a75e-74b47800a9ff:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c8b150f0-0164-475b-a75e-74b47800a9ff:102.0.0.json new file mode 100644 index 0000000000000..568bd3becf916 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c8b150f0-0164-475b-a75e-74b47800a9ff:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Startup Shell Folder Modification v102.0.0","rule_id":"c8b150f0-0164-475b-a75e-74b47800a9ff:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious startup shell folder modifications to change the default Startup directory in order to bypass detections monitoring file creation in the Windows Startup folder.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Startup Shell Folder Modification\n\nTechniques used within malware and by adversaries often leverage the Windows registry to store malicious programs for\npersistence. Startup shell folders are often targeted as they are not as prevalent as normal Startup folder paths so this\nbehavior may evade existing AV/EDR solutions. These programs may also run with higher privileges which can be ideal for\nan attacker.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Review the source process and related file tied to the Windows Registry entry.\n- Validate the activity is not related to planned patches, updates, network administrator activity or legitimate software\ninstallations.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- There is a high possibility of benign legitimate programs being added to shell folders. This activity could be based\non new software installations, patches, or other network administrator activity. Before undertaking further investigation,\nit should be verified that this activity is not benign.\n\n### Related rules\n\n- Startup or Run Key Registry Modification - 97fc44d3-8dae-4019-ae83-298c3015600f\n- Persistent Scripts in the Startup Directory - f7c4dc5a-a58d-491d-9f14-9b66507121c0\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"registry where\n registry.path : (\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\User Shell Folders\\\\Common Startup\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\Shell Folders\\\\Common Startup\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\User Shell Folders\\\\Startup\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\Shell Folders\\\\Startup\"\n ) and\n registry.data.strings != null and\n /* Normal Startup Folder Paths */\n not registry.data.strings : (\n \"C:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\",\n \"%ProgramData%\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\",\n \"%USERPROFILE%\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\",\n \"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"c8b150f0-0164-475b-a75e-74b47800a9ff:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c8b150f0-0164-475b-a75e-74b47800a9ff:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c8b150f0-0164-475b-a75e-74b47800a9ff:102.0.1.json new file mode 100644 index 0000000000000..bf42ed3c97e12 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c8b150f0-0164-475b-a75e-74b47800a9ff:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Startup Shell Folder Modification v102.0.1","rule_id":"c8b150f0-0164-475b-a75e-74b47800a9ff:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious startup shell folder modifications to change the default Startup directory in order to bypass detections monitoring file creation in the Windows Startup folder.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Startup Shell Folder Modification\n\nTechniques used within malware and by adversaries often leverage the Windows registry to store malicious programs for\npersistence. Startup shell folders are often targeted as they are not as prevalent as normal Startup folder paths so this\nbehavior may evade existing AV/EDR solutions. These programs may also run with higher privileges which can be ideal for\nan attacker.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Review the source process and related file tied to the Windows Registry entry.\n- Validate the activity is not related to planned patches, updates, network administrator activity or legitimate software\ninstallations.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- There is a high possibility of benign legitimate programs being added to shell folders. This activity could be based\non new software installations, patches, or other network administrator activity. Before undertaking further investigation,\nit should be verified that this activity is not benign.\n\n### Related rules\n\n- Startup or Run Key Registry Modification - 97fc44d3-8dae-4019-ae83-298c3015600f\n- Persistent Scripts in the Startup Directory - f7c4dc5a-a58d-491d-9f14-9b66507121c0\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"registry where\n registry.path : (\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\User Shell Folders\\\\Common Startup\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\Shell Folders\\\\Common Startup\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\User Shell Folders\\\\Startup\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\Shell Folders\\\\Startup\"\n ) and\n registry.data.strings != null and\n /* Normal Startup Folder Paths */\n not registry.data.strings : (\n \"C:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\",\n \"%ProgramData%\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\",\n \"%USERPROFILE%\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\",\n \"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"c8b150f0-0164-475b-a75e-74b47800a9ff:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c8b150f0-0164-475b-a75e-74b47800a9ff:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c8b150f0-0164-475b-a75e-74b47800a9ff:102.0.2.json new file mode 100644 index 0000000000000..e3a5e4fe26ac8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c8b150f0-0164-475b-a75e-74b47800a9ff:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Startup Shell Folder Modification v102.0.2","rule_id":"c8b150f0-0164-475b-a75e-74b47800a9ff:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious startup shell folder modifications to change the default Startup directory in order to bypass detections monitoring file creation in the Windows Startup folder.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious Startup Shell Folder Modification\n\nTechniques used within malware and by adversaries often leverage the Windows registry to store malicious programs for\npersistence. Startup shell folders are often targeted as they are not as prevalent as normal Startup folder paths so this\nbehavior may evade existing AV/EDR solutions. These programs may also run with higher privileges which can be ideal for\nan attacker.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Review the source process and related file tied to the Windows Registry entry.\n- Validate the activity is not related to planned patches, updates, network administrator activity or legitimate software\ninstallations.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- There is a high possibility of benign legitimate programs being added to shell folders. This activity could be based\non new software installations, patches, or other network administrator activity. Before undertaking further investigation,\nit should be verified that this activity is not benign.\n\n### Related rules\n\n- Startup or Run Key Registry Modification - 97fc44d3-8dae-4019-ae83-298c3015600f\n- Persistent Scripts in the Startup Directory - f7c4dc5a-a58d-491d-9f14-9b66507121c0\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"registry where\n registry.path : (\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\User Shell Folders\\\\Common Startup\",\n \"HKLM\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\Shell Folders\\\\Common Startup\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\User Shell Folders\\\\Startup\",\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\Shell Folders\\\\Startup\"\n ) and\n registry.data.strings != null and\n /* Normal Startup Folder Paths */\n not registry.data.strings : (\n \"C:\\\\ProgramData\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\",\n \"%ProgramData%\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\",\n \"%USERPROFILE%\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\",\n \"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"c8b150f0-0164-475b-a75e-74b47800a9ff:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c8cccb06-faf2-4cd5-886e-2c9636cfcb87:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c8cccb06-faf2-4cd5-886e-2c9636cfcb87:102.0.0.json new file mode 100644 index 0000000000000..cfe5e66eac560 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c8cccb06-faf2-4cd5-886e-2c9636cfcb87:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Disabling Windows Defender Security Settings via PowerShell v102.0.0","rule_id":"c8cccb06-faf2-4cd5-886e-2c9636cfcb87:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the Set-MpPreference PowerShell command to disable or weaken certain Windows Defender settings.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Disabling Windows Defender Security Settings via PowerShell\n\nMicrosoft Windows Defender is an antivirus product built into Microsoft Windows, which makes it popular across multiple\nenvironments. Disabling it is a common step in threat actor playbooks.\n\nThis rule monitors the execution of commands that can tamper the Windows Defender antivirus features.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the command line to determine which action was executed. Based on that, examine exceptions, antivirus state,\nsample submission, etc.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity,\nthe configuration is justified (for example, it is being used to deploy other security solutions or troubleshooting),\nand no other suspicious activity has been observed.\n\n### Related rules\n\n- Windows Defender Disabled via Registry Modification - 2ffa1f1e-b6db-47fa-994b-1512743847eb\n- Microsoft Windows Defender Tampering - fe794edd-487f-4a90-b285-3ee54f2af2d3\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Based on the command line, take actions to restore the appropriate Windows Defender antivirus configurations.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Planned Windows Defender configuration changes."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/powershell/module/defender/set-mppreference?view=windowsserver2019-ps"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") or process.pe.original_file_name in (\"powershell.exe\", \"pwsh.dll\", \"powershell_ise.exe\")) and\n process.args : \"Set-MpPreference\" and process.args : (\"-Disable*\", \"Disabled\", \"NeverSend\", \"-Exclusion*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c8cccb06-faf2-4cd5-886e-2c9636cfcb87:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c8cccb06-faf2-4cd5-886e-2c9636cfcb87:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c8cccb06-faf2-4cd5-886e-2c9636cfcb87:102.0.1.json new file mode 100644 index 0000000000000..d01aa44dcbf68 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c8cccb06-faf2-4cd5-886e-2c9636cfcb87:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Disabling Windows Defender Security Settings via PowerShell v102.0.1","rule_id":"c8cccb06-faf2-4cd5-886e-2c9636cfcb87:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the Set-MpPreference PowerShell command to disable or weaken certain Windows Defender settings.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Disabling Windows Defender Security Settings via PowerShell\n\nMicrosoft Windows Defender is an antivirus product built into Microsoft Windows, which makes it popular across multiple\nenvironments. Disabling it is a common step in threat actor playbooks.\n\nThis rule monitors the execution of commands that can tamper the Windows Defender antivirus features.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the command line to determine which action was executed. Based on that, examine exceptions, antivirus state,\nsample submission, etc.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity,\nthe configuration is justified (for example, it is being used to deploy other security solutions or troubleshooting),\nand no other suspicious activity has been observed.\n\n### Related rules\n\n- Windows Defender Disabled via Registry Modification - 2ffa1f1e-b6db-47fa-994b-1512743847eb\n- Microsoft Windows Defender Tampering - fe794edd-487f-4a90-b285-3ee54f2af2d3\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Based on the command line, take actions to restore the appropriate Windows Defender antivirus configurations.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Planned Windows Defender configuration changes."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/powershell/module/defender/set-mppreference?view=windowsserver2019-ps"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") or process.pe.original_file_name in (\"powershell.exe\", \"pwsh.dll\", \"powershell_ise.exe\")) and\n process.args : \"Set-MpPreference\" and process.args : (\"-Disable*\", \"Disabled\", \"NeverSend\", \"-Exclusion*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c8cccb06-faf2-4cd5-886e-2c9636cfcb87:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c8cccb06-faf2-4cd5-886e-2c9636cfcb87:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c8cccb06-faf2-4cd5-886e-2c9636cfcb87:102.0.2.json new file mode 100644 index 0000000000000..9c8823fa66e15 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c8cccb06-faf2-4cd5-886e-2c9636cfcb87:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Disabling Windows Defender Security Settings via PowerShell v102.0.2","rule_id":"c8cccb06-faf2-4cd5-886e-2c9636cfcb87:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the Set-MpPreference PowerShell command to disable or weaken certain Windows Defender settings.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Disabling Windows Defender Security Settings via PowerShell\n\nMicrosoft Windows Defender is an antivirus product built into Microsoft Windows, which makes it popular across multiple\nenvironments. Disabling it is a common step in threat actor playbooks.\n\nThis rule monitors the execution of commands that can tamper the Windows Defender antivirus features.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the command line to determine which action was executed. Based on that, examine exceptions, antivirus state,\nsample submission, etc.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity,\nthe configuration is justified (for example, it is being used to deploy other security solutions or troubleshooting),\nand no other suspicious activity has been observed.\n\n### Related rules\n\n- Windows Defender Disabled via Registry Modification - 2ffa1f1e-b6db-47fa-994b-1512743847eb\n- Microsoft Windows Defender Tampering - fe794edd-487f-4a90-b285-3ee54f2af2d3\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Based on the command line, take actions to restore the appropriate Windows Defender antivirus configurations.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Planned Windows Defender configuration changes."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/powershell/module/defender/set-mppreference?view=windowsserver2019-ps"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") or process.pe.original_file_name in (\"powershell.exe\", \"pwsh.dll\", \"powershell_ise.exe\")) and\n process.args : \"Set-MpPreference\" and process.args : (\"-Disable*\", \"Disabled\", \"NeverSend\", \"-Exclusion*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"c8cccb06-faf2-4cd5-886e-2c9636cfcb87:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c9e38e64-3f4c-4bf3-ad48-0e61a60ea1fa:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c9e38e64-3f4c-4bf3-ad48-0e61a60ea1fa:100.0.0.json new file mode 100644 index 0000000000000..095780ca14bb8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c9e38e64-3f4c-4bf3-ad48-0e61a60ea1fa:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Credential Manipulation - Prevented - Elastic Endgame v100.0.0","rule_id":"c9e38e64-3f4c-4bf3-ad48-0e61a60ea1fa:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented Credential Manipulation. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:token_manipulation_event or endgame.event_subtype_full:token_manipulation_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"c9e38e64-3f4c-4bf3-ad48-0e61a60ea1fa:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c9e38e64-3f4c-4bf3-ad48-0e61a60ea1fa:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c9e38e64-3f4c-4bf3-ad48-0e61a60ea1fa:100.0.1.json new file mode 100644 index 0000000000000..4591385674780 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c9e38e64-3f4c-4bf3-ad48-0e61a60ea1fa:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Credential Manipulation - Prevented - Elastic Endgame v100.0.1","rule_id":"c9e38e64-3f4c-4bf3-ad48-0e61a60ea1fa:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented Credential Manipulation. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:token_manipulation_event or endgame.event_subtype_full:token_manipulation_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"c9e38e64-3f4c-4bf3-ad48-0e61a60ea1fa:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/c9e38e64-3f4c-4bf3-ad48-0e61a60ea1fa:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/c9e38e64-3f4c-4bf3-ad48-0e61a60ea1fa:100.0.2.json new file mode 100644 index 0000000000000..c22509572860f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/c9e38e64-3f4c-4bf3-ad48-0e61a60ea1fa:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Credential Manipulation - Prevented - Elastic Endgame v100.0.2","rule_id":"c9e38e64-3f4c-4bf3-ad48-0e61a60ea1fa:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented Credential Manipulation. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1134","name":"Access Token Manipulation","reference":"https://attack.mitre.org/techniques/T1134/"}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:token_manipulation_event or endgame.event_subtype_full:token_manipulation_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"c9e38e64-3f4c-4bf3-ad48-0e61a60ea1fa:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ca79768e-40e1-4e45-a097-0e5fbc876ac2:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ca79768e-40e1-4e45-a097-0e5fbc876ac2:101.0.0.json new file mode 100644 index 0000000000000..2f2b45fcaab2a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ca79768e-40e1-4e45-a097-0e5fbc876ac2:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange Malware Filter Rule Modification v101.0.0","rule_id":"ca79768e-40e1-4e45-a097-0e5fbc876ac2:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a malware filter rule has been deleted or disabled in Microsoft 365. An adversary or insider threat may want to modify a malware filter rule to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A malware filter rule may be deleted by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-malwarefilterrule?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/disable-malwarefilterrule?view=exchange-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:(\"Remove-MalwareFilterRule\" or \"Disable-MalwareFilterRule\") and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"ca79768e-40e1-4e45-a097-0e5fbc876ac2:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ca79768e-40e1-4e45-a097-0e5fbc876ac2:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ca79768e-40e1-4e45-a097-0e5fbc876ac2:101.0.1.json new file mode 100644 index 0000000000000..6f5b16f768139 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ca79768e-40e1-4e45-a097-0e5fbc876ac2:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange Malware Filter Rule Modification v101.0.1","rule_id":"ca79768e-40e1-4e45-a097-0e5fbc876ac2:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a malware filter rule has been deleted or disabled in Microsoft 365. An adversary or insider threat may want to modify a malware filter rule to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A malware filter rule may be deleted by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-malwarefilterrule?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/disable-malwarefilterrule?view=exchange-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:(\"Remove-MalwareFilterRule\" or \"Disable-MalwareFilterRule\") and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"ca79768e-40e1-4e45-a097-0e5fbc876ac2:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ca79768e-40e1-4e45-a097-0e5fbc876ac2:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ca79768e-40e1-4e45-a097-0e5fbc876ac2:101.0.2.json new file mode 100644 index 0000000000000..1e915174332c0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ca79768e-40e1-4e45-a097-0e5fbc876ac2:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange Malware Filter Rule Modification v101.0.2","rule_id":"ca79768e-40e1-4e45-a097-0e5fbc876ac2:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a malware filter rule has been deleted or disabled in Microsoft 365. An adversary or insider threat may want to modify a malware filter rule to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A malware filter rule may be deleted by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-malwarefilterrule?view=exchange-ps","https://docs.microsoft.com/en-us/powershell/module/exchange/disable-malwarefilterrule?view=exchange-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:(\"Remove-MalwareFilterRule\" or \"Disable-MalwareFilterRule\") and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"ca79768e-40e1-4e45-a097-0e5fbc876ac2:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cac91072-d165-11ec-a764-f661ea17fbce:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cac91072-d165-11ec-a764-f661ea17fbce:102.0.0.json new file mode 100644 index 0000000000000..2bfb10c938729 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cac91072-d165-11ec-a764-f661ea17fbce:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Abnormal Process ID or Lock File Created v102.0.0","rule_id":"cac91072-d165-11ec-a764-f661ea17fbce:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a Process ID (PID), lock or reboot file created in temporary file storage paradigm (tmpfs) directory /var/run. On Linux, the PID files typically hold the process ID to track previous copies running and manage other tasks. Certain Linux malware use the /var/run directory for holding data, executables and other tasks, disguising itself or these files as legitimate PID files.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Abnormal Process ID or Lock File Created\n\nLinux applications may need to save their process identification number (PID) for various purposes: from signaling that\na program is running to serving as a signal that a previous instance of an application didn't exit successfully. PID\nfiles contain its creator process PID in an integer value.\n\nLinux lock files are used to coordinate operations in files so that conflicts and race conditions are prevented.\n\nThis rule identifies the creation of PID, lock, or reboot files in the /var/run/ directory. Attackers can masquerade\nmalware, payloads, staged data for exfiltration, and more as legitimate PID files.\n\n#### Possible investigation steps\n\n- Retrieve the file and determine if it is malicious:\n - Check the contents of the PID files. They should only contain integer strings.\n - Check the file type of the lock and PID files to determine if they are executables. This is only observed in\n malicious files.\n - Check the size of the subject file. Legitimate PID files should be under 10 bytes.\n - Check if the lock or PID file has high entropy. This typically indicates an encrypted payload.\n - Analysts can use tools like `ent` to measure entropy.\n - Examine the reputation of the SHA-256 hash in the PID file. Use a database like VirusTotal to identify additional\n pivots and artifacts for investigation.\n- Trace the file's creation to ensure it came from a legitimate or authorized process.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, file modifications, and any\nspawned child processes.\n\n### False positive analysis\n\n- False positives can appear if the PID file is legitimate and holding a process ID as intended. If the PID file is\nan executable or has a file size that's larger than 10 bytes, it should be ruled suspicious.\n- If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination\nof file name and process executable conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Block the identified indicators of compromise (IoCs).\n- Take actions to terminate processes and connections used by the attacker.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["False-Positives (FP) can appear if the PID file is legitimate and holding a process ID as intended. To differentiate, if the PID file is an executable or larger than 10 bytes, it should be ruled suspicious."],"from":"now-9m","references":["https://www.sandflysecurity.com/blog/linux-file-masquerading-and-malicious-pids-sandfly-1-2-6-update/","https://twitter.com/GossiTheDog/status/1522964028284411907","https://exatrack.com/public/Tricephalic_Hellkeeper.pdf","https://www.elastic.co/security-labs/a-peek-behind-the-bpfdoor"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","BPFDoor","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]}],"language":"eql","query":"/* add file size filters when data is available */\nfile where event.type == \"creation\" and user.id == \"0\" and\n file.path regex~ \"\"\"/var/run/\\w+\\.(pid|lock|reboot)\"\"\" and file.extension in (\"pid\",\"lock\",\"reboot\") and\n\n /* handle common legitimate files */\n\n not file.name in (\n \"auditd.pid\",\n \"python*\",\n \"apport.pid\",\n \"apport.lock\",\n \"kworker*\",\n \"gdm3.pid\",\n \"sshd.pid\",\n \"acpid.pid\",\n \"unattended-upgrades.lock\",\n \"unattended-upgrades.pid\",\n \"cmd.pid\",\n \"cron*.pid\",\n \"yum.pid\",\n \"netconfig.pid\",\n \"docker.pid\",\n \"atd.pid\",\n \"lfd.pid\",\n \"atop.pid\",\n \"nginx.pid\",\n \"dhclient.pid\",\n \"smtpd.pid\",\n \"stunnel.pid\",\n \"1_waagent.pid\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"cac91072-d165-11ec-a764-f661ea17fbce:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cac91072-d165-11ec-a764-f661ea17fbce:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cac91072-d165-11ec-a764-f661ea17fbce:102.0.1.json new file mode 100644 index 0000000000000..765b857c75108 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cac91072-d165-11ec-a764-f661ea17fbce:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Abnormal Process ID or Lock File Created v102.0.1","rule_id":"cac91072-d165-11ec-a764-f661ea17fbce:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a Process ID (PID), lock or reboot file created in temporary file storage paradigm (tmpfs) directory /var/run. On Linux, the PID files typically hold the process ID to track previous copies running and manage other tasks. Certain Linux malware use the /var/run directory for holding data, executables and other tasks, disguising itself or these files as legitimate PID files.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Abnormal Process ID or Lock File Created\n\nLinux applications may need to save their process identification number (PID) for various purposes: from signaling that\na program is running to serving as a signal that a previous instance of an application didn't exit successfully. PID\nfiles contain its creator process PID in an integer value.\n\nLinux lock files are used to coordinate operations in files so that conflicts and race conditions are prevented.\n\nThis rule identifies the creation of PID, lock, or reboot files in the /var/run/ directory. Attackers can masquerade\nmalware, payloads, staged data for exfiltration, and more as legitimate PID files.\n\n#### Possible investigation steps\n\n- Retrieve the file and determine if it is malicious:\n - Check the contents of the PID files. They should only contain integer strings.\n - Check the file type of the lock and PID files to determine if they are executables. This is only observed in\n malicious files.\n - Check the size of the subject file. Legitimate PID files should be under 10 bytes.\n - Check if the lock or PID file has high entropy. This typically indicates an encrypted payload.\n - Analysts can use tools like `ent` to measure entropy.\n - Examine the reputation of the SHA-256 hash in the PID file. Use a database like VirusTotal to identify additional\n pivots and artifacts for investigation.\n- Trace the file's creation to ensure it came from a legitimate or authorized process.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, file modifications, and any\nspawned child processes.\n\n### False positive analysis\n\n- False positives can appear if the PID file is legitimate and holding a process ID as intended. If the PID file is\nan executable or has a file size that's larger than 10 bytes, it should be ruled suspicious.\n- If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination\nof file name and process executable conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Block the identified indicators of compromise (IoCs).\n- Take actions to terminate processes and connections used by the attacker.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["False-Positives (FP) can appear if the PID file is legitimate and holding a process ID as intended. To differentiate, if the PID file is an executable or larger than 10 bytes, it should be ruled suspicious."],"from":"now-9m","references":["https://www.sandflysecurity.com/blog/linux-file-masquerading-and-malicious-pids-sandfly-1-2-6-update/","https://twitter.com/GossiTheDog/status/1522964028284411907","https://exatrack.com/public/Tricephalic_Hellkeeper.pdf","https://www.elastic.co/security-labs/a-peek-behind-the-bpfdoor"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","BPFDoor","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]}],"language":"eql","query":"/* add file size filters when data is available */\nfile where event.type == \"creation\" and user.id == \"0\" and\n file.path regex~ \"\"\"/var/run/\\w+\\.(pid|lock|reboot)\"\"\" and file.extension in (\"pid\",\"lock\",\"reboot\") and\n\n /* handle common legitimate files */\n\n not file.name in (\n \"auditd.pid\",\n \"python*\",\n \"apport.pid\",\n \"apport.lock\",\n \"kworker*\",\n \"gdm3.pid\",\n \"sshd.pid\",\n \"acpid.pid\",\n \"unattended-upgrades.lock\",\n \"unattended-upgrades.pid\",\n \"cmd.pid\",\n \"cron*.pid\",\n \"yum.pid\",\n \"netconfig.pid\",\n \"docker.pid\",\n \"atd.pid\",\n \"lfd.pid\",\n \"atop.pid\",\n \"nginx.pid\",\n \"dhclient.pid\",\n \"smtpd.pid\",\n \"stunnel.pid\",\n \"1_waagent.pid\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"cac91072-d165-11ec-a764-f661ea17fbce:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cac91072-d165-11ec-a764-f661ea17fbce:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cac91072-d165-11ec-a764-f661ea17fbce:102.0.2.json new file mode 100644 index 0000000000000..d301ec9df571b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cac91072-d165-11ec-a764-f661ea17fbce:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Abnormal Process ID or Lock File Created v102.0.2","rule_id":"cac91072-d165-11ec-a764-f661ea17fbce:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a Process ID (PID), lock or reboot file created in temporary file storage paradigm (tmpfs) directory /var/run. On Linux, the PID files typically hold the process ID to track previous copies running and manage other tasks. Certain Linux malware use the /var/run directory for holding data, executables and other tasks, disguising itself or these files as legitimate PID files.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Abnormal Process ID or Lock File Created\n\nLinux applications may need to save their process identification number (PID) for various purposes: from signaling that\na program is running to serving as a signal that a previous instance of an application didn't exit successfully. PID\nfiles contain its creator process PID in an integer value.\n\nLinux lock files are used to coordinate operations in files so that conflicts and race conditions are prevented.\n\nThis rule identifies the creation of PID, lock, or reboot files in the /var/run/ directory. Attackers can masquerade\nmalware, payloads, staged data for exfiltration, and more as legitimate PID files.\n\n#### Possible investigation steps\n\n- Retrieve the file and determine if it is malicious:\n - Check the contents of the PID files. They should only contain integer strings.\n - Check the file type of the lock and PID files to determine if they are executables. This is only observed in\n malicious files.\n - Check the size of the subject file. Legitimate PID files should be under 10 bytes.\n - Check if the lock or PID file has high entropy. This typically indicates an encrypted payload.\n - Analysts can use tools like `ent` to measure entropy.\n - Examine the reputation of the SHA-256 hash in the PID file. Use a database like VirusTotal to identify additional\n pivots and artifacts for investigation.\n- Trace the file's creation to ensure it came from a legitimate or authorized process.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n- Investigate any abnormal behavior by the subject process such as network connections, file modifications, and any\nspawned child processes.\n\n### False positive analysis\n\n- False positives can appear if the PID file is legitimate and holding a process ID as intended. If the PID file is\nan executable or has a file size that's larger than 10 bytes, it should be ruled suspicious.\n- If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination\nof file name and process executable conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Block the identified indicators of compromise (IoCs).\n- Take actions to terminate processes and connections used by the attacker.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["False-Positives (FP) can appear if the PID file is legitimate and holding a process ID as intended. To differentiate, if the PID file is an executable or larger than 10 bytes, it should be ruled suspicious."],"from":"now-9m","references":["https://www.sandflysecurity.com/blog/linux-file-masquerading-and-malicious-pids-sandfly-1-2-6-update/","https://twitter.com/GossiTheDog/status/1522964028284411907","https://exatrack.com/public/Tricephalic_Hellkeeper.pdf","https://www.elastic.co/security-labs/a-peek-behind-the-bpfdoor"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","BPFDoor","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1106","name":"Native API","reference":"https://attack.mitre.org/techniques/T1106/"}]}],"language":"eql","query":"/* add file size filters when data is available */\nfile where event.type == \"creation\" and user.id == \"0\" and\n file.path regex~ \"\"\"/var/run/\\w+\\.(pid|lock|reboot)\"\"\" and file.extension in (\"pid\",\"lock\",\"reboot\") and\n\n /* handle common legitimate files */\n\n not file.name in (\n \"auditd.pid\",\n \"python*\",\n \"apport.pid\",\n \"apport.lock\",\n \"kworker*\",\n \"gdm3.pid\",\n \"sshd.pid\",\n \"acpid.pid\",\n \"unattended-upgrades.lock\",\n \"unattended-upgrades.pid\",\n \"cmd.pid\",\n \"cron*.pid\",\n \"yum.pid\",\n \"netconfig.pid\",\n \"docker.pid\",\n \"atd.pid\",\n \"lfd.pid\",\n \"atop.pid\",\n \"nginx.pid\",\n \"dhclient.pid\",\n \"smtpd.pid\",\n \"stunnel.pid\",\n \"1_waagent.pid\"\n )\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"cac91072-d165-11ec-a764-f661ea17fbce:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cad4500a-abd7-4ef3-b5d3-95524de7cfe1:103.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cad4500a-abd7-4ef3-b5d3-95524de7cfe1:103.0.0.json new file mode 100644 index 0000000000000..f2a57b5cf6880 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cad4500a-abd7-4ef3-b5d3-95524de7cfe1:103.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace MFA Enforcement Disabled v103.0.0","rule_id":"cad4500a-abd7-4ef3-b5d3-95524de7cfe1:103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when multi-factor authentication (MFA) enforcement is disabled for Google Workspace users. An adversary may disable MFA enforcement in order to weaken an organization’s security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Google Workspace MFA Enforcement Disabled\n\nMulti-factor authentication is a process in which users are prompted during the sign-in process for an additional form\nof identification, such as a code on their cellphone or a fingerprint scan.\n\nIf you only use a password to authenticate a user, it leaves an insecure vector for attack. If the password is weak or\nhas been exposed elsewhere, an attacker could be using it to gain access. When you require a second form of authentication,\nsecurity is increased because this additional factor isn't something that's easy for an attacker to obtain or duplicate.\n\nFor more information about using MFA in Google Workspace, access the [official documentation](https://support.google.com/a/answer/175197).\n\nThis rule identifies the disabling of MFA enforcement in Google Workspace. This modification weakens the security of\nthe accounts and can lead to the compromise of accounts and other assets.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- While this activity can be done by administrators, all users must use MFA. The security team should address any\npotential benign true positive (B-TP), as this configuration can risk the user and domain.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Reactivate the multi-factor authentication enforcement.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://support.google.com/a/answer/7587183) by Google.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n\n\n### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["MFA policies may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/9176657?hl=en#"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin\n and event.category:iam and event.action:ENFORCE_STRONG_AUTHENTICATION\n and google_workspace.admin.new_value:false\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"cad4500a-abd7-4ef3-b5d3-95524de7cfe1:103.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cad4500a-abd7-4ef3-b5d3-95524de7cfe1:103.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cad4500a-abd7-4ef3-b5d3-95524de7cfe1:103.0.1.json new file mode 100644 index 0000000000000..dc26f8f7d3f12 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cad4500a-abd7-4ef3-b5d3-95524de7cfe1:103.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace MFA Enforcement Disabled v103.0.1","rule_id":"cad4500a-abd7-4ef3-b5d3-95524de7cfe1:103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when multi-factor authentication (MFA) enforcement is disabled for Google Workspace users. An adversary may disable MFA enforcement in order to weaken an organization’s security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Google Workspace MFA Enforcement Disabled\n\nMulti-factor authentication is a process in which users are prompted during the sign-in process for an additional form\nof identification, such as a code on their cellphone or a fingerprint scan.\n\nIf you only use a password to authenticate a user, it leaves an insecure vector for attack. If the password is weak or\nhas been exposed elsewhere, an attacker could be using it to gain access. When you require a second form of authentication,\nsecurity is increased because this additional factor isn't something that's easy for an attacker to obtain or duplicate.\n\nFor more information about using MFA in Google Workspace, access the [official documentation](https://support.google.com/a/answer/175197).\n\nThis rule identifies the disabling of MFA enforcement in Google Workspace. This modification weakens the security of\nthe accounts and can lead to the compromise of accounts and other assets.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- While this activity can be done by administrators, all users must use MFA. The security team should address any\npotential benign true positive (B-TP), as this configuration can risk the user and domain.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Reactivate the multi-factor authentication enforcement.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://support.google.com/a/answer/7587183) by Google.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n\n\n### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["MFA policies may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/9176657?hl=en#"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin\n and event.category:iam and event.action:ENFORCE_STRONG_AUTHENTICATION\n and google_workspace.admin.new_value:false\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"cad4500a-abd7-4ef3-b5d3-95524de7cfe1:103.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cad4500a-abd7-4ef3-b5d3-95524de7cfe1:103.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cad4500a-abd7-4ef3-b5d3-95524de7cfe1:103.0.2.json new file mode 100644 index 0000000000000..38e29be17af88 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cad4500a-abd7-4ef3-b5d3-95524de7cfe1:103.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace MFA Enforcement Disabled v103.0.2","rule_id":"cad4500a-abd7-4ef3-b5d3-95524de7cfe1:103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when multi-factor authentication (MFA) enforcement is disabled for Google Workspace users. An adversary may disable MFA enforcement in order to weaken an organization’s security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Google Workspace MFA Enforcement Disabled\n\nMulti-factor authentication is a process in which users are prompted during the sign-in process for an additional form\nof identification, such as a code on their cellphone or a fingerprint scan.\n\nIf you only use a password to authenticate a user, it leaves an insecure vector for attack. If the password is weak or\nhas been exposed elsewhere, an attacker could be using it to gain access. When you require a second form of authentication,\nsecurity is increased because this additional factor isn't something that's easy for an attacker to obtain or duplicate.\n\nFor more information about using MFA in Google Workspace, access the [official documentation](https://support.google.com/a/answer/175197).\n\nThis rule identifies the disabling of MFA enforcement in Google Workspace. This modification weakens the security of\nthe accounts and can lead to the compromise of accounts and other assets.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- While this activity can be done by administrators, all users must use MFA. The security team should address any\npotential benign true positive (B-TP), as this configuration can risk the user and domain.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Reactivate the multi-factor authentication enforcement.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://support.google.com/a/answer/7587183) by Google.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n\n\n### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["MFA policies may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/9176657?hl=en#"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin\n and event.category:iam and event.action:ENFORCE_STRONG_AUTHENTICATION\n and google_workspace.admin.new_value:false\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"cad4500a-abd7-4ef3-b5d3-95524de7cfe1:103.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cb71aa62-55c8-42f0-b0dd-afb0bb0b1f51:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cb71aa62-55c8-42f0-b0dd-afb0bb0b1f51:100.0.0.json new file mode 100644 index 0000000000000..2407b2f3ddfe2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cb71aa62-55c8-42f0-b0dd-afb0bb0b1f51:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Calendar File Modification v100.0.0","rule_id":"cb71aa62-55c8-42f0-b0dd-afb0bb0b1f51:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious modifications of the calendar file by an unusual process. Adversaries may create a custom calendar notification procedure to execute a malicious program at a recurring interval to establish persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted applications for managing calendars and reminders."],"from":"now-9m","references":["https://labs.f-secure.com/blog/operationalising-calendar-alerts-persistence-on-macos","https://github.com/FSecureLABS/CalendarPersist","https://github.com/D00MFist/PersistentJXA/blob/master/CalendarPersist.js"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/"}]}],"type":"query","index":["logs-endpoint.events.*","auditbeat-*"],"language":"kuery","query":"event.category:file and event.action:modification and\n file.path:/Users/*/Library/Calendars/*.calendar/Events/*.ics and\n process.executable:\n (* and not\n (\n /System/Library/* or\n /System/Applications/Calendar.app/Contents/MacOS/* or\n /System/Applications/Mail.app/Contents/MacOS/Mail or\n /usr/libexec/xpcproxy or\n /sbin/launchd or\n /Applications/*\n )\n )\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},"id":"cb71aa62-55c8-42f0-b0dd-afb0bb0b1f51:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cb71aa62-55c8-42f0-b0dd-afb0bb0b1f51:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cb71aa62-55c8-42f0-b0dd-afb0bb0b1f51:100.0.1.json new file mode 100644 index 0000000000000..850a398b381a5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cb71aa62-55c8-42f0-b0dd-afb0bb0b1f51:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Calendar File Modification v100.0.1","rule_id":"cb71aa62-55c8-42f0-b0dd-afb0bb0b1f51:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious modifications of the calendar file by an unusual process. Adversaries may create a custom calendar notification procedure to execute a malicious program at a recurring interval to establish persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted applications for managing calendars and reminders."],"from":"now-9m","references":["https://labs.f-secure.com/blog/operationalising-calendar-alerts-persistence-on-macos","https://github.com/FSecureLABS/CalendarPersist","https://github.com/D00MFist/PersistentJXA/blob/master/CalendarPersist.js"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/"}]}],"type":"query","index":["logs-endpoint.events.*","auditbeat-*"],"language":"kuery","query":"event.category:file and event.action:modification and\n file.path:/Users/*/Library/Calendars/*.calendar/Events/*.ics and\n process.executable:\n (* and not\n (\n /System/Library/* or\n /System/Applications/Calendar.app/Contents/MacOS/* or\n /System/Applications/Mail.app/Contents/MacOS/Mail or\n /usr/libexec/xpcproxy or\n /sbin/launchd or\n /Applications/*\n )\n )\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},"id":"cb71aa62-55c8-42f0-b0dd-afb0bb0b1f51:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cb71aa62-55c8-42f0-b0dd-afb0bb0b1f51:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cb71aa62-55c8-42f0-b0dd-afb0bb0b1f51:100.0.2.json new file mode 100644 index 0000000000000..3a5fcfe762afc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cb71aa62-55c8-42f0-b0dd-afb0bb0b1f51:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Calendar File Modification v100.0.2","rule_id":"cb71aa62-55c8-42f0-b0dd-afb0bb0b1f51:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious modifications of the calendar file by an unusual process. Adversaries may create a custom calendar notification procedure to execute a malicious program at a recurring interval to establish persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted applications for managing calendars and reminders."],"from":"now-9m","references":["https://labs.f-secure.com/blog/operationalising-calendar-alerts-persistence-on-macos","https://github.com/FSecureLABS/CalendarPersist","https://github.com/D00MFist/PersistentJXA/blob/master/CalendarPersist.js"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/"}]}],"type":"query","index":["logs-endpoint.events.*","auditbeat-*"],"language":"kuery","query":"event.category:file and event.action:modification and\n file.path:/Users/*/Library/Calendars/*.calendar/Events/*.ics and\n process.executable:\n (* and not\n (\n /System/Library/* or\n /System/Applications/Calendar.app/Contents/MacOS/* or\n /System/Applications/Mail.app/Contents/MacOS/Mail or\n /usr/libexec/xpcproxy or\n /sbin/launchd or\n /Applications/*\n )\n )\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}]},"id":"cb71aa62-55c8-42f0-b0dd-afb0bb0b1f51:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cc2fd2d0-ba3a-4939-b87f-2901764ed036:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cc2fd2d0-ba3a-4939-b87f-2901764ed036:100.0.0.json new file mode 100644 index 0000000000000..d515e766e48d1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cc2fd2d0-ba3a-4939-b87f-2901764ed036:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Enable the Root Account v100.0.0","rule_id":"cc2fd2d0-ba3a-4939-b87f-2901764ed036:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to enable the root account using the dsenableroot command. This command may be abused by adversaries for persistence, as the root account is disabled by default.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://ss64.com/osx/dsenableroot.html"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.003","name":"Local Accounts","reference":"https://attack.mitre.org/techniques/T1078/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:dsenableroot and not process.args:\"-d\"\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"cc2fd2d0-ba3a-4939-b87f-2901764ed036:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cc2fd2d0-ba3a-4939-b87f-2901764ed036:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cc2fd2d0-ba3a-4939-b87f-2901764ed036:100.0.1.json new file mode 100644 index 0000000000000..8afa73e54bc1f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cc2fd2d0-ba3a-4939-b87f-2901764ed036:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Enable the Root Account v100.0.1","rule_id":"cc2fd2d0-ba3a-4939-b87f-2901764ed036:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to enable the root account using the dsenableroot command. This command may be abused by adversaries for persistence, as the root account is disabled by default.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://ss64.com/osx/dsenableroot.html"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.003","name":"Local Accounts","reference":"https://attack.mitre.org/techniques/T1078/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:dsenableroot and not process.args:\"-d\"\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"cc2fd2d0-ba3a-4939-b87f-2901764ed036:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cc2fd2d0-ba3a-4939-b87f-2901764ed036:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cc2fd2d0-ba3a-4939-b87f-2901764ed036:100.0.2.json new file mode 100644 index 0000000000000..4963f5ba3097b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cc2fd2d0-ba3a-4939-b87f-2901764ed036:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Enable the Root Account v100.0.2","rule_id":"cc2fd2d0-ba3a-4939-b87f-2901764ed036:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to enable the root account using the dsenableroot command. This command may be abused by adversaries for persistence, as the root account is disabled by default.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://ss64.com/osx/dsenableroot.html"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/","subtechnique":[{"id":"T1078.003","name":"Local Accounts","reference":"https://attack.mitre.org/techniques/T1078/003/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:dsenableroot and not process.args:\"-d\"\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"cc2fd2d0-ba3a-4939-b87f-2901764ed036:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cc6a8a20-2df2-11ed-8378-f661ea17fbce:2.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cc6a8a20-2df2-11ed-8378-f661ea17fbce:2.0.0.json new file mode 100644 index 0000000000000..081afcb8ee13f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cc6a8a20-2df2-11ed-8378-f661ea17fbce:2.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace User Organizational Unit Changed v2.0.0","rule_id":"cc6a8a20-2df2-11ed-8378-f661ea17fbce:2.0.0","rule_version":"2.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Users in Google Workspace are typically assigned a specific organizational unit that grants them permissions to certain services and roles that are inherited from this organizational unit. Adversaries may compromise a valid account and change which organizational account the user belongs to which then could allow them to inherit permissions to applications and resources inaccessible prior to.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Google Workspace administrators may adjust change which organizational unit a user belongs to as a result of internal role adjustments."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/6328701?hl=en#"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.003","name":"Additional Cloud Roles","reference":"https://attack.mitre.org/techniques/T1098/003/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.type:change and event.category:iam\n and google_workspace.event.type:\"USER_SETTINGS\" and event.action:\"MOVE_USER_TO_ORG_UNIT\"\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"google_workspace.event.type","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"cc6a8a20-2df2-11ed-8378-f661ea17fbce:2.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cc6a8a20-2df2-11ed-8378-f661ea17fbce:2.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cc6a8a20-2df2-11ed-8378-f661ea17fbce:2.0.1.json new file mode 100644 index 0000000000000..c1c3782f25210 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cc6a8a20-2df2-11ed-8378-f661ea17fbce:2.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace User Organizational Unit Changed v2.0.1","rule_id":"cc6a8a20-2df2-11ed-8378-f661ea17fbce:2.0.1","rule_version":"2.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Users in Google Workspace are typically assigned a specific organizational unit that grants them permissions to certain services and roles that are inherited from this organizational unit. Adversaries may compromise a valid account and change which organizational account the user belongs to which then could allow them to inherit permissions to applications and resources inaccessible prior to.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Google Workspace administrators may adjust change which organizational unit a user belongs to as a result of internal role adjustments."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/6328701?hl=en#"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.003","name":"Additional Cloud Roles","reference":"https://attack.mitre.org/techniques/T1098/003/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.type:change and event.category:iam\n and google_workspace.event.type:\"USER_SETTINGS\" and event.action:\"MOVE_USER_TO_ORG_UNIT\"\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"google_workspace.event.type","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"cc6a8a20-2df2-11ed-8378-f661ea17fbce:2.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cc6a8a20-2df2-11ed-8378-f661ea17fbce:2.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cc6a8a20-2df2-11ed-8378-f661ea17fbce:2.0.2.json new file mode 100644 index 0000000000000..c30e9eec56a36 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cc6a8a20-2df2-11ed-8378-f661ea17fbce:2.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Google Workspace User Organizational Unit Changed v2.0.2","rule_id":"cc6a8a20-2df2-11ed-8378-f661ea17fbce:2.0.2","rule_version":"2.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Users in Google Workspace are typically assigned a specific organizational unit that grants them permissions to certain services and roles that are inherited from this organizational unit. Adversaries may compromise a valid account and change which organizational account the user belongs to which then could allow them to inherit permissions to applications and resources inaccessible prior to.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Google Workspace administrators may adjust change which organizational unit a user belongs to as a result of internal role adjustments."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/6328701?hl=en#"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.003","name":"Additional Cloud Roles","reference":"https://attack.mitre.org/techniques/T1098/003/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:\"google_workspace.admin\" and event.type:change and event.category:iam\n and google_workspace.event.type:\"USER_SETTINGS\" and event.action:\"MOVE_USER_TO_ORG_UNIT\"\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"google_workspace.event.type","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"cc6a8a20-2df2-11ed-8378-f661ea17fbce:2.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cc89312d-6f47-48e4-a87c-4977bd4633c3:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cc89312d-6f47-48e4-a87c-4977bd4633c3:102.0.0.json new file mode 100644 index 0000000000000..2c03f7cc2d0b9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cc89312d-6f47-48e4-a87c-4977bd4633c3:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Pub/Sub Subscription Deletion v102.0.0","rule_id":"cc89312d-6f47-48e4-a87c-4977bd4633c3:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a subscription in Google Cloud Platform (GCP). In GCP, the publisher-subscriber relationship (Pub/Sub) is an asynchronous messaging service that decouples event-producing and event-processing services. A subscription is a named resource representing the stream of messages to be delivered to the subscribing application.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Subscription deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Subscription deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/pubsub/docs/overview"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.pubsub.v*.Subscriber.DeleteSubscription and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"cc89312d-6f47-48e4-a87c-4977bd4633c3:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cc89312d-6f47-48e4-a87c-4977bd4633c3:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cc89312d-6f47-48e4-a87c-4977bd4633c3:102.0.1.json new file mode 100644 index 0000000000000..17a6fab280bf3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cc89312d-6f47-48e4-a87c-4977bd4633c3:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Pub/Sub Subscription Deletion v102.0.1","rule_id":"cc89312d-6f47-48e4-a87c-4977bd4633c3:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a subscription in Google Cloud Platform (GCP). In GCP, the publisher-subscriber relationship (Pub/Sub) is an asynchronous messaging service that decouples event-producing and event-processing services. A subscription is a named resource representing the stream of messages to be delivered to the subscribing application.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Subscription deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Subscription deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/pubsub/docs/overview"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.pubsub.v*.Subscriber.DeleteSubscription and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"cc89312d-6f47-48e4-a87c-4977bd4633c3:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cc89312d-6f47-48e4-a87c-4977bd4633c3:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cc89312d-6f47-48e4-a87c-4977bd4633c3:102.0.2.json new file mode 100644 index 0000000000000..006b03819fa87 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cc89312d-6f47-48e4-a87c-4977bd4633c3:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Pub/Sub Subscription Deletion v102.0.2","rule_id":"cc89312d-6f47-48e4-a87c-4977bd4633c3:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a subscription in Google Cloud Platform (GCP). In GCP, the publisher-subscriber relationship (Pub/Sub) is an asynchronous messaging service that decouples event-producing and event-processing services. A subscription is a named resource representing the stream of messages to be delivered to the subscribing application.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Subscription deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Subscription deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/pubsub/docs/overview"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.pubsub.v*.Subscriber.DeleteSubscription and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"cc89312d-6f47-48e4-a87c-4977bd4633c3:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cc92c835-da92-45c9-9f29-b4992ad621a0:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cc92c835-da92-45c9-9f29-b4992ad621a0:102.0.0.json new file mode 100644 index 0000000000000..4c181acc0e705 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cc92c835-da92-45c9-9f29-b4992ad621a0:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Deactivate an Okta Policy Rule v102.0.0","rule_id":"cc92c835-da92-45c9-9f29-b4992ad621a0:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to deactivate a rule within an Okta policy. An adversary may attempt to deactivate a rule within an Okta policy in order to remove or weaken an organization's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Okta MFA rules are regularly deactivated in your organization."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/Security_Policies.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.rule.deactivate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"cc92c835-da92-45c9-9f29-b4992ad621a0:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cc92c835-da92-45c9-9f29-b4992ad621a0:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cc92c835-da92-45c9-9f29-b4992ad621a0:102.0.1.json new file mode 100644 index 0000000000000..8861b5cd4de33 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cc92c835-da92-45c9-9f29-b4992ad621a0:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Deactivate an Okta Policy Rule v102.0.1","rule_id":"cc92c835-da92-45c9-9f29-b4992ad621a0:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to deactivate a rule within an Okta policy. An adversary may attempt to deactivate a rule within an Okta policy in order to remove or weaken an organization's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Okta MFA rules are regularly deactivated in your organization."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/Security_Policies.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.rule.deactivate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"cc92c835-da92-45c9-9f29-b4992ad621a0:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cc92c835-da92-45c9-9f29-b4992ad621a0:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cc92c835-da92-45c9-9f29-b4992ad621a0:102.0.2.json new file mode 100644 index 0000000000000..45859832dcbf0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cc92c835-da92-45c9-9f29-b4992ad621a0:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Deactivate an Okta Policy Rule v102.0.2","rule_id":"cc92c835-da92-45c9-9f29-b4992ad621a0:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to deactivate a rule within an Okta policy. An adversary may attempt to deactivate a rule within an Okta policy in order to remove or weaken an organization's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Okta MFA rules are regularly deactivated in your organization."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/Security_Policies.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.rule.deactivate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"cc92c835-da92-45c9-9f29-b4992ad621a0:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ccc55af4-9882-4c67-87b4-449a7ae8079c:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ccc55af4-9882-4c67-87b4-449a7ae8079c:101.0.0.json new file mode 100644 index 0000000000000..afd018355fa83 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ccc55af4-9882-4c67-87b4-449a7ae8079c:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Process Herpaderping Attempt v101.0.0","rule_id":"ccc55af4-9882-4c67-87b4-449a7ae8079c:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies process execution followed by a file overwrite of an executable by the same parent process. This may indicate an evasion attempt to execute malicious code in a stealthy way.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://github.com/jxy-s/herpaderping"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"language":"eql","query":"sequence with maxspan=5s\n [process where event.type == \"start\" and not process.parent.executable :\n (\n \"?:\\\\Windows\\\\SoftwareDistribution\\\\*.exe\",\n \"?:\\\\Program Files\\\\Elastic\\\\Agent\\\\data\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\Trend Micro\\\\*.exe\"\n )\n ] by host.id, process.executable, process.parent.entity_id\n [file where event.type == \"change\" and event.action == \"overwrite\" and file.extension == \"exe\"] by host.id, file.path, process.entity_id\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},"id":"ccc55af4-9882-4c67-87b4-449a7ae8079c:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ccc55af4-9882-4c67-87b4-449a7ae8079c:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ccc55af4-9882-4c67-87b4-449a7ae8079c:101.0.1.json new file mode 100644 index 0000000000000..fbe33aff4cd06 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ccc55af4-9882-4c67-87b4-449a7ae8079c:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Process Herpaderping Attempt v101.0.1","rule_id":"ccc55af4-9882-4c67-87b4-449a7ae8079c:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies process execution followed by a file overwrite of an executable by the same parent process. This may indicate an evasion attempt to execute malicious code in a stealthy way.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://github.com/jxy-s/herpaderping"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"language":"eql","query":"sequence with maxspan=5s\n [process where event.type == \"start\" and not process.parent.executable :\n (\n \"?:\\\\Windows\\\\SoftwareDistribution\\\\*.exe\",\n \"?:\\\\Program Files\\\\Elastic\\\\Agent\\\\data\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\Trend Micro\\\\*.exe\"\n )\n ] by host.id, process.executable, process.parent.entity_id\n [file where event.type == \"change\" and event.action == \"overwrite\" and file.extension == \"exe\"] by host.id, file.path, process.entity_id\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},"id":"ccc55af4-9882-4c67-87b4-449a7ae8079c:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ccc55af4-9882-4c67-87b4-449a7ae8079c:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ccc55af4-9882-4c67-87b4-449a7ae8079c:101.0.2.json new file mode 100644 index 0000000000000..be68fa659a396 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ccc55af4-9882-4c67-87b4-449a7ae8079c:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Process Herpaderping Attempt v101.0.2","rule_id":"ccc55af4-9882-4c67-87b4-449a7ae8079c:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies process execution followed by a file overwrite of an executable by the same parent process. This may indicate an evasion attempt to execute malicious code in a stealthy way.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://github.com/jxy-s/herpaderping"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/"}]}],"language":"eql","query":"sequence with maxspan=5s\n [process where event.type == \"start\" and not process.parent.executable :\n (\n \"?:\\\\Windows\\\\SoftwareDistribution\\\\*.exe\",\n \"?:\\\\Program Files\\\\Elastic\\\\Agent\\\\data\\\\*.exe\",\n \"?:\\\\Program Files (x86)\\\\Trend Micro\\\\*.exe\"\n )\n ] by host.id, process.executable, process.parent.entity_id\n [file where event.type == \"change\" and event.action == \"overwrite\" and file.extension == \"exe\"] by host.id, file.path, process.entity_id\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},"id":"ccc55af4-9882-4c67-87b4-449a7ae8079c:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cd16fb10-0261-46e8-9932-a0336278cdbe:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cd16fb10-0261-46e8-9932-a0336278cdbe:102.0.0.json new file mode 100644 index 0000000000000..dce11cebb08ab --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cd16fb10-0261-46e8-9932-a0336278cdbe:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Modification or Removal of an Okta Application Sign-On Policy v102.0.0","rule_id":"cd16fb10-0261-46e8-9932-a0336278cdbe:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to modify or delete a sign on policy for an Okta application. An adversary may attempt to modify or delete the sign on policy for an Okta application in order to remove or weaken an organization's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if sign on policies for Okta applications are regularly modified or deleted in your organization."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/App_Based_Signon.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:(application.policy.sign_on.update or application.policy.sign_on.rule.delete)\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"cd16fb10-0261-46e8-9932-a0336278cdbe:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cd16fb10-0261-46e8-9932-a0336278cdbe:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cd16fb10-0261-46e8-9932-a0336278cdbe:102.0.1.json new file mode 100644 index 0000000000000..d77e59d65399e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cd16fb10-0261-46e8-9932-a0336278cdbe:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Modification or Removal of an Okta Application Sign-On Policy v102.0.1","rule_id":"cd16fb10-0261-46e8-9932-a0336278cdbe:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to modify or delete a sign on policy for an Okta application. An adversary may attempt to modify or delete the sign on policy for an Okta application in order to remove or weaken an organization's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if sign on policies for Okta applications are regularly modified or deleted in your organization."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/App_Based_Signon.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:(application.policy.sign_on.update or application.policy.sign_on.rule.delete)\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"cd16fb10-0261-46e8-9932-a0336278cdbe:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cd16fb10-0261-46e8-9932-a0336278cdbe:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cd16fb10-0261-46e8-9932-a0336278cdbe:102.0.2.json new file mode 100644 index 0000000000000..e98add7b892c4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cd16fb10-0261-46e8-9932-a0336278cdbe:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Modification or Removal of an Okta Application Sign-On Policy v102.0.2","rule_id":"cd16fb10-0261-46e8-9932-a0336278cdbe:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to modify or delete a sign on policy for an Okta application. An adversary may attempt to modify or delete the sign on policy for an Okta application in order to remove or weaken an organization's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if sign on policies for Okta applications are regularly modified or deleted in your organization."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/App_Based_Signon.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:(application.policy.sign_on.update or application.policy.sign_on.rule.delete)\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"cd16fb10-0261-46e8-9932-a0336278cdbe:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cd66a419-9b3f-4f57-8ff8-ac4cd2d5f530:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cd66a419-9b3f-4f57-8ff8-ac4cd2d5f530:100.0.0.json new file mode 100644 index 0000000000000..ac26676193d73 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cd66a419-9b3f-4f57-8ff8-ac4cd2d5f530:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Anomalous Linux Compiler Activity v100.0.0","rule_id":"cd66a419-9b3f-4f57-8ff8-ac4cd2d5f530:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for compiler activity by a user context which does not normally run compilers. This can be the result of ad-hoc software changes or unauthorized software deployment. This can also be due to local privilege elevation via locally run exploits or malware activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon compiler activity can be due to an engineer running a local build on a production or staging instance in the course of troubleshooting or fixing a software issue."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML","Resource Development"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0042","name":"Resource Development","reference":"https://attack.mitre.org/tactics/TA0042/"},"technique":[{"id":"T1588","name":"Obtain Capabilities","reference":"https://attack.mitre.org/techniques/T1588/","subtechnique":[{"id":"T1588.001","name":"Malware","reference":"https://attack.mitre.org/techniques/T1588/001/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_rare_user_compiler"],"type":"machine_learning"},"id":"cd66a419-9b3f-4f57-8ff8-ac4cd2d5f530:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cd66a419-9b3f-4f57-8ff8-ac4cd2d5f530:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cd66a419-9b3f-4f57-8ff8-ac4cd2d5f530:100.0.1.json new file mode 100644 index 0000000000000..2bd8847fd7ae2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cd66a419-9b3f-4f57-8ff8-ac4cd2d5f530:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Anomalous Linux Compiler Activity v100.0.1","rule_id":"cd66a419-9b3f-4f57-8ff8-ac4cd2d5f530:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for compiler activity by a user context which does not normally run compilers. This can be the result of ad-hoc software changes or unauthorized software deployment. This can also be due to local privilege elevation via locally run exploits or malware activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon compiler activity can be due to an engineer running a local build on a production or staging instance in the course of troubleshooting or fixing a software issue."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML","Resource Development"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0042","name":"Resource Development","reference":"https://attack.mitre.org/tactics/TA0042/"},"technique":[{"id":"T1588","name":"Obtain Capabilities","reference":"https://attack.mitre.org/techniques/T1588/","subtechnique":[{"id":"T1588.001","name":"Malware","reference":"https://attack.mitre.org/techniques/T1588/001/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_rare_user_compiler"],"type":"machine_learning"},"id":"cd66a419-9b3f-4f57-8ff8-ac4cd2d5f530:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cd66a419-9b3f-4f57-8ff8-ac4cd2d5f530:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cd66a419-9b3f-4f57-8ff8-ac4cd2d5f530:100.0.2.json new file mode 100644 index 0000000000000..35243c15c579b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cd66a419-9b3f-4f57-8ff8-ac4cd2d5f530:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Anomalous Linux Compiler Activity v100.0.2","rule_id":"cd66a419-9b3f-4f57-8ff8-ac4cd2d5f530:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for compiler activity by a user context which does not normally run compilers. This can be the result of ad-hoc software changes or unauthorized software deployment. This can also be due to local privilege elevation via locally run exploits or malware activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon compiler activity can be due to an engineer running a local build on a production or staging instance in the course of troubleshooting or fixing a software issue."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML","Resource Development"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0042","name":"Resource Development","reference":"https://attack.mitre.org/tactics/TA0042/"},"technique":[{"id":"T1588","name":"Obtain Capabilities","reference":"https://attack.mitre.org/techniques/T1588/","subtechnique":[{"id":"T1588.001","name":"Malware","reference":"https://attack.mitre.org/techniques/T1588/001/"}]}]}],"anomaly_threshold":50,"machine_learning_job_id":["v3_linux_rare_user_compiler"],"type":"machine_learning"},"id":"cd66a419-9b3f-4f57-8ff8-ac4cd2d5f530:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cd66a5af-e34b-4bb0-8931-57d0a043f2ef:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cd66a5af-e34b-4bb0-8931-57d0a043f2ef:100.0.0.json new file mode 100644 index 0000000000000..ea2710dd02295 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cd66a5af-e34b-4bb0-8931-57d0a043f2ef:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kernel Module Removal v100.0.0","rule_id":"cd66a5af-e34b-4bb0-8931-57d0a043f2ef:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Kernel modules are pieces of code that can be loaded and unloaded into the kernel upon demand. They extend the functionality of the kernel without the need to reboot the system. This rule identifies attempts to remove a kernel module.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["There is usually no reason to remove modules, but some buggy modules require it. These can be exempted by username. Note that some Linux distributions are not built to support the removal of modules at all."],"from":"now-9m","references":["http://man7.org/linux/man-pages/man8/modprobe.8.html"],"tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.006","name":"Kernel Modules and Extensions","reference":"https://attack.mitre.org/techniques/T1547/006/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.args:((rmmod and sudo) or (modprobe and sudo and (\"--remove\" or \"-r\")))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},"id":"cd66a5af-e34b-4bb0-8931-57d0a043f2ef:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cd66a5af-e34b-4bb0-8931-57d0a043f2ef:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cd66a5af-e34b-4bb0-8931-57d0a043f2ef:100.0.1.json new file mode 100644 index 0000000000000..bc1de837bf74e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cd66a5af-e34b-4bb0-8931-57d0a043f2ef:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kernel Module Removal v100.0.1","rule_id":"cd66a5af-e34b-4bb0-8931-57d0a043f2ef:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Kernel modules are pieces of code that can be loaded and unloaded into the kernel upon demand. They extend the functionality of the kernel without the need to reboot the system. This rule identifies attempts to remove a kernel module.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["There is usually no reason to remove modules, but some buggy modules require it. These can be exempted by username. Note that some Linux distributions are not built to support the removal of modules at all."],"from":"now-9m","references":["http://man7.org/linux/man-pages/man8/modprobe.8.html"],"tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.006","name":"Kernel Modules and Extensions","reference":"https://attack.mitre.org/techniques/T1547/006/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.args:((rmmod and sudo) or (modprobe and sudo and (\"--remove\" or \"-r\")))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},"id":"cd66a5af-e34b-4bb0-8931-57d0a043f2ef:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cd66a5af-e34b-4bb0-8931-57d0a043f2ef:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cd66a5af-e34b-4bb0-8931-57d0a043f2ef:100.0.2.json new file mode 100644 index 0000000000000..2bf939e6a014a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cd66a5af-e34b-4bb0-8931-57d0a043f2ef:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kernel Module Removal v100.0.2","rule_id":"cd66a5af-e34b-4bb0-8931-57d0a043f2ef:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Kernel modules are pieces of code that can be loaded and unloaded into the kernel upon demand. They extend the functionality of the kernel without the need to reboot the system. This rule identifies attempts to remove a kernel module.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["There is usually no reason to remove modules, but some buggy modules require it. These can be exempted by username. Note that some Linux distributions are not built to support the removal of modules at all."],"from":"now-9m","references":["http://man7.org/linux/man-pages/man8/modprobe.8.html"],"tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.006","name":"Kernel Modules and Extensions","reference":"https://attack.mitre.org/techniques/T1547/006/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.args:((rmmod and sudo) or (modprobe and sudo and (\"--remove\" or \"-r\")))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},"id":"cd66a5af-e34b-4bb0-8931-57d0a043f2ef:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cd89602e-9db0-48e3-9391-ae3bf241acd8:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cd89602e-9db0-48e3-9391-ae3bf241acd8:102.0.0.json new file mode 100644 index 0000000000000..7c5125467ff54 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cd89602e-9db0-48e3-9391-ae3bf241acd8:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Deactivate MFA for an Okta User Account v102.0.0","rule_id":"cd89602e-9db0-48e3-9391-ae3bf241acd8:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to deactivate multi-factor authentication (MFA) for an Okta user. An adversary may deactivate MFA for an Okta user account in order to weaken the authentication requirements for the account.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If the behavior of deactivating MFA for Okta user accounts is expected, consider adding exceptions to this rule to filter false positives."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.mfa.factor.deactivate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"cd89602e-9db0-48e3-9391-ae3bf241acd8:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cd89602e-9db0-48e3-9391-ae3bf241acd8:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cd89602e-9db0-48e3-9391-ae3bf241acd8:102.0.1.json new file mode 100644 index 0000000000000..2a8cb98c1efb1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cd89602e-9db0-48e3-9391-ae3bf241acd8:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Deactivate MFA for an Okta User Account v102.0.1","rule_id":"cd89602e-9db0-48e3-9391-ae3bf241acd8:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to deactivate multi-factor authentication (MFA) for an Okta user. An adversary may deactivate MFA for an Okta user account in order to weaken the authentication requirements for the account.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If the behavior of deactivating MFA for Okta user accounts is expected, consider adding exceptions to this rule to filter false positives."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.mfa.factor.deactivate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"cd89602e-9db0-48e3-9391-ae3bf241acd8:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cd89602e-9db0-48e3-9391-ae3bf241acd8:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cd89602e-9db0-48e3-9391-ae3bf241acd8:102.0.2.json new file mode 100644 index 0000000000000..91f18c36fe7d3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cd89602e-9db0-48e3-9391-ae3bf241acd8:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Deactivate MFA for an Okta User Account v102.0.2","rule_id":"cd89602e-9db0-48e3-9391-ae3bf241acd8:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to deactivate multi-factor authentication (MFA) for an Okta user. An adversary may deactivate MFA for an Okta user account in order to weaken the authentication requirements for the account.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["If the behavior of deactivating MFA for Okta user accounts is expected, consider adding exceptions to this rule to filter false positives."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.mfa.factor.deactivate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"cd89602e-9db0-48e3-9391-ae3bf241acd8:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cdbebdc1-dc97-43c6-a538-f26a20c0a911:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cdbebdc1-dc97-43c6-a538-f26a20c0a911:102.0.0.json new file mode 100644 index 0000000000000..e1816296b42ad --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cdbebdc1-dc97-43c6-a538-f26a20c0a911:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Okta User Session Impersonation v102.0.0","rule_id":"cdbebdc1-dc97-43c6-a538-f26a20c0a911:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A user has initiated a session impersonation granting them access to the environment with the permissions of the user they are impersonating. This would likely indicate Okta administrative access and should only ever occur if requested and expected.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-30m","interval":"15m","references":["https://blog.cloudflare.com/cloudflare-investigation-of-the-january-2022-okta-compromise/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.session.impersonation.initiate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"cdbebdc1-dc97-43c6-a538-f26a20c0a911:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cdbebdc1-dc97-43c6-a538-f26a20c0a911:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cdbebdc1-dc97-43c6-a538-f26a20c0a911:102.0.1.json new file mode 100644 index 0000000000000..1825526525dfd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cdbebdc1-dc97-43c6-a538-f26a20c0a911:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Okta User Session Impersonation v102.0.1","rule_id":"cdbebdc1-dc97-43c6-a538-f26a20c0a911:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A user has initiated a session impersonation granting them access to the environment with the permissions of the user they are impersonating. This would likely indicate Okta administrative access and should only ever occur if requested and expected.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-30m","interval":"15m","references":["https://blog.cloudflare.com/cloudflare-investigation-of-the-january-2022-okta-compromise/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.session.impersonation.initiate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"cdbebdc1-dc97-43c6-a538-f26a20c0a911:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cdbebdc1-dc97-43c6-a538-f26a20c0a911:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cdbebdc1-dc97-43c6-a538-f26a20c0a911:102.0.2.json new file mode 100644 index 0000000000000..201db5ff09983 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cdbebdc1-dc97-43c6-a538-f26a20c0a911:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Okta User Session Impersonation v102.0.2","rule_id":"cdbebdc1-dc97-43c6-a538-f26a20c0a911:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A user has initiated a session impersonation granting them access to the environment with the permissions of the user they are impersonating. This would likely indicate Okta administrative access and should only ever occur if requested and expected.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-30m","interval":"15m","references":["https://blog.cloudflare.com/cloudflare-investigation-of-the-january-2022-okta-compromise/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.session.impersonation.initiate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"cdbebdc1-dc97-43c6-a538-f26a20c0a911:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ce64d965-6cb0-466d-b74f-8d2c76f47f05:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ce64d965-6cb0-466d-b74f-8d2c76f47f05:101.0.0.json new file mode 100644 index 0000000000000..7c8c051ea3d00 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ce64d965-6cb0-466d-b74f-8d2c76f47f05:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"New ActiveSyncAllowedDeviceID Added via PowerShell v101.0.0","rule_id":"ce64d965-6cb0-466d-b74f-8d2c76f47f05:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the Exchange PowerShell cmdlet, Set-CASMailbox, to add a new ActiveSync allowed device. Adversaries may target user email to collect sensitive information.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate exchange system administration activity."],"from":"now-9m","references":["https://www.volexity.com/blog/2020/12/14/dark-halo-leverages-solarwinds-compromise-to-breach-organizations/","https://docs.microsoft.com/en-us/powershell/module/exchange/set-casmailbox?view=exchange-ps"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.002","name":"Additional Email Delegate Permissions","reference":"https://attack.mitre.org/techniques/T1098/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name: (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and process.args : \"Set-CASMailbox*ActiveSyncAllowedDeviceIDs*\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"ce64d965-6cb0-466d-b74f-8d2c76f47f05:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ce64d965-6cb0-466d-b74f-8d2c76f47f05:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ce64d965-6cb0-466d-b74f-8d2c76f47f05:101.0.1.json new file mode 100644 index 0000000000000..27fddbebb41c4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ce64d965-6cb0-466d-b74f-8d2c76f47f05:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"New ActiveSyncAllowedDeviceID Added via PowerShell v101.0.1","rule_id":"ce64d965-6cb0-466d-b74f-8d2c76f47f05:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the Exchange PowerShell cmdlet, Set-CASMailbox, to add a new ActiveSync allowed device. Adversaries may target user email to collect sensitive information.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate exchange system administration activity."],"from":"now-9m","references":["https://www.volexity.com/blog/2020/12/14/dark-halo-leverages-solarwinds-compromise-to-breach-organizations/","https://docs.microsoft.com/en-us/powershell/module/exchange/set-casmailbox?view=exchange-ps"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.002","name":"Additional Email Delegate Permissions","reference":"https://attack.mitre.org/techniques/T1098/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name: (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and process.args : \"Set-CASMailbox*ActiveSyncAllowedDeviceIDs*\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"ce64d965-6cb0-466d-b74f-8d2c76f47f05:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ce64d965-6cb0-466d-b74f-8d2c76f47f05:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ce64d965-6cb0-466d-b74f-8d2c76f47f05:101.0.2.json new file mode 100644 index 0000000000000..e298957927f33 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ce64d965-6cb0-466d-b74f-8d2c76f47f05:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"New ActiveSyncAllowedDeviceID Added via PowerShell v101.0.2","rule_id":"ce64d965-6cb0-466d-b74f-8d2c76f47f05:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the Exchange PowerShell cmdlet, Set-CASMailbox, to add a new ActiveSync allowed device. Adversaries may target user email to collect sensitive information.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Legitimate exchange system administration activity."],"from":"now-9m","references":["https://www.volexity.com/blog/2020/12/14/dark-halo-leverages-solarwinds-compromise-to-breach-organizations/","https://docs.microsoft.com/en-us/powershell/module/exchange/set-casmailbox?view=exchange-ps"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/","subtechnique":[{"id":"T1098.002","name":"Additional Email Delegate Permissions","reference":"https://attack.mitre.org/techniques/T1098/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name: (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and process.args : \"Set-CASMailbox*ActiveSyncAllowedDeviceIDs*\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"ce64d965-6cb0-466d-b74f-8d2c76f47f05:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cf53f532-9cc9-445a-9ae7-fced307ec53c:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cf53f532-9cc9-445a-9ae7-fced307ec53c:101.0.0.json new file mode 100644 index 0000000000000..9fc474e97da9a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cf53f532-9cc9-445a-9ae7-fced307ec53c:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Cobalt Strike Command and Control Beacon v101.0.0","rule_id":"cf53f532-9cc9-445a-9ae7-fced307ec53c:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Cobalt Strike is a threat emulation platform commonly modified and used by adversaries to conduct network attack and exploitation campaigns. This rule detects a network activity algorithm leveraged by Cobalt Strike implant beacons for command and control.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Threat intel\n\nThis activity has been observed in FIN7 campaigns.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This rule should be tailored to either exclude systems, as sources or destinations, in which this behavior is expected."],"from":"now-9m","references":["https://blog.morphisec.com/fin7-attacks-restaurant-industry","https://www.fireeye.com/blog/threat-research/2017/04/fin7-phishing-lnk.html","https://www.elastic.co/security-labs/collecting-cobalt-strike-beacons-with-the-elastic-stack"],"tags":["Elastic","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/"},{"id":"T1568","name":"Dynamic Resolution","reference":"https://attack.mitre.org/techniques/T1568/","subtechnique":[{"id":"T1568.002","name":"Domain Generation Algorithms","reference":"https://attack.mitre.org/techniques/T1568/002/"}]}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"lucene","query":"event.category:(network OR network_traffic) AND type:(tls OR http) AND network.transport:tcp AND destination.domain:/[a-z]{3}.stage.[0-9]{8}\\..*/\n"},"id":"cf53f532-9cc9-445a-9ae7-fced307ec53c:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cf53f532-9cc9-445a-9ae7-fced307ec53c:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cf53f532-9cc9-445a-9ae7-fced307ec53c:101.0.1.json new file mode 100644 index 0000000000000..672035c6a3fc8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cf53f532-9cc9-445a-9ae7-fced307ec53c:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Cobalt Strike Command and Control Beacon v101.0.1","rule_id":"cf53f532-9cc9-445a-9ae7-fced307ec53c:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Cobalt Strike is a threat emulation platform commonly modified and used by adversaries to conduct network attack and exploitation campaigns. This rule detects a network activity algorithm leveraged by Cobalt Strike implant beacons for command and control.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Threat intel\n\nThis activity has been observed in FIN7 campaigns.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This rule should be tailored to either exclude systems, as sources or destinations, in which this behavior is expected."],"from":"now-9m","references":["https://blog.morphisec.com/fin7-attacks-restaurant-industry","https://www.fireeye.com/blog/threat-research/2017/04/fin7-phishing-lnk.html","https://www.elastic.co/security-labs/collecting-cobalt-strike-beacons-with-the-elastic-stack"],"tags":["Elastic","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/"},{"id":"T1568","name":"Dynamic Resolution","reference":"https://attack.mitre.org/techniques/T1568/","subtechnique":[{"id":"T1568.002","name":"Domain Generation Algorithms","reference":"https://attack.mitre.org/techniques/T1568/002/"}]}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"lucene","query":"event.category:(network OR network_traffic) AND type:(tls OR http) AND network.transport:tcp AND destination.domain:/[a-z]{3}.stage.[0-9]{8}\\..*/\n"},"id":"cf53f532-9cc9-445a-9ae7-fced307ec53c:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cf53f532-9cc9-445a-9ae7-fced307ec53c:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cf53f532-9cc9-445a-9ae7-fced307ec53c:101.0.2.json new file mode 100644 index 0000000000000..e13a1efd71aa6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cf53f532-9cc9-445a-9ae7-fced307ec53c:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Cobalt Strike Command and Control Beacon v101.0.2","rule_id":"cf53f532-9cc9-445a-9ae7-fced307ec53c:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Cobalt Strike is a threat emulation platform commonly modified and used by adversaries to conduct network attack and exploitation campaigns. This rule detects a network activity algorithm leveraged by Cobalt Strike implant beacons for command and control.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Threat intel\n\nThis activity has been observed in FIN7 campaigns.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This rule should be tailored to either exclude systems, as sources or destinations, in which this behavior is expected."],"from":"now-9m","references":["https://blog.morphisec.com/fin7-attacks-restaurant-industry","https://www.fireeye.com/blog/threat-research/2017/04/fin7-phishing-lnk.html","https://www.elastic.co/security-labs/collecting-cobalt-strike-beacons-with-the-elastic-stack"],"tags":["Elastic","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/"},{"id":"T1568","name":"Dynamic Resolution","reference":"https://attack.mitre.org/techniques/T1568/","subtechnique":[{"id":"T1568.002","name":"Domain Generation Algorithms","reference":"https://attack.mitre.org/techniques/T1568/002/"}]}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"lucene","query":"event.category:(network OR network_traffic) AND type:(tls OR http) AND network.transport:tcp AND destination.domain:/[a-z]{3}.stage.[0-9]{8}\\..*/\n"},"id":"cf53f532-9cc9-445a-9ae7-fced307ec53c:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cf549724-c577-4fd6-8f9b-d1b8ec519ec0:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cf549724-c577-4fd6-8f9b-d1b8ec519ec0:101.0.0.json new file mode 100644 index 0000000000000..53ad2c17c6d69 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cf549724-c577-4fd6-8f9b-d1b8ec519ec0:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Domain Added to Google Workspace Trusted Domains v101.0.0","rule_id":"cf549724-c577-4fd6-8f9b-d1b8ec519ec0:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a domain is added to the list of trusted Google Workspace domains. An adversary may add a trusted domain in order to collect and exfiltrate data from their target’s organization with less restrictive security controls.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted domains may be added by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/6160020?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:ADD_TRUSTED_DOMAINS\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"cf549724-c577-4fd6-8f9b-d1b8ec519ec0:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cf549724-c577-4fd6-8f9b-d1b8ec519ec0:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cf549724-c577-4fd6-8f9b-d1b8ec519ec0:101.0.1.json new file mode 100644 index 0000000000000..8ff74d994b256 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cf549724-c577-4fd6-8f9b-d1b8ec519ec0:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Domain Added to Google Workspace Trusted Domains v101.0.1","rule_id":"cf549724-c577-4fd6-8f9b-d1b8ec519ec0:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a domain is added to the list of trusted Google Workspace domains. An adversary may add a trusted domain in order to collect and exfiltrate data from their target’s organization with less restrictive security controls.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted domains may be added by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/6160020?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:ADD_TRUSTED_DOMAINS\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"cf549724-c577-4fd6-8f9b-d1b8ec519ec0:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cf549724-c577-4fd6-8f9b-d1b8ec519ec0:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cf549724-c577-4fd6-8f9b-d1b8ec519ec0:101.0.2.json new file mode 100644 index 0000000000000..1afa9f2cc3d67 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cf549724-c577-4fd6-8f9b-d1b8ec519ec0:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Domain Added to Google Workspace Trusted Domains v101.0.2","rule_id":"cf549724-c577-4fd6-8f9b-d1b8ec519ec0:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a domain is added to the list of trusted Google Workspace domains. An adversary may add a trusted domain in order to collect and exfiltrate data from their target’s organization with less restrictive security controls.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted domains may be added by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","references":["https://support.google.com/a/answer/6160020?hl=en"],"tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Configuration Audit","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:ADD_TRUSTED_DOMAINS\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"cf549724-c577-4fd6-8f9b-d1b8ec519ec0:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cff92c41-2225-4763-b4ce-6f71e5bda5e6:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cff92c41-2225-4763-b4ce-6f71e5bda5e6:102.0.0.json new file mode 100644 index 0000000000000..aa81b73052872 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cff92c41-2225-4763-b4ce-6f71e5bda5e6:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Execution from Unusual Directory - Command Line v102.0.0","rule_id":"cff92c41-2225-4763-b4ce-6f71e5bda5e6:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies process execution from suspicious default Windows directories. This may be abused by adversaries to hide malware in trusted paths.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Execution from Unusual Directory - Command Line\n\nThis rule looks for the execution of scripts from unusual directories. Attackers can use system or application paths to\nhide malware and make the execution less suspicious.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the command line to determine which commands or scripts were executed.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the script using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination\nof parent process executable and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n\nThis is related to the `Process Execution from an Unusual Directory rule`.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.005","name":"Match Legitimate Name or Location","reference":"https://attack.mitre.org/techniques/T1036/005/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"wscript.exe\",\n \"cscript.exe\",\n \"rundll32.exe\",\n \"regsvr32.exe\",\n \"cmstp.exe\",\n \"RegAsm.exe\",\n \"installutil.exe\",\n \"mshta.exe\",\n \"RegSvcs.exe\",\n \"powershell.exe\",\n \"pwsh.exe\",\n \"cmd.exe\") and\n\n /* add suspicious execution paths here */\n process.args : (\"C:\\\\PerfLogs\\\\*\",\n \"C:\\\\Users\\\\Public\\\\*\",\n \"C:\\\\Windows\\\\Tasks\\\\*\",\n \"C:\\\\Intel\\\\*\",\n \"C:\\\\AMD\\\\Temp\\\\*\",\n \"C:\\\\Windows\\\\AppReadiness\\\\*\",\n \"C:\\\\Windows\\\\ServiceState\\\\*\",\n \"C:\\\\Windows\\\\security\\\\*\",\n \"C:\\\\Windows\\\\IdentityCRL\\\\*\",\n \"C:\\\\Windows\\\\Branding\\\\*\",\n \"C:\\\\Windows\\\\csc\\\\*\",\n \"C:\\\\Windows\\\\DigitalLocker\\\\*\",\n \"C:\\\\Windows\\\\en-US\\\\*\",\n \"C:\\\\Windows\\\\wlansvc\\\\*\",\n \"C:\\\\Windows\\\\Prefetch\\\\*\",\n \"C:\\\\Windows\\\\Fonts\\\\*\",\n \"C:\\\\Windows\\\\diagnostics\\\\*\",\n \"C:\\\\Windows\\\\TAPI\\\\*\",\n \"C:\\\\Windows\\\\INF\\\\*\",\n \"C:\\\\Windows\\\\System32\\\\Speech\\\\*\",\n \"C:\\\\windows\\\\tracing\\\\*\",\n \"c:\\\\windows\\\\IME\\\\*\",\n \"c:\\\\Windows\\\\Performance\\\\*\",\n \"c:\\\\windows\\\\intel\\\\*\",\n \"c:\\\\windows\\\\ms\\\\*\",\n \"C:\\\\Windows\\\\dot3svc\\\\*\",\n \"C:\\\\Windows\\\\panther\\\\*\",\n \"C:\\\\Windows\\\\RemotePackages\\\\*\",\n \"C:\\\\Windows\\\\OCR\\\\*\",\n \"C:\\\\Windows\\\\appcompat\\\\*\",\n \"C:\\\\Windows\\\\apppatch\\\\*\",\n \"C:\\\\Windows\\\\addins\\\\*\",\n \"C:\\\\Windows\\\\Setup\\\\*\",\n \"C:\\\\Windows\\\\Help\\\\*\",\n \"C:\\\\Windows\\\\SKB\\\\*\",\n \"C:\\\\Windows\\\\Vss\\\\*\",\n \"C:\\\\Windows\\\\servicing\\\\*\",\n \"C:\\\\Windows\\\\CbsTemp\\\\*\",\n \"C:\\\\Windows\\\\Logs\\\\*\",\n \"C:\\\\Windows\\\\WaaS\\\\*\",\n \"C:\\\\Windows\\\\twain_32\\\\*\",\n \"C:\\\\Windows\\\\ShellExperiences\\\\*\",\n \"C:\\\\Windows\\\\ShellComponents\\\\*\",\n \"C:\\\\Windows\\\\PLA\\\\*\",\n \"C:\\\\Windows\\\\Migration\\\\*\",\n \"C:\\\\Windows\\\\debug\\\\*\",\n \"C:\\\\Windows\\\\Cursors\\\\*\",\n \"C:\\\\Windows\\\\Containers\\\\*\",\n \"C:\\\\Windows\\\\Boot\\\\*\",\n \"C:\\\\Windows\\\\bcastdvr\\\\*\",\n \"C:\\\\Windows\\\\TextInput\\\\*\",\n \"C:\\\\Windows\\\\security\\\\*\",\n \"C:\\\\Windows\\\\schemas\\\\*\",\n \"C:\\\\Windows\\\\SchCache\\\\*\",\n \"C:\\\\Windows\\\\Resources\\\\*\",\n \"C:\\\\Windows\\\\rescache\\\\*\",\n \"C:\\\\Windows\\\\Provisioning\\\\*\",\n \"C:\\\\Windows\\\\PrintDialog\\\\*\",\n \"C:\\\\Windows\\\\PolicyDefinitions\\\\*\",\n \"C:\\\\Windows\\\\media\\\\*\",\n \"C:\\\\Windows\\\\Globalization\\\\*\",\n \"C:\\\\Windows\\\\L2Schemas\\\\*\",\n \"C:\\\\Windows\\\\LiveKernelReports\\\\*\",\n \"C:\\\\Windows\\\\ModemLogs\\\\*\",\n \"C:\\\\Windows\\\\ImmersiveControlPanel\\\\*\",\n \"C:\\\\$Recycle.Bin\\\\*\") and\n\n /* noisy FP patterns */\n\n not process.parent.executable : (\"C:\\\\WINDOWS\\\\System32\\\\DriverStore\\\\FileRepository\\\\*\\\\igfxCUIService*.exe\",\n \"C:\\\\Windows\\\\System32\\\\spacedeskService.exe\",\n \"C:\\\\Program Files\\\\Dell\\\\SupportAssistAgent\\\\SRE\\\\SRE.exe\") and\n not (process.name : \"rundll32.exe\" and\n process.args : (\"uxtheme.dll,#64\",\n \"PRINTUI.DLL,PrintUIEntry\",\n \"?:\\\\Windows\\\\System32\\\\FirewallControlPanel.dll,ShowNotificationDialog\",\n \"?:\\\\WINDOWS\\\\system32\\\\Speech\\\\SpeechUX\\\\sapi.cpl\",\n \"?:\\\\Windows\\\\system32\\\\shell32.dll,OpenAs_RunDLL\")) and\n\n not (process.name : \"cscript.exe\" and process.args : \"?:\\\\WINDOWS\\\\system32\\\\calluxxprovider.vbs\") and\n\n not (process.name : \"cmd.exe\" and process.args : \"?:\\\\WINDOWS\\\\system32\\\\powercfg.exe\" and process.args : \"?:\\\\WINDOWS\\\\inf\\\\PowerPlan.log\") and\n\n not (process.name : \"regsvr32.exe\" and process.args : \"?:\\\\Windows\\\\Help\\\\OEM\\\\scripts\\\\checkmui.dll\") and\n\n not (process.name : \"cmd.exe\" and\n process.parent.executable : (\"?:\\\\Windows\\\\System32\\\\oobe\\\\windeploy.exe\",\n \"?:\\\\Program Files (x86)\\\\ossec-agent\\\\wazuh-agent.exe\",\n \"?:\\\\Windows\\\\System32\\\\igfxCUIService.exe\",\n \"?:\\\\Windows\\\\Temp\\\\IE*.tmp\\\\IE*-support\\\\ienrcore.exe\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"cff92c41-2225-4763-b4ce-6f71e5bda5e6:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cff92c41-2225-4763-b4ce-6f71e5bda5e6:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cff92c41-2225-4763-b4ce-6f71e5bda5e6:102.0.1.json new file mode 100644 index 0000000000000..eccdf200df001 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cff92c41-2225-4763-b4ce-6f71e5bda5e6:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Execution from Unusual Directory - Command Line v102.0.1","rule_id":"cff92c41-2225-4763-b4ce-6f71e5bda5e6:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies process execution from suspicious default Windows directories. This may be abused by adversaries to hide malware in trusted paths.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Execution from Unusual Directory - Command Line\n\nThis rule looks for the execution of scripts from unusual directories. Attackers can use system or application paths to\nhide malware and make the execution less suspicious.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the command line to determine which commands or scripts were executed.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the script using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination\nof parent process executable and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n\nThis is related to the `Process Execution from an Unusual Directory rule`.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.005","name":"Match Legitimate Name or Location","reference":"https://attack.mitre.org/techniques/T1036/005/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"wscript.exe\",\n \"cscript.exe\",\n \"rundll32.exe\",\n \"regsvr32.exe\",\n \"cmstp.exe\",\n \"RegAsm.exe\",\n \"installutil.exe\",\n \"mshta.exe\",\n \"RegSvcs.exe\",\n \"powershell.exe\",\n \"pwsh.exe\",\n \"cmd.exe\") and\n\n /* add suspicious execution paths here */\n process.args : (\"C:\\\\PerfLogs\\\\*\",\n \"C:\\\\Users\\\\Public\\\\*\",\n \"C:\\\\Windows\\\\Tasks\\\\*\",\n \"C:\\\\Intel\\\\*\",\n \"C:\\\\AMD\\\\Temp\\\\*\",\n \"C:\\\\Windows\\\\AppReadiness\\\\*\",\n \"C:\\\\Windows\\\\ServiceState\\\\*\",\n \"C:\\\\Windows\\\\security\\\\*\",\n \"C:\\\\Windows\\\\IdentityCRL\\\\*\",\n \"C:\\\\Windows\\\\Branding\\\\*\",\n \"C:\\\\Windows\\\\csc\\\\*\",\n \"C:\\\\Windows\\\\DigitalLocker\\\\*\",\n \"C:\\\\Windows\\\\en-US\\\\*\",\n \"C:\\\\Windows\\\\wlansvc\\\\*\",\n \"C:\\\\Windows\\\\Prefetch\\\\*\",\n \"C:\\\\Windows\\\\Fonts\\\\*\",\n \"C:\\\\Windows\\\\diagnostics\\\\*\",\n \"C:\\\\Windows\\\\TAPI\\\\*\",\n \"C:\\\\Windows\\\\INF\\\\*\",\n \"C:\\\\Windows\\\\System32\\\\Speech\\\\*\",\n \"C:\\\\windows\\\\tracing\\\\*\",\n \"c:\\\\windows\\\\IME\\\\*\",\n \"c:\\\\Windows\\\\Performance\\\\*\",\n \"c:\\\\windows\\\\intel\\\\*\",\n \"c:\\\\windows\\\\ms\\\\*\",\n \"C:\\\\Windows\\\\dot3svc\\\\*\",\n \"C:\\\\Windows\\\\panther\\\\*\",\n \"C:\\\\Windows\\\\RemotePackages\\\\*\",\n \"C:\\\\Windows\\\\OCR\\\\*\",\n \"C:\\\\Windows\\\\appcompat\\\\*\",\n \"C:\\\\Windows\\\\apppatch\\\\*\",\n \"C:\\\\Windows\\\\addins\\\\*\",\n \"C:\\\\Windows\\\\Setup\\\\*\",\n \"C:\\\\Windows\\\\Help\\\\*\",\n \"C:\\\\Windows\\\\SKB\\\\*\",\n \"C:\\\\Windows\\\\Vss\\\\*\",\n \"C:\\\\Windows\\\\servicing\\\\*\",\n \"C:\\\\Windows\\\\CbsTemp\\\\*\",\n \"C:\\\\Windows\\\\Logs\\\\*\",\n \"C:\\\\Windows\\\\WaaS\\\\*\",\n \"C:\\\\Windows\\\\twain_32\\\\*\",\n \"C:\\\\Windows\\\\ShellExperiences\\\\*\",\n \"C:\\\\Windows\\\\ShellComponents\\\\*\",\n \"C:\\\\Windows\\\\PLA\\\\*\",\n \"C:\\\\Windows\\\\Migration\\\\*\",\n \"C:\\\\Windows\\\\debug\\\\*\",\n \"C:\\\\Windows\\\\Cursors\\\\*\",\n \"C:\\\\Windows\\\\Containers\\\\*\",\n \"C:\\\\Windows\\\\Boot\\\\*\",\n \"C:\\\\Windows\\\\bcastdvr\\\\*\",\n \"C:\\\\Windows\\\\TextInput\\\\*\",\n \"C:\\\\Windows\\\\security\\\\*\",\n \"C:\\\\Windows\\\\schemas\\\\*\",\n \"C:\\\\Windows\\\\SchCache\\\\*\",\n \"C:\\\\Windows\\\\Resources\\\\*\",\n \"C:\\\\Windows\\\\rescache\\\\*\",\n \"C:\\\\Windows\\\\Provisioning\\\\*\",\n \"C:\\\\Windows\\\\PrintDialog\\\\*\",\n \"C:\\\\Windows\\\\PolicyDefinitions\\\\*\",\n \"C:\\\\Windows\\\\media\\\\*\",\n \"C:\\\\Windows\\\\Globalization\\\\*\",\n \"C:\\\\Windows\\\\L2Schemas\\\\*\",\n \"C:\\\\Windows\\\\LiveKernelReports\\\\*\",\n \"C:\\\\Windows\\\\ModemLogs\\\\*\",\n \"C:\\\\Windows\\\\ImmersiveControlPanel\\\\*\",\n \"C:\\\\$Recycle.Bin\\\\*\") and\n\n /* noisy FP patterns */\n\n not process.parent.executable : (\"C:\\\\WINDOWS\\\\System32\\\\DriverStore\\\\FileRepository\\\\*\\\\igfxCUIService*.exe\",\n \"C:\\\\Windows\\\\System32\\\\spacedeskService.exe\",\n \"C:\\\\Program Files\\\\Dell\\\\SupportAssistAgent\\\\SRE\\\\SRE.exe\") and\n not (process.name : \"rundll32.exe\" and\n process.args : (\"uxtheme.dll,#64\",\n \"PRINTUI.DLL,PrintUIEntry\",\n \"?:\\\\Windows\\\\System32\\\\FirewallControlPanel.dll,ShowNotificationDialog\",\n \"?:\\\\WINDOWS\\\\system32\\\\Speech\\\\SpeechUX\\\\sapi.cpl\",\n \"?:\\\\Windows\\\\system32\\\\shell32.dll,OpenAs_RunDLL\")) and\n\n not (process.name : \"cscript.exe\" and process.args : \"?:\\\\WINDOWS\\\\system32\\\\calluxxprovider.vbs\") and\n\n not (process.name : \"cmd.exe\" and process.args : \"?:\\\\WINDOWS\\\\system32\\\\powercfg.exe\" and process.args : \"?:\\\\WINDOWS\\\\inf\\\\PowerPlan.log\") and\n\n not (process.name : \"regsvr32.exe\" and process.args : \"?:\\\\Windows\\\\Help\\\\OEM\\\\scripts\\\\checkmui.dll\") and\n\n not (process.name : \"cmd.exe\" and\n process.parent.executable : (\"?:\\\\Windows\\\\System32\\\\oobe\\\\windeploy.exe\",\n \"?:\\\\Program Files (x86)\\\\ossec-agent\\\\wazuh-agent.exe\",\n \"?:\\\\Windows\\\\System32\\\\igfxCUIService.exe\",\n \"?:\\\\Windows\\\\Temp\\\\IE*.tmp\\\\IE*-support\\\\ienrcore.exe\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"cff92c41-2225-4763-b4ce-6f71e5bda5e6:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/cff92c41-2225-4763-b4ce-6f71e5bda5e6:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/cff92c41-2225-4763-b4ce-6f71e5bda5e6:102.0.2.json new file mode 100644 index 0000000000000..d684ed0164231 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/cff92c41-2225-4763-b4ce-6f71e5bda5e6:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Execution from Unusual Directory - Command Line v102.0.2","rule_id":"cff92c41-2225-4763-b4ce-6f71e5bda5e6:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies process execution from suspicious default Windows directories. This may be abused by adversaries to hide malware in trusted paths.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Execution from Unusual Directory - Command Line\n\nThis rule looks for the execution of scripts from unusual directories. Attackers can use system or application paths to\nhide malware and make the execution less suspicious.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine the command line to determine which commands or scripts were executed.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the script using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- If this activity is expected and noisy in your environment, consider adding exceptions — preferably with a combination\nof parent process executable and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\n\nThis is related to the `Process Execution from an Unusual Directory rule`.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.005","name":"Match Legitimate Name or Location","reference":"https://attack.mitre.org/techniques/T1036/005/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"wscript.exe\",\n \"cscript.exe\",\n \"rundll32.exe\",\n \"regsvr32.exe\",\n \"cmstp.exe\",\n \"RegAsm.exe\",\n \"installutil.exe\",\n \"mshta.exe\",\n \"RegSvcs.exe\",\n \"powershell.exe\",\n \"pwsh.exe\",\n \"cmd.exe\") and\n\n /* add suspicious execution paths here */\n process.args : (\"C:\\\\PerfLogs\\\\*\",\n \"C:\\\\Users\\\\Public\\\\*\",\n \"C:\\\\Windows\\\\Tasks\\\\*\",\n \"C:\\\\Intel\\\\*\",\n \"C:\\\\AMD\\\\Temp\\\\*\",\n \"C:\\\\Windows\\\\AppReadiness\\\\*\",\n \"C:\\\\Windows\\\\ServiceState\\\\*\",\n \"C:\\\\Windows\\\\security\\\\*\",\n \"C:\\\\Windows\\\\IdentityCRL\\\\*\",\n \"C:\\\\Windows\\\\Branding\\\\*\",\n \"C:\\\\Windows\\\\csc\\\\*\",\n \"C:\\\\Windows\\\\DigitalLocker\\\\*\",\n \"C:\\\\Windows\\\\en-US\\\\*\",\n \"C:\\\\Windows\\\\wlansvc\\\\*\",\n \"C:\\\\Windows\\\\Prefetch\\\\*\",\n \"C:\\\\Windows\\\\Fonts\\\\*\",\n \"C:\\\\Windows\\\\diagnostics\\\\*\",\n \"C:\\\\Windows\\\\TAPI\\\\*\",\n \"C:\\\\Windows\\\\INF\\\\*\",\n \"C:\\\\Windows\\\\System32\\\\Speech\\\\*\",\n \"C:\\\\windows\\\\tracing\\\\*\",\n \"c:\\\\windows\\\\IME\\\\*\",\n \"c:\\\\Windows\\\\Performance\\\\*\",\n \"c:\\\\windows\\\\intel\\\\*\",\n \"c:\\\\windows\\\\ms\\\\*\",\n \"C:\\\\Windows\\\\dot3svc\\\\*\",\n \"C:\\\\Windows\\\\panther\\\\*\",\n \"C:\\\\Windows\\\\RemotePackages\\\\*\",\n \"C:\\\\Windows\\\\OCR\\\\*\",\n \"C:\\\\Windows\\\\appcompat\\\\*\",\n \"C:\\\\Windows\\\\apppatch\\\\*\",\n \"C:\\\\Windows\\\\addins\\\\*\",\n \"C:\\\\Windows\\\\Setup\\\\*\",\n \"C:\\\\Windows\\\\Help\\\\*\",\n \"C:\\\\Windows\\\\SKB\\\\*\",\n \"C:\\\\Windows\\\\Vss\\\\*\",\n \"C:\\\\Windows\\\\servicing\\\\*\",\n \"C:\\\\Windows\\\\CbsTemp\\\\*\",\n \"C:\\\\Windows\\\\Logs\\\\*\",\n \"C:\\\\Windows\\\\WaaS\\\\*\",\n \"C:\\\\Windows\\\\twain_32\\\\*\",\n \"C:\\\\Windows\\\\ShellExperiences\\\\*\",\n \"C:\\\\Windows\\\\ShellComponents\\\\*\",\n \"C:\\\\Windows\\\\PLA\\\\*\",\n \"C:\\\\Windows\\\\Migration\\\\*\",\n \"C:\\\\Windows\\\\debug\\\\*\",\n \"C:\\\\Windows\\\\Cursors\\\\*\",\n \"C:\\\\Windows\\\\Containers\\\\*\",\n \"C:\\\\Windows\\\\Boot\\\\*\",\n \"C:\\\\Windows\\\\bcastdvr\\\\*\",\n \"C:\\\\Windows\\\\TextInput\\\\*\",\n \"C:\\\\Windows\\\\security\\\\*\",\n \"C:\\\\Windows\\\\schemas\\\\*\",\n \"C:\\\\Windows\\\\SchCache\\\\*\",\n \"C:\\\\Windows\\\\Resources\\\\*\",\n \"C:\\\\Windows\\\\rescache\\\\*\",\n \"C:\\\\Windows\\\\Provisioning\\\\*\",\n \"C:\\\\Windows\\\\PrintDialog\\\\*\",\n \"C:\\\\Windows\\\\PolicyDefinitions\\\\*\",\n \"C:\\\\Windows\\\\media\\\\*\",\n \"C:\\\\Windows\\\\Globalization\\\\*\",\n \"C:\\\\Windows\\\\L2Schemas\\\\*\",\n \"C:\\\\Windows\\\\LiveKernelReports\\\\*\",\n \"C:\\\\Windows\\\\ModemLogs\\\\*\",\n \"C:\\\\Windows\\\\ImmersiveControlPanel\\\\*\",\n \"C:\\\\$Recycle.Bin\\\\*\") and\n\n /* noisy FP patterns */\n\n not process.parent.executable : (\"C:\\\\WINDOWS\\\\System32\\\\DriverStore\\\\FileRepository\\\\*\\\\igfxCUIService*.exe\",\n \"C:\\\\Windows\\\\System32\\\\spacedeskService.exe\",\n \"C:\\\\Program Files\\\\Dell\\\\SupportAssistAgent\\\\SRE\\\\SRE.exe\") and\n not (process.name : \"rundll32.exe\" and\n process.args : (\"uxtheme.dll,#64\",\n \"PRINTUI.DLL,PrintUIEntry\",\n \"?:\\\\Windows\\\\System32\\\\FirewallControlPanel.dll,ShowNotificationDialog\",\n \"?:\\\\WINDOWS\\\\system32\\\\Speech\\\\SpeechUX\\\\sapi.cpl\",\n \"?:\\\\Windows\\\\system32\\\\shell32.dll,OpenAs_RunDLL\")) and\n\n not (process.name : \"cscript.exe\" and process.args : \"?:\\\\WINDOWS\\\\system32\\\\calluxxprovider.vbs\") and\n\n not (process.name : \"cmd.exe\" and process.args : \"?:\\\\WINDOWS\\\\system32\\\\powercfg.exe\" and process.args : \"?:\\\\WINDOWS\\\\inf\\\\PowerPlan.log\") and\n\n not (process.name : \"regsvr32.exe\" and process.args : \"?:\\\\Windows\\\\Help\\\\OEM\\\\scripts\\\\checkmui.dll\") and\n\n not (process.name : \"cmd.exe\" and\n process.parent.executable : (\"?:\\\\Windows\\\\System32\\\\oobe\\\\windeploy.exe\",\n \"?:\\\\Program Files (x86)\\\\ossec-agent\\\\wazuh-agent.exe\",\n \"?:\\\\Windows\\\\System32\\\\igfxCUIService.exe\",\n \"?:\\\\Windows\\\\Temp\\\\IE*.tmp\\\\IE*-support\\\\ienrcore.exe\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"cff92c41-2225-4763-b4ce-6f71e5bda5e6:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d00f33e7-b57d-4023-9952-2db91b1767c4:1.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d00f33e7-b57d-4023-9952-2db91b1767c4:1.0.0.json new file mode 100644 index 0000000000000..356c8f2fd53c8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d00f33e7-b57d-4023-9952-2db91b1767c4:1.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Namespace Manipulation Using Unshare v1.0.0","rule_id":"d00f33e7-b57d-4023-9952-2db91b1767c4:1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious usage of unshare to manipulate system namespaces. Unshare can be utilized to escalate privileges or escape container security boundaries. Threat actors have utilized this binary to allow themselves to escape to the host and access other resources or escalate privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://man7.org/linux/man-pages/man1/unshare.1.html","https://www.crowdstrike.com/blog/cve-2022-0185-kubernetes-container-escape-using-linux-kernel-exploit/"],"tags":["Elastic","Host","Linux","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"language":"eql","query":"process where event.type == \"start\" and event.action == \"exec\" and\nprocess.executable: \"/usr/bin/unshare\" and\nnot process.parent.executable: (\"/usr/bin/udevadm\", \"*/lib/systemd/systemd-udevd\", \"/usr/bin/unshare\") and\nnot process.args : \"/usr/bin/snap\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},"id":"d00f33e7-b57d-4023-9952-2db91b1767c4:1.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d00f33e7-b57d-4023-9952-2db91b1767c4:1.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d00f33e7-b57d-4023-9952-2db91b1767c4:1.0.1.json new file mode 100644 index 0000000000000..8da5f44c5d3ce --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d00f33e7-b57d-4023-9952-2db91b1767c4:1.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Namespace Manipulation Using Unshare v1.0.1","rule_id":"d00f33e7-b57d-4023-9952-2db91b1767c4:1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious usage of unshare to manipulate system namespaces. Unshare can be utilized to escalate privileges or escape container security boundaries. Threat actors have utilized this binary to allow themselves to escape to the host and access other resources or escalate privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://man7.org/linux/man-pages/man1/unshare.1.html","https://www.crowdstrike.com/blog/cve-2022-0185-kubernetes-container-escape-using-linux-kernel-exploit/"],"tags":["Elastic","Host","Linux","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"language":"eql","query":"process where event.type == \"start\" and event.action == \"exec\" and\nprocess.executable: \"/usr/bin/unshare\" and\nnot process.parent.executable: (\"/usr/bin/udevadm\", \"*/lib/systemd/systemd-udevd\", \"/usr/bin/unshare\") and\nnot process.args : \"/usr/bin/snap\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},"id":"d00f33e7-b57d-4023-9952-2db91b1767c4:1.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d00f33e7-b57d-4023-9952-2db91b1767c4:1.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d00f33e7-b57d-4023-9952-2db91b1767c4:1.0.2.json new file mode 100644 index 0000000000000..be5b2b25f672b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d00f33e7-b57d-4023-9952-2db91b1767c4:1.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Namespace Manipulation Using Unshare v1.0.2","rule_id":"d00f33e7-b57d-4023-9952-2db91b1767c4:1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious usage of unshare to manipulate system namespaces. Unshare can be utilized to escalate privileges or escape container security boundaries. Threat actors have utilized this binary to allow themselves to escape to the host and access other resources or escalate privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://man7.org/linux/man-pages/man1/unshare.1.html","https://www.crowdstrike.com/blog/cve-2022-0185-kubernetes-container-escape-using-linux-kernel-exploit/"],"tags":["Elastic","Host","Linux","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/"}]}],"language":"eql","query":"process where event.type == \"start\" and event.action == \"exec\" and\nprocess.executable: \"/usr/bin/unshare\" and\nnot process.parent.executable: (\"/usr/bin/udevadm\", \"*/lib/systemd/systemd-udevd\", \"/usr/bin/unshare\") and\nnot process.args : \"/usr/bin/snap\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},"id":"d00f33e7-b57d-4023-9952-2db91b1767c4:1.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d0e159cf-73e9-40d1-a9ed-077e3158a855:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d0e159cf-73e9-40d1-a9ed-077e3158a855:100.0.0.json new file mode 100644 index 0000000000000..f12e96829de92 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d0e159cf-73e9-40d1-a9ed-077e3158a855:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Registry Persistence via AppInit DLL v100.0.0","rule_id":"d0e159cf-73e9-40d1-a9ed-077e3158a855:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Attackers may maintain persistence by creating registry keys using AppInit DLLs. AppInit DLLs are loaded by every process using the common library, user32.dll.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.010","name":"AppInit DLLs","reference":"https://attack.mitre.org/techniques/T1546/010/"}]}]}],"language":"eql","query":"registry where\n registry.path : (\"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\AppInit_Dlls\",\n \"HKLM\\\\SOFTWARE\\\\Wow6432Node\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\AppInit_Dlls\") and\n not process.executable : (\"C:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"C:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\",\n \"C:\\\\Program Files\\\\Commvault\\\\ContentStore*\\\\Base\\\\cvd.exe\",\n \"C:\\\\Program Files (x86)\\\\Commvault\\\\ContentStore*\\\\Base\\\\cvd.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"d0e159cf-73e9-40d1-a9ed-077e3158a855:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d0e159cf-73e9-40d1-a9ed-077e3158a855:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d0e159cf-73e9-40d1-a9ed-077e3158a855:100.0.1.json new file mode 100644 index 0000000000000..b31f945398e0b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d0e159cf-73e9-40d1-a9ed-077e3158a855:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Registry Persistence via AppInit DLL v100.0.1","rule_id":"d0e159cf-73e9-40d1-a9ed-077e3158a855:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Attackers may maintain persistence by creating registry keys using AppInit DLLs. AppInit DLLs are loaded by every process using the common library, user32.dll.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.010","name":"AppInit DLLs","reference":"https://attack.mitre.org/techniques/T1546/010/"}]}]}],"language":"eql","query":"registry where\n registry.path : (\"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\AppInit_Dlls\",\n \"HKLM\\\\SOFTWARE\\\\Wow6432Node\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\AppInit_Dlls\") and\n not process.executable : (\"C:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"C:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\",\n \"C:\\\\Program Files\\\\Commvault\\\\ContentStore*\\\\Base\\\\cvd.exe\",\n \"C:\\\\Program Files (x86)\\\\Commvault\\\\ContentStore*\\\\Base\\\\cvd.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"d0e159cf-73e9-40d1-a9ed-077e3158a855:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d0e159cf-73e9-40d1-a9ed-077e3158a855:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d0e159cf-73e9-40d1-a9ed-077e3158a855:100.0.2.json new file mode 100644 index 0000000000000..226e96e59cffd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d0e159cf-73e9-40d1-a9ed-077e3158a855:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Registry Persistence via AppInit DLL v100.0.2","rule_id":"d0e159cf-73e9-40d1-a9ed-077e3158a855:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Attackers may maintain persistence by creating registry keys using AppInit DLLs. AppInit DLLs are loaded by every process using the common library, user32.dll.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.010","name":"AppInit DLLs","reference":"https://attack.mitre.org/techniques/T1546/010/"}]}]}],"language":"eql","query":"registry where\n registry.path : (\"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\AppInit_Dlls\",\n \"HKLM\\\\SOFTWARE\\\\Wow6432Node\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows\\\\AppInit_Dlls\") and\n not process.executable : (\"C:\\\\Windows\\\\System32\\\\msiexec.exe\",\n \"C:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\",\n \"C:\\\\Program Files\\\\Commvault\\\\ContentStore*\\\\Base\\\\cvd.exe\",\n \"C:\\\\Program Files (x86)\\\\Commvault\\\\ContentStore*\\\\Base\\\\cvd.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"d0e159cf-73e9-40d1-a9ed-077e3158a855:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d117cbb4-7d56-41b4-b999-bdf8c25648a0:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d117cbb4-7d56-41b4-b999-bdf8c25648a0:102.0.0.json new file mode 100644 index 0000000000000..c64d2ce8ecb3f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d117cbb4-7d56-41b4-b999-bdf8c25648a0:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Symbolic Link to Shadow Copy Created v102.0.0","rule_id":"d117cbb4-7d56-41b4-b999-bdf8c25648a0:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of symbolic links to a shadow copy. Symbolic links can be used to access files in the shadow copy, including sensitive files such as ntds.dit, System Boot Key and browser offline credentials.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Symbolic Link to Shadow Copy Created\n\nShadow copies are backups or snapshots of an endpoint's files or volumes while they are in use. Adversaries may attempt\nto discover and create symbolic links to these shadow copies in order to copy sensitive information offline. If Active\nDirectory (AD) is in use, often the ntds.dit file is a target as it contains password hashes, but an offline copy is\nneeded to extract these hashes and potentially conduct lateral movement.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Determine if a volume shadow copy was recently created on this endpoint.\n- Review privileges of the end user as this requires administrative access.\n- Verify if the ntds.dit file was successfully copied and determine its copy destination.\n- Investigate for registry SYSTEM file copies made recently or saved via Reg.exe.\n- Investigate recent deletions of volume shadow copies.\n- Identify other files potentially copied from volume shadow copy paths directly.\n\n### False positive analysis\n\n- This rule should cause very few false positives. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- NTDS or SAM Database File Copied - 3bc6deaa-fbd4-433a-ae21-3e892f95624f\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the entire domain or the `krbtgt` user was compromised:\n - Activate your incident response plan for total Active Directory compromise which should include, but not be limited\n to, a password reset (twice) of the `krbtgt` user.\n- Locate and remove static files copied from volume shadow copies.\n- Command-Line tool mklink should require administrative access by default unless in developer mode.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\nEnsure advanced audit policies for Windows are enabled, specifically:\nObject Access policies [Event ID 4656](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4656) (Handle to an Object was Requested)\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nSystem Audit Policies >\nObject Access >\nAudit File System (Success,Failure)\nAudit Handle Manipulation (Success,Failure)\n```\n\nThis event will only trigger if symbolic links are created from a new process spawning cmd.exe or powershell.exe with the correct arguments.\nDirect access to a shell and calling symbolic link creation tools will not generate an event matching this rule.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Legitimate administrative activity related to shadow copies."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/mklink","https://2017.zeronights.org/wp-content/uploads/materials/ZN17_Kheirkhabarov_Hunting_for_Credentials_Dumping_in_Windows_Environment.pdf","https://blog.netwrix.com/2021/11/30/extracting-password-hashes-from-the-ntds-dit-file/","https://www.hackingarticles.in/credential-dumping-ntds-dit/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"process where event.type in (\"start\",\"process_created\") and\n process.pe.original_file_name in (\"Cmd.Exe\",\"PowerShell.EXE\") and\n\n /* Create Symbolic Link to Shadow Copies */\n process.args : (\"*mklink*\", \"*SymbolicLink*\") and process.command_line : (\"*HarddiskVolumeShadowCopy*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"Ensure advanced audit policies for Windows are enabled, specifically:\nObject Access policies Event ID 4656 (Handle to an Object was Requested)\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nSystem Audit Policies >\nObject Access >\nAudit File System (Success,Failure)\nAudit Handle Manipulation (Success,Failure)\n```\n\nThis event will only trigger if symbolic links are created from a new process spawning cmd.exe or powershell.exe with the correct arguments.\nDirect access to a shell and calling symbolic link creation tools will not generate an event matching this rule.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"d117cbb4-7d56-41b4-b999-bdf8c25648a0:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d117cbb4-7d56-41b4-b999-bdf8c25648a0:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d117cbb4-7d56-41b4-b999-bdf8c25648a0:102.0.1.json new file mode 100644 index 0000000000000..a57b70e5f22bd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d117cbb4-7d56-41b4-b999-bdf8c25648a0:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Symbolic Link to Shadow Copy Created v102.0.1","rule_id":"d117cbb4-7d56-41b4-b999-bdf8c25648a0:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of symbolic links to a shadow copy. Symbolic links can be used to access files in the shadow copy, including sensitive files such as ntds.dit, System Boot Key and browser offline credentials.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Symbolic Link to Shadow Copy Created\n\nShadow copies are backups or snapshots of an endpoint's files or volumes while they are in use. Adversaries may attempt\nto discover and create symbolic links to these shadow copies in order to copy sensitive information offline. If Active\nDirectory (AD) is in use, often the ntds.dit file is a target as it contains password hashes, but an offline copy is\nneeded to extract these hashes and potentially conduct lateral movement.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Determine if a volume shadow copy was recently created on this endpoint.\n- Review privileges of the end user as this requires administrative access.\n- Verify if the ntds.dit file was successfully copied and determine its copy destination.\n- Investigate for registry SYSTEM file copies made recently or saved via Reg.exe.\n- Investigate recent deletions of volume shadow copies.\n- Identify other files potentially copied from volume shadow copy paths directly.\n\n### False positive analysis\n\n- This rule should cause very few false positives. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- NTDS or SAM Database File Copied - 3bc6deaa-fbd4-433a-ae21-3e892f95624f\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the entire domain or the `krbtgt` user was compromised:\n - Activate your incident response plan for total Active Directory compromise which should include, but not be limited\n to, a password reset (twice) of the `krbtgt` user.\n- Locate and remove static files copied from volume shadow copies.\n- Command-Line tool mklink should require administrative access by default unless in developer mode.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\nEnsure advanced audit policies for Windows are enabled, specifically:\nObject Access policies [Event ID 4656](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4656) (Handle to an Object was Requested)\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nSystem Audit Policies >\nObject Access >\nAudit File System (Success,Failure)\nAudit Handle Manipulation (Success,Failure)\n```\n\nThis event will only trigger if symbolic links are created from a new process spawning cmd.exe or powershell.exe with the correct arguments.\nDirect access to a shell and calling symbolic link creation tools will not generate an event matching this rule.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Legitimate administrative activity related to shadow copies."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/mklink","https://2017.zeronights.org/wp-content/uploads/materials/ZN17_Kheirkhabarov_Hunting_for_Credentials_Dumping_in_Windows_Environment.pdf","https://blog.netwrix.com/2021/11/30/extracting-password-hashes-from-the-ntds-dit-file/","https://www.hackingarticles.in/credential-dumping-ntds-dit/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"process where event.type in (\"start\",\"process_created\") and\n process.pe.original_file_name in (\"Cmd.Exe\",\"PowerShell.EXE\") and\n\n /* Create Symbolic Link to Shadow Copies */\n process.args : (\"*mklink*\", \"*SymbolicLink*\") and process.command_line : (\"*HarddiskVolumeShadowCopy*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"Ensure advanced audit policies for Windows are enabled, specifically:\nObject Access policies Event ID 4656 (Handle to an Object was Requested)\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nSystem Audit Policies >\nObject Access >\nAudit File System (Success,Failure)\nAudit Handle Manipulation (Success,Failure)\n```\n\nThis event will only trigger if symbolic links are created from a new process spawning cmd.exe or powershell.exe with the correct arguments.\nDirect access to a shell and calling symbolic link creation tools will not generate an event matching this rule.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"d117cbb4-7d56-41b4-b999-bdf8c25648a0:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d117cbb4-7d56-41b4-b999-bdf8c25648a0:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d117cbb4-7d56-41b4-b999-bdf8c25648a0:102.0.2.json new file mode 100644 index 0000000000000..78134b1b2a1e9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d117cbb4-7d56-41b4-b999-bdf8c25648a0:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Symbolic Link to Shadow Copy Created v102.0.2","rule_id":"d117cbb4-7d56-41b4-b999-bdf8c25648a0:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of symbolic links to a shadow copy. Symbolic links can be used to access files in the shadow copy, including sensitive files such as ntds.dit, System Boot Key and browser offline credentials.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Symbolic Link to Shadow Copy Created\n\nShadow copies are backups or snapshots of an endpoint's files or volumes while they are in use. Adversaries may attempt\nto discover and create symbolic links to these shadow copies in order to copy sensitive information offline. If Active\nDirectory (AD) is in use, often the ntds.dit file is a target as it contains password hashes, but an offline copy is\nneeded to extract these hashes and potentially conduct lateral movement.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Determine if a volume shadow copy was recently created on this endpoint.\n- Review privileges of the end user as this requires administrative access.\n- Verify if the ntds.dit file was successfully copied and determine its copy destination.\n- Investigate for registry SYSTEM file copies made recently or saved via Reg.exe.\n- Investigate recent deletions of volume shadow copies.\n- Identify other files potentially copied from volume shadow copy paths directly.\n\n### False positive analysis\n\n- This rule should cause very few false positives. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- NTDS or SAM Database File Copied - 3bc6deaa-fbd4-433a-ae21-3e892f95624f\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- If the entire domain or the `krbtgt` user was compromised:\n - Activate your incident response plan for total Active Directory compromise which should include, but not be limited\n to, a password reset (twice) of the `krbtgt` user.\n- Locate and remove static files copied from volume shadow copies.\n- Command-Line tool mklink should require administrative access by default unless in developer mode.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).\n\nEnsure advanced audit policies for Windows are enabled, specifically:\nObject Access policies [Event ID 4656](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4656) (Handle to an Object was Requested)\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nSystem Audit Policies >\nObject Access >\nAudit File System (Success,Failure)\nAudit Handle Manipulation (Success,Failure)\n```\n\nThis event will only trigger if symbolic links are created from a new process spawning cmd.exe or powershell.exe with the correct arguments.\nDirect access to a shell and calling symbolic link creation tools will not generate an event matching this rule.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Legitimate administrative activity related to shadow copies."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/mklink","https://2017.zeronights.org/wp-content/uploads/materials/ZN17_Kheirkhabarov_Hunting_for_Credentials_Dumping_in_Windows_Environment.pdf","https://blog.netwrix.com/2021/11/30/extracting-password-hashes-from-the-ntds-dit-file/","https://www.hackingarticles.in/credential-dumping-ntds-dit/"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"process where event.type in (\"start\",\"process_created\") and\n process.pe.original_file_name in (\"Cmd.Exe\",\"PowerShell.EXE\") and\n\n /* Create Symbolic Link to Shadow Copies */\n process.args : (\"*mklink*\", \"*SymbolicLink*\") and process.command_line : (\"*HarddiskVolumeShadowCopy*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"Ensure advanced audit policies for Windows are enabled, specifically:\nObject Access policies Event ID 4656 (Handle to an Object was Requested)\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nSystem Audit Policies >\nObject Access >\nAudit File System (Success,Failure)\nAudit Handle Manipulation (Success,Failure)\n```\n\nThis event will only trigger if symbolic links are created from a new process spawning cmd.exe or powershell.exe with the correct arguments.\nDirect access to a shell and calling symbolic link creation tools will not generate an event matching this rule.\n\nIf enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"d117cbb4-7d56-41b4-b999-bdf8c25648a0:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d22a85c6-d2ad-4cc4-bf7b-54787473669a:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d22a85c6-d2ad-4cc4-bf7b-54787473669a:100.0.0.json new file mode 100644 index 0000000000000..8ed2339d92540 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d22a85c6-d2ad-4cc4-bf7b-54787473669a:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Microsoft Office Sandbox Evasion v100.0.0","rule_id":"d22a85c6-d2ad-4cc4-bf7b-54787473669a:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a suspicious zip file prepended with special characters. Sandboxed Microsoft Office applications on macOS are allowed to write files that start with special characters, which can be combined with an AutoStart location to achieve sandbox evasion.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://i.blackhat.com/USA-20/Wednesday/us-20-Wardle-Office-Drama-On-macOS.pdf","https://www.mdsec.co.uk/2018/08/escaping-the-sandbox-microsoft-office-on-macos/","https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1497","name":"Virtualization/Sandbox Evasion","reference":"https://attack.mitre.org/techniques/T1497/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and not event.type:deletion and file.name:~$*.zip and host.os.type:macos\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"host.os.type","type":"keyword"}]},"id":"d22a85c6-d2ad-4cc4-bf7b-54787473669a:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d22a85c6-d2ad-4cc4-bf7b-54787473669a:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d22a85c6-d2ad-4cc4-bf7b-54787473669a:100.0.1.json new file mode 100644 index 0000000000000..cce8c7ebad9db --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d22a85c6-d2ad-4cc4-bf7b-54787473669a:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Microsoft Office Sandbox Evasion v100.0.1","rule_id":"d22a85c6-d2ad-4cc4-bf7b-54787473669a:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a suspicious zip file prepended with special characters. Sandboxed Microsoft Office applications on macOS are allowed to write files that start with special characters, which can be combined with an AutoStart location to achieve sandbox evasion.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://i.blackhat.com/USA-20/Wednesday/us-20-Wardle-Office-Drama-On-macOS.pdf","https://www.mdsec.co.uk/2018/08/escaping-the-sandbox-microsoft-office-on-macos/","https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1497","name":"Virtualization/Sandbox Evasion","reference":"https://attack.mitre.org/techniques/T1497/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and not event.type:deletion and file.name:~$*.zip and host.os.type:macos\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"host.os.type","type":"keyword"}]},"id":"d22a85c6-d2ad-4cc4-bf7b-54787473669a:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d22a85c6-d2ad-4cc4-bf7b-54787473669a:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d22a85c6-d2ad-4cc4-bf7b-54787473669a:100.0.2.json new file mode 100644 index 0000000000000..f54f905e668b0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d22a85c6-d2ad-4cc4-bf7b-54787473669a:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Microsoft Office Sandbox Evasion v100.0.2","rule_id":"d22a85c6-d2ad-4cc4-bf7b-54787473669a:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a suspicious zip file prepended with special characters. Sandboxed Microsoft Office applications on macOS are allowed to write files that start with special characters, which can be combined with an AutoStart location to achieve sandbox evasion.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://i.blackhat.com/USA-20/Wednesday/us-20-Wardle-Office-Drama-On-macOS.pdf","https://www.mdsec.co.uk/2018/08/escaping-the-sandbox-microsoft-office-on-macos/","https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1497","name":"Virtualization/Sandbox Evasion","reference":"https://attack.mitre.org/techniques/T1497/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and not event.type:deletion and file.name:~$*.zip and host.os.type:macos\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"host.os.type","type":"keyword"}]},"id":"d22a85c6-d2ad-4cc4-bf7b-54787473669a:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d31f183a-e5b1-451b-8534-ba62bca0b404:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d31f183a-e5b1-451b-8534-ba62bca0b404:102.0.0.json new file mode 100644 index 0000000000000..732d03ef7a18d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d31f183a-e5b1-451b-8534-ba62bca0b404:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Disabling User Account Control via Registry Modification v102.0.0","rule_id":"d31f183a-e5b1-451b-8534-ba62bca0b404:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"User Account Control (UAC) can help mitigate the impact of malware on Windows hosts. With UAC, apps and tasks always run in the security context of a non-administrator account, unless an administrator specifically authorizes administrator-level access to the system. This rule identifies registry value changes to bypass User Access Control (UAC) protection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Disabling User Account Control via Registry Modification\n\nWindows User Account Control (UAC) allows a program to elevate its privileges (tracked as low to high integrity levels)\nto perform a task under administrator-level permissions, possibly by prompting the user for confirmation.\nUAC can deny an operation under high-integrity enforcement, or allow the user to perform the action if they are in the\nlocal administrators group and enter an administrator password when prompted.\n\nFor more information about the UAC and how it works, check the [official Microsoft docs page](https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/how-user-account-control-works).\n\nAttackers may disable UAC to execute code directly in high integrity. This rule identifies registry value changes to\nbypass the UAC protection.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behaviors in the alert timeframe.\n- Investigate abnormal behaviors observed by the subject process such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Analyze non-system processes executed with high integrity after UAC was disabled for unknown or suspicious processes.\n- Retrieve the suspicious processes' executables and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled tasks creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Restore UAC settings to the desired state.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.greyhathacker.net/?p=796","https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/user-account-control-group-policy-and-registry-key-settings","https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/user-account-control-overview"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"registry where event.type == \"change\" and\n registry.path :\n (\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\EnableLUA\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\ConsentPromptBehaviorAdmin\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\PromptOnSecureDesktop\"\n ) and\n registry.data.strings : (\"0\", \"0x00000000\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"d31f183a-e5b1-451b-8534-ba62bca0b404:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d31f183a-e5b1-451b-8534-ba62bca0b404:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d31f183a-e5b1-451b-8534-ba62bca0b404:102.0.1.json new file mode 100644 index 0000000000000..23628eaac03ee --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d31f183a-e5b1-451b-8534-ba62bca0b404:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Disabling User Account Control via Registry Modification v102.0.1","rule_id":"d31f183a-e5b1-451b-8534-ba62bca0b404:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"User Account Control (UAC) can help mitigate the impact of malware on Windows hosts. With UAC, apps and tasks always run in the security context of a non-administrator account, unless an administrator specifically authorizes administrator-level access to the system. This rule identifies registry value changes to bypass User Access Control (UAC) protection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Disabling User Account Control via Registry Modification\n\nWindows User Account Control (UAC) allows a program to elevate its privileges (tracked as low to high integrity levels)\nto perform a task under administrator-level permissions, possibly by prompting the user for confirmation.\nUAC can deny an operation under high-integrity enforcement, or allow the user to perform the action if they are in the\nlocal administrators group and enter an administrator password when prompted.\n\nFor more information about the UAC and how it works, check the [official Microsoft docs page](https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/how-user-account-control-works).\n\nAttackers may disable UAC to execute code directly in high integrity. This rule identifies registry value changes to\nbypass the UAC protection.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behaviors in the alert timeframe.\n- Investigate abnormal behaviors observed by the subject process such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Analyze non-system processes executed with high integrity after UAC was disabled for unknown or suspicious processes.\n- Retrieve the suspicious processes' executables and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled tasks creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Restore UAC settings to the desired state.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.greyhathacker.net/?p=796","https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/user-account-control-group-policy-and-registry-key-settings","https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/user-account-control-overview"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"registry where event.type == \"change\" and\n registry.path :\n (\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\EnableLUA\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\ConsentPromptBehaviorAdmin\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\PromptOnSecureDesktop\"\n ) and\n registry.data.strings : (\"0\", \"0x00000000\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"d31f183a-e5b1-451b-8534-ba62bca0b404:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d31f183a-e5b1-451b-8534-ba62bca0b404:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d31f183a-e5b1-451b-8534-ba62bca0b404:102.0.2.json new file mode 100644 index 0000000000000..afb20405905f0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d31f183a-e5b1-451b-8534-ba62bca0b404:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Disabling User Account Control via Registry Modification v102.0.2","rule_id":"d31f183a-e5b1-451b-8534-ba62bca0b404:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"User Account Control (UAC) can help mitigate the impact of malware on Windows hosts. With UAC, apps and tasks always run in the security context of a non-administrator account, unless an administrator specifically authorizes administrator-level access to the system. This rule identifies registry value changes to bypass User Access Control (UAC) protection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Disabling User Account Control via Registry Modification\n\nWindows User Account Control (UAC) allows a program to elevate its privileges (tracked as low to high integrity levels)\nto perform a task under administrator-level permissions, possibly by prompting the user for confirmation.\nUAC can deny an operation under high-integrity enforcement, or allow the user to perform the action if they are in the\nlocal administrators group and enter an administrator password when prompted.\n\nFor more information about the UAC and how it works, check the [official Microsoft docs page](https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/how-user-account-control-works).\n\nAttackers may disable UAC to execute code directly in high integrity. This rule identifies registry value changes to\nbypass the UAC protection.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behaviors in the alert timeframe.\n- Investigate abnormal behaviors observed by the subject process such as network connections, registry or file\nmodifications, and any spawned child processes.\n- Analyze non-system processes executed with high integrity after UAC was disabled for unknown or suspicious processes.\n- Retrieve the suspicious processes' executables and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled tasks creation.\n - Use the PowerShell `Get-FileHash` cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Restore UAC settings to the desired state.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.greyhathacker.net/?p=796","https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/user-account-control-group-policy-and-registry-key-settings","https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/user-account-control-overview"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"registry where event.type == \"change\" and\n registry.path :\n (\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\EnableLUA\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\ConsentPromptBehaviorAdmin\",\n \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Policies\\\\System\\\\PromptOnSecureDesktop\"\n ) and\n registry.data.strings : (\"0\", \"0x00000000\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"d31f183a-e5b1-451b-8534-ba62bca0b404:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d331bbe2-6db4-4941-80a5-8270db72eb61:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d331bbe2-6db4-4941-80a5-8270db72eb61:102.0.0.json new file mode 100644 index 0000000000000..4e804f9ecdcac --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d331bbe2-6db4-4941-80a5-8270db72eb61:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Clearing Windows Event Logs v102.0.0","rule_id":"d331bbe2-6db4-4941-80a5-8270db72eb61:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to clear or disable Windows event log stores using Windows wevetutil command. This is often done by attackers in an attempt to evade detection or destroy forensic evidence on a system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Clearing Windows Event Logs\n\nWindows event logs are a fundamental data source for security monitoring, forensics, and incident response. Adversaries\ncan tamper, clear, and delete this data to break SIEM detections, cover their tracks, and slow down incident response.\n\nThis rule looks for the execution of the `wevtutil.exe` utility or the `Clear-EventLog` cmdlet to clear event logs.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n - Verify if any other anti-forensics behaviors were observed.\n- Investigate the event logs prior to the action for suspicious behaviors that an attacker may be trying to cover up.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity\nand there are justifications for this action.\n- Analyze whether the cleared event log is pertinent to security and general monitoring. Administrators can clear\nnon-relevant event logs using this mechanism. If this activity is expected and noisy in your environment, consider\nadding exceptions — preferably with a combination of user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n - This activity is potentially done after the adversary achieves its objectives on the host. Ensure that previous\n actions, if any, are investigated accordingly with their response playbooks.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.001","name":"Clear Windows Event Logs","reference":"https://attack.mitre.org/techniques/T1070/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (\n (process.name : \"wevtutil.exe\" or process.pe.original_file_name == \"wevtutil.exe\") and\n process.args : (\"/e:false\", \"cl\", \"clear-log\")\n ) or\n (\n process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and\n process.args : \"Clear-EventLog\"\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"d331bbe2-6db4-4941-80a5-8270db72eb61:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d331bbe2-6db4-4941-80a5-8270db72eb61:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d331bbe2-6db4-4941-80a5-8270db72eb61:102.0.1.json new file mode 100644 index 0000000000000..7e565928212df --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d331bbe2-6db4-4941-80a5-8270db72eb61:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Clearing Windows Event Logs v102.0.1","rule_id":"d331bbe2-6db4-4941-80a5-8270db72eb61:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to clear or disable Windows event log stores using Windows wevetutil command. This is often done by attackers in an attempt to evade detection or destroy forensic evidence on a system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Clearing Windows Event Logs\n\nWindows event logs are a fundamental data source for security monitoring, forensics, and incident response. Adversaries\ncan tamper, clear, and delete this data to break SIEM detections, cover their tracks, and slow down incident response.\n\nThis rule looks for the execution of the `wevtutil.exe` utility or the `Clear-EventLog` cmdlet to clear event logs.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n - Verify if any other anti-forensics behaviors were observed.\n- Investigate the event logs prior to the action for suspicious behaviors that an attacker may be trying to cover up.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity\nand there are justifications for this action.\n- Analyze whether the cleared event log is pertinent to security and general monitoring. Administrators can clear\nnon-relevant event logs using this mechanism. If this activity is expected and noisy in your environment, consider\nadding exceptions — preferably with a combination of user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n - This activity is potentially done after the adversary achieves its objectives on the host. Ensure that previous\n actions, if any, are investigated accordingly with their response playbooks.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.001","name":"Clear Windows Event Logs","reference":"https://attack.mitre.org/techniques/T1070/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (\n (process.name : \"wevtutil.exe\" or process.pe.original_file_name == \"wevtutil.exe\") and\n process.args : (\"/e:false\", \"cl\", \"clear-log\")\n ) or\n (\n process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and\n process.args : \"Clear-EventLog\"\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"d331bbe2-6db4-4941-80a5-8270db72eb61:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d331bbe2-6db4-4941-80a5-8270db72eb61:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d331bbe2-6db4-4941-80a5-8270db72eb61:102.0.2.json new file mode 100644 index 0000000000000..836aad8987533 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d331bbe2-6db4-4941-80a5-8270db72eb61:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Clearing Windows Event Logs v102.0.2","rule_id":"d331bbe2-6db4-4941-80a5-8270db72eb61:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to clear or disable Windows event log stores using Windows wevetutil command. This is often done by attackers in an attempt to evade detection or destroy forensic evidence on a system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Clearing Windows Event Logs\n\nWindows event logs are a fundamental data source for security monitoring, forensics, and incident response. Adversaries\ncan tamper, clear, and delete this data to break SIEM detections, cover their tracks, and slow down incident response.\n\nThis rule looks for the execution of the `wevtutil.exe` utility or the `Clear-EventLog` cmdlet to clear event logs.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n - Verify if any other anti-forensics behaviors were observed.\n- Investigate the event logs prior to the action for suspicious behaviors that an attacker may be trying to cover up.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity\nand there are justifications for this action.\n- Analyze whether the cleared event log is pertinent to security and general monitoring. Administrators can clear\nnon-relevant event logs using this mechanism. If this activity is expected and noisy in your environment, consider\nadding exceptions — preferably with a combination of user and command line conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n - This activity is potentially done after the adversary achieves its objectives on the host. Ensure that previous\n actions, if any, are investigated accordingly with their response playbooks.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.001","name":"Clear Windows Event Logs","reference":"https://attack.mitre.org/techniques/T1070/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (\n (process.name : \"wevtutil.exe\" or process.pe.original_file_name == \"wevtutil.exe\") and\n process.args : (\"/e:false\", \"cl\", \"clear-log\")\n ) or\n (\n process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and\n process.args : \"Clear-EventLog\"\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"d331bbe2-6db4-4941-80a5-8270db72eb61:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d33ea3bf-9a11-463e-bd46-f648f2a0f4b1:1.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d33ea3bf-9a11-463e-bd46-f648f2a0f4b1:1.0.0.json new file mode 100644 index 0000000000000..23d4d41d3f325 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d33ea3bf-9a11-463e-bd46-f648f2a0f4b1:1.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote Windows Service Installed v1.0.0","rule_id":"d33ea3bf-9a11-463e-bd46-f648f2a0f4b1:1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a network logon followed by Windows service creation with same LogonId. This could be indicative of lateral movement, but will be noisy if commonly done by administrators.\"","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"sequence by winlog.logon.id, host.id with maxspan=1m\n[authentication where event.action == \"logged-in\" and winlog.logon.type : \"Network\" and\nevent.outcome==\"success\" and source.ip != null and source.ip != \"127.0.0.1\" and source.ip != \"::1\"]\n[iam where event.action == \"service-installed\" and\n not winlog.event_data.SubjectLogonId : \"0x3e7\" and\n not winlog.event_data.ServiceFileName :\n (\"?:\\\\Windows\\\\ADCR_Agent\\\\adcrsvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\VSSVC.exe\",\n \"?:\\\\Windows\\\\servicing\\\\TrustedInstaller.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Windows\\\\PSEXESVC.EXE\",\n \"?:\\\\Windows\\\\System32\\\\sppsvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\wbem\\\\WmiApSrv.exe\",\n \"?:\\\\WINDOWS\\\\RemoteAuditService.exe\",\n \"?:\\\\Windows\\\\VeeamVssSupport\\\\VeeamGuestHelper.exe\",\n \"?:\\\\Windows\\\\VeeamLogShipper\\\\VeeamLogShipper.exe\",\n \"?:\\\\Windows\\\\CAInvokerService.exe\",\n \"?:\\\\Windows\\\\System32\\\\upfc.exe\",\n \"?:\\\\Windows\\\\AdminArsenal\\\\PDQ*.exe\",\n \"?:\\\\Windows\\\\System32\\\\vds.exe\",\n \"?:\\\\Windows\\\\Veeam\\\\Backup\\\\VeeamDeploymentSvc.exe\",\n \"?:\\\\Windows\\\\ProPatches\\\\Scheduler\\\\STSchedEx.exe\",\n \"?:\\\\Windows\\\\System32\\\\certsrv.exe\",\n \"?:\\\\Windows\\\\eset-remote-install-service.exe\",\n \"?:\\\\Pella Corporation\\\\Pella Order Management\\\\GPAutoSvc.exe\",\n \"?:\\\\Pella Corporation\\\\OSCToGPAutoService\\\\OSCToGPAutoSvc.exe\",\n \"?:\\\\Pella Corporation\\\\Pella Order Management\\\\GPAutoSvc.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\NwxExeSvc\\\\NwxExeSvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\taskhostex.exe\")]\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":false,"name":"winlog.event_data.ServiceFileName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.logon.id","type":"unknown"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}]},"id":"d33ea3bf-9a11-463e-bd46-f648f2a0f4b1:1.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d33ea3bf-9a11-463e-bd46-f648f2a0f4b1:1.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d33ea3bf-9a11-463e-bd46-f648f2a0f4b1:1.0.1.json new file mode 100644 index 0000000000000..4dfd0254f0018 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d33ea3bf-9a11-463e-bd46-f648f2a0f4b1:1.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote Windows Service Installed v1.0.1","rule_id":"d33ea3bf-9a11-463e-bd46-f648f2a0f4b1:1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a network logon followed by Windows service creation with same LogonId. This could be indicative of lateral movement, but will be noisy if commonly done by administrators.\"","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"sequence by winlog.logon.id, host.id with maxspan=1m\n[authentication where event.action == \"logged-in\" and winlog.logon.type : \"Network\" and\nevent.outcome==\"success\" and source.ip != null and source.ip != \"127.0.0.1\" and source.ip != \"::1\"]\n[iam where event.action == \"service-installed\" and\n not winlog.event_data.SubjectLogonId : \"0x3e7\" and\n not winlog.event_data.ServiceFileName :\n (\"?:\\\\Windows\\\\ADCR_Agent\\\\adcrsvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\VSSVC.exe\",\n \"?:\\\\Windows\\\\servicing\\\\TrustedInstaller.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Windows\\\\PSEXESVC.EXE\",\n \"?:\\\\Windows\\\\System32\\\\sppsvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\wbem\\\\WmiApSrv.exe\",\n \"?:\\\\WINDOWS\\\\RemoteAuditService.exe\",\n \"?:\\\\Windows\\\\VeeamVssSupport\\\\VeeamGuestHelper.exe\",\n \"?:\\\\Windows\\\\VeeamLogShipper\\\\VeeamLogShipper.exe\",\n \"?:\\\\Windows\\\\CAInvokerService.exe\",\n \"?:\\\\Windows\\\\System32\\\\upfc.exe\",\n \"?:\\\\Windows\\\\AdminArsenal\\\\PDQ*.exe\",\n \"?:\\\\Windows\\\\System32\\\\vds.exe\",\n \"?:\\\\Windows\\\\Veeam\\\\Backup\\\\VeeamDeploymentSvc.exe\",\n \"?:\\\\Windows\\\\ProPatches\\\\Scheduler\\\\STSchedEx.exe\",\n \"?:\\\\Windows\\\\System32\\\\certsrv.exe\",\n \"?:\\\\Windows\\\\eset-remote-install-service.exe\",\n \"?:\\\\Pella Corporation\\\\Pella Order Management\\\\GPAutoSvc.exe\",\n \"?:\\\\Pella Corporation\\\\OSCToGPAutoService\\\\OSCToGPAutoSvc.exe\",\n \"?:\\\\Pella Corporation\\\\Pella Order Management\\\\GPAutoSvc.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\NwxExeSvc\\\\NwxExeSvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\taskhostex.exe\")]\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":false,"name":"winlog.event_data.ServiceFileName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.logon.id","type":"unknown"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}]},"id":"d33ea3bf-9a11-463e-bd46-f648f2a0f4b1:1.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d33ea3bf-9a11-463e-bd46-f648f2a0f4b1:1.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d33ea3bf-9a11-463e-bd46-f648f2a0f4b1:1.0.2.json new file mode 100644 index 0000000000000..f8a483decd1b1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d33ea3bf-9a11-463e-bd46-f648f2a0f4b1:1.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote Windows Service Installed v1.0.2","rule_id":"d33ea3bf-9a11-463e-bd46-f648f2a0f4b1:1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a network logon followed by Windows service creation with same LogonId. This could be indicative of lateral movement, but will be noisy if commonly done by administrators.\"","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"sequence by winlog.logon.id, host.id with maxspan=1m\n[authentication where event.action == \"logged-in\" and winlog.logon.type : \"Network\" and\nevent.outcome==\"success\" and source.ip != null and source.ip != \"127.0.0.1\" and source.ip != \"::1\"]\n[iam where event.action == \"service-installed\" and\n not winlog.event_data.SubjectLogonId : \"0x3e7\" and\n not winlog.event_data.ServiceFileName :\n (\"?:\\\\Windows\\\\ADCR_Agent\\\\adcrsvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\VSSVC.exe\",\n \"?:\\\\Windows\\\\servicing\\\\TrustedInstaller.exe\",\n \"?:\\\\Windows\\\\System32\\\\svchost.exe\",\n \"?:\\\\Program Files (x86)\\\\*.exe\",\n \"?:\\\\Program Files\\\\*.exe\",\n \"?:\\\\Windows\\\\PSEXESVC.EXE\",\n \"?:\\\\Windows\\\\System32\\\\sppsvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\wbem\\\\WmiApSrv.exe\",\n \"?:\\\\WINDOWS\\\\RemoteAuditService.exe\",\n \"?:\\\\Windows\\\\VeeamVssSupport\\\\VeeamGuestHelper.exe\",\n \"?:\\\\Windows\\\\VeeamLogShipper\\\\VeeamLogShipper.exe\",\n \"?:\\\\Windows\\\\CAInvokerService.exe\",\n \"?:\\\\Windows\\\\System32\\\\upfc.exe\",\n \"?:\\\\Windows\\\\AdminArsenal\\\\PDQ*.exe\",\n \"?:\\\\Windows\\\\System32\\\\vds.exe\",\n \"?:\\\\Windows\\\\Veeam\\\\Backup\\\\VeeamDeploymentSvc.exe\",\n \"?:\\\\Windows\\\\ProPatches\\\\Scheduler\\\\STSchedEx.exe\",\n \"?:\\\\Windows\\\\System32\\\\certsrv.exe\",\n \"?:\\\\Windows\\\\eset-remote-install-service.exe\",\n \"?:\\\\Pella Corporation\\\\Pella Order Management\\\\GPAutoSvc.exe\",\n \"?:\\\\Pella Corporation\\\\OSCToGPAutoService\\\\OSCToGPAutoSvc.exe\",\n \"?:\\\\Pella Corporation\\\\Pella Order Management\\\\GPAutoSvc.exe\",\n \"?:\\\\Windows\\\\SysWOW64\\\\NwxExeSvc\\\\NwxExeSvc.exe\",\n \"?:\\\\Windows\\\\System32\\\\taskhostex.exe\")]\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":false,"name":"winlog.event_data.ServiceFileName","type":"unknown"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.logon.id","type":"unknown"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}]},"id":"d33ea3bf-9a11-463e-bd46-f648f2a0f4b1:1.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d461fac0-43e8-49e2-85ea-3a58fe120b4f:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d461fac0-43e8-49e2-85ea-3a58fe120b4f:100.0.0.json new file mode 100644 index 0000000000000..d736c5e73b5e2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d461fac0-43e8-49e2-85ea-3a58fe120b4f:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Shell Execution via Apple Scripting v100.0.0","rule_id":"d461fac0-43e8-49e2-85ea-3a58fe120b4f:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of the shell process (sh) via scripting (JXA or AppleScript). Adversaries may use the doShellScript functionality in JXA or do shell script in AppleScript to execute system commands.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://developer.apple.com/library/archive/technotes/tn2065/_index.html","https://objectivebythesea.com/v2/talks/OBTS_v2_Thomas.pdf"],"tags":["Elastic","Host","macOS","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"sequence by host.id with maxspan=5s\n [process where event.type in (\"start\", \"process_started\", \"info\") and process.name == \"osascript\"] by process.pid\n [process where event.type in (\"start\", \"process_started\") and process.name == \"sh\" and process.args == \"-c\"] by process.parent.pid\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.pid","type":"long"},{"ecs":true,"name":"process.pid","type":"long"}]},"id":"d461fac0-43e8-49e2-85ea-3a58fe120b4f:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d461fac0-43e8-49e2-85ea-3a58fe120b4f:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d461fac0-43e8-49e2-85ea-3a58fe120b4f:100.0.1.json new file mode 100644 index 0000000000000..b27b0084ebae2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d461fac0-43e8-49e2-85ea-3a58fe120b4f:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Shell Execution via Apple Scripting v100.0.1","rule_id":"d461fac0-43e8-49e2-85ea-3a58fe120b4f:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of the shell process (sh) via scripting (JXA or AppleScript). Adversaries may use the doShellScript functionality in JXA or do shell script in AppleScript to execute system commands.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://developer.apple.com/library/archive/technotes/tn2065/_index.html","https://objectivebythesea.com/v2/talks/OBTS_v2_Thomas.pdf"],"tags":["Elastic","Host","macOS","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"sequence by host.id with maxspan=5s\n [process where event.type in (\"start\", \"process_started\", \"info\") and process.name == \"osascript\"] by process.pid\n [process where event.type in (\"start\", \"process_started\") and process.name == \"sh\" and process.args == \"-c\"] by process.parent.pid\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.pid","type":"long"},{"ecs":true,"name":"process.pid","type":"long"}]},"id":"d461fac0-43e8-49e2-85ea-3a58fe120b4f:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d461fac0-43e8-49e2-85ea-3a58fe120b4f:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d461fac0-43e8-49e2-85ea-3a58fe120b4f:100.0.2.json new file mode 100644 index 0000000000000..174c798707c59 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d461fac0-43e8-49e2-85ea-3a58fe120b4f:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Shell Execution via Apple Scripting v100.0.2","rule_id":"d461fac0-43e8-49e2-85ea-3a58fe120b4f:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of the shell process (sh) via scripting (JXA or AppleScript). Adversaries may use the doShellScript functionality in JXA or do shell script in AppleScript to execute system commands.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://developer.apple.com/library/archive/technotes/tn2065/_index.html","https://objectivebythesea.com/v2/talks/OBTS_v2_Thomas.pdf"],"tags":["Elastic","Host","macOS","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"sequence by host.id with maxspan=5s\n [process where event.type in (\"start\", \"process_started\", \"info\") and process.name == \"osascript\"] by process.pid\n [process where event.type in (\"start\", \"process_started\") and process.name == \"sh\" and process.args == \"-c\"] by process.parent.pid\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.pid","type":"long"},{"ecs":true,"name":"process.pid","type":"long"}]},"id":"d461fac0-43e8-49e2-85ea-3a58fe120b4f:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d48e1c13-4aca-4d1f-a7b1-a9161c0ad86f:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d48e1c13-4aca-4d1f-a7b1-a9161c0ad86f:102.0.0.json new file mode 100644 index 0000000000000..84a38b84843ac --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d48e1c13-4aca-4d1f-a7b1-a9161c0ad86f:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Delete an Okta Application v102.0.0","rule_id":"d48e1c13-4aca-4d1f-a7b1-a9161c0ad86f:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to delete an Okta application. An adversary may attempt to modify, deactivate, or delete an Okta application in order to weaken an organization's security controls or disrupt their business operations.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if your organization's Okta applications are regularly deleted and the behavior is expected."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:application.lifecycle.delete\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"d48e1c13-4aca-4d1f-a7b1-a9161c0ad86f:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d48e1c13-4aca-4d1f-a7b1-a9161c0ad86f:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d48e1c13-4aca-4d1f-a7b1-a9161c0ad86f:102.0.1.json new file mode 100644 index 0000000000000..bea9688757a07 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d48e1c13-4aca-4d1f-a7b1-a9161c0ad86f:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Delete an Okta Application v102.0.1","rule_id":"d48e1c13-4aca-4d1f-a7b1-a9161c0ad86f:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to delete an Okta application. An adversary may attempt to modify, deactivate, or delete an Okta application in order to weaken an organization's security controls or disrupt their business operations.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if your organization's Okta applications are regularly deleted and the behavior is expected."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:application.lifecycle.delete\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"d48e1c13-4aca-4d1f-a7b1-a9161c0ad86f:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d48e1c13-4aca-4d1f-a7b1-a9161c0ad86f:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d48e1c13-4aca-4d1f-a7b1-a9161c0ad86f:102.0.2.json new file mode 100644 index 0000000000000..e9d2d4df264ba --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d48e1c13-4aca-4d1f-a7b1-a9161c0ad86f:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Delete an Okta Application v102.0.2","rule_id":"d48e1c13-4aca-4d1f-a7b1-a9161c0ad86f:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to delete an Okta application. An adversary may attempt to modify, deactivate, or delete an Okta application in order to weaken an organization's security controls or disrupt their business operations.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if your organization's Okta applications are regularly deleted and the behavior is expected."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:application.lifecycle.delete\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"d48e1c13-4aca-4d1f-a7b1-a9161c0ad86f:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d49cc73f-7a16-4def-89ce-9fc7127d7820:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d49cc73f-7a16-4def-89ce-9fc7127d7820:100.0.0.json new file mode 100644 index 0000000000000..0ca437658951b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d49cc73f-7a16-4def-89ce-9fc7127d7820:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Web Application Suspicious Activity: sqlmap User Agent v100.0.0","rule_id":"d49cc73f-7a16-4def-89ce-9fc7127d7820:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This is an example of how to detect an unwanted web client user agent. This search matches the user agent for sqlmap 1.3.11, which is a popular FOSS tool for testing web applications for SQL injection vulnerabilities.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This rule does not indicate that a SQL injection attack occurred, only that the `sqlmap` tool was used. Security scans and tests may result in these errors. If the source is not an authorized security tester, this is generally suspicious or malicious activity."],"references":["http://sqlmap.org/"],"tags":["Elastic","APM"],"type":"query","index":["apm-*-transaction*","traces-apm*"],"language":"kuery","query":"user_agent.original:\"sqlmap/1.3.11#stable (http://sqlmap.org)\"\n","required_fields":[{"ecs":true,"name":"user_agent.original","type":"keyword"}]},"id":"d49cc73f-7a16-4def-89ce-9fc7127d7820:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d49cc73f-7a16-4def-89ce-9fc7127d7820:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d49cc73f-7a16-4def-89ce-9fc7127d7820:100.0.1.json new file mode 100644 index 0000000000000..7467a91b56142 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d49cc73f-7a16-4def-89ce-9fc7127d7820:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Web Application Suspicious Activity: sqlmap User Agent v100.0.1","rule_id":"d49cc73f-7a16-4def-89ce-9fc7127d7820:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This is an example of how to detect an unwanted web client user agent. This search matches the user agent for sqlmap 1.3.11, which is a popular FOSS tool for testing web applications for SQL injection vulnerabilities.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This rule does not indicate that a SQL injection attack occurred, only that the `sqlmap` tool was used. Security scans and tests may result in these errors. If the source is not an authorized security tester, this is generally suspicious or malicious activity."],"references":["http://sqlmap.org/"],"tags":["Elastic","APM"],"type":"query","index":["apm-*-transaction*","traces-apm*"],"language":"kuery","query":"user_agent.original:\"sqlmap/1.3.11#stable (http://sqlmap.org)\"\n","required_fields":[{"ecs":true,"name":"user_agent.original","type":"keyword"}]},"id":"d49cc73f-7a16-4def-89ce-9fc7127d7820:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d49cc73f-7a16-4def-89ce-9fc7127d7820:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d49cc73f-7a16-4def-89ce-9fc7127d7820:100.0.2.json new file mode 100644 index 0000000000000..ffc71845f98f8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d49cc73f-7a16-4def-89ce-9fc7127d7820:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Web Application Suspicious Activity: sqlmap User Agent v100.0.2","rule_id":"d49cc73f-7a16-4def-89ce-9fc7127d7820:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This is an example of how to detect an unwanted web client user agent. This search matches the user agent for sqlmap 1.3.11, which is a popular FOSS tool for testing web applications for SQL injection vulnerabilities.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["This rule does not indicate that a SQL injection attack occurred, only that the `sqlmap` tool was used. Security scans and tests may result in these errors. If the source is not an authorized security tester, this is generally suspicious or malicious activity."],"references":["http://sqlmap.org/"],"tags":["Elastic","APM"],"type":"query","index":["apm-*-transaction*","traces-apm*"],"language":"kuery","query":"user_agent.original:\"sqlmap/1.3.11#stable (http://sqlmap.org)\"\n","required_fields":[{"ecs":true,"name":"user_agent.original","type":"keyword"}]},"id":"d49cc73f-7a16-4def-89ce-9fc7127d7820:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d4af3a06-1e0a-48ec-b96a-faf2309fae46:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d4af3a06-1e0a-48ec-b96a-faf2309fae46:100.0.0.json new file mode 100644 index 0000000000000..a5aed746be522 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d4af3a06-1e0a-48ec-b96a-faf2309fae46:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Linux System Information Discovery Activity v100.0.0","rule_id":"d4af3a06-1e0a-48ec-b96a-faf2309fae46:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for commands related to system information discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used to engage in system information discovery in order to gather detailed information about system configuration and software versions. This may be a precursor to selection of a persistence mechanism or a method of privilege elevation.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user command activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"anomaly_threshold":75,"machine_learning_job_id":["v3_linux_system_information_discovery"],"type":"machine_learning"},"id":"d4af3a06-1e0a-48ec-b96a-faf2309fae46:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d4af3a06-1e0a-48ec-b96a-faf2309fae46:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d4af3a06-1e0a-48ec-b96a-faf2309fae46:100.0.1.json new file mode 100644 index 0000000000000..2656c5d630b62 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d4af3a06-1e0a-48ec-b96a-faf2309fae46:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Linux System Information Discovery Activity v100.0.1","rule_id":"d4af3a06-1e0a-48ec-b96a-faf2309fae46:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for commands related to system information discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used to engage in system information discovery in order to gather detailed information about system configuration and software versions. This may be a precursor to selection of a persistence mechanism or a method of privilege elevation.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user command activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"anomaly_threshold":75,"machine_learning_job_id":["v3_linux_system_information_discovery"],"type":"machine_learning"},"id":"d4af3a06-1e0a-48ec-b96a-faf2309fae46:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d4af3a06-1e0a-48ec-b96a-faf2309fae46:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d4af3a06-1e0a-48ec-b96a-faf2309fae46:100.0.2.json new file mode 100644 index 0000000000000..14f53194794bf --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d4af3a06-1e0a-48ec-b96a-faf2309fae46:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Linux System Information Discovery Activity v100.0.2","rule_id":"d4af3a06-1e0a-48ec-b96a-faf2309fae46:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for commands related to system information discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used to engage in system information discovery in order to gather detailed information about system configuration and software versions. This may be a precursor to selection of a persistence mechanism or a method of privilege elevation.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user command activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"}]}],"anomaly_threshold":75,"machine_learning_job_id":["v3_linux_system_information_discovery"],"type":"machine_learning"},"id":"d4af3a06-1e0a-48ec-b96a-faf2309fae46:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d4b73fa0-9d43-465e-b8bf-50230da6718b:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d4b73fa0-9d43-465e-b8bf-50230da6718b:100.0.0.json new file mode 100644 index 0000000000000..3fedf8ebb56a1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d4b73fa0-9d43-465e-b8bf-50230da6718b:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Source IP for a User to Logon from v100.0.0","rule_id":"d4b73fa0-9d43-465e-b8bf-50230da6718b:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a user logging in from an IP address that is unusual for the user. This can be due to credentialed access via a compromised account when the user and the threat actor are in different locations. An unusual source IP address for a username could also be due to lateral movement when a compromised account is used to pivot between hosts.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Business travelers who roam to new locations may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_rare_source_ip_for_a_user","type":"machine_learning"},"id":"d4b73fa0-9d43-465e-b8bf-50230da6718b:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d4b73fa0-9d43-465e-b8bf-50230da6718b:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d4b73fa0-9d43-465e-b8bf-50230da6718b:100.0.1.json new file mode 100644 index 0000000000000..04a2d06dc1d7a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d4b73fa0-9d43-465e-b8bf-50230da6718b:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Source IP for a User to Logon from v100.0.1","rule_id":"d4b73fa0-9d43-465e-b8bf-50230da6718b:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a user logging in from an IP address that is unusual for the user. This can be due to credentialed access via a compromised account when the user and the threat actor are in different locations. An unusual source IP address for a username could also be due to lateral movement when a compromised account is used to pivot between hosts.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Business travelers who roam to new locations may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_rare_source_ip_for_a_user","type":"machine_learning"},"id":"d4b73fa0-9d43-465e-b8bf-50230da6718b:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d4b73fa0-9d43-465e-b8bf-50230da6718b:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d4b73fa0-9d43-465e-b8bf-50230da6718b:100.0.2.json new file mode 100644 index 0000000000000..36f74169cd945 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d4b73fa0-9d43-465e-b8bf-50230da6718b:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Source IP for a User to Logon from v100.0.2","rule_id":"d4b73fa0-9d43-465e-b8bf-50230da6718b:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected a user logging in from an IP address that is unusual for the user. This can be due to credentialed access via a compromised account when the user and the threat actor are in different locations. An unusual source IP address for a username could also be due to lateral movement when a compromised account is used to pivot between hosts.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Business travelers who roam to new locations may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_rare_source_ip_for_a_user","type":"machine_learning"},"id":"d4b73fa0-9d43-465e-b8bf-50230da6718b:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d563aaba-2e72-462b-8658-3e5ea22db3a6:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d563aaba-2e72-462b-8658-3e5ea22db3a6:100.0.0.json new file mode 100644 index 0000000000000..112bc672e2b53 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d563aaba-2e72-462b-8658-3e5ea22db3a6:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Privilege Escalation via Windir Environment Variable v100.0.0","rule_id":"d563aaba-2e72-462b-8658-3e5ea22db3a6:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a privilege escalation attempt via a rogue Windows directory (Windir) environment variable. This is a known primitive that is often combined with other vulnerabilities to elevate privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.tiraniddo.dev/2017/05/exploiting-environment-variables-in.html"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.007","name":"Path Interception by PATH Environment Variable","reference":"https://attack.mitre.org/techniques/T1574/007/"}]}]}],"language":"eql","query":"registry where registry.path : (\"HKEY_USERS\\\\*\\\\Environment\\\\windir\", \"HKEY_USERS\\\\*\\\\Environment\\\\systemroot\") and\n not registry.data.strings : (\"C:\\\\windows\", \"%SystemRoot%\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"d563aaba-2e72-462b-8658-3e5ea22db3a6:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d563aaba-2e72-462b-8658-3e5ea22db3a6:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d563aaba-2e72-462b-8658-3e5ea22db3a6:100.0.1.json new file mode 100644 index 0000000000000..f9e3d91c444a4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d563aaba-2e72-462b-8658-3e5ea22db3a6:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Privilege Escalation via Windir Environment Variable v100.0.1","rule_id":"d563aaba-2e72-462b-8658-3e5ea22db3a6:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a privilege escalation attempt via a rogue Windows directory (Windir) environment variable. This is a known primitive that is often combined with other vulnerabilities to elevate privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.tiraniddo.dev/2017/05/exploiting-environment-variables-in.html"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.007","name":"Path Interception by PATH Environment Variable","reference":"https://attack.mitre.org/techniques/T1574/007/"}]}]}],"language":"eql","query":"registry where registry.path : (\"HKEY_USERS\\\\*\\\\Environment\\\\windir\", \"HKEY_USERS\\\\*\\\\Environment\\\\systemroot\") and\n not registry.data.strings : (\"C:\\\\windows\", \"%SystemRoot%\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"d563aaba-2e72-462b-8658-3e5ea22db3a6:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d563aaba-2e72-462b-8658-3e5ea22db3a6:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d563aaba-2e72-462b-8658-3e5ea22db3a6:100.0.2.json new file mode 100644 index 0000000000000..566e3aa797485 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d563aaba-2e72-462b-8658-3e5ea22db3a6:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Privilege Escalation via Windir Environment Variable v100.0.2","rule_id":"d563aaba-2e72-462b-8658-3e5ea22db3a6:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a privilege escalation attempt via a rogue Windows directory (Windir) environment variable. This is a known primitive that is often combined with other vulnerabilities to elevate privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.tiraniddo.dev/2017/05/exploiting-environment-variables-in.html"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.007","name":"Path Interception by PATH Environment Variable","reference":"https://attack.mitre.org/techniques/T1574/007/"}]}]}],"language":"eql","query":"registry where registry.path : (\"HKEY_USERS\\\\*\\\\Environment\\\\windir\", \"HKEY_USERS\\\\*\\\\Environment\\\\systemroot\") and\n not registry.data.strings : (\"C:\\\\windows\", \"%SystemRoot%\")\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"d563aaba-2e72-462b-8658-3e5ea22db3a6:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d5d86bf5-cf0c-4c06-b688-53fdc072fdfd:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d5d86bf5-cf0c-4c06-b688-53fdc072fdfd:102.0.0.json new file mode 100644 index 0000000000000..fae77e3b0eabe --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d5d86bf5-cf0c-4c06-b688-53fdc072fdfd:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Delete an Okta Policy Rule v102.0.0","rule_id":"d5d86bf5-cf0c-4c06-b688-53fdc072fdfd:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to delete a rule within an Okta policy. An adversary may attempt to delete an Okta policy rule in order to weaken an organization's security controls.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Okta MFA rules are regularly modified in your organization."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/Security_Policies.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.rule.delete\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"d5d86bf5-cf0c-4c06-b688-53fdc072fdfd:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d5d86bf5-cf0c-4c06-b688-53fdc072fdfd:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d5d86bf5-cf0c-4c06-b688-53fdc072fdfd:102.0.1.json new file mode 100644 index 0000000000000..a63735ed112a3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d5d86bf5-cf0c-4c06-b688-53fdc072fdfd:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Delete an Okta Policy Rule v102.0.1","rule_id":"d5d86bf5-cf0c-4c06-b688-53fdc072fdfd:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to delete a rule within an Okta policy. An adversary may attempt to delete an Okta policy rule in order to weaken an organization's security controls.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Okta MFA rules are regularly modified in your organization."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/Security_Policies.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.rule.delete\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"d5d86bf5-cf0c-4c06-b688-53fdc072fdfd:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d5d86bf5-cf0c-4c06-b688-53fdc072fdfd:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d5d86bf5-cf0c-4c06-b688-53fdc072fdfd:102.0.2.json new file mode 100644 index 0000000000000..ba19f31393901 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d5d86bf5-cf0c-4c06-b688-53fdc072fdfd:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Delete an Okta Policy Rule v102.0.2","rule_id":"d5d86bf5-cf0c-4c06-b688-53fdc072fdfd:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to delete a rule within an Okta policy. An adversary may attempt to delete an Okta policy rule in order to weaken an organization's security controls.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Okta MFA rules are regularly modified in your organization."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/Security_Policies.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:policy.rule.delete\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"d5d86bf5-cf0c-4c06-b688-53fdc072fdfd:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc:101.0.0.json new file mode 100644 index 0000000000000..835fd3f7a63b4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Service Command Lateral Movement v101.0.0","rule_id":"d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of sc.exe to create, modify, or start services on remote hosts. This could be indicative of adversary lateral movement but will be noisy if commonly done by admins.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1569","name":"System Services","reference":"https://attack.mitre.org/techniques/T1569/","subtechnique":[{"id":"T1569.002","name":"Service Execution","reference":"https://attack.mitre.org/techniques/T1569/002/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan = 1m\n [process where event.type == \"start\" and\n (process.name : \"sc.exe\" or process.pe.original_file_name : \"sc.exe\") and\n process.args : \"\\\\\\\\*\" and process.args : (\"binPath=*\", \"binpath=*\") and\n process.args : (\"create\", \"config\", \"failure\", \"start\")]\n [network where process.name : \"sc.exe\" and destination.ip != \"127.0.0.1\"]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}]},"id":"d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc:101.0.1.json new file mode 100644 index 0000000000000..541ec21d31b2d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Service Command Lateral Movement v101.0.1","rule_id":"d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of sc.exe to create, modify, or start services on remote hosts. This could be indicative of adversary lateral movement but will be noisy if commonly done by admins.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1569","name":"System Services","reference":"https://attack.mitre.org/techniques/T1569/","subtechnique":[{"id":"T1569.002","name":"Service Execution","reference":"https://attack.mitre.org/techniques/T1569/002/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan = 1m\n [process where event.type == \"start\" and\n (process.name : \"sc.exe\" or process.pe.original_file_name : \"sc.exe\") and\n process.args : \"\\\\\\\\*\" and process.args : (\"binPath=*\", \"binpath=*\") and\n process.args : (\"create\", \"config\", \"failure\", \"start\")]\n [network where process.name : \"sc.exe\" and destination.ip != \"127.0.0.1\"]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}]},"id":"d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc:101.0.2.json new file mode 100644 index 0000000000000..17b14f47a3e14 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Service Command Lateral Movement v101.0.2","rule_id":"d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of sc.exe to create, modify, or start services on remote hosts. This could be indicative of adversary lateral movement but will be noisy if commonly done by admins.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1569","name":"System Services","reference":"https://attack.mitre.org/techniques/T1569/","subtechnique":[{"id":"T1569.002","name":"Service Execution","reference":"https://attack.mitre.org/techniques/T1569/002/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan = 1m\n [process where event.type == \"start\" and\n (process.name : \"sc.exe\" or process.pe.original_file_name : \"sc.exe\") and\n process.args : \"\\\\\\\\*\" and process.args : (\"binPath=*\", \"binpath=*\") and\n process.args : (\"create\", \"config\", \"failure\", \"start\")]\n [network where process.name : \"sc.exe\" and destination.ip != \"127.0.0.1\"]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}]},"id":"d61cbcf8-1bc1-4cff-85ba-e7b21c5beedc:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d624f0ae-3dd1-4856-9aad-ccfe4d4bfa17:103.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d624f0ae-3dd1-4856-9aad-ccfe4d4bfa17:103.0.0.json new file mode 100644 index 0000000000000..ef896a22725c3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d624f0ae-3dd1-4856-9aad-ccfe4d4bfa17:103.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS CloudWatch Log Stream Deletion v103.0.0","rule_id":"d624f0ae-3dd1-4856-9aad-ccfe4d4bfa17:103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an AWS CloudWatch log stream, which permanently deletes all associated archived log events with the stream.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudWatch Log Stream Deletion\n\nAmazon CloudWatch is a monitoring and observability service that collects monitoring and operational data in the form of\nlogs, metrics, and events for resources and applications. This data can be used to detect anomalous behavior in your environments, set alarms, visualize\nlogs and metrics side by side, take automated actions, troubleshoot issues, and discover insights to keep your\napplications running smoothly.\n\nA log stream is a sequence of log events that share the same source. Each separate source of logs in CloudWatch Logs\nmakes up a separate log stream.\n\nThis rule looks for the deletion of a log stream using the API `DeleteLogStream` action. Attackers can do this to cover\ntheir tracks and impact security monitoring that relies on these sources.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Investigate the deleted log stream's criticality and whether the responsible team is aware of the deletion.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A log stream may be deleted by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Log stream deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/logs/delete-log-stream.html","https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteLogStream.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:logs.amazonaws.com and event.action:DeleteLogStream and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"d624f0ae-3dd1-4856-9aad-ccfe4d4bfa17:103.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d624f0ae-3dd1-4856-9aad-ccfe4d4bfa17:103.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d624f0ae-3dd1-4856-9aad-ccfe4d4bfa17:103.0.1.json new file mode 100644 index 0000000000000..e83698414bb32 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d624f0ae-3dd1-4856-9aad-ccfe4d4bfa17:103.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS CloudWatch Log Stream Deletion v103.0.1","rule_id":"d624f0ae-3dd1-4856-9aad-ccfe4d4bfa17:103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an AWS CloudWatch log stream, which permanently deletes all associated archived log events with the stream.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudWatch Log Stream Deletion\n\nAmazon CloudWatch is a monitoring and observability service that collects monitoring and operational data in the form of\nlogs, metrics, and events for resources and applications. This data can be used to detect anomalous behavior in your environments, set alarms, visualize\nlogs and metrics side by side, take automated actions, troubleshoot issues, and discover insights to keep your\napplications running smoothly.\n\nA log stream is a sequence of log events that share the same source. Each separate source of logs in CloudWatch Logs\nmakes up a separate log stream.\n\nThis rule looks for the deletion of a log stream using the API `DeleteLogStream` action. Attackers can do this to cover\ntheir tracks and impact security monitoring that relies on these sources.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Investigate the deleted log stream's criticality and whether the responsible team is aware of the deletion.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A log stream may be deleted by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Log stream deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/logs/delete-log-stream.html","https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteLogStream.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:logs.amazonaws.com and event.action:DeleteLogStream and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"d624f0ae-3dd1-4856-9aad-ccfe4d4bfa17:103.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d624f0ae-3dd1-4856-9aad-ccfe4d4bfa17:103.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d624f0ae-3dd1-4856-9aad-ccfe4d4bfa17:103.0.2.json new file mode 100644 index 0000000000000..4a88c2bc9b22d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d624f0ae-3dd1-4856-9aad-ccfe4d4bfa17:103.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS CloudWatch Log Stream Deletion v103.0.2","rule_id":"d624f0ae-3dd1-4856-9aad-ccfe4d4bfa17:103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an AWS CloudWatch log stream, which permanently deletes all associated archived log events with the stream.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudWatch Log Stream Deletion\n\nAmazon CloudWatch is a monitoring and observability service that collects monitoring and operational data in the form of\nlogs, metrics, and events for resources and applications. This data can be used to detect anomalous behavior in your environments, set alarms, visualize\nlogs and metrics side by side, take automated actions, troubleshoot issues, and discover insights to keep your\napplications running smoothly.\n\nA log stream is a sequence of log events that share the same source. Each separate source of logs in CloudWatch Logs\nmakes up a separate log stream.\n\nThis rule looks for the deletion of a log stream using the API `DeleteLogStream` action. Attackers can do this to cover\ntheir tracks and impact security monitoring that relies on these sources.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Investigate the deleted log stream's criticality and whether the responsible team is aware of the deletion.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A log stream may be deleted by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Log stream deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/logs/delete-log-stream.html","https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteLogStream.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Log Auditing","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1485","name":"Data Destruction","reference":"https://attack.mitre.org/techniques/T1485/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:logs.amazonaws.com and event.action:DeleteLogStream and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"d624f0ae-3dd1-4856-9aad-ccfe4d4bfa17:103.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d62b64a8-a7c9-43e5-aee3-15a725a794e7:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d62b64a8-a7c9-43e5-aee3-15a725a794e7:102.0.0.json new file mode 100644 index 0000000000000..6f3355bcf12f9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d62b64a8-a7c9-43e5-aee3-15a725a794e7:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Pub/Sub Subscription Creation v102.0.0","rule_id":"d62b64a8-a7c9-43e5-aee3-15a725a794e7:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a subscription in Google Cloud Platform (GCP). In GCP, the publisher-subscriber relationship (Pub/Sub) is an asynchronous messaging service that decouples event-producing and event-processing services. A subscription is a named resource representing the stream of messages to be delivered to the subscribing application.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Subscription creations may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Subscription creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/pubsub/docs/overview"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1530","name":"Data from Cloud Storage Object","reference":"https://attack.mitre.org/techniques/T1530/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.pubsub.v*.Subscriber.CreateSubscription and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"d62b64a8-a7c9-43e5-aee3-15a725a794e7:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d62b64a8-a7c9-43e5-aee3-15a725a794e7:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d62b64a8-a7c9-43e5-aee3-15a725a794e7:102.0.1.json new file mode 100644 index 0000000000000..0365aa1392aea --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d62b64a8-a7c9-43e5-aee3-15a725a794e7:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Pub/Sub Subscription Creation v102.0.1","rule_id":"d62b64a8-a7c9-43e5-aee3-15a725a794e7:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a subscription in Google Cloud Platform (GCP). In GCP, the publisher-subscriber relationship (Pub/Sub) is an asynchronous messaging service that decouples event-producing and event-processing services. A subscription is a named resource representing the stream of messages to be delivered to the subscribing application.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Subscription creations may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Subscription creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/pubsub/docs/overview"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1530","name":"Data from Cloud Storage Object","reference":"https://attack.mitre.org/techniques/T1530/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.pubsub.v*.Subscriber.CreateSubscription and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"d62b64a8-a7c9-43e5-aee3-15a725a794e7:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d62b64a8-a7c9-43e5-aee3-15a725a794e7:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d62b64a8-a7c9-43e5-aee3-15a725a794e7:102.0.2.json new file mode 100644 index 0000000000000..a57760908b71d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d62b64a8-a7c9-43e5-aee3-15a725a794e7:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Pub/Sub Subscription Creation v102.0.2","rule_id":"d62b64a8-a7c9-43e5-aee3-15a725a794e7:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a subscription in Google Cloud Platform (GCP). In GCP, the publisher-subscriber relationship (Pub/Sub) is an asynchronous messaging service that decouples event-producing and event-processing services. A subscription is a named resource representing the stream of messages to be delivered to the subscribing application.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Subscription creations may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Subscription creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/pubsub/docs/overview"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1530","name":"Data from Cloud Storage Object","reference":"https://attack.mitre.org/techniques/T1530/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.pubsub.v*.Subscriber.CreateSubscription and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"d62b64a8-a7c9-43e5-aee3-15a725a794e7:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d68e95ad-1c82-4074-a12a-125fe10ac8ba:1.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d68e95ad-1c82-4074-a12a-125fe10ac8ba:1.0.0.json new file mode 100644 index 0000000000000..1d9e9e8e7b0c1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d68e95ad-1c82-4074-a12a-125fe10ac8ba:1.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"System Information Discovery via Windows Command Shell v1.0.0","rule_id":"d68e95ad-1c82-4074-a12a-125fe10ac8ba:1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of discovery commands to enumerate system info or files and folders using the Windows Command Shell.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"},{"id":"T1083","name":"File and Directory Discovery","reference":"https://attack.mitre.org/techniques/T1083/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.003","name":"Windows Command Shell","reference":"https://attack.mitre.org/techniques/T1059/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"cmd.exe\" and process.args : \"/c\" and process.args : (\"set\", \"dir\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"d68e95ad-1c82-4074-a12a-125fe10ac8ba:1.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d68e95ad-1c82-4074-a12a-125fe10ac8ba:1.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d68e95ad-1c82-4074-a12a-125fe10ac8ba:1.0.1.json new file mode 100644 index 0000000000000..3707cb0227241 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d68e95ad-1c82-4074-a12a-125fe10ac8ba:1.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"System Information Discovery via Windows Command Shell v1.0.1","rule_id":"d68e95ad-1c82-4074-a12a-125fe10ac8ba:1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of discovery commands to enumerate system info or files and folders using the Windows Command Shell.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"},{"id":"T1083","name":"File and Directory Discovery","reference":"https://attack.mitre.org/techniques/T1083/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.003","name":"Windows Command Shell","reference":"https://attack.mitre.org/techniques/T1059/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"cmd.exe\" and process.args : \"/c\" and process.args : (\"set\", \"dir\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"d68e95ad-1c82-4074-a12a-125fe10ac8ba:1.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d68e95ad-1c82-4074-a12a-125fe10ac8ba:1.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d68e95ad-1c82-4074-a12a-125fe10ac8ba:1.0.2.json new file mode 100644 index 0000000000000..01406acea1f3b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d68e95ad-1c82-4074-a12a-125fe10ac8ba:1.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"System Information Discovery via Windows Command Shell v1.0.2","rule_id":"d68e95ad-1c82-4074-a12a-125fe10ac8ba:1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of discovery commands to enumerate system info or files and folders using the Windows Command Shell.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1082","name":"System Information Discovery","reference":"https://attack.mitre.org/techniques/T1082/"},{"id":"T1083","name":"File and Directory Discovery","reference":"https://attack.mitre.org/techniques/T1083/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.003","name":"Windows Command Shell","reference":"https://attack.mitre.org/techniques/T1059/003/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : \"cmd.exe\" and process.args : \"/c\" and process.args : (\"set\", \"dir\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"d68e95ad-1c82-4074-a12a-125fe10ac8ba:1.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d68eb1b5-5f1c-4b6d-9e63-5b6b145cd4aa:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d68eb1b5-5f1c-4b6d-9e63-5b6b145cd4aa:101.0.0.json new file mode 100644 index 0000000000000..286f8e8cf0bfd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d68eb1b5-5f1c-4b6d-9e63-5b6b145cd4aa:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange Anti-Phish Policy Deletion v101.0.0","rule_id":"d68eb1b5-5f1c-4b6d-9e63-5b6b145cd4aa:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an anti-phishing policy in Microsoft 365. By default, Microsoft 365 includes built-in features that help protect users from phishing attacks. Anti-phishing polices increase this protection by refining settings to better detect and prevent attacks.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An anti-phishing policy may be deleted by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-antiphishpolicy?view=exchange-ps","https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/set-up-anti-phishing-policies?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Remove-AntiPhishPolicy\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"d68eb1b5-5f1c-4b6d-9e63-5b6b145cd4aa:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d68eb1b5-5f1c-4b6d-9e63-5b6b145cd4aa:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d68eb1b5-5f1c-4b6d-9e63-5b6b145cd4aa:101.0.1.json new file mode 100644 index 0000000000000..84756417463e4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d68eb1b5-5f1c-4b6d-9e63-5b6b145cd4aa:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange Anti-Phish Policy Deletion v101.0.1","rule_id":"d68eb1b5-5f1c-4b6d-9e63-5b6b145cd4aa:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an anti-phishing policy in Microsoft 365. By default, Microsoft 365 includes built-in features that help protect users from phishing attacks. Anti-phishing polices increase this protection by refining settings to better detect and prevent attacks.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An anti-phishing policy may be deleted by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-antiphishpolicy?view=exchange-ps","https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/set-up-anti-phishing-policies?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Remove-AntiPhishPolicy\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"d68eb1b5-5f1c-4b6d-9e63-5b6b145cd4aa:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d68eb1b5-5f1c-4b6d-9e63-5b6b145cd4aa:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d68eb1b5-5f1c-4b6d-9e63-5b6b145cd4aa:101.0.2.json new file mode 100644 index 0000000000000..c4e69d1442b15 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d68eb1b5-5f1c-4b6d-9e63-5b6b145cd4aa:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange Anti-Phish Policy Deletion v101.0.2","rule_id":"d68eb1b5-5f1c-4b6d-9e63-5b6b145cd4aa:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an anti-phishing policy in Microsoft 365. By default, Microsoft 365 includes built-in features that help protect users from phishing attacks. Anti-phishing polices increase this protection by refining settings to better detect and prevent attacks.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An anti-phishing policy may be deleted by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-antiphishpolicy?view=exchange-ps","https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/set-up-anti-phishing-policies?view=o365-worldwide"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Remove-AntiPhishPolicy\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"d68eb1b5-5f1c-4b6d-9e63-5b6b145cd4aa:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d703a5af-d5b0-43bd-8ddb-7a5d500b7da5:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d703a5af-d5b0-43bd-8ddb-7a5d500b7da5:102.0.0.json new file mode 100644 index 0000000000000..d953d07e138e7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d703a5af-d5b0-43bd-8ddb-7a5d500b7da5:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Modification of WDigest Security Provider v102.0.0","rule_id":"d703a5af-d5b0-43bd-8ddb-7a5d500b7da5:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to modify the WDigest security provider in the registry to force the user's password to be stored in clear text in memory. This behavior can be indicative of an adversary attempting to weaken the security configuration of an endpoint. Once the UseLogonCredential value is modified, the adversary may attempt to dump clear text passwords from memory.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Modification of WDigest Security Provider\n\nIn Windows XP, Microsoft added support for a protocol known as WDigest. The WDigest protocol allows clients to send\ncleartext credentials to Hypertext Transfer Protocol (HTTP) and Simple Authentication Security Layer (SASL) applications\nbased on RFC 2617 and 2831. Windows versions up to 8 and 2012 store logon credentials in memory in plaintext by default,\nwhich is no longer the case with newer Windows versions.\n\nStill, attackers can force WDigest to store the passwords insecurely on the memory by modifying the\n`HKLM\\SYSTEM\\*ControlSet*\\Control\\SecurityProviders\\WDigest\\UseLogonCredential` registry key. This activity is\ncommonly related to the execution of credential dumping tools.\n\n#### Possible investigation steps\n\n- It is unlikely that the monitored registry key was modified legitimately in newer versions of Windows. Analysts should\ntreat any activity triggered from this rule with high priority as it typically represents an active adversary.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Determine if credential dumping tools were run on the host, and retrieve and analyze suspicious executables:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Use process name, command line, and file hash to search for occurrences on other hosts.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (for example, 4624) to the target\nhost after the registry modification.\n\n### False positive analysis\n\n- This modification should not happen legitimately. Any potential benign true positive (B-TP) should be mapped and\nmonitored by the security team, as these modifications expose the entire domain to credential compromises and\nconsequently unauthorized access.\n\n### Related rules\n\n- Mimikatz Powershell Module Activity - ac96ceb8-4399-4191-af1d-4feeac1f1f46\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system and restore compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.csoonline.com/article/3438824/how-to-detect-and-halt-credential-theft-via-windows-wdigest.html","https://www.praetorian.com/blog/mitigating-mimikatz-wdigest-cleartext-credential-theft?edition=2019","https://frsecure.com/compromised-credentials-response-playbook","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"registry where event.type : (\"creation\", \"change\") and\n registry.path : (\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\SecurityProviders\\\\WDigest\\\\UseLogonCredential\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\SecurityProviders\\\\WDigest\\\\UseLogonCredential\"\n ) and registry.data.strings : (\"1\", \"0x00000001\") and\n not (process.executable : \"?:\\\\Windows\\\\System32\\\\svchost.exe\" and user.id : \"S-1-5-18\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"d703a5af-d5b0-43bd-8ddb-7a5d500b7da5:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d703a5af-d5b0-43bd-8ddb-7a5d500b7da5:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d703a5af-d5b0-43bd-8ddb-7a5d500b7da5:102.0.1.json new file mode 100644 index 0000000000000..c2526e26785d2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d703a5af-d5b0-43bd-8ddb-7a5d500b7da5:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Modification of WDigest Security Provider v102.0.1","rule_id":"d703a5af-d5b0-43bd-8ddb-7a5d500b7da5:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to modify the WDigest security provider in the registry to force the user's password to be stored in clear text in memory. This behavior can be indicative of an adversary attempting to weaken the security configuration of an endpoint. Once the UseLogonCredential value is modified, the adversary may attempt to dump clear text passwords from memory.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Modification of WDigest Security Provider\n\nIn Windows XP, Microsoft added support for a protocol known as WDigest. The WDigest protocol allows clients to send\ncleartext credentials to Hypertext Transfer Protocol (HTTP) and Simple Authentication Security Layer (SASL) applications\nbased on RFC 2617 and 2831. Windows versions up to 8 and 2012 store logon credentials in memory in plaintext by default,\nwhich is no longer the case with newer Windows versions.\n\nStill, attackers can force WDigest to store the passwords insecurely on the memory by modifying the\n`HKLM\\SYSTEM\\*ControlSet*\\Control\\SecurityProviders\\WDigest\\UseLogonCredential` registry key. This activity is\ncommonly related to the execution of credential dumping tools.\n\n#### Possible investigation steps\n\n- It is unlikely that the monitored registry key was modified legitimately in newer versions of Windows. Analysts should\ntreat any activity triggered from this rule with high priority as it typically represents an active adversary.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Determine if credential dumping tools were run on the host, and retrieve and analyze suspicious executables:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Use process name, command line, and file hash to search for occurrences on other hosts.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (for example, 4624) to the target\nhost after the registry modification.\n\n### False positive analysis\n\n- This modification should not happen legitimately. Any potential benign true positive (B-TP) should be mapped and\nmonitored by the security team, as these modifications expose the entire domain to credential compromises and\nconsequently unauthorized access.\n\n### Related rules\n\n- Mimikatz Powershell Module Activity - ac96ceb8-4399-4191-af1d-4feeac1f1f46\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system and restore compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.csoonline.com/article/3438824/how-to-detect-and-halt-credential-theft-via-windows-wdigest.html","https://www.praetorian.com/blog/mitigating-mimikatz-wdigest-cleartext-credential-theft?edition=2019","https://frsecure.com/compromised-credentials-response-playbook","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"registry where event.type : (\"creation\", \"change\") and\n registry.path : (\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\SecurityProviders\\\\WDigest\\\\UseLogonCredential\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\SecurityProviders\\\\WDigest\\\\UseLogonCredential\"\n ) and registry.data.strings : (\"1\", \"0x00000001\") and\n not (process.executable : \"?:\\\\Windows\\\\System32\\\\svchost.exe\" and user.id : \"S-1-5-18\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"d703a5af-d5b0-43bd-8ddb-7a5d500b7da5:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d703a5af-d5b0-43bd-8ddb-7a5d500b7da5:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d703a5af-d5b0-43bd-8ddb-7a5d500b7da5:102.0.2.json new file mode 100644 index 0000000000000..108101b0caf7a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d703a5af-d5b0-43bd-8ddb-7a5d500b7da5:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Modification of WDigest Security Provider v102.0.2","rule_id":"d703a5af-d5b0-43bd-8ddb-7a5d500b7da5:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies attempts to modify the WDigest security provider in the registry to force the user's password to be stored in clear text in memory. This behavior can be indicative of an adversary attempting to weaken the security configuration of an endpoint. Once the UseLogonCredential value is modified, the adversary may attempt to dump clear text passwords from memory.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Modification of WDigest Security Provider\n\nIn Windows XP, Microsoft added support for a protocol known as WDigest. The WDigest protocol allows clients to send\ncleartext credentials to Hypertext Transfer Protocol (HTTP) and Simple Authentication Security Layer (SASL) applications\nbased on RFC 2617 and 2831. Windows versions up to 8 and 2012 store logon credentials in memory in plaintext by default,\nwhich is no longer the case with newer Windows versions.\n\nStill, attackers can force WDigest to store the passwords insecurely on the memory by modifying the\n`HKLM\\SYSTEM\\*ControlSet*\\Control\\SecurityProviders\\WDigest\\UseLogonCredential` registry key. This activity is\ncommonly related to the execution of credential dumping tools.\n\n#### Possible investigation steps\n\n- It is unlikely that the monitored registry key was modified legitimately in newer versions of Windows. Analysts should\ntreat any activity triggered from this rule with high priority as it typically represents an active adversary.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Determine if credential dumping tools were run on the host, and retrieve and analyze suspicious executables:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Use process name, command line, and file hash to search for occurrences on other hosts.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (for example, 4624) to the target\nhost after the registry modification.\n\n### False positive analysis\n\n- This modification should not happen legitimately. Any potential benign true positive (B-TP) should be mapped and\nmonitored by the security team, as these modifications expose the entire domain to credential compromises and\nconsequently unauthorized access.\n\n### Related rules\n\n- Mimikatz Powershell Module Activity - ac96ceb8-4399-4191-af1d-4feeac1f1f46\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reimage the host operating system and restore compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.csoonline.com/article/3438824/how-to-detect-and-halt-credential-theft-via-windows-wdigest.html","https://www.praetorian.com/blog/mitigating-mimikatz-wdigest-cleartext-credential-theft?edition=2019","https://frsecure.com/compromised-credentials-response-playbook","https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"registry where event.type : (\"creation\", \"change\") and\n registry.path : (\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\SecurityProviders\\\\WDigest\\\\UseLogonCredential\",\n \"\\\\REGISTRY\\\\MACHINE\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\SecurityProviders\\\\WDigest\\\\UseLogonCredential\"\n ) and registry.data.strings : (\"1\", \"0x00000001\") and\n not (process.executable : \"?:\\\\Windows\\\\System32\\\\svchost.exe\" and user.id : \"S-1-5-18\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"d703a5af-d5b0-43bd-8ddb-7a5d500b7da5:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d72e33fc-6e91-42ff-ac8b-e573268c5a87:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d72e33fc-6e91-42ff-ac8b-e573268c5a87:102.0.0.json new file mode 100644 index 0000000000000..55d48e1d6086e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d72e33fc-6e91-42ff-ac8b-e573268c5a87:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Command Execution via SolarWinds Process v102.0.0","rule_id":"d72e33fc-6e91-42ff-ac8b-e573268c5a87:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A suspicious SolarWinds child process (Cmd.exe or Powershell.exe) was detected.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted SolarWinds child processes. Verify process details such as network connections and file writes."],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2020/12/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor.html","https://github.com/mandiant/sunburst_countermeasures/blob/main/rules/SUNBURST/hxioc/SUNBURST%20SUSPICIOUS%20FILEWRITES%20(METHODOLOGY).ioc"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1195","name":"Supply Chain Compromise","reference":"https://attack.mitre.org/techniques/T1195/","subtechnique":[{"id":"T1195.002","name":"Compromise Software Supply Chain","reference":"https://attack.mitre.org/techniques/T1195/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.name: (\"cmd.exe\", \"powershell.exe\") and\nprocess.parent.name: (\n \"ConfigurationWizard*.exe\",\n \"NetflowDatabaseMaintenance*.exe\",\n \"NetFlowService*.exe\",\n \"SolarWinds.Administration*.exe\",\n \"SolarWinds.Collector.Service*.exe\",\n \"SolarwindsDiagnostics*.exe\"\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"d72e33fc-6e91-42ff-ac8b-e573268c5a87:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d72e33fc-6e91-42ff-ac8b-e573268c5a87:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d72e33fc-6e91-42ff-ac8b-e573268c5a87:102.0.1.json new file mode 100644 index 0000000000000..0089b4b9b810d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d72e33fc-6e91-42ff-ac8b-e573268c5a87:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Command Execution via SolarWinds Process v102.0.1","rule_id":"d72e33fc-6e91-42ff-ac8b-e573268c5a87:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A suspicious SolarWinds child process (Cmd.exe or Powershell.exe) was detected.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted SolarWinds child processes. Verify process details such as network connections and file writes."],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2020/12/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor.html","https://github.com/mandiant/sunburst_countermeasures/blob/main/rules/SUNBURST/hxioc/SUNBURST%20SUSPICIOUS%20FILEWRITES%20(METHODOLOGY).ioc"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1195","name":"Supply Chain Compromise","reference":"https://attack.mitre.org/techniques/T1195/","subtechnique":[{"id":"T1195.002","name":"Compromise Software Supply Chain","reference":"https://attack.mitre.org/techniques/T1195/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.name: (\"cmd.exe\", \"powershell.exe\") and\nprocess.parent.name: (\n \"ConfigurationWizard*.exe\",\n \"NetflowDatabaseMaintenance*.exe\",\n \"NetFlowService*.exe\",\n \"SolarWinds.Administration*.exe\",\n \"SolarWinds.Collector.Service*.exe\",\n \"SolarwindsDiagnostics*.exe\"\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"d72e33fc-6e91-42ff-ac8b-e573268c5a87:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d72e33fc-6e91-42ff-ac8b-e573268c5a87:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d72e33fc-6e91-42ff-ac8b-e573268c5a87:102.0.2.json new file mode 100644 index 0000000000000..baaa083e3ae7d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d72e33fc-6e91-42ff-ac8b-e573268c5a87:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Command Execution via SolarWinds Process v102.0.2","rule_id":"d72e33fc-6e91-42ff-ac8b-e573268c5a87:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A suspicious SolarWinds child process (Cmd.exe or Powershell.exe) was detected.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted SolarWinds child processes. Verify process details such as network connections and file writes."],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2020/12/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor.html","https://github.com/mandiant/sunburst_countermeasures/blob/main/rules/SUNBURST/hxioc/SUNBURST%20SUSPICIOUS%20FILEWRITES%20(METHODOLOGY).ioc"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1195","name":"Supply Chain Compromise","reference":"https://attack.mitre.org/techniques/T1195/","subtechnique":[{"id":"T1195.002","name":"Compromise Software Supply Chain","reference":"https://attack.mitre.org/techniques/T1195/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.name: (\"cmd.exe\", \"powershell.exe\") and\nprocess.parent.name: (\n \"ConfigurationWizard*.exe\",\n \"NetflowDatabaseMaintenance*.exe\",\n \"NetFlowService*.exe\",\n \"SolarWinds.Administration*.exe\",\n \"SolarWinds.Collector.Service*.exe\",\n \"SolarwindsDiagnostics*.exe\"\n )\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"d72e33fc-6e91-42ff-ac8b-e573268c5a87:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d743ff2a-203e-4a46-a3e3-40512cfe8fbb:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d743ff2a-203e-4a46-a3e3-40512cfe8fbb:101.0.0.json new file mode 100644 index 0000000000000..081c7982fd3a6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d743ff2a-203e-4a46-a3e3-40512cfe8fbb:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange Malware Filter Policy Deletion v101.0.0","rule_id":"d743ff2a-203e-4a46-a3e3-40512cfe8fbb:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a malware filter policy has been deleted in Microsoft 365. A malware filter policy is used to alert administrators that an internal user sent a message that contained malware. This may indicate an account or machine compromise that would need to be investigated. Deletion of a malware filter policy may be done to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A malware filter policy may be deleted by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-malwarefilterpolicy?view=exchange-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Remove-MalwareFilterPolicy\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"d743ff2a-203e-4a46-a3e3-40512cfe8fbb:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d743ff2a-203e-4a46-a3e3-40512cfe8fbb:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d743ff2a-203e-4a46-a3e3-40512cfe8fbb:101.0.1.json new file mode 100644 index 0000000000000..a65c1b904cc75 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d743ff2a-203e-4a46-a3e3-40512cfe8fbb:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange Malware Filter Policy Deletion v101.0.1","rule_id":"d743ff2a-203e-4a46-a3e3-40512cfe8fbb:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a malware filter policy has been deleted in Microsoft 365. A malware filter policy is used to alert administrators that an internal user sent a message that contained malware. This may indicate an account or machine compromise that would need to be investigated. Deletion of a malware filter policy may be done to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A malware filter policy may be deleted by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-malwarefilterpolicy?view=exchange-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Remove-MalwareFilterPolicy\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"d743ff2a-203e-4a46-a3e3-40512cfe8fbb:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d743ff2a-203e-4a46-a3e3-40512cfe8fbb:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d743ff2a-203e-4a46-a3e3-40512cfe8fbb:101.0.2.json new file mode 100644 index 0000000000000..f172566ed51b4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d743ff2a-203e-4a46-a3e3-40512cfe8fbb:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange Malware Filter Policy Deletion v101.0.2","rule_id":"d743ff2a-203e-4a46-a3e3-40512cfe8fbb:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a malware filter policy has been deleted in Microsoft 365. A malware filter policy is used to alert administrators that an internal user sent a message that contained malware. This may indicate an account or machine compromise that would need to be investigated. Deletion of a malware filter policy may be done to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A malware filter policy may be deleted by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/remove-malwarefilterpolicy?view=exchange-ps"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"Remove-MalwareFilterPolicy\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"d743ff2a-203e-4a46-a3e3-40512cfe8fbb:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d75991f2-b989-419d-b797-ac1e54ec2d61:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d75991f2-b989-419d-b797-ac1e54ec2d61:100.0.0.json new file mode 100644 index 0000000000000..cb790699417e7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d75991f2-b989-419d-b797-ac1e54ec2d61:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"SystemKey Access via Command Line v100.0.0","rule_id":"d75991f2-b989-419d-b797-ac1e54ec2d61:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Keychains are the built-in way for macOS to keep track of users' passwords and credentials for many services and features, including Wi-Fi and website passwords, secure notes, certificates, and Kerberos. Adversaries may collect the keychain storage data from a system to acquire credentials.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/AlessandroZ/LaZagne/blob/master/Mac/lazagne/softwares/system/chainbreaker.py"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.001","name":"Keychain","reference":"https://attack.mitre.org/techniques/T1555/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.args:(\"/private/var/db/SystemKey\" or \"/var/db/SystemKey\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},"id":"d75991f2-b989-419d-b797-ac1e54ec2d61:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d75991f2-b989-419d-b797-ac1e54ec2d61:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d75991f2-b989-419d-b797-ac1e54ec2d61:100.0.1.json new file mode 100644 index 0000000000000..528330b95863b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d75991f2-b989-419d-b797-ac1e54ec2d61:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"SystemKey Access via Command Line v100.0.1","rule_id":"d75991f2-b989-419d-b797-ac1e54ec2d61:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Keychains are the built-in way for macOS to keep track of users' passwords and credentials for many services and features, including Wi-Fi and website passwords, secure notes, certificates, and Kerberos. Adversaries may collect the keychain storage data from a system to acquire credentials.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/AlessandroZ/LaZagne/blob/master/Mac/lazagne/softwares/system/chainbreaker.py"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.001","name":"Keychain","reference":"https://attack.mitre.org/techniques/T1555/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.args:(\"/private/var/db/SystemKey\" or \"/var/db/SystemKey\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},"id":"d75991f2-b989-419d-b797-ac1e54ec2d61:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d75991f2-b989-419d-b797-ac1e54ec2d61:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d75991f2-b989-419d-b797-ac1e54ec2d61:100.0.2.json new file mode 100644 index 0000000000000..6ae9b88e9cdc2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d75991f2-b989-419d-b797-ac1e54ec2d61:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"SystemKey Access via Command Line v100.0.2","rule_id":"d75991f2-b989-419d-b797-ac1e54ec2d61:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Keychains are the built-in way for macOS to keep track of users' passwords and credentials for many services and features, including Wi-Fi and website passwords, secure notes, certificates, and Kerberos. Adversaries may collect the keychain storage data from a system to acquire credentials.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/AlessandroZ/LaZagne/blob/master/Mac/lazagne/softwares/system/chainbreaker.py"],"tags":["Elastic","Host","macOS","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1555","name":"Credentials from Password Stores","reference":"https://attack.mitre.org/techniques/T1555/","subtechnique":[{"id":"T1555.001","name":"Keychain","reference":"https://attack.mitre.org/techniques/T1555/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.args:(\"/private/var/db/SystemKey\" or \"/var/db/SystemKey\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"}]},"id":"d75991f2-b989-419d-b797-ac1e54ec2d61:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d76b02ef-fc95-4001-9297-01cb7412232f:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d76b02ef-fc95-4001-9297-01cb7412232f:100.0.0.json new file mode 100644 index 0000000000000..39a0d50aed21f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d76b02ef-fc95-4001-9297-01cb7412232f:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Interactive Terminal Spawned via Python v100.0.0","rule_id":"d76b02ef-fc95-4001-9297-01cb7412232f:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a terminal (tty) is spawned via Python. Attackers may upgrade a simple reverse shell to a fully interactive tty after obtaining initial access to a host.","risk_score":73,"severity":"high","license":"Elastic License v2","timeline_id":"e70679c2-6cde-4510-9764-4823df18f7db","timeline_title":"Comprehensive Process Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:python* and\n process.args:(\"import pty; pty.spawn(\\\"/bin/sh\\\")\" or\n \"import pty; pty.spawn(\\\"/bin/dash\\\")\" or\n \"import pty; pty.spawn(\\\"/bin/bash\\\")\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"d76b02ef-fc95-4001-9297-01cb7412232f:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d76b02ef-fc95-4001-9297-01cb7412232f:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d76b02ef-fc95-4001-9297-01cb7412232f:100.0.1.json new file mode 100644 index 0000000000000..d46b69c57e744 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d76b02ef-fc95-4001-9297-01cb7412232f:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Interactive Terminal Spawned via Python v100.0.1","rule_id":"d76b02ef-fc95-4001-9297-01cb7412232f:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a terminal (tty) is spawned via Python. Attackers may upgrade a simple reverse shell to a fully interactive tty after obtaining initial access to a host.","risk_score":73,"severity":"high","license":"Elastic License v2","timeline_id":"e70679c2-6cde-4510-9764-4823df18f7db","timeline_title":"Comprehensive Process Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:python* and\n process.args:(\"import pty; pty.spawn(\\\"/bin/sh\\\")\" or\n \"import pty; pty.spawn(\\\"/bin/dash\\\")\" or\n \"import pty; pty.spawn(\\\"/bin/bash\\\")\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"d76b02ef-fc95-4001-9297-01cb7412232f:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d76b02ef-fc95-4001-9297-01cb7412232f:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d76b02ef-fc95-4001-9297-01cb7412232f:100.0.2.json new file mode 100644 index 0000000000000..f6db9a108f09a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d76b02ef-fc95-4001-9297-01cb7412232f:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Interactive Terminal Spawned via Python v100.0.2","rule_id":"d76b02ef-fc95-4001-9297-01cb7412232f:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a terminal (tty) is spawned via Python. Attackers may upgrade a simple reverse shell to a fully interactive tty after obtaining initial access to a host.","risk_score":73,"severity":"high","license":"Elastic License v2","timeline_id":"e70679c2-6cde-4510-9764-4823df18f7db","timeline_title":"Comprehensive Process Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:python* and\n process.args:(\"import pty; pty.spawn(\\\"/bin/sh\\\")\" or\n \"import pty; pty.spawn(\\\"/bin/dash\\\")\" or\n \"import pty; pty.spawn(\\\"/bin/bash\\\")\")\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"d76b02ef-fc95-4001-9297-01cb7412232f:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d79c4b2a-6134-4edd-86e6-564a92a933f9:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d79c4b2a-6134-4edd-86e6-564a92a933f9:101.0.0.json new file mode 100644 index 0000000000000..758ff7dd08925 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d79c4b2a-6134-4edd-86e6-564a92a933f9:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Blob Permissions Modification v101.0.0","rule_id":"d79c4b2a-6134-4edd-86e6-564a92a933f9:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when the Azure role-based access control (Azure RBAC) permissions are modified for an Azure Blob. An adversary may modify the permissions on a blob to weaken their target's security controls or an administrator may inadvertently modify the permissions, which could lead to data exposure or loss.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Blob permissions may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/built-in-roles"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1222","name":"File and Directory Permissions Modification","reference":"https://attack.mitre.org/techniques/T1222/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:(\n \"MICROSOFT.STORAGE/STORAGEACCOUNTS/BLOBSERVICES/CONTAINERS/BLOBS/MANAGEOWNERSHIP/ACTION\" or\n \"MICROSOFT.STORAGE/STORAGEACCOUNTS/BLOBSERVICES/CONTAINERS/BLOBS/MODIFYPERMISSIONS/ACTION\") and\n event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"d79c4b2a-6134-4edd-86e6-564a92a933f9:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d79c4b2a-6134-4edd-86e6-564a92a933f9:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d79c4b2a-6134-4edd-86e6-564a92a933f9:101.0.1.json new file mode 100644 index 0000000000000..dd742285bcc77 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d79c4b2a-6134-4edd-86e6-564a92a933f9:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Blob Permissions Modification v101.0.1","rule_id":"d79c4b2a-6134-4edd-86e6-564a92a933f9:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when the Azure role-based access control (Azure RBAC) permissions are modified for an Azure Blob. An adversary may modify the permissions on a blob to weaken their target's security controls or an administrator may inadvertently modify the permissions, which could lead to data exposure or loss.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Blob permissions may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/built-in-roles"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1222","name":"File and Directory Permissions Modification","reference":"https://attack.mitre.org/techniques/T1222/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:(\n \"MICROSOFT.STORAGE/STORAGEACCOUNTS/BLOBSERVICES/CONTAINERS/BLOBS/MANAGEOWNERSHIP/ACTION\" or\n \"MICROSOFT.STORAGE/STORAGEACCOUNTS/BLOBSERVICES/CONTAINERS/BLOBS/MODIFYPERMISSIONS/ACTION\") and\n event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"d79c4b2a-6134-4edd-86e6-564a92a933f9:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d79c4b2a-6134-4edd-86e6-564a92a933f9:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d79c4b2a-6134-4edd-86e6-564a92a933f9:101.0.2.json new file mode 100644 index 0000000000000..db740742e8df4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d79c4b2a-6134-4edd-86e6-564a92a933f9:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Blob Permissions Modification v101.0.2","rule_id":"d79c4b2a-6134-4edd-86e6-564a92a933f9:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when the Azure role-based access control (Azure RBAC) permissions are modified for an Azure Blob. An adversary may modify the permissions on a blob to weaken their target's security controls or an administrator may inadvertently modify the permissions, which could lead to data exposure or loss.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Blob permissions may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/built-in-roles"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1222","name":"File and Directory Permissions Modification","reference":"https://attack.mitre.org/techniques/T1222/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:(\n \"MICROSOFT.STORAGE/STORAGEACCOUNTS/BLOBSERVICES/CONTAINERS/BLOBS/MANAGEOWNERSHIP/ACTION\" or\n \"MICROSOFT.STORAGE/STORAGEACCOUNTS/BLOBSERVICES/CONTAINERS/BLOBS/MODIFYPERMISSIONS/ACTION\") and\n event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"d79c4b2a-6134-4edd-86e6-564a92a933f9:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d7d5c059-c19a-4a96-8ae3-41496ef3bcf9:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d7d5c059-c19a-4a96-8ae3-41496ef3bcf9:100.0.0.json new file mode 100644 index 0000000000000..00d072b1f95c7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d7d5c059-c19a-4a96-8ae3-41496ef3bcf9:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Spike in Logon Events v100.0.0","rule_id":"d7d5c059-c19a-4a96-8ae3-41496ef3bcf9:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job found an unusually large spike in successful authentication events. This can be due to password spraying, user enumeration or brute force activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Build servers and CI systems can sometimes trigger this alert. Security test cycles that include brute force or password spraying activities may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_high_count_logon_events","type":"machine_learning"},"id":"d7d5c059-c19a-4a96-8ae3-41496ef3bcf9:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d7d5c059-c19a-4a96-8ae3-41496ef3bcf9:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d7d5c059-c19a-4a96-8ae3-41496ef3bcf9:100.0.1.json new file mode 100644 index 0000000000000..6337f24dfae4b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d7d5c059-c19a-4a96-8ae3-41496ef3bcf9:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Spike in Logon Events v100.0.1","rule_id":"d7d5c059-c19a-4a96-8ae3-41496ef3bcf9:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job found an unusually large spike in successful authentication events. This can be due to password spraying, user enumeration or brute force activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Build servers and CI systems can sometimes trigger this alert. Security test cycles that include brute force or password spraying activities may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_high_count_logon_events","type":"machine_learning"},"id":"d7d5c059-c19a-4a96-8ae3-41496ef3bcf9:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d7d5c059-c19a-4a96-8ae3-41496ef3bcf9:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d7d5c059-c19a-4a96-8ae3-41496ef3bcf9:100.0.2.json new file mode 100644 index 0000000000000..eb11e3a8d9c76 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d7d5c059-c19a-4a96-8ae3-41496ef3bcf9:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Spike in Logon Events v100.0.2","rule_id":"d7d5c059-c19a-4a96-8ae3-41496ef3bcf9:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job found an unusually large spike in successful authentication events. This can be due to password spraying, user enumeration or brute force activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Build servers and CI systems can sometimes trigger this alert. Security test cycles that include brute force or password spraying activities may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_high_count_logon_events","type":"machine_learning"},"id":"d7d5c059-c19a-4a96-8ae3-41496ef3bcf9:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d7e62693-aab9-4f66-a21a-3d79ecdd603d:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d7e62693-aab9-4f66-a21a-3d79ecdd603d:100.0.0.json new file mode 100644 index 0000000000000..c26868b463194 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d7e62693-aab9-4f66-a21a-3d79ecdd603d:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"SMTP on Port 26/TCP v100.0.0","rule_id":"d7e62693-aab9-4f66-a21a-3d79ecdd603d:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects events that may indicate use of SMTP on TCP port 26. This port is commonly used by several popular mail transfer agents to deconflict with the default SMTP port 25. This port has also been used by a malware family called BadPatch for command and control of Windows systems.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Servers that process email traffic may cause false positives and should be excluded from this rule as this is expected behavior."],"from":"now-9m","references":["https://unit42.paloaltonetworks.com/unit42-badpatch/","https://isc.sans.edu/forums/diary/Next+up+whats+up+with+TCP+port+26/25564/"],"tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1048","name":"Exfiltration Over Alternative Protocol","reference":"https://attack.mitre.org/techniques/T1048/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and (destination.port:26 or (event.dataset:zeek.smtp and destination.port:26))\n","required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"}]},"id":"d7e62693-aab9-4f66-a21a-3d79ecdd603d:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d7e62693-aab9-4f66-a21a-3d79ecdd603d:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d7e62693-aab9-4f66-a21a-3d79ecdd603d:100.0.1.json new file mode 100644 index 0000000000000..6f7267e12f2c1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d7e62693-aab9-4f66-a21a-3d79ecdd603d:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"SMTP on Port 26/TCP v100.0.1","rule_id":"d7e62693-aab9-4f66-a21a-3d79ecdd603d:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects events that may indicate use of SMTP on TCP port 26. This port is commonly used by several popular mail transfer agents to deconflict with the default SMTP port 25. This port has also been used by a malware family called BadPatch for command and control of Windows systems.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Servers that process email traffic may cause false positives and should be excluded from this rule as this is expected behavior."],"from":"now-9m","references":["https://unit42.paloaltonetworks.com/unit42-badpatch/","https://isc.sans.edu/forums/diary/Next+up+whats+up+with+TCP+port+26/25564/"],"tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1048","name":"Exfiltration Over Alternative Protocol","reference":"https://attack.mitre.org/techniques/T1048/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and (destination.port:26 or (event.dataset:zeek.smtp and destination.port:26))\n","required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"}]},"id":"d7e62693-aab9-4f66-a21a-3d79ecdd603d:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d7e62693-aab9-4f66-a21a-3d79ecdd603d:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d7e62693-aab9-4f66-a21a-3d79ecdd603d:100.0.2.json new file mode 100644 index 0000000000000..6926f7b58b3d1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d7e62693-aab9-4f66-a21a-3d79ecdd603d:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"SMTP on Port 26/TCP v100.0.2","rule_id":"d7e62693-aab9-4f66-a21a-3d79ecdd603d:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects events that may indicate use of SMTP on TCP port 26. This port is commonly used by several popular mail transfer agents to deconflict with the default SMTP port 25. This port has also been used by a malware family called BadPatch for command and control of Windows systems.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Servers that process email traffic may cause false positives and should be excluded from this rule as this is expected behavior."],"from":"now-9m","references":["https://unit42.paloaltonetworks.com/unit42-badpatch/","https://isc.sans.edu/forums/diary/Next+up+whats+up+with+TCP+port+26/25564/"],"tags":["Elastic","Host","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1048","name":"Exfiltration Over Alternative Protocol","reference":"https://attack.mitre.org/techniques/T1048/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.transport:tcp and (destination.port:26 or (event.dataset:zeek.smtp and destination.port:26))\n","required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"network.transport","type":"keyword"}]},"id":"d7e62693-aab9-4f66-a21a-3d79ecdd603d:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d8fc1cca-93ed-43c1-bbb6-c0dd3eff2958:103.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d8fc1cca-93ed-43c1-bbb6-c0dd3eff2958:103.0.0.json new file mode 100644 index 0000000000000..895a4a4f98ec0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d8fc1cca-93ed-43c1-bbb6-c0dd3eff2958:103.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS IAM Deactivation of MFA Device v103.0.0","rule_id":"d8fc1cca-93ed-43c1-bbb6-c0dd3eff2958:103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deactivation of a specified multi-factor authentication (MFA) device and removes it from association with the user name for which it was originally enabled. In AWS Identity and Access Management (IAM), a device must be deactivated before it can be deleted.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS IAM Deactivation of MFA Device\n\nMulti-factor authentication (MFA) in AWS is a simple best practice that adds an extra layer of protection on top of your\nuser name and password. With MFA enabled, when a user signs in to an AWS Management Console, they will be prompted for\ntheir user name and password (the first factor—what they know), as well as for an authentication code from their AWS MFA\ndevice (the second factor—what they have). Taken together, these multiple factors provide increased security for your\nAWS account settings and resources.\n\nFor more information about using MFA in AWS, access the [official documentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html).\n\nThis rule looks for the deactivation or deletion of AWS MFA devices. These modifications weaken account security and can\nlead to the compromise of accounts and other assets.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- While this activity can be done by administrators, all users must use MFA. The security team should address any\npotential benign true positive (B-TP), as this configuration can risk the user and domain.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Reactivate multi-factor authentication for the user.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["A MFA device may be deactivated by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. MFA device deactivations from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/deactivate-mfa-device.html","https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:(DeactivateMFADevice or DeleteVirtualMFADevice) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"d8fc1cca-93ed-43c1-bbb6-c0dd3eff2958:103.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d8fc1cca-93ed-43c1-bbb6-c0dd3eff2958:103.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d8fc1cca-93ed-43c1-bbb6-c0dd3eff2958:103.0.1.json new file mode 100644 index 0000000000000..19a50b7c0fa55 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d8fc1cca-93ed-43c1-bbb6-c0dd3eff2958:103.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS IAM Deactivation of MFA Device v103.0.1","rule_id":"d8fc1cca-93ed-43c1-bbb6-c0dd3eff2958:103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deactivation of a specified multi-factor authentication (MFA) device and removes it from association with the user name for which it was originally enabled. In AWS Identity and Access Management (IAM), a device must be deactivated before it can be deleted.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS IAM Deactivation of MFA Device\n\nMulti-factor authentication (MFA) in AWS is a simple best practice that adds an extra layer of protection on top of your\nuser name and password. With MFA enabled, when a user signs in to an AWS Management Console, they will be prompted for\ntheir user name and password (the first factor—what they know), as well as for an authentication code from their AWS MFA\ndevice (the second factor—what they have). Taken together, these multiple factors provide increased security for your\nAWS account settings and resources.\n\nFor more information about using MFA in AWS, access the [official documentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html).\n\nThis rule looks for the deactivation or deletion of AWS MFA devices. These modifications weaken account security and can\nlead to the compromise of accounts and other assets.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- While this activity can be done by administrators, all users must use MFA. The security team should address any\npotential benign true positive (B-TP), as this configuration can risk the user and domain.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Reactivate multi-factor authentication for the user.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["A MFA device may be deactivated by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. MFA device deactivations from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/deactivate-mfa-device.html","https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:(DeactivateMFADevice or DeleteVirtualMFADevice) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"d8fc1cca-93ed-43c1-bbb6-c0dd3eff2958:103.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d8fc1cca-93ed-43c1-bbb6-c0dd3eff2958:103.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d8fc1cca-93ed-43c1-bbb6-c0dd3eff2958:103.0.2.json new file mode 100644 index 0000000000000..f5edcbb129b21 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d8fc1cca-93ed-43c1-bbb6-c0dd3eff2958:103.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS IAM Deactivation of MFA Device v103.0.2","rule_id":"d8fc1cca-93ed-43c1-bbb6-c0dd3eff2958:103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deactivation of a specified multi-factor authentication (MFA) device and removes it from association with the user name for which it was originally enabled. In AWS Identity and Access Management (IAM), a device must be deactivated before it can be deleted.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS IAM Deactivation of MFA Device\n\nMulti-factor authentication (MFA) in AWS is a simple best practice that adds an extra layer of protection on top of your\nuser name and password. With MFA enabled, when a user signs in to an AWS Management Console, they will be prompted for\ntheir user name and password (the first factor—what they know), as well as for an authentication code from their AWS MFA\ndevice (the second factor—what they have). Taken together, these multiple factors provide increased security for your\nAWS account settings and resources.\n\nFor more information about using MFA in AWS, access the [official documentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html).\n\nThis rule looks for the deactivation or deletion of AWS MFA devices. These modifications weaken account security and can\nlead to the compromise of accounts and other assets.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- While this activity can be done by administrators, all users must use MFA. The security team should address any\npotential benign true positive (B-TP), as this configuration can risk the user and domain.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Reactivate multi-factor authentication for the user.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["A MFA device may be deactivated by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. MFA device deactivations from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/deactivate-mfa-device.html","https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:iam.amazonaws.com and event.action:(DeactivateMFADevice or DeleteVirtualMFADevice) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"d8fc1cca-93ed-43c1-bbb6-c0dd3eff2958:103.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d99a037b-c8e2-47a5-97b9-170d076827c4:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d99a037b-c8e2-47a5-97b9-170d076827c4:102.0.0.json new file mode 100644 index 0000000000000..3b4fb07ad1238 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d99a037b-c8e2-47a5-97b9-170d076827c4:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Volume Shadow Copy Deletion via PowerShell v102.0.0","rule_id":"d99a037b-c8e2-47a5-97b9-170d076827c4:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the Win32_ShadowCopy class and related cmdlets to achieve shadow copy deletion. This commonly occurs in tandem with ransomware or other destructive attacks.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Volume Shadow Copy Deletion via PowerShell\n\nThe Volume Shadow Copy Service (VSS) is a Windows feature that enables system administrators to take snapshots of volumes\nthat can later be restored or mounted to recover specific files or folders.\n\nA typical step in the playbook of an attacker attempting to deploy ransomware is to delete Volume Shadow\nCopies to ensure that victims have no alternative to paying the ransom, making any action that deletes shadow\ncopies worth monitoring.\n\nThis rule monitors the execution of PowerShell cmdlets to interact with the Win32_ShadowCopy WMI class, retrieve shadow\ncopy objects, and delete them.\n\n#### Possible investigation steps\n\n- Investigate the program execution chain (parent process tree).\n- Check whether the account is authorized to perform this operation.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- If unsigned files are found on the process tree, retrieve them and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Use process name, command line, and file hash to search for occurrences in other hosts.\n- Check if any files on the host machine have been encrypted.\n\n\n### False positive analysis\n\n- This rule has chances of producing benign true positives (B-TPs). If this activity is expected and noisy in your\nenvironment, consider adding exceptions — preferably with a combination of user and command line conditions.\n\n### Related rules\n\n- Volume Shadow Copy Deleted or Resized via VssAdmin - b5ea4bfe-a1b2-421f-9d47-22a75a6f2921\n- Volume Shadow Copy Deletion via PowerShell - d99a037b-c8e2-47a5-97b9-170d076827c4\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- Priority should be given due to the advanced stage of this activity on the attack.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- If data was encrypted, deleted, or modified, activate your data recovery plan.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Perform data recovery locally or restore the backups from replicated copies (cloud, other servers, etc.).\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/previous-versions/windows/desktop/vsswmi/win32-shadowcopy","https://powershell.one/wmi/root/cimv2/win32_shadowcopy","https://www.fortinet.com/blog/threat-research/stomping-shadow-copies-a-second-look-into-deletion-methods"],"tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and\n process.args : (\"*Get-WmiObject*\", \"*gwmi*\", \"*Get-CimInstance*\", \"*gcim*\") and\n process.args : (\"*Win32_ShadowCopy*\") and\n process.args : (\"*.Delete()*\", \"*Remove-WmiObject*\", \"*rwmi*\", \"*Remove-CimInstance*\", \"*rcim*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"d99a037b-c8e2-47a5-97b9-170d076827c4:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d99a037b-c8e2-47a5-97b9-170d076827c4:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d99a037b-c8e2-47a5-97b9-170d076827c4:102.0.1.json new file mode 100644 index 0000000000000..4f00daa96a61d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d99a037b-c8e2-47a5-97b9-170d076827c4:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Volume Shadow Copy Deletion via PowerShell v102.0.1","rule_id":"d99a037b-c8e2-47a5-97b9-170d076827c4:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the Win32_ShadowCopy class and related cmdlets to achieve shadow copy deletion. This commonly occurs in tandem with ransomware or other destructive attacks.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Volume Shadow Copy Deletion via PowerShell\n\nThe Volume Shadow Copy Service (VSS) is a Windows feature that enables system administrators to take snapshots of volumes\nthat can later be restored or mounted to recover specific files or folders.\n\nA typical step in the playbook of an attacker attempting to deploy ransomware is to delete Volume Shadow\nCopies to ensure that victims have no alternative to paying the ransom, making any action that deletes shadow\ncopies worth monitoring.\n\nThis rule monitors the execution of PowerShell cmdlets to interact with the Win32_ShadowCopy WMI class, retrieve shadow\ncopy objects, and delete them.\n\n#### Possible investigation steps\n\n- Investigate the program execution chain (parent process tree).\n- Check whether the account is authorized to perform this operation.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- If unsigned files are found on the process tree, retrieve them and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Use process name, command line, and file hash to search for occurrences in other hosts.\n- Check if any files on the host machine have been encrypted.\n\n\n### False positive analysis\n\n- This rule has chances of producing benign true positives (B-TPs). If this activity is expected and noisy in your\nenvironment, consider adding exceptions — preferably with a combination of user and command line conditions.\n\n### Related rules\n\n- Volume Shadow Copy Deleted or Resized via VssAdmin - b5ea4bfe-a1b2-421f-9d47-22a75a6f2921\n- Volume Shadow Copy Deletion via PowerShell - d99a037b-c8e2-47a5-97b9-170d076827c4\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- Priority should be given due to the advanced stage of this activity on the attack.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- If data was encrypted, deleted, or modified, activate your data recovery plan.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Perform data recovery locally or restore the backups from replicated copies (cloud, other servers, etc.).\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/previous-versions/windows/desktop/vsswmi/win32-shadowcopy","https://powershell.one/wmi/root/cimv2/win32_shadowcopy","https://www.fortinet.com/blog/threat-research/stomping-shadow-copies-a-second-look-into-deletion-methods"],"tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and\n process.args : (\"*Get-WmiObject*\", \"*gwmi*\", \"*Get-CimInstance*\", \"*gcim*\") and\n process.args : (\"*Win32_ShadowCopy*\") and\n process.args : (\"*.Delete()*\", \"*Remove-WmiObject*\", \"*rwmi*\", \"*Remove-CimInstance*\", \"*rcim*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"d99a037b-c8e2-47a5-97b9-170d076827c4:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/d99a037b-c8e2-47a5-97b9-170d076827c4:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/d99a037b-c8e2-47a5-97b9-170d076827c4:102.0.2.json new file mode 100644 index 0000000000000..08eeada4e67de --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/d99a037b-c8e2-47a5-97b9-170d076827c4:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Volume Shadow Copy Deletion via PowerShell v102.0.2","rule_id":"d99a037b-c8e2-47a5-97b9-170d076827c4:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of the Win32_ShadowCopy class and related cmdlets to achieve shadow copy deletion. This commonly occurs in tandem with ransomware or other destructive attacks.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Volume Shadow Copy Deletion via PowerShell\n\nThe Volume Shadow Copy Service (VSS) is a Windows feature that enables system administrators to take snapshots of volumes\nthat can later be restored or mounted to recover specific files or folders.\n\nA typical step in the playbook of an attacker attempting to deploy ransomware is to delete Volume Shadow\nCopies to ensure that victims have no alternative to paying the ransom, making any action that deletes shadow\ncopies worth monitoring.\n\nThis rule monitors the execution of PowerShell cmdlets to interact with the Win32_ShadowCopy WMI class, retrieve shadow\ncopy objects, and delete them.\n\n#### Possible investigation steps\n\n- Investigate the program execution chain (parent process tree).\n- Check whether the account is authorized to perform this operation.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- If unsigned files are found on the process tree, retrieve them and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Use process name, command line, and file hash to search for occurrences in other hosts.\n- Check if any files on the host machine have been encrypted.\n\n\n### False positive analysis\n\n- This rule has chances of producing benign true positives (B-TPs). If this activity is expected and noisy in your\nenvironment, consider adding exceptions — preferably with a combination of user and command line conditions.\n\n### Related rules\n\n- Volume Shadow Copy Deleted or Resized via VssAdmin - b5ea4bfe-a1b2-421f-9d47-22a75a6f2921\n- Volume Shadow Copy Deletion via PowerShell - d99a037b-c8e2-47a5-97b9-170d076827c4\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- Priority should be given due to the advanced stage of this activity on the attack.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- If data was encrypted, deleted, or modified, activate your data recovery plan.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Perform data recovery locally or restore the backups from replicated copies (cloud, other servers, etc.).\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/previous-versions/windows/desktop/vsswmi/win32-shadowcopy","https://powershell.one/wmi/root/cimv2/win32_shadowcopy","https://www.fortinet.com/blog/threat-research/stomping-shadow-copies-a-second-look-into-deletion-methods"],"tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") and\n process.args : (\"*Get-WmiObject*\", \"*gwmi*\", \"*Get-CimInstance*\", \"*gcim*\") and\n process.args : (\"*Win32_ShadowCopy*\") and\n process.args : (\"*.Delete()*\", \"*Remove-WmiObject*\", \"*rwmi*\", \"*Remove-CimInstance*\", \"*rcim*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"d99a037b-c8e2-47a5-97b9-170d076827c4:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/da87eee1-129c-4661-a7aa-57d0b9645fad:1.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/da87eee1-129c-4661-a7aa-57d0b9645fad:1.0.0.json new file mode 100644 index 0000000000000..aa09eb9fd2efd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/da87eee1-129c-4661-a7aa-57d0b9645fad:1.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious service was installed in the system v1.0.0","rule_id":"da87eee1-129c-4661-a7aa-57d0b9645fad:1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a new Windows service with suspicious Service command values. Windows services typically run as SYSTEM and can be used for privilege escalation and persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify how the service was created or modified. Look for registry changes events or Windows events related to\nservice activities (for example, 4697 and/or 7045).\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n\n\n### False positive analysis\n\n- Certain services such as PSEXECSVC may happen legitimately. The security team should address any potential benign true\npositive (B-TP) by excluding the relevant FP by pattern.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Delete the service or restore it to the original configuration.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"any where\n (event.code : \"4697\" and\n (winlog.event_data.ServiceFileName : (\"*COMSPEC*\", \"*\\\\172.0.0.1*\", \"*Admin$*\", \"*powershell*\", \"*rundll32*\", \"*cmd.exe*\", \"*PSEXESVC*\", \"*echo*\", \"*RemComSvc*\") or\n winlog.event_data.ServiceFileName regex~ \"\"\"%systemroot%\\\\[a-z0-9]+\\.exe\"\"\")) or\n\n (event.code : \"7045\" and\n winlog.event_data.ImagePath : (\"*COMSPEC*\", \"*\\\\172.0.0.1*\", \"*Admin$*\", \"*powershell*\", \"*rundll32*\", \"*cmd.exe*\", \"*PSEXESVC*\", \"*echo*\", \"*RemComSvc*\"))\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.ImagePath","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ServiceFileName","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"da87eee1-129c-4661-a7aa-57d0b9645fad:1.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/da87eee1-129c-4661-a7aa-57d0b9645fad:1.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/da87eee1-129c-4661-a7aa-57d0b9645fad:1.0.1.json new file mode 100644 index 0000000000000..f5715ed5ab3f2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/da87eee1-129c-4661-a7aa-57d0b9645fad:1.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious service was installed in the system v1.0.1","rule_id":"da87eee1-129c-4661-a7aa-57d0b9645fad:1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a new Windows service with suspicious Service command values. Windows services typically run as SYSTEM and can be used for privilege escalation and persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify how the service was created or modified. Look for registry changes events or Windows events related to\nservice activities (for example, 4697 and/or 7045).\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n\n\n### False positive analysis\n\n- Certain services such as PSEXECSVC may happen legitimately. The security team should address any potential benign true\npositive (B-TP) by excluding the relevant FP by pattern.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Delete the service or restore it to the original configuration.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"any where\n (event.code : \"4697\" and\n (winlog.event_data.ServiceFileName : (\"*COMSPEC*\", \"*\\\\172.0.0.1*\", \"*Admin$*\", \"*powershell*\", \"*rundll32*\", \"*cmd.exe*\", \"*PSEXESVC*\", \"*echo*\", \"*RemComSvc*\") or\n winlog.event_data.ServiceFileName regex~ \"\"\"%systemroot%\\\\[a-z0-9]+\\.exe\"\"\")) or\n\n (event.code : \"7045\" and\n winlog.event_data.ImagePath : (\"*COMSPEC*\", \"*\\\\172.0.0.1*\", \"*Admin$*\", \"*powershell*\", \"*rundll32*\", \"*cmd.exe*\", \"*PSEXESVC*\", \"*echo*\", \"*RemComSvc*\"))\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.ImagePath","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ServiceFileName","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"da87eee1-129c-4661-a7aa-57d0b9645fad:1.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/da87eee1-129c-4661-a7aa-57d0b9645fad:1.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/da87eee1-129c-4661-a7aa-57d0b9645fad:1.0.2.json new file mode 100644 index 0000000000000..7b43af43e6421 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/da87eee1-129c-4661-a7aa-57d0b9645fad:1.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious service was installed in the system v1.0.2","rule_id":"da87eee1-129c-4661-a7aa-57d0b9645fad:1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a new Windows service with suspicious Service command values. Windows services typically run as SYSTEM and can be used for privilege escalation and persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify how the service was created or modified. Look for registry changes events or Windows events related to\nservice activities (for example, 4697 and/or 7045).\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n\n\n### False positive analysis\n\n- Certain services such as PSEXECSVC may happen legitimately. The security team should address any potential benign true\npositive (B-TP) by excluding the relevant FP by pattern.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Delete the service or restore it to the original configuration.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]}],"language":"eql","query":"any where\n (event.code : \"4697\" and\n (winlog.event_data.ServiceFileName : (\"*COMSPEC*\", \"*\\\\172.0.0.1*\", \"*Admin$*\", \"*powershell*\", \"*rundll32*\", \"*cmd.exe*\", \"*PSEXESVC*\", \"*echo*\", \"*RemComSvc*\") or\n winlog.event_data.ServiceFileName regex~ \"\"\"%systemroot%\\\\[a-z0-9]+\\.exe\"\"\")) or\n\n (event.code : \"7045\" and\n winlog.event_data.ImagePath : (\"*COMSPEC*\", \"*\\\\172.0.0.1*\", \"*Admin$*\", \"*powershell*\", \"*rundll32*\", \"*cmd.exe*\", \"*PSEXESVC*\", \"*echo*\", \"*RemComSvc*\"))\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.ImagePath","type":"unknown"},{"ecs":false,"name":"winlog.event_data.ServiceFileName","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"da87eee1-129c-4661-a7aa-57d0b9645fad:1.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/dafa3235-76dc-40e2-9f71-1773b96d24cf:103.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/dafa3235-76dc-40e2-9f71-1773b96d24cf:103.0.0.json new file mode 100644 index 0000000000000..d4b373ee68ff3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/dafa3235-76dc-40e2-9f71-1773b96d24cf:103.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Multi-Factor Authentication Disabled for an Azure User v103.0.0","rule_id":"dafa3235-76dc-40e2-9f71-1773b96d24cf:103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when multi-factor authentication (MFA) is disabled for an Azure user account. An adversary may disable MFA for a user account in order to weaken the authentication requirements for the account.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Multi-Factor Authentication Disabled for an Azure User\n\nMulti-factor authentication is a process in which users are prompted during the sign-in process for an additional form\nof identification, such as a code on their cellphone or a fingerprint scan.\n\nIf you only use a password to authenticate a user, it leaves an insecure vector for attack. If the password is weak or\nhas been exposed elsewhere, an attacker could be using it to gain access. When you require a second form of authentication,\nsecurity is increased because this additional factor isn't something that's easy for an attacker to obtain or duplicate.\n\nFor more information about using MFA in Azure AD, access the [official documentation](https://docs.microsoft.com/en-us/azure/active-directory/authentication/concept-mfa-howitworks#how-to-enable-and-use-azure-ad-multi-factor-authentication).\n\nThis rule identifies the deactivation of MFA for an Azure user account. This modification weakens account security\nand can lead to the compromise of accounts and other assets.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- While this activity can be done by administrators, all users must use MFA. The security team should address any\npotential benign true positive (B-TP), as this configuration can risk the user and domain.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Reactivate multi-factor authentication for the user.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security defaults [provided by Microsoft](https://docs.microsoft.com/en-us/azure/active-directory/fundamentals/concept-fundamentals-security-defaults).\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Disable Strong Authentication\" and event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"dafa3235-76dc-40e2-9f71-1773b96d24cf:103.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/dafa3235-76dc-40e2-9f71-1773b96d24cf:103.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/dafa3235-76dc-40e2-9f71-1773b96d24cf:103.0.1.json new file mode 100644 index 0000000000000..bdb9a927e9c7f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/dafa3235-76dc-40e2-9f71-1773b96d24cf:103.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Multi-Factor Authentication Disabled for an Azure User v103.0.1","rule_id":"dafa3235-76dc-40e2-9f71-1773b96d24cf:103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when multi-factor authentication (MFA) is disabled for an Azure user account. An adversary may disable MFA for a user account in order to weaken the authentication requirements for the account.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Multi-Factor Authentication Disabled for an Azure User\n\nMulti-factor authentication is a process in which users are prompted during the sign-in process for an additional form\nof identification, such as a code on their cellphone or a fingerprint scan.\n\nIf you only use a password to authenticate a user, it leaves an insecure vector for attack. If the password is weak or\nhas been exposed elsewhere, an attacker could be using it to gain access. When you require a second form of authentication,\nsecurity is increased because this additional factor isn't something that's easy for an attacker to obtain or duplicate.\n\nFor more information about using MFA in Azure AD, access the [official documentation](https://docs.microsoft.com/en-us/azure/active-directory/authentication/concept-mfa-howitworks#how-to-enable-and-use-azure-ad-multi-factor-authentication).\n\nThis rule identifies the deactivation of MFA for an Azure user account. This modification weakens account security\nand can lead to the compromise of accounts and other assets.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- While this activity can be done by administrators, all users must use MFA. The security team should address any\npotential benign true positive (B-TP), as this configuration can risk the user and domain.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Reactivate multi-factor authentication for the user.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security defaults [provided by Microsoft](https://docs.microsoft.com/en-us/azure/active-directory/fundamentals/concept-fundamentals-security-defaults).\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Disable Strong Authentication\" and event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"dafa3235-76dc-40e2-9f71-1773b96d24cf:103.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/dafa3235-76dc-40e2-9f71-1773b96d24cf:103.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/dafa3235-76dc-40e2-9f71-1773b96d24cf:103.0.2.json new file mode 100644 index 0000000000000..e3cc0002b2da8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/dafa3235-76dc-40e2-9f71-1773b96d24cf:103.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Multi-Factor Authentication Disabled for an Azure User v103.0.2","rule_id":"dafa3235-76dc-40e2-9f71-1773b96d24cf:103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when multi-factor authentication (MFA) is disabled for an Azure user account. An adversary may disable MFA for a user account in order to weaken the authentication requirements for the account.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Multi-Factor Authentication Disabled for an Azure User\n\nMulti-factor authentication is a process in which users are prompted during the sign-in process for an additional form\nof identification, such as a code on their cellphone or a fingerprint scan.\n\nIf you only use a password to authenticate a user, it leaves an insecure vector for attack. If the password is weak or\nhas been exposed elsewhere, an attacker could be using it to gain access. When you require a second form of authentication,\nsecurity is increased because this additional factor isn't something that's easy for an attacker to obtain or duplicate.\n\nFor more information about using MFA in Azure AD, access the [official documentation](https://docs.microsoft.com/en-us/azure/active-directory/authentication/concept-mfa-howitworks#how-to-enable-and-use-azure-ad-multi-factor-authentication).\n\nThis rule identifies the deactivation of MFA for an Azure user account. This modification weakens account security\nand can lead to the compromise of accounts and other assets.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if this operation was approved and performed according to the organization's change management policy.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- While this activity can be done by administrators, all users must use MFA. The security team should address any\npotential benign true positive (B-TP), as this configuration can risk the user and domain.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Reactivate multi-factor authentication for the user.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security defaults [provided by Microsoft](https://docs.microsoft.com/en-us/azure/active-directory/fundamentals/concept-fundamentals-security-defaults).\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Disable Strong Authentication\" and event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"dafa3235-76dc-40e2-9f71-1773b96d24cf:103.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/db8c33a8-03cd-4988-9e2c-d0a4863adb13:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/db8c33a8-03cd-4988-9e2c-d0a4863adb13:100.0.0.json new file mode 100644 index 0000000000000..e1024d408876d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/db8c33a8-03cd-4988-9e2c-d0a4863adb13:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Credential Dumping - Prevented - Elastic Endgame v100.0.0","rule_id":"db8c33a8-03cd-4988-9e2c-d0a4863adb13:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented Credential Dumping. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:cred_theft_event or endgame.event_subtype_full:cred_theft_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"db8c33a8-03cd-4988-9e2c-d0a4863adb13:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/db8c33a8-03cd-4988-9e2c-d0a4863adb13:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/db8c33a8-03cd-4988-9e2c-d0a4863adb13:100.0.1.json new file mode 100644 index 0000000000000..57cb65a59999f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/db8c33a8-03cd-4988-9e2c-d0a4863adb13:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Credential Dumping - Prevented - Elastic Endgame v100.0.1","rule_id":"db8c33a8-03cd-4988-9e2c-d0a4863adb13:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented Credential Dumping. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:cred_theft_event or endgame.event_subtype_full:cred_theft_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"db8c33a8-03cd-4988-9e2c-d0a4863adb13:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/db8c33a8-03cd-4988-9e2c-d0a4863adb13:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/db8c33a8-03cd-4988-9e2c-d0a4863adb13:100.0.2.json new file mode 100644 index 0000000000000..9e0ec2ebafeff --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/db8c33a8-03cd-4988-9e2c-d0a4863adb13:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Credential Dumping - Prevented - Elastic Endgame v100.0.2","rule_id":"db8c33a8-03cd-4988-9e2c-d0a4863adb13:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented Credential Dumping. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:cred_theft_event or endgame.event_subtype_full:cred_theft_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"db8c33a8-03cd-4988-9e2c-d0a4863adb13:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/dc9c1f74-dac3-48e3-b47f-eb79db358f57:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/dc9c1f74-dac3-48e3-b47f-eb79db358f57:102.0.0.json new file mode 100644 index 0000000000000..31612d291a63f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/dc9c1f74-dac3-48e3-b47f-eb79db358f57:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Volume Shadow Copy Deletion via WMIC v102.0.0","rule_id":"dc9c1f74-dac3-48e3-b47f-eb79db358f57:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of wmic.exe for shadow copy deletion on endpoints. This commonly occurs in tandem with ransomware or other destructive attacks.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Volume Shadow Copy Deletion via WMIC\n\nThe Volume Shadow Copy Service (VSS) is a Windows feature that enables system administrators to take snapshots of volumes\nthat can later be restored or mounted to recover specific files or folders.\n\nA typical step in the playbook of an attacker attempting to deploy ransomware is to delete Volume Shadow\nCopies to ensure that victims have no alternative to paying the ransom, making any action that deletes shadow\ncopies worth monitoring.\n\nThis rule monitors the execution of `wmic.exe` to interact with VSS via the `shadowcopy` alias and delete parameter.\n\n#### Possible investigation steps\n\n- Investigate the program execution chain (parent process tree).\n- Check whether the account is authorized to perform this operation.\n- Contact the account owner and confirm whether they are aware of this activity.\n- In the case of a resize operation, check if the resize value is equal to suspicious values, like 401MB.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- If unsigned files are found on the process tree, retrieve them and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Use process name, command line, and file hash to search for occurrences in other hosts.\n- Check if any files on the host machine have been encrypted.\n\n\n### False positive analysis\n\n- This rule has chances of producing benign true positives (B-TPs). If this activity is expected and noisy in your\nenvironment, consider adding exceptions — preferably with a combination of user and command line conditions.\n\n### Related rules\n\n- Volume Shadow Copy Deleted or Resized via VssAdmin - b5ea4bfe-a1b2-421f-9d47-22a75a6f2921\n- Volume Shadow Copy Deletion via PowerShell - d99a037b-c8e2-47a5-97b9-170d076827c4\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Priority should be given due to the advanced stage of this activity on the attack.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- If data was encrypted, deleted, or modified, activate your data recovery plan.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Perform data recovery locally or restore the backups from replicated copies (cloud, other servers, etc.).\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"WMIC.exe\" or process.pe.original_file_name == \"wmic.exe\") and\n process.args : \"delete\" and process.args : \"shadowcopy\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"dc9c1f74-dac3-48e3-b47f-eb79db358f57:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/dc9c1f74-dac3-48e3-b47f-eb79db358f57:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/dc9c1f74-dac3-48e3-b47f-eb79db358f57:102.0.1.json new file mode 100644 index 0000000000000..2b6b8d1ebf0db --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/dc9c1f74-dac3-48e3-b47f-eb79db358f57:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Volume Shadow Copy Deletion via WMIC v102.0.1","rule_id":"dc9c1f74-dac3-48e3-b47f-eb79db358f57:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of wmic.exe for shadow copy deletion on endpoints. This commonly occurs in tandem with ransomware or other destructive attacks.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Volume Shadow Copy Deletion via WMIC\n\nThe Volume Shadow Copy Service (VSS) is a Windows feature that enables system administrators to take snapshots of volumes\nthat can later be restored or mounted to recover specific files or folders.\n\nA typical step in the playbook of an attacker attempting to deploy ransomware is to delete Volume Shadow\nCopies to ensure that victims have no alternative to paying the ransom, making any action that deletes shadow\ncopies worth monitoring.\n\nThis rule monitors the execution of `wmic.exe` to interact with VSS via the `shadowcopy` alias and delete parameter.\n\n#### Possible investigation steps\n\n- Investigate the program execution chain (parent process tree).\n- Check whether the account is authorized to perform this operation.\n- Contact the account owner and confirm whether they are aware of this activity.\n- In the case of a resize operation, check if the resize value is equal to suspicious values, like 401MB.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- If unsigned files are found on the process tree, retrieve them and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Use process name, command line, and file hash to search for occurrences in other hosts.\n- Check if any files on the host machine have been encrypted.\n\n\n### False positive analysis\n\n- This rule has chances of producing benign true positives (B-TPs). If this activity is expected and noisy in your\nenvironment, consider adding exceptions — preferably with a combination of user and command line conditions.\n\n### Related rules\n\n- Volume Shadow Copy Deleted or Resized via VssAdmin - b5ea4bfe-a1b2-421f-9d47-22a75a6f2921\n- Volume Shadow Copy Deletion via PowerShell - d99a037b-c8e2-47a5-97b9-170d076827c4\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Priority should be given due to the advanced stage of this activity on the attack.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- If data was encrypted, deleted, or modified, activate your data recovery plan.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Perform data recovery locally or restore the backups from replicated copies (cloud, other servers, etc.).\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"WMIC.exe\" or process.pe.original_file_name == \"wmic.exe\") and\n process.args : \"delete\" and process.args : \"shadowcopy\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"dc9c1f74-dac3-48e3-b47f-eb79db358f57:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/dc9c1f74-dac3-48e3-b47f-eb79db358f57:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/dc9c1f74-dac3-48e3-b47f-eb79db358f57:102.0.2.json new file mode 100644 index 0000000000000..7c4dc400b94e0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/dc9c1f74-dac3-48e3-b47f-eb79db358f57:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Volume Shadow Copy Deletion via WMIC v102.0.2","rule_id":"dc9c1f74-dac3-48e3-b47f-eb79db358f57:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of wmic.exe for shadow copy deletion on endpoints. This commonly occurs in tandem with ransomware or other destructive attacks.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Volume Shadow Copy Deletion via WMIC\n\nThe Volume Shadow Copy Service (VSS) is a Windows feature that enables system administrators to take snapshots of volumes\nthat can later be restored or mounted to recover specific files or folders.\n\nA typical step in the playbook of an attacker attempting to deploy ransomware is to delete Volume Shadow\nCopies to ensure that victims have no alternative to paying the ransom, making any action that deletes shadow\ncopies worth monitoring.\n\nThis rule monitors the execution of `wmic.exe` to interact with VSS via the `shadowcopy` alias and delete parameter.\n\n#### Possible investigation steps\n\n- Investigate the program execution chain (parent process tree).\n- Check whether the account is authorized to perform this operation.\n- Contact the account owner and confirm whether they are aware of this activity.\n- In the case of a resize operation, check if the resize value is equal to suspicious values, like 401MB.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- If unsigned files are found on the process tree, retrieve them and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Use process name, command line, and file hash to search for occurrences in other hosts.\n- Check if any files on the host machine have been encrypted.\n\n\n### False positive analysis\n\n- This rule has chances of producing benign true positives (B-TPs). If this activity is expected and noisy in your\nenvironment, consider adding exceptions — preferably with a combination of user and command line conditions.\n\n### Related rules\n\n- Volume Shadow Copy Deleted or Resized via VssAdmin - b5ea4bfe-a1b2-421f-9d47-22a75a6f2921\n- Volume Shadow Copy Deletion via PowerShell - d99a037b-c8e2-47a5-97b9-170d076827c4\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Priority should be given due to the advanced stage of this activity on the attack.\n- Consider isolating the involved host to prevent destructive behavior, which is commonly associated with this activity.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- If data was encrypted, deleted, or modified, activate your data recovery plan.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Perform data recovery locally or restore the backups from replicated copies (cloud, other servers, etc.).\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Impact","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1490","name":"Inhibit System Recovery","reference":"https://attack.mitre.org/techniques/T1490/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"WMIC.exe\" or process.pe.original_file_name == \"wmic.exe\") and\n process.args : \"delete\" and process.args : \"shadowcopy\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"dc9c1f74-dac3-48e3-b47f-eb79db358f57:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/dca28dee-c999-400f-b640-50a081cc0fd1:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/dca28dee-c999-400f-b640-50a081cc0fd1:102.0.0.json new file mode 100644 index 0000000000000..bcfa98ad18050 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/dca28dee-c999-400f-b640-50a081cc0fd1:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Country For an AWS Command v102.0.0","rule_id":"dca28dee-c999-400f-b640-50a081cc0fd1:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected AWS command activity that, while not inherently suspicious or abnormal, is sourcing from a geolocation (country) that is unusual for the command. This can be the result of compromised credentials or keys being used by a threat actor in a different geography than the authorized user(s).","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Country For an AWS Command\n\nCloudTrail logging provides visibility on actions taken within an AWS environment. By monitoring these events and\nunderstanding what is considered normal behavior within an organization, you can spot suspicious or malicious activity\nwhen deviations occur.\n\nThis rule uses a machine learning job to detect an AWS API command that while not inherently suspicious or abnormal, is\nsourcing from a geolocation (country) that is unusual for the command. This can be the result of compromised credentials\nor keys used by a threat actor in a different geography than the authorized user(s).\n\nDetection alerts from this rule indicate an AWS API command or method call that is rare and unusual for the geolocation\nof the source IP address.\n\n#### Possible investigation steps\n\n- Identify the user account involved and the action performed. Verify whether it should perform this kind of action.\n - Examine the user identity in the `aws.cloudtrail.user_identity.arn` field and the access key ID in the\n `aws.cloudtrail.user_identity.access_key_id` field, which can help identify the precise user context.\n - The user agent details in the `user_agent.original` field may also indicate what kind of a client made the request.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, or network administrator activity.\n- Examine the request parameters. These might indicate the source of the program or the nature of its tasks.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Contact the account owner and confirm whether they are aware of this activity if suspicious.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False Positive Analysis\n\n- False positives can occur if activity is coming from new employees based in a country with no previous history in AWS.\n- Examine the history of the command. If the command only manifested recently, it might be part of a new automation\nmodule or script. If it has a consistent cadence (for example, it appears in small numbers on a weekly or monthly cadence),\nit might be part of a housekeeping or maintenance process. You can find the command in the `event.action field` field.\n\n### Related Rules\n\n- Unusual City For an AWS Command - 809b70d3-e2c3-455e-af1b-2626a5a1a276\n- Unusual AWS Command for a User - ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1\n- Rare AWS Error Code - 19de8096-e2b0-4bd8-80c9-34a820813fff\n- Spike in AWS Error Messages - 78d3d8d9-b476-451d-a9e0-7a5addd70670\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"false_positives":["New or unusual command and user geolocation activity can be due to manual troubleshooting or reconfiguration; changes in cloud automation scripts or workflows; adoption of new services; expansion into new regions; increased adoption of work from home policies; or users who travel frequently."],"from":"now-2h","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Cloud","AWS","ML","Investigation Guide"],"anomaly_threshold":50,"machine_learning_job_id":"rare_method_for_a_country","type":"machine_learning","related_integrations":[],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"dca28dee-c999-400f-b640-50a081cc0fd1:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/dca28dee-c999-400f-b640-50a081cc0fd1:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/dca28dee-c999-400f-b640-50a081cc0fd1:102.0.1.json new file mode 100644 index 0000000000000..30d277736903e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/dca28dee-c999-400f-b640-50a081cc0fd1:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Country For an AWS Command v102.0.1","rule_id":"dca28dee-c999-400f-b640-50a081cc0fd1:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected AWS command activity that, while not inherently suspicious or abnormal, is sourcing from a geolocation (country) that is unusual for the command. This can be the result of compromised credentials or keys being used by a threat actor in a different geography than the authorized user(s).","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Country For an AWS Command\n\nCloudTrail logging provides visibility on actions taken within an AWS environment. By monitoring these events and\nunderstanding what is considered normal behavior within an organization, you can spot suspicious or malicious activity\nwhen deviations occur.\n\nThis rule uses a machine learning job to detect an AWS API command that while not inherently suspicious or abnormal, is\nsourcing from a geolocation (country) that is unusual for the command. This can be the result of compromised credentials\nor keys used by a threat actor in a different geography than the authorized user(s).\n\nDetection alerts from this rule indicate an AWS API command or method call that is rare and unusual for the geolocation\nof the source IP address.\n\n#### Possible investigation steps\n\n- Identify the user account involved and the action performed. Verify whether it should perform this kind of action.\n - Examine the user identity in the `aws.cloudtrail.user_identity.arn` field and the access key ID in the\n `aws.cloudtrail.user_identity.access_key_id` field, which can help identify the precise user context.\n - The user agent details in the `user_agent.original` field may also indicate what kind of a client made the request.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, or network administrator activity.\n- Examine the request parameters. These might indicate the source of the program or the nature of its tasks.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Contact the account owner and confirm whether they are aware of this activity if suspicious.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False Positive Analysis\n\n- False positives can occur if activity is coming from new employees based in a country with no previous history in AWS.\n- Examine the history of the command. If the command only manifested recently, it might be part of a new automation\nmodule or script. If it has a consistent cadence (for example, it appears in small numbers on a weekly or monthly cadence),\nit might be part of a housekeeping or maintenance process. You can find the command in the `event.action field` field.\n\n### Related Rules\n\n- Unusual City For an AWS Command - 809b70d3-e2c3-455e-af1b-2626a5a1a276\n- Unusual AWS Command for a User - ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1\n- Rare AWS Error Code - 19de8096-e2b0-4bd8-80c9-34a820813fff\n- Spike in AWS Error Messages - 78d3d8d9-b476-451d-a9e0-7a5addd70670\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"false_positives":["New or unusual command and user geolocation activity can be due to manual troubleshooting or reconfiguration; changes in cloud automation scripts or workflows; adoption of new services; expansion into new regions; increased adoption of work from home policies; or users who travel frequently."],"from":"now-2h","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Cloud","AWS","ML","Investigation Guide"],"anomaly_threshold":50,"machine_learning_job_id":"rare_method_for_a_country","type":"machine_learning","related_integrations":[],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"dca28dee-c999-400f-b640-50a081cc0fd1:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/dca28dee-c999-400f-b640-50a081cc0fd1:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/dca28dee-c999-400f-b640-50a081cc0fd1:102.0.2.json new file mode 100644 index 0000000000000..a692241852216 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/dca28dee-c999-400f-b640-50a081cc0fd1:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Country For an AWS Command v102.0.2","rule_id":"dca28dee-c999-400f-b640-50a081cc0fd1:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected AWS command activity that, while not inherently suspicious or abnormal, is sourcing from a geolocation (country) that is unusual for the command. This can be the result of compromised credentials or keys being used by a threat actor in a different geography than the authorized user(s).","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Country For an AWS Command\n\nCloudTrail logging provides visibility on actions taken within an AWS environment. By monitoring these events and\nunderstanding what is considered normal behavior within an organization, you can spot suspicious or malicious activity\nwhen deviations occur.\n\nThis rule uses a machine learning job to detect an AWS API command that while not inherently suspicious or abnormal, is\nsourcing from a geolocation (country) that is unusual for the command. This can be the result of compromised credentials\nor keys used by a threat actor in a different geography than the authorized user(s).\n\nDetection alerts from this rule indicate an AWS API command or method call that is rare and unusual for the geolocation\nof the source IP address.\n\n#### Possible investigation steps\n\n- Identify the user account involved and the action performed. Verify whether it should perform this kind of action.\n - Examine the user identity in the `aws.cloudtrail.user_identity.arn` field and the access key ID in the\n `aws.cloudtrail.user_identity.access_key_id` field, which can help identify the precise user context.\n - The user agent details in the `user_agent.original` field may also indicate what kind of a client made the request.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, or network administrator activity.\n- Examine the request parameters. These might indicate the source of the program or the nature of its tasks.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the calling user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Contact the account owner and confirm whether they are aware of this activity if suspicious.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False Positive Analysis\n\n- False positives can occur if activity is coming from new employees based in a country with no previous history in AWS.\n- Examine the history of the command. If the command only manifested recently, it might be part of a new automation\nmodule or script. If it has a consistent cadence (for example, it appears in small numbers on a weekly or monthly cadence),\nit might be part of a housekeeping or maintenance process. You can find the command in the `event.action field` field.\n\n### Related Rules\n\n- Unusual City For an AWS Command - 809b70d3-e2c3-455e-af1b-2626a5a1a276\n- Unusual AWS Command for a User - ac706eae-d5ec-4b14-b4fd-e8ba8086f0e1\n- Rare AWS Error Code - 19de8096-e2b0-4bd8-80c9-34a820813fff\n- Spike in AWS Error Messages - 78d3d8d9-b476-451d-a9e0-7a5addd70670\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"false_positives":["New or unusual command and user geolocation activity can be due to manual troubleshooting or reconfiguration; changes in cloud automation scripts or workflows; adoption of new services; expansion into new regions; increased adoption of work from home policies; or users who travel frequently."],"from":"now-2h","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Cloud","AWS","ML","Investigation Guide"],"anomaly_threshold":50,"machine_learning_job_id":"rare_method_for_a_country","type":"machine_learning","related_integrations":[],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"dca28dee-c999-400f-b640-50a081cc0fd1:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/dd7f1524-643e-11ed-9e35-f661ea17fbcd:1.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/dd7f1524-643e-11ed-9e35-f661ea17fbcd:1.0.0.json new file mode 100644 index 0000000000000..48a73aa70cec5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/dd7f1524-643e-11ed-9e35-f661ea17fbcd:1.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Reverse Shell Created via Named Pipe v1.0.0","rule_id":"dd7f1524-643e-11ed-9e35-f661ea17fbcd:1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a reverse shell via the abuse of named pipes on Linux with the help of OpenSSL or Netcat. First in, first out (FIFO) files are special files for reading and writing to by Linux processes. For this to work, a named pipe is created and passed to a Linux shell where the use of a network connection tool such as Netcat or OpenSSL has been established. The stdout and stderr are captured in the named pipe from the network connection and passed back to the shell for execution.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Netcat and OpenSSL are common tools used for establishing network connections and creating encryption keys. While they are popular, capturing the stdout and stderr in a named pipe pointed to a shell is anomalous."],"from":"now-9m","references":["https://int0x33.medium.com/day-43-reverse-shell-with-openssl-1ee2574aa998","https://blog.gregscharf.com/2021/03/22/tar-in-cronjob-to-privilege-escalation/","https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md#openssl"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.004","name":"Unix Shell","reference":"https://attack.mitre.org/techniques/T1059/004/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan = 5s\n [process where event.type == \"start\" and process.executable : (\"/usr/bin/mkfifo\",\"/usr/bin/mknod\") and process.args:(\"/tmp/*\",\"$*\")]\n [process where process.executable : (\"/bin/sh\",\"/bin/bash\") and process.args:(\"-i\") or\n (process.executable: (\"/usr/bin/openssl\") and process.args: (\"-connect\"))]\n [process where (process.name:(\"nc\",\"ncat\",\"netcat\",\"netcat.openbsd\",\"netcat.traditional\") or\n (process.name: \"openssl\" and process.executable: \"/usr/bin/openssl\"))]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"dd7f1524-643e-11ed-9e35-f661ea17fbcd:1.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/dd7f1524-643e-11ed-9e35-f661ea17fbcd:1.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/dd7f1524-643e-11ed-9e35-f661ea17fbcd:1.0.1.json new file mode 100644 index 0000000000000..249bd64bbcabc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/dd7f1524-643e-11ed-9e35-f661ea17fbcd:1.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Reverse Shell Created via Named Pipe v1.0.1","rule_id":"dd7f1524-643e-11ed-9e35-f661ea17fbcd:1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a reverse shell via the abuse of named pipes on Linux with the help of OpenSSL or Netcat. First in, first out (FIFO) files are special files for reading and writing to by Linux processes. For this to work, a named pipe is created and passed to a Linux shell where the use of a network connection tool such as Netcat or OpenSSL has been established. The stdout and stderr are captured in the named pipe from the network connection and passed back to the shell for execution.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Netcat and OpenSSL are common tools used for establishing network connections and creating encryption keys. While they are popular, capturing the stdout and stderr in a named pipe pointed to a shell is anomalous."],"from":"now-9m","references":["https://int0x33.medium.com/day-43-reverse-shell-with-openssl-1ee2574aa998","https://blog.gregscharf.com/2021/03/22/tar-in-cronjob-to-privilege-escalation/","https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md#openssl"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.004","name":"Unix Shell","reference":"https://attack.mitre.org/techniques/T1059/004/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan = 5s\n [process where event.type == \"start\" and process.executable : (\"/usr/bin/mkfifo\",\"/usr/bin/mknod\") and process.args:(\"/tmp/*\",\"$*\")]\n [process where process.executable : (\"/bin/sh\",\"/bin/bash\") and process.args:(\"-i\") or\n (process.executable: (\"/usr/bin/openssl\") and process.args: (\"-connect\"))]\n [process where (process.name:(\"nc\",\"ncat\",\"netcat\",\"netcat.openbsd\",\"netcat.traditional\") or\n (process.name: \"openssl\" and process.executable: \"/usr/bin/openssl\"))]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"dd7f1524-643e-11ed-9e35-f661ea17fbcd:1.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/dd7f1524-643e-11ed-9e35-f661ea17fbcd:1.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/dd7f1524-643e-11ed-9e35-f661ea17fbcd:1.0.2.json new file mode 100644 index 0000000000000..a99f487bae14b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/dd7f1524-643e-11ed-9e35-f661ea17fbcd:1.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Reverse Shell Created via Named Pipe v1.0.2","rule_id":"dd7f1524-643e-11ed-9e35-f661ea17fbcd:1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a reverse shell via the abuse of named pipes on Linux with the help of OpenSSL or Netcat. First in, first out (FIFO) files are special files for reading and writing to by Linux processes. For this to work, a named pipe is created and passed to a Linux shell where the use of a network connection tool such as Netcat or OpenSSL has been established. The stdout and stderr are captured in the named pipe from the network connection and passed back to the shell for execution.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Netcat and OpenSSL are common tools used for establishing network connections and creating encryption keys. While they are popular, capturing the stdout and stderr in a named pipe pointed to a shell is anomalous."],"from":"now-9m","references":["https://int0x33.medium.com/day-43-reverse-shell-with-openssl-1ee2574aa998","https://blog.gregscharf.com/2021/03/22/tar-in-cronjob-to-privilege-escalation/","https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md#openssl"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.004","name":"Unix Shell","reference":"https://attack.mitre.org/techniques/T1059/004/"}]}]}],"language":"eql","query":"sequence by host.id with maxspan = 5s\n [process where event.type == \"start\" and process.executable : (\"/usr/bin/mkfifo\",\"/usr/bin/mknod\") and process.args:(\"/tmp/*\",\"$*\")]\n [process where process.executable : (\"/bin/sh\",\"/bin/bash\") and process.args:(\"-i\") or\n (process.executable: (\"/usr/bin/openssl\") and process.args: (\"-connect\"))]\n [process where (process.name:(\"nc\",\"ncat\",\"netcat\",\"netcat.openbsd\",\"netcat.traditional\") or\n (process.name: \"openssl\" and process.executable: \"/usr/bin/openssl\"))]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"dd7f1524-643e-11ed-9e35-f661ea17fbcd:1.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ddab1f5f-7089-44f5-9fda-de5b11322e77:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ddab1f5f-7089-44f5-9fda-de5b11322e77:101.0.0.json new file mode 100644 index 0000000000000..a473a31405659 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ddab1f5f-7089-44f5-9fda-de5b11322e77:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"NullSessionPipe Registry Modification v101.0.0","rule_id":"ddab1f5f-7089-44f5-9fda-de5b11322e77:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies NullSessionPipe registry modifications that specify which pipes can be accessed anonymously. This could be indicative of adversary lateral movement preparation by making the added pipe available to everyone.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.welivesecurity.com/2019/05/29/turla-powershell-usage/","https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/network-access-restrict-anonymous-access-to-named-pipes-and-shares"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\nregistry.path : \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\services\\\\LanmanServer\\\\Parameters\\\\NullSessionPipes\" and\nlength(registry.data.strings) > 0\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"ddab1f5f-7089-44f5-9fda-de5b11322e77:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ddab1f5f-7089-44f5-9fda-de5b11322e77:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ddab1f5f-7089-44f5-9fda-de5b11322e77:101.0.1.json new file mode 100644 index 0000000000000..1ab9bd4394d27 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ddab1f5f-7089-44f5-9fda-de5b11322e77:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"NullSessionPipe Registry Modification v101.0.1","rule_id":"ddab1f5f-7089-44f5-9fda-de5b11322e77:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies NullSessionPipe registry modifications that specify which pipes can be accessed anonymously. This could be indicative of adversary lateral movement preparation by making the added pipe available to everyone.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.welivesecurity.com/2019/05/29/turla-powershell-usage/","https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/network-access-restrict-anonymous-access-to-named-pipes-and-shares"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\nregistry.path : \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\services\\\\LanmanServer\\\\Parameters\\\\NullSessionPipes\" and\nlength(registry.data.strings) > 0\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"ddab1f5f-7089-44f5-9fda-de5b11322e77:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ddab1f5f-7089-44f5-9fda-de5b11322e77:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ddab1f5f-7089-44f5-9fda-de5b11322e77:101.0.2.json new file mode 100644 index 0000000000000..1c44a65be81b3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ddab1f5f-7089-44f5-9fda-de5b11322e77:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"NullSessionPipe Registry Modification v101.0.2","rule_id":"ddab1f5f-7089-44f5-9fda-de5b11322e77:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies NullSessionPipe registry modifications that specify which pipes can be accessed anonymously. This could be indicative of adversary lateral movement preparation by making the added pipe available to everyone.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.welivesecurity.com/2019/05/29/turla-powershell-usage/","https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/network-access-restrict-anonymous-access-to-named-pipes-and-shares"],"tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\nregistry.path : \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\services\\\\LanmanServer\\\\Parameters\\\\NullSessionPipes\" and\nlength(registry.data.strings) > 0\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"ddab1f5f-7089-44f5-9fda-de5b11322e77:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/de9bd7e0-49e9-4e92-a64d-53ade2e66af1:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/de9bd7e0-49e9-4e92-a64d-53ade2e66af1:102.0.0.json new file mode 100644 index 0000000000000..5456faa770169 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/de9bd7e0-49e9-4e92-a64d-53ade2e66af1:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Child Process from a System Virtual Process v102.0.0","rule_id":"de9bd7e0-49e9-4e92-a64d-53ade2e66af1:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious child process of the Windows virtual system process, which could indicate code injection.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.pid == 4 and\n not process.executable : (\"Registry\", \"MemCompression\", \"?:\\\\Windows\\\\System32\\\\smss.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.pid","type":"long"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"de9bd7e0-49e9-4e92-a64d-53ade2e66af1:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/de9bd7e0-49e9-4e92-a64d-53ade2e66af1:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/de9bd7e0-49e9-4e92-a64d-53ade2e66af1:102.0.1.json new file mode 100644 index 0000000000000..2010ae929b2d8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/de9bd7e0-49e9-4e92-a64d-53ade2e66af1:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Child Process from a System Virtual Process v102.0.1","rule_id":"de9bd7e0-49e9-4e92-a64d-53ade2e66af1:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious child process of the Windows virtual system process, which could indicate code injection.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.pid == 4 and\n not process.executable : (\"Registry\", \"MemCompression\", \"?:\\\\Windows\\\\System32\\\\smss.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.pid","type":"long"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"de9bd7e0-49e9-4e92-a64d-53ade2e66af1:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/de9bd7e0-49e9-4e92-a64d-53ade2e66af1:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/de9bd7e0-49e9-4e92-a64d-53ade2e66af1:102.0.2.json new file mode 100644 index 0000000000000..134ed84f2d497 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/de9bd7e0-49e9-4e92-a64d-53ade2e66af1:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Child Process from a System Virtual Process v102.0.2","rule_id":"de9bd7e0-49e9-4e92-a64d-53ade2e66af1:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious child process of the Windows virtual system process, which could indicate code injection.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.pid == 4 and\n not process.executable : (\"Registry\", \"MemCompression\", \"?:\\\\Windows\\\\System32\\\\smss.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.pid","type":"long"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"de9bd7e0-49e9-4e92-a64d-53ade2e66af1:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/debff20a-46bc-4a4d-bae5-5cdd14222795:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/debff20a-46bc-4a4d-bae5-5cdd14222795:100.0.0.json new file mode 100644 index 0000000000000..e68b8337ebdae --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/debff20a-46bc-4a4d-bae5-5cdd14222795:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Base16 or Base32 Encoding/Decoding Activity v100.0.0","rule_id":"debff20a-46bc-4a4d-bae5-5cdd14222795:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may encode/decode data in an attempt to evade detection by host- or network-based security controls.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Automated tools such as Jenkins may encode or decode files as part of their normal behavior. These events can be filtered by the process executable or username values."],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1140","name":"Deobfuscate/Decode Files or Information","reference":"https://attack.mitre.org/techniques/T1140/"},{"id":"T1027","name":"Obfuscated Files or Information","reference":"https://attack.mitre.org/techniques/T1027/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:(base16 or base32 or base32plain or base32hex)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"debff20a-46bc-4a4d-bae5-5cdd14222795:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/debff20a-46bc-4a4d-bae5-5cdd14222795:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/debff20a-46bc-4a4d-bae5-5cdd14222795:100.0.1.json new file mode 100644 index 0000000000000..af4e85c60aa5d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/debff20a-46bc-4a4d-bae5-5cdd14222795:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Base16 or Base32 Encoding/Decoding Activity v100.0.1","rule_id":"debff20a-46bc-4a4d-bae5-5cdd14222795:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may encode/decode data in an attempt to evade detection by host- or network-based security controls.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Automated tools such as Jenkins may encode or decode files as part of their normal behavior. These events can be filtered by the process executable or username values."],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1140","name":"Deobfuscate/Decode Files or Information","reference":"https://attack.mitre.org/techniques/T1140/"},{"id":"T1027","name":"Obfuscated Files or Information","reference":"https://attack.mitre.org/techniques/T1027/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:(base16 or base32 or base32plain or base32hex)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"debff20a-46bc-4a4d-bae5-5cdd14222795:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/debff20a-46bc-4a4d-bae5-5cdd14222795:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/debff20a-46bc-4a4d-bae5-5cdd14222795:100.0.2.json new file mode 100644 index 0000000000000..1db68d0a19cf4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/debff20a-46bc-4a4d-bae5-5cdd14222795:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Base16 or Base32 Encoding/Decoding Activity v100.0.2","rule_id":"debff20a-46bc-4a4d-bae5-5cdd14222795:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries may encode/decode data in an attempt to evade detection by host- or network-based security controls.","risk_score":21,"severity":"low","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Automated tools such as Jenkins may encode or decode files as part of their normal behavior. These events can be filtered by the process executable or username values."],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1140","name":"Deobfuscate/Decode Files or Information","reference":"https://attack.mitre.org/techniques/T1140/"},{"id":"T1027","name":"Obfuscated Files or Information","reference":"https://attack.mitre.org/techniques/T1027/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:(base16 or base32 or base32plain or base32hex)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"debff20a-46bc-4a4d-bae5-5cdd14222795:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/df197323-72a8-46a9-a08e-3f5b04a4a97a:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/df197323-72a8-46a9-a08e-3f5b04a4a97a:100.0.0.json new file mode 100644 index 0000000000000..94f3f913d2d2c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/df197323-72a8-46a9-a08e-3f5b04a4a97a:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Windows User Calling the Metadata Service v100.0.0","rule_id":"df197323-72a8-46a9-a08e-3f5b04a4a97a:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for anomalous access to the cloud platform metadata service by an unusual user. The metadata service may be targeted in order to harvest credentials or user data scripts containing secrets.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program, or one that runs under a new or rarely used user context, could trigger this detection rule. Manual interrogation of the metadata service during debugging or troubleshooting could trigger this rule."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Windows","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.005","name":"Cloud Instance Metadata API","reference":"https://attack.mitre.org/techniques/T1552/005/"}]}]}],"anomaly_threshold":75,"machine_learning_job_id":["v3_windows_rare_metadata_user"],"type":"machine_learning"},"id":"df197323-72a8-46a9-a08e-3f5b04a4a97a:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/df197323-72a8-46a9-a08e-3f5b04a4a97a:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/df197323-72a8-46a9-a08e-3f5b04a4a97a:100.0.1.json new file mode 100644 index 0000000000000..5d598f6584c44 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/df197323-72a8-46a9-a08e-3f5b04a4a97a:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Windows User Calling the Metadata Service v100.0.1","rule_id":"df197323-72a8-46a9-a08e-3f5b04a4a97a:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for anomalous access to the cloud platform metadata service by an unusual user. The metadata service may be targeted in order to harvest credentials or user data scripts containing secrets.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program, or one that runs under a new or rarely used user context, could trigger this detection rule. Manual interrogation of the metadata service during debugging or troubleshooting could trigger this rule."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Windows","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.005","name":"Cloud Instance Metadata API","reference":"https://attack.mitre.org/techniques/T1552/005/"}]}]}],"anomaly_threshold":75,"machine_learning_job_id":["v3_windows_rare_metadata_user"],"type":"machine_learning"},"id":"df197323-72a8-46a9-a08e-3f5b04a4a97a:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/df197323-72a8-46a9-a08e-3f5b04a4a97a:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/df197323-72a8-46a9-a08e-3f5b04a4a97a:100.0.2.json new file mode 100644 index 0000000000000..7f9d9b53fe542 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/df197323-72a8-46a9-a08e-3f5b04a4a97a:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Windows User Calling the Metadata Service v100.0.2","rule_id":"df197323-72a8-46a9-a08e-3f5b04a4a97a:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for anomalous access to the cloud platform metadata service by an unusual user. The metadata service may be targeted in order to harvest credentials or user data scripts containing secrets.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A newly installed program, or one that runs under a new or rarely used user context, could trigger this detection rule. Manual interrogation of the metadata service during debugging or troubleshooting could trigger this rule."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Windows","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1552","name":"Unsecured Credentials","reference":"https://attack.mitre.org/techniques/T1552/","subtechnique":[{"id":"T1552.005","name":"Cloud Instance Metadata API","reference":"https://attack.mitre.org/techniques/T1552/005/"}]}]}],"anomaly_threshold":75,"machine_learning_job_id":["v3_windows_rare_metadata_user"],"type":"machine_learning"},"id":"df197323-72a8-46a9-a08e-3f5b04a4a97a:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/df26fd74-1baa-4479-b42e-48da84642330:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/df26fd74-1baa-4479-b42e-48da84642330:101.0.0.json new file mode 100644 index 0000000000000..7d36298f5e29b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/df26fd74-1baa-4479-b42e-48da84642330:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Automation Account Created v101.0.0","rule_id":"df26fd74-1baa-4479-b42e-48da84642330:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Azure Automation account is created. Azure Automation accounts can be used to automate management tasks and orchestrate actions across systems. An adversary may create an Automation account in order to maintain persistence in their target's environment.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://powerzure.readthedocs.io/en/latest/Functions/operational.html#create-backdoor","https://github.com/hausec/PowerZure","https://posts.specterops.io/attacking-azure-azure-ad-and-introducing-powerzure-ca70b330511a","https://azure.microsoft.com/en-in/blog/azure-automation-runbook-management/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/WRITE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"df26fd74-1baa-4479-b42e-48da84642330:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/df26fd74-1baa-4479-b42e-48da84642330:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/df26fd74-1baa-4479-b42e-48da84642330:101.0.1.json new file mode 100644 index 0000000000000..433363c6a3977 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/df26fd74-1baa-4479-b42e-48da84642330:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Automation Account Created v101.0.1","rule_id":"df26fd74-1baa-4479-b42e-48da84642330:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Azure Automation account is created. Azure Automation accounts can be used to automate management tasks and orchestrate actions across systems. An adversary may create an Automation account in order to maintain persistence in their target's environment.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://powerzure.readthedocs.io/en/latest/Functions/operational.html#create-backdoor","https://github.com/hausec/PowerZure","https://posts.specterops.io/attacking-azure-azure-ad-and-introducing-powerzure-ca70b330511a","https://azure.microsoft.com/en-in/blog/azure-automation-runbook-management/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/WRITE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"df26fd74-1baa-4479-b42e-48da84642330:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/df26fd74-1baa-4479-b42e-48da84642330:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/df26fd74-1baa-4479-b42e-48da84642330:101.0.2.json new file mode 100644 index 0000000000000..68e6af42692de --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/df26fd74-1baa-4479-b42e-48da84642330:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Automation Account Created v101.0.2","rule_id":"df26fd74-1baa-4479-b42e-48da84642330:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Azure Automation account is created. Azure Automation accounts can be used to automate management tasks and orchestrate actions across systems. An adversary may create an Automation account in order to maintain persistence in their target's environment.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://powerzure.readthedocs.io/en/latest/Functions/operational.html#create-backdoor","https://github.com/hausec/PowerZure","https://posts.specterops.io/attacking-azure-azure-ad-and-introducing-powerzure-ca70b330511a","https://azure.microsoft.com/en-in/blog/azure-automation-runbook-management/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/WRITE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"df26fd74-1baa-4479-b42e-48da84642330:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/df6f62d9-caab-4b88-affa-044f4395a1e0:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/df6f62d9-caab-4b88-affa-044f4395a1e0:100.0.0.json new file mode 100644 index 0000000000000..315fefe42c00f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/df6f62d9-caab-4b88-affa-044f4395a1e0:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Dynamic Linker Copy v100.0.0","rule_id":"df6f62d9-caab-4b88-affa-044f4395a1e0:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the copying of the Linux dynamic loader binary and subsequent file creation for the purpose of creating a backup copy. This technique was seen recently being utilized by Linux malware prior to patching the dynamic loader in order to inject and preload a malicious shared object file. This activity should never occur and if it does then it should be considered highly suspicious or malicious.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.intezer.com/blog/incident-response/orbit-new-undetected-linux-threat/"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Orbit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.006","name":"Dynamic Linker Hijacking","reference":"https://attack.mitre.org/techniques/T1574/006/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=1m\n[process where event.type == \"start\" and process.name : (\"cp\", \"rsync\") and process.args : (\"/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2\", \"/etc/ld.so.preload\")]\n[file where event.action == \"creation\" and file.extension == \"so\"]\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"df6f62d9-caab-4b88-affa-044f4395a1e0:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/df6f62d9-caab-4b88-affa-044f4395a1e0:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/df6f62d9-caab-4b88-affa-044f4395a1e0:100.0.1.json new file mode 100644 index 0000000000000..be4c04929c370 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/df6f62d9-caab-4b88-affa-044f4395a1e0:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Dynamic Linker Copy v100.0.1","rule_id":"df6f62d9-caab-4b88-affa-044f4395a1e0:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the copying of the Linux dynamic loader binary and subsequent file creation for the purpose of creating a backup copy. This technique was seen recently being utilized by Linux malware prior to patching the dynamic loader in order to inject and preload a malicious shared object file. This activity should never occur and if it does then it should be considered highly suspicious or malicious.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.intezer.com/blog/incident-response/orbit-new-undetected-linux-threat/"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Orbit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.006","name":"Dynamic Linker Hijacking","reference":"https://attack.mitre.org/techniques/T1574/006/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=1m\n[process where event.type == \"start\" and process.name : (\"cp\", \"rsync\") and process.args : (\"/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2\", \"/etc/ld.so.preload\")]\n[file where event.action == \"creation\" and file.extension == \"so\"]\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"df6f62d9-caab-4b88-affa-044f4395a1e0:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/df6f62d9-caab-4b88-affa-044f4395a1e0:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/df6f62d9-caab-4b88-affa-044f4395a1e0:100.0.2.json new file mode 100644 index 0000000000000..963ff00fdb25b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/df6f62d9-caab-4b88-affa-044f4395a1e0:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Dynamic Linker Copy v100.0.2","rule_id":"df6f62d9-caab-4b88-affa-044f4395a1e0:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the copying of the Linux dynamic loader binary and subsequent file creation for the purpose of creating a backup copy. This technique was seen recently being utilized by Linux malware prior to patching the dynamic loader in order to inject and preload a malicious shared object file. This activity should never occur and if it does then it should be considered highly suspicious or malicious.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://www.intezer.com/blog/incident-response/orbit-new-undetected-linux-threat/"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Orbit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1574","name":"Hijack Execution Flow","reference":"https://attack.mitre.org/techniques/T1574/","subtechnique":[{"id":"T1574.006","name":"Dynamic Linker Hijacking","reference":"https://attack.mitre.org/techniques/T1574/006/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=1m\n[process where event.type == \"start\" and process.name : (\"cp\", \"rsync\") and process.args : (\"/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2\", \"/etc/ld.so.preload\")]\n[file where event.action == \"creation\" and file.extension == \"so\"]\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"df6f62d9-caab-4b88-affa-044f4395a1e0:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/df7fda76-c92b-4943-bc68-04460a5ea5ba:200.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/df7fda76-c92b-4943-bc68-04460a5ea5ba:200.0.0.json new file mode 100644 index 0000000000000..3fb06e96b2c7d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/df7fda76-c92b-4943-bc68-04460a5ea5ba:200.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Pod Created With HostPID v200.0.0","rule_id":"df7fda76-c92b-4943-bc68-04460a5ea5ba:200.0.0","rule_version":"200.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects an attempt to create or modify a pod attached to the host PID namespace. HostPID allows a pod to access all the processes running on the host and could allow an attacker to take malicious action. When paired with ptrace this can be used to escalate privileges outside of the container. When paired with a privileged container, the pod can see all of the processes on the host. An attacker can enter the init system (PID 1) on the host. From there, they could execute a shell and continue to escalate privileges to root.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator or developer may want to use a pod that runs as root and shares the hosts IPC, Network, and PID namespaces for debugging purposes. If something is going wrong in the cluster and there is no easy way to SSH onto the host nodes directly, a privileged pod of this nature can be useful for viewing things like iptable rules and network namespaces from the host's perspective. Add exceptions for trusted container images using the query field \"kubernetes.audit.requestObject.spec.container.image\""],"references":["https://research.nccgroup.com/2021/11/10/detection-engineering-for-kubernetes-clusters/#part3-kubernetes-detections","https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces","https://bishopfox.com/blog/kubernetes-pod-privilege-escalation"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.objectRef.resource:\"pods\" \n and kubernetes.audit.verb:(\"create\" or \"update\" or \"patch\") \n and kubernetes.audit.requestObject.spec.hostPID:true\n and not kubernetes.audit.requestObject.spec.containers.image: (\"docker.elastic.co/beats/elastic-agent:8.4.0\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.hostPID","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"df7fda76-c92b-4943-bc68-04460a5ea5ba:200.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/df7fda76-c92b-4943-bc68-04460a5ea5ba:200.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/df7fda76-c92b-4943-bc68-04460a5ea5ba:200.0.1.json new file mode 100644 index 0000000000000..783103a6fccf6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/df7fda76-c92b-4943-bc68-04460a5ea5ba:200.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Pod Created With HostPID v200.0.1","rule_id":"df7fda76-c92b-4943-bc68-04460a5ea5ba:200.0.1","rule_version":"200.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects an attempt to create or modify a pod attached to the host PID namespace. HostPID allows a pod to access all the processes running on the host and could allow an attacker to take malicious action. When paired with ptrace this can be used to escalate privileges outside of the container. When paired with a privileged container, the pod can see all of the processes on the host. An attacker can enter the init system (PID 1) on the host. From there, they could execute a shell and continue to escalate privileges to root.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator or developer may want to use a pod that runs as root and shares the hosts IPC, Network, and PID namespaces for debugging purposes. If something is going wrong in the cluster and there is no easy way to SSH onto the host nodes directly, a privileged pod of this nature can be useful for viewing things like iptable rules and network namespaces from the host's perspective. Add exceptions for trusted container images using the query field \"kubernetes.audit.requestObject.spec.container.image\""],"references":["https://research.nccgroup.com/2021/11/10/detection-engineering-for-kubernetes-clusters/#part3-kubernetes-detections","https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces","https://bishopfox.com/blog/kubernetes-pod-privilege-escalation"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.objectRef.resource:\"pods\" \n and kubernetes.audit.verb:(\"create\" or \"update\" or \"patch\") \n and kubernetes.audit.requestObject.spec.hostPID:true\n and not kubernetes.audit.requestObject.spec.containers.image: (\"docker.elastic.co/beats/elastic-agent:8.4.0\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.hostPID","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"df7fda76-c92b-4943-bc68-04460a5ea5ba:200.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/df7fda76-c92b-4943-bc68-04460a5ea5ba:200.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/df7fda76-c92b-4943-bc68-04460a5ea5ba:200.0.2.json new file mode 100644 index 0000000000000..db7955246b8b1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/df7fda76-c92b-4943-bc68-04460a5ea5ba:200.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kubernetes Pod Created With HostPID v200.0.2","rule_id":"df7fda76-c92b-4943-bc68-04460a5ea5ba:200.0.2","rule_version":"200.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects an attempt to create or modify a pod attached to the host PID namespace. HostPID allows a pod to access all the processes running on the host and could allow an attacker to take malicious action. When paired with ptrace this can be used to escalate privileges outside of the container. When paired with a privileged container, the pod can see all of the processes on the host. An attacker can enter the init system (PID 1) on the host. From there, they could execute a shell and continue to escalate privileges to root.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["An administrator or developer may want to use a pod that runs as root and shares the hosts IPC, Network, and PID namespaces for debugging purposes. If something is going wrong in the cluster and there is no easy way to SSH onto the host nodes directly, a privileged pod of this nature can be useful for viewing things like iptable rules and network namespaces from the host's perspective. Add exceptions for trusted container images using the query field \"kubernetes.audit.requestObject.spec.container.image\""],"references":["https://research.nccgroup.com/2021/11/10/detection-engineering-for-kubernetes-clusters/#part3-kubernetes-detections","https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces","https://bishopfox.com/blog/kubernetes-pod-privilege-escalation"],"tags":["Elastic","Kubernetes","Continuous Monitoring","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1611","name":"Escape to Host","reference":"https://attack.mitre.org/techniques/T1611/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1610","name":"Deploy Container","reference":"https://attack.mitre.org/techniques/T1610/"}]}],"type":"query","index":["logs-kubernetes.*"],"language":"kuery","query":"event.dataset : \"kubernetes.audit_logs\" \n and kubernetes.audit.annotations.authorization_k8s_io/decision:\"allow\" \n and kubernetes.audit.objectRef.resource:\"pods\" \n and kubernetes.audit.verb:(\"create\" or \"update\" or \"patch\") \n and kubernetes.audit.requestObject.spec.hostPID:true\n and not kubernetes.audit.requestObject.spec.containers.image: (\"docker.elastic.co/beats/elastic-agent:8.4.0\")\n","related_integrations":[{"package":"kubernetes","version":"^1.4.1"}],"required_fields":[{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":false,"name":"kubernetes.audit.annotations.authorization_k8s_io/decision","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.objectRef.resource","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.containers.image","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.requestObject.spec.hostPID","type":"unknown"},{"ecs":false,"name":"kubernetes.audit.verb","type":"unknown"}],"setup":"The Kubernetes Fleet integration with Audit Logs enabled or similarly structured data is required to be compatible with this rule."},"id":"df7fda76-c92b-4943-bc68-04460a5ea5ba:200.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e02bd3ea-72c6-4181-ac2b-0f83d17ad969:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e02bd3ea-72c6-4181-ac2b-0f83d17ad969:101.0.0.json new file mode 100644 index 0000000000000..32a59f2efec6a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e02bd3ea-72c6-4181-ac2b-0f83d17ad969:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Firewall Policy Deletion v101.0.0","rule_id":"e02bd3ea-72c6-4181-ac2b-0f83d17ad969:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a firewall policy in Azure. An adversary may delete a firewall policy in an attempt to evade defenses and/or to eliminate barriers to their objective.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Firewall policy deletions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Firewall policy deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/firewall-manager/policy-overview"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.NETWORK/FIREWALLPOLICIES/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e02bd3ea-72c6-4181-ac2b-0f83d17ad969:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e02bd3ea-72c6-4181-ac2b-0f83d17ad969:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e02bd3ea-72c6-4181-ac2b-0f83d17ad969:101.0.1.json new file mode 100644 index 0000000000000..4293d6271ab26 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e02bd3ea-72c6-4181-ac2b-0f83d17ad969:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Firewall Policy Deletion v101.0.1","rule_id":"e02bd3ea-72c6-4181-ac2b-0f83d17ad969:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a firewall policy in Azure. An adversary may delete a firewall policy in an attempt to evade defenses and/or to eliminate barriers to their objective.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Firewall policy deletions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Firewall policy deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/firewall-manager/policy-overview"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.NETWORK/FIREWALLPOLICIES/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e02bd3ea-72c6-4181-ac2b-0f83d17ad969:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e02bd3ea-72c6-4181-ac2b-0f83d17ad969:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e02bd3ea-72c6-4181-ac2b-0f83d17ad969:101.0.2.json new file mode 100644 index 0000000000000..58e476aa8a0b8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e02bd3ea-72c6-4181-ac2b-0f83d17ad969:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Firewall Policy Deletion v101.0.2","rule_id":"e02bd3ea-72c6-4181-ac2b-0f83d17ad969:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of a firewall policy in Azure. An adversary may delete a firewall policy in an attempt to evade defenses and/or to eliminate barriers to their objective.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Firewall policy deletions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Firewall policy deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/firewall-manager/policy-overview"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Network Security"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.NETWORK/FIREWALLPOLICIES/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e02bd3ea-72c6-4181-ac2b-0f83d17ad969:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e052c845-48d0-4f46-8a13-7d0aba05df82:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e052c845-48d0-4f46-8a13-7d0aba05df82:100.0.0.json new file mode 100644 index 0000000000000..75a3607107eff --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e052c845-48d0-4f46-8a13-7d0aba05df82:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"KRBTGT Delegation Backdoor v100.0.0","rule_id":"e052c845-48d0-4f46-8a13-7d0aba05df82:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the modification of the msDS-AllowedToDelegateTo attribute to KRBTGT. Attackers can use this technique to maintain persistence to the domain by having the ability to request tickets for the KRBTGT service.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://skyblue.team/posts/delegate-krbtgt","https://github.com/atc-project/atomic-threat-coverage/blob/master/Atomic_Threat_Coverage/Logging_Policies/LP_0026_windows_audit_user_account_management.md"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Active Directory"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/"}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:modified-user-account and event.code:4738 and winlog.event_data.AllowedToDelegateTo:*krbtgt*\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AllowedToDelegateTo","type":"unknown"}],"setup":"The 'Audit User Account Management' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nAccount Management >\nAudit User Account Management (Success,Failure)\n```"},"id":"e052c845-48d0-4f46-8a13-7d0aba05df82:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e052c845-48d0-4f46-8a13-7d0aba05df82:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e052c845-48d0-4f46-8a13-7d0aba05df82:100.0.1.json new file mode 100644 index 0000000000000..48b93d0703016 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e052c845-48d0-4f46-8a13-7d0aba05df82:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"KRBTGT Delegation Backdoor v100.0.1","rule_id":"e052c845-48d0-4f46-8a13-7d0aba05df82:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the modification of the msDS-AllowedToDelegateTo attribute to KRBTGT. Attackers can use this technique to maintain persistence to the domain by having the ability to request tickets for the KRBTGT service.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://skyblue.team/posts/delegate-krbtgt","https://github.com/atc-project/atomic-threat-coverage/blob/master/Atomic_Threat_Coverage/Logging_Policies/LP_0026_windows_audit_user_account_management.md"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Active Directory"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/"}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:modified-user-account and event.code:4738 and winlog.event_data.AllowedToDelegateTo:*krbtgt*\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AllowedToDelegateTo","type":"unknown"}],"setup":"The 'Audit User Account Management' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nAccount Management >\nAudit User Account Management (Success,Failure)\n```"},"id":"e052c845-48d0-4f46-8a13-7d0aba05df82:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e052c845-48d0-4f46-8a13-7d0aba05df82:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e052c845-48d0-4f46-8a13-7d0aba05df82:100.0.2.json new file mode 100644 index 0000000000000..01bb1cf52eecd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e052c845-48d0-4f46-8a13-7d0aba05df82:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"KRBTGT Delegation Backdoor v100.0.2","rule_id":"e052c845-48d0-4f46-8a13-7d0aba05df82:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the modification of the msDS-AllowedToDelegateTo attribute to KRBTGT. Attackers can use this technique to maintain persistence to the domain by having the ability to request tickets for the KRBTGT service.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://skyblue.team/posts/delegate-krbtgt","https://github.com/atc-project/atomic-threat-coverage/blob/master/Atomic_Threat_Coverage/Logging_Policies/LP_0026_windows_audit_user_account_management.md"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence","Active Directory"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/"}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action:modified-user-account and event.code:4738 and winlog.event_data.AllowedToDelegateTo:*krbtgt*\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.AllowedToDelegateTo","type":"unknown"}],"setup":"The 'Audit User Account Management' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nAccount Management >\nAudit User Account Management (Success,Failure)\n```"},"id":"e052c845-48d0-4f46-8a13-7d0aba05df82:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e08ccd49-0380-4b2b-8d71-8000377d6e49:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e08ccd49-0380-4b2b-8d71-8000377d6e49:102.0.0.json new file mode 100644 index 0000000000000..378fe364e689a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e08ccd49-0380-4b2b-8d71-8000377d6e49:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempts to Brute Force an Okta User Account v102.0.0","rule_id":"e08ccd49-0380-4b2b-8d71-8000377d6e49:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Okta user account is locked out 3 times within a 3 hour window. An adversary may attempt a brute force or password spraying attack to obtain unauthorized access to user accounts. The default Okta authentication policy ensures that a user account is locked out after 10 failed authentication attempts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic","@BenB196","Austin Songer"],"from":"now-180m","references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:okta.system and event.action:user.account.lock\n","threshold":{"field":["okta.actor.alternate_id"],"value":3},"type":"threshold","index":["filebeat-*","logs-okta*"],"language":"kuery","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e08ccd49-0380-4b2b-8d71-8000377d6e49:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e08ccd49-0380-4b2b-8d71-8000377d6e49:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e08ccd49-0380-4b2b-8d71-8000377d6e49:102.0.1.json new file mode 100644 index 0000000000000..8a8e37937287e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e08ccd49-0380-4b2b-8d71-8000377d6e49:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempts to Brute Force an Okta User Account v102.0.1","rule_id":"e08ccd49-0380-4b2b-8d71-8000377d6e49:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Okta user account is locked out 3 times within a 3 hour window. An adversary may attempt a brute force or password spraying attack to obtain unauthorized access to user accounts. The default Okta authentication policy ensures that a user account is locked out after 10 failed authentication attempts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic","@BenB196","Austin Songer"],"from":"now-180m","references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:okta.system and event.action:user.account.lock\n","threshold":{"field":["okta.actor.alternate_id"],"value":3},"type":"threshold","index":["filebeat-*","logs-okta*"],"language":"kuery","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e08ccd49-0380-4b2b-8d71-8000377d6e49:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e08ccd49-0380-4b2b-8d71-8000377d6e49:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e08ccd49-0380-4b2b-8d71-8000377d6e49:102.0.2.json new file mode 100644 index 0000000000000..a5abefd4045ae --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e08ccd49-0380-4b2b-8d71-8000377d6e49:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempts to Brute Force an Okta User Account v102.0.2","rule_id":"e08ccd49-0380-4b2b-8d71-8000377d6e49:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Okta user account is locked out 3 times within a 3 hour window. An adversary may attempt a brute force or password spraying attack to obtain unauthorized access to user accounts. The default Okta authentication policy ensures that a user account is locked out after 10 failed authentication attempts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic","@BenB196","Austin Songer"],"from":"now-180m","references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:okta.system and event.action:user.account.lock\n","threshold":{"field":["okta.actor.alternate_id"],"value":3},"type":"threshold","index":["filebeat-*","logs-okta*"],"language":"kuery","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e08ccd49-0380-4b2b-8d71-8000377d6e49:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e0f36de1-0342-453d-95a9-a068b257b053:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e0f36de1-0342-453d-95a9-a068b257b053:101.0.0.json new file mode 100644 index 0000000000000..a5eaf82f6e029 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e0f36de1-0342-453d-95a9-a068b257b053:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Event Hub Deletion v101.0.0","rule_id":"e0f36de1-0342-453d-95a9-a068b257b053:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an Event Hub deletion in Azure. An Event Hub is an event processing service that ingests and processes large volumes of events and data. An adversary may delete an Event Hub in an attempt to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Event Hub deletions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Event Hub deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-about","https://azure.microsoft.com/en-in/services/event-hubs/","https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-features"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.EVENTHUB/NAMESPACES/EVENTHUBS/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e0f36de1-0342-453d-95a9-a068b257b053:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e0f36de1-0342-453d-95a9-a068b257b053:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e0f36de1-0342-453d-95a9-a068b257b053:101.0.1.json new file mode 100644 index 0000000000000..6d8c4c4d3f4e6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e0f36de1-0342-453d-95a9-a068b257b053:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Event Hub Deletion v101.0.1","rule_id":"e0f36de1-0342-453d-95a9-a068b257b053:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an Event Hub deletion in Azure. An Event Hub is an event processing service that ingests and processes large volumes of events and data. An adversary may delete an Event Hub in an attempt to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Event Hub deletions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Event Hub deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-about","https://azure.microsoft.com/en-in/services/event-hubs/","https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-features"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.EVENTHUB/NAMESPACES/EVENTHUBS/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e0f36de1-0342-453d-95a9-a068b257b053:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e0f36de1-0342-453d-95a9-a068b257b053:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e0f36de1-0342-453d-95a9-a068b257b053:101.0.2.json new file mode 100644 index 0000000000000..e0078138ba8fc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e0f36de1-0342-453d-95a9-a068b257b053:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Event Hub Deletion v101.0.2","rule_id":"e0f36de1-0342-453d-95a9-a068b257b053:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an Event Hub deletion in Azure. An Event Hub is an event processing service that ingests and processes large volumes of events and data. An adversary may delete an Event Hub in an attempt to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Event Hub deletions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Event Hub deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-about","https://azure.microsoft.com/en-in/services/event-hubs/","https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-features"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Log Auditing"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.EVENTHUB/NAMESPACES/EVENTHUBS/DELETE\" and event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e0f36de1-0342-453d-95a9-a068b257b053:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e12c0318-99b1-44f2-830c-3a38a43207ca:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e12c0318-99b1-44f2-830c-3a38a43207ca:101.0.0.json new file mode 100644 index 0000000000000..06eaeaa27a59d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e12c0318-99b1-44f2-830c-3a38a43207ca:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Route Table Created v101.0.0","rule_id":"e12c0318-99b1-44f2-830c-3a38a43207ca:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an AWS Route Table has been created.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Route Tables may be created by a system or network administrators. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Route Table creation by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule. Automated processes that use Terraform may lead to false positives."],"from":"now-60m","interval":"10m","references":["https://docs.datadoghq.com/security_platform/default_rules/aws-ec2-route-table-modified/","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateRoute.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateRouteTable"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:(CreateRoute or CreateRouteTable) and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e12c0318-99b1-44f2-830c-3a38a43207ca:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e12c0318-99b1-44f2-830c-3a38a43207ca:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e12c0318-99b1-44f2-830c-3a38a43207ca:101.0.1.json new file mode 100644 index 0000000000000..28cee1bb97758 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e12c0318-99b1-44f2-830c-3a38a43207ca:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Route Table Created v101.0.1","rule_id":"e12c0318-99b1-44f2-830c-3a38a43207ca:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an AWS Route Table has been created.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Route Tables may be created by a system or network administrators. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Route Table creation by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule. Automated processes that use Terraform may lead to false positives."],"from":"now-60m","interval":"10m","references":["https://docs.datadoghq.com/security_platform/default_rules/aws-ec2-route-table-modified/","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateRoute.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateRouteTable"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:(CreateRoute or CreateRouteTable) and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e12c0318-99b1-44f2-830c-3a38a43207ca:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e12c0318-99b1-44f2-830c-3a38a43207ca:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e12c0318-99b1-44f2-830c-3a38a43207ca:101.0.2.json new file mode 100644 index 0000000000000..fd9455508b014 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e12c0318-99b1-44f2-830c-3a38a43207ca:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Route Table Created v101.0.2","rule_id":"e12c0318-99b1-44f2-830c-3a38a43207ca:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an AWS Route Table has been created.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Route Tables may be created by a system or network administrators. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Route Table creation by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule. Automated processes that use Terraform may lead to false positives."],"from":"now-60m","interval":"10m","references":["https://docs.datadoghq.com/security_platform/default_rules/aws-ec2-route-table-modified/","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateRoute.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateRouteTable"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:(CreateRoute or CreateRouteTable) and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e12c0318-99b1-44f2-830c-3a38a43207ca:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e14c5fd7-fdd7-49c2-9e5b-ec49d817bc8d:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e14c5fd7-fdd7-49c2-9e5b-ec49d817bc8d:101.0.0.json new file mode 100644 index 0000000000000..c9c89b56ab78e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e14c5fd7-fdd7-49c2-9e5b-ec49d817bc8d:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS RDS Cluster Creation v101.0.0","rule_id":"e14c5fd7-fdd7-49c2-9e5b-ec49d817bc8d:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a new Amazon Relational Database Service (RDS) Aurora DB cluster or global database spread across multiple regions.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Valid clusters may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Cluster creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/create-db-cluster.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/create-global-cluster.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateGlobalCluster.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1133","name":"External Remote Services","reference":"https://attack.mitre.org/techniques/T1133/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:(CreateDBCluster or CreateGlobalCluster) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e14c5fd7-fdd7-49c2-9e5b-ec49d817bc8d:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e14c5fd7-fdd7-49c2-9e5b-ec49d817bc8d:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e14c5fd7-fdd7-49c2-9e5b-ec49d817bc8d:101.0.1.json new file mode 100644 index 0000000000000..5fc5cd664d120 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e14c5fd7-fdd7-49c2-9e5b-ec49d817bc8d:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS RDS Cluster Creation v101.0.1","rule_id":"e14c5fd7-fdd7-49c2-9e5b-ec49d817bc8d:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a new Amazon Relational Database Service (RDS) Aurora DB cluster or global database spread across multiple regions.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Valid clusters may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Cluster creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/create-db-cluster.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/create-global-cluster.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateGlobalCluster.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1133","name":"External Remote Services","reference":"https://attack.mitre.org/techniques/T1133/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:(CreateDBCluster or CreateGlobalCluster) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e14c5fd7-fdd7-49c2-9e5b-ec49d817bc8d:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e14c5fd7-fdd7-49c2-9e5b-ec49d817bc8d:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e14c5fd7-fdd7-49c2-9e5b-ec49d817bc8d:101.0.2.json new file mode 100644 index 0000000000000..6bbe83d5505b5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e14c5fd7-fdd7-49c2-9e5b-ec49d817bc8d:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS RDS Cluster Creation v101.0.2","rule_id":"e14c5fd7-fdd7-49c2-9e5b-ec49d817bc8d:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a new Amazon Relational Database Service (RDS) Aurora DB cluster or global database spread across multiple regions.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Valid clusters may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Cluster creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/create-db-cluster.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/create-global-cluster.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateGlobalCluster.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1133","name":"External Remote Services","reference":"https://attack.mitre.org/techniques/T1133/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:(CreateDBCluster or CreateGlobalCluster) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e14c5fd7-fdd7-49c2-9e5b-ec49d817bc8d:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e19e64ee-130e-4c07-961f-8a339f0b8362:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e19e64ee-130e-4c07-961f-8a339f0b8362:100.0.0.json new file mode 100644 index 0000000000000..6133dff4a4d73 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e19e64ee-130e-4c07-961f-8a339f0b8362:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Connection to External Network via Telnet v100.0.0","rule_id":"e19e64ee-130e-4c07-961f-8a339f0b8362:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Telnet provides a command line interface for communication with a remote device or server. This rule identifies Telnet network connections to publicly routable IP addresses.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Telnet can be used for both benign or malicious purposes. Telnet is included by default in some Linux distributions, so its presence is not inherently suspicious. The use of Telnet to manage devices remotely has declined in recent years in favor of more secure protocols such as SSH. Telnet usage by non-automated tools or frameworks may be suspicious."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Linux","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name == \"telnet\" and event.type == \"start\"]\n [network where process.name == \"telnet\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\",\n \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\",\n \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"e19e64ee-130e-4c07-961f-8a339f0b8362:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e19e64ee-130e-4c07-961f-8a339f0b8362:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e19e64ee-130e-4c07-961f-8a339f0b8362:100.0.1.json new file mode 100644 index 0000000000000..61314c0798a3f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e19e64ee-130e-4c07-961f-8a339f0b8362:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Connection to External Network via Telnet v100.0.1","rule_id":"e19e64ee-130e-4c07-961f-8a339f0b8362:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Telnet provides a command line interface for communication with a remote device or server. This rule identifies Telnet network connections to publicly routable IP addresses.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Telnet can be used for both benign or malicious purposes. Telnet is included by default in some Linux distributions, so its presence is not inherently suspicious. The use of Telnet to manage devices remotely has declined in recent years in favor of more secure protocols such as SSH. Telnet usage by non-automated tools or frameworks may be suspicious."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Linux","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name == \"telnet\" and event.type == \"start\"]\n [network where process.name == \"telnet\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\",\n \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\",\n \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"e19e64ee-130e-4c07-961f-8a339f0b8362:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e19e64ee-130e-4c07-961f-8a339f0b8362:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e19e64ee-130e-4c07-961f-8a339f0b8362:100.0.2.json new file mode 100644 index 0000000000000..779dc3418eeaf --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e19e64ee-130e-4c07-961f-8a339f0b8362:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Connection to External Network via Telnet v100.0.2","rule_id":"e19e64ee-130e-4c07-961f-8a339f0b8362:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Telnet provides a command line interface for communication with a remote device or server. This rule identifies Telnet network connections to publicly routable IP addresses.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"false_positives":["Telnet can be used for both benign or malicious purposes. Telnet is included by default in some Linux distributions, so its presence is not inherently suspicious. The use of Telnet to manage devices remotely has declined in recent years in favor of more secure protocols such as SSH. Telnet usage by non-automated tools or frameworks may be suspicious."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Linux","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"sequence by process.entity_id\n [process where process.name == \"telnet\" and event.type == \"start\"]\n [network where process.name == \"telnet\" and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\",\n \"192.0.0.171/32\", \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\",\n \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\", \"100.64.0.0/10\", \"192.175.48.0/24\",\n \"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\")]\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"e19e64ee-130e-4c07-961f-8a339f0b8362:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e26aed74-c816-40d3-a810-48d6fbd8b2fd:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e26aed74-c816-40d3-a810-48d6fbd8b2fd:100.0.0.json new file mode 100644 index 0000000000000..fe7d9e47f7ea6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e26aed74-c816-40d3-a810-48d6fbd8b2fd:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Spike in Logon Events from a Source IP v100.0.0","rule_id":"e26aed74-c816-40d3-a810-48d6fbd8b2fd:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job found an unusually large spike in successful authentication events from a particular source IP address. This can be due to password spraying, user enumeration or brute force activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Build servers and CI systems can sometimes trigger this alert. Security test cycles that include brute force or password spraying activities may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_high_count_logon_events_for_a_source_ip","type":"machine_learning"},"id":"e26aed74-c816-40d3-a810-48d6fbd8b2fd:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e26aed74-c816-40d3-a810-48d6fbd8b2fd:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e26aed74-c816-40d3-a810-48d6fbd8b2fd:100.0.1.json new file mode 100644 index 0000000000000..7bf131c6a77c4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e26aed74-c816-40d3-a810-48d6fbd8b2fd:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Spike in Logon Events from a Source IP v100.0.1","rule_id":"e26aed74-c816-40d3-a810-48d6fbd8b2fd:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job found an unusually large spike in successful authentication events from a particular source IP address. This can be due to password spraying, user enumeration or brute force activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Build servers and CI systems can sometimes trigger this alert. Security test cycles that include brute force or password spraying activities may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_high_count_logon_events_for_a_source_ip","type":"machine_learning"},"id":"e26aed74-c816-40d3-a810-48d6fbd8b2fd:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e26aed74-c816-40d3-a810-48d6fbd8b2fd:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e26aed74-c816-40d3-a810-48d6fbd8b2fd:100.0.2.json new file mode 100644 index 0000000000000..66f9a00a1c3cc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e26aed74-c816-40d3-a810-48d6fbd8b2fd:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Spike in Logon Events from a Source IP v100.0.2","rule_id":"e26aed74-c816-40d3-a810-48d6fbd8b2fd:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job found an unusually large spike in successful authentication events from a particular source IP address. This can be due to password spraying, user enumeration or brute force activity.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Build servers and CI systems can sometimes trigger this alert. Security test cycles that include brute force or password spraying activities may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Authentication","Threat Detection","ML","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"anomaly_threshold":75,"machine_learning_job_id":"auth_high_count_logon_events_for_a_source_ip","type":"machine_learning"},"id":"e26aed74-c816-40d3-a810-48d6fbd8b2fd:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e26f042e-c590-4e82-8e05-41e81bd822ad:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e26f042e-c590-4e82-8e05-41e81bd822ad:102.0.0.json new file mode 100644 index 0000000000000..2d4e8e9998603 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e26f042e-c590-4e82-8e05-41e81bd822ad:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious .NET Reflection via PowerShell v102.0.0","rule_id":"e26f042e-c590-4e82-8e05-41e81bd822ad:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of Reflection.Assembly to load PEs and DLLs in memory in PowerShell scripts. Attackers use this method to load executables and DLLs without writing to the disk, bypassing security solutions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious .NET Reflection via PowerShell\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can use .NET reflection to load PEs and DLLs in memory. These payloads are commonly embedded in the script,\nwhich can circumvent file-based security protections.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the script using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately outside engineering or IT business units. As long as the analyst did\nnot identify malware or suspicious activity related to the user or host, this alert can be dismissed.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n- PowerShell Suspicious Payload Encoded and Compressed - 81fe9dc6-a2d7-4192-a2d8-eed98afc766a\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/dotnet/api/system.reflection.assembly.load"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/","subtechnique":[{"id":"T1055.001","name":"Dynamic-link Library Injection","reference":"https://attack.mitre.org/techniques/T1055/001/"},{"id":"T1055.002","name":"Portable Executable Injection","reference":"https://attack.mitre.org/techniques/T1055/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n \"[System.Reflection.Assembly]::Load\" or\n \"[Reflection.Assembly]::Load\"\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"e26f042e-c590-4e82-8e05-41e81bd822ad:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e26f042e-c590-4e82-8e05-41e81bd822ad:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e26f042e-c590-4e82-8e05-41e81bd822ad:102.0.1.json new file mode 100644 index 0000000000000..5f57c7e08b4e5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e26f042e-c590-4e82-8e05-41e81bd822ad:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious .NET Reflection via PowerShell v102.0.1","rule_id":"e26f042e-c590-4e82-8e05-41e81bd822ad:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of Reflection.Assembly to load PEs and DLLs in memory in PowerShell scripts. Attackers use this method to load executables and DLLs without writing to the disk, bypassing security solutions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious .NET Reflection via PowerShell\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can use .NET reflection to load PEs and DLLs in memory. These payloads are commonly embedded in the script,\nwhich can circumvent file-based security protections.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the script using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately outside engineering or IT business units. As long as the analyst did\nnot identify malware or suspicious activity related to the user or host, this alert can be dismissed.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n- PowerShell Suspicious Payload Encoded and Compressed - 81fe9dc6-a2d7-4192-a2d8-eed98afc766a\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/dotnet/api/system.reflection.assembly.load"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/","subtechnique":[{"id":"T1055.001","name":"Dynamic-link Library Injection","reference":"https://attack.mitre.org/techniques/T1055/001/"},{"id":"T1055.002","name":"Portable Executable Injection","reference":"https://attack.mitre.org/techniques/T1055/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n \"[System.Reflection.Assembly]::Load\" or\n \"[Reflection.Assembly]::Load\"\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"e26f042e-c590-4e82-8e05-41e81bd822ad:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e26f042e-c590-4e82-8e05-41e81bd822ad:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e26f042e-c590-4e82-8e05-41e81bd822ad:102.0.2.json new file mode 100644 index 0000000000000..f2a5ba1e1b343 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e26f042e-c590-4e82-8e05-41e81bd822ad:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious .NET Reflection via PowerShell v102.0.2","rule_id":"e26f042e-c590-4e82-8e05-41e81bd822ad:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects the use of Reflection.Assembly to load PEs and DLLs in memory in PowerShell scripts. Attackers use this method to load executables and DLLs without writing to the disk, bypassing security solutions.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Suspicious .NET Reflection via PowerShell\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks. This\nmakes it available for use in various environments, and creates an attractive way for attackers to execute code.\n\nAttackers can use .NET reflection to load PEs and DLLs in memory. These payloads are commonly embedded in the script,\nwhich can circumvent file-based security protections.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Examine file or network events from the involved PowerShell process for suspicious behavior.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Evaluate whether the user needs to use PowerShell to complete tasks.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the script using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately outside engineering or IT business units. As long as the analyst did\nnot identify malware or suspicious activity related to the user or host, this alert can be dismissed.\n\n### Related rules\n\n- PowerShell PSReflect Script - 56f2e9b5-4803-4e44-a0a4-a52dc79d57fe\n- Potential Process Injection via PowerShell - 2e29e96a-b67c-455a-afe4-de6183431d0d\n- PowerShell Suspicious Payload Encoded and Compressed - 81fe9dc6-a2d7-4192-a2d8-eed98afc766a\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Restrict PowerShell usage outside of IT and engineering business units using GPOs, AppLocker, Intune, or similar software.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/dotnet/api/system.reflection.assembly.load"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1055","name":"Process Injection","reference":"https://attack.mitre.org/techniques/T1055/","subtechnique":[{"id":"T1055.001","name":"Dynamic-link Library Injection","reference":"https://attack.mitre.org/techniques/T1055/001/"},{"id":"T1055.002","name":"Portable Executable Injection","reference":"https://attack.mitre.org/techniques/T1055/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n \"[System.Reflection.Assembly]::Load\" or\n \"[Reflection.Assembly]::Load\"\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"e26f042e-c590-4e82-8e05-41e81bd822ad:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e2a67480-3b79-403d-96e3-fdd2992c50ef:103.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e2a67480-3b79-403d-96e3-fdd2992c50ef:103.0.0.json new file mode 100644 index 0000000000000..bbd38fd45c665 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e2a67480-3b79-403d-96e3-fdd2992c50ef:103.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Management Console Root Login v103.0.0","rule_id":"e2a67480-3b79-403d-96e3-fdd2992c50ef:103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a successful login to the AWS Management Console by the Root user.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS Management Console Root Login\n\nThe AWS root account is the one identity that has complete access to all AWS services and resources in the account,\nwhich is created when the AWS account is created. AWS strongly recommends that you do not use the root user for your\neveryday tasks, even the administrative ones. Instead, adhere to the best practice of using the root user only to create\nyour first IAM user. Then securely lock away the root user credentials and use them to perform only a few account and\nservice management tasks. AWS provides a [list of the tasks that require root user](https://docs.aws.amazon.com/general/latest/gr/root-vs-iam.html#aws_tasks-that-require-root).\n\nThis rule looks for attempts to log in to the AWS Management Console as the root user.\n\n#### Possible investigation steps\n\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Examine whether this activity is common in the environment by looking for past occurrences on your logs.\n- Consider the source IP address and geolocation for the calling user who issued the command. Do they look normal for the\n calling user?\n- Examine the commands, API calls, and data management actions performed by the account in the last 24 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking access to servers,\nservices, and data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- The alert can be dismissed if this operation is done under change management and approved according to the\norganization's policy for performing a task that needs this privilege level.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Identify the services or servers involved criticality.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify if there are any regulatory or legal ramifications related to this activity.\n- Configure multi-factor authentication for the user.\n- Follow security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["It's strongly recommended that the root user is not used for everyday tasks, including the administrative ones. Verify whether the IP address, location, and/or hostname should be logging in as root in your environment. Unfamiliar root logins should be investigated immediately. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:signin.amazonaws.com and event.action:ConsoleLogin and aws.cloudtrail.user_identity.type:Root and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.user_identity.type","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e2a67480-3b79-403d-96e3-fdd2992c50ef:103.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e2a67480-3b79-403d-96e3-fdd2992c50ef:103.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e2a67480-3b79-403d-96e3-fdd2992c50ef:103.0.1.json new file mode 100644 index 0000000000000..db65714f08c86 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e2a67480-3b79-403d-96e3-fdd2992c50ef:103.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Management Console Root Login v103.0.1","rule_id":"e2a67480-3b79-403d-96e3-fdd2992c50ef:103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a successful login to the AWS Management Console by the Root user.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS Management Console Root Login\n\nThe AWS root account is the one identity that has complete access to all AWS services and resources in the account,\nwhich is created when the AWS account is created. AWS strongly recommends that you do not use the root user for your\neveryday tasks, even the administrative ones. Instead, adhere to the best practice of using the root user only to create\nyour first IAM user. Then securely lock away the root user credentials and use them to perform only a few account and\nservice management tasks. AWS provides a [list of the tasks that require root user](https://docs.aws.amazon.com/general/latest/gr/root-vs-iam.html#aws_tasks-that-require-root).\n\nThis rule looks for attempts to log in to the AWS Management Console as the root user.\n\n#### Possible investigation steps\n\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Examine whether this activity is common in the environment by looking for past occurrences on your logs.\n- Consider the source IP address and geolocation for the calling user who issued the command. Do they look normal for the\n calling user?\n- Examine the commands, API calls, and data management actions performed by the account in the last 24 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking access to servers,\nservices, and data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- The alert can be dismissed if this operation is done under change management and approved according to the\norganization's policy for performing a task that needs this privilege level.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Identify the services or servers involved criticality.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify if there are any regulatory or legal ramifications related to this activity.\n- Configure multi-factor authentication for the user.\n- Follow security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["It's strongly recommended that the root user is not used for everyday tasks, including the administrative ones. Verify whether the IP address, location, and/or hostname should be logging in as root in your environment. Unfamiliar root logins should be investigated immediately. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:signin.amazonaws.com and event.action:ConsoleLogin and aws.cloudtrail.user_identity.type:Root and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.user_identity.type","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e2a67480-3b79-403d-96e3-fdd2992c50ef:103.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e2a67480-3b79-403d-96e3-fdd2992c50ef:103.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e2a67480-3b79-403d-96e3-fdd2992c50ef:103.0.2.json new file mode 100644 index 0000000000000..75ca874a219bf --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e2a67480-3b79-403d-96e3-fdd2992c50ef:103.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Management Console Root Login v103.0.2","rule_id":"e2a67480-3b79-403d-96e3-fdd2992c50ef:103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a successful login to the AWS Management Console by the Root user.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS Management Console Root Login\n\nThe AWS root account is the one identity that has complete access to all AWS services and resources in the account,\nwhich is created when the AWS account is created. AWS strongly recommends that you do not use the root user for your\neveryday tasks, even the administrative ones. Instead, adhere to the best practice of using the root user only to create\nyour first IAM user. Then securely lock away the root user credentials and use them to perform only a few account and\nservice management tasks. AWS provides a [list of the tasks that require root user](https://docs.aws.amazon.com/general/latest/gr/root-vs-iam.html#aws_tasks-that-require-root).\n\nThis rule looks for attempts to log in to the AWS Management Console as the root user.\n\n#### Possible investigation steps\n\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Examine whether this activity is common in the environment by looking for past occurrences on your logs.\n- Consider the source IP address and geolocation for the calling user who issued the command. Do they look normal for the\n calling user?\n- Examine the commands, API calls, and data management actions performed by the account in the last 24 hours.\n- Contact the account owner and confirm whether they are aware of this activity.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking access to servers,\nservices, and data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- The alert can be dismissed if this operation is done under change management and approved according to the\norganization's policy for performing a task that needs this privilege level.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Identify the services or servers involved criticality.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify if there are any regulatory or legal ramifications related to this activity.\n- Configure multi-factor authentication for the user.\n- Follow security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["It's strongly recommended that the root user is not used for everyday tasks, including the administrative ones. Verify whether the IP address, location, and/or hostname should be logging in as root in your environment. Unfamiliar root logins should be investigated immediately. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:signin.amazonaws.com and event.action:ConsoleLogin and aws.cloudtrail.user_identity.type:Root and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.user_identity.type","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e2a67480-3b79-403d-96e3-fdd2992c50ef:103.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e2f9fdf5-8076-45ad-9427-41e0e03dc9c2:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e2f9fdf5-8076-45ad-9427-41e0e03dc9c2:102.0.0.json new file mode 100644 index 0000000000000..741c2b35b0c14 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e2f9fdf5-8076-45ad-9427-41e0e03dc9c2:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Process Execution via Renamed PsExec Executable v102.0.0","rule_id":"e2f9fdf5-8076-45ad-9427-41e0e03dc9c2:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious psexec activity which is executing from the psexec service that has been renamed, possibly to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1569","name":"System Services","reference":"https://attack.mitre.org/techniques/T1569/","subtechnique":[{"id":"T1569.002","name":"Service Execution","reference":"https://attack.mitre.org/techniques/T1569/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name : \"psexesvc.exe\" and not process.name : \"PSEXESVC.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"e2f9fdf5-8076-45ad-9427-41e0e03dc9c2:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e2f9fdf5-8076-45ad-9427-41e0e03dc9c2:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e2f9fdf5-8076-45ad-9427-41e0e03dc9c2:102.0.1.json new file mode 100644 index 0000000000000..479aad09ebd78 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e2f9fdf5-8076-45ad-9427-41e0e03dc9c2:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Process Execution via Renamed PsExec Executable v102.0.1","rule_id":"e2f9fdf5-8076-45ad-9427-41e0e03dc9c2:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious psexec activity which is executing from the psexec service that has been renamed, possibly to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1569","name":"System Services","reference":"https://attack.mitre.org/techniques/T1569/","subtechnique":[{"id":"T1569.002","name":"Service Execution","reference":"https://attack.mitre.org/techniques/T1569/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name : \"psexesvc.exe\" and not process.name : \"PSEXESVC.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"e2f9fdf5-8076-45ad-9427-41e0e03dc9c2:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e2f9fdf5-8076-45ad-9427-41e0e03dc9c2:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e2f9fdf5-8076-45ad-9427-41e0e03dc9c2:102.0.2.json new file mode 100644 index 0000000000000..ee5276ce6ac75 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e2f9fdf5-8076-45ad-9427-41e0e03dc9c2:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Process Execution via Renamed PsExec Executable v102.0.2","rule_id":"e2f9fdf5-8076-45ad-9427-41e0e03dc9c2:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious psexec activity which is executing from the psexec service that has been renamed, possibly to evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1569","name":"System Services","reference":"https://attack.mitre.org/techniques/T1569/","subtechnique":[{"id":"T1569.002","name":"Service Execution","reference":"https://attack.mitre.org/techniques/T1569/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.pe.original_file_name : \"psexesvc.exe\" and not process.name : \"PSEXESVC.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"e2f9fdf5-8076-45ad-9427-41e0e03dc9c2:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e2fb5b18-e33c-4270-851e-c3d675c9afcd:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e2fb5b18-e33c-4270-851e-c3d675c9afcd:102.0.0.json new file mode 100644 index 0000000000000..d2b762927bf0e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e2fb5b18-e33c-4270-851e-c3d675c9afcd:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP IAM Role Deletion v102.0.0","rule_id":"e2fb5b18-e33c-4270-851e-c3d675c9afcd:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an Identity and Access Management (IAM) role deletion in Google Cloud Platform (GCP). A role contains a set of permissions that allows you to perform specific actions on Google Cloud resources. An adversary may delete an IAM role to inhibit access to accounts utilized by legitimate users.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Role deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Role deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/iam/docs/understanding-roles"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.DeleteRole and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e2fb5b18-e33c-4270-851e-c3d675c9afcd:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e2fb5b18-e33c-4270-851e-c3d675c9afcd:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e2fb5b18-e33c-4270-851e-c3d675c9afcd:102.0.1.json new file mode 100644 index 0000000000000..46e78b8b3dda0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e2fb5b18-e33c-4270-851e-c3d675c9afcd:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP IAM Role Deletion v102.0.1","rule_id":"e2fb5b18-e33c-4270-851e-c3d675c9afcd:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an Identity and Access Management (IAM) role deletion in Google Cloud Platform (GCP). A role contains a set of permissions that allows you to perform specific actions on Google Cloud resources. An adversary may delete an IAM role to inhibit access to accounts utilized by legitimate users.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Role deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Role deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/iam/docs/understanding-roles"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.DeleteRole and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e2fb5b18-e33c-4270-851e-c3d675c9afcd:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e2fb5b18-e33c-4270-851e-c3d675c9afcd:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e2fb5b18-e33c-4270-851e-c3d675c9afcd:102.0.2.json new file mode 100644 index 0000000000000..8146e7c116313 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e2fb5b18-e33c-4270-851e-c3d675c9afcd:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP IAM Role Deletion v102.0.2","rule_id":"e2fb5b18-e33c-4270-851e-c3d675c9afcd:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an Identity and Access Management (IAM) role deletion in Google Cloud Platform (GCP). A role contains a set of permissions that allows you to perform specific actions on Google Cloud resources. An adversary may delete an IAM role to inhibit access to accounts utilized by legitimate users.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Role deletions may be done by a system or network administrator. Verify whether the user email, resource name, and/or hostname should be making changes in your environment. Role deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://cloud.google.com/iam/docs/understanding-roles"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1531","name":"Account Access Removal","reference":"https://attack.mitre.org/techniques/T1531/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:google.iam.admin.v*.DeleteRole and event.outcome:success\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e2fb5b18-e33c-4270-851e-c3d675c9afcd:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e3343ab9-4245-4715-b344-e11c56b0a47f:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e3343ab9-4245-4715-b344-e11c56b0a47f:102.0.0.json new file mode 100644 index 0000000000000..2f11f8ee3d483 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e3343ab9-4245-4715-b344-e11c56b0a47f:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Process Activity via Compiled HTML File v102.0.0","rule_id":"e3343ab9-4245-4715-b344-e11c56b0a47f:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Compiled HTML files (.chm) are commonly distributed as part of the Microsoft HTML Help system. Adversaries may conceal malicious code in a CHM file and deliver it to a victim for execution. CHM content is loaded by the HTML Help executable program (hh.exe).","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The HTML Help executable program (hh.exe) runs whenever a user clicks a compiled help (.chm) file or menu item that opens the help file inside the Help Viewer. This is not always malicious, but adversaries may abuse this technology to conceal malicious code."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1204","name":"User Execution","reference":"https://attack.mitre.org/techniques/T1204/","subtechnique":[{"id":"T1204.002","name":"Malicious File","reference":"https://attack.mitre.org/techniques/T1204/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.001","name":"Compiled HTML File","reference":"https://attack.mitre.org/techniques/T1218/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"hh.exe\" and\n process.name : (\"mshta.exe\", \"cmd.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\", \"cscript.exe\", \"wscript.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"e3343ab9-4245-4715-b344-e11c56b0a47f:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e3343ab9-4245-4715-b344-e11c56b0a47f:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e3343ab9-4245-4715-b344-e11c56b0a47f:102.0.1.json new file mode 100644 index 0000000000000..47b9cf0e469c9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e3343ab9-4245-4715-b344-e11c56b0a47f:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Process Activity via Compiled HTML File v102.0.1","rule_id":"e3343ab9-4245-4715-b344-e11c56b0a47f:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Compiled HTML files (.chm) are commonly distributed as part of the Microsoft HTML Help system. Adversaries may conceal malicious code in a CHM file and deliver it to a victim for execution. CHM content is loaded by the HTML Help executable program (hh.exe).","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The HTML Help executable program (hh.exe) runs whenever a user clicks a compiled help (.chm) file or menu item that opens the help file inside the Help Viewer. This is not always malicious, but adversaries may abuse this technology to conceal malicious code."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1204","name":"User Execution","reference":"https://attack.mitre.org/techniques/T1204/","subtechnique":[{"id":"T1204.002","name":"Malicious File","reference":"https://attack.mitre.org/techniques/T1204/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.001","name":"Compiled HTML File","reference":"https://attack.mitre.org/techniques/T1218/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"hh.exe\" and\n process.name : (\"mshta.exe\", \"cmd.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\", \"cscript.exe\", \"wscript.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"e3343ab9-4245-4715-b344-e11c56b0a47f:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e3343ab9-4245-4715-b344-e11c56b0a47f:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e3343ab9-4245-4715-b344-e11c56b0a47f:102.0.2.json new file mode 100644 index 0000000000000..a64252fcb0def --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e3343ab9-4245-4715-b344-e11c56b0a47f:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Process Activity via Compiled HTML File v102.0.2","rule_id":"e3343ab9-4245-4715-b344-e11c56b0a47f:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Compiled HTML files (.chm) are commonly distributed as part of the Microsoft HTML Help system. Adversaries may conceal malicious code in a CHM file and deliver it to a victim for execution. CHM content is loaded by the HTML Help executable program (hh.exe).","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["The HTML Help executable program (hh.exe) runs whenever a user clicks a compiled help (.chm) file or menu item that opens the help file inside the Help Viewer. This is not always malicious, but adversaries may abuse this technology to conceal malicious code."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Execution","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1204","name":"User Execution","reference":"https://attack.mitre.org/techniques/T1204/","subtechnique":[{"id":"T1204.002","name":"Malicious File","reference":"https://attack.mitre.org/techniques/T1204/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.001","name":"Compiled HTML File","reference":"https://attack.mitre.org/techniques/T1218/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"hh.exe\" and\n process.name : (\"mshta.exe\", \"cmd.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\", \"cscript.exe\", \"wscript.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"e3343ab9-4245-4715-b344-e11c56b0a47f:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e3c27562-709a-42bd-82f2-3ed926cced19:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e3c27562-709a-42bd-82f2-3ed926cced19:101.0.0.json new file mode 100644 index 0000000000000..9eee73386ca45 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e3c27562-709a-42bd-82f2-3ed926cced19:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Route53 private hosted zone associated with a VPC v101.0.0","rule_id":"e3c27562-709a-42bd-82f2-3ed926cced19:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Route53 private hosted zone has been associated with VPC.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["A private hosted zone may be asssociated with a VPC by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/Route53/latest/APIReference/API_AssociateVPCWithHostedZone.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:route53.amazonaws.com and event.action:AssociateVPCWithHostedZone and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e3c27562-709a-42bd-82f2-3ed926cced19:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e3c27562-709a-42bd-82f2-3ed926cced19:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e3c27562-709a-42bd-82f2-3ed926cced19:101.0.1.json new file mode 100644 index 0000000000000..81a3dd0a87abd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e3c27562-709a-42bd-82f2-3ed926cced19:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Route53 private hosted zone associated with a VPC v101.0.1","rule_id":"e3c27562-709a-42bd-82f2-3ed926cced19:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Route53 private hosted zone has been associated with VPC.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["A private hosted zone may be asssociated with a VPC by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/Route53/latest/APIReference/API_AssociateVPCWithHostedZone.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:route53.amazonaws.com and event.action:AssociateVPCWithHostedZone and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e3c27562-709a-42bd-82f2-3ed926cced19:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e3c27562-709a-42bd-82f2-3ed926cced19:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e3c27562-709a-42bd-82f2-3ed926cced19:101.0.2.json new file mode 100644 index 0000000000000..c148a0638596f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e3c27562-709a-42bd-82f2-3ed926cced19:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Route53 private hosted zone associated with a VPC v101.0.2","rule_id":"e3c27562-709a-42bd-82f2-3ed926cced19:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a Route53 private hosted zone has been associated with VPC.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["A private hosted zone may be asssociated with a VPC by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/Route53/latest/APIReference/API_AssociateVPCWithHostedZone.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:route53.amazonaws.com and event.action:AssociateVPCWithHostedZone and\nevent.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e3c27562-709a-42bd-82f2-3ed926cced19:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e3c5d5cb-41d5-4206-805c-f30561eae3ac:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e3c5d5cb-41d5-4206-805c-f30561eae3ac:100.0.0.json new file mode 100644 index 0000000000000..b1c97060537b8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e3c5d5cb-41d5-4206-805c-f30561eae3ac:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Ransomware - Prevented - Elastic Endgame v100.0.0","rule_id":"e3c5d5cb-41d5-4206-805c-f30561eae3ac:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented ransomware. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame"],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:ransomware_event or endgame.event_subtype_full:ransomware_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"e3c5d5cb-41d5-4206-805c-f30561eae3ac:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e3c5d5cb-41d5-4206-805c-f30561eae3ac:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e3c5d5cb-41d5-4206-805c-f30561eae3ac:100.0.1.json new file mode 100644 index 0000000000000..7ea5f3922ba47 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e3c5d5cb-41d5-4206-805c-f30561eae3ac:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Ransomware - Prevented - Elastic Endgame v100.0.1","rule_id":"e3c5d5cb-41d5-4206-805c-f30561eae3ac:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented ransomware. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame"],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:ransomware_event or endgame.event_subtype_full:ransomware_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"e3c5d5cb-41d5-4206-805c-f30561eae3ac:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e3c5d5cb-41d5-4206-805c-f30561eae3ac:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e3c5d5cb-41d5-4206-805c-f30561eae3ac:100.0.2.json new file mode 100644 index 0000000000000..1298b588736b6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e3c5d5cb-41d5-4206-805c-f30561eae3ac:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Ransomware - Prevented - Elastic Endgame v100.0.2","rule_id":"e3c5d5cb-41d5-4206-805c-f30561eae3ac:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Elastic Endgame prevented ransomware. Click the Elastic Endgame icon in the event.module column or the link in the rule.reference column for additional information.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-15m","interval":"10m","max_signals":10000,"tags":["Elastic","Elastic Endgame"],"type":"query","index":["endgame-*"],"language":"kuery","query":"event.kind:alert and event.module:endgame and endgame.metadata.type:prevention and (event.action:ransomware_event or endgame.event_subtype_full:ransomware_event)\n","required_fields":[{"ecs":false,"name":"endgame.event_subtype_full","type":"unknown"},{"ecs":false,"name":"endgame.metadata.type","type":"unknown"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"e3c5d5cb-41d5-4206-805c-f30561eae3ac:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e3cf38fa-d5b8-46cc-87f9-4a7513e4281d:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e3cf38fa-d5b8-46cc-87f9-4a7513e4281d:100.0.0.json new file mode 100644 index 0000000000000..6dba0b752d194 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e3cf38fa-d5b8-46cc-87f9-4a7513e4281d:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Connection to Commonly Abused Free SSL Certificate Providers v100.0.0","rule_id":"e3cf38fa-d5b8-46cc-87f9-4a7513e4281d:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual processes connecting to domains using known free SSL certificates. Adversaries may employ a known encryption algorithm to conceal command and control traffic.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1573","name":"Encrypted Channel","reference":"https://attack.mitre.org/techniques/T1573/"}]}],"language":"eql","query":"network where network.protocol == \"dns\" and\n /* Add new free SSL certificate provider domains here */\n dns.question.name : (\"*letsencrypt.org\", \"*.sslforfree.com\", \"*.zerossl.com\", \"*.freessl.org\") and\n\n /* Native Windows process paths that are unlikely to have network connections to domains secured using free SSL certificates */\n process.executable : (\"C:\\\\Windows\\\\System32\\\\*.exe\",\n \"C:\\\\Windows\\\\System\\\\*.exe\",\n\t \"C:\\\\Windows\\\\SysWOW64\\\\*.exe\",\n\t\t \"C:\\\\Windows\\\\Microsoft.NET\\\\Framework*\\\\*.exe\",\n\t\t \"C:\\\\Windows\\\\explorer.exe\",\n\t\t \"C:\\\\Windows\\\\notepad.exe\") and\n\n /* Insert noisy false positives here */\n not process.name : (\"svchost.exe\", \"MicrosoftEdge*.exe\", \"msedge.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dns.question.name","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"e3cf38fa-d5b8-46cc-87f9-4a7513e4281d:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e3cf38fa-d5b8-46cc-87f9-4a7513e4281d:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e3cf38fa-d5b8-46cc-87f9-4a7513e4281d:100.0.1.json new file mode 100644 index 0000000000000..67b915226f24c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e3cf38fa-d5b8-46cc-87f9-4a7513e4281d:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Connection to Commonly Abused Free SSL Certificate Providers v100.0.1","rule_id":"e3cf38fa-d5b8-46cc-87f9-4a7513e4281d:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual processes connecting to domains using known free SSL certificates. Adversaries may employ a known encryption algorithm to conceal command and control traffic.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1573","name":"Encrypted Channel","reference":"https://attack.mitre.org/techniques/T1573/"}]}],"language":"eql","query":"network where network.protocol == \"dns\" and\n /* Add new free SSL certificate provider domains here */\n dns.question.name : (\"*letsencrypt.org\", \"*.sslforfree.com\", \"*.zerossl.com\", \"*.freessl.org\") and\n\n /* Native Windows process paths that are unlikely to have network connections to domains secured using free SSL certificates */\n process.executable : (\"C:\\\\Windows\\\\System32\\\\*.exe\",\n \"C:\\\\Windows\\\\System\\\\*.exe\",\n\t \"C:\\\\Windows\\\\SysWOW64\\\\*.exe\",\n\t\t \"C:\\\\Windows\\\\Microsoft.NET\\\\Framework*\\\\*.exe\",\n\t\t \"C:\\\\Windows\\\\explorer.exe\",\n\t\t \"C:\\\\Windows\\\\notepad.exe\") and\n\n /* Insert noisy false positives here */\n not process.name : (\"svchost.exe\", \"MicrosoftEdge*.exe\", \"msedge.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dns.question.name","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"e3cf38fa-d5b8-46cc-87f9-4a7513e4281d:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e3cf38fa-d5b8-46cc-87f9-4a7513e4281d:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e3cf38fa-d5b8-46cc-87f9-4a7513e4281d:100.0.2.json new file mode 100644 index 0000000000000..001f08e3bd8b1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e3cf38fa-d5b8-46cc-87f9-4a7513e4281d:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Connection to Commonly Abused Free SSL Certificate Providers v100.0.2","rule_id":"e3cf38fa-d5b8-46cc-87f9-4a7513e4281d:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies unusual processes connecting to domains using known free SSL certificates. Adversaries may employ a known encryption algorithm to conceal command and control traffic.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1573","name":"Encrypted Channel","reference":"https://attack.mitre.org/techniques/T1573/"}]}],"language":"eql","query":"network where network.protocol == \"dns\" and\n /* Add new free SSL certificate provider domains here */\n dns.question.name : (\"*letsencrypt.org\", \"*.sslforfree.com\", \"*.zerossl.com\", \"*.freessl.org\") and\n\n /* Native Windows process paths that are unlikely to have network connections to domains secured using free SSL certificates */\n process.executable : (\"C:\\\\Windows\\\\System32\\\\*.exe\",\n \"C:\\\\Windows\\\\System\\\\*.exe\",\n\t \"C:\\\\Windows\\\\SysWOW64\\\\*.exe\",\n\t\t \"C:\\\\Windows\\\\Microsoft.NET\\\\Framework*\\\\*.exe\",\n\t\t \"C:\\\\Windows\\\\explorer.exe\",\n\t\t \"C:\\\\Windows\\\\notepad.exe\") and\n\n /* Insert noisy false positives here */\n not process.name : (\"svchost.exe\", \"MicrosoftEdge*.exe\", \"msedge.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"dns.question.name","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"e3cf38fa-d5b8-46cc-87f9-4a7513e4281d:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e3e904b3-0a8e-4e68-86a8-977a163e21d3:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e3e904b3-0a8e-4e68-86a8-977a163e21d3:100.0.0.json new file mode 100644 index 0000000000000..5faeffc8a335c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e3e904b3-0a8e-4e68-86a8-977a163e21d3:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via KDE AutoStart Script or Desktop File Modification v100.0.0","rule_id":"e3e904b3-0a8e-4e68-86a8-977a163e21d3:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of a K Desktop Environment (KDE) AutoStart script or desktop file that will execute upon each user logon. Adversaries may abuse this method for persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://userbase.kde.org/System_Settings/Autostart","https://www.amnesty.org/en/latest/research/2020/09/german-made-finspy-spyware-found-in-egypt-and-mac-and-linux-versions-revealed/","https://www.intezer.com/blog/research/operation-electrorat-attacker-creates-fake-companies-to-drain-your-crypto-wallets/"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.extension in (\"sh\", \"desktop\") and\n file.path :\n (\n \"/home/*/.config/autostart/*\", \"/root/.config/autostart/*\",\n \"/home/*/.kde/Autostart/*\", \"/root/.kde/Autostart/*\",\n \"/home/*/.kde4/Autostart/*\", \"/root/.kde4/Autostart/*\",\n \"/home/*/.kde/share/autostart/*\", \"/root/.kde/share/autostart/*\",\n \"/home/*/.kde4/share/autostart/*\", \"/root/.kde4/share/autostart/*\",\n \"/home/*/.local/share/autostart/*\", \"/root/.local/share/autostart/*\",\n \"/home/*/.config/autostart-scripts/*\", \"/root/.config/autostart-scripts/*\",\n \"/etc/xdg/autostart/*\", \"/usr/share/autostart/*\"\n ) and\n not process.name in (\"yum\", \"dpkg\", \"install\", \"dnf\", \"teams\", \"yum-cron\", \"dnf-automatic\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"e3e904b3-0a8e-4e68-86a8-977a163e21d3:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e3e904b3-0a8e-4e68-86a8-977a163e21d3:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e3e904b3-0a8e-4e68-86a8-977a163e21d3:100.0.1.json new file mode 100644 index 0000000000000..a5726698c9a2f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e3e904b3-0a8e-4e68-86a8-977a163e21d3:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via KDE AutoStart Script or Desktop File Modification v100.0.1","rule_id":"e3e904b3-0a8e-4e68-86a8-977a163e21d3:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of a K Desktop Environment (KDE) AutoStart script or desktop file that will execute upon each user logon. Adversaries may abuse this method for persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://userbase.kde.org/System_Settings/Autostart","https://www.amnesty.org/en/latest/research/2020/09/german-made-finspy-spyware-found-in-egypt-and-mac-and-linux-versions-revealed/","https://www.intezer.com/blog/research/operation-electrorat-attacker-creates-fake-companies-to-drain-your-crypto-wallets/"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.extension in (\"sh\", \"desktop\") and\n file.path :\n (\n \"/home/*/.config/autostart/*\", \"/root/.config/autostart/*\",\n \"/home/*/.kde/Autostart/*\", \"/root/.kde/Autostart/*\",\n \"/home/*/.kde4/Autostart/*\", \"/root/.kde4/Autostart/*\",\n \"/home/*/.kde/share/autostart/*\", \"/root/.kde/share/autostart/*\",\n \"/home/*/.kde4/share/autostart/*\", \"/root/.kde4/share/autostart/*\",\n \"/home/*/.local/share/autostart/*\", \"/root/.local/share/autostart/*\",\n \"/home/*/.config/autostart-scripts/*\", \"/root/.config/autostart-scripts/*\",\n \"/etc/xdg/autostart/*\", \"/usr/share/autostart/*\"\n ) and\n not process.name in (\"yum\", \"dpkg\", \"install\", \"dnf\", \"teams\", \"yum-cron\", \"dnf-automatic\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"e3e904b3-0a8e-4e68-86a8-977a163e21d3:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e3e904b3-0a8e-4e68-86a8-977a163e21d3:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e3e904b3-0a8e-4e68-86a8-977a163e21d3:100.0.2.json new file mode 100644 index 0000000000000..eb84ba21ee2ba --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e3e904b3-0a8e-4e68-86a8-977a163e21d3:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via KDE AutoStart Script or Desktop File Modification v100.0.2","rule_id":"e3e904b3-0a8e-4e68-86a8-977a163e21d3:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation or modification of a K Desktop Environment (KDE) AutoStart script or desktop file that will execute upon each user logon. Adversaries may abuse this method for persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://userbase.kde.org/System_Settings/Autostart","https://www.amnesty.org/en/latest/research/2020/09/german-made-finspy-spyware-found-in-egypt-and-mac-and-linux-versions-revealed/","https://www.intezer.com/blog/research/operation-electrorat-attacker-creates-fake-companies-to-drain-your-crypto-wallets/"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.extension in (\"sh\", \"desktop\") and\n file.path :\n (\n \"/home/*/.config/autostart/*\", \"/root/.config/autostart/*\",\n \"/home/*/.kde/Autostart/*\", \"/root/.kde/Autostart/*\",\n \"/home/*/.kde4/Autostart/*\", \"/root/.kde4/Autostart/*\",\n \"/home/*/.kde/share/autostart/*\", \"/root/.kde/share/autostart/*\",\n \"/home/*/.kde4/share/autostart/*\", \"/root/.kde4/share/autostart/*\",\n \"/home/*/.local/share/autostart/*\", \"/root/.local/share/autostart/*\",\n \"/home/*/.config/autostart-scripts/*\", \"/root/.config/autostart-scripts/*\",\n \"/etc/xdg/autostart/*\", \"/usr/share/autostart/*\"\n ) and\n not process.name in (\"yum\", \"dpkg\", \"install\", \"dnf\", \"teams\", \"yum-cron\", \"dnf-automatic\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"e3e904b3-0a8e-4e68-86a8-977a163e21d3:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e48236ca-b67a-4b4e-840c-fdc7782bc0c3:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e48236ca-b67a-4b4e-840c-fdc7782bc0c3:102.0.0.json new file mode 100644 index 0000000000000..21782ccd7e3ea --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e48236ca-b67a-4b4e-840c-fdc7782bc0c3:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Modify an Okta Network Zone v102.0.0","rule_id":"e48236ca-b67a-4b4e-840c-fdc7782bc0c3:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to modify an Okta network zone. Okta network zones can be configured to limit or restrict access to a network based on IP addresses or geolocations. An adversary may attempt to modify, delete, or deactivate an Okta network zone in order to remove or weaken an organization's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Oyour organization's Okta network zones are regularly modified."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/network/network-zones.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Network Security","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:(zone.update or network_zone.rule.disabled or zone.remove_blacklist)\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e48236ca-b67a-4b4e-840c-fdc7782bc0c3:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e48236ca-b67a-4b4e-840c-fdc7782bc0c3:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e48236ca-b67a-4b4e-840c-fdc7782bc0c3:102.0.1.json new file mode 100644 index 0000000000000..1dd3c93ec19e0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e48236ca-b67a-4b4e-840c-fdc7782bc0c3:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Modify an Okta Network Zone v102.0.1","rule_id":"e48236ca-b67a-4b4e-840c-fdc7782bc0c3:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to modify an Okta network zone. Okta network zones can be configured to limit or restrict access to a network based on IP addresses or geolocations. An adversary may attempt to modify, delete, or deactivate an Okta network zone in order to remove or weaken an organization's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Oyour organization's Okta network zones are regularly modified."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/network/network-zones.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Network Security","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:(zone.update or network_zone.rule.disabled or zone.remove_blacklist)\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e48236ca-b67a-4b4e-840c-fdc7782bc0c3:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e48236ca-b67a-4b4e-840c-fdc7782bc0c3:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e48236ca-b67a-4b4e-840c-fdc7782bc0c3:102.0.2.json new file mode 100644 index 0000000000000..04dd206f08006 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e48236ca-b67a-4b4e-840c-fdc7782bc0c3:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Modify an Okta Network Zone v102.0.2","rule_id":"e48236ca-b67a-4b4e-840c-fdc7782bc0c3:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to modify an Okta network zone. Okta network zones can be configured to limit or restrict access to a network based on IP addresses or geolocations. An adversary may attempt to modify, delete, or deactivate an Okta network zone in order to remove or weaken an organization's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if Oyour organization's Okta network zones are regularly modified."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/network/network-zones.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Network Security","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.007","name":"Disable or Modify Cloud Firewall","reference":"https://attack.mitre.org/techniques/T1562/007/"}]}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:(zone.update or network_zone.rule.disabled or zone.remove_blacklist)\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e48236ca-b67a-4b4e-840c-fdc7782bc0c3:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e4e31051-ee01-4307-a6ee-b21b186958f4:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e4e31051-ee01-4307-a6ee-b21b186958f4:100.0.0.json new file mode 100644 index 0000000000000..c44f9237e73fb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e4e31051-ee01-4307-a6ee-b21b186958f4:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Service Creation via Local Kerberos Authentication v100.0.0","rule_id":"e4e31051-ee01-4307-a6ee-b21b186958f4:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious local successful logon event where the Logon Package is Kerberos, the remote address is set to localhost, followed by a sevice creation from the same LogonId. This may indicate an attempt to leverage a Kerberos relay attack variant that can be used to elevate privilege locally from a domain joined user to local System privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://github.com/Dec0ne/KrbRelayUp","https://googleprojectzero.blogspot.com/2021/10/using-kerberos-for-authentication-relay.html","https://github.com/cube0x0/KrbRelay","https://gist.github.com/tyranid/c24cfd1bd141d14d4925043ee7e03c82"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/"}]}],"language":"eql","query":"sequence by host.id with maxspan=5m\n [authentication where\n\n /* event 4624 need to be logged */\n event.action == \"logged-in\" and event.outcome == \"success\" and\n\n /* authenticate locally using relayed kerberos Ticket */\n winlog.event_data.AuthenticationPackageName :\"Kerberos\" and winlog.logon.type == \"Network\" and\n cidrmatch(source.ip, \"127.0.0.0/8\", \"::1\") and source.port > 0] by winlog.event_data.TargetLogonId\n\n [any where\n /* event 4697 need to be logged */\n event.action : \"service-installed\"] by winlog.event_data.SubjectLogonId\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"},{"ecs":false,"name":"winlog.event_data.AuthenticationPackageName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetLogonId","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}]},"id":"e4e31051-ee01-4307-a6ee-b21b186958f4:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e4e31051-ee01-4307-a6ee-b21b186958f4:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e4e31051-ee01-4307-a6ee-b21b186958f4:100.0.1.json new file mode 100644 index 0000000000000..acc97a5d6d44f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e4e31051-ee01-4307-a6ee-b21b186958f4:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Service Creation via Local Kerberos Authentication v100.0.1","rule_id":"e4e31051-ee01-4307-a6ee-b21b186958f4:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious local successful logon event where the Logon Package is Kerberos, the remote address is set to localhost, followed by a sevice creation from the same LogonId. This may indicate an attempt to leverage a Kerberos relay attack variant that can be used to elevate privilege locally from a domain joined user to local System privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://github.com/Dec0ne/KrbRelayUp","https://googleprojectzero.blogspot.com/2021/10/using-kerberos-for-authentication-relay.html","https://github.com/cube0x0/KrbRelay","https://gist.github.com/tyranid/c24cfd1bd141d14d4925043ee7e03c82"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/"}]}],"language":"eql","query":"sequence by host.id with maxspan=5m\n [authentication where\n\n /* event 4624 need to be logged */\n event.action == \"logged-in\" and event.outcome == \"success\" and\n\n /* authenticate locally using relayed kerberos Ticket */\n winlog.event_data.AuthenticationPackageName :\"Kerberos\" and winlog.logon.type == \"Network\" and\n cidrmatch(source.ip, \"127.0.0.0/8\", \"::1\") and source.port > 0] by winlog.event_data.TargetLogonId\n\n [any where\n /* event 4697 need to be logged */\n event.action : \"service-installed\"] by winlog.event_data.SubjectLogonId\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"},{"ecs":false,"name":"winlog.event_data.AuthenticationPackageName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetLogonId","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}]},"id":"e4e31051-ee01-4307-a6ee-b21b186958f4:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e4e31051-ee01-4307-a6ee-b21b186958f4:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e4e31051-ee01-4307-a6ee-b21b186958f4:100.0.2.json new file mode 100644 index 0000000000000..ae1e5ad109461 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e4e31051-ee01-4307-a6ee-b21b186958f4:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Service Creation via Local Kerberos Authentication v100.0.2","rule_id":"e4e31051-ee01-4307-a6ee-b21b186958f4:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious local successful logon event where the Logon Package is Kerberos, the remote address is set to localhost, followed by a sevice creation from the same LogonId. This may indicate an attempt to leverage a Kerberos relay attack variant that can be used to elevate privilege locally from a domain joined user to local System privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","references":["https://github.com/Dec0ne/KrbRelayUp","https://googleprojectzero.blogspot.com/2021/10/using-kerberos-for-authentication-relay.html","https://github.com/cube0x0/KrbRelay","https://gist.github.com/tyranid/c24cfd1bd141d14d4925043ee7e03c82"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1543","name":"Create or Modify System Process","reference":"https://attack.mitre.org/techniques/T1543/","subtechnique":[{"id":"T1543.003","name":"Windows Service","reference":"https://attack.mitre.org/techniques/T1543/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/"}]}],"language":"eql","query":"sequence by host.id with maxspan=5m\n [authentication where\n\n /* event 4624 need to be logged */\n event.action == \"logged-in\" and event.outcome == \"success\" and\n\n /* authenticate locally using relayed kerberos Ticket */\n winlog.event_data.AuthenticationPackageName :\"Kerberos\" and winlog.logon.type == \"Network\" and\n cidrmatch(source.ip, \"127.0.0.0/8\", \"::1\") and source.port > 0] by winlog.event_data.TargetLogonId\n\n [any where\n /* event 4697 need to be logged */\n event.action : \"service-installed\"] by winlog.event_data.SubjectLogonId\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"},{"ecs":false,"name":"winlog.event_data.AuthenticationPackageName","type":"keyword"},{"ecs":false,"name":"winlog.event_data.SubjectLogonId","type":"keyword"},{"ecs":false,"name":"winlog.event_data.TargetLogonId","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}]},"id":"e4e31051-ee01-4307-a6ee-b21b186958f4:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e514d8cd-ed15-4011-84e2-d15147e059f1:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e514d8cd-ed15-4011-84e2-d15147e059f1:102.0.0.json new file mode 100644 index 0000000000000..5fff28899379a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e514d8cd-ed15-4011-84e2-d15147e059f1:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kerberos Pre-authentication Disabled for User v102.0.0","rule_id":"e514d8cd-ed15-4011-84e2-d15147e059f1:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the modification of an account's Kerberos pre-authentication options. An adversary with GenericWrite/GenericAll rights over the account can maliciously modify these settings to perform offline password cracking attacks such as AS-REP roasting.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Kerberos Pre-authentication Disabled for User\n\nKerberos pre-authentication is an account protection against offline password cracking. When enabled, a user requesting\naccess to a resource initiates communication with the Domain Controller (DC) by sending an Authentication Server Request\n(AS-REQ) message with a timestamp that is encrypted with the hash of their password. If and only if the DC is able to\nsuccessfully decrypt the timestamp with the hash of the user’s password, it will then send an Authentication Server\nResponse (AS-REP) message that contains the Ticket Granting Ticket (TGT) to the user. Part of the AS-REP message is\nsigned with the user’s password. Microsoft's security monitoring [recommendations](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4738) state that `'Don't Require Preauth' – Enabled` should not be enabled for user accounts because it weakens security for the account’s Kerberos authentication.\n\nAS-REP roasting is an attack against Kerberos for user accounts that do not require pre-authentication, which means that\nif the target user has pre-authentication disabled, an attacker can request authentication data for it and get a TGT that\ncan be brute-forced offline, similarly to Kerberoasting.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Determine if the target account is sensitive or privileged.\n- Inspect the account activities for suspicious or abnormal behaviors in the alert timeframe.\n\n### False positive analysis\n\n- Disabling pre-authentication is a bad security practice and should not be allowed in the domain. The security team\nshould map and monitor any potential benign true positives (B-TPs), especially if the target account is privileged.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Reset the target account's password if there is any risk of TGTs having been retrieved.\n- Re-enable the preauthentication option or disable the target account.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://harmj0y.medium.com/roasting-as-reps-e6179a65216b","https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4738","https://github.com/atc-project/atomic-threat-coverage/blob/master/Atomic_Threat_Coverage/Logging_Policies/LP_0026_windows_audit_user_account_management.md"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/","subtechnique":[{"id":"T1558.004","name":"AS-REP Roasting","reference":"https://attack.mitre.org/techniques/T1558/004/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.code:4738 and message:\"'Don't Require Preauth' - Enabled\"\n","required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"message","type":"match_only_text"}],"setup":"The 'Audit User Account Management' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nAccount Management >\nAudit User Account Management (Success,Failure)\n```"},"id":"e514d8cd-ed15-4011-84e2-d15147e059f1:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e514d8cd-ed15-4011-84e2-d15147e059f1:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e514d8cd-ed15-4011-84e2-d15147e059f1:102.0.1.json new file mode 100644 index 0000000000000..4b4af72a89783 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e514d8cd-ed15-4011-84e2-d15147e059f1:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kerberos Pre-authentication Disabled for User v102.0.1","rule_id":"e514d8cd-ed15-4011-84e2-d15147e059f1:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the modification of an account's Kerberos pre-authentication options. An adversary with GenericWrite/GenericAll rights over the account can maliciously modify these settings to perform offline password cracking attacks such as AS-REP roasting.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Kerberos Pre-authentication Disabled for User\n\nKerberos pre-authentication is an account protection against offline password cracking. When enabled, a user requesting\naccess to a resource initiates communication with the Domain Controller (DC) by sending an Authentication Server Request\n(AS-REQ) message with a timestamp that is encrypted with the hash of their password. If and only if the DC is able to\nsuccessfully decrypt the timestamp with the hash of the user’s password, it will then send an Authentication Server\nResponse (AS-REP) message that contains the Ticket Granting Ticket (TGT) to the user. Part of the AS-REP message is\nsigned with the user’s password. Microsoft's security monitoring [recommendations](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4738) state that `'Don't Require Preauth' – Enabled` should not be enabled for user accounts because it weakens security for the account’s Kerberos authentication.\n\nAS-REP roasting is an attack against Kerberos for user accounts that do not require pre-authentication, which means that\nif the target user has pre-authentication disabled, an attacker can request authentication data for it and get a TGT that\ncan be brute-forced offline, similarly to Kerberoasting.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Determine if the target account is sensitive or privileged.\n- Inspect the account activities for suspicious or abnormal behaviors in the alert timeframe.\n\n### False positive analysis\n\n- Disabling pre-authentication is a bad security practice and should not be allowed in the domain. The security team\nshould map and monitor any potential benign true positives (B-TPs), especially if the target account is privileged.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Reset the target account's password if there is any risk of TGTs having been retrieved.\n- Re-enable the preauthentication option or disable the target account.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://harmj0y.medium.com/roasting-as-reps-e6179a65216b","https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4738","https://github.com/atc-project/atomic-threat-coverage/blob/master/Atomic_Threat_Coverage/Logging_Policies/LP_0026_windows_audit_user_account_management.md"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/","subtechnique":[{"id":"T1558.004","name":"AS-REP Roasting","reference":"https://attack.mitre.org/techniques/T1558/004/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.code:4738 and message:\"'Don't Require Preauth' - Enabled\"\n","required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"message","type":"match_only_text"}],"setup":"The 'Audit User Account Management' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nAccount Management >\nAudit User Account Management (Success,Failure)\n```"},"id":"e514d8cd-ed15-4011-84e2-d15147e059f1:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e514d8cd-ed15-4011-84e2-d15147e059f1:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e514d8cd-ed15-4011-84e2-d15147e059f1:102.0.2.json new file mode 100644 index 0000000000000..4dfa2cff4c6b8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e514d8cd-ed15-4011-84e2-d15147e059f1:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Kerberos Pre-authentication Disabled for User v102.0.2","rule_id":"e514d8cd-ed15-4011-84e2-d15147e059f1:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the modification of an account's Kerberos pre-authentication options. An adversary with GenericWrite/GenericAll rights over the account can maliciously modify these settings to perform offline password cracking attacks such as AS-REP roasting.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Kerberos Pre-authentication Disabled for User\n\nKerberos pre-authentication is an account protection against offline password cracking. When enabled, a user requesting\naccess to a resource initiates communication with the Domain Controller (DC) by sending an Authentication Server Request\n(AS-REQ) message with a timestamp that is encrypted with the hash of their password. If and only if the DC is able to\nsuccessfully decrypt the timestamp with the hash of the user’s password, it will then send an Authentication Server\nResponse (AS-REP) message that contains the Ticket Granting Ticket (TGT) to the user. Part of the AS-REP message is\nsigned with the user’s password. Microsoft's security monitoring [recommendations](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4738) state that `'Don't Require Preauth' – Enabled` should not be enabled for user accounts because it weakens security for the account’s Kerberos authentication.\n\nAS-REP roasting is an attack against Kerberos for user accounts that do not require pre-authentication, which means that\nif the target user has pre-authentication disabled, an attacker can request authentication data for it and get a TGT that\ncan be brute-forced offline, similarly to Kerberoasting.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Determine if the target account is sensitive or privileged.\n- Inspect the account activities for suspicious or abnormal behaviors in the alert timeframe.\n\n### False positive analysis\n\n- Disabling pre-authentication is a bad security practice and should not be allowed in the domain. The security team\nshould map and monitor any potential benign true positives (B-TPs), especially if the target account is privileged.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Reset the target account's password if there is any risk of TGTs having been retrieved.\n- Re-enable the preauthentication option or disable the target account.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://harmj0y.medium.com/roasting-as-reps-e6179a65216b","https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4738","https://github.com/atc-project/atomic-threat-coverage/blob/master/Atomic_Threat_Coverage/Logging_Policies/LP_0026_windows_audit_user_account_management.md"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/","subtechnique":[{"id":"T1558.004","name":"AS-REP Roasting","reference":"https://attack.mitre.org/techniques/T1558/004/"}]}]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.code:4738 and message:\"'Don't Require Preauth' - Enabled\"\n","required_fields":[{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":true,"name":"message","type":"match_only_text"}],"setup":"The 'Audit User Account Management' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nPolicies >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policies Configuration >\nAudit Policies >\nAccount Management >\nAudit User Account Management (Success,Failure)\n```"},"id":"e514d8cd-ed15-4011-84e2-d15147e059f1:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e555105c-ba6d-481f-82bb-9b633e7b4827:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e555105c-ba6d-481f-82bb-9b633e7b4827:101.0.0.json new file mode 100644 index 0000000000000..afbf929e775ab --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e555105c-ba6d-481f-82bb-9b633e7b4827:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"MFA Disabled for Google Workspace Organization v101.0.0","rule_id":"e555105c-ba6d-481f-82bb-9b633e7b4827:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when multi-factor authentication (MFA) is disabled for a Google Workspace organization. An adversary may attempt to modify a password policy in order to weaken an organization’s security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["MFA settings may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:(ENFORCE_STRONG_AUTHENTICATION or ALLOW_STRONG_AUTHENTICATION) and google_workspace.admin.new_value:false\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e555105c-ba6d-481f-82bb-9b633e7b4827:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e555105c-ba6d-481f-82bb-9b633e7b4827:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e555105c-ba6d-481f-82bb-9b633e7b4827:101.0.1.json new file mode 100644 index 0000000000000..a17336c0054f9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e555105c-ba6d-481f-82bb-9b633e7b4827:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"MFA Disabled for Google Workspace Organization v101.0.1","rule_id":"e555105c-ba6d-481f-82bb-9b633e7b4827:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when multi-factor authentication (MFA) is disabled for a Google Workspace organization. An adversary may attempt to modify a password policy in order to weaken an organization’s security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["MFA settings may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:(ENFORCE_STRONG_AUTHENTICATION or ALLOW_STRONG_AUTHENTICATION) and google_workspace.admin.new_value:false\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e555105c-ba6d-481f-82bb-9b633e7b4827:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e555105c-ba6d-481f-82bb-9b633e7b4827:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e555105c-ba6d-481f-82bb-9b633e7b4827:101.0.2.json new file mode 100644 index 0000000000000..f512f6fca2909 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e555105c-ba6d-481f-82bb-9b633e7b4827:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"MFA Disabled for Google Workspace Organization v101.0.2","rule_id":"e555105c-ba6d-481f-82bb-9b633e7b4827:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when multi-factor authentication (MFA) is disabled for a Google Workspace organization. An adversary may attempt to modify a password policy in order to weaken an organization’s security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"### Important Information Regarding Google Workspace Event Lag Times\n- As per Google's documentation, Google Workspace administrators may observe lag times ranging from minutes up to 3 days between the time of an event's occurrence and the event being visible in the Google Workspace admin/audit logs.\n- This rule is configured to run every 10 minutes with a lookback time of 130 minutes.\n- To reduce the risk of false negatives, consider reducing the interval that the Google Workspace (formerly G Suite) Filebeat module polls Google's reporting API for new events.\n- By default, `var.interval` is set to 2 hours (2h). Consider changing this interval to a lower value, such as 10 minutes (10m).\n- See the following references for further information:\n - https://support.google.com/a/answer/7061566\n - https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-google_workspace.html","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["MFA settings may be modified by system administrators. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-130m","interval":"10m","tags":["Elastic","Cloud","Google Workspace","Continuous Monitoring","SecOps","Identity and Access","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]}],"type":"query","index":["filebeat-*","logs-google_workspace*"],"language":"kuery","query":"event.dataset:google_workspace.admin and event.provider:admin and event.category:iam and event.action:(ENFORCE_STRONG_AUTHENTICATION or ALLOW_STRONG_AUTHENTICATION) and google_workspace.admin.new_value:false\n","related_integrations":[{"package":"google_workspace","version":"^1.2.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"google_workspace.admin.new_value","type":"keyword"}],"setup":"The Google Workspace Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e555105c-ba6d-481f-82bb-9b633e7b4827:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e6c1a552-7776-44ad-ae0f-8746cc07773c:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e6c1a552-7776-44ad-ae0f-8746cc07773c:100.0.0.json new file mode 100644 index 0000000000000..488d36cc610f9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e6c1a552-7776-44ad-ae0f-8746cc07773c:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Bash Shell Profile Modification v100.0.0","rule_id":"e6c1a552-7776-44ad-ae0f-8746cc07773c:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Both ~/.bash_profile and ~/.bashrc are files containing shell commands that are run when Bash is invoked. These files are executed in a user's context, either interactively or non-interactively, when a user logs in so that their environment is set correctly. Adversaries may abuse this to establish persistence by executing malicious content triggered by a user’s shell.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Changes to the Shell Profile tend to be noisy, a tuning per your environment will be required."],"from":"now-9m","references":["https://www.anomali.com/blog/pulling-linux-rabbit-rabbot-malware-out-of-a-hat"],"tags":["Elastic","Host","macOS","Linux","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.004","name":"Unix Shell Configuration Modification","reference":"https://attack.mitre.org/techniques/T1546/004/"}]}]}],"type":"query","index":["logs-endpoint.events.*","auditbeat-*"],"language":"kuery","query":"event.category:file and event.type:change and\n process.name:(* and not (sudo or\n vim or\n zsh or\n env or\n nano or\n bash or\n Terminal or\n xpcproxy or\n login or\n cat or\n cp or\n launchctl or\n java)) and\n not process.executable:(/Applications/* or /private/var/folders/* or /usr/local/*) and\n file.path:(/private/etc/rc.local or\n /etc/rc.local or\n /home/*/.profile or\n /home/*/.profile1 or\n /home/*/.bash_profile or\n /home/*/.bash_profile1 or\n /home/*/.bashrc or\n /Users/*/.bash_profile or\n /Users/*/.zshenv)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"e6c1a552-7776-44ad-ae0f-8746cc07773c:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e6c1a552-7776-44ad-ae0f-8746cc07773c:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e6c1a552-7776-44ad-ae0f-8746cc07773c:100.0.1.json new file mode 100644 index 0000000000000..d6b7f45030576 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e6c1a552-7776-44ad-ae0f-8746cc07773c:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Bash Shell Profile Modification v100.0.1","rule_id":"e6c1a552-7776-44ad-ae0f-8746cc07773c:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Both ~/.bash_profile and ~/.bashrc are files containing shell commands that are run when Bash is invoked. These files are executed in a user's context, either interactively or non-interactively, when a user logs in so that their environment is set correctly. Adversaries may abuse this to establish persistence by executing malicious content triggered by a user’s shell.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Changes to the Shell Profile tend to be noisy, a tuning per your environment will be required."],"from":"now-9m","references":["https://www.anomali.com/blog/pulling-linux-rabbit-rabbot-malware-out-of-a-hat"],"tags":["Elastic","Host","macOS","Linux","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.004","name":"Unix Shell Configuration Modification","reference":"https://attack.mitre.org/techniques/T1546/004/"}]}]}],"type":"query","index":["logs-endpoint.events.*","auditbeat-*"],"language":"kuery","query":"event.category:file and event.type:change and\n process.name:(* and not (sudo or\n vim or\n zsh or\n env or\n nano or\n bash or\n Terminal or\n xpcproxy or\n login or\n cat or\n cp or\n launchctl or\n java)) and\n not process.executable:(/Applications/* or /private/var/folders/* or /usr/local/*) and\n file.path:(/private/etc/rc.local or\n /etc/rc.local or\n /home/*/.profile or\n /home/*/.profile1 or\n /home/*/.bash_profile or\n /home/*/.bash_profile1 or\n /home/*/.bashrc or\n /Users/*/.bash_profile or\n /Users/*/.zshenv)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"e6c1a552-7776-44ad-ae0f-8746cc07773c:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e6c1a552-7776-44ad-ae0f-8746cc07773c:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e6c1a552-7776-44ad-ae0f-8746cc07773c:100.0.2.json new file mode 100644 index 0000000000000..bb484a7f5c562 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e6c1a552-7776-44ad-ae0f-8746cc07773c:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Bash Shell Profile Modification v100.0.2","rule_id":"e6c1a552-7776-44ad-ae0f-8746cc07773c:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Both ~/.bash_profile and ~/.bashrc are files containing shell commands that are run when Bash is invoked. These files are executed in a user's context, either interactively or non-interactively, when a user logs in so that their environment is set correctly. Adversaries may abuse this to establish persistence by executing malicious content triggered by a user’s shell.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Changes to the Shell Profile tend to be noisy, a tuning per your environment will be required."],"from":"now-9m","references":["https://www.anomali.com/blog/pulling-linux-rabbit-rabbot-malware-out-of-a-hat"],"tags":["Elastic","Host","macOS","Linux","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.004","name":"Unix Shell Configuration Modification","reference":"https://attack.mitre.org/techniques/T1546/004/"}]}]}],"type":"query","index":["logs-endpoint.events.*","auditbeat-*"],"language":"kuery","query":"event.category:file and event.type:change and\n process.name:(* and not (sudo or\n vim or\n zsh or\n env or\n nano or\n bash or\n Terminal or\n xpcproxy or\n login or\n cat or\n cp or\n launchctl or\n java)) and\n not process.executable:(/Applications/* or /private/var/folders/* or /usr/local/*) and\n file.path:(/private/etc/rc.local or\n /etc/rc.local or\n /home/*/.profile or\n /home/*/.profile1 or\n /home/*/.bash_profile or\n /home/*/.bash_profile1 or\n /home/*/.bashrc or\n /Users/*/.bash_profile or\n /Users/*/.zshenv)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"e6c1a552-7776-44ad-ae0f-8746cc07773c:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e6c98d38-633d-4b3e-9387-42112cd5ac10:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e6c98d38-633d-4b3e-9387-42112cd5ac10:100.0.0.json new file mode 100644 index 0000000000000..a7051692968ab --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e6c98d38-633d-4b3e-9387-42112cd5ac10:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Authorization Plugin Modification v100.0.0","rule_id":"e6c98d38-633d-4b3e-9387-42112cd5ac10:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Authorization plugins are used to extend the authorization services API and implement mechanisms that are not natively supported by the OS, such as multi-factor authentication with third party software. Adversaries may abuse this feature to persist and/or collect clear text credentials as they traverse the registered plugins during user logon.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://developer.apple.com/documentation/security/authorization_plug-ins","https://www.xorrior.com/persistent-credential-theft/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.002","name":"Authentication Package","reference":"https://attack.mitre.org/techniques/T1547/002/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and not event.type:deletion and\n file.path:(/Library/Security/SecurityAgentPlugins/* and\n not /Library/Security/SecurityAgentPlugins/TeamViewerAuthPlugin.bundle/*) and\n not process.name:shove and process.code_signature.trusted:true\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"e6c98d38-633d-4b3e-9387-42112cd5ac10:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e6c98d38-633d-4b3e-9387-42112cd5ac10:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e6c98d38-633d-4b3e-9387-42112cd5ac10:100.0.1.json new file mode 100644 index 0000000000000..635058c459691 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e6c98d38-633d-4b3e-9387-42112cd5ac10:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Authorization Plugin Modification v100.0.1","rule_id":"e6c98d38-633d-4b3e-9387-42112cd5ac10:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Authorization plugins are used to extend the authorization services API and implement mechanisms that are not natively supported by the OS, such as multi-factor authentication with third party software. Adversaries may abuse this feature to persist and/or collect clear text credentials as they traverse the registered plugins during user logon.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://developer.apple.com/documentation/security/authorization_plug-ins","https://www.xorrior.com/persistent-credential-theft/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.002","name":"Authentication Package","reference":"https://attack.mitre.org/techniques/T1547/002/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and not event.type:deletion and\n file.path:(/Library/Security/SecurityAgentPlugins/* and\n not /Library/Security/SecurityAgentPlugins/TeamViewerAuthPlugin.bundle/*) and\n not process.name:shove and process.code_signature.trusted:true\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"e6c98d38-633d-4b3e-9387-42112cd5ac10:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e6c98d38-633d-4b3e-9387-42112cd5ac10:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e6c98d38-633d-4b3e-9387-42112cd5ac10:100.0.2.json new file mode 100644 index 0000000000000..0dc057cd3c761 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e6c98d38-633d-4b3e-9387-42112cd5ac10:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Authorization Plugin Modification v100.0.2","rule_id":"e6c98d38-633d-4b3e-9387-42112cd5ac10:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Authorization plugins are used to extend the authorization services API and implement mechanisms that are not natively supported by the OS, such as multi-factor authentication with third party software. Adversaries may abuse this feature to persist and/or collect clear text credentials as they traverse the registered plugins during user logon.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://developer.apple.com/documentation/security/authorization_plug-ins","https://www.xorrior.com/persistent-credential-theft/"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.002","name":"Authentication Package","reference":"https://attack.mitre.org/techniques/T1547/002/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:file and not event.type:deletion and\n file.path:(/Library/Security/SecurityAgentPlugins/* and\n not /Library/Security/SecurityAgentPlugins/TeamViewerAuthPlugin.bundle/*) and\n not process.name:shove and process.code_signature.trusted:true\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.code_signature.trusted","type":"boolean"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"e6c98d38-633d-4b3e-9387-42112cd5ac10:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e6e3ecff-03dd-48ec-acbd-54a04de10c68:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e6e3ecff-03dd-48ec-acbd-54a04de10c68:102.0.0.json new file mode 100644 index 0000000000000..c1fc7611a0d1f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e6e3ecff-03dd-48ec-acbd-54a04de10c68:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Possible Okta DoS Attack v102.0.0","rule_id":"e6e3ecff-03dd-48ec-acbd-54a04de10c68:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects possible Denial of Service (DoS) attacks against an Okta organization. An adversary may attempt to disrupt an organization's business operations by performing a DoS attack against its Okta service.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1498","name":"Network Denial of Service","reference":"https://attack.mitre.org/techniques/T1498/"},{"id":"T1499","name":"Endpoint Denial of Service","reference":"https://attack.mitre.org/techniques/T1499/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:(application.integration.rate_limit_exceeded or system.org.rate_limit.warning or system.org.rate_limit.violation or core.concurrency.org.limit.violation)\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e6e3ecff-03dd-48ec-acbd-54a04de10c68:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e6e3ecff-03dd-48ec-acbd-54a04de10c68:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e6e3ecff-03dd-48ec-acbd-54a04de10c68:102.0.1.json new file mode 100644 index 0000000000000..74ce32668f3c2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e6e3ecff-03dd-48ec-acbd-54a04de10c68:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Possible Okta DoS Attack v102.0.1","rule_id":"e6e3ecff-03dd-48ec-acbd-54a04de10c68:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects possible Denial of Service (DoS) attacks against an Okta organization. An adversary may attempt to disrupt an organization's business operations by performing a DoS attack against its Okta service.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1498","name":"Network Denial of Service","reference":"https://attack.mitre.org/techniques/T1498/"},{"id":"T1499","name":"Endpoint Denial of Service","reference":"https://attack.mitre.org/techniques/T1499/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:(application.integration.rate_limit_exceeded or system.org.rate_limit.warning or system.org.rate_limit.violation or core.concurrency.org.limit.violation)\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e6e3ecff-03dd-48ec-acbd-54a04de10c68:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e6e3ecff-03dd-48ec-acbd-54a04de10c68:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e6e3ecff-03dd-48ec-acbd-54a04de10c68:102.0.2.json new file mode 100644 index 0000000000000..5d9d8369a165a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e6e3ecff-03dd-48ec-acbd-54a04de10c68:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Possible Okta DoS Attack v102.0.2","rule_id":"e6e3ecff-03dd-48ec-acbd-54a04de10c68:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects possible Denial of Service (DoS) attacks against an Okta organization. An adversary may attempt to disrupt an organization's business operations by performing a DoS attack against its Okta service.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1498","name":"Network Denial of Service","reference":"https://attack.mitre.org/techniques/T1498/"},{"id":"T1499","name":"Endpoint Denial of Service","reference":"https://attack.mitre.org/techniques/T1499/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:(application.integration.rate_limit_exceeded or system.org.rate_limit.warning or system.org.rate_limit.violation or core.concurrency.org.limit.violation)\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e6e3ecff-03dd-48ec-acbd-54a04de10c68:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e6e8912f-283f-4d0d-8442-e0dcaf49944b:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e6e8912f-283f-4d0d-8442-e0dcaf49944b:100.0.0.json new file mode 100644 index 0000000000000..59c4f82265d92 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e6e8912f-283f-4d0d-8442-e0dcaf49944b:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Screensaver Plist File Modified by Unexpected Process v100.0.0","rule_id":"e6e8912f-283f-4d0d-8442-e0dcaf49944b:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a screensaver plist file is modified by an unexpected process. An adversary can maintain persistence on a macOS endpoint by creating a malicious screensaver (.saver) file and configuring the screensaver plist file to execute code each time the screensaver is activated.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n- Analyze the plist file modification event to identify whether the change was expected or not\n- Investigate the process that modified the plist file for malicious code or other suspicious behavior\n- Identify if any suspicious or known malicious screensaver (.saver) files were recently written to or modified on the host","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/saving-your-access-d562bf5bf90b","https://github.com/D00MFist/PersistentJXA"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.name: \"com.apple.screensaver.*.plist\" and\n file.path : (\n \"/Users/*/Library/Preferences/ByHost/*\",\n \"/Library/Managed Preferences/*\",\n \"/System/Library/Preferences/*\"\n ) and\n /* Filter OS processes modifying screensaver plist files */\n not process.executable : (\n \"/usr/sbin/cfprefsd\",\n \"/usr/libexec/xpcproxy\",\n \"/System/Library/CoreServices/ManagedClient.app/Contents/Resources/MCXCompositor\",\n \"/System/Library/CoreServices/ManagedClient.app/Contents/MacOS/ManagedClient\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"e6e8912f-283f-4d0d-8442-e0dcaf49944b:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e6e8912f-283f-4d0d-8442-e0dcaf49944b:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e6e8912f-283f-4d0d-8442-e0dcaf49944b:100.0.1.json new file mode 100644 index 0000000000000..9614c41e54567 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e6e8912f-283f-4d0d-8442-e0dcaf49944b:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Screensaver Plist File Modified by Unexpected Process v100.0.1","rule_id":"e6e8912f-283f-4d0d-8442-e0dcaf49944b:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a screensaver plist file is modified by an unexpected process. An adversary can maintain persistence on a macOS endpoint by creating a malicious screensaver (.saver) file and configuring the screensaver plist file to execute code each time the screensaver is activated.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n- Analyze the plist file modification event to identify whether the change was expected or not\n- Investigate the process that modified the plist file for malicious code or other suspicious behavior\n- Identify if any suspicious or known malicious screensaver (.saver) files were recently written to or modified on the host","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/saving-your-access-d562bf5bf90b","https://github.com/D00MFist/PersistentJXA"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.name: \"com.apple.screensaver.*.plist\" and\n file.path : (\n \"/Users/*/Library/Preferences/ByHost/*\",\n \"/Library/Managed Preferences/*\",\n \"/System/Library/Preferences/*\"\n ) and\n /* Filter OS processes modifying screensaver plist files */\n not process.executable : (\n \"/usr/sbin/cfprefsd\",\n \"/usr/libexec/xpcproxy\",\n \"/System/Library/CoreServices/ManagedClient.app/Contents/Resources/MCXCompositor\",\n \"/System/Library/CoreServices/ManagedClient.app/Contents/MacOS/ManagedClient\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"e6e8912f-283f-4d0d-8442-e0dcaf49944b:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e6e8912f-283f-4d0d-8442-e0dcaf49944b:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e6e8912f-283f-4d0d-8442-e0dcaf49944b:100.0.2.json new file mode 100644 index 0000000000000..dddd722f310fd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e6e8912f-283f-4d0d-8442-e0dcaf49944b:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Screensaver Plist File Modified by Unexpected Process v100.0.2","rule_id":"e6e8912f-283f-4d0d-8442-e0dcaf49944b:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a screensaver plist file is modified by an unexpected process. An adversary can maintain persistence on a macOS endpoint by creating a malicious screensaver (.saver) file and configuring the screensaver plist file to execute code each time the screensaver is activated.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n- Analyze the plist file modification event to identify whether the change was expected or not\n- Investigate the process that modified the plist file for malicious code or other suspicious behavior\n- Identify if any suspicious or known malicious screensaver (.saver) files were recently written to or modified on the host","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://posts.specterops.io/saving-your-access-d562bf5bf90b","https://github.com/D00MFist/PersistentJXA"],"tags":["Elastic","Host","macOS","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.name: \"com.apple.screensaver.*.plist\" and\n file.path : (\n \"/Users/*/Library/Preferences/ByHost/*\",\n \"/Library/Managed Preferences/*\",\n \"/System/Library/Preferences/*\"\n ) and\n /* Filter OS processes modifying screensaver plist files */\n not process.executable : (\n \"/usr/sbin/cfprefsd\",\n \"/usr/libexec/xpcproxy\",\n \"/System/Library/CoreServices/ManagedClient.app/Contents/Resources/MCXCompositor\",\n \"/System/Library/CoreServices/ManagedClient.app/Contents/MacOS/ManagedClient\"\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"e6e8912f-283f-4d0d-8442-e0dcaf49944b:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e7075e8d-a966-458e-a183-85cd331af255:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e7075e8d-a966-458e-a183-85cd331af255:101.0.0.json new file mode 100644 index 0000000000000..0e2ddb1162eb6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e7075e8d-a966-458e-a183-85cd331af255:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Default Cobalt Strike Team Server Certificate v101.0.0","rule_id":"e7075e8d-a966-458e-a183-85cd331af255:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects the use of the default Cobalt Strike Team Server TLS certificate. Cobalt Strike is software for Adversary Simulations and Red Team Operations which are security assessments that replicate the tactics and techniques of an advanced adversary in a network. Modifications to the Packetbeat configuration can be made to include MD5 and SHA256 hashing algorithms (the default is SHA1). See the References section for additional information on module configuration.","risk_score":99,"severity":"critical","license":"Elastic License v2","note":"## Threat intel\n\nWhile Cobalt Strike is intended to be used for penetration tests and IR training, it is frequently used by actual threat actors (TA) such as APT19, APT29, APT32, APT41, FIN6, DarkHydrus, CopyKittens, Cobalt Group, Leviathan, and many other unnamed criminal TAs. This rule uses high-confidence atomic indicators, so alerts should be investigated rapidly.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://attack.mitre.org/software/S0154/","https://www.cobaltstrike.com/help-setup-collaboration","https://www.elastic.co/guide/en/beats/packetbeat/current/configuration-tls.html","https://www.elastic.co/guide/en/beats/filebeat/7.9/filebeat-module-suricata.html","https://www.elastic.co/guide/en/beats/filebeat/7.9/filebeat-module-zeek.html","https://www.elastic.co/security-labs/collecting-cobalt-strike-beacons-with-the-elastic-stack"],"tags":["Command and Control","Post-Execution","Threat Detection","Elastic","Network","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.001","name":"Web Protocols","reference":"https://attack.mitre.org/techniques/T1071/001/"}]}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and (tls.server.hash.md5:950098276A495286EB2A2556FBAB6D83 or\n tls.server.hash.sha1:6ECE5ECE4192683D2D84E25B0BA7E04F9CB7EB7C or\n tls.server.hash.sha256:87F2085C32B6A2CC709B365F55873E207A9CAA10BFFECF2FD16D3CF9D94D390C)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"tls.server.hash.md5","type":"keyword"},{"ecs":true,"name":"tls.server.hash.sha1","type":"keyword"},{"ecs":true,"name":"tls.server.hash.sha256","type":"keyword"}]},"id":"e7075e8d-a966-458e-a183-85cd331af255:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e7075e8d-a966-458e-a183-85cd331af255:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e7075e8d-a966-458e-a183-85cd331af255:101.0.1.json new file mode 100644 index 0000000000000..f65f4d6ed72f1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e7075e8d-a966-458e-a183-85cd331af255:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Default Cobalt Strike Team Server Certificate v101.0.1","rule_id":"e7075e8d-a966-458e-a183-85cd331af255:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects the use of the default Cobalt Strike Team Server TLS certificate. Cobalt Strike is software for Adversary Simulations and Red Team Operations which are security assessments that replicate the tactics and techniques of an advanced adversary in a network. Modifications to the Packetbeat configuration can be made to include MD5 and SHA256 hashing algorithms (the default is SHA1). See the References section for additional information on module configuration.","risk_score":99,"severity":"critical","license":"Elastic License v2","note":"## Threat intel\n\nWhile Cobalt Strike is intended to be used for penetration tests and IR training, it is frequently used by actual threat actors (TA) such as APT19, APT29, APT32, APT41, FIN6, DarkHydrus, CopyKittens, Cobalt Group, Leviathan, and many other unnamed criminal TAs. This rule uses high-confidence atomic indicators, so alerts should be investigated rapidly.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://attack.mitre.org/software/S0154/","https://www.cobaltstrike.com/help-setup-collaboration","https://www.elastic.co/guide/en/beats/packetbeat/current/configuration-tls.html","https://www.elastic.co/guide/en/beats/filebeat/7.9/filebeat-module-suricata.html","https://www.elastic.co/guide/en/beats/filebeat/7.9/filebeat-module-zeek.html","https://www.elastic.co/security-labs/collecting-cobalt-strike-beacons-with-the-elastic-stack"],"tags":["Command and Control","Post-Execution","Threat Detection","Elastic","Network","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.001","name":"Web Protocols","reference":"https://attack.mitre.org/techniques/T1071/001/"}]}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and (tls.server.hash.md5:950098276A495286EB2A2556FBAB6D83 or\n tls.server.hash.sha1:6ECE5ECE4192683D2D84E25B0BA7E04F9CB7EB7C or\n tls.server.hash.sha256:87F2085C32B6A2CC709B365F55873E207A9CAA10BFFECF2FD16D3CF9D94D390C)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"tls.server.hash.md5","type":"keyword"},{"ecs":true,"name":"tls.server.hash.sha1","type":"keyword"},{"ecs":true,"name":"tls.server.hash.sha256","type":"keyword"}]},"id":"e7075e8d-a966-458e-a183-85cd331af255:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e7075e8d-a966-458e-a183-85cd331af255:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e7075e8d-a966-458e-a183-85cd331af255:101.0.2.json new file mode 100644 index 0000000000000..c6e97c5bd4fe7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e7075e8d-a966-458e-a183-85cd331af255:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Default Cobalt Strike Team Server Certificate v101.0.2","rule_id":"e7075e8d-a966-458e-a183-85cd331af255:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects the use of the default Cobalt Strike Team Server TLS certificate. Cobalt Strike is software for Adversary Simulations and Red Team Operations which are security assessments that replicate the tactics and techniques of an advanced adversary in a network. Modifications to the Packetbeat configuration can be made to include MD5 and SHA256 hashing algorithms (the default is SHA1). See the References section for additional information on module configuration.","risk_score":99,"severity":"critical","license":"Elastic License v2","note":"## Threat intel\n\nWhile Cobalt Strike is intended to be used for penetration tests and IR training, it is frequently used by actual threat actors (TA) such as APT19, APT29, APT32, APT41, FIN6, DarkHydrus, CopyKittens, Cobalt Group, Leviathan, and many other unnamed criminal TAs. This rule uses high-confidence atomic indicators, so alerts should be investigated rapidly.","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://attack.mitre.org/software/S0154/","https://www.cobaltstrike.com/help-setup-collaboration","https://www.elastic.co/guide/en/beats/packetbeat/current/configuration-tls.html","https://www.elastic.co/guide/en/beats/filebeat/7.9/filebeat-module-suricata.html","https://www.elastic.co/guide/en/beats/filebeat/7.9/filebeat-module-zeek.html","https://www.elastic.co/security-labs/collecting-cobalt-strike-beacons-with-the-elastic-stack"],"tags":["Command and Control","Post-Execution","Threat Detection","Elastic","Network","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1071","name":"Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1071/","subtechnique":[{"id":"T1071.001","name":"Web Protocols","reference":"https://attack.mitre.org/techniques/T1071/001/"}]}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and (tls.server.hash.md5:950098276A495286EB2A2556FBAB6D83 or\n tls.server.hash.sha1:6ECE5ECE4192683D2D84E25B0BA7E04F9CB7EB7C or\n tls.server.hash.sha256:87F2085C32B6A2CC709B365F55873E207A9CAA10BFFECF2FD16D3CF9D94D390C)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"tls.server.hash.md5","type":"keyword"},{"ecs":true,"name":"tls.server.hash.sha1","type":"keyword"},{"ecs":true,"name":"tls.server.hash.sha256","type":"keyword"}]},"id":"e7075e8d-a966-458e-a183-85cd331af255:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e7125cea-9fe1-42a5-9a05-b0792cf86f5a:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e7125cea-9fe1-42a5-9a05-b0792cf86f5a:101.0.0.json new file mode 100644 index 0000000000000..4889e6adf3970 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e7125cea-9fe1-42a5-9a05-b0792cf86f5a:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Execution of Persistent Suspicious Program v101.0.0","rule_id":"e7125cea-9fe1-42a5-9a05-b0792cf86f5a:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution of suspicious persistent programs (scripts, rundll32, etc.) by looking at process lineage and command line usage.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"/* userinit followed by explorer followed by early child process of explorer (unlikely to be launched interactively) within 1m */\nsequence by host.id, user.name with maxspan=1m\n [process where event.type == \"start\" and process.name : \"userinit.exe\" and process.parent.name : \"winlogon.exe\"]\n [process where event.type == \"start\" and process.name : \"explorer.exe\"]\n [process where event.type == \"start\" and process.parent.name : \"explorer.exe\" and\n /* add suspicious programs here */\n process.pe.original_file_name in (\"cscript.exe\",\n \"wscript.exe\",\n \"PowerShell.EXE\",\n \"MSHTA.EXE\",\n \"RUNDLL32.EXE\",\n \"REGSVR32.EXE\",\n \"RegAsm.exe\",\n \"MSBuild.exe\",\n \"InstallUtil.exe\") and\n /* add potential suspicious paths here */\n process.args : (\"C:\\\\Users\\\\*\", \"C:\\\\ProgramData\\\\*\", \"C:\\\\Windows\\\\Temp\\\\*\", \"C:\\\\Windows\\\\Tasks\\\\*\", \"C:\\\\PerfLogs\\\\*\", \"C:\\\\Intel\\\\*\")\n ]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"e7125cea-9fe1-42a5-9a05-b0792cf86f5a:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e7125cea-9fe1-42a5-9a05-b0792cf86f5a:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e7125cea-9fe1-42a5-9a05-b0792cf86f5a:101.0.1.json new file mode 100644 index 0000000000000..78ac4405822ce --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e7125cea-9fe1-42a5-9a05-b0792cf86f5a:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Execution of Persistent Suspicious Program v101.0.1","rule_id":"e7125cea-9fe1-42a5-9a05-b0792cf86f5a:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution of suspicious persistent programs (scripts, rundll32, etc.) by looking at process lineage and command line usage.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"/* userinit followed by explorer followed by early child process of explorer (unlikely to be launched interactively) within 1m */\nsequence by host.id, user.name with maxspan=1m\n [process where event.type == \"start\" and process.name : \"userinit.exe\" and process.parent.name : \"winlogon.exe\"]\n [process where event.type == \"start\" and process.name : \"explorer.exe\"]\n [process where event.type == \"start\" and process.parent.name : \"explorer.exe\" and\n /* add suspicious programs here */\n process.pe.original_file_name in (\"cscript.exe\",\n \"wscript.exe\",\n \"PowerShell.EXE\",\n \"MSHTA.EXE\",\n \"RUNDLL32.EXE\",\n \"REGSVR32.EXE\",\n \"RegAsm.exe\",\n \"MSBuild.exe\",\n \"InstallUtil.exe\") and\n /* add potential suspicious paths here */\n process.args : (\"C:\\\\Users\\\\*\", \"C:\\\\ProgramData\\\\*\", \"C:\\\\Windows\\\\Temp\\\\*\", \"C:\\\\Windows\\\\Tasks\\\\*\", \"C:\\\\PerfLogs\\\\*\", \"C:\\\\Intel\\\\*\")\n ]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"e7125cea-9fe1-42a5-9a05-b0792cf86f5a:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e7125cea-9fe1-42a5-9a05-b0792cf86f5a:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e7125cea-9fe1-42a5-9a05-b0792cf86f5a:101.0.2.json new file mode 100644 index 0000000000000..0401380b04461 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e7125cea-9fe1-42a5-9a05-b0792cf86f5a:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Execution of Persistent Suspicious Program v101.0.2","rule_id":"e7125cea-9fe1-42a5-9a05-b0792cf86f5a:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution of suspicious persistent programs (scripts, rundll32, etc.) by looking at process lineage and command line usage.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"/* userinit followed by explorer followed by early child process of explorer (unlikely to be launched interactively) within 1m */\nsequence by host.id, user.name with maxspan=1m\n [process where event.type == \"start\" and process.name : \"userinit.exe\" and process.parent.name : \"winlogon.exe\"]\n [process where event.type == \"start\" and process.name : \"explorer.exe\"]\n [process where event.type == \"start\" and process.parent.name : \"explorer.exe\" and\n /* add suspicious programs here */\n process.pe.original_file_name in (\"cscript.exe\",\n \"wscript.exe\",\n \"PowerShell.EXE\",\n \"MSHTA.EXE\",\n \"RUNDLL32.EXE\",\n \"REGSVR32.EXE\",\n \"RegAsm.exe\",\n \"MSBuild.exe\",\n \"InstallUtil.exe\") and\n /* add potential suspicious paths here */\n process.args : (\"C:\\\\Users\\\\*\", \"C:\\\\ProgramData\\\\*\", \"C:\\\\Windows\\\\Temp\\\\*\", \"C:\\\\Windows\\\\Tasks\\\\*\", \"C:\\\\PerfLogs\\\\*\", \"C:\\\\Intel\\\\*\")\n ]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"e7125cea-9fe1-42a5-9a05-b0792cf86f5a:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e7cd5982-17c8-4959-874c-633acde7d426:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e7cd5982-17c8-4959-874c-633acde7d426:101.0.0.json new file mode 100644 index 0000000000000..97c7e3cd9bda0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e7cd5982-17c8-4959-874c-633acde7d426:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Route Table Modified or Deleted v101.0.0","rule_id":"e7cd5982-17c8-4959-874c-633acde7d426:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an AWS Route Table has been modified or deleted.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Route Table could be modified or deleted by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Route Table being modified from unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule. Also automated processes that use Terraform may lead to false positives."],"from":"now-60m","interval":"10m","references":["https://github.com/easttimor/aws-incident-response#network-routing","https://docs.datadoghq.com/security_platform/default_rules/aws-ec2-route-table-modified/","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ReplaceRoute.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ReplaceRouteTableAssociation","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteRouteTable.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteRoute.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisassociateRouteTable.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:(ReplaceRoute or ReplaceRouteTableAssociation or\nDeleteRouteTable or DeleteRoute or DisassociateRouteTable) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e7cd5982-17c8-4959-874c-633acde7d426:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e7cd5982-17c8-4959-874c-633acde7d426:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e7cd5982-17c8-4959-874c-633acde7d426:101.0.1.json new file mode 100644 index 0000000000000..70ab12cd8636e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e7cd5982-17c8-4959-874c-633acde7d426:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Route Table Modified or Deleted v101.0.1","rule_id":"e7cd5982-17c8-4959-874c-633acde7d426:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an AWS Route Table has been modified or deleted.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Route Table could be modified or deleted by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Route Table being modified from unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule. Also automated processes that use Terraform may lead to false positives."],"from":"now-60m","interval":"10m","references":["https://github.com/easttimor/aws-incident-response#network-routing","https://docs.datadoghq.com/security_platform/default_rules/aws-ec2-route-table-modified/","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ReplaceRoute.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ReplaceRouteTableAssociation","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteRouteTable.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteRoute.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisassociateRouteTable.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:(ReplaceRoute or ReplaceRouteTableAssociation or\nDeleteRouteTable or DeleteRoute or DisassociateRouteTable) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e7cd5982-17c8-4959-874c-633acde7d426:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e7cd5982-17c8-4959-874c-633acde7d426:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e7cd5982-17c8-4959-874c-633acde7d426:101.0.2.json new file mode 100644 index 0000000000000..90240bb262646 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e7cd5982-17c8-4959-874c-633acde7d426:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Route Table Modified or Deleted v101.0.2","rule_id":"e7cd5982-17c8-4959-874c-633acde7d426:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an AWS Route Table has been modified or deleted.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Route Table could be modified or deleted by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Route Table being modified from unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule. Also automated processes that use Terraform may lead to false positives."],"from":"now-60m","interval":"10m","references":["https://github.com/easttimor/aws-incident-response#network-routing","https://docs.datadoghq.com/security_platform/default_rules/aws-ec2-route-table-modified/","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ReplaceRoute.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ReplaceRouteTableAssociation","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteRouteTable.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteRoute.html","https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisassociateRouteTable.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Network Security","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:cloudtrail.amazonaws.com and event.action:(ReplaceRoute or ReplaceRouteTableAssociation or\nDeleteRouteTable or DeleteRoute or DisassociateRouteTable) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e7cd5982-17c8-4959-874c-633acde7d426:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e8571d5f-bea1-46c2-9f56-998de2d3ed95:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e8571d5f-bea1-46c2-9f56-998de2d3ed95:100.0.0.json new file mode 100644 index 0000000000000..aca5d2d943a91 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e8571d5f-bea1-46c2-9f56-998de2d3ed95:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Service Control Spawned via Script Interpreter v100.0.0","rule_id":"e8571d5f-bea1-46c2-9f56-998de2d3ed95:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Service Control (sc.exe) spawning from script interpreter processes to create, modify, or start services. This could be indicative of adversary lateral movement but will be noisy if commonly done by admins.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"/* This rule is not compatible with Sysmon due to user.id issues */\n\nprocess where event.type == \"start\" and\n (process.name : \"sc.exe\" or process.pe.original_file_name == \"sc.exe\") and\n process.parent.name : (\"cmd.exe\", \"wscript.exe\", \"rundll32.exe\", \"regsvr32.exe\",\n \"wmic.exe\", \"mshta.exe\",\"powershell.exe\", \"pwsh.exe\") and\n process.args:(\"config\", \"create\", \"start\", \"delete\", \"stop\", \"pause\") and\n /* exclude SYSTEM SID - look for service creations by non-SYSTEM user */\n not user.id : \"S-1-5-18\"\n","type":"eql","index":["logs-endpoint.events.*","logs-system.*","winlogbeat-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"e8571d5f-bea1-46c2-9f56-998de2d3ed95:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e8571d5f-bea1-46c2-9f56-998de2d3ed95:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e8571d5f-bea1-46c2-9f56-998de2d3ed95:100.0.1.json new file mode 100644 index 0000000000000..f7960cc55aa5f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e8571d5f-bea1-46c2-9f56-998de2d3ed95:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Service Control Spawned via Script Interpreter v100.0.1","rule_id":"e8571d5f-bea1-46c2-9f56-998de2d3ed95:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Service Control (sc.exe) spawning from script interpreter processes to create, modify, or start services. This could be indicative of adversary lateral movement but will be noisy if commonly done by admins.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"/* This rule is not compatible with Sysmon due to user.id issues */\n\nprocess where event.type == \"start\" and\n (process.name : \"sc.exe\" or process.pe.original_file_name == \"sc.exe\") and\n process.parent.name : (\"cmd.exe\", \"wscript.exe\", \"rundll32.exe\", \"regsvr32.exe\",\n \"wmic.exe\", \"mshta.exe\",\"powershell.exe\", \"pwsh.exe\") and\n process.args:(\"config\", \"create\", \"start\", \"delete\", \"stop\", \"pause\") and\n /* exclude SYSTEM SID - look for service creations by non-SYSTEM user */\n not user.id : \"S-1-5-18\"\n","type":"eql","index":["logs-endpoint.events.*","logs-system.*","winlogbeat-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"e8571d5f-bea1-46c2-9f56-998de2d3ed95:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e8571d5f-bea1-46c2-9f56-998de2d3ed95:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e8571d5f-bea1-46c2-9f56-998de2d3ed95:100.0.2.json new file mode 100644 index 0000000000000..d2b69a7615380 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e8571d5f-bea1-46c2-9f56-998de2d3ed95:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Service Control Spawned via Script Interpreter v100.0.2","rule_id":"e8571d5f-bea1-46c2-9f56-998de2d3ed95:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies Service Control (sc.exe) spawning from script interpreter processes to create, modify, or start services. This could be indicative of adversary lateral movement but will be noisy if commonly done by admins.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/"}]}],"language":"eql","query":"/* This rule is not compatible with Sysmon due to user.id issues */\n\nprocess where event.type == \"start\" and\n (process.name : \"sc.exe\" or process.pe.original_file_name == \"sc.exe\") and\n process.parent.name : (\"cmd.exe\", \"wscript.exe\", \"rundll32.exe\", \"regsvr32.exe\",\n \"wmic.exe\", \"mshta.exe\",\"powershell.exe\", \"pwsh.exe\") and\n process.args:(\"config\", \"create\", \"start\", \"delete\", \"stop\", \"pause\") and\n /* exclude SYSTEM SID - look for service creations by non-SYSTEM user */\n not user.id : \"S-1-5-18\"\n","type":"eql","index":["logs-endpoint.events.*","logs-system.*","winlogbeat-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"e8571d5f-bea1-46c2-9f56-998de2d3ed95:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e86da94d-e54b-4fb5-b96c-cecff87e8787:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e86da94d-e54b-4fb5-b96c-cecff87e8787:100.0.0.json new file mode 100644 index 0000000000000..d4a4786d8b9db --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e86da94d-e54b-4fb5-b96c-cecff87e8787:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Installation of Security Support Provider v100.0.0","rule_id":"e86da94d-e54b-4fb5-b96c-cecff87e8787:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies registry modifications related to the Windows Security Support Provider (SSP) configuration. Adversaries may abuse this to establish persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.005","name":"Security Support Provider","reference":"https://attack.mitre.org/techniques/T1547/005/"}]}]}],"language":"eql","query":"registry where\n registry.path : (\"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Lsa\\\\Security Packages*\",\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Lsa\\\\OSConfig\\\\Security Packages*\") and\n not process.executable : (\"C:\\\\Windows\\\\System32\\\\msiexec.exe\", \"C:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"e86da94d-e54b-4fb5-b96c-cecff87e8787:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e86da94d-e54b-4fb5-b96c-cecff87e8787:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e86da94d-e54b-4fb5-b96c-cecff87e8787:100.0.1.json new file mode 100644 index 0000000000000..4b54efb891aa4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e86da94d-e54b-4fb5-b96c-cecff87e8787:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Installation of Security Support Provider v100.0.1","rule_id":"e86da94d-e54b-4fb5-b96c-cecff87e8787:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies registry modifications related to the Windows Security Support Provider (SSP) configuration. Adversaries may abuse this to establish persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.005","name":"Security Support Provider","reference":"https://attack.mitre.org/techniques/T1547/005/"}]}]}],"language":"eql","query":"registry where\n registry.path : (\"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Lsa\\\\Security Packages*\",\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Lsa\\\\OSConfig\\\\Security Packages*\") and\n not process.executable : (\"C:\\\\Windows\\\\System32\\\\msiexec.exe\", \"C:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"e86da94d-e54b-4fb5-b96c-cecff87e8787:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e86da94d-e54b-4fb5-b96c-cecff87e8787:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e86da94d-e54b-4fb5-b96c-cecff87e8787:100.0.2.json new file mode 100644 index 0000000000000..a028f6f0681d9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e86da94d-e54b-4fb5-b96c-cecff87e8787:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Installation of Security Support Provider v100.0.2","rule_id":"e86da94d-e54b-4fb5-b96c-cecff87e8787:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies registry modifications related to the Windows Security Support Provider (SSP) configuration. Adversaries may abuse this to establish persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.005","name":"Security Support Provider","reference":"https://attack.mitre.org/techniques/T1547/005/"}]}]}],"language":"eql","query":"registry where\n registry.path : (\"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Lsa\\\\Security Packages*\",\n \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Lsa\\\\OSConfig\\\\Security Packages*\") and\n not process.executable : (\"C:\\\\Windows\\\\System32\\\\msiexec.exe\", \"C:\\\\Windows\\\\SysWOW64\\\\msiexec.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"e86da94d-e54b-4fb5-b96c-cecff87e8787:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e90ee3af-45fc-432e-a850-4a58cf14a457:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e90ee3af-45fc-432e-a850-4a58cf14a457:102.0.0.json new file mode 100644 index 0000000000000..109283d4369d9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e90ee3af-45fc-432e-a850-4a58cf14a457:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"High Number of Okta User Password Reset or Unlock Attempts v102.0.0","rule_id":"e90ee3af-45fc-432e-a850-4a58cf14a457:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number of Okta user password reset or account unlock attempts. An adversary may attempt to obtain unauthorized access to Okta user accounts using these methods and attempt to blend in with normal activity in their target's environment and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic","@BenB196","Austin Songer"],"false_positives":["The number of Okta user password reset or account unlock attempts will likely vary between organizations. To fit this rule to their organization, users can duplicate this rule and edit the schedule and threshold values in the new rule."],"from":"now-60m","references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"query":"event.dataset:okta.system and\n event.action:(system.email.account_unlock.sent_message or system.email.password_reset.sent_message or\n system.sms.send_account_unlock_message or system.sms.send_password_reset_message or\n system.voice.send_account_unlock_call or system.voice.send_password_reset_call or\n user.account.unlock_token)\n","threshold":{"field":["okta.actor.alternate_id"],"value":5},"type":"threshold","index":["filebeat-*","logs-okta*"],"language":"kuery","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e90ee3af-45fc-432e-a850-4a58cf14a457:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e90ee3af-45fc-432e-a850-4a58cf14a457:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e90ee3af-45fc-432e-a850-4a58cf14a457:102.0.1.json new file mode 100644 index 0000000000000..26210d07bfe9d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e90ee3af-45fc-432e-a850-4a58cf14a457:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"High Number of Okta User Password Reset or Unlock Attempts v102.0.1","rule_id":"e90ee3af-45fc-432e-a850-4a58cf14a457:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number of Okta user password reset or account unlock attempts. An adversary may attempt to obtain unauthorized access to Okta user accounts using these methods and attempt to blend in with normal activity in their target's environment and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic","@BenB196","Austin Songer"],"false_positives":["The number of Okta user password reset or account unlock attempts will likely vary between organizations. To fit this rule to their organization, users can duplicate this rule and edit the schedule and threshold values in the new rule."],"from":"now-60m","references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"query":"event.dataset:okta.system and\n event.action:(system.email.account_unlock.sent_message or system.email.password_reset.sent_message or\n system.sms.send_account_unlock_message or system.sms.send_password_reset_message or\n system.voice.send_account_unlock_call or system.voice.send_password_reset_call or\n user.account.unlock_token)\n","threshold":{"field":["okta.actor.alternate_id"],"value":5},"type":"threshold","index":["filebeat-*","logs-okta*"],"language":"kuery","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e90ee3af-45fc-432e-a850-4a58cf14a457:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e90ee3af-45fc-432e-a850-4a58cf14a457:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e90ee3af-45fc-432e-a850-4a58cf14a457:102.0.2.json new file mode 100644 index 0000000000000..cc8645f6edb51 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e90ee3af-45fc-432e-a850-4a58cf14a457:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"High Number of Okta User Password Reset or Unlock Attempts v102.0.2","rule_id":"e90ee3af-45fc-432e-a850-4a58cf14a457:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number of Okta user password reset or account unlock attempts. An adversary may attempt to obtain unauthorized access to Okta user accounts using these methods and attempt to blend in with normal activity in their target's environment and evade detection.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic","@BenB196","Austin Songer"],"false_positives":["The number of Okta user password reset or account unlock attempts will likely vary between organizations. To fit this rule to their organization, users can duplicate this rule and edit the schedule and threshold values in the new rule."],"from":"now-60m","references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"query":"event.dataset:okta.system and\n event.action:(system.email.account_unlock.sent_message or system.email.password_reset.sent_message or\n system.sms.send_account_unlock_message or system.sms.send_password_reset_message or\n system.voice.send_account_unlock_call or system.voice.send_password_reset_call or\n user.account.unlock_token)\n","threshold":{"field":["okta.actor.alternate_id"],"value":5},"type":"threshold","index":["filebeat-*","logs-okta*"],"language":"kuery","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e90ee3af-45fc-432e-a850-4a58cf14a457:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e919611d-6b6f-493b-8314-7ed6ac2e413b:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e919611d-6b6f-493b-8314-7ed6ac2e413b:101.0.0.json new file mode 100644 index 0000000000000..1945f56b49133 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e919611d-6b6f-493b-8314-7ed6ac2e413b:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS EC2 VM Export Failure v101.0.0","rule_id":"e919611d-6b6f-493b-8314-7ed6ac2e413b:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an attempt to export an AWS EC2 instance. A virtual machine (VM) export may indicate an attempt to extract or exfiltrate information.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["VM exports may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. VM exports from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/vm-import/latest/userguide/vmexport.html#export-instance"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1005","name":"Data from Local System","reference":"https://attack.mitre.org/techniques/T1005/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:CreateInstanceExportTask and event.outcome:failure\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e919611d-6b6f-493b-8314-7ed6ac2e413b:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e919611d-6b6f-493b-8314-7ed6ac2e413b:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e919611d-6b6f-493b-8314-7ed6ac2e413b:101.0.1.json new file mode 100644 index 0000000000000..152e3f4838680 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e919611d-6b6f-493b-8314-7ed6ac2e413b:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS EC2 VM Export Failure v101.0.1","rule_id":"e919611d-6b6f-493b-8314-7ed6ac2e413b:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an attempt to export an AWS EC2 instance. A virtual machine (VM) export may indicate an attempt to extract or exfiltrate information.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["VM exports may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. VM exports from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/vm-import/latest/userguide/vmexport.html#export-instance"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1005","name":"Data from Local System","reference":"https://attack.mitre.org/techniques/T1005/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:CreateInstanceExportTask and event.outcome:failure\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e919611d-6b6f-493b-8314-7ed6ac2e413b:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e919611d-6b6f-493b-8314-7ed6ac2e413b:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e919611d-6b6f-493b-8314-7ed6ac2e413b:101.0.2.json new file mode 100644 index 0000000000000..5606493569c95 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e919611d-6b6f-493b-8314-7ed6ac2e413b:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS EC2 VM Export Failure v101.0.2","rule_id":"e919611d-6b6f-493b-8314-7ed6ac2e413b:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an attempt to export an AWS EC2 instance. A virtual machine (VM) export may indicate an attempt to extract or exfiltrate information.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["VM exports may be done by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. VM exports from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/vm-import/latest/userguide/vmexport.html#export-instance"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1005","name":"Data from Local System","reference":"https://attack.mitre.org/techniques/T1005/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:ec2.amazonaws.com and event.action:CreateInstanceExportTask and event.outcome:failure\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e919611d-6b6f-493b-8314-7ed6ac2e413b:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e94262f2-c1e9-4d3f-a907-aeab16712e1a:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e94262f2-c1e9-4d3f-a907-aeab16712e1a:102.0.0.json new file mode 100644 index 0000000000000..930793908ad1d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e94262f2-c1e9-4d3f-a907-aeab16712e1a:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Executable File Creation by a System Critical Process v102.0.0","rule_id":"e94262f2-c1e9-4d3f-a907-aeab16712e1a:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an unexpected executable file being created or modified by a Windows system critical process, which may indicate activity related to remote code execution or other forms of exploitation.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Executable File Creation by a System Critical Process\n\nWindows internal/system processes have some characteristics that can be used to spot suspicious activities. One of these\ncharacteristics is file operations.\n\nThis rule looks for the creation of executable files done by system-critical processes. This can indicate the exploitation\nof a vulnerability or a malicious process masquerading as a system-critical process.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1211","name":"Exploitation for Defense Evasion","reference":"https://attack.mitre.org/techniques/T1211/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.extension : (\"exe\", \"dll\") and\n process.name : (\"smss.exe\",\n \"autochk.exe\",\n \"csrss.exe\",\n \"wininit.exe\",\n \"services.exe\",\n \"lsass.exe\",\n \"winlogon.exe\",\n \"userinit.exe\",\n \"LogonUI.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"e94262f2-c1e9-4d3f-a907-aeab16712e1a:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e94262f2-c1e9-4d3f-a907-aeab16712e1a:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e94262f2-c1e9-4d3f-a907-aeab16712e1a:102.0.1.json new file mode 100644 index 0000000000000..d88edfb387c08 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e94262f2-c1e9-4d3f-a907-aeab16712e1a:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Executable File Creation by a System Critical Process v102.0.1","rule_id":"e94262f2-c1e9-4d3f-a907-aeab16712e1a:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an unexpected executable file being created or modified by a Windows system critical process, which may indicate activity related to remote code execution or other forms of exploitation.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Executable File Creation by a System Critical Process\n\nWindows internal/system processes have some characteristics that can be used to spot suspicious activities. One of these\ncharacteristics is file operations.\n\nThis rule looks for the creation of executable files done by system-critical processes. This can indicate the exploitation\nof a vulnerability or a malicious process masquerading as a system-critical process.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1211","name":"Exploitation for Defense Evasion","reference":"https://attack.mitre.org/techniques/T1211/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.extension : (\"exe\", \"dll\") and\n process.name : (\"smss.exe\",\n \"autochk.exe\",\n \"csrss.exe\",\n \"wininit.exe\",\n \"services.exe\",\n \"lsass.exe\",\n \"winlogon.exe\",\n \"userinit.exe\",\n \"LogonUI.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"e94262f2-c1e9-4d3f-a907-aeab16712e1a:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e94262f2-c1e9-4d3f-a907-aeab16712e1a:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e94262f2-c1e9-4d3f-a907-aeab16712e1a:102.0.2.json new file mode 100644 index 0000000000000..1eea92e612758 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e94262f2-c1e9-4d3f-a907-aeab16712e1a:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Executable File Creation by a System Critical Process v102.0.2","rule_id":"e94262f2-c1e9-4d3f-a907-aeab16712e1a:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an unexpected executable file being created or modified by a Windows system critical process, which may indicate activity related to remote code execution or other forms of exploitation.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Unusual Executable File Creation by a System Critical Process\n\nWindows internal/system processes have some characteristics that can be used to spot suspicious activities. One of these\ncharacteristics is file operations.\n\nThis rule looks for the creation of executable files done by system-critical processes. This can indicate the exploitation\nof a vulnerability or a malicious process masquerading as a system-critical process.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1211","name":"Exploitation for Defense Evasion","reference":"https://attack.mitre.org/techniques/T1211/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.extension : (\"exe\", \"dll\") and\n process.name : (\"smss.exe\",\n \"autochk.exe\",\n \"csrss.exe\",\n \"wininit.exe\",\n \"services.exe\",\n \"lsass.exe\",\n \"winlogon.exe\",\n \"userinit.exe\",\n \"LogonUI.exe\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"e94262f2-c1e9-4d3f-a907-aeab16712e1a:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e9abe69b-1deb-4e19-ac4a-5d5ac00f72eb:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e9abe69b-1deb-4e19-ac4a-5d5ac00f72eb:100.0.0.json new file mode 100644 index 0000000000000..4115bce208469 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e9abe69b-1deb-4e19-ac4a-5d5ac00f72eb:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential LSA Authentication Package Abuse v100.0.0","rule_id":"e9abe69b-1deb-4e19-ac4a-5d5ac00f72eb:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries can use the autostart mechanism provided by the Local Security Authority (LSA) authentication packages for privilege escalation or persistence by placing a reference to a binary in the Windows registry. The binary will then be executed by SYSTEM when the authentication packages are loaded.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.002","name":"Authentication Package","reference":"https://attack.mitre.org/techniques/T1547/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.002","name":"Authentication Package","reference":"https://attack.mitre.org/techniques/T1547/002/"}]}]}],"language":"eql","query":"registry where event.type == \"change\" and\n registry.path : \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Lsa\\\\Authentication Packages\" and\n /* exclude SYSTEM SID - look for changes by non-SYSTEM user */\n not user.id : \"S-1-5-18\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"e9abe69b-1deb-4e19-ac4a-5d5ac00f72eb:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e9abe69b-1deb-4e19-ac4a-5d5ac00f72eb:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e9abe69b-1deb-4e19-ac4a-5d5ac00f72eb:100.0.1.json new file mode 100644 index 0000000000000..4017ba9154d7e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e9abe69b-1deb-4e19-ac4a-5d5ac00f72eb:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential LSA Authentication Package Abuse v100.0.1","rule_id":"e9abe69b-1deb-4e19-ac4a-5d5ac00f72eb:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries can use the autostart mechanism provided by the Local Security Authority (LSA) authentication packages for privilege escalation or persistence by placing a reference to a binary in the Windows registry. The binary will then be executed by SYSTEM when the authentication packages are loaded.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.002","name":"Authentication Package","reference":"https://attack.mitre.org/techniques/T1547/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.002","name":"Authentication Package","reference":"https://attack.mitre.org/techniques/T1547/002/"}]}]}],"language":"eql","query":"registry where event.type == \"change\" and\n registry.path : \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Lsa\\\\Authentication Packages\" and\n /* exclude SYSTEM SID - look for changes by non-SYSTEM user */\n not user.id : \"S-1-5-18\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"e9abe69b-1deb-4e19-ac4a-5d5ac00f72eb:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e9abe69b-1deb-4e19-ac4a-5d5ac00f72eb:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e9abe69b-1deb-4e19-ac4a-5d5ac00f72eb:100.0.2.json new file mode 100644 index 0000000000000..7fb931ec228d2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e9abe69b-1deb-4e19-ac4a-5d5ac00f72eb:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential LSA Authentication Package Abuse v100.0.2","rule_id":"e9abe69b-1deb-4e19-ac4a-5d5ac00f72eb:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Adversaries can use the autostart mechanism provided by the Local Security Authority (LSA) authentication packages for privilege escalation or persistence by placing a reference to a binary in the Windows registry. The binary will then be executed by SYSTEM when the authentication packages are loaded.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.002","name":"Authentication Package","reference":"https://attack.mitre.org/techniques/T1547/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.002","name":"Authentication Package","reference":"https://attack.mitre.org/techniques/T1547/002/"}]}]}],"language":"eql","query":"registry where event.type == \"change\" and\n registry.path : \"HKLM\\\\SYSTEM\\\\*ControlSet*\\\\Control\\\\Lsa\\\\Authentication Packages\" and\n /* exclude SYSTEM SID - look for changes by non-SYSTEM user */\n not user.id : \"S-1-5-18\"\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.path","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"e9abe69b-1deb-4e19-ac4a-5d5ac00f72eb:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e9ff9c1c-fe36-4d0d-b3fd-9e0bf4853a62:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e9ff9c1c-fe36-4d0d-b3fd-9e0bf4853a62:101.0.0.json new file mode 100644 index 0000000000000..4da2153a1d906 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e9ff9c1c-fe36-4d0d-b3fd-9e0bf4853a62:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Automation Webhook Created v101.0.0","rule_id":"e9ff9c1c-fe36-4d0d-b3fd-9e0bf4853a62:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Azure Automation webhook is created. Azure Automation runbooks can be configured to execute via a webhook. A webhook uses a custom URL passed to Azure Automation along with a data payload specific to the runbook. An adversary may create a webhook in order to trigger a runbook that contains malicious code.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://powerzure.readthedocs.io/en/latest/Functions/operational.html#create-backdoor","https://github.com/hausec/PowerZure","https://posts.specterops.io/attacking-azure-azure-ad-and-introducing-powerzure-ca70b330511a","https://www.ciraltos.com/webhooks-and-azure-automation-runbooks/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and\n azure.activitylogs.operation_name:\n (\n \"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/WEBHOOKS/ACTION\" or\n \"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/WEBHOOKS/WRITE\"\n ) and\n event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e9ff9c1c-fe36-4d0d-b3fd-9e0bf4853a62:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e9ff9c1c-fe36-4d0d-b3fd-9e0bf4853a62:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e9ff9c1c-fe36-4d0d-b3fd-9e0bf4853a62:101.0.1.json new file mode 100644 index 0000000000000..bb69f4a9dadd0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e9ff9c1c-fe36-4d0d-b3fd-9e0bf4853a62:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Automation Webhook Created v101.0.1","rule_id":"e9ff9c1c-fe36-4d0d-b3fd-9e0bf4853a62:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Azure Automation webhook is created. Azure Automation runbooks can be configured to execute via a webhook. A webhook uses a custom URL passed to Azure Automation along with a data payload specific to the runbook. An adversary may create a webhook in order to trigger a runbook that contains malicious code.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://powerzure.readthedocs.io/en/latest/Functions/operational.html#create-backdoor","https://github.com/hausec/PowerZure","https://posts.specterops.io/attacking-azure-azure-ad-and-introducing-powerzure-ca70b330511a","https://www.ciraltos.com/webhooks-and-azure-automation-runbooks/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and\n azure.activitylogs.operation_name:\n (\n \"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/WEBHOOKS/ACTION\" or\n \"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/WEBHOOKS/WRITE\"\n ) and\n event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e9ff9c1c-fe36-4d0d-b3fd-9e0bf4853a62:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/e9ff9c1c-fe36-4d0d-b3fd-9e0bf4853a62:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/e9ff9c1c-fe36-4d0d-b3fd-9e0bf4853a62:101.0.2.json new file mode 100644 index 0000000000000..e67bb09b09987 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/e9ff9c1c-fe36-4d0d-b3fd-9e0bf4853a62:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Automation Webhook Created v101.0.2","rule_id":"e9ff9c1c-fe36-4d0d-b3fd-9e0bf4853a62:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an Azure Automation webhook is created. Azure Automation runbooks can be configured to execute via a webhook. A webhook uses a custom URL passed to Azure Automation along with a data payload specific to the runbook. An adversary may create a webhook in order to trigger a runbook that contains malicious code.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-25m","references":["https://powerzure.readthedocs.io/en/latest/Functions/operational.html#create-backdoor","https://github.com/hausec/PowerZure","https://posts.specterops.io/attacking-azure-azure-ad-and-introducing-powerzure-ca70b330511a","https://www.ciraltos.com/webhooks-and-azure-automation-runbooks/"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and\n azure.activitylogs.operation_name:\n (\n \"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/WEBHOOKS/ACTION\" or\n \"MICROSOFT.AUTOMATION/AUTOMATIONACCOUNTS/WEBHOOKS/WRITE\"\n ) and\n event.outcome:(Success or success)\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"e9ff9c1c-fe36-4d0d-b3fd-9e0bf4853a62:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ea248a02-bc47-4043-8e94-2885b19b2636:103.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ea248a02-bc47-4043-8e94-2885b19b2636:103.0.0.json new file mode 100644 index 0000000000000..ba3f34fd56fcd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ea248a02-bc47-4043-8e94-2885b19b2636:103.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS IAM Brute Force of Assume Role Policy v103.0.0","rule_id":"ea248a02-bc47-4043-8e94-2885b19b2636:103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number of failed attempts to assume an AWS Identity and Access Management (IAM) role. IAM roles are used to delegate access to users or services. An adversary may attempt to enumerate IAM roles in order to determine if a role exists before attempting to assume or hijack the discovered role.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS IAM Brute Force of Assume Role Policy\n\nAn IAM role is an IAM identity that you can create in your account that has specific permissions. An IAM role is similar\nto an IAM user, in that it is an AWS identity with permission policies that determine what the identity can and cannot\ndo in AWS. However, instead of being uniquely associated with one person, a role is intended to be assumable by anyone\nwho needs it. Also, a role does not have standard long-term credentials such as a password or access keys associated\nwith it. Instead, when you assume a role, it provides you with temporary security credentials for your role session.\n\nAttackers may attempt to enumerate IAM roles in order to determine if a role exists before attempting to assume or\nhijack the discovered role.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Verify if the `RoleName` parameter contains a unique value in all requests or if the activity is potentially a brute\nforce attack.\n- Verify if the user account successfully updated a trust policy in the last 24 hours.\n- Examine whether this role existed in the environment by looking for past occurrences in your logs.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Examine the account's commands, API calls, and data management actions in the last 24 hours.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- Verify the roles targeted in the failed attempts, and whether the subject role previously existed in the environment.\nIf only one role was targeted in the requests and that role previously existed, it may be a false positive, since\nautomations can continue targeting roles that existed in the environment in the past and cause false positives (FPs).\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-20m","references":["https://www.praetorian.com/blog/aws-iam-assume-role-vulnerabilities","https://rhinosecuritylabs.com/aws/assume-worst-aws-assume-role-enumeration/"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:aws.cloudtrail and\n event.provider:iam.amazonaws.com and event.action:UpdateAssumeRolePolicy and\n aws.cloudtrail.error_code:MalformedPolicyDocumentException and event.outcome:failure\n","threshold":{"field":[],"value":25},"type":"threshold","index":["filebeat-*","logs-aws*"],"language":"kuery","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.error_code","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"ea248a02-bc47-4043-8e94-2885b19b2636:103.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ea248a02-bc47-4043-8e94-2885b19b2636:103.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ea248a02-bc47-4043-8e94-2885b19b2636:103.0.1.json new file mode 100644 index 0000000000000..1da54d3bc6008 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ea248a02-bc47-4043-8e94-2885b19b2636:103.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS IAM Brute Force of Assume Role Policy v103.0.1","rule_id":"ea248a02-bc47-4043-8e94-2885b19b2636:103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number of failed attempts to assume an AWS Identity and Access Management (IAM) role. IAM roles are used to delegate access to users or services. An adversary may attempt to enumerate IAM roles in order to determine if a role exists before attempting to assume or hijack the discovered role.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS IAM Brute Force of Assume Role Policy\n\nAn IAM role is an IAM identity that you can create in your account that has specific permissions. An IAM role is similar\nto an IAM user, in that it is an AWS identity with permission policies that determine what the identity can and cannot\ndo in AWS. However, instead of being uniquely associated with one person, a role is intended to be assumable by anyone\nwho needs it. Also, a role does not have standard long-term credentials such as a password or access keys associated\nwith it. Instead, when you assume a role, it provides you with temporary security credentials for your role session.\n\nAttackers may attempt to enumerate IAM roles in order to determine if a role exists before attempting to assume or\nhijack the discovered role.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Verify if the `RoleName` parameter contains a unique value in all requests or if the activity is potentially a brute\nforce attack.\n- Verify if the user account successfully updated a trust policy in the last 24 hours.\n- Examine whether this role existed in the environment by looking for past occurrences in your logs.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Examine the account's commands, API calls, and data management actions in the last 24 hours.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- Verify the roles targeted in the failed attempts, and whether the subject role previously existed in the environment.\nIf only one role was targeted in the requests and that role previously existed, it may be a false positive, since\nautomations can continue targeting roles that existed in the environment in the past and cause false positives (FPs).\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-20m","references":["https://www.praetorian.com/blog/aws-iam-assume-role-vulnerabilities","https://rhinosecuritylabs.com/aws/assume-worst-aws-assume-role-enumeration/"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:aws.cloudtrail and\n event.provider:iam.amazonaws.com and event.action:UpdateAssumeRolePolicy and\n aws.cloudtrail.error_code:MalformedPolicyDocumentException and event.outcome:failure\n","threshold":{"field":[],"value":25},"type":"threshold","index":["filebeat-*","logs-aws*"],"language":"kuery","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.error_code","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"ea248a02-bc47-4043-8e94-2885b19b2636:103.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ea248a02-bc47-4043-8e94-2885b19b2636:103.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ea248a02-bc47-4043-8e94-2885b19b2636:103.0.2.json new file mode 100644 index 0000000000000..3b73554d334b0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ea248a02-bc47-4043-8e94-2885b19b2636:103.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS IAM Brute Force of Assume Role Policy v103.0.2","rule_id":"ea248a02-bc47-4043-8e94-2885b19b2636:103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a high number of failed attempts to assume an AWS Identity and Access Management (IAM) role. IAM roles are used to delegate access to users or services. An adversary may attempt to enumerate IAM roles in order to determine if a role exists before attempting to assume or hijack the discovered role.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS IAM Brute Force of Assume Role Policy\n\nAn IAM role is an IAM identity that you can create in your account that has specific permissions. An IAM role is similar\nto an IAM user, in that it is an AWS identity with permission policies that determine what the identity can and cannot\ndo in AWS. However, instead of being uniquely associated with one person, a role is intended to be assumable by anyone\nwho needs it. Also, a role does not have standard long-term credentials such as a password or access keys associated\nwith it. Instead, when you assume a role, it provides you with temporary security credentials for your role session.\n\nAttackers may attempt to enumerate IAM roles in order to determine if a role exists before attempting to assume or\nhijack the discovered role.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Verify if the `RoleName` parameter contains a unique value in all requests or if the activity is potentially a brute\nforce attack.\n- Verify if the user account successfully updated a trust policy in the last 24 hours.\n- Examine whether this role existed in the environment by looking for past occurrences in your logs.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Consider the time of day. If the user is a human (not a program or script), did the activity take place during a normal\ntime of day?\n- Examine the account's commands, API calls, and data management actions in the last 24 hours.\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- Verify the roles targeted in the failed attempts, and whether the subject role previously existed in the environment.\nIf only one role was targeted in the requests and that role previously existed, it may be a false positive, since\nautomations can continue targeting roles that existed in the environment in the past and cause false positives (FPs).\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other\nIAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-20m","references":["https://www.praetorian.com/blog/aws-iam-assume-role-vulnerabilities","https://rhinosecuritylabs.com/aws/assume-worst-aws-assume-role-enumeration/"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Identity and Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/"}]}],"query":"event.dataset:aws.cloudtrail and\n event.provider:iam.amazonaws.com and event.action:UpdateAssumeRolePolicy and\n aws.cloudtrail.error_code:MalformedPolicyDocumentException and event.outcome:failure\n","threshold":{"field":[],"value":25},"type":"threshold","index":["filebeat-*","logs-aws*"],"language":"kuery","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":false,"name":"aws.cloudtrail.error_code","type":"keyword"},{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"ea248a02-bc47-4043-8e94-2885b19b2636:103.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/eaa77d63-9679-4ce3-be25-3ba8b795e5fa:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/eaa77d63-9679-4ce3-be25-3ba8b795e5fa:100.0.0.json new file mode 100644 index 0000000000000..2a63b7746f3ef --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/eaa77d63-9679-4ce3-be25-3ba8b795e5fa:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Spike in Firewall Denies v100.0.0","rule_id":"eaa77d63-9679-4ce3-be25-3ba8b795e5fa:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusually large spike in network traffic that was denied by network access control lists (ACLs) or firewall rules. Such a burst of denied traffic is usually caused by either 1) a mis-configured application or firewall or 2) suspicious or malicious activity. Unsuccessful attempts at network transit, in order to connect to command-and-control (C2), or engage in data exfiltration, may produce a burst of failed connections. This could also be due to unusually large amounts of reconnaissance or enumeration traffic. Denial-of-service attacks or traffic floods may also produce such a surge in traffic.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A misconfgured network application or firewall may trigger this alert. Security scans or test cycles may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML"],"anomaly_threshold":75,"machine_learning_job_id":"high_count_network_denies","type":"machine_learning"},"id":"eaa77d63-9679-4ce3-be25-3ba8b795e5fa:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/eaa77d63-9679-4ce3-be25-3ba8b795e5fa:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/eaa77d63-9679-4ce3-be25-3ba8b795e5fa:100.0.1.json new file mode 100644 index 0000000000000..588583fe0314d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/eaa77d63-9679-4ce3-be25-3ba8b795e5fa:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Spike in Firewall Denies v100.0.1","rule_id":"eaa77d63-9679-4ce3-be25-3ba8b795e5fa:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusually large spike in network traffic that was denied by network access control lists (ACLs) or firewall rules. Such a burst of denied traffic is usually caused by either 1) a mis-configured application or firewall or 2) suspicious or malicious activity. Unsuccessful attempts at network transit, in order to connect to command-and-control (C2), or engage in data exfiltration, may produce a burst of failed connections. This could also be due to unusually large amounts of reconnaissance or enumeration traffic. Denial-of-service attacks or traffic floods may also produce such a surge in traffic.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A misconfgured network application or firewall may trigger this alert. Security scans or test cycles may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML"],"anomaly_threshold":75,"machine_learning_job_id":"high_count_network_denies","type":"machine_learning"},"id":"eaa77d63-9679-4ce3-be25-3ba8b795e5fa:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/eaa77d63-9679-4ce3-be25-3ba8b795e5fa:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/eaa77d63-9679-4ce3-be25-3ba8b795e5fa:100.0.2.json new file mode 100644 index 0000000000000..0725150b98a1d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/eaa77d63-9679-4ce3-be25-3ba8b795e5fa:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Spike in Firewall Denies v100.0.2","rule_id":"eaa77d63-9679-4ce3-be25-3ba8b795e5fa:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"A machine learning job detected an unusually large spike in network traffic that was denied by network access control lists (ACLs) or firewall rules. Such a burst of denied traffic is usually caused by either 1) a mis-configured application or firewall or 2) suspicious or malicious activity. Unsuccessful attempts at network transit, in order to connect to command-and-control (C2), or engage in data exfiltration, may produce a burst of failed connections. This could also be due to unusually large amounts of reconnaissance or enumeration traffic. Denial-of-service attacks or traffic floods may also produce such a surge in traffic.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["A misconfgured network application or firewall may trigger this alert. Security scans or test cycles may trigger this alert."],"from":"now-30m","interval":"15m","references":["https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html"],"tags":["Elastic","Network","Threat Detection","ML"],"anomaly_threshold":75,"machine_learning_job_id":"high_count_network_denies","type":"machine_learning"},"id":"eaa77d63-9679-4ce3-be25-3ba8b795e5fa:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/eb079c62-4481-4d6e-9643-3ca499df7aaa:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/eb079c62-4481-4d6e-9643-3ca499df7aaa:100.0.0.json new file mode 100644 index 0000000000000..2304d49bb4a8b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/eb079c62-4481-4d6e-9643-3ca499df7aaa:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"External Alerts v100.0.0","rule_id":"eb079c62-4481-4d6e-9643-3ca499df7aaa:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Generates a detection alert for each external alert written to the configured indices. Enabling this rule allows you to immediately begin investigating external alerts in the app.","risk_score":47,"severity":"medium","license":"Elastic License v2","rule_name_override":"message","timestamp_override":"event.ingested","author":["Elastic"],"max_signals":10000,"risk_score_mapping":[{"field":"event.risk_score","operator":"equals","value":""}],"severity_mapping":[{"field":"event.severity","operator":"equals","severity":"low","value":"21"},{"field":"event.severity","operator":"equals","severity":"medium","value":"47"},{"field":"event.severity","operator":"equals","severity":"high","value":"73"},{"field":"event.severity","operator":"equals","severity":"critical","value":"99"}],"tags":["Elastic","Network","Windows","APM","macOS","Linux"],"type":"query","index":["apm-*-transaction*","traces-apm*","auditbeat-*","filebeat-*","logs-*","packetbeat-*","winlogbeat-*"],"language":"kuery","query":"event.kind:alert and not event.module:(endgame or endpoint)\n","required_fields":[{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"eb079c62-4481-4d6e-9643-3ca499df7aaa:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/eb079c62-4481-4d6e-9643-3ca499df7aaa:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/eb079c62-4481-4d6e-9643-3ca499df7aaa:100.0.1.json new file mode 100644 index 0000000000000..617fecb131a9d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/eb079c62-4481-4d6e-9643-3ca499df7aaa:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"External Alerts v100.0.1","rule_id":"eb079c62-4481-4d6e-9643-3ca499df7aaa:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Generates a detection alert for each external alert written to the configured indices. Enabling this rule allows you to immediately begin investigating external alerts in the app.","risk_score":47,"severity":"medium","license":"Elastic License v2","rule_name_override":"message","timestamp_override":"event.ingested","author":["Elastic"],"max_signals":10000,"risk_score_mapping":[{"field":"event.risk_score","operator":"equals","value":""}],"severity_mapping":[{"field":"event.severity","operator":"equals","severity":"low","value":"21"},{"field":"event.severity","operator":"equals","severity":"medium","value":"47"},{"field":"event.severity","operator":"equals","severity":"high","value":"73"},{"field":"event.severity","operator":"equals","severity":"critical","value":"99"}],"tags":["Elastic","Network","Windows","APM","macOS","Linux"],"type":"query","index":["apm-*-transaction*","traces-apm*","auditbeat-*","filebeat-*","logs-*","packetbeat-*","winlogbeat-*"],"language":"kuery","query":"event.kind:alert and not event.module:(endgame or endpoint)\n","required_fields":[{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"eb079c62-4481-4d6e-9643-3ca499df7aaa:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/eb079c62-4481-4d6e-9643-3ca499df7aaa:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/eb079c62-4481-4d6e-9643-3ca499df7aaa:100.0.2.json new file mode 100644 index 0000000000000..2e0f0ff757261 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/eb079c62-4481-4d6e-9643-3ca499df7aaa:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"External Alerts v100.0.2","rule_id":"eb079c62-4481-4d6e-9643-3ca499df7aaa:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Generates a detection alert for each external alert written to the configured indices. Enabling this rule allows you to immediately begin investigating external alerts in the app.","risk_score":47,"severity":"medium","license":"Elastic License v2","rule_name_override":"message","timestamp_override":"event.ingested","author":["Elastic"],"max_signals":10000,"risk_score_mapping":[{"field":"event.risk_score","operator":"equals","value":""}],"severity_mapping":[{"field":"event.severity","operator":"equals","severity":"low","value":"21"},{"field":"event.severity","operator":"equals","severity":"medium","value":"47"},{"field":"event.severity","operator":"equals","severity":"high","value":"73"},{"field":"event.severity","operator":"equals","severity":"critical","value":"99"}],"tags":["Elastic","Network","Windows","APM","macOS","Linux"],"type":"query","index":["apm-*-transaction*","traces-apm*","auditbeat-*","filebeat-*","logs-*","packetbeat-*","winlogbeat-*"],"language":"kuery","query":"event.kind:alert and not event.module:(endgame or endpoint)\n","required_fields":[{"ecs":true,"name":"event.kind","type":"keyword"},{"ecs":true,"name":"event.module","type":"keyword"}]},"id":"eb079c62-4481-4d6e-9643-3ca499df7aaa:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/eb610e70-f9e6-4949-82b9-f1c5bcd37c39:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/eb610e70-f9e6-4949-82b9-f1c5bcd37c39:102.0.0.json new file mode 100644 index 0000000000000..e6a3a0043ea77 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/eb610e70-f9e6-4949-82b9-f1c5bcd37c39:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell Kerberos Ticket Request v102.0.0","rule_id":"eb610e70-f9e6-4949-82b9-f1c5bcd37c39:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects PowerShell scripts that have the capability of requesting kerberos tickets, which is a common step in Kerberoasting toolkits to crack service accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Explicit PowerShell Kerberos Ticket Request\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks, making\nit available for use in various environments, creating an attractive way for attackers to execute code.\n\nAccounts associated with a service principal name (SPN) are viable targets for Kerberoasting attacks, which use brute\nforce to crack the user password, which is used to encrypt a Kerberos TGS ticket.\n\nAttackers can use PowerShell to request these Kerberos tickets, with the intent of extracting them from memory to\nperform Kerberoasting.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate if the script was executed, and if so, which account was targeted.\n- Validate if the account has an SPN associated with it.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Check if the script has any other functionality that can be potentially malicious.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Review event ID [4769](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4769)\nrelated to this account and service name for additional information.\n\n### False positive analysis\n\n- A possible false positive can be identified if the script content is not malicious/harmful or does not request\nKerberos tickets for user accounts, as computer accounts are not vulnerable to Kerberoasting due to complex password\nrequirements and policy.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services. Prioritize privileged accounts.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://cobalt.io/blog/kerberoast-attack-techniques","https://github.com/EmpireProject/Empire/blob/master/data/module_source/credentials/Invoke-Kerberoast.ps1"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"},{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/","subtechnique":[{"id":"T1558.003","name":"Kerberoasting","reference":"https://attack.mitre.org/techniques/T1558/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n KerberosRequestorSecurityToken\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"eb610e70-f9e6-4949-82b9-f1c5bcd37c39:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/eb610e70-f9e6-4949-82b9-f1c5bcd37c39:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/eb610e70-f9e6-4949-82b9-f1c5bcd37c39:102.0.1.json new file mode 100644 index 0000000000000..8d7d3328526dd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/eb610e70-f9e6-4949-82b9-f1c5bcd37c39:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell Kerberos Ticket Request v102.0.1","rule_id":"eb610e70-f9e6-4949-82b9-f1c5bcd37c39:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects PowerShell scripts that have the capability of requesting kerberos tickets, which is a common step in Kerberoasting toolkits to crack service accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Explicit PowerShell Kerberos Ticket Request\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks, making\nit available for use in various environments, creating an attractive way for attackers to execute code.\n\nAccounts associated with a service principal name (SPN) are viable targets for Kerberoasting attacks, which use brute\nforce to crack the user password, which is used to encrypt a Kerberos TGS ticket.\n\nAttackers can use PowerShell to request these Kerberos tickets, with the intent of extracting them from memory to\nperform Kerberoasting.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate if the script was executed, and if so, which account was targeted.\n- Validate if the account has an SPN associated with it.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Check if the script has any other functionality that can be potentially malicious.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Review event ID [4769](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4769)\nrelated to this account and service name for additional information.\n\n### False positive analysis\n\n- A possible false positive can be identified if the script content is not malicious/harmful or does not request\nKerberos tickets for user accounts, as computer accounts are not vulnerable to Kerberoasting due to complex password\nrequirements and policy.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services. Prioritize privileged accounts.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://cobalt.io/blog/kerberoast-attack-techniques","https://github.com/EmpireProject/Empire/blob/master/data/module_source/credentials/Invoke-Kerberoast.ps1"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"},{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/","subtechnique":[{"id":"T1558.003","name":"Kerberoasting","reference":"https://attack.mitre.org/techniques/T1558/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n KerberosRequestorSecurityToken\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"eb610e70-f9e6-4949-82b9-f1c5bcd37c39:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/eb610e70-f9e6-4949-82b9-f1c5bcd37c39:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/eb610e70-f9e6-4949-82b9-f1c5bcd37c39:102.0.2.json new file mode 100644 index 0000000000000..0fb81b495e515 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/eb610e70-f9e6-4949-82b9-f1c5bcd37c39:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"PowerShell Kerberos Ticket Request v102.0.2","rule_id":"eb610e70-f9e6-4949-82b9-f1c5bcd37c39:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects PowerShell scripts that have the capability of requesting kerberos tickets, which is a common step in Kerberoasting toolkits to crack service accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Explicit PowerShell Kerberos Ticket Request\n\nPowerShell is one of the main tools system administrators use for automation, report routines, and other tasks, making\nit available for use in various environments, creating an attractive way for attackers to execute code.\n\nAccounts associated with a service principal name (SPN) are viable targets for Kerberoasting attacks, which use brute\nforce to crack the user password, which is used to encrypt a Kerberos TGS ticket.\n\nAttackers can use PowerShell to request these Kerberos tickets, with the intent of extracting them from memory to\nperform Kerberoasting.\n\n#### Possible investigation steps\n\n- Examine the script content that triggered the detection; look for suspicious DLL imports, collection or exfiltration\ncapabilities, suspicious functions, encoded or compressed data, and other potentially malicious characteristics.\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate if the script was executed, and if so, which account was targeted.\n- Validate if the account has an SPN associated with it.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Check if the script has any other functionality that can be potentially malicious.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Review event ID [4769](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4769)\nrelated to this account and service name for additional information.\n\n### False positive analysis\n\n- A possible false positive can be identified if the script content is not malicious/harmful or does not request\nKerberos tickets for user accounts, as computer accounts are not vulnerable to Kerberoasting due to complex password\nrequirements and policy.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services. Prioritize privileged accounts.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://cobalt.io/blog/kerberoast-attack-techniques","https://github.com/EmpireProject/Empire/blob/master/data/module_source/credentials/Invoke-Kerberoast.ps1"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"},{"id":"T1558","name":"Steal or Forge Kerberos Tickets","reference":"https://attack.mitre.org/techniques/T1558/","subtechnique":[{"id":"T1558.003","name":"Kerberoasting","reference":"https://attack.mitre.org/techniques/T1558/003/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.001","name":"PowerShell","reference":"https://attack.mitre.org/techniques/T1059/001/"}]}]}],"type":"query","index":["winlogbeat-*","logs-windows.*"],"language":"kuery","query":"event.category:process and\n powershell.file.script_block_text : (\n KerberosRequestorSecurityToken\n )\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":false,"name":"powershell.file.script_block_text","type":"unknown"}],"setup":"The 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nAdministrative Templates >\nWindows PowerShell >\nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```"},"id":"eb610e70-f9e6-4949-82b9-f1c5bcd37c39:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/eb6a3790-d52d-11ec-8ce9-f661ea17fbce:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/eb6a3790-d52d-11ec-8ce9-f661ea17fbce:100.0.0.json new file mode 100644 index 0000000000000..a616b41360598 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/eb6a3790-d52d-11ec-8ce9-f661ea17fbce:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Network Connection Attempt by Root v100.0.0","rule_id":"eb6a3790-d52d-11ec-8ce9-f661ea17fbce:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an outbound network connection attempt followed by a session id change as the root user by the same process entity. This particular instantiation of a network connection is abnormal and should be investigated as it may indicate a potential reverse shell activity via a privileged process.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n### Investigating Connection Attempt by Non-SSH Root Session\nDetection alerts from this rule indicate a strange or abnormal outbound connection attempt by a privileged process. Here are some possible avenues of investigation:\n- Examine unusual and active sessions using commands such as 'last -a', 'netstat -a', and 'w -a'.\n- Analyze processes and command line arguments to detect anomalous process execution that may be acting as a listener.\n- Analyze anomalies in the use of files that do not normally initiate connections.\n- Examine processes utilizing the network that do not normally have network communication.\n","author":["Elastic"],"false_positives":["False-Positives (FP) can appear if another remote terminal service is being used to connect to it's listener but typically SSH is used in these scenarios."],"from":"now-9m","references":["https://www.sandflysecurity.com/blog/linux-file-masquerading-and-malicious-pids-sandfly-1-2-6-update/","https://twitter.com/GossiTheDog/status/1522964028284411907","https://exatrack.com/public/Tricephalic_Hellkeeper.pdf"],"tags":["Elastic","Host","Linux","Threat Detection","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1095","name":"Non-Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1095/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.003","name":"Sudo and Sudo Caching","reference":"https://attack.mitre.org/techniques/T1548/003/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=1m\n[network where event.type == \"start\" and event.action == \"connection_attempted\" and user.id == \"0\" and\n not process.executable : (\"/bin/ssh\", \"/sbin/ssh\", \"/usr/lib/systemd/systemd\", \"/usr/sbin/sshd\")]\n[process where event.action == \"session_id_change\" and user.id == \"0\" and\n not process.executable : (\"/bin/ssh\", \"/sbin/ssh\", \"/usr/lib/systemd/systemd\", \"/usr/sbin/sshd\")]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"eb6a3790-d52d-11ec-8ce9-f661ea17fbce:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/eb6a3790-d52d-11ec-8ce9-f661ea17fbce:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/eb6a3790-d52d-11ec-8ce9-f661ea17fbce:100.0.1.json new file mode 100644 index 0000000000000..c79546cbbf6af --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/eb6a3790-d52d-11ec-8ce9-f661ea17fbce:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Network Connection Attempt by Root v100.0.1","rule_id":"eb6a3790-d52d-11ec-8ce9-f661ea17fbce:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an outbound network connection attempt followed by a session id change as the root user by the same process entity. This particular instantiation of a network connection is abnormal and should be investigated as it may indicate a potential reverse shell activity via a privileged process.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n### Investigating Connection Attempt by Non-SSH Root Session\nDetection alerts from this rule indicate a strange or abnormal outbound connection attempt by a privileged process. Here are some possible avenues of investigation:\n- Examine unusual and active sessions using commands such as 'last -a', 'netstat -a', and 'w -a'.\n- Analyze processes and command line arguments to detect anomalous process execution that may be acting as a listener.\n- Analyze anomalies in the use of files that do not normally initiate connections.\n- Examine processes utilizing the network that do not normally have network communication.\n","author":["Elastic"],"false_positives":["False-Positives (FP) can appear if another remote terminal service is being used to connect to it's listener but typically SSH is used in these scenarios."],"from":"now-9m","references":["https://www.sandflysecurity.com/blog/linux-file-masquerading-and-malicious-pids-sandfly-1-2-6-update/","https://twitter.com/GossiTheDog/status/1522964028284411907","https://exatrack.com/public/Tricephalic_Hellkeeper.pdf"],"tags":["Elastic","Host","Linux","Threat Detection","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1095","name":"Non-Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1095/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.003","name":"Sudo and Sudo Caching","reference":"https://attack.mitre.org/techniques/T1548/003/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=1m\n[network where event.type == \"start\" and event.action == \"connection_attempted\" and user.id == \"0\" and\n not process.executable : (\"/bin/ssh\", \"/sbin/ssh\", \"/usr/lib/systemd/systemd\", \"/usr/sbin/sshd\")]\n[process where event.action == \"session_id_change\" and user.id == \"0\" and\n not process.executable : (\"/bin/ssh\", \"/sbin/ssh\", \"/usr/lib/systemd/systemd\", \"/usr/sbin/sshd\")]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"eb6a3790-d52d-11ec-8ce9-f661ea17fbce:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/eb6a3790-d52d-11ec-8ce9-f661ea17fbce:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/eb6a3790-d52d-11ec-8ce9-f661ea17fbce:100.0.2.json new file mode 100644 index 0000000000000..3044d32af55bd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/eb6a3790-d52d-11ec-8ce9-f661ea17fbce:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Network Connection Attempt by Root v100.0.2","rule_id":"eb6a3790-d52d-11ec-8ce9-f661ea17fbce:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an outbound network connection attempt followed by a session id change as the root user by the same process entity. This particular instantiation of a network connection is abnormal and should be investigated as it may indicate a potential reverse shell activity via a privileged process.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n### Investigating Connection Attempt by Non-SSH Root Session\nDetection alerts from this rule indicate a strange or abnormal outbound connection attempt by a privileged process. Here are some possible avenues of investigation:\n- Examine unusual and active sessions using commands such as 'last -a', 'netstat -a', and 'w -a'.\n- Analyze processes and command line arguments to detect anomalous process execution that may be acting as a listener.\n- Analyze anomalies in the use of files that do not normally initiate connections.\n- Examine processes utilizing the network that do not normally have network communication.\n","author":["Elastic"],"false_positives":["False-Positives (FP) can appear if another remote terminal service is being used to connect to it's listener but typically SSH is used in these scenarios."],"from":"now-9m","references":["https://www.sandflysecurity.com/blog/linux-file-masquerading-and-malicious-pids-sandfly-1-2-6-update/","https://twitter.com/GossiTheDog/status/1522964028284411907","https://exatrack.com/public/Tricephalic_Hellkeeper.pdf"],"tags":["Elastic","Host","Linux","Threat Detection","Command and Control"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1095","name":"Non-Application Layer Protocol","reference":"https://attack.mitre.org/techniques/T1095/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.003","name":"Sudo and Sudo Caching","reference":"https://attack.mitre.org/techniques/T1548/003/"}]}]}],"language":"eql","query":"sequence by process.entity_id with maxspan=1m\n[network where event.type == \"start\" and event.action == \"connection_attempted\" and user.id == \"0\" and\n not process.executable : (\"/bin/ssh\", \"/sbin/ssh\", \"/usr/lib/systemd/systemd\", \"/usr/sbin/sshd\")]\n[process where event.action == \"session_id_change\" and user.id == \"0\" and\n not process.executable : (\"/bin/ssh\", \"/sbin/ssh\", \"/usr/lib/systemd/systemd\", \"/usr/sbin/sshd\")]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}]},"id":"eb6a3790-d52d-11ec-8ce9-f661ea17fbce:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/eb9eb8ba-a983-41d9-9c93-a1c05112ca5e:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/eb9eb8ba-a983-41d9-9c93-a1c05112ca5e:100.0.0.json new file mode 100644 index 0000000000000..d8053273079bd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/eb9eb8ba-a983-41d9-9c93-a1c05112ca5e:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Disabling of SELinux v100.0.0","rule_id":"eb9eb8ba-a983-41d9-9c93-a1c05112ca5e:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential attempts to disable Security-Enhanced Linux (SELinux), which is a Linux kernel security feature to support access control policies. Adversaries may disable security tools to avoid possible detection of their tools and activities.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:setenforce and process.args:0\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"eb9eb8ba-a983-41d9-9c93-a1c05112ca5e:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/eb9eb8ba-a983-41d9-9c93-a1c05112ca5e:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/eb9eb8ba-a983-41d9-9c93-a1c05112ca5e:100.0.1.json new file mode 100644 index 0000000000000..bf954a9512bc7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/eb9eb8ba-a983-41d9-9c93-a1c05112ca5e:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Disabling of SELinux v100.0.1","rule_id":"eb9eb8ba-a983-41d9-9c93-a1c05112ca5e:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential attempts to disable Security-Enhanced Linux (SELinux), which is a Linux kernel security feature to support access control policies. Adversaries may disable security tools to avoid possible detection of their tools and activities.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:setenforce and process.args:0\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"eb9eb8ba-a983-41d9-9c93-a1c05112ca5e:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/eb9eb8ba-a983-41d9-9c93-a1c05112ca5e:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/eb9eb8ba-a983-41d9-9c93-a1c05112ca5e:100.0.2.json new file mode 100644 index 0000000000000..ea713df93a516 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/eb9eb8ba-a983-41d9-9c93-a1c05112ca5e:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Disabling of SELinux v100.0.2","rule_id":"eb9eb8ba-a983-41d9-9c93-a1c05112ca5e:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies potential attempts to disable Security-Enhanced Linux (SELinux), which is a Linux kernel security feature to support access control policies. Adversaries may disable security tools to avoid possible detection of their tools and activities.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Linux","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and process.name:setenforce and process.args:0\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"eb9eb8ba-a983-41d9-9c93-a1c05112ca5e:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6:102.0.0.json new file mode 100644 index 0000000000000..5e41ef2d37be0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Mimikatz Memssp Log File Detected v102.0.0","rule_id":"ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the password log file from the default Mimikatz memssp module.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Mimikatz Memssp Log File Detected\n\n[Mimikatz](https://github.com/gentilkiwi/mimikatz) is an open-source tool used to collect, decrypt, and/or use cached\ncredentials. This tool is commonly abused by adversaries during the post-compromise stage where adversaries have gained\nan initial foothold on an endpoint and are looking to elevate privileges and seek out additional authentication objects\nsuch as tokens/hashes/credentials that can then be used to laterally move and pivot across a network.\n\nThis rule looks for the creation of a file named `mimilsa.log`, which is generated when using the Mimikatz misc::memssp\nmodule, which injects a malicious Windows SSP to collect locally authenticated credentials, which includes the computer\naccount password, running service credentials, and any accounts that logon.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (e.g., 4624) to the target\nhost.\n- Retrieve and inspect the log file contents.\n- Search for DLL files created in the same location as the log file, and retrieve unsigned DLLs.\n - Use the PowerShell Get-FileHash cmdlet to get the SHA-256 hash value of these files.\n - Search for the existence of these files in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n - Identify the process that created the DLL using file creation events.\n\n### False positive analysis\n\n- This file name `mimilsa.log` should not legitimately be created.\n\n### Related rules\n\n- Mimikatz Powershell Module Activity - ac96ceb8-4399-4191-af1d-4feeac1f1f46\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the host is a Domain Controller (DC):\n - Activate your incident response plan for total Active Directory compromise.\n - Review the privileges assigned to users that can access the DCs to ensure that the least privilege principle is\n being followed and reduce the attack surface.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reboot the host to remove the injected SSP from memory.\n- Reimage the host operating system or restore compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"file where file.name : \"mimilsa.log\" and process.name : \"lsass.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6:102.0.1.json new file mode 100644 index 0000000000000..c134b6c2f9701 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Mimikatz Memssp Log File Detected v102.0.1","rule_id":"ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the password log file from the default Mimikatz memssp module.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Mimikatz Memssp Log File Detected\n\n[Mimikatz](https://github.com/gentilkiwi/mimikatz) is an open-source tool used to collect, decrypt, and/or use cached\ncredentials. This tool is commonly abused by adversaries during the post-compromise stage where adversaries have gained\nan initial foothold on an endpoint and are looking to elevate privileges and seek out additional authentication objects\nsuch as tokens/hashes/credentials that can then be used to laterally move and pivot across a network.\n\nThis rule looks for the creation of a file named `mimilsa.log`, which is generated when using the Mimikatz misc::memssp\nmodule, which injects a malicious Windows SSP to collect locally authenticated credentials, which includes the computer\naccount password, running service credentials, and any accounts that logon.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (e.g., 4624) to the target\nhost.\n- Retrieve and inspect the log file contents.\n- Search for DLL files created in the same location as the log file, and retrieve unsigned DLLs.\n - Use the PowerShell Get-FileHash cmdlet to get the SHA-256 hash value of these files.\n - Search for the existence of these files in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n - Identify the process that created the DLL using file creation events.\n\n### False positive analysis\n\n- This file name `mimilsa.log` should not legitimately be created.\n\n### Related rules\n\n- Mimikatz Powershell Module Activity - ac96ceb8-4399-4191-af1d-4feeac1f1f46\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the host is a Domain Controller (DC):\n - Activate your incident response plan for total Active Directory compromise.\n - Review the privileges assigned to users that can access the DCs to ensure that the least privilege principle is\n being followed and reduce the attack surface.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reboot the host to remove the injected SSP from memory.\n- Reimage the host operating system or restore compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"file where file.name : \"mimilsa.log\" and process.name : \"lsass.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6:102.0.2.json new file mode 100644 index 0000000000000..7b2d0cfb8a38e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Mimikatz Memssp Log File Detected v102.0.2","rule_id":"ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the password log file from the default Mimikatz memssp module.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Mimikatz Memssp Log File Detected\n\n[Mimikatz](https://github.com/gentilkiwi/mimikatz) is an open-source tool used to collect, decrypt, and/or use cached\ncredentials. This tool is commonly abused by adversaries during the post-compromise stage where adversaries have gained\nan initial foothold on an endpoint and are looking to elevate privileges and seek out additional authentication objects\nsuch as tokens/hashes/credentials that can then be used to laterally move and pivot across a network.\n\nThis rule looks for the creation of a file named `mimilsa.log`, which is generated when using the Mimikatz misc::memssp\nmodule, which injects a malicious Windows SSP to collect locally authenticated credentials, which includes the computer\naccount password, running service credentials, and any accounts that logon.\n\n#### Possible investigation steps\n\n- Investigate the script execution chain (parent process tree) for unknown processes. Examine their executable files for\nprevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate potentially compromised accounts. Analysts can do this by searching for login events (e.g., 4624) to the target\nhost.\n- Retrieve and inspect the log file contents.\n- Search for DLL files created in the same location as the log file, and retrieve unsigned DLLs.\n - Use the PowerShell Get-FileHash cmdlet to get the SHA-256 hash value of these files.\n - Search for the existence of these files in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n - Identify the process that created the DLL using file creation events.\n\n### False positive analysis\n\n- This file name `mimilsa.log` should not legitimately be created.\n\n### Related rules\n\n- Mimikatz Powershell Module Activity - ac96ceb8-4399-4191-af1d-4feeac1f1f46\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the host is a Domain Controller (DC):\n - Activate your incident response plan for total Active Directory compromise.\n - Review the privileges assigned to users that can access the DCs to ensure that the least privilege principle is\n being followed and reduce the attack surface.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Reboot the host to remove the injected SSP from memory.\n- Reimage the host operating system or restore compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.elastic.co/security-labs/detect-credential-access"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/"}]}],"language":"eql","query":"file where file.name : \"mimilsa.log\" and process.name : \"lsass.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"ebb200e8-adf0-43f8-a0bb-4ee5b5d852c6:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ebf1adea-ccf2-4943-8b96-7ab11ca173a5:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ebf1adea-ccf2-4943-8b96-7ab11ca173a5:102.0.0.json new file mode 100644 index 0000000000000..3632fafa24fe9 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ebf1adea-ccf2-4943-8b96-7ab11ca173a5:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"IIS HTTP Logging Disabled v102.0.0","rule_id":"ebf1adea-ccf2-4943-8b96-7ab11ca173a5:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when Internet Information Services (IIS) HTTP Logging is disabled on a server. An attacker with IIS server access via a webshell or other mechanism can disable HTTP Logging as an effective anti-forensics measure.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.002","name":"Disable Windows Event Logging","reference":"https://attack.mitre.org/techniques/T1562/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"appcmd.exe\" or process.pe.original_file_name == \"appcmd.exe\") and\n process.args : \"/dontLog*:*True\" and\n not process.parent.name : \"iissetup.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"ebf1adea-ccf2-4943-8b96-7ab11ca173a5:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ebf1adea-ccf2-4943-8b96-7ab11ca173a5:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ebf1adea-ccf2-4943-8b96-7ab11ca173a5:102.0.1.json new file mode 100644 index 0000000000000..ae633a10b00ea --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ebf1adea-ccf2-4943-8b96-7ab11ca173a5:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"IIS HTTP Logging Disabled v102.0.1","rule_id":"ebf1adea-ccf2-4943-8b96-7ab11ca173a5:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when Internet Information Services (IIS) HTTP Logging is disabled on a server. An attacker with IIS server access via a webshell or other mechanism can disable HTTP Logging as an effective anti-forensics measure.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.002","name":"Disable Windows Event Logging","reference":"https://attack.mitre.org/techniques/T1562/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"appcmd.exe\" or process.pe.original_file_name == \"appcmd.exe\") and\n process.args : \"/dontLog*:*True\" and\n not process.parent.name : \"iissetup.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"ebf1adea-ccf2-4943-8b96-7ab11ca173a5:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ebf1adea-ccf2-4943-8b96-7ab11ca173a5:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ebf1adea-ccf2-4943-8b96-7ab11ca173a5:102.0.2.json new file mode 100644 index 0000000000000..f28c2e727d4f0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ebf1adea-ccf2-4943-8b96-7ab11ca173a5:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"IIS HTTP Logging Disabled v102.0.2","rule_id":"ebf1adea-ccf2-4943-8b96-7ab11ca173a5:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when Internet Information Services (IIS) HTTP Logging is disabled on a server. An attacker with IIS server access via a webshell or other mechanism can disable HTTP Logging as an effective anti-forensics measure.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","max_signals":33,"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.002","name":"Disable Windows Event Logging","reference":"https://attack.mitre.org/techniques/T1562/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"appcmd.exe\" or process.pe.original_file_name == \"appcmd.exe\") and\n process.args : \"/dontLog*:*True\" and\n not process.parent.name : \"iissetup.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"ebf1adea-ccf2-4943-8b96-7ab11ca173a5:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ebfe1448-7fac-4d59-acea-181bd89b1f7f:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ebfe1448-7fac-4d59-acea-181bd89b1f7f:102.0.0.json new file mode 100644 index 0000000000000..c8f975d726847 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ebfe1448-7fac-4d59-acea-181bd89b1f7f:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Process Execution from an Unusual Directory v102.0.0","rule_id":"ebfe1448-7fac-4d59-acea-181bd89b1f7f:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies process execution from suspicious default Windows directories. This is sometimes done by adversaries to hide malware in trusted paths.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.005","name":"Match Legitimate Name or Location","reference":"https://attack.mitre.org/techniques/T1036/005/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n /* add suspicious execution paths here */\nprocess.executable : (\"C:\\\\PerfLogs\\\\*.exe\",\"C:\\\\Users\\\\Public\\\\*.exe\",\"C:\\\\Windows\\\\Tasks\\\\*.exe\",\"C:\\\\Intel\\\\*.exe\",\"C:\\\\AMD\\\\Temp\\\\*.exe\",\"C:\\\\Windows\\\\AppReadiness\\\\*.exe\",\n\"C:\\\\Windows\\\\ServiceState\\\\*.exe\",\"C:\\\\Windows\\\\security\\\\*.exe\",\"C:\\\\Windows\\\\IdentityCRL\\\\*.exe\",\"C:\\\\Windows\\\\Branding\\\\*.exe\",\"C:\\\\Windows\\\\csc\\\\*.exe\",\n \"C:\\\\Windows\\\\DigitalLocker\\\\*.exe\",\"C:\\\\Windows\\\\en-US\\\\*.exe\",\"C:\\\\Windows\\\\wlansvc\\\\*.exe\",\"C:\\\\Windows\\\\Prefetch\\\\*.exe\",\"C:\\\\Windows\\\\Fonts\\\\*.exe\",\n \"C:\\\\Windows\\\\diagnostics\\\\*.exe\",\"C:\\\\Windows\\\\TAPI\\\\*.exe\",\"C:\\\\Windows\\\\INF\\\\*.exe\",\"C:\\\\Windows\\\\System32\\\\Speech\\\\*.exe\",\"C:\\\\windows\\\\tracing\\\\*.exe\",\n \"c:\\\\windows\\\\IME\\\\*.exe\",\"c:\\\\Windows\\\\Performance\\\\*.exe\",\"c:\\\\windows\\\\intel\\\\*.exe\",\"c:\\\\windows\\\\ms\\\\*.exe\",\"C:\\\\Windows\\\\dot3svc\\\\*.exe\",\n \"C:\\\\Windows\\\\panther\\\\*.exe\",\"C:\\\\Windows\\\\RemotePackages\\\\*.exe\",\"C:\\\\Windows\\\\OCR\\\\*.exe\",\"C:\\\\Windows\\\\appcompat\\\\*.exe\",\"C:\\\\Windows\\\\apppatch\\\\*.exe\",\"C:\\\\Windows\\\\addins\\\\*.exe\",\n \"C:\\\\Windows\\\\Setup\\\\*.exe\",\"C:\\\\Windows\\\\Help\\\\*.exe\",\"C:\\\\Windows\\\\SKB\\\\*.exe\",\"C:\\\\Windows\\\\Vss\\\\*.exe\",\"C:\\\\Windows\\\\Web\\\\*.exe\",\"C:\\\\Windows\\\\servicing\\\\*.exe\",\"C:\\\\Windows\\\\CbsTemp\\\\*.exe\",\n \"C:\\\\Windows\\\\Logs\\\\*.exe\",\"C:\\\\Windows\\\\WaaS\\\\*.exe\",\"C:\\\\Windows\\\\ShellExperiences\\\\*.exe\",\"C:\\\\Windows\\\\ShellComponents\\\\*.exe\",\"C:\\\\Windows\\\\PLA\\\\*.exe\",\n \"C:\\\\Windows\\\\Migration\\\\*.exe\",\"C:\\\\Windows\\\\debug\\\\*.exe\",\"C:\\\\Windows\\\\Cursors\\\\*.exe\",\"C:\\\\Windows\\\\Containers\\\\*.exe\",\"C:\\\\Windows\\\\Boot\\\\*.exe\",\"C:\\\\Windows\\\\bcastdvr\\\\*.exe\",\n \"C:\\\\Windows\\\\assembly\\\\*.exe\",\"C:\\\\Windows\\\\TextInput\\\\*.exe\",\"C:\\\\Windows\\\\security\\\\*.exe\",\"C:\\\\Windows\\\\schemas\\\\*.exe\",\"C:\\\\Windows\\\\SchCache\\\\*.exe\",\"C:\\\\Windows\\\\Resources\\\\*.exe\",\n \"C:\\\\Windows\\\\rescache\\\\*.exe\",\"C:\\\\Windows\\\\Provisioning\\\\*.exe\",\"C:\\\\Windows\\\\PrintDialog\\\\*.exe\",\"C:\\\\Windows\\\\PolicyDefinitions\\\\*.exe\",\"C:\\\\Windows\\\\media\\\\*.exe\",\n \"C:\\\\Windows\\\\Globalization\\\\*.exe\",\"C:\\\\Windows\\\\L2Schemas\\\\*.exe\",\"C:\\\\Windows\\\\LiveKernelReports\\\\*.exe\",\"C:\\\\Windows\\\\ModemLogs\\\\*.exe\",\"C:\\\\Windows\\\\ImmersiveControlPanel\\\\*.exe\") and\n not process.name : (\"SpeechUXWiz.exe\",\"SystemSettings.exe\",\"TrustedInstaller.exe\",\"PrintDialog.exe\",\"MpSigStub.exe\",\"LMS.exe\",\"mpam-*.exe\") and\n not process.executable :\n (\"?:\\\\Intel\\\\Wireless\\\\WUSetupLauncher.exe\",\n \"?:\\\\Intel\\\\Wireless\\\\Setup.exe\",\n \"?:\\\\Intel\\\\Move Mouse.exe\",\n \"?:\\\\windows\\\\Panther\\\\DiagTrackRunner.exe\",\n \"?:\\\\Windows\\\\servicing\\\\GC64\\\\tzupd.exe\",\n \"?:\\\\Users\\\\Public\\\\res\\\\RemoteLite.exe\",\n \"?:\\\\Users\\\\Public\\\\IBM\\\\ClientSolutions\\\\*.exe\",\n \"?:\\\\Users\\\\Public\\\\Documents\\\\syspin.exe\",\n \"?:\\\\Users\\\\Public\\\\res\\\\FileWatcher.exe\")\n /* uncomment once in winlogbeat */\n /* and not (process.code_signature.subject_name == \"Microsoft Corporation\" and process.code_signature.trusted == true) */\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"ebfe1448-7fac-4d59-acea-181bd89b1f7f:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ebfe1448-7fac-4d59-acea-181bd89b1f7f:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ebfe1448-7fac-4d59-acea-181bd89b1f7f:102.0.1.json new file mode 100644 index 0000000000000..5d27ea2908f20 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ebfe1448-7fac-4d59-acea-181bd89b1f7f:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Process Execution from an Unusual Directory v102.0.1","rule_id":"ebfe1448-7fac-4d59-acea-181bd89b1f7f:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies process execution from suspicious default Windows directories. This is sometimes done by adversaries to hide malware in trusted paths.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.005","name":"Match Legitimate Name or Location","reference":"https://attack.mitre.org/techniques/T1036/005/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n /* add suspicious execution paths here */\nprocess.executable : (\"C:\\\\PerfLogs\\\\*.exe\",\"C:\\\\Users\\\\Public\\\\*.exe\",\"C:\\\\Windows\\\\Tasks\\\\*.exe\",\"C:\\\\Intel\\\\*.exe\",\"C:\\\\AMD\\\\Temp\\\\*.exe\",\"C:\\\\Windows\\\\AppReadiness\\\\*.exe\",\n\"C:\\\\Windows\\\\ServiceState\\\\*.exe\",\"C:\\\\Windows\\\\security\\\\*.exe\",\"C:\\\\Windows\\\\IdentityCRL\\\\*.exe\",\"C:\\\\Windows\\\\Branding\\\\*.exe\",\"C:\\\\Windows\\\\csc\\\\*.exe\",\n \"C:\\\\Windows\\\\DigitalLocker\\\\*.exe\",\"C:\\\\Windows\\\\en-US\\\\*.exe\",\"C:\\\\Windows\\\\wlansvc\\\\*.exe\",\"C:\\\\Windows\\\\Prefetch\\\\*.exe\",\"C:\\\\Windows\\\\Fonts\\\\*.exe\",\n \"C:\\\\Windows\\\\diagnostics\\\\*.exe\",\"C:\\\\Windows\\\\TAPI\\\\*.exe\",\"C:\\\\Windows\\\\INF\\\\*.exe\",\"C:\\\\Windows\\\\System32\\\\Speech\\\\*.exe\",\"C:\\\\windows\\\\tracing\\\\*.exe\",\n \"c:\\\\windows\\\\IME\\\\*.exe\",\"c:\\\\Windows\\\\Performance\\\\*.exe\",\"c:\\\\windows\\\\intel\\\\*.exe\",\"c:\\\\windows\\\\ms\\\\*.exe\",\"C:\\\\Windows\\\\dot3svc\\\\*.exe\",\n \"C:\\\\Windows\\\\panther\\\\*.exe\",\"C:\\\\Windows\\\\RemotePackages\\\\*.exe\",\"C:\\\\Windows\\\\OCR\\\\*.exe\",\"C:\\\\Windows\\\\appcompat\\\\*.exe\",\"C:\\\\Windows\\\\apppatch\\\\*.exe\",\"C:\\\\Windows\\\\addins\\\\*.exe\",\n \"C:\\\\Windows\\\\Setup\\\\*.exe\",\"C:\\\\Windows\\\\Help\\\\*.exe\",\"C:\\\\Windows\\\\SKB\\\\*.exe\",\"C:\\\\Windows\\\\Vss\\\\*.exe\",\"C:\\\\Windows\\\\Web\\\\*.exe\",\"C:\\\\Windows\\\\servicing\\\\*.exe\",\"C:\\\\Windows\\\\CbsTemp\\\\*.exe\",\n \"C:\\\\Windows\\\\Logs\\\\*.exe\",\"C:\\\\Windows\\\\WaaS\\\\*.exe\",\"C:\\\\Windows\\\\ShellExperiences\\\\*.exe\",\"C:\\\\Windows\\\\ShellComponents\\\\*.exe\",\"C:\\\\Windows\\\\PLA\\\\*.exe\",\n \"C:\\\\Windows\\\\Migration\\\\*.exe\",\"C:\\\\Windows\\\\debug\\\\*.exe\",\"C:\\\\Windows\\\\Cursors\\\\*.exe\",\"C:\\\\Windows\\\\Containers\\\\*.exe\",\"C:\\\\Windows\\\\Boot\\\\*.exe\",\"C:\\\\Windows\\\\bcastdvr\\\\*.exe\",\n \"C:\\\\Windows\\\\assembly\\\\*.exe\",\"C:\\\\Windows\\\\TextInput\\\\*.exe\",\"C:\\\\Windows\\\\security\\\\*.exe\",\"C:\\\\Windows\\\\schemas\\\\*.exe\",\"C:\\\\Windows\\\\SchCache\\\\*.exe\",\"C:\\\\Windows\\\\Resources\\\\*.exe\",\n \"C:\\\\Windows\\\\rescache\\\\*.exe\",\"C:\\\\Windows\\\\Provisioning\\\\*.exe\",\"C:\\\\Windows\\\\PrintDialog\\\\*.exe\",\"C:\\\\Windows\\\\PolicyDefinitions\\\\*.exe\",\"C:\\\\Windows\\\\media\\\\*.exe\",\n \"C:\\\\Windows\\\\Globalization\\\\*.exe\",\"C:\\\\Windows\\\\L2Schemas\\\\*.exe\",\"C:\\\\Windows\\\\LiveKernelReports\\\\*.exe\",\"C:\\\\Windows\\\\ModemLogs\\\\*.exe\",\"C:\\\\Windows\\\\ImmersiveControlPanel\\\\*.exe\") and\n not process.name : (\"SpeechUXWiz.exe\",\"SystemSettings.exe\",\"TrustedInstaller.exe\",\"PrintDialog.exe\",\"MpSigStub.exe\",\"LMS.exe\",\"mpam-*.exe\") and\n not process.executable :\n (\"?:\\\\Intel\\\\Wireless\\\\WUSetupLauncher.exe\",\n \"?:\\\\Intel\\\\Wireless\\\\Setup.exe\",\n \"?:\\\\Intel\\\\Move Mouse.exe\",\n \"?:\\\\windows\\\\Panther\\\\DiagTrackRunner.exe\",\n \"?:\\\\Windows\\\\servicing\\\\GC64\\\\tzupd.exe\",\n \"?:\\\\Users\\\\Public\\\\res\\\\RemoteLite.exe\",\n \"?:\\\\Users\\\\Public\\\\IBM\\\\ClientSolutions\\\\*.exe\",\n \"?:\\\\Users\\\\Public\\\\Documents\\\\syspin.exe\",\n \"?:\\\\Users\\\\Public\\\\res\\\\FileWatcher.exe\")\n /* uncomment once in winlogbeat */\n /* and not (process.code_signature.subject_name == \"Microsoft Corporation\" and process.code_signature.trusted == true) */\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"ebfe1448-7fac-4d59-acea-181bd89b1f7f:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ebfe1448-7fac-4d59-acea-181bd89b1f7f:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ebfe1448-7fac-4d59-acea-181bd89b1f7f:102.0.2.json new file mode 100644 index 0000000000000..cf3e2206e606d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ebfe1448-7fac-4d59-acea-181bd89b1f7f:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Process Execution from an Unusual Directory v102.0.2","rule_id":"ebfe1448-7fac-4d59-acea-181bd89b1f7f:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies process execution from suspicious default Windows directories. This is sometimes done by adversaries to hide malware in trusted paths.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.005","name":"Match Legitimate Name or Location","reference":"https://attack.mitre.org/techniques/T1036/005/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n /* add suspicious execution paths here */\nprocess.executable : (\"C:\\\\PerfLogs\\\\*.exe\",\"C:\\\\Users\\\\Public\\\\*.exe\",\"C:\\\\Windows\\\\Tasks\\\\*.exe\",\"C:\\\\Intel\\\\*.exe\",\"C:\\\\AMD\\\\Temp\\\\*.exe\",\"C:\\\\Windows\\\\AppReadiness\\\\*.exe\",\n\"C:\\\\Windows\\\\ServiceState\\\\*.exe\",\"C:\\\\Windows\\\\security\\\\*.exe\",\"C:\\\\Windows\\\\IdentityCRL\\\\*.exe\",\"C:\\\\Windows\\\\Branding\\\\*.exe\",\"C:\\\\Windows\\\\csc\\\\*.exe\",\n \"C:\\\\Windows\\\\DigitalLocker\\\\*.exe\",\"C:\\\\Windows\\\\en-US\\\\*.exe\",\"C:\\\\Windows\\\\wlansvc\\\\*.exe\",\"C:\\\\Windows\\\\Prefetch\\\\*.exe\",\"C:\\\\Windows\\\\Fonts\\\\*.exe\",\n \"C:\\\\Windows\\\\diagnostics\\\\*.exe\",\"C:\\\\Windows\\\\TAPI\\\\*.exe\",\"C:\\\\Windows\\\\INF\\\\*.exe\",\"C:\\\\Windows\\\\System32\\\\Speech\\\\*.exe\",\"C:\\\\windows\\\\tracing\\\\*.exe\",\n \"c:\\\\windows\\\\IME\\\\*.exe\",\"c:\\\\Windows\\\\Performance\\\\*.exe\",\"c:\\\\windows\\\\intel\\\\*.exe\",\"c:\\\\windows\\\\ms\\\\*.exe\",\"C:\\\\Windows\\\\dot3svc\\\\*.exe\",\n \"C:\\\\Windows\\\\panther\\\\*.exe\",\"C:\\\\Windows\\\\RemotePackages\\\\*.exe\",\"C:\\\\Windows\\\\OCR\\\\*.exe\",\"C:\\\\Windows\\\\appcompat\\\\*.exe\",\"C:\\\\Windows\\\\apppatch\\\\*.exe\",\"C:\\\\Windows\\\\addins\\\\*.exe\",\n \"C:\\\\Windows\\\\Setup\\\\*.exe\",\"C:\\\\Windows\\\\Help\\\\*.exe\",\"C:\\\\Windows\\\\SKB\\\\*.exe\",\"C:\\\\Windows\\\\Vss\\\\*.exe\",\"C:\\\\Windows\\\\Web\\\\*.exe\",\"C:\\\\Windows\\\\servicing\\\\*.exe\",\"C:\\\\Windows\\\\CbsTemp\\\\*.exe\",\n \"C:\\\\Windows\\\\Logs\\\\*.exe\",\"C:\\\\Windows\\\\WaaS\\\\*.exe\",\"C:\\\\Windows\\\\ShellExperiences\\\\*.exe\",\"C:\\\\Windows\\\\ShellComponents\\\\*.exe\",\"C:\\\\Windows\\\\PLA\\\\*.exe\",\n \"C:\\\\Windows\\\\Migration\\\\*.exe\",\"C:\\\\Windows\\\\debug\\\\*.exe\",\"C:\\\\Windows\\\\Cursors\\\\*.exe\",\"C:\\\\Windows\\\\Containers\\\\*.exe\",\"C:\\\\Windows\\\\Boot\\\\*.exe\",\"C:\\\\Windows\\\\bcastdvr\\\\*.exe\",\n \"C:\\\\Windows\\\\assembly\\\\*.exe\",\"C:\\\\Windows\\\\TextInput\\\\*.exe\",\"C:\\\\Windows\\\\security\\\\*.exe\",\"C:\\\\Windows\\\\schemas\\\\*.exe\",\"C:\\\\Windows\\\\SchCache\\\\*.exe\",\"C:\\\\Windows\\\\Resources\\\\*.exe\",\n \"C:\\\\Windows\\\\rescache\\\\*.exe\",\"C:\\\\Windows\\\\Provisioning\\\\*.exe\",\"C:\\\\Windows\\\\PrintDialog\\\\*.exe\",\"C:\\\\Windows\\\\PolicyDefinitions\\\\*.exe\",\"C:\\\\Windows\\\\media\\\\*.exe\",\n \"C:\\\\Windows\\\\Globalization\\\\*.exe\",\"C:\\\\Windows\\\\L2Schemas\\\\*.exe\",\"C:\\\\Windows\\\\LiveKernelReports\\\\*.exe\",\"C:\\\\Windows\\\\ModemLogs\\\\*.exe\",\"C:\\\\Windows\\\\ImmersiveControlPanel\\\\*.exe\") and\n not process.name : (\"SpeechUXWiz.exe\",\"SystemSettings.exe\",\"TrustedInstaller.exe\",\"PrintDialog.exe\",\"MpSigStub.exe\",\"LMS.exe\",\"mpam-*.exe\") and\n not process.executable :\n (\"?:\\\\Intel\\\\Wireless\\\\WUSetupLauncher.exe\",\n \"?:\\\\Intel\\\\Wireless\\\\Setup.exe\",\n \"?:\\\\Intel\\\\Move Mouse.exe\",\n \"?:\\\\windows\\\\Panther\\\\DiagTrackRunner.exe\",\n \"?:\\\\Windows\\\\servicing\\\\GC64\\\\tzupd.exe\",\n \"?:\\\\Users\\\\Public\\\\res\\\\RemoteLite.exe\",\n \"?:\\\\Users\\\\Public\\\\IBM\\\\ClientSolutions\\\\*.exe\",\n \"?:\\\\Users\\\\Public\\\\Documents\\\\syspin.exe\",\n \"?:\\\\Users\\\\Public\\\\res\\\\FileWatcher.exe\")\n /* uncomment once in winlogbeat */\n /* and not (process.code_signature.subject_name == \"Microsoft Corporation\" and process.code_signature.trusted == true) */\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"ebfe1448-7fac-4d59-acea-181bd89b1f7f:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ec8efb0c-604d-42fa-ac46-ed1cfbc38f78:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ec8efb0c-604d-42fa-ac46-ed1cfbc38f78:101.0.0.json new file mode 100644 index 0000000000000..183c7d4c664b5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ec8efb0c-604d-42fa-ac46-ed1cfbc38f78:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Inbox Forwarding Rule Created v101.0.0","rule_id":"ec8efb0c-604d-42fa-ac46-ed1cfbc38f78:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new Inbox forwarding rule is created in Microsoft 365. Inbox rules process messages in the Inbox based on conditions and take actions. In this case, the rules will forward the emails to a defined address. Attackers can abuse Inbox Rules to intercept and exfiltrate email data without making organization-wide configuration changes or having the corresponding privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Gary Blackwell","Austin Songer"],"false_positives":["Users and Administrators can create inbox rules for legitimate purposes. Verify if it complies with the company policy and done with the user's consent. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/responding-to-a-compromised-email-account?view=o365-worldwide","https://docs.microsoft.com/en-us/powershell/module/exchange/new-inboxrule?view=exchange-ps","https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/detect-and-remediate-outlook-rules-forms-attack?view=o365-worldwide","https://raw.githubusercontent.com/PwC-IR/Business-Email-Compromise-Guide/main/Extractor%20Cheat%20Sheet.pdf"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1114","name":"Email Collection","reference":"https://attack.mitre.org/techniques/T1114/","subtechnique":[{"id":"T1114.003","name":"Email Forwarding Rule","reference":"https://attack.mitre.org/techniques/T1114/003/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and\nevent.category:web and event.action:(\"New-InboxRule\" or \"Set-InboxRule\") and\n (\n o365.audit.Parameters.ForwardTo:* or\n o365.audit.Parameters.ForwardAsAttachmentTo:* or\n o365.audit.Parameters.RedirectTo:*\n )\n and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Parameters.ForwardAsAttachmentTo","type":"unknown"},{"ecs":false,"name":"o365.audit.Parameters.ForwardTo","type":"unknown"},{"ecs":false,"name":"o365.audit.Parameters.RedirectTo","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"ec8efb0c-604d-42fa-ac46-ed1cfbc38f78:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ec8efb0c-604d-42fa-ac46-ed1cfbc38f78:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ec8efb0c-604d-42fa-ac46-ed1cfbc38f78:101.0.1.json new file mode 100644 index 0000000000000..dc7398e11ae5e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ec8efb0c-604d-42fa-ac46-ed1cfbc38f78:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Inbox Forwarding Rule Created v101.0.1","rule_id":"ec8efb0c-604d-42fa-ac46-ed1cfbc38f78:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new Inbox forwarding rule is created in Microsoft 365. Inbox rules process messages in the Inbox based on conditions and take actions. In this case, the rules will forward the emails to a defined address. Attackers can abuse Inbox Rules to intercept and exfiltrate email data without making organization-wide configuration changes or having the corresponding privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Gary Blackwell","Austin Songer"],"false_positives":["Users and Administrators can create inbox rules for legitimate purposes. Verify if it complies with the company policy and done with the user's consent. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/responding-to-a-compromised-email-account?view=o365-worldwide","https://docs.microsoft.com/en-us/powershell/module/exchange/new-inboxrule?view=exchange-ps","https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/detect-and-remediate-outlook-rules-forms-attack?view=o365-worldwide","https://raw.githubusercontent.com/PwC-IR/Business-Email-Compromise-Guide/main/Extractor%20Cheat%20Sheet.pdf"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1114","name":"Email Collection","reference":"https://attack.mitre.org/techniques/T1114/","subtechnique":[{"id":"T1114.003","name":"Email Forwarding Rule","reference":"https://attack.mitre.org/techniques/T1114/003/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and\nevent.category:web and event.action:(\"New-InboxRule\" or \"Set-InboxRule\") and\n (\n o365.audit.Parameters.ForwardTo:* or\n o365.audit.Parameters.ForwardAsAttachmentTo:* or\n o365.audit.Parameters.RedirectTo:*\n )\n and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Parameters.ForwardAsAttachmentTo","type":"unknown"},{"ecs":false,"name":"o365.audit.Parameters.ForwardTo","type":"unknown"},{"ecs":false,"name":"o365.audit.Parameters.RedirectTo","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"ec8efb0c-604d-42fa-ac46-ed1cfbc38f78:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ec8efb0c-604d-42fa-ac46-ed1cfbc38f78:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ec8efb0c-604d-42fa-ac46-ed1cfbc38f78:101.0.2.json new file mode 100644 index 0000000000000..06d2d0915b6cf --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ec8efb0c-604d-42fa-ac46-ed1cfbc38f78:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Inbox Forwarding Rule Created v101.0.2","rule_id":"ec8efb0c-604d-42fa-ac46-ed1cfbc38f78:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a new Inbox forwarding rule is created in Microsoft 365. Inbox rules process messages in the Inbox based on conditions and take actions. In this case, the rules will forward the emails to a defined address. Attackers can abuse Inbox Rules to intercept and exfiltrate email data without making organization-wide configuration changes or having the corresponding privileges.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Gary Blackwell","Austin Songer"],"false_positives":["Users and Administrators can create inbox rules for legitimate purposes. Verify if it complies with the company policy and done with the user's consent. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/responding-to-a-compromised-email-account?view=o365-worldwide","https://docs.microsoft.com/en-us/powershell/module/exchange/new-inboxrule?view=exchange-ps","https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/detect-and-remediate-outlook-rules-forms-attack?view=o365-worldwide","https://raw.githubusercontent.com/PwC-IR/Business-Email-Compromise-Guide/main/Extractor%20Cheat%20Sheet.pdf"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0009","name":"Collection","reference":"https://attack.mitre.org/tactics/TA0009/"},"technique":[{"id":"T1114","name":"Email Collection","reference":"https://attack.mitre.org/techniques/T1114/","subtechnique":[{"id":"T1114.003","name":"Email Forwarding Rule","reference":"https://attack.mitre.org/techniques/T1114/003/"}]}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and\nevent.category:web and event.action:(\"New-InboxRule\" or \"Set-InboxRule\") and\n (\n o365.audit.Parameters.ForwardTo:* or\n o365.audit.Parameters.ForwardAsAttachmentTo:* or\n o365.audit.Parameters.RedirectTo:*\n )\n and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"},{"ecs":false,"name":"o365.audit.Parameters.ForwardAsAttachmentTo","type":"unknown"},{"ecs":false,"name":"o365.audit.Parameters.ForwardTo","type":"unknown"},{"ecs":false,"name":"o365.audit.Parameters.RedirectTo","type":"unknown"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"ec8efb0c-604d-42fa-ac46-ed1cfbc38f78:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ecf2b32c-e221-4bd4-aa3b-c7d59b3bc01d:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ecf2b32c-e221-4bd4-aa3b-c7d59b3bc01d:101.0.0.json new file mode 100644 index 0000000000000..5272f764be218 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ecf2b32c-e221-4bd4-aa3b-c7d59b3bc01d:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS RDS Instance/Cluster Stoppage v101.0.0","rule_id":"ecf2b32c-e221-4bd4-aa3b-c7d59b3bc01d:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies that an Amazon Relational Database Service (RDS) cluster or instance has been stopped.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Valid clusters or instances may be stopped by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Cluster or instance stoppages from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/stop-db-cluster.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_StopDBCluster.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/stop-db-instance.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_StopDBInstance.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:(StopDBCluster or StopDBInstance) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"ecf2b32c-e221-4bd4-aa3b-c7d59b3bc01d:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ecf2b32c-e221-4bd4-aa3b-c7d59b3bc01d:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ecf2b32c-e221-4bd4-aa3b-c7d59b3bc01d:101.0.1.json new file mode 100644 index 0000000000000..052f49e0bd842 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ecf2b32c-e221-4bd4-aa3b-c7d59b3bc01d:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS RDS Instance/Cluster Stoppage v101.0.1","rule_id":"ecf2b32c-e221-4bd4-aa3b-c7d59b3bc01d:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies that an Amazon Relational Database Service (RDS) cluster or instance has been stopped.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Valid clusters or instances may be stopped by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Cluster or instance stoppages from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/stop-db-cluster.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_StopDBCluster.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/stop-db-instance.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_StopDBInstance.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:(StopDBCluster or StopDBInstance) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"ecf2b32c-e221-4bd4-aa3b-c7d59b3bc01d:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ecf2b32c-e221-4bd4-aa3b-c7d59b3bc01d:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ecf2b32c-e221-4bd4-aa3b-c7d59b3bc01d:101.0.2.json new file mode 100644 index 0000000000000..db87c06654b02 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ecf2b32c-e221-4bd4-aa3b-c7d59b3bc01d:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS RDS Instance/Cluster Stoppage v101.0.2","rule_id":"ecf2b32c-e221-4bd4-aa3b-c7d59b3bc01d:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies that an Amazon Relational Database Service (RDS) cluster or instance has been stopped.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Valid clusters or instances may be stopped by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Cluster or instance stoppages from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/stop-db-cluster.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_StopDBCluster.html","https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/stop-db-instance.html","https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_StopDBInstance.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:(StopDBCluster or StopDBInstance) and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"ecf2b32c-e221-4bd4-aa3b-c7d59b3bc01d:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ed9ecd27-e3e6-4fd9-8586-7754803f7fc8:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ed9ecd27-e3e6-4fd9-8586-7754803f7fc8:101.0.0.json new file mode 100644 index 0000000000000..7cade6b230040 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ed9ecd27-e3e6-4fd9-8586-7754803f7fc8:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Global Administrator Role Addition to PIM User v101.0.0","rule_id":"ed9ecd27-e3e6-4fd9-8586-7754803f7fc8:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an Azure Active Directory (AD) Global Administrator role addition to a Privileged Identity Management (PIM) user account. PIM is a service that enables you to manage, control, and monitor access to important resources in an organization. Users who are assigned to the Global administrator role can read and modify any administrative setting in your Azure AD organization.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Global administrator additions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Global administrator additions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://docs.microsoft.com/en-us/azure/active-directory/users-groups-roles/directory-assign-admin-roles"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.properties.category:RoleManagement and\n azure.auditlogs.operation_name:(\"Add eligible member to role in PIM completed (permanent)\" or\n \"Add member to role in PIM completed (timebound)\") and\n azure.auditlogs.properties.target_resources.*.display_name:\"Global Administrator\" and\n event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.properties.category","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.properties.target_resources.*.display_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"ed9ecd27-e3e6-4fd9-8586-7754803f7fc8:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ed9ecd27-e3e6-4fd9-8586-7754803f7fc8:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ed9ecd27-e3e6-4fd9-8586-7754803f7fc8:101.0.1.json new file mode 100644 index 0000000000000..d825aa215d1bd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ed9ecd27-e3e6-4fd9-8586-7754803f7fc8:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Global Administrator Role Addition to PIM User v101.0.1","rule_id":"ed9ecd27-e3e6-4fd9-8586-7754803f7fc8:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an Azure Active Directory (AD) Global Administrator role addition to a Privileged Identity Management (PIM) user account. PIM is a service that enables you to manage, control, and monitor access to important resources in an organization. Users who are assigned to the Global administrator role can read and modify any administrative setting in your Azure AD organization.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Global administrator additions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Global administrator additions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://docs.microsoft.com/en-us/azure/active-directory/users-groups-roles/directory-assign-admin-roles"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.properties.category:RoleManagement and\n azure.auditlogs.operation_name:(\"Add eligible member to role in PIM completed (permanent)\" or\n \"Add member to role in PIM completed (timebound)\") and\n azure.auditlogs.properties.target_resources.*.display_name:\"Global Administrator\" and\n event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.properties.category","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.properties.target_resources.*.display_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"ed9ecd27-e3e6-4fd9-8586-7754803f7fc8:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ed9ecd27-e3e6-4fd9-8586-7754803f7fc8:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ed9ecd27-e3e6-4fd9-8586-7754803f7fc8:101.0.2.json new file mode 100644 index 0000000000000..f404714213899 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ed9ecd27-e3e6-4fd9-8586-7754803f7fc8:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Global Administrator Role Addition to PIM User v101.0.2","rule_id":"ed9ecd27-e3e6-4fd9-8586-7754803f7fc8:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an Azure Active Directory (AD) Global Administrator role addition to a Privileged Identity Management (PIM) user account. PIM is a service that enables you to manage, control, and monitor access to important resources in an organization. Users who are assigned to the Global administrator role can read and modify any administrative setting in your Azure AD organization.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Global administrator additions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Global administrator additions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"references":["https://docs.microsoft.com/en-us/azure/active-directory/users-groups-roles/directory-assign-admin-roles"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.properties.category:RoleManagement and\n azure.auditlogs.operation_name:(\"Add eligible member to role in PIM completed (permanent)\" or\n \"Add member to role in PIM completed (timebound)\") and\n azure.auditlogs.properties.target_resources.*.display_name:\"Global Administrator\" and\n event.outcome:(Success or success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.properties.category","type":"keyword"},{"ecs":false,"name":"azure.auditlogs.properties.target_resources.*.display_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"ed9ecd27-e3e6-4fd9-8586-7754803f7fc8:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/eda499b8-a073-4e35-9733-22ec71f57f3a:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/eda499b8-a073-4e35-9733-22ec71f57f3a:102.0.0.json new file mode 100644 index 0000000000000..a53cc04aceef8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/eda499b8-a073-4e35-9733-22ec71f57f3a:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AdFind Command Activity v102.0.0","rule_id":"eda499b8-a073-4e35-9733-22ec71f57f3a:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects the Active Directory query tool, AdFind.exe. AdFind has legitimate purposes, but it is frequently leveraged by threat actors to perform post-exploitation Active Directory reconnaissance. The AdFind tool has been observed in Trickbot, Ryuk, Maze, and FIN6 campaigns. For Winlogbeat, this rule requires Sysmon.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AdFind Command Activity\n\n[AdFind](http://www.joeware.net/freetools/tools/adfind/) is a freely available command-line tool used to retrieve information\nfrom Active Directory (AD). Network discovery and enumeration tools like `AdFind` are useful to adversaries in the same\nways they are effective for network administrators. This tool provides quick ability to scope AD person/computer objects\nand understand subnets and domain information. There are many [examples](https://thedfirreport.com/category/adfind/) of\nthis tool being adopted by ransomware and criminal groups and used in compromises.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Examine the command line to determine what information was retrieved by the tool.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- This rule has a high chance to produce false positives as it is a legitimate tool used by network administrators.\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n- Malicious behavior with `AdFind` should be investigated as part of a step within an attack chain. It doesn't happen in\nisolation, so reviewing previous logs/activity from impacted machines can be very telling.\n\n### Related rules\n\n- Windows Network Enumeration - 7b8bfc26-81d2-435e-965c-d722ee397ef1\n- Enumeration of Administrator Accounts - 871ea072-1b71-4def-b016-6278b505138d\n- Enumeration Command Spawned via WMIPrvSE - 770e0c4d-b998-41e5-a62e-c7901fd7f470\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["http://www.joeware.net/freetools/tools/adfind/","https://thedfirreport.com/2020/05/08/adfind-recon/","https://www.fireeye.com/blog/threat-research/2020/05/tactics-techniques-procedures-associated-with-maze-ransomware-incidents.html","https://www.cybereason.com/blog/dropping-anchor-from-a-trickbot-infection-to-the-discovery-of-the-anchor-malware","https://www.fireeye.com/blog/threat-research/2019/04/pick-six-intercepting-a-fin6-intrusion.html","https://usa.visa.com/dam/VCOM/global/support-legal/documents/fin6-cybercrime-group-expands-threat-To-ecommerce-merchants.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1018","name":"Remote System Discovery","reference":"https://attack.mitre.org/techniques/T1018/"},{"id":"T1069","name":"Permission Groups Discovery","reference":"https://attack.mitre.org/techniques/T1069/","subtechnique":[{"id":"T1069.002","name":"Domain Groups","reference":"https://attack.mitre.org/techniques/T1069/002/"}]},{"id":"T1087","name":"Account Discovery","reference":"https://attack.mitre.org/techniques/T1087/","subtechnique":[{"id":"T1087.002","name":"Domain Account","reference":"https://attack.mitre.org/techniques/T1087/002/"}]},{"id":"T1482","name":"Domain Trust Discovery","reference":"https://attack.mitre.org/techniques/T1482/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"AdFind.exe\" or process.pe.original_file_name == \"AdFind.exe\") and\n process.args : (\"objectcategory=computer\", \"(objectcategory=computer)\",\n \"objectcategory=person\", \"(objectcategory=person)\",\n \"objectcategory=subnet\", \"(objectcategory=subnet)\",\n \"objectcategory=group\", \"(objectcategory=group)\",\n \"objectcategory=organizationalunit\", \"(objectcategory=organizationalunit)\",\n \"objectcategory=attributeschema\", \"(objectcategory=attributeschema)\",\n \"domainlist\", \"dcmodes\", \"adinfo\", \"dclist\", \"computers_pwnotreqd\", \"trustdmp\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"eda499b8-a073-4e35-9733-22ec71f57f3a:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/eda499b8-a073-4e35-9733-22ec71f57f3a:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/eda499b8-a073-4e35-9733-22ec71f57f3a:102.0.1.json new file mode 100644 index 0000000000000..303b676f6f58c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/eda499b8-a073-4e35-9733-22ec71f57f3a:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AdFind Command Activity v102.0.1","rule_id":"eda499b8-a073-4e35-9733-22ec71f57f3a:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects the Active Directory query tool, AdFind.exe. AdFind has legitimate purposes, but it is frequently leveraged by threat actors to perform post-exploitation Active Directory reconnaissance. The AdFind tool has been observed in Trickbot, Ryuk, Maze, and FIN6 campaigns. For Winlogbeat, this rule requires Sysmon.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AdFind Command Activity\n\n[AdFind](http://www.joeware.net/freetools/tools/adfind/) is a freely available command-line tool used to retrieve information\nfrom Active Directory (AD). Network discovery and enumeration tools like `AdFind` are useful to adversaries in the same\nways they are effective for network administrators. This tool provides quick ability to scope AD person/computer objects\nand understand subnets and domain information. There are many [examples](https://thedfirreport.com/category/adfind/) of\nthis tool being adopted by ransomware and criminal groups and used in compromises.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Examine the command line to determine what information was retrieved by the tool.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- This rule has a high chance to produce false positives as it is a legitimate tool used by network administrators.\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n- Malicious behavior with `AdFind` should be investigated as part of a step within an attack chain. It doesn't happen in\nisolation, so reviewing previous logs/activity from impacted machines can be very telling.\n\n### Related rules\n\n- Windows Network Enumeration - 7b8bfc26-81d2-435e-965c-d722ee397ef1\n- Enumeration of Administrator Accounts - 871ea072-1b71-4def-b016-6278b505138d\n- Enumeration Command Spawned via WMIPrvSE - 770e0c4d-b998-41e5-a62e-c7901fd7f470\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["http://www.joeware.net/freetools/tools/adfind/","https://thedfirreport.com/2020/05/08/adfind-recon/","https://www.fireeye.com/blog/threat-research/2020/05/tactics-techniques-procedures-associated-with-maze-ransomware-incidents.html","https://www.cybereason.com/blog/dropping-anchor-from-a-trickbot-infection-to-the-discovery-of-the-anchor-malware","https://www.fireeye.com/blog/threat-research/2019/04/pick-six-intercepting-a-fin6-intrusion.html","https://usa.visa.com/dam/VCOM/global/support-legal/documents/fin6-cybercrime-group-expands-threat-To-ecommerce-merchants.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1018","name":"Remote System Discovery","reference":"https://attack.mitre.org/techniques/T1018/"},{"id":"T1069","name":"Permission Groups Discovery","reference":"https://attack.mitre.org/techniques/T1069/","subtechnique":[{"id":"T1069.002","name":"Domain Groups","reference":"https://attack.mitre.org/techniques/T1069/002/"}]},{"id":"T1087","name":"Account Discovery","reference":"https://attack.mitre.org/techniques/T1087/","subtechnique":[{"id":"T1087.002","name":"Domain Account","reference":"https://attack.mitre.org/techniques/T1087/002/"}]},{"id":"T1482","name":"Domain Trust Discovery","reference":"https://attack.mitre.org/techniques/T1482/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"AdFind.exe\" or process.pe.original_file_name == \"AdFind.exe\") and\n process.args : (\"objectcategory=computer\", \"(objectcategory=computer)\",\n \"objectcategory=person\", \"(objectcategory=person)\",\n \"objectcategory=subnet\", \"(objectcategory=subnet)\",\n \"objectcategory=group\", \"(objectcategory=group)\",\n \"objectcategory=organizationalunit\", \"(objectcategory=organizationalunit)\",\n \"objectcategory=attributeschema\", \"(objectcategory=attributeschema)\",\n \"domainlist\", \"dcmodes\", \"adinfo\", \"dclist\", \"computers_pwnotreqd\", \"trustdmp\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"eda499b8-a073-4e35-9733-22ec71f57f3a:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/eda499b8-a073-4e35-9733-22ec71f57f3a:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/eda499b8-a073-4e35-9733-22ec71f57f3a:102.0.2.json new file mode 100644 index 0000000000000..1b3ac57baa56a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/eda499b8-a073-4e35-9733-22ec71f57f3a:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AdFind Command Activity v102.0.2","rule_id":"eda499b8-a073-4e35-9733-22ec71f57f3a:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rule detects the Active Directory query tool, AdFind.exe. AdFind has legitimate purposes, but it is frequently leveraged by threat actors to perform post-exploitation Active Directory reconnaissance. The AdFind tool has been observed in Trickbot, Ryuk, Maze, and FIN6 campaigns. For Winlogbeat, this rule requires Sysmon.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AdFind Command Activity\n\n[AdFind](http://www.joeware.net/freetools/tools/adfind/) is a freely available command-line tool used to retrieve information\nfrom Active Directory (AD). Network discovery and enumeration tools like `AdFind` are useful to adversaries in the same\nways they are effective for network administrators. This tool provides quick ability to scope AD person/computer objects\nand understand subnets and domain information. There are many [examples](https://thedfirreport.com/category/adfind/) of\nthis tool being adopted by ransomware and criminal groups and used in compromises.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Examine the command line to determine what information was retrieved by the tool.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- This rule has a high chance to produce false positives as it is a legitimate tool used by network administrators.\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a combination\nof user and command line conditions.\n- Malicious behavior with `AdFind` should be investigated as part of a step within an attack chain. It doesn't happen in\nisolation, so reviewing previous logs/activity from impacted machines can be very telling.\n\n### Related rules\n\n- Windows Network Enumeration - 7b8bfc26-81d2-435e-965c-d722ee397ef1\n- Enumeration of Administrator Accounts - 871ea072-1b71-4def-b016-6278b505138d\n- Enumeration Command Spawned via WMIPrvSE - 770e0c4d-b998-41e5-a62e-c7901fd7f470\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["http://www.joeware.net/freetools/tools/adfind/","https://thedfirreport.com/2020/05/08/adfind-recon/","https://www.fireeye.com/blog/threat-research/2020/05/tactics-techniques-procedures-associated-with-maze-ransomware-incidents.html","https://www.cybereason.com/blog/dropping-anchor-from-a-trickbot-infection-to-the-discovery-of-the-anchor-malware","https://www.fireeye.com/blog/threat-research/2019/04/pick-six-intercepting-a-fin6-intrusion.html","https://usa.visa.com/dam/VCOM/global/support-legal/documents/fin6-cybercrime-group-expands-threat-To-ecommerce-merchants.pdf"],"tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1018","name":"Remote System Discovery","reference":"https://attack.mitre.org/techniques/T1018/"},{"id":"T1069","name":"Permission Groups Discovery","reference":"https://attack.mitre.org/techniques/T1069/","subtechnique":[{"id":"T1069.002","name":"Domain Groups","reference":"https://attack.mitre.org/techniques/T1069/002/"}]},{"id":"T1087","name":"Account Discovery","reference":"https://attack.mitre.org/techniques/T1087/","subtechnique":[{"id":"T1087.002","name":"Domain Account","reference":"https://attack.mitre.org/techniques/T1087/002/"}]},{"id":"T1482","name":"Domain Trust Discovery","reference":"https://attack.mitre.org/techniques/T1482/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"AdFind.exe\" or process.pe.original_file_name == \"AdFind.exe\") and\n process.args : (\"objectcategory=computer\", \"(objectcategory=computer)\",\n \"objectcategory=person\", \"(objectcategory=person)\",\n \"objectcategory=subnet\", \"(objectcategory=subnet)\",\n \"objectcategory=group\", \"(objectcategory=group)\",\n \"objectcategory=organizationalunit\", \"(objectcategory=organizationalunit)\",\n \"objectcategory=attributeschema\", \"(objectcategory=attributeschema)\",\n \"domainlist\", \"dcmodes\", \"adinfo\", \"dclist\", \"computers_pwnotreqd\", \"trustdmp\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"eda499b8-a073-4e35-9733-22ec71f57f3a:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/edb91186-1c7e-4db8-b53e-bfa33a1a0a8a:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/edb91186-1c7e-4db8-b53e-bfa33a1a0a8a:102.0.0.json new file mode 100644 index 0000000000000..8ef190bf4185e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/edb91186-1c7e-4db8-b53e-bfa33a1a0a8a:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Deactivate an Okta Application v102.0.0","rule_id":"edb91186-1c7e-4db8-b53e-bfa33a1a0a8a:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to deactivate an Okta application. An adversary may attempt to modify, deactivate, or delete an Okta application in order to weaken an organization's security controls or disrupt their business operations.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if your organization's Okta applications are regularly deactivated and the behavior is expected."],"references":["https://help.okta.com/en/prod/Content/Topics/Apps/Apps_Apps.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:application.lifecycle.deactivate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"edb91186-1c7e-4db8-b53e-bfa33a1a0a8a:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/edb91186-1c7e-4db8-b53e-bfa33a1a0a8a:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/edb91186-1c7e-4db8-b53e-bfa33a1a0a8a:102.0.1.json new file mode 100644 index 0000000000000..394a902df9b0a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/edb91186-1c7e-4db8-b53e-bfa33a1a0a8a:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Deactivate an Okta Application v102.0.1","rule_id":"edb91186-1c7e-4db8-b53e-bfa33a1a0a8a:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to deactivate an Okta application. An adversary may attempt to modify, deactivate, or delete an Okta application in order to weaken an organization's security controls or disrupt their business operations.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if your organization's Okta applications are regularly deactivated and the behavior is expected."],"references":["https://help.okta.com/en/prod/Content/Topics/Apps/Apps_Apps.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:application.lifecycle.deactivate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"edb91186-1c7e-4db8-b53e-bfa33a1a0a8a:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/edb91186-1c7e-4db8-b53e-bfa33a1a0a8a:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/edb91186-1c7e-4db8-b53e-bfa33a1a0a8a:102.0.2.json new file mode 100644 index 0000000000000..75df52cc9af29 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/edb91186-1c7e-4db8-b53e-bfa33a1a0a8a:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Deactivate an Okta Application v102.0.2","rule_id":"edb91186-1c7e-4db8-b53e-bfa33a1a0a8a:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to deactivate an Okta application. An adversary may attempt to modify, deactivate, or delete an Okta application in order to weaken an organization's security controls or disrupt their business operations.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Consider adding exceptions to this rule to filter false positives if your organization's Okta applications are regularly deactivated and the behavior is expected."],"references":["https://help.okta.com/en/prod/Content/Topics/Apps/Apps_Apps.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring","Impact"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1489","name":"Service Stop","reference":"https://attack.mitre.org/techniques/T1489/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:application.lifecycle.deactivate\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"edb91186-1c7e-4db8-b53e-bfa33a1a0a8a:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/edf8ee23-5ea7-4123-ba19-56b41e424ae3:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/edf8ee23-5ea7-4123-ba19-56b41e424ae3:102.0.0.json new file mode 100644 index 0000000000000..b990681e48f5d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/edf8ee23-5ea7-4123-ba19-56b41e424ae3:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"ImageLoad via Windows Update Auto Update Client v102.0.0","rule_id":"edf8ee23-5ea7-4123-ba19-56b41e424ae3:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies abuse of the Windows Update Auto Update Client (wuauclt.exe) to load an arbitrary DLL. This behavior is used as a defense evasion technique to blend-in malicious activity with legitimate Windows software.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timeline_id":"e70679c2-6cde-4510-9764-4823df18f7db","timeline_title":"Comprehensive Process Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://dtm.uk/wuauclt/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.pe.original_file_name == \"wuauclt.exe\" or process.name : \"wuauclt.exe\") and\n /* necessary windows update client args to load a dll */\n process.args : \"/RunHandlerComServer\" and process.args : \"/UpdateDeploymentProvider\" and\n /* common paths writeable by a standard user where the target DLL can be placed */\n process.args : (\"C:\\\\Users\\\\*.dll\", \"C:\\\\ProgramData\\\\*.dll\", \"C:\\\\Windows\\\\Temp\\\\*.dll\", \"C:\\\\Windows\\\\Tasks\\\\*.dll\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"edf8ee23-5ea7-4123-ba19-56b41e424ae3:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/edf8ee23-5ea7-4123-ba19-56b41e424ae3:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/edf8ee23-5ea7-4123-ba19-56b41e424ae3:102.0.1.json new file mode 100644 index 0000000000000..d20d972eac19c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/edf8ee23-5ea7-4123-ba19-56b41e424ae3:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"ImageLoad via Windows Update Auto Update Client v102.0.1","rule_id":"edf8ee23-5ea7-4123-ba19-56b41e424ae3:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies abuse of the Windows Update Auto Update Client (wuauclt.exe) to load an arbitrary DLL. This behavior is used as a defense evasion technique to blend-in malicious activity with legitimate Windows software.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timeline_id":"e70679c2-6cde-4510-9764-4823df18f7db","timeline_title":"Comprehensive Process Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://dtm.uk/wuauclt/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.pe.original_file_name == \"wuauclt.exe\" or process.name : \"wuauclt.exe\") and\n /* necessary windows update client args to load a dll */\n process.args : \"/RunHandlerComServer\" and process.args : \"/UpdateDeploymentProvider\" and\n /* common paths writeable by a standard user where the target DLL can be placed */\n process.args : (\"C:\\\\Users\\\\*.dll\", \"C:\\\\ProgramData\\\\*.dll\", \"C:\\\\Windows\\\\Temp\\\\*.dll\", \"C:\\\\Windows\\\\Tasks\\\\*.dll\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"edf8ee23-5ea7-4123-ba19-56b41e424ae3:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/edf8ee23-5ea7-4123-ba19-56b41e424ae3:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/edf8ee23-5ea7-4123-ba19-56b41e424ae3:102.0.2.json new file mode 100644 index 0000000000000..650273972dfc4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/edf8ee23-5ea7-4123-ba19-56b41e424ae3:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"ImageLoad via Windows Update Auto Update Client v102.0.2","rule_id":"edf8ee23-5ea7-4123-ba19-56b41e424ae3:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies abuse of the Windows Update Auto Update Client (wuauclt.exe) to load an arbitrary DLL. This behavior is used as a defense evasion technique to blend-in malicious activity with legitimate Windows software.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timeline_id":"e70679c2-6cde-4510-9764-4823df18f7db","timeline_title":"Comprehensive Process Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://dtm.uk/wuauclt/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.pe.original_file_name == \"wuauclt.exe\" or process.name : \"wuauclt.exe\") and\n /* necessary windows update client args to load a dll */\n process.args : \"/RunHandlerComServer\" and process.args : \"/UpdateDeploymentProvider\" and\n /* common paths writeable by a standard user where the target DLL can be placed */\n process.args : (\"C:\\\\Users\\\\*.dll\", \"C:\\\\ProgramData\\\\*.dll\", \"C:\\\\Windows\\\\Temp\\\\*.dll\", \"C:\\\\Windows\\\\Tasks\\\\*.dll\")\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"edf8ee23-5ea7-4123-ba19-56b41e424ae3:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ee5300a7-7e31-4a72-a258-250abb8b3aa1:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ee5300a7-7e31-4a72-a258-250abb8b3aa1:100.0.0.json new file mode 100644 index 0000000000000..6221fb9a6e27c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ee5300a7-7e31-4a72-a258-250abb8b3aa1:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Print Spooler Child Process v100.0.0","rule_id":"ee5300a7-7e31-4a72-a258-250abb8b3aa1:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects unusual Print Spooler service (spoolsv.exe) child processes. This may indicate an attempt to exploit privilege escalation vulnerabilities related to the Printing Service on Windows.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Install or update of a legitimate printing driver. Verify the printer driver file metadata such as manufacturer and signature information."],"from":"now-9m","references":["https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34527"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"spoolsv.exe\" and\n (?process.Ext.token.integrity_level_name : \"System\" or\n ?winlog.event_data.IntegrityLevel : \"System\") and\n\n /* exclusions for FP control below */\n not process.name : (\"splwow64.exe\", \"PDFCreator.exe\", \"acrodist.exe\", \"spoolsv.exe\", \"msiexec.exe\", \"route.exe\", \"WerFault.exe\") and\n not process.command_line : \"*\\\\WINDOWS\\\\system32\\\\spool\\\\DRIVERS*\" and\n not (process.name : \"net.exe\" and process.command_line : (\"*stop*\", \"*start*\")) and\n not (process.name : (\"cmd.exe\", \"powershell.exe\") and process.command_line : (\"*.spl*\", \"*\\\\program files*\", \"*route add*\")) and\n not (process.name : \"netsh.exe\" and process.command_line : (\"*add portopening*\", \"*rule name*\")) and\n not (process.name : \"regsvr32.exe\" and process.command_line : \"*PrintConfig.dll*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.IntegrityLevel","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"ee5300a7-7e31-4a72-a258-250abb8b3aa1:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ee5300a7-7e31-4a72-a258-250abb8b3aa1:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ee5300a7-7e31-4a72-a258-250abb8b3aa1:100.0.1.json new file mode 100644 index 0000000000000..2c93353183784 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ee5300a7-7e31-4a72-a258-250abb8b3aa1:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Print Spooler Child Process v100.0.1","rule_id":"ee5300a7-7e31-4a72-a258-250abb8b3aa1:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects unusual Print Spooler service (spoolsv.exe) child processes. This may indicate an attempt to exploit privilege escalation vulnerabilities related to the Printing Service on Windows.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Install or update of a legitimate printing driver. Verify the printer driver file metadata such as manufacturer and signature information."],"from":"now-9m","references":["https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34527"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"spoolsv.exe\" and\n (?process.Ext.token.integrity_level_name : \"System\" or\n ?winlog.event_data.IntegrityLevel : \"System\") and\n\n /* exclusions for FP control below */\n not process.name : (\"splwow64.exe\", \"PDFCreator.exe\", \"acrodist.exe\", \"spoolsv.exe\", \"msiexec.exe\", \"route.exe\", \"WerFault.exe\") and\n not process.command_line : \"*\\\\WINDOWS\\\\system32\\\\spool\\\\DRIVERS*\" and\n not (process.name : \"net.exe\" and process.command_line : (\"*stop*\", \"*start*\")) and\n not (process.name : (\"cmd.exe\", \"powershell.exe\") and process.command_line : (\"*.spl*\", \"*\\\\program files*\", \"*route add*\")) and\n not (process.name : \"netsh.exe\" and process.command_line : (\"*add portopening*\", \"*rule name*\")) and\n not (process.name : \"regsvr32.exe\" and process.command_line : \"*PrintConfig.dll*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.IntegrityLevel","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"ee5300a7-7e31-4a72-a258-250abb8b3aa1:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ee5300a7-7e31-4a72-a258-250abb8b3aa1:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ee5300a7-7e31-4a72-a258-250abb8b3aa1:100.0.2.json new file mode 100644 index 0000000000000..ea0a7178f0218 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ee5300a7-7e31-4a72-a258-250abb8b3aa1:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Print Spooler Child Process v100.0.2","rule_id":"ee5300a7-7e31-4a72-a258-250abb8b3aa1:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects unusual Print Spooler service (spoolsv.exe) child processes. This may indicate an attempt to exploit privilege escalation vulnerabilities related to the Printing Service on Windows.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Install or update of a legitimate printing driver. Verify the printer driver file metadata such as manufacturer and signature information."],"from":"now-9m","references":["https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34527"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"spoolsv.exe\" and\n (?process.Ext.token.integrity_level_name : \"System\" or\n ?winlog.event_data.IntegrityLevel : \"System\") and\n\n /* exclusions for FP control below */\n not process.name : (\"splwow64.exe\", \"PDFCreator.exe\", \"acrodist.exe\", \"spoolsv.exe\", \"msiexec.exe\", \"route.exe\", \"WerFault.exe\") and\n not process.command_line : \"*\\\\WINDOWS\\\\system32\\\\spool\\\\DRIVERS*\" and\n not (process.name : \"net.exe\" and process.command_line : (\"*stop*\", \"*start*\")) and\n not (process.name : (\"cmd.exe\", \"powershell.exe\") and process.command_line : (\"*.spl*\", \"*\\\\program files*\", \"*route add*\")) and\n not (process.name : \"netsh.exe\" and process.command_line : (\"*add portopening*\", \"*rule name*\")) and\n not (process.name : \"regsvr32.exe\" and process.command_line : \"*PrintConfig.dll*\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.IntegrityLevel","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"ee5300a7-7e31-4a72-a258-250abb8b3aa1:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/eea82229-b002-470e-a9e1-00be38b14d32:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/eea82229-b002-470e-a9e1-00be38b14d32:100.0.0.json new file mode 100644 index 0000000000000..4376484402419 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/eea82229-b002-470e-a9e1-00be38b14d32:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Privacy Control Bypass via TCCDB Modification v100.0.0","rule_id":"eea82229-b002-470e-a9e1-00be38b14d32:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of sqlite3 to directly modify the Transparency, Consent, and Control (TCC) SQLite database. This may indicate an attempt to bypass macOS privacy controls, including access to sensitive resources like the system camera, microphone, address book, and calendar.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://applehelpwriter.com/2016/08/29/discovering-how-dropbox-hacks-your-mac/","https://github.com/bp88/JSS-Scripts/blob/master/TCC.db%20Modifier.sh","https://medium.com/@mattshockl/cve-2020-9934-bypassing-the-os-x-transparency-consent-and-control-tcc-framework-for-4e14806f1de8"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.name : \"sqlite*\" and\n process.args : \"/*/Application Support/com.apple.TCC/TCC.db\" and\n not process.parent.executable : \"/Library/Bitdefender/AVP/product/bin/*\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"eea82229-b002-470e-a9e1-00be38b14d32:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/eea82229-b002-470e-a9e1-00be38b14d32:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/eea82229-b002-470e-a9e1-00be38b14d32:100.0.1.json new file mode 100644 index 0000000000000..7d51401d4b02b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/eea82229-b002-470e-a9e1-00be38b14d32:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Privacy Control Bypass via TCCDB Modification v100.0.1","rule_id":"eea82229-b002-470e-a9e1-00be38b14d32:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of sqlite3 to directly modify the Transparency, Consent, and Control (TCC) SQLite database. This may indicate an attempt to bypass macOS privacy controls, including access to sensitive resources like the system camera, microphone, address book, and calendar.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://applehelpwriter.com/2016/08/29/discovering-how-dropbox-hacks-your-mac/","https://github.com/bp88/JSS-Scripts/blob/master/TCC.db%20Modifier.sh","https://medium.com/@mattshockl/cve-2020-9934-bypassing-the-os-x-transparency-consent-and-control-tcc-framework-for-4e14806f1de8"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.name : \"sqlite*\" and\n process.args : \"/*/Application Support/com.apple.TCC/TCC.db\" and\n not process.parent.executable : \"/Library/Bitdefender/AVP/product/bin/*\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"eea82229-b002-470e-a9e1-00be38b14d32:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/eea82229-b002-470e-a9e1-00be38b14d32:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/eea82229-b002-470e-a9e1-00be38b14d32:100.0.2.json new file mode 100644 index 0000000000000..d9585c8ed0135 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/eea82229-b002-470e-a9e1-00be38b14d32:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Privacy Control Bypass via TCCDB Modification v100.0.2","rule_id":"eea82229-b002-470e-a9e1-00be38b14d32:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the use of sqlite3 to directly modify the Transparency, Consent, and Control (TCC) SQLite database. This may indicate an attempt to bypass macOS privacy controls, including access to sensitive resources like the system camera, microphone, address book, and calendar.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://applehelpwriter.com/2016/08/29/discovering-how-dropbox-hacks-your-mac/","https://github.com/bp88/JSS-Scripts/blob/master/TCC.db%20Modifier.sh","https://medium.com/@mattshockl/cve-2020-9934-bypassing-the-os-x-transparency-consent-and-control-tcc-framework-for-4e14806f1de8"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.name : \"sqlite*\" and\n process.args : \"/*/Application Support/com.apple.TCC/TCC.db\" and\n not process.parent.executable : \"/Library/Bitdefender/AVP/product/bin/*\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"eea82229-b002-470e-a9e1-00be38b14d32:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ef04a476-07ec-48fc-8f3d-5e1742de76d3:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ef04a476-07ec-48fc-8f3d-5e1742de76d3:100.0.0.json new file mode 100644 index 0000000000000..83266b616fe1b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ef04a476-07ec-48fc-8f3d-5e1742de76d3:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"BPF filter applied using TC v100.0.0","rule_id":"ef04a476-07ec-48fc-8f3d-5e1742de76d3:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when the tc (transmission control) binary is utilized to set a BPF (Berkeley Packet Filter) on a network interface. Tc is used to configure Traffic Control in the Linux kernel. It can shape, schedule, police and drop traffic. A threat actor can utilize tc to set a bpf filter on an interface for the purpose of manipulating the incoming traffic. This technique is not at all common and should indicate abnormal, suspicious or malicious activity.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/h3xduck/TripleCross/blob/master/src/helpers/deployer.sh","https://man7.org/linux/man-pages/man8/tc.8.html"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","TripleCross"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.004","name":"Unix Shell","reference":"https://attack.mitre.org/techniques/T1059/004/"}]}]}],"language":"eql","query":"process where event.type != \"end\" and process.executable : \"/usr/sbin/tc\" and process.args : \"filter\" and process.args : \"add\" and process.args : \"bpf\" and not process.parent.executable: \"/usr/sbin/libvirtd\"\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},"id":"ef04a476-07ec-48fc-8f3d-5e1742de76d3:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ef04a476-07ec-48fc-8f3d-5e1742de76d3:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ef04a476-07ec-48fc-8f3d-5e1742de76d3:100.0.1.json new file mode 100644 index 0000000000000..519ca364427aa --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ef04a476-07ec-48fc-8f3d-5e1742de76d3:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"BPF filter applied using TC v100.0.1","rule_id":"ef04a476-07ec-48fc-8f3d-5e1742de76d3:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when the tc (transmission control) binary is utilized to set a BPF (Berkeley Packet Filter) on a network interface. Tc is used to configure Traffic Control in the Linux kernel. It can shape, schedule, police and drop traffic. A threat actor can utilize tc to set a bpf filter on an interface for the purpose of manipulating the incoming traffic. This technique is not at all common and should indicate abnormal, suspicious or malicious activity.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/h3xduck/TripleCross/blob/master/src/helpers/deployer.sh","https://man7.org/linux/man-pages/man8/tc.8.html"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","TripleCross"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.004","name":"Unix Shell","reference":"https://attack.mitre.org/techniques/T1059/004/"}]}]}],"language":"eql","query":"process where event.type != \"end\" and process.executable : \"/usr/sbin/tc\" and process.args : \"filter\" and process.args : \"add\" and process.args : \"bpf\" and not process.parent.executable: \"/usr/sbin/libvirtd\"\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},"id":"ef04a476-07ec-48fc-8f3d-5e1742de76d3:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ef04a476-07ec-48fc-8f3d-5e1742de76d3:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ef04a476-07ec-48fc-8f3d-5e1742de76d3:100.0.2.json new file mode 100644 index 0000000000000..c82da2f93c8dd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ef04a476-07ec-48fc-8f3d-5e1742de76d3:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"BPF filter applied using TC v100.0.2","rule_id":"ef04a476-07ec-48fc-8f3d-5e1742de76d3:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when the tc (transmission control) binary is utilized to set a BPF (Berkeley Packet Filter) on a network interface. Tc is used to configure Traffic Control in the Linux kernel. It can shape, schedule, police and drop traffic. A threat actor can utilize tc to set a bpf filter on an interface for the purpose of manipulating the incoming traffic. This technique is not at all common and should indicate abnormal, suspicious or malicious activity.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/h3xduck/TripleCross/blob/master/src/helpers/deployer.sh","https://man7.org/linux/man-pages/man8/tc.8.html"],"tags":["Elastic","Host","Linux","Threat Detection","Execution","TripleCross"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.004","name":"Unix Shell","reference":"https://attack.mitre.org/techniques/T1059/004/"}]}]}],"language":"eql","query":"process where event.type != \"end\" and process.executable : \"/usr/sbin/tc\" and process.args : \"filter\" and process.args : \"add\" and process.args : \"bpf\" and not process.parent.executable: \"/usr/sbin/libvirtd\"\n","type":"eql","index":["logs-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"}]},"id":"ef04a476-07ec-48fc-8f3d-5e1742de76d3:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ef862985-3f13-4262-a686-5f357bbb9bc2:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ef862985-3f13-4262-a686-5f357bbb9bc2:102.0.0.json new file mode 100644 index 0000000000000..1ddd11aea6f86 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ef862985-3f13-4262-a686-5f357bbb9bc2:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Whoami Process Activity v102.0.0","rule_id":"ef862985-3f13-4262-a686-5f357bbb9bc2:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious use of whoami.exe which displays user, group, and privileges information for the user who is currently logged on to the local system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Whoami Process Activity\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `whoami` utility. Attackers commonly use this utility to measure their current\nprivileges, discover the current user, determine if a privilege escalation was successful, etc.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Related rules\n\n- Account Discovery Command via SYSTEM Account - 2856446a-34e6-435b-9fb5-f8f040bfa7ed\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some normal use of this program, at varying levels of frequency, may originate from scripts, automation tools and frameworks. Usage by non-engineers and ordinary users is unusual."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1033","name":"System Owner/User Discovery","reference":"https://attack.mitre.org/techniques/T1033/"}]}],"language":"eql","query":"process where event.type == \"start\" and process.name : \"whoami.exe\" and\n(\n\n (/* scoped for whoami execution under system privileges */\n (user.domain : (\"NT AUTHORITY\", \"NT-AUTORITÄT\", \"AUTORITE NT\", \"IIS APPPOOL\") or user.id : (\"S-1-5-18\", \"S-1-5-19\", \"S-1-5-20\")) and\n\n not (process.parent.name : \"cmd.exe\" and\n process.parent.args : (\"chcp 437>nul 2>&1 & C:\\\\WINDOWS\\\\System32\\\\whoami.exe /groups\",\n \"chcp 437>nul 2>&1 & %systemroot%\\\\system32\\\\whoami /user\",\n \"C:\\\\WINDOWS\\\\System32\\\\whoami.exe /groups\",\n \"*WINDOWS\\\\system32\\\\config\\\\systemprofile*\")) and\n not (process.parent.executable : \"C:\\\\Windows\\\\system32\\\\inetsrv\\\\appcmd.exe\" and process.parent.args : \"LIST\") and\n not process.parent.executable : (\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\MonitoringHost.exe\",\n \"C:\\\\Program Files\\\\Cohesity\\\\cohesity_windows_agent_service.exe\")) or\n\n process.parent.name : (\"wsmprovhost.exe\", \"w3wp.exe\", \"wmiprvse.exe\", \"rundll32.exe\", \"regsvr32.exe\")\n\n)\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","logs-system.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"ef862985-3f13-4262-a686-5f357bbb9bc2:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ef862985-3f13-4262-a686-5f357bbb9bc2:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ef862985-3f13-4262-a686-5f357bbb9bc2:102.0.1.json new file mode 100644 index 0000000000000..f1ca2fa852db2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ef862985-3f13-4262-a686-5f357bbb9bc2:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Whoami Process Activity v102.0.1","rule_id":"ef862985-3f13-4262-a686-5f357bbb9bc2:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious use of whoami.exe which displays user, group, and privileges information for the user who is currently logged on to the local system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Whoami Process Activity\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `whoami` utility. Attackers commonly use this utility to measure their current\nprivileges, discover the current user, determine if a privilege escalation was successful, etc.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Related rules\n\n- Account Discovery Command via SYSTEM Account - 2856446a-34e6-435b-9fb5-f8f040bfa7ed\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some normal use of this program, at varying levels of frequency, may originate from scripts, automation tools and frameworks. Usage by non-engineers and ordinary users is unusual."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1033","name":"System Owner/User Discovery","reference":"https://attack.mitre.org/techniques/T1033/"}]}],"language":"eql","query":"process where event.type == \"start\" and process.name : \"whoami.exe\" and\n(\n\n (/* scoped for whoami execution under system privileges */\n (user.domain : (\"NT AUTHORITY\", \"NT-AUTORITÄT\", \"AUTORITE NT\", \"IIS APPPOOL\") or user.id : (\"S-1-5-18\", \"S-1-5-19\", \"S-1-5-20\")) and\n\n not (process.parent.name : \"cmd.exe\" and\n process.parent.args : (\"chcp 437>nul 2>&1 & C:\\\\WINDOWS\\\\System32\\\\whoami.exe /groups\",\n \"chcp 437>nul 2>&1 & %systemroot%\\\\system32\\\\whoami /user\",\n \"C:\\\\WINDOWS\\\\System32\\\\whoami.exe /groups\",\n \"*WINDOWS\\\\system32\\\\config\\\\systemprofile*\")) and\n not (process.parent.executable : \"C:\\\\Windows\\\\system32\\\\inetsrv\\\\appcmd.exe\" and process.parent.args : \"LIST\") and\n not process.parent.executable : (\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\MonitoringHost.exe\",\n \"C:\\\\Program Files\\\\Cohesity\\\\cohesity_windows_agent_service.exe\")) or\n\n process.parent.name : (\"wsmprovhost.exe\", \"w3wp.exe\", \"wmiprvse.exe\", \"rundll32.exe\", \"regsvr32.exe\")\n\n)\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","logs-system.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"ef862985-3f13-4262-a686-5f357bbb9bc2:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ef862985-3f13-4262-a686-5f357bbb9bc2:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ef862985-3f13-4262-a686-5f357bbb9bc2:102.0.2.json new file mode 100644 index 0000000000000..75faa150c9ee2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ef862985-3f13-4262-a686-5f357bbb9bc2:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Whoami Process Activity v102.0.2","rule_id":"ef862985-3f13-4262-a686-5f357bbb9bc2:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious use of whoami.exe which displays user, group, and privileges information for the user who is currently logged on to the local system.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Whoami Process Activity\n\nAfter successfully compromising an environment, attackers may try to gain situational awareness to plan their next steps.\nThis can happen by running commands to enumerate network resources, users, connections, files, and installed security\nsoftware.\n\nThis rule looks for the execution of the `whoami` utility. Attackers commonly use this utility to measure their current\nprivileges, discover the current user, determine if a privilege escalation was successful, etc.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal account behavior, such as command executions, file creations or modifications, and network\nconnections.\n\n### False positive analysis\n\n- Discovery activities are not inherently malicious if they occur in isolation. As long as the analyst did not identify\nsuspicious activity related to the user or host, such alerts can be dismissed.\n\n### Related rules\n\n- Account Discovery Command via SYSTEM Account - 2856446a-34e6-435b-9fb5-f8f040bfa7ed\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Some normal use of this program, at varying levels of frequency, may originate from scripts, automation tools and frameworks. Usage by non-engineers and ordinary users is unusual."],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Discovery","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1033","name":"System Owner/User Discovery","reference":"https://attack.mitre.org/techniques/T1033/"}]}],"language":"eql","query":"process where event.type == \"start\" and process.name : \"whoami.exe\" and\n(\n\n (/* scoped for whoami execution under system privileges */\n (user.domain : (\"NT AUTHORITY\", \"NT-AUTORITÄT\", \"AUTORITE NT\", \"IIS APPPOOL\") or user.id : (\"S-1-5-18\", \"S-1-5-19\", \"S-1-5-20\")) and\n\n not (process.parent.name : \"cmd.exe\" and\n process.parent.args : (\"chcp 437>nul 2>&1 & C:\\\\WINDOWS\\\\System32\\\\whoami.exe /groups\",\n \"chcp 437>nul 2>&1 & %systemroot%\\\\system32\\\\whoami /user\",\n \"C:\\\\WINDOWS\\\\System32\\\\whoami.exe /groups\",\n \"*WINDOWS\\\\system32\\\\config\\\\systemprofile*\")) and\n not (process.parent.executable : \"C:\\\\Windows\\\\system32\\\\inetsrv\\\\appcmd.exe\" and process.parent.args : \"LIST\") and\n not process.parent.executable : (\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\MonitoringHost.exe\",\n \"C:\\\\Program Files\\\\Cohesity\\\\cohesity_windows_agent_service.exe\")) or\n\n process.parent.name : (\"wsmprovhost.exe\", \"w3wp.exe\", \"wmiprvse.exe\", \"rundll32.exe\", \"regsvr32.exe\")\n\n)\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","logs-system.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"ef862985-3f13-4262-a686-5f357bbb9bc2:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f036953a-4615-4707-a1ca-dc53bf69dcd5:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f036953a-4615-4707-a1ca-dc53bf69dcd5:101.0.0.json new file mode 100644 index 0000000000000..cc4d4e2890b0c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f036953a-4615-4707-a1ca-dc53bf69dcd5:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Child Processes of RunDLL32 v101.0.0","rule_id":"f036953a-4615-4707-a1ca-dc53bf69dcd5:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies child processes of unusual instances of RunDLL32 where the command line parameters were suspicious. Misuse of RunDLL32 could indicate malicious activity.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-60m","interval":"30m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.011","name":"Rundll32","reference":"https://attack.mitre.org/techniques/T1218/011/"}]}]}],"language":"eql","query":"sequence with maxspan=1h\n [process where event.type == \"start\" and\n (process.name : \"rundll32.exe\" or process.pe.original_file_name == \"RUNDLL32.EXE\") and\n process.args_count == 1\n ] by process.entity_id\n [process where event.type == \"start\" and process.parent.name : \"rundll32.exe\"\n ] by process.parent.entity_id\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}]},"id":"f036953a-4615-4707-a1ca-dc53bf69dcd5:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f036953a-4615-4707-a1ca-dc53bf69dcd5:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f036953a-4615-4707-a1ca-dc53bf69dcd5:101.0.1.json new file mode 100644 index 0000000000000..83b92efd2dd64 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f036953a-4615-4707-a1ca-dc53bf69dcd5:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Child Processes of RunDLL32 v101.0.1","rule_id":"f036953a-4615-4707-a1ca-dc53bf69dcd5:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies child processes of unusual instances of RunDLL32 where the command line parameters were suspicious. Misuse of RunDLL32 could indicate malicious activity.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-60m","interval":"30m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.011","name":"Rundll32","reference":"https://attack.mitre.org/techniques/T1218/011/"}]}]}],"language":"eql","query":"sequence with maxspan=1h\n [process where event.type == \"start\" and\n (process.name : \"rundll32.exe\" or process.pe.original_file_name == \"RUNDLL32.EXE\") and\n process.args_count == 1\n ] by process.entity_id\n [process where event.type == \"start\" and process.parent.name : \"rundll32.exe\"\n ] by process.parent.entity_id\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}]},"id":"f036953a-4615-4707-a1ca-dc53bf69dcd5:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f036953a-4615-4707-a1ca-dc53bf69dcd5:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f036953a-4615-4707-a1ca-dc53bf69dcd5:101.0.2.json new file mode 100644 index 0000000000000..b77aa495e1a4a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f036953a-4615-4707-a1ca-dc53bf69dcd5:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Child Processes of RunDLL32 v101.0.2","rule_id":"f036953a-4615-4707-a1ca-dc53bf69dcd5:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies child processes of unusual instances of RunDLL32 where the command line parameters were suspicious. Misuse of RunDLL32 could indicate malicious activity.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"from":"now-60m","interval":"30m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.011","name":"Rundll32","reference":"https://attack.mitre.org/techniques/T1218/011/"}]}]}],"language":"eql","query":"sequence with maxspan=1h\n [process where event.type == \"start\" and\n (process.name : \"rundll32.exe\" or process.pe.original_file_name == \"RUNDLL32.EXE\") and\n process.args_count == 1\n ] by process.entity_id\n [process where event.type == \"start\" and process.parent.name : \"rundll32.exe\"\n ] by process.parent.entity_id\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.entity_id","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}]},"id":"f036953a-4615-4707-a1ca-dc53bf69dcd5:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f0493cb4-9b15-43a9-9359-68c23a7f2cf3:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f0493cb4-9b15-43a9-9359-68c23a7f2cf3:100.0.0.json new file mode 100644 index 0000000000000..4a2bfde656685 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f0493cb4-9b15-43a9-9359-68c23a7f2cf3:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious HTML File Creation v100.0.0","rule_id":"f0493cb4-9b15-43a9-9359-68c23a7f2cf3:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a browser process to open an HTML file with high entropy and size. Adversaries may smuggle data and files past content filters by hiding malicious payloads inside of seemingly benign HTML files.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"},{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1027","name":"Obfuscated Files or Information","reference":"https://attack.mitre.org/techniques/T1027/","subtechnique":[{"id":"T1027.006","name":"HTML Smuggling","reference":"https://attack.mitre.org/techniques/T1027/006/"}]}]}],"language":"eql","query":"sequence by user.id with maxspan=5m\n [file where event.action in (\"creation\", \"rename\") and\n file.extension : (\"htm\", \"html\") and\n file.path : (\"?:\\\\Users\\\\*\\\\Downloads\\\\*\",\n \"?:\\\\Users\\\\*\\\\Content.Outlook\\\\*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\Temp?_*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\7z*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\Rar$*\") and\n ((file.Ext.entropy >= 5 and file.size >= 150000) or file.size >= 1000000)]\n [process where event.action == \"start\" and\n (\n (process.name in (\"chrome.exe\", \"msedge.exe\", \"brave.exe\", \"whale.exe\", \"browser.exe\", \"dragon.exe\", \"vivaldi.exe\", \"opera.exe\")\n and process.args == \"--single-argument\") or\n (process.name == \"iexplore.exe\" and process.args_count == 2) or\n (process.name in (\"firefox.exe\", \"waterfox.exe\") and process.args == \"-url\")\n )\n and process.args : (\"?:\\\\Users\\\\*\\\\Downloads\\\\*.htm*\",\n \"?:\\\\Users\\\\*\\\\Content.Outlook\\\\*.htm*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\Temp?_*.htm*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\7z*.htm*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\Rar$*.htm*\")]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":false,"name":"file.Ext.entropy","type":"unknown"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"file.size","type":"long"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f0493cb4-9b15-43a9-9359-68c23a7f2cf3:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f0493cb4-9b15-43a9-9359-68c23a7f2cf3:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f0493cb4-9b15-43a9-9359-68c23a7f2cf3:100.0.1.json new file mode 100644 index 0000000000000..7861364ff8621 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f0493cb4-9b15-43a9-9359-68c23a7f2cf3:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious HTML File Creation v100.0.1","rule_id":"f0493cb4-9b15-43a9-9359-68c23a7f2cf3:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a browser process to open an HTML file with high entropy and size. Adversaries may smuggle data and files past content filters by hiding malicious payloads inside of seemingly benign HTML files.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"},{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1027","name":"Obfuscated Files or Information","reference":"https://attack.mitre.org/techniques/T1027/","subtechnique":[{"id":"T1027.006","name":"HTML Smuggling","reference":"https://attack.mitre.org/techniques/T1027/006/"}]}]}],"language":"eql","query":"sequence by user.id with maxspan=5m\n [file where event.action in (\"creation\", \"rename\") and\n file.extension : (\"htm\", \"html\") and\n file.path : (\"?:\\\\Users\\\\*\\\\Downloads\\\\*\",\n \"?:\\\\Users\\\\*\\\\Content.Outlook\\\\*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\Temp?_*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\7z*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\Rar$*\") and\n ((file.Ext.entropy >= 5 and file.size >= 150000) or file.size >= 1000000)]\n [process where event.action == \"start\" and\n (\n (process.name in (\"chrome.exe\", \"msedge.exe\", \"brave.exe\", \"whale.exe\", \"browser.exe\", \"dragon.exe\", \"vivaldi.exe\", \"opera.exe\")\n and process.args == \"--single-argument\") or\n (process.name == \"iexplore.exe\" and process.args_count == 2) or\n (process.name in (\"firefox.exe\", \"waterfox.exe\") and process.args == \"-url\")\n )\n and process.args : (\"?:\\\\Users\\\\*\\\\Downloads\\\\*.htm*\",\n \"?:\\\\Users\\\\*\\\\Content.Outlook\\\\*.htm*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\Temp?_*.htm*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\7z*.htm*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\Rar$*.htm*\")]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":false,"name":"file.Ext.entropy","type":"unknown"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"file.size","type":"long"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f0493cb4-9b15-43a9-9359-68c23a7f2cf3:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f0493cb4-9b15-43a9-9359-68c23a7f2cf3:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f0493cb4-9b15-43a9-9359-68c23a7f2cf3:100.0.2.json new file mode 100644 index 0000000000000..94d3de45a5e3e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f0493cb4-9b15-43a9-9359-68c23a7f2cf3:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious HTML File Creation v100.0.2","rule_id":"f0493cb4-9b15-43a9-9359-68c23a7f2cf3:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of a browser process to open an HTML file with high entropy and size. Adversaries may smuggle data and files past content filters by hiding malicious payloads inside of seemingly benign HTML files.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"},{"id":"T1566.002","name":"Spearphishing Link","reference":"https://attack.mitre.org/techniques/T1566/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1027","name":"Obfuscated Files or Information","reference":"https://attack.mitre.org/techniques/T1027/","subtechnique":[{"id":"T1027.006","name":"HTML Smuggling","reference":"https://attack.mitre.org/techniques/T1027/006/"}]}]}],"language":"eql","query":"sequence by user.id with maxspan=5m\n [file where event.action in (\"creation\", \"rename\") and\n file.extension : (\"htm\", \"html\") and\n file.path : (\"?:\\\\Users\\\\*\\\\Downloads\\\\*\",\n \"?:\\\\Users\\\\*\\\\Content.Outlook\\\\*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\Temp?_*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\7z*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\Rar$*\") and\n ((file.Ext.entropy >= 5 and file.size >= 150000) or file.size >= 1000000)]\n [process where event.action == \"start\" and\n (\n (process.name in (\"chrome.exe\", \"msedge.exe\", \"brave.exe\", \"whale.exe\", \"browser.exe\", \"dragon.exe\", \"vivaldi.exe\", \"opera.exe\")\n and process.args == \"--single-argument\") or\n (process.name == \"iexplore.exe\" and process.args_count == 2) or\n (process.name in (\"firefox.exe\", \"waterfox.exe\") and process.args == \"-url\")\n )\n and process.args : (\"?:\\\\Users\\\\*\\\\Downloads\\\\*.htm*\",\n \"?:\\\\Users\\\\*\\\\Content.Outlook\\\\*.htm*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\Temp?_*.htm*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\7z*.htm*\",\n \"?:\\\\Users\\\\*\\\\AppData\\\\Local\\\\Temp\\\\Rar$*.htm*\")]\n","type":"eql","index":["logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":false,"name":"file.Ext.entropy","type":"unknown"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"file.size","type":"long"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.id","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f0493cb4-9b15-43a9-9359-68c23a7f2cf3:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f06414a6-f2a4-466d-8eba-10f85e8abf71:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f06414a6-f2a4-466d-8eba-10f85e8abf71:102.0.0.json new file mode 100644 index 0000000000000..1555cdc1e400a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f06414a6-f2a4-466d-8eba-10f85e8abf71:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Administrator Role Assigned to an Okta User v102.0.0","rule_id":"f06414a6-f2a4-466d-8eba-10f85e8abf71:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an administrator role is assigned to an Okta user. An adversary may attempt to assign an administrator role to an Okta user in order to assign additional permissions to a user account and maintain access to their target's environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrator roles may be assigned to Okta users by a Super Admin user. Verify that the behavior was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/administrators-admin-comparison.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Okta","SecOps","Monitoring","Continuous Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.account.privilege.grant\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"f06414a6-f2a4-466d-8eba-10f85e8abf71:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f06414a6-f2a4-466d-8eba-10f85e8abf71:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f06414a6-f2a4-466d-8eba-10f85e8abf71:102.0.1.json new file mode 100644 index 0000000000000..159f376e091aa --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f06414a6-f2a4-466d-8eba-10f85e8abf71:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Administrator Role Assigned to an Okta User v102.0.1","rule_id":"f06414a6-f2a4-466d-8eba-10f85e8abf71:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an administrator role is assigned to an Okta user. An adversary may attempt to assign an administrator role to an Okta user in order to assign additional permissions to a user account and maintain access to their target's environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrator roles may be assigned to Okta users by a Super Admin user. Verify that the behavior was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/administrators-admin-comparison.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Okta","SecOps","Monitoring","Continuous Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.account.privilege.grant\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"f06414a6-f2a4-466d-8eba-10f85e8abf71:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f06414a6-f2a4-466d-8eba-10f85e8abf71:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f06414a6-f2a4-466d-8eba-10f85e8abf71:102.0.2.json new file mode 100644 index 0000000000000..2dc1d875f8139 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f06414a6-f2a4-466d-8eba-10f85e8abf71:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Administrator Role Assigned to an Okta User v102.0.2","rule_id":"f06414a6-f2a4-466d-8eba-10f85e8abf71:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when an administrator role is assigned to an Okta user. An adversary may attempt to assign an administrator role to an Okta user in order to assign additional permissions to a user account and maintain access to their target's environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Administrator roles may be assigned to Okta users by a Super Admin user. Verify that the behavior was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://help.okta.com/en/prod/Content/Topics/Security/administrators-admin-comparison.htm","https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Okta","SecOps","Monitoring","Continuous Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1098","name":"Account Manipulation","reference":"https://attack.mitre.org/techniques/T1098/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.account.privilege.grant\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"f06414a6-f2a4-466d-8eba-10f85e8abf71:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f0b48bbc-549e-4bcf-8ee0-a7a72586c6a7:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f0b48bbc-549e-4bcf-8ee0-a7a72586c6a7:100.0.0.json new file mode 100644 index 0000000000000..c4bf5b62b6815 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f0b48bbc-549e-4bcf-8ee0-a7a72586c6a7:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Remove File Quarantine Attribute v100.0.0","rule_id":"f0b48bbc-549e-4bcf-8ee0-a7a72586c6a7:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a potential Gatekeeper bypass. In macOS, when applications or programs are downloaded from the internet, there is a quarantine flag set on the file. This attribute is read by Apple's Gatekeeper defense program at execution time. An adversary may disable this attribute to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.trendmicro.com/en_us/research/20/k/new-macos-backdoor-connected-to-oceanlotus-surfaces.html","https://ss64.com/osx/xattr.html"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.name : \"xattr\" and\n (\n (process.args : \"com.apple.quarantine\" and process.args : (\"-d\", \"-w\")) or\n (process.args : \"-c\") or\n (process.command_line : (\"/bin/bash -c xattr -c *\", \"/bin/zsh -c xattr -c *\", \"/bin/sh -c xattr -c *\"))\n ) and not process.args_count > 12\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f0b48bbc-549e-4bcf-8ee0-a7a72586c6a7:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f0b48bbc-549e-4bcf-8ee0-a7a72586c6a7:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f0b48bbc-549e-4bcf-8ee0-a7a72586c6a7:100.0.1.json new file mode 100644 index 0000000000000..5931d1e634242 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f0b48bbc-549e-4bcf-8ee0-a7a72586c6a7:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Remove File Quarantine Attribute v100.0.1","rule_id":"f0b48bbc-549e-4bcf-8ee0-a7a72586c6a7:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a potential Gatekeeper bypass. In macOS, when applications or programs are downloaded from the internet, there is a quarantine flag set on the file. This attribute is read by Apple's Gatekeeper defense program at execution time. An adversary may disable this attribute to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.trendmicro.com/en_us/research/20/k/new-macos-backdoor-connected-to-oceanlotus-surfaces.html","https://ss64.com/osx/xattr.html"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.name : \"xattr\" and\n (\n (process.args : \"com.apple.quarantine\" and process.args : (\"-d\", \"-w\")) or\n (process.args : \"-c\") or\n (process.command_line : (\"/bin/bash -c xattr -c *\", \"/bin/zsh -c xattr -c *\", \"/bin/sh -c xattr -c *\"))\n ) and not process.args_count > 12\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f0b48bbc-549e-4bcf-8ee0-a7a72586c6a7:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f0b48bbc-549e-4bcf-8ee0-a7a72586c6a7:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f0b48bbc-549e-4bcf-8ee0-a7a72586c6a7:100.0.2.json new file mode 100644 index 0000000000000..4102519e9df47 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f0b48bbc-549e-4bcf-8ee0-a7a72586c6a7:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Attempt to Remove File Quarantine Attribute v100.0.2","rule_id":"f0b48bbc-549e-4bcf-8ee0-a7a72586c6a7:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a potential Gatekeeper bypass. In macOS, when applications or programs are downloaded from the internet, there is a quarantine flag set on the file. This attribute is read by Apple's Gatekeeper defense program at execution time. An adversary may disable this attribute to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.trendmicro.com/en_us/research/20/k/new-macos-backdoor-connected-to-oceanlotus-surfaces.html","https://ss64.com/osx/xattr.html"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and\n process.name : \"xattr\" and\n (\n (process.args : \"com.apple.quarantine\" and process.args : (\"-d\", \"-w\")) or\n (process.args : \"-c\") or\n (process.command_line : (\"/bin/bash -c xattr -c *\", \"/bin/zsh -c xattr -c *\", \"/bin/sh -c xattr -c *\"))\n ) and not process.args_count > 12\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.args_count","type":"long"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f0b48bbc-549e-4bcf-8ee0-a7a72586c6a7:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f0bc081a-2346-4744-a6a4-81514817e888:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f0bc081a-2346-4744-a6a4-81514817e888:101.0.0.json new file mode 100644 index 0000000000000..3d6afe371d6c8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f0bc081a-2346-4744-a6a4-81514817e888:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Alert Suppression Rule Created or Modified v101.0.0","rule_id":"f0bc081a-2346-4744-a6a4-81514817e888:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of suppression rules in Azure. Suppression rules are a mechanism used to suppress alerts previously identified as false positives or too noisy to be in production. This mechanism can be abused or mistakenly configured, resulting in defense evasions and loss of security visibility.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Suppression Rules can be created legitimately by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Suppression Rules created by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations","https://docs.microsoft.com/en-us/rest/api/securitycenter/alerts-suppression-rules/update"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.SECURITY/ALERTSSUPPRESSIONRULES/WRITE\" and\nevent.outcome: \"success\"\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"f0bc081a-2346-4744-a6a4-81514817e888:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f0bc081a-2346-4744-a6a4-81514817e888:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f0bc081a-2346-4744-a6a4-81514817e888:101.0.1.json new file mode 100644 index 0000000000000..aafdfa259430d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f0bc081a-2346-4744-a6a4-81514817e888:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Alert Suppression Rule Created or Modified v101.0.1","rule_id":"f0bc081a-2346-4744-a6a4-81514817e888:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of suppression rules in Azure. Suppression rules are a mechanism used to suppress alerts previously identified as false positives or too noisy to be in production. This mechanism can be abused or mistakenly configured, resulting in defense evasions and loss of security visibility.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Suppression Rules can be created legitimately by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Suppression Rules created by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations","https://docs.microsoft.com/en-us/rest/api/securitycenter/alerts-suppression-rules/update"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.SECURITY/ALERTSSUPPRESSIONRULES/WRITE\" and\nevent.outcome: \"success\"\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"f0bc081a-2346-4744-a6a4-81514817e888:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f0bc081a-2346-4744-a6a4-81514817e888:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f0bc081a-2346-4744-a6a4-81514817e888:101.0.2.json new file mode 100644 index 0000000000000..e29fa7017d139 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f0bc081a-2346-4744-a6a4-81514817e888:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Alert Suppression Rule Created or Modified v101.0.2","rule_id":"f0bc081a-2346-4744-a6a4-81514817e888:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of suppression rules in Azure. Suppression rules are a mechanism used to suppress alerts previously identified as false positives or too noisy to be in production. This mechanism can be abused or mistakenly configured, resulting in defense evasions and loss of security visibility.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Suppression Rules can be created legitimately by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Suppression Rules created by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","references":["https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations","https://docs.microsoft.com/en-us/rest/api/securitycenter/alerts-suppression-rules/update"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.activitylogs and azure.activitylogs.operation_name:\"MICROSOFT.SECURITY/ALERTSSUPPRESSIONRULES/WRITE\" and\nevent.outcome: \"success\"\n","related_integrations":[{"integration":"activitylogs","package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.activitylogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"f0bc081a-2346-4744-a6a4-81514817e888:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f0eb70e9-71e9-40cd-813f-bf8e8c812cb1:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f0eb70e9-71e9-40cd-813f-bf8e8c812cb1:100.0.0.json new file mode 100644 index 0000000000000..7eb41499d2a6e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f0eb70e9-71e9-40cd-813f-bf8e8c812cb1:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Execution with Explicit Credentials via Scripting v100.0.0","rule_id":"f0eb70e9-71e9-40cd-813f-bf8e8c812cb1:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution of the security_authtrampoline process via a scripting interpreter. This occurs when programs use AuthorizationExecute-WithPrivileges from the Security.framework to run another program with root privileges. It should not be run by itself, as this is a sign of execution with explicit logon credentials.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://objectivebythesea.com/v2/talks/OBTS_v2_Thomas.pdf","https://www.manpagez.com/man/8/security_authtrampoline/"],"tags":["Elastic","Host","macOS","Threat Detection","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"},{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.004","name":"Elevated Execution with Prompt","reference":"https://attack.mitre.org/techniques/T1548/004/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:\"security_authtrampoline\" and\n process.parent.name:(osascript or com.apple.automator.runner or sh or bash or dash or zsh or python* or Python or perl* or php* or ruby or pwsh)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},"id":"f0eb70e9-71e9-40cd-813f-bf8e8c812cb1:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f0eb70e9-71e9-40cd-813f-bf8e8c812cb1:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f0eb70e9-71e9-40cd-813f-bf8e8c812cb1:100.0.1.json new file mode 100644 index 0000000000000..80236c90b1abf --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f0eb70e9-71e9-40cd-813f-bf8e8c812cb1:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Execution with Explicit Credentials via Scripting v100.0.1","rule_id":"f0eb70e9-71e9-40cd-813f-bf8e8c812cb1:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution of the security_authtrampoline process via a scripting interpreter. This occurs when programs use AuthorizationExecute-WithPrivileges from the Security.framework to run another program with root privileges. It should not be run by itself, as this is a sign of execution with explicit logon credentials.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://objectivebythesea.com/v2/talks/OBTS_v2_Thomas.pdf","https://www.manpagez.com/man/8/security_authtrampoline/"],"tags":["Elastic","Host","macOS","Threat Detection","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"},{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.004","name":"Elevated Execution with Prompt","reference":"https://attack.mitre.org/techniques/T1548/004/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:\"security_authtrampoline\" and\n process.parent.name:(osascript or com.apple.automator.runner or sh or bash or dash or zsh or python* or Python or perl* or php* or ruby or pwsh)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},"id":"f0eb70e9-71e9-40cd-813f-bf8e8c812cb1:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f0eb70e9-71e9-40cd-813f-bf8e8c812cb1:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f0eb70e9-71e9-40cd-813f-bf8e8c812cb1:100.0.2.json new file mode 100644 index 0000000000000..3f9fb17ecf636 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f0eb70e9-71e9-40cd-813f-bf8e8c812cb1:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Execution with Explicit Credentials via Scripting v100.0.2","rule_id":"f0eb70e9-71e9-40cd-813f-bf8e8c812cb1:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies execution of the security_authtrampoline process via a scripting interpreter. This occurs when programs use AuthorizationExecute-WithPrivileges from the Security.framework to run another program with root privileges. It should not be run by itself, as this is a sign of execution with explicit logon credentials.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://objectivebythesea.com/v2/talks/OBTS_v2_Thomas.pdf","https://www.manpagez.com/man/8/security_authtrampoline/"],"tags":["Elastic","Host","macOS","Threat Detection","Execution","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"},{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.004","name":"Elevated Execution with Prompt","reference":"https://attack.mitre.org/techniques/T1548/004/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:\"security_authtrampoline\" and\n process.parent.name:(osascript or com.apple.automator.runner or sh or bash or dash or zsh or python* or Python or perl* or php* or ruby or pwsh)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}]},"id":"f0eb70e9-71e9-40cd-813f-bf8e8c812cb1:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f24bcae1-8980-4b30-b5dd-f851b055c9e7:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f24bcae1-8980-4b30-b5dd-f851b055c9e7:101.0.0.json new file mode 100644 index 0000000000000..fe3e32deedbe1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f24bcae1-8980-4b30-b5dd-f851b055c9e7:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Creation of Hidden Login Item via Apple Script v101.0.0","rule_id":"f24bcae1-8980-4b30-b5dd-f851b055c9e7:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of osascript to create a hidden login item. This may indicate an attempt to persist a malicious program while concealing its presence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","macOS","Threat Detection","Persistence","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.002","name":"AppleScript","reference":"https://attack.mitre.org/techniques/T1059/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1647","name":"Plist File Modification","reference":"https://attack.mitre.org/techniques/T1647/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.name : \"osascript\" and\n process.command_line : \"osascript*login item*hidden:true*\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f24bcae1-8980-4b30-b5dd-f851b055c9e7:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f24bcae1-8980-4b30-b5dd-f851b055c9e7:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f24bcae1-8980-4b30-b5dd-f851b055c9e7:101.0.1.json new file mode 100644 index 0000000000000..290cc33a75ca3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f24bcae1-8980-4b30-b5dd-f851b055c9e7:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Creation of Hidden Login Item via Apple Script v101.0.1","rule_id":"f24bcae1-8980-4b30-b5dd-f851b055c9e7:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of osascript to create a hidden login item. This may indicate an attempt to persist a malicious program while concealing its presence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","macOS","Threat Detection","Persistence","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.002","name":"AppleScript","reference":"https://attack.mitre.org/techniques/T1059/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1647","name":"Plist File Modification","reference":"https://attack.mitre.org/techniques/T1647/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.name : \"osascript\" and\n process.command_line : \"osascript*login item*hidden:true*\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f24bcae1-8980-4b30-b5dd-f851b055c9e7:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f24bcae1-8980-4b30-b5dd-f851b055c9e7:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f24bcae1-8980-4b30-b5dd-f851b055c9e7:101.0.2.json new file mode 100644 index 0000000000000..715d93954e6cd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f24bcae1-8980-4b30-b5dd-f851b055c9e7:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Creation of Hidden Login Item via Apple Script v101.0.2","rule_id":"f24bcae1-8980-4b30-b5dd-f851b055c9e7:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the execution of osascript to create a hidden login item. This may indicate an attempt to persist a malicious program while concealing its presence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","macOS","Threat Detection","Persistence","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/","subtechnique":[{"id":"T1059.002","name":"AppleScript","reference":"https://attack.mitre.org/techniques/T1059/002/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1647","name":"Plist File Modification","reference":"https://attack.mitre.org/techniques/T1647/"}]}],"language":"eql","query":"process where event.type in (\"start\", \"process_started\") and process.name : \"osascript\" and\n process.command_line : \"osascript*login item*hidden:true*\"\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.command_line","type":"wildcard"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f24bcae1-8980-4b30-b5dd-f851b055c9e7:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f28e2be4-6eca-4349-bdd9-381573730c22:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f28e2be4-6eca-4349-bdd9-381573730c22:100.0.0.json new file mode 100644 index 0000000000000..da3d20ef53592 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f28e2be4-6eca-4349-bdd9-381573730c22:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential OpenSSH Backdoor Logging Activity v100.0.0","rule_id":"f28e2be4-6eca-4349-bdd9-381573730c22:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a Secure Shell (SSH) client or server process creating or writing to a known SSH backdoor log file. Adversaries may modify SSH related binaries for persistence or credential access via patching sensitive functions to enable unauthorized access or to log SSH credentials for exfiltration.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Updates to approved and trusted SSH executables can trigger this rule."],"from":"now-9m","references":["https://github.com/eset/malware-ioc/tree/master/sshdoor","https://www.welivesecurity.com/wp-content/uploads/2021/01/ESET_Kobalos.pdf"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1554","name":"Compromise Client Software Binary","reference":"https://attack.mitre.org/techniques/T1554/"}]}],"language":"eql","query":"file where event.type == \"change\" and process.executable : (\"/usr/sbin/sshd\", \"/usr/bin/ssh\") and\n (\n (file.name : (\".*\", \"~*\", \"*~\") and not file.name : (\".cache\", \".viminfo\", \".bash_history\")) or\n file.extension : (\"in\", \"out\", \"ini\", \"h\", \"gz\", \"so\", \"sock\", \"sync\", \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\") or\n file.path :\n (\n \"/private/etc/*--\",\n \"/usr/share/*\",\n \"/usr/include/*\",\n \"/usr/local/include/*\",\n \"/private/tmp/*\",\n \"/private/var/tmp/*\",\n \"/usr/tmp/*\",\n \"/usr/share/man/*\",\n \"/usr/local/share/*\",\n \"/usr/lib/*.so.*\",\n \"/private/etc/ssh/.sshd_auth\",\n \"/usr/bin/ssd\",\n \"/private/var/opt/power\",\n \"/private/etc/ssh/ssh_known_hosts\",\n \"/private/var/html/lol\",\n \"/private/var/log/utmp\",\n \"/private/var/lib\",\n \"/var/run/sshd/sshd.pid\",\n \"/var/run/nscd/ns.pid\",\n \"/var/run/udev/ud.pid\",\n \"/var/run/udevd.pid\"\n )\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f28e2be4-6eca-4349-bdd9-381573730c22:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f28e2be4-6eca-4349-bdd9-381573730c22:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f28e2be4-6eca-4349-bdd9-381573730c22:100.0.1.json new file mode 100644 index 0000000000000..2803a11a5fbfd --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f28e2be4-6eca-4349-bdd9-381573730c22:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential OpenSSH Backdoor Logging Activity v100.0.1","rule_id":"f28e2be4-6eca-4349-bdd9-381573730c22:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a Secure Shell (SSH) client or server process creating or writing to a known SSH backdoor log file. Adversaries may modify SSH related binaries for persistence or credential access via patching sensitive functions to enable unauthorized access or to log SSH credentials for exfiltration.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Updates to approved and trusted SSH executables can trigger this rule."],"from":"now-9m","references":["https://github.com/eset/malware-ioc/tree/master/sshdoor","https://www.welivesecurity.com/wp-content/uploads/2021/01/ESET_Kobalos.pdf"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1554","name":"Compromise Client Software Binary","reference":"https://attack.mitre.org/techniques/T1554/"}]}],"language":"eql","query":"file where event.type == \"change\" and process.executable : (\"/usr/sbin/sshd\", \"/usr/bin/ssh\") and\n (\n (file.name : (\".*\", \"~*\", \"*~\") and not file.name : (\".cache\", \".viminfo\", \".bash_history\")) or\n file.extension : (\"in\", \"out\", \"ini\", \"h\", \"gz\", \"so\", \"sock\", \"sync\", \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\") or\n file.path :\n (\n \"/private/etc/*--\",\n \"/usr/share/*\",\n \"/usr/include/*\",\n \"/usr/local/include/*\",\n \"/private/tmp/*\",\n \"/private/var/tmp/*\",\n \"/usr/tmp/*\",\n \"/usr/share/man/*\",\n \"/usr/local/share/*\",\n \"/usr/lib/*.so.*\",\n \"/private/etc/ssh/.sshd_auth\",\n \"/usr/bin/ssd\",\n \"/private/var/opt/power\",\n \"/private/etc/ssh/ssh_known_hosts\",\n \"/private/var/html/lol\",\n \"/private/var/log/utmp\",\n \"/private/var/lib\",\n \"/var/run/sshd/sshd.pid\",\n \"/var/run/nscd/ns.pid\",\n \"/var/run/udev/ud.pid\",\n \"/var/run/udevd.pid\"\n )\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f28e2be4-6eca-4349-bdd9-381573730c22:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f28e2be4-6eca-4349-bdd9-381573730c22:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f28e2be4-6eca-4349-bdd9-381573730c22:100.0.2.json new file mode 100644 index 0000000000000..806392f1fd2be --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f28e2be4-6eca-4349-bdd9-381573730c22:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential OpenSSH Backdoor Logging Activity v100.0.2","rule_id":"f28e2be4-6eca-4349-bdd9-381573730c22:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a Secure Shell (SSH) client or server process creating or writing to a known SSH backdoor log file. Adversaries may modify SSH related binaries for persistence or credential access via patching sensitive functions to enable unauthorized access or to log SSH credentials for exfiltration.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Updates to approved and trusted SSH executables can trigger this rule."],"from":"now-9m","references":["https://github.com/eset/malware-ioc/tree/master/sshdoor","https://www.welivesecurity.com/wp-content/uploads/2021/01/ESET_Kobalos.pdf"],"tags":["Elastic","Host","Linux","Threat Detection","Persistence","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1556","name":"Modify Authentication Process","reference":"https://attack.mitre.org/techniques/T1556/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1554","name":"Compromise Client Software Binary","reference":"https://attack.mitre.org/techniques/T1554/"}]}],"language":"eql","query":"file where event.type == \"change\" and process.executable : (\"/usr/sbin/sshd\", \"/usr/bin/ssh\") and\n (\n (file.name : (\".*\", \"~*\", \"*~\") and not file.name : (\".cache\", \".viminfo\", \".bash_history\")) or\n file.extension : (\"in\", \"out\", \"ini\", \"h\", \"gz\", \"so\", \"sock\", \"sync\", \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\") or\n file.path :\n (\n \"/private/etc/*--\",\n \"/usr/share/*\",\n \"/usr/include/*\",\n \"/usr/local/include/*\",\n \"/private/tmp/*\",\n \"/private/var/tmp/*\",\n \"/usr/tmp/*\",\n \"/usr/share/man/*\",\n \"/usr/local/share/*\",\n \"/usr/lib/*.so.*\",\n \"/private/etc/ssh/.sshd_auth\",\n \"/usr/bin/ssd\",\n \"/private/var/opt/power\",\n \"/private/etc/ssh/ssh_known_hosts\",\n \"/private/var/html/lol\",\n \"/private/var/log/utmp\",\n \"/private/var/lib\",\n \"/var/run/sshd/sshd.pid\",\n \"/var/run/nscd/ns.pid\",\n \"/var/run/udev/ud.pid\",\n \"/var/run/udevd.pid\"\n )\n )\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f28e2be4-6eca-4349-bdd9-381573730c22:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f2c7b914-eda3-40c2-96ac-d23ef91776ca:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f2c7b914-eda3-40c2-96ac-d23ef91776ca:101.0.0.json new file mode 100644 index 0000000000000..ea26b6f76d13a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f2c7b914-eda3-40c2-96ac-d23ef91776ca:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"SIP Provider Modification v101.0.0","rule_id":"f2c7b914-eda3-40c2-96ac-d23ef91776ca:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to the registered Subject Interface Package (SIP) providers. SIP providers are used by the Windows cryptographic system to validate file signatures on the system. This may be an attempt to bypass signature validation checks or inject code into critical processes.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/mattifestation/PoCSubjectInterfacePackage"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1553","name":"Subvert Trust Controls","reference":"https://attack.mitre.org/techniques/T1553/","subtechnique":[{"id":"T1553.003","name":"SIP and Trust Provider Hijacking","reference":"https://attack.mitre.org/techniques/T1553/003/"}]}]}],"language":"eql","query":"registry where event.type:\"change\" and\n registry.path: (\n \"*\\\\SOFTWARE\\\\Microsoft\\\\Cryptography\\\\OID\\\\EncodingType 0\\\\CryptSIPDllPutSignedDataMsg\\\\{*}\\\\Dll\",\n \"*\\\\SOFTWARE\\\\WOW6432Node\\\\Microsoft\\\\Cryptography\\\\OID\\\\EncodingType 0\\\\CryptSIPDllPutSignedDataMsg\\\\{*}\\\\Dll\",\n \"*\\\\SOFTWARE\\\\Microsoft\\\\Cryptography\\\\Providers\\\\Trust\\\\FinalPolicy\\\\{*}\\\\$Dll\",\n \"*\\\\SOFTWARE\\\\WOW6432Node\\\\Microsoft\\\\Cryptography\\\\Providers\\\\Trust\\\\FinalPolicy\\\\{*}\\\\$Dll\"\n ) and\n registry.data.strings:\"*.dll\"\n","type":"eql","index":["logs-endpoint.events.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"f2c7b914-eda3-40c2-96ac-d23ef91776ca:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f2c7b914-eda3-40c2-96ac-d23ef91776ca:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f2c7b914-eda3-40c2-96ac-d23ef91776ca:101.0.1.json new file mode 100644 index 0000000000000..eaccd48e70abc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f2c7b914-eda3-40c2-96ac-d23ef91776ca:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"SIP Provider Modification v101.0.1","rule_id":"f2c7b914-eda3-40c2-96ac-d23ef91776ca:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to the registered Subject Interface Package (SIP) providers. SIP providers are used by the Windows cryptographic system to validate file signatures on the system. This may be an attempt to bypass signature validation checks or inject code into critical processes.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/mattifestation/PoCSubjectInterfacePackage"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1553","name":"Subvert Trust Controls","reference":"https://attack.mitre.org/techniques/T1553/","subtechnique":[{"id":"T1553.003","name":"SIP and Trust Provider Hijacking","reference":"https://attack.mitre.org/techniques/T1553/003/"}]}]}],"language":"eql","query":"registry where event.type:\"change\" and\n registry.path: (\n \"*\\\\SOFTWARE\\\\Microsoft\\\\Cryptography\\\\OID\\\\EncodingType 0\\\\CryptSIPDllPutSignedDataMsg\\\\{*}\\\\Dll\",\n \"*\\\\SOFTWARE\\\\WOW6432Node\\\\Microsoft\\\\Cryptography\\\\OID\\\\EncodingType 0\\\\CryptSIPDllPutSignedDataMsg\\\\{*}\\\\Dll\",\n \"*\\\\SOFTWARE\\\\Microsoft\\\\Cryptography\\\\Providers\\\\Trust\\\\FinalPolicy\\\\{*}\\\\$Dll\",\n \"*\\\\SOFTWARE\\\\WOW6432Node\\\\Microsoft\\\\Cryptography\\\\Providers\\\\Trust\\\\FinalPolicy\\\\{*}\\\\$Dll\"\n ) and\n registry.data.strings:\"*.dll\"\n","type":"eql","index":["logs-endpoint.events.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"f2c7b914-eda3-40c2-96ac-d23ef91776ca:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f2c7b914-eda3-40c2-96ac-d23ef91776ca:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f2c7b914-eda3-40c2-96ac-d23ef91776ca:101.0.2.json new file mode 100644 index 0000000000000..2932eb04f1e92 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f2c7b914-eda3-40c2-96ac-d23ef91776ca:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"SIP Provider Modification v101.0.2","rule_id":"f2c7b914-eda3-40c2-96ac-d23ef91776ca:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications to the registered Subject Interface Package (SIP) providers. SIP providers are used by the Windows cryptographic system to validate file signatures on the system. This may be an attempt to bypass signature validation checks or inject code into critical processes.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/mattifestation/PoCSubjectInterfacePackage"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1553","name":"Subvert Trust Controls","reference":"https://attack.mitre.org/techniques/T1553/","subtechnique":[{"id":"T1553.003","name":"SIP and Trust Provider Hijacking","reference":"https://attack.mitre.org/techniques/T1553/003/"}]}]}],"language":"eql","query":"registry where event.type:\"change\" and\n registry.path: (\n \"*\\\\SOFTWARE\\\\Microsoft\\\\Cryptography\\\\OID\\\\EncodingType 0\\\\CryptSIPDllPutSignedDataMsg\\\\{*}\\\\Dll\",\n \"*\\\\SOFTWARE\\\\WOW6432Node\\\\Microsoft\\\\Cryptography\\\\OID\\\\EncodingType 0\\\\CryptSIPDllPutSignedDataMsg\\\\{*}\\\\Dll\",\n \"*\\\\SOFTWARE\\\\Microsoft\\\\Cryptography\\\\Providers\\\\Trust\\\\FinalPolicy\\\\{*}\\\\$Dll\",\n \"*\\\\SOFTWARE\\\\WOW6432Node\\\\Microsoft\\\\Cryptography\\\\Providers\\\\Trust\\\\FinalPolicy\\\\{*}\\\\$Dll\"\n ) and\n registry.data.strings:\"*.dll\"\n","type":"eql","index":["logs-endpoint.events.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}]},"id":"f2c7b914-eda3-40c2-96ac-d23ef91776ca:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f2f46686-6f3c-4724-bd7d-24e31c70f98f:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f2f46686-6f3c-4724-bd7d-24e31c70f98f:101.0.0.json new file mode 100644 index 0000000000000..ff2b5a584cd07 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f2f46686-6f3c-4724-bd7d-24e31c70f98f:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"LSASS Memory Dump Creation v101.0.0","rule_id":"f2f46686-6f3c-4724-bd7d-24e31c70f98f:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a Local Security Authority Subsystem Service (lsass.exe) default memory dump. This may indicate a credential access attempt via trusted system utilities such as Task Manager (taskmgr.exe) and SQL Dumper (sqldumper.exe) or known pentesting tools such as Dumpert and AndrewSpecial.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timeline_id":"4d4c0b59-ea83-483f-b8c1-8c360ee53c5c","timeline_title":"Comprehensive File Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/outflanknl/Dumpert","https://github.com/hoangprod/AndrewSpecial"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"file where file.name : (\"lsass*.dmp\", \"dumpert.dmp\", \"Andrew.dmp\", \"SQLDmpr*.mdmp\", \"Coredump.dmp\") and\n\n not (process.executable : (\"?:\\\\Program Files\\\\Microsoft SQL Server\\\\*\\\\Shared\\\\SqlDumper.exe\", \"?:\\\\Windows\\\\System32\\\\dllhost.exe\") and\n file.path : (\"?:\\\\Program Files\\\\Microsoft SQL Server\\\\*\\\\Shared\\\\ErrorDumps\\\\SQLDmpr*.mdmp\",\n \"?:\\\\*\\\\Reporting Services\\\\Logfiles\\\\SQLDmpr*.mdmp\")) and\n\n not (process.executable : \"?:\\\\WINDOWS\\\\system32\\\\WerFault.exe\" and\n file.path : \"?:\\\\Windows\\\\System32\\\\config\\\\systemprofile\\\\AppData\\\\Local\\\\CrashDumps\\\\lsass.exe.*.dmp\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f2f46686-6f3c-4724-bd7d-24e31c70f98f:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f2f46686-6f3c-4724-bd7d-24e31c70f98f:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f2f46686-6f3c-4724-bd7d-24e31c70f98f:101.0.1.json new file mode 100644 index 0000000000000..4ad83006896c1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f2f46686-6f3c-4724-bd7d-24e31c70f98f:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"LSASS Memory Dump Creation v101.0.1","rule_id":"f2f46686-6f3c-4724-bd7d-24e31c70f98f:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a Local Security Authority Subsystem Service (lsass.exe) default memory dump. This may indicate a credential access attempt via trusted system utilities such as Task Manager (taskmgr.exe) and SQL Dumper (sqldumper.exe) or known pentesting tools such as Dumpert and AndrewSpecial.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timeline_id":"4d4c0b59-ea83-483f-b8c1-8c360ee53c5c","timeline_title":"Comprehensive File Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/outflanknl/Dumpert","https://github.com/hoangprod/AndrewSpecial"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"file where file.name : (\"lsass*.dmp\", \"dumpert.dmp\", \"Andrew.dmp\", \"SQLDmpr*.mdmp\", \"Coredump.dmp\") and\n\n not (process.executable : (\"?:\\\\Program Files\\\\Microsoft SQL Server\\\\*\\\\Shared\\\\SqlDumper.exe\", \"?:\\\\Windows\\\\System32\\\\dllhost.exe\") and\n file.path : (\"?:\\\\Program Files\\\\Microsoft SQL Server\\\\*\\\\Shared\\\\ErrorDumps\\\\SQLDmpr*.mdmp\",\n \"?:\\\\*\\\\Reporting Services\\\\Logfiles\\\\SQLDmpr*.mdmp\")) and\n\n not (process.executable : \"?:\\\\WINDOWS\\\\system32\\\\WerFault.exe\" and\n file.path : \"?:\\\\Windows\\\\System32\\\\config\\\\systemprofile\\\\AppData\\\\Local\\\\CrashDumps\\\\lsass.exe.*.dmp\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f2f46686-6f3c-4724-bd7d-24e31c70f98f:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f2f46686-6f3c-4724-bd7d-24e31c70f98f:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f2f46686-6f3c-4724-bd7d-24e31c70f98f:101.0.2.json new file mode 100644 index 0000000000000..30a82e1eafb1e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f2f46686-6f3c-4724-bd7d-24e31c70f98f:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"LSASS Memory Dump Creation v101.0.2","rule_id":"f2f46686-6f3c-4724-bd7d-24e31c70f98f:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of a Local Security Authority Subsystem Service (lsass.exe) default memory dump. This may indicate a credential access attempt via trusted system utilities such as Task Manager (taskmgr.exe) and SQL Dumper (sqldumper.exe) or known pentesting tools such as Dumpert and AndrewSpecial.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timeline_id":"4d4c0b59-ea83-483f-b8c1-8c360ee53c5c","timeline_title":"Comprehensive File Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://github.com/outflanknl/Dumpert","https://github.com/hoangprod/AndrewSpecial"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1003","name":"OS Credential Dumping","reference":"https://attack.mitre.org/techniques/T1003/","subtechnique":[{"id":"T1003.001","name":"LSASS Memory","reference":"https://attack.mitre.org/techniques/T1003/001/"}]}]}],"language":"eql","query":"file where file.name : (\"lsass*.dmp\", \"dumpert.dmp\", \"Andrew.dmp\", \"SQLDmpr*.mdmp\", \"Coredump.dmp\") and\n\n not (process.executable : (\"?:\\\\Program Files\\\\Microsoft SQL Server\\\\*\\\\Shared\\\\SqlDumper.exe\", \"?:\\\\Windows\\\\System32\\\\dllhost.exe\") and\n file.path : (\"?:\\\\Program Files\\\\Microsoft SQL Server\\\\*\\\\Shared\\\\ErrorDumps\\\\SQLDmpr*.mdmp\",\n \"?:\\\\*\\\\Reporting Services\\\\Logfiles\\\\SQLDmpr*.mdmp\")) and\n\n not (process.executable : \"?:\\\\WINDOWS\\\\system32\\\\WerFault.exe\" and\n file.path : \"?:\\\\Windows\\\\System32\\\\config\\\\systemprofile\\\\AppData\\\\Local\\\\CrashDumps\\\\lsass.exe.*.dmp\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"file.name","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f2f46686-6f3c-4724-bd7d-24e31c70f98f:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f30f3443-4fbb-4c27-ab89-c3ad49d62315:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f30f3443-4fbb-4c27-ab89-c3ad49d62315:101.0.0.json new file mode 100644 index 0000000000000..39a2e14cc8b18 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f30f3443-4fbb-4c27-ab89-c3ad49d62315:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS RDS Instance Creation v101.0.0","rule_id":"f30f3443-4fbb-4c27-ab89-c3ad49d62315:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an Amazon Relational Database Service (RDS) Aurora database instance.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["A database instance may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Instances creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:CreateDBInstance and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"f30f3443-4fbb-4c27-ab89-c3ad49d62315:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f30f3443-4fbb-4c27-ab89-c3ad49d62315:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f30f3443-4fbb-4c27-ab89-c3ad49d62315:101.0.1.json new file mode 100644 index 0000000000000..0d7fc490cd81d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f30f3443-4fbb-4c27-ab89-c3ad49d62315:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS RDS Instance Creation v101.0.1","rule_id":"f30f3443-4fbb-4c27-ab89-c3ad49d62315:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an Amazon Relational Database Service (RDS) Aurora database instance.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["A database instance may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Instances creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:CreateDBInstance and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"f30f3443-4fbb-4c27-ab89-c3ad49d62315:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f30f3443-4fbb-4c27-ab89-c3ad49d62315:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f30f3443-4fbb-4c27-ab89-c3ad49d62315:101.0.2.json new file mode 100644 index 0000000000000..49ac9a04f0f1f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f30f3443-4fbb-4c27-ab89-c3ad49d62315:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS RDS Instance Creation v101.0.2","rule_id":"f30f3443-4fbb-4c27-ab89-c3ad49d62315:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the creation of an Amazon Relational Database Service (RDS) Aurora database instance.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["A database instance may be created by a system or network administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Instances creations by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Asset Visibility","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:rds.amazonaws.com and event.action:CreateDBInstance and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"f30f3443-4fbb-4c27-ab89-c3ad49d62315:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f3475224-b179-4f78-8877-c2bd64c26b88:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f3475224-b179-4f78-8877-c2bd64c26b88:101.0.0.json new file mode 100644 index 0000000000000..7c9de1c1f418d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f3475224-b179-4f78-8877-c2bd64c26b88:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"WMI Incoming Lateral Movement v101.0.0","rule_id":"f3475224-b179-4f78-8877-c2bd64c26b88:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies processes executed via Windows Management Instrumentation (WMI) on a remote host. This could be indicative of adversary lateral movement, but could be noisy if administrators use WMI to remotely manage hosts.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1047","name":"Windows Management Instrumentation","reference":"https://attack.mitre.org/techniques/T1047/"}]}],"language":"eql","query":"sequence by host.id with maxspan = 2s\n\n /* Accepted Incoming RPC connection by Winmgmt service */\n\n [network where process.name : \"svchost.exe\" and network.direction : (\"incoming\", \"ingress\") and\n source.ip != \"127.0.0.1\" and source.ip != \"::1\" and source.port >= 49152 and destination.port >= 49152\n ]\n\n /* Excluding Common FPs Nessus and SCCM */\n\n [process where event.type == \"start\" and process.parent.name : \"WmiPrvSE.exe\" and\n not process.args : (\"C:\\\\windows\\\\temp\\\\nessus_*.txt\", \n \"C:\\\\windows\\\\TEMP\\\\nessus_*.TMP\", \n \"C:\\\\Windows\\\\CCM\\\\SystemTemp\\\\*\", \n \"C:\\\\Windows\\\\CCMCache\\\\*\",\n \"C:\\\\CCM\\\\Cache\\\\*\")\n ]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]},"id":"f3475224-b179-4f78-8877-c2bd64c26b88:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f3475224-b179-4f78-8877-c2bd64c26b88:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f3475224-b179-4f78-8877-c2bd64c26b88:101.0.1.json new file mode 100644 index 0000000000000..cf73cbe9f0fd2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f3475224-b179-4f78-8877-c2bd64c26b88:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"WMI Incoming Lateral Movement v101.0.1","rule_id":"f3475224-b179-4f78-8877-c2bd64c26b88:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies processes executed via Windows Management Instrumentation (WMI) on a remote host. This could be indicative of adversary lateral movement, but could be noisy if administrators use WMI to remotely manage hosts.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1047","name":"Windows Management Instrumentation","reference":"https://attack.mitre.org/techniques/T1047/"}]}],"language":"eql","query":"sequence by host.id with maxspan = 2s\n\n /* Accepted Incoming RPC connection by Winmgmt service */\n\n [network where process.name : \"svchost.exe\" and network.direction : (\"incoming\", \"ingress\") and\n source.ip != \"127.0.0.1\" and source.ip != \"::1\" and source.port >= 49152 and destination.port >= 49152\n ]\n\n /* Excluding Common FPs Nessus and SCCM */\n\n [process where event.type == \"start\" and process.parent.name : \"WmiPrvSE.exe\" and\n not process.args : (\"C:\\\\windows\\\\temp\\\\nessus_*.txt\", \n \"C:\\\\windows\\\\TEMP\\\\nessus_*.TMP\", \n \"C:\\\\Windows\\\\CCM\\\\SystemTemp\\\\*\", \n \"C:\\\\Windows\\\\CCMCache\\\\*\",\n \"C:\\\\CCM\\\\Cache\\\\*\")\n ]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]},"id":"f3475224-b179-4f78-8877-c2bd64c26b88:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f3475224-b179-4f78-8877-c2bd64c26b88:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f3475224-b179-4f78-8877-c2bd64c26b88:101.0.2.json new file mode 100644 index 0000000000000..47093b1c5072e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f3475224-b179-4f78-8877-c2bd64c26b88:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"WMI Incoming Lateral Movement v101.0.2","rule_id":"f3475224-b179-4f78-8877-c2bd64c26b88:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies processes executed via Windows Management Instrumentation (WMI) on a remote host. This could be indicative of adversary lateral movement, but could be noisy if administrators use WMI to remotely manage hosts.","risk_score":47,"severity":"medium","license":"Elastic License v2","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1047","name":"Windows Management Instrumentation","reference":"https://attack.mitre.org/techniques/T1047/"}]}],"language":"eql","query":"sequence by host.id with maxspan = 2s\n\n /* Accepted Incoming RPC connection by Winmgmt service */\n\n [network where process.name : \"svchost.exe\" and network.direction : (\"incoming\", \"ingress\") and\n source.ip != \"127.0.0.1\" and source.ip != \"::1\" and source.port >= 49152 and destination.port >= 49152\n ]\n\n /* Excluding Common FPs Nessus and SCCM */\n\n [process where event.type == \"start\" and process.parent.name : \"WmiPrvSE.exe\" and\n not process.args : (\"C:\\\\windows\\\\temp\\\\nessus_*.txt\", \n \"C:\\\\windows\\\\TEMP\\\\nessus_*.TMP\", \n \"C:\\\\Windows\\\\CCM\\\\SystemTemp\\\\*\", \n \"C:\\\\Windows\\\\CCMCache\\\\*\",\n \"C:\\\\CCM\\\\Cache\\\\*\")\n ]\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.port","type":"long"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"network.direction","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"source.port","type":"long"}]},"id":"f3475224-b179-4f78-8877-c2bd64c26b88:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f37f3054-d40b-49ac-aa9b-a786c74c58b8:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f37f3054-d40b-49ac-aa9b-a786c74c58b8:100.0.0.json new file mode 100644 index 0000000000000..b0cc94193530d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f37f3054-d40b-49ac-aa9b-a786c74c58b8:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Sudo Heap-Based Buffer Overflow Attempt v100.0.0","rule_id":"f37f3054-d40b-49ac-aa9b-a786c74c58b8:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the attempted use of a heap-based buffer overflow vulnerability for the Sudo binary in Unix-like systems (CVE-2021-3156). Successful exploitation allows an unprivileged user to escalate to the root user.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"false_positives":["This rule could generate false positives if the process arguments leveraged by the exploit are shared by custom scripts using the Sudo or Sudoedit binaries. Only Sudo versions 1.8.2 through 1.8.31p2 and 1.9.0 through 1.9.5p1 are affected; if those versions are not present on the endpoint, this could be a false positive."],"from":"now-9m","references":["https://cve.mitre.org/cgi-bin/cvename.cgi?name=2021-3156","https://blog.qualys.com/vulnerabilities-research/2021/01/26/cve-2021-3156-heap-based-buffer-overflow-in-sudo-baron-samedit","https://www.bleepingcomputer.com/news/security/latest-macos-big-sur-also-has-sudo-root-privilege-escalation-flaw","https://www.sudo.ws/alerts/unescape_overflow.html"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"query":"event.category:process and event.type:start and\n process.name:(sudo or sudoedit) and\n process.args:(*\\\\ and (\"-i\" or \"-s\"))\n","threshold":{"field":["host.hostname"],"value":100},"type":"threshold","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"f37f3054-d40b-49ac-aa9b-a786c74c58b8:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f37f3054-d40b-49ac-aa9b-a786c74c58b8:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f37f3054-d40b-49ac-aa9b-a786c74c58b8:100.0.1.json new file mode 100644 index 0000000000000..d9e68a815de15 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f37f3054-d40b-49ac-aa9b-a786c74c58b8:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Sudo Heap-Based Buffer Overflow Attempt v100.0.1","rule_id":"f37f3054-d40b-49ac-aa9b-a786c74c58b8:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the attempted use of a heap-based buffer overflow vulnerability for the Sudo binary in Unix-like systems (CVE-2021-3156). Successful exploitation allows an unprivileged user to escalate to the root user.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"false_positives":["This rule could generate false positives if the process arguments leveraged by the exploit are shared by custom scripts using the Sudo or Sudoedit binaries. Only Sudo versions 1.8.2 through 1.8.31p2 and 1.9.0 through 1.9.5p1 are affected; if those versions are not present on the endpoint, this could be a false positive."],"from":"now-9m","references":["https://cve.mitre.org/cgi-bin/cvename.cgi?name=2021-3156","https://blog.qualys.com/vulnerabilities-research/2021/01/26/cve-2021-3156-heap-based-buffer-overflow-in-sudo-baron-samedit","https://www.bleepingcomputer.com/news/security/latest-macos-big-sur-also-has-sudo-root-privilege-escalation-flaw","https://www.sudo.ws/alerts/unescape_overflow.html"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"query":"event.category:process and event.type:start and\n process.name:(sudo or sudoedit) and\n process.args:(*\\\\ and (\"-i\" or \"-s\"))\n","threshold":{"field":["host.hostname"],"value":100},"type":"threshold","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"f37f3054-d40b-49ac-aa9b-a786c74c58b8:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f37f3054-d40b-49ac-aa9b-a786c74c58b8:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f37f3054-d40b-49ac-aa9b-a786c74c58b8:100.0.2.json new file mode 100644 index 0000000000000..663cdb15d0d9c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f37f3054-d40b-49ac-aa9b-a786c74c58b8:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Sudo Heap-Based Buffer Overflow Attempt v100.0.2","rule_id":"f37f3054-d40b-49ac-aa9b-a786c74c58b8:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the attempted use of a heap-based buffer overflow vulnerability for the Sudo binary in Unix-like systems (CVE-2021-3156). Successful exploitation allows an unprivileged user to escalate to the root user.","risk_score":73,"severity":"high","license":"Elastic License v2","author":["Elastic"],"false_positives":["This rule could generate false positives if the process arguments leveraged by the exploit are shared by custom scripts using the Sudo or Sudoedit binaries. Only Sudo versions 1.8.2 through 1.8.31p2 and 1.9.0 through 1.9.5p1 are affected; if those versions are not present on the endpoint, this could be a false positive."],"from":"now-9m","references":["https://cve.mitre.org/cgi-bin/cvename.cgi?name=2021-3156","https://blog.qualys.com/vulnerabilities-research/2021/01/26/cve-2021-3156-heap-based-buffer-overflow-in-sudo-baron-samedit","https://www.bleepingcomputer.com/news/security/latest-macos-big-sur-also-has-sudo-root-privilege-escalation-flaw","https://www.sudo.ws/alerts/unescape_overflow.html"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"query":"event.category:process and event.type:start and\n process.name:(sudo or sudoedit) and\n process.args:(*\\\\ and (\"-i\" or \"-s\"))\n","threshold":{"field":["host.hostname"],"value":100},"type":"threshold","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"f37f3054-d40b-49ac-aa9b-a786c74c58b8:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f44fa4b6-524c-4e87-8d9e-a32599e4fb7c:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f44fa4b6-524c-4e87-8d9e-a32599e4fb7c:100.0.0.json new file mode 100644 index 0000000000000..4778f4f70a9cf --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f44fa4b6-524c-4e87-8d9e-a32599e4fb7c:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via Microsoft Office AddIns v100.0.0","rule_id":"f44fa4b6-524c-4e87-8d9e-a32599e4fb7c:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to establish persistence on an endpoint by abusing Microsoft Office add-ins.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://labs.mwrinfosecurity.com/blog/add-in-opportunities-for-office-persistence/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1137","name":"Office Application Startup","reference":"https://attack.mitre.org/techniques/T1137/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.extension : (\"wll\",\"xll\",\"ppa\",\"ppam\",\"xla\",\"xlam\") and\n file.path :\n (\n \"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Word\\\\Startup\\\\*\",\n \"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\AddIns\\\\*\",\n \"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Excel\\\\XLSTART\\\\*\"\n )\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f44fa4b6-524c-4e87-8d9e-a32599e4fb7c:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f44fa4b6-524c-4e87-8d9e-a32599e4fb7c:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f44fa4b6-524c-4e87-8d9e-a32599e4fb7c:100.0.1.json new file mode 100644 index 0000000000000..0d71d1a59ca99 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f44fa4b6-524c-4e87-8d9e-a32599e4fb7c:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via Microsoft Office AddIns v100.0.1","rule_id":"f44fa4b6-524c-4e87-8d9e-a32599e4fb7c:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to establish persistence on an endpoint by abusing Microsoft Office add-ins.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://labs.mwrinfosecurity.com/blog/add-in-opportunities-for-office-persistence/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1137","name":"Office Application Startup","reference":"https://attack.mitre.org/techniques/T1137/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.extension : (\"wll\",\"xll\",\"ppa\",\"ppam\",\"xla\",\"xlam\") and\n file.path :\n (\n \"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Word\\\\Startup\\\\*\",\n \"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\AddIns\\\\*\",\n \"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Excel\\\\XLSTART\\\\*\"\n )\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f44fa4b6-524c-4e87-8d9e-a32599e4fb7c:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f44fa4b6-524c-4e87-8d9e-a32599e4fb7c:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f44fa4b6-524c-4e87-8d9e-a32599e4fb7c:100.0.2.json new file mode 100644 index 0000000000000..5a4870b0838a7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f44fa4b6-524c-4e87-8d9e-a32599e4fb7c:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistence via Microsoft Office AddIns v100.0.2","rule_id":"f44fa4b6-524c-4e87-8d9e-a32599e4fb7c:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to establish persistence on an endpoint by abusing Microsoft Office add-ins.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://labs.mwrinfosecurity.com/blog/add-in-opportunities-for-office-persistence/"],"tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1137","name":"Office Application Startup","reference":"https://attack.mitre.org/techniques/T1137/"}]}],"language":"eql","query":"file where event.type != \"deletion\" and\n file.extension : (\"wll\",\"xll\",\"ppa\",\"ppam\",\"xla\",\"xlam\") and\n file.path :\n (\n \"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Word\\\\Startup\\\\*\",\n \"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\AddIns\\\\*\",\n \"C:\\\\Users\\\\*\\\\AppData\\\\Roaming\\\\Microsoft\\\\Excel\\\\XLSTART\\\\*\"\n )\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.extension","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f44fa4b6-524c-4e87-8d9e-a32599e4fb7c:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f494c678-3c33-43aa-b169-bb3d5198c41d:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f494c678-3c33-43aa-b169-bb3d5198c41d:102.0.0.json new file mode 100644 index 0000000000000..4754820c62671 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f494c678-3c33-43aa-b169-bb3d5198c41d:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Sensitive Privilege SeEnableDelegationPrivilege assigned to a User v102.0.0","rule_id":"f494c678-3c33-43aa-b169-bb3d5198c41d:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the assignment of the SeEnableDelegationPrivilege sensitive \"user right\" to a user. The SeEnableDelegationPrivilege \"user right\" enables computer and user accounts to be trusted for delegation. Attackers can abuse this right to compromise Active Directory accounts and elevate their privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Sensitive Privilege SeEnableDelegationPrivilege assigned to a User\n\nKerberos delegation is an Active Directory feature that allows user and computer accounts to impersonate other accounts,\nact on their behalf, and use their privileges. Delegation (constrained and unconstrained) can be configured\nfor user and computer objects.\n\nEnabling unconstrained delegation for a computer causes the computer to store the ticket-granting ticket\n(TGT) in memory at any time an account connects to the computer, so it can be used by the computer for impersonation\nwhen needed. Risk is heightened if an attacker compromises computers with unconstrained delegation enabled, as they\ncould extract TGTs from memory and then replay them to move laterally on the domain. If the attacker coerces a privileged\nuser to connect to the server, or if the user does so routinely, the account will be compromised and the attacker will\nbe able to pass-the-ticket to privileged assets.\n\nSeEnableDelegationPrivilege is a user right that is controlled within the Local Security Policy of a domain controller\nand is managed through Group Policy. This setting is named **Enable computer and user accounts to be trusted for\ndelegation**.\n\nIt is critical to control the assignment of this privilege. A user with this privilege and write access to a computer\ncan control delegation settings, perform the attacks described above, and harvest TGTs from any user that connects to\nthe system.\n\n#### Possible investigation steps\n\n- Investigate how the privilege was assigned to the user and who assigned it.\n- Investigate other potentially malicious activity that was performed by the user that assigned the privileges using the\n`user.id` and `winlog.activity_id` fields as a filter during the past 48 hours.\n- Investigate other alerts associated with the users/host during the past 48 hours.\n\n### False positive analysis\n\n- The SeEnableDelegationPrivilege privilege should not be assigned to users. If this rule is triggered in your\nenvironment legitimately, the security team should notify the administrators about the risks of using it.\n\n### Related rules\n\n- KRBTGT Delegation Backdoor - e052c845-48d0-4f46-8a13-7d0aba05df82\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Remove the privilege from the account.\n- Review the privileges of the administrator account that performed the action.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.harmj0y.net/activedirectory/the-most-dangerous-user-right-you-probably-have-never-heard-of/","https://github.com/SigmaHQ/sigma/blob/master/rules/windows/builtin/security/win_alert_active_directory_user_control.yml","https://twitter.com/_nwodtuhs/status/1454049485080907776","https://www.thehacker.recipes/ad/movement/kerberos/delegations","https://github.com/atc-project/atomic-threat-coverage/blob/master/Atomic_Threat_Coverage/Logging_Policies/LP_0105_windows_audit_authorization_policy_change.md"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action: \"Authorization Policy Change\" and event.code:4704 and winlog.event_data.PrivilegeList:\"SeEnableDelegationPrivilege\"\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.PrivilegeList","type":"keyword"}],"setup":"The 'Audit Authorization Policy Change' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policy Configuration >\nAudit Policies >\nPolicy Change >\nAudit Authorization Policy Change (Success,Failure)\n```"},"id":"f494c678-3c33-43aa-b169-bb3d5198c41d:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f494c678-3c33-43aa-b169-bb3d5198c41d:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f494c678-3c33-43aa-b169-bb3d5198c41d:102.0.1.json new file mode 100644 index 0000000000000..9fa84894f469b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f494c678-3c33-43aa-b169-bb3d5198c41d:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Sensitive Privilege SeEnableDelegationPrivilege assigned to a User v102.0.1","rule_id":"f494c678-3c33-43aa-b169-bb3d5198c41d:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the assignment of the SeEnableDelegationPrivilege sensitive \"user right\" to a user. The SeEnableDelegationPrivilege \"user right\" enables computer and user accounts to be trusted for delegation. Attackers can abuse this right to compromise Active Directory accounts and elevate their privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Sensitive Privilege SeEnableDelegationPrivilege assigned to a User\n\nKerberos delegation is an Active Directory feature that allows user and computer accounts to impersonate other accounts,\nact on their behalf, and use their privileges. Delegation (constrained and unconstrained) can be configured\nfor user and computer objects.\n\nEnabling unconstrained delegation for a computer causes the computer to store the ticket-granting ticket\n(TGT) in memory at any time an account connects to the computer, so it can be used by the computer for impersonation\nwhen needed. Risk is heightened if an attacker compromises computers with unconstrained delegation enabled, as they\ncould extract TGTs from memory and then replay them to move laterally on the domain. If the attacker coerces a privileged\nuser to connect to the server, or if the user does so routinely, the account will be compromised and the attacker will\nbe able to pass-the-ticket to privileged assets.\n\nSeEnableDelegationPrivilege is a user right that is controlled within the Local Security Policy of a domain controller\nand is managed through Group Policy. This setting is named **Enable computer and user accounts to be trusted for\ndelegation**.\n\nIt is critical to control the assignment of this privilege. A user with this privilege and write access to a computer\ncan control delegation settings, perform the attacks described above, and harvest TGTs from any user that connects to\nthe system.\n\n#### Possible investigation steps\n\n- Investigate how the privilege was assigned to the user and who assigned it.\n- Investigate other potentially malicious activity that was performed by the user that assigned the privileges using the\n`user.id` and `winlog.activity_id` fields as a filter during the past 48 hours.\n- Investigate other alerts associated with the users/host during the past 48 hours.\n\n### False positive analysis\n\n- The SeEnableDelegationPrivilege privilege should not be assigned to users. If this rule is triggered in your\nenvironment legitimately, the security team should notify the administrators about the risks of using it.\n\n### Related rules\n\n- KRBTGT Delegation Backdoor - e052c845-48d0-4f46-8a13-7d0aba05df82\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Remove the privilege from the account.\n- Review the privileges of the administrator account that performed the action.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.harmj0y.net/activedirectory/the-most-dangerous-user-right-you-probably-have-never-heard-of/","https://github.com/SigmaHQ/sigma/blob/master/rules/windows/builtin/security/win_alert_active_directory_user_control.yml","https://twitter.com/_nwodtuhs/status/1454049485080907776","https://www.thehacker.recipes/ad/movement/kerberos/delegations","https://github.com/atc-project/atomic-threat-coverage/blob/master/Atomic_Threat_Coverage/Logging_Policies/LP_0105_windows_audit_authorization_policy_change.md"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action: \"Authorization Policy Change\" and event.code:4704 and winlog.event_data.PrivilegeList:\"SeEnableDelegationPrivilege\"\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.PrivilegeList","type":"keyword"}],"setup":"The 'Audit Authorization Policy Change' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policy Configuration >\nAudit Policies >\nPolicy Change >\nAudit Authorization Policy Change (Success,Failure)\n```"},"id":"f494c678-3c33-43aa-b169-bb3d5198c41d:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f494c678-3c33-43aa-b169-bb3d5198c41d:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f494c678-3c33-43aa-b169-bb3d5198c41d:102.0.2.json new file mode 100644 index 0000000000000..18f39eae72a4d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f494c678-3c33-43aa-b169-bb3d5198c41d:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Sensitive Privilege SeEnableDelegationPrivilege assigned to a User v102.0.2","rule_id":"f494c678-3c33-43aa-b169-bb3d5198c41d:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the assignment of the SeEnableDelegationPrivilege sensitive \"user right\" to a user. The SeEnableDelegationPrivilege \"user right\" enables computer and user accounts to be trusted for delegation. Attackers can abuse this right to compromise Active Directory accounts and elevate their privileges.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Sensitive Privilege SeEnableDelegationPrivilege assigned to a User\n\nKerberos delegation is an Active Directory feature that allows user and computer accounts to impersonate other accounts,\nact on their behalf, and use their privileges. Delegation (constrained and unconstrained) can be configured\nfor user and computer objects.\n\nEnabling unconstrained delegation for a computer causes the computer to store the ticket-granting ticket\n(TGT) in memory at any time an account connects to the computer, so it can be used by the computer for impersonation\nwhen needed. Risk is heightened if an attacker compromises computers with unconstrained delegation enabled, as they\ncould extract TGTs from memory and then replay them to move laterally on the domain. If the attacker coerces a privileged\nuser to connect to the server, or if the user does so routinely, the account will be compromised and the attacker will\nbe able to pass-the-ticket to privileged assets.\n\nSeEnableDelegationPrivilege is a user right that is controlled within the Local Security Policy of a domain controller\nand is managed through Group Policy. This setting is named **Enable computer and user accounts to be trusted for\ndelegation**.\n\nIt is critical to control the assignment of this privilege. A user with this privilege and write access to a computer\ncan control delegation settings, perform the attacks described above, and harvest TGTs from any user that connects to\nthe system.\n\n#### Possible investigation steps\n\n- Investigate how the privilege was assigned to the user and who assigned it.\n- Investigate other potentially malicious activity that was performed by the user that assigned the privileges using the\n`user.id` and `winlog.activity_id` fields as a filter during the past 48 hours.\n- Investigate other alerts associated with the users/host during the past 48 hours.\n\n### False positive analysis\n\n- The SeEnableDelegationPrivilege privilege should not be assigned to users. If this rule is triggered in your\nenvironment legitimately, the security team should notify the administrators about the risks of using it.\n\n### Related rules\n\n- KRBTGT Delegation Backdoor - e052c845-48d0-4f46-8a13-7d0aba05df82\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Remove the privilege from the account.\n- Review the privileges of the administrator account that performed the action.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://blog.harmj0y.net/activedirectory/the-most-dangerous-user-right-you-probably-have-never-heard-of/","https://github.com/SigmaHQ/sigma/blob/master/rules/windows/builtin/security/win_alert_active_directory_user_control.yml","https://twitter.com/_nwodtuhs/status/1454049485080907776","https://www.thehacker.recipes/ad/movement/kerberos/delegations","https://github.com/atc-project/atomic-threat-coverage/blob/master/Atomic_Threat_Coverage/Logging_Policies/LP_0105_windows_audit_authorization_policy_change.md"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access","Active Directory","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[]}],"type":"query","index":["winlogbeat-*","logs-system.*"],"language":"kuery","query":"event.action: \"Authorization Policy Change\" and event.code:4704 and winlog.event_data.PrivilegeList:\"SeEnableDelegationPrivilege\"\n","required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.code","type":"keyword"},{"ecs":false,"name":"winlog.event_data.PrivilegeList","type":"keyword"}],"setup":"The 'Audit Authorization Policy Change' logging policy must be configured for (Success, Failure).\nSteps to implement the logging policy with Advanced Audit Configuration:\n\n```\nComputer Configuration >\nWindows Settings >\nSecurity Settings >\nAdvanced Audit Policy Configuration >\nAudit Policies >\nPolicy Change >\nAudit Authorization Policy Change (Success,Failure)\n```"},"id":"f494c678-3c33-43aa-b169-bb3d5198c41d:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f545ff26-3c94-4fd0-bd33-3c7f95a3a0fc:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f545ff26-3c94-4fd0-bd33-3c7f95a3a0fc:102.0.0.json new file mode 100644 index 0000000000000..841e5fd307f82 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f545ff26-3c94-4fd0-bd33-3c7f95a3a0fc:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Windows Script Executing PowerShell v102.0.0","rule_id":"f545ff26-3c94-4fd0-bd33-3c7f95a3a0fc:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a PowerShell process launched by either cscript.exe or wscript.exe. Observing Windows scripting processes executing a PowerShell script, may be indicative of malicious activity.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Script Executing PowerShell\n\nThe Windows Script Host (WSH) is an Windows automation technology, which is ideal for non-interactive scripting needs,\nsuch as logon scripting, administrative scripting, and machine automation.\n\nAttackers commonly use WSH scripts as their initial access method, acting like droppers for second stage payloads, but\ncan also use them to download tools and utilities needed to accomplish their goals.\n\nThis rule looks for the spawn of the `powershell.exe` process with `cscript.exe` or `wscript.exe` as its parent process.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate commands executed by the spawned PowerShell process.\n- If unsigned files are found on the process tree, retrieve them and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Determine how the script file was delivered (email attachment, dropped by other processes, etc.).\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- The usage of these script engines by regular users is unlikely. In the case of authorized benign true positives\n(B-TPs), exceptions can be added.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Reimage the host operating system and restore compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"cscript.exe\", \"wscript.exe\") and process.name : \"powershell.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f545ff26-3c94-4fd0-bd33-3c7f95a3a0fc:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f545ff26-3c94-4fd0-bd33-3c7f95a3a0fc:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f545ff26-3c94-4fd0-bd33-3c7f95a3a0fc:102.0.1.json new file mode 100644 index 0000000000000..7a793c35719a2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f545ff26-3c94-4fd0-bd33-3c7f95a3a0fc:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Windows Script Executing PowerShell v102.0.1","rule_id":"f545ff26-3c94-4fd0-bd33-3c7f95a3a0fc:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a PowerShell process launched by either cscript.exe or wscript.exe. Observing Windows scripting processes executing a PowerShell script, may be indicative of malicious activity.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Script Executing PowerShell\n\nThe Windows Script Host (WSH) is an Windows automation technology, which is ideal for non-interactive scripting needs,\nsuch as logon scripting, administrative scripting, and machine automation.\n\nAttackers commonly use WSH scripts as their initial access method, acting like droppers for second stage payloads, but\ncan also use them to download tools and utilities needed to accomplish their goals.\n\nThis rule looks for the spawn of the `powershell.exe` process with `cscript.exe` or `wscript.exe` as its parent process.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate commands executed by the spawned PowerShell process.\n- If unsigned files are found on the process tree, retrieve them and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Determine how the script file was delivered (email attachment, dropped by other processes, etc.).\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- The usage of these script engines by regular users is unlikely. In the case of authorized benign true positives\n(B-TPs), exceptions can be added.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Reimage the host operating system and restore compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"cscript.exe\", \"wscript.exe\") and process.name : \"powershell.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f545ff26-3c94-4fd0-bd33-3c7f95a3a0fc:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f545ff26-3c94-4fd0-bd33-3c7f95a3a0fc:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f545ff26-3c94-4fd0-bd33-3c7f95a3a0fc:102.0.2.json new file mode 100644 index 0000000000000..428f0e7a624e8 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f545ff26-3c94-4fd0-bd33-3c7f95a3a0fc:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Windows Script Executing PowerShell v102.0.2","rule_id":"f545ff26-3c94-4fd0-bd33-3c7f95a3a0fc:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a PowerShell process launched by either cscript.exe or wscript.exe. Observing Windows scripting processes executing a PowerShell script, may be indicative of malicious activity.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Script Executing PowerShell\n\nThe Windows Script Host (WSH) is an Windows automation technology, which is ideal for non-interactive scripting needs,\nsuch as logon scripting, administrative scripting, and machine automation.\n\nAttackers commonly use WSH scripts as their initial access method, acting like droppers for second stage payloads, but\ncan also use them to download tools and utilities needed to accomplish their goals.\n\nThis rule looks for the spawn of the `powershell.exe` process with `cscript.exe` or `wscript.exe` as its parent process.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate commands executed by the spawned PowerShell process.\n- If unsigned files are found on the process tree, retrieve them and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Determine how the script file was delivered (email attachment, dropped by other processes, etc.).\n- Investigate other alerts associated with the user/host during the past 48 hours.\n\n### False positive analysis\n\n- The usage of these script engines by regular users is unlikely. In the case of authorized benign true positives\n(B-TPs), exceptions can be added.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- If the malicious file was delivered via phishing:\n - Block the email sender from sending future emails.\n - Block the malicious web pages.\n - Remove emails from the sender from mailboxes.\n - Consider improvements to the security awareness program.\n- Reimage the host operating system and restore compromised files to clean versions.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Initial Access","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1566","name":"Phishing","reference":"https://attack.mitre.org/techniques/T1566/","subtechnique":[{"id":"T1566.001","name":"Spearphishing Attachment","reference":"https://attack.mitre.org/techniques/T1566/001/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : (\"cscript.exe\", \"wscript.exe\") and process.name : \"powershell.exe\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f545ff26-3c94-4fd0-bd33-3c7f95a3a0fc:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f5fb4598-4f10-11ed-bdc3-0242ac120002:1.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f5fb4598-4f10-11ed-bdc3-0242ac120002:1.0.0.json new file mode 100644 index 0000000000000..b5475c7a00309 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f5fb4598-4f10-11ed-bdc3-0242ac120002:1.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Masquerading Space After Filename v1.0.0","rule_id":"f5fb4598-4f10-11ed-bdc3-0242ac120002:1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rules identifies a process created from an executable with a space appended to the end of the filename. This may indicate an attempt to masquerade a malicious file as benign to gain user execution. When a space is added to the end of certain files, the OS will execute the file according to it's true filetype instead of it's extension. Adversaries can hide a program's true filetype by changing the extension of the file. They can then add a space to the end of the name so that the OS automatically executes the file when it's double-clicked.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.picussecurity.com/resource/blog/picus-10-critical-mitre-attck-techniques-t1036-masquerading"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.006","name":"Space after Filename","reference":"https://attack.mitre.org/techniques/T1036/006/"}]}]}],"language":"eql","query":"process where host.os.type:(\"linux\",\"macos\") and\n event.type == \"start\" and \n (process.executable regex~ \"\"\"/[a-z0-9\\s_\\-\\\\./]+\\s\"\"\") and not\n process.name in (\"ls\", \"find\", \"grep\", \"xkbcomp\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.os.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f5fb4598-4f10-11ed-bdc3-0242ac120002:1.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f5fb4598-4f10-11ed-bdc3-0242ac120002:1.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f5fb4598-4f10-11ed-bdc3-0242ac120002:1.0.1.json new file mode 100644 index 0000000000000..7043e7cee68cc --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f5fb4598-4f10-11ed-bdc3-0242ac120002:1.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Masquerading Space After Filename v1.0.1","rule_id":"f5fb4598-4f10-11ed-bdc3-0242ac120002:1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rules identifies a process created from an executable with a space appended to the end of the filename. This may indicate an attempt to masquerade a malicious file as benign to gain user execution. When a space is added to the end of certain files, the OS will execute the file according to it's true filetype instead of it's extension. Adversaries can hide a program's true filetype by changing the extension of the file. They can then add a space to the end of the name so that the OS automatically executes the file when it's double-clicked.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.picussecurity.com/resource/blog/picus-10-critical-mitre-attck-techniques-t1036-masquerading"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.006","name":"Space after Filename","reference":"https://attack.mitre.org/techniques/T1036/006/"}]}]}],"language":"eql","query":"process where host.os.type:(\"linux\",\"macos\") and\n event.type == \"start\" and \n (process.executable regex~ \"\"\"/[a-z0-9\\s_\\-\\\\./]+\\s\"\"\") and not\n process.name in (\"ls\", \"find\", \"grep\", \"xkbcomp\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.os.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f5fb4598-4f10-11ed-bdc3-0242ac120002:1.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f5fb4598-4f10-11ed-bdc3-0242ac120002:1.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f5fb4598-4f10-11ed-bdc3-0242ac120002:1.0.2.json new file mode 100644 index 0000000000000..efb83a795e3d0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f5fb4598-4f10-11ed-bdc3-0242ac120002:1.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Masquerading Space After Filename v1.0.2","rule_id":"f5fb4598-4f10-11ed-bdc3-0242ac120002:1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"This rules identifies a process created from an executable with a space appended to the end of the filename. This may indicate an attempt to masquerade a malicious file as benign to gain user execution. When a space is added to the end of certain files, the OS will execute the file according to it's true filetype instead of it's extension. Adversaries can hide a program's true filetype by changing the extension of the file. They can then add a space to the end of the name so that the OS automatically executes the file when it's double-clicked.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.picussecurity.com/resource/blog/picus-10-critical-mitre-attck-techniques-t1036-masquerading"],"tags":["Elastic","Host","Linux","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1036","name":"Masquerading","reference":"https://attack.mitre.org/techniques/T1036/","subtechnique":[{"id":"T1036.006","name":"Space after Filename","reference":"https://attack.mitre.org/techniques/T1036/006/"}]}]}],"language":"eql","query":"process where host.os.type:(\"linux\",\"macos\") and\n event.type == \"start\" and \n (process.executable regex~ \"\"\"/[a-z0-9\\s_\\-\\\\./]+\\s\"\"\") and not\n process.name in (\"ls\", \"find\", \"grep\", \"xkbcomp\")\n","type":"eql","index":["auditbeat-*","logs-endpoint.events.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"host.os.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f5fb4598-4f10-11ed-bdc3-0242ac120002:1.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f63c8e3c-d396-404f-b2ea-0379d3942d73:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f63c8e3c-d396-404f-b2ea-0379d3942d73:102.0.0.json new file mode 100644 index 0000000000000..97ab29b738483 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f63c8e3c-d396-404f-b2ea-0379d3942d73:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Windows Firewall Disabled via PowerShell v102.0.0","rule_id":"f63c8e3c-d396-404f-b2ea-0379d3942d73:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when the Windows Firewall is disabled using PowerShell cmdlets, which can help attackers evade network constraints, like internet and network lateral communication restrictions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Firewall Disabled via PowerShell\n\nWindows Defender Firewall is a native component that provides host-based, two-way network traffic filtering for a\ndevice and blocks unauthorized network traffic flowing into or out of the local device.\n\nAttackers can disable the Windows firewall or its rules to enable lateral movement and command and control activity.\n\nThis rule identifies patterns related to disabling the Windows firewall or its rules using the `Set-NetFirewallProfile`\nPowerShell cmdlet.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Check whether the user is an administrator and is legitimately performing\ntroubleshooting.\n- In case of an allowed benign true positive (B-TP), assess adding rules to allow needed traffic and re-enable the firewall.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Re-enable the firewall with its desired configurations.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Windows Firewall can be disabled by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Windows Profile being disabled by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/powershell/module/netsecurity/set-netfirewallprofile?view=windowsserver2019-ps","https://www.tutorialspoint.com/how-to-get-windows-firewall-profile-settings-using-powershell","http://powershellhelp.space/commands/set-netfirewallrule-psv5.php","http://woshub.com/manage-windows-firewall-powershell/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.004","name":"Disable or Modify System Firewall","reference":"https://attack.mitre.org/techniques/T1562/004/"}]}]}],"language":"eql","query":"process where event.action == \"start\" and\n (process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") or process.pe.original_file_name == \"PowerShell.EXE\") and\n process.args : \"*Set-NetFirewallProfile*\" and\n (process.args : \"*-Enabled*\" and process.args : \"*False*\") and\n (process.args : \"*-All*\" or process.args : (\"*Public*\", \"*Domain*\", \"*Private*\"))\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f63c8e3c-d396-404f-b2ea-0379d3942d73:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f63c8e3c-d396-404f-b2ea-0379d3942d73:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f63c8e3c-d396-404f-b2ea-0379d3942d73:102.0.1.json new file mode 100644 index 0000000000000..c42a933e32d01 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f63c8e3c-d396-404f-b2ea-0379d3942d73:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Windows Firewall Disabled via PowerShell v102.0.1","rule_id":"f63c8e3c-d396-404f-b2ea-0379d3942d73:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when the Windows Firewall is disabled using PowerShell cmdlets, which can help attackers evade network constraints, like internet and network lateral communication restrictions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Firewall Disabled via PowerShell\n\nWindows Defender Firewall is a native component that provides host-based, two-way network traffic filtering for a\ndevice and blocks unauthorized network traffic flowing into or out of the local device.\n\nAttackers can disable the Windows firewall or its rules to enable lateral movement and command and control activity.\n\nThis rule identifies patterns related to disabling the Windows firewall or its rules using the `Set-NetFirewallProfile`\nPowerShell cmdlet.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Check whether the user is an administrator and is legitimately performing\ntroubleshooting.\n- In case of an allowed benign true positive (B-TP), assess adding rules to allow needed traffic and re-enable the firewall.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Re-enable the firewall with its desired configurations.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Windows Firewall can be disabled by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Windows Profile being disabled by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/powershell/module/netsecurity/set-netfirewallprofile?view=windowsserver2019-ps","https://www.tutorialspoint.com/how-to-get-windows-firewall-profile-settings-using-powershell","http://powershellhelp.space/commands/set-netfirewallrule-psv5.php","http://woshub.com/manage-windows-firewall-powershell/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.004","name":"Disable or Modify System Firewall","reference":"https://attack.mitre.org/techniques/T1562/004/"}]}]}],"language":"eql","query":"process where event.action == \"start\" and\n (process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") or process.pe.original_file_name == \"PowerShell.EXE\") and\n process.args : \"*Set-NetFirewallProfile*\" and\n (process.args : \"*-Enabled*\" and process.args : \"*False*\") and\n (process.args : \"*-All*\" or process.args : (\"*Public*\", \"*Domain*\", \"*Private*\"))\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f63c8e3c-d396-404f-b2ea-0379d3942d73:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f63c8e3c-d396-404f-b2ea-0379d3942d73:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f63c8e3c-d396-404f-b2ea-0379d3942d73:102.0.2.json new file mode 100644 index 0000000000000..692ecdb21972c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f63c8e3c-d396-404f-b2ea-0379d3942d73:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Windows Firewall Disabled via PowerShell v102.0.2","rule_id":"f63c8e3c-d396-404f-b2ea-0379d3942d73:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when the Windows Firewall is disabled using PowerShell cmdlets, which can help attackers evade network constraints, like internet and network lateral communication restrictions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Windows Firewall Disabled via PowerShell\n\nWindows Defender Firewall is a native component that provides host-based, two-way network traffic filtering for a\ndevice and blocks unauthorized network traffic flowing into or out of the local device.\n\nAttackers can disable the Windows firewall or its rules to enable lateral movement and command and control activity.\n\nThis rule identifies patterns related to disabling the Windows firewall or its rules using the `Set-NetFirewallProfile`\nPowerShell cmdlet.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Inspect the host for suspicious or abnormal behavior in the alert timeframe.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Check whether the user is an administrator and is legitimately performing\ntroubleshooting.\n- In case of an allowed benign true positive (B-TP), assess adding rules to allow needed traffic and re-enable the firewall.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Re-enable the firewall with its desired configurations.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Review the privileges assigned to the involved users to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Windows Firewall can be disabled by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Windows Profile being disabled by unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-9m","references":["https://docs.microsoft.com/en-us/powershell/module/netsecurity/set-netfirewallprofile?view=windowsserver2019-ps","https://www.tutorialspoint.com/how-to-get-windows-firewall-profile-settings-using-powershell","http://powershellhelp.space/commands/set-netfirewallrule-psv5.php","http://woshub.com/manage-windows-firewall-powershell/"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.004","name":"Disable or Modify System Firewall","reference":"https://attack.mitre.org/techniques/T1562/004/"}]}]}],"language":"eql","query":"process where event.action == \"start\" and\n (process.name : (\"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") or process.pe.original_file_name == \"PowerShell.EXE\") and\n process.args : \"*Set-NetFirewallProfile*\" and\n (process.args : \"*-Enabled*\" and process.args : \"*False*\") and\n (process.args : \"*-All*\" or process.args : (\"*Public*\", \"*Domain*\", \"*Private*\"))\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f63c8e3c-d396-404f-b2ea-0379d3942d73:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f675872f-6d85-40a3-b502-c0d2ef101e92:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f675872f-6d85-40a3-b502-c0d2ef101e92:102.0.0.json new file mode 100644 index 0000000000000..9b3e13a0f79eb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f675872f-6d85-40a3-b502-c0d2ef101e92:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Delete Volume USN Journal with Fsutil v102.0.0","rule_id":"f675872f-6d85-40a3-b502-c0d2ef101e92:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the fsutil.exe to delete the volume USNJRNL. This technique is used by attackers to eliminate evidence of files created during post-exploitation activities.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.004","name":"File Deletion","reference":"https://attack.mitre.org/techniques/T1070/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"fsutil.exe\" or process.pe.original_file_name == \"fsutil.exe\") and\n process.args : \"deletejournal\" and process.args : \"usn\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f675872f-6d85-40a3-b502-c0d2ef101e92:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f675872f-6d85-40a3-b502-c0d2ef101e92:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f675872f-6d85-40a3-b502-c0d2ef101e92:102.0.1.json new file mode 100644 index 0000000000000..f8043c3448500 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f675872f-6d85-40a3-b502-c0d2ef101e92:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Delete Volume USN Journal with Fsutil v102.0.1","rule_id":"f675872f-6d85-40a3-b502-c0d2ef101e92:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the fsutil.exe to delete the volume USNJRNL. This technique is used by attackers to eliminate evidence of files created during post-exploitation activities.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.004","name":"File Deletion","reference":"https://attack.mitre.org/techniques/T1070/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"fsutil.exe\" or process.pe.original_file_name == \"fsutil.exe\") and\n process.args : \"deletejournal\" and process.args : \"usn\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f675872f-6d85-40a3-b502-c0d2ef101e92:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f675872f-6d85-40a3-b502-c0d2ef101e92:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f675872f-6d85-40a3-b502-c0d2ef101e92:102.0.2.json new file mode 100644 index 0000000000000..2316c4bb41ef1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f675872f-6d85-40a3-b502-c0d2ef101e92:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Delete Volume USN Journal with Fsutil v102.0.2","rule_id":"f675872f-6d85-40a3-b502-c0d2ef101e92:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies use of the fsutil.exe to delete the volume USNJRNL. This technique is used by attackers to eliminate evidence of files created during post-exploitation activities.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1070","name":"Indicator Removal on Host","reference":"https://attack.mitre.org/techniques/T1070/","subtechnique":[{"id":"T1070.004","name":"File Deletion","reference":"https://attack.mitre.org/techniques/T1070/004/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"fsutil.exe\" or process.pe.original_file_name == \"fsutil.exe\") and\n process.args : \"deletejournal\" and process.args : \"usn\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f675872f-6d85-40a3-b502-c0d2ef101e92:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f683dcdf-a018-4801-b066-193d4ae6c8e5:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f683dcdf-a018-4801-b066-193d4ae6c8e5:100.0.0.json new file mode 100644 index 0000000000000..38159bdf45572 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f683dcdf-a018-4801-b066-193d4ae6c8e5:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"SoftwareUpdate Preferences Modification v100.0.0","rule_id":"f683dcdf-a018-4801-b066-193d4ae6c8e5:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies changes to the SoftwareUpdate preferences using the built-in defaults command. Adversaries may abuse this in an attempt to disable security updates.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Authorized SoftwareUpdate Settings Changes"],"from":"now-9m","references":["https://blog.checkpoint.com/2017/07/13/osxdok-refuses-go-away-money/"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:defaults and\n process.args:(write and \"-bool\" and (com.apple.SoftwareUpdate or /Library/Preferences/com.apple.SoftwareUpdate.plist) and not (TRUE or true))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"f683dcdf-a018-4801-b066-193d4ae6c8e5:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f683dcdf-a018-4801-b066-193d4ae6c8e5:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f683dcdf-a018-4801-b066-193d4ae6c8e5:100.0.1.json new file mode 100644 index 0000000000000..b96106e970cc3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f683dcdf-a018-4801-b066-193d4ae6c8e5:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"SoftwareUpdate Preferences Modification v100.0.1","rule_id":"f683dcdf-a018-4801-b066-193d4ae6c8e5:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies changes to the SoftwareUpdate preferences using the built-in defaults command. Adversaries may abuse this in an attempt to disable security updates.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Authorized SoftwareUpdate Settings Changes"],"from":"now-9m","references":["https://blog.checkpoint.com/2017/07/13/osxdok-refuses-go-away-money/"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:defaults and\n process.args:(write and \"-bool\" and (com.apple.SoftwareUpdate or /Library/Preferences/com.apple.SoftwareUpdate.plist) and not (TRUE or true))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"f683dcdf-a018-4801-b066-193d4ae6c8e5:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f683dcdf-a018-4801-b066-193d4ae6c8e5:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f683dcdf-a018-4801-b066-193d4ae6c8e5:100.0.2.json new file mode 100644 index 0000000000000..98fda75de1299 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f683dcdf-a018-4801-b066-193d4ae6c8e5:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"SoftwareUpdate Preferences Modification v100.0.2","rule_id":"f683dcdf-a018-4801-b066-193d4ae6c8e5:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies changes to the SoftwareUpdate preferences using the built-in defaults command. Adversaries may abuse this in an attempt to disable security updates.","risk_score":47,"severity":"medium","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Authorized SoftwareUpdate Settings Changes"],"from":"now-9m","references":["https://blog.checkpoint.com/2017/07/13/osxdok-refuses-go-away-money/"],"tags":["Elastic","Host","macOS","Threat Detection","Defense Evasion"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.name:defaults and\n process.args:(write and \"-bool\" and (com.apple.SoftwareUpdate or /Library/Preferences/com.apple.SoftwareUpdate.plist) and not (TRUE or true))\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}]},"id":"f683dcdf-a018-4801-b066-193d4ae6c8e5:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f766ffaf-9568-4909-b734-75d19b35cbf4:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f766ffaf-9568-4909-b734-75d19b35cbf4:101.0.0.json new file mode 100644 index 0000000000000..415c1a0a9e6be --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f766ffaf-9568-4909-b734-75d19b35cbf4:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Service Principal Credentials Added v101.0.0","rule_id":"f766ffaf-9568-4909-b734-75d19b35cbf4:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when new Service Principal credentials have been added in Azure. In most organizations, credentials will be added to service principals infrequently. Hijacking an application (by adding a rogue secret or certificate) with granted permissions will allow the attacker to access data that is normally protected by MFA requirements.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Service principal credential additions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Credential additions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","interval":"10m","references":["https://www.fireeye.com/content/dam/collateral/en/wp-m-unc2452.pdf"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1496","name":"Resource Hijacking","reference":"https://attack.mitre.org/techniques/T1496/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Add service principal credentials\" and event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"f766ffaf-9568-4909-b734-75d19b35cbf4:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f766ffaf-9568-4909-b734-75d19b35cbf4:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f766ffaf-9568-4909-b734-75d19b35cbf4:101.0.1.json new file mode 100644 index 0000000000000..44d629c16017b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f766ffaf-9568-4909-b734-75d19b35cbf4:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Service Principal Credentials Added v101.0.1","rule_id":"f766ffaf-9568-4909-b734-75d19b35cbf4:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when new Service Principal credentials have been added in Azure. In most organizations, credentials will be added to service principals infrequently. Hijacking an application (by adding a rogue secret or certificate) with granted permissions will allow the attacker to access data that is normally protected by MFA requirements.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Service principal credential additions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Credential additions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","interval":"10m","references":["https://www.fireeye.com/content/dam/collateral/en/wp-m-unc2452.pdf"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1496","name":"Resource Hijacking","reference":"https://attack.mitre.org/techniques/T1496/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Add service principal credentials\" and event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"f766ffaf-9568-4909-b734-75d19b35cbf4:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f766ffaf-9568-4909-b734-75d19b35cbf4:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f766ffaf-9568-4909-b734-75d19b35cbf4:101.0.2.json new file mode 100644 index 0000000000000..85d1fecafc6a7 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f766ffaf-9568-4909-b734-75d19b35cbf4:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Azure Service Principal Credentials Added v101.0.2","rule_id":"f766ffaf-9568-4909-b734-75d19b35cbf4:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when new Service Principal credentials have been added in Azure. In most organizations, credentials will be added to service principals infrequently. Hijacking an application (by adding a rogue secret or certificate) with granted permissions will allow the attacker to access data that is normally protected by MFA requirements.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"false_positives":["Service principal credential additions may be done by a system or network administrator. Verify whether the username, hostname, and/or resource name should be making changes in your environment. Credential additions from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-25m","interval":"10m","references":["https://www.fireeye.com/content/dam/collateral/en/wp-m-unc2452.pdf"],"tags":["Elastic","Cloud","Azure","Continuous Monitoring","SecOps","Identity and Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0040","name":"Impact","reference":"https://attack.mitre.org/tactics/TA0040/"},"technique":[{"id":"T1496","name":"Resource Hijacking","reference":"https://attack.mitre.org/techniques/T1496/"}]}],"type":"query","index":["filebeat-*","logs-azure*"],"language":"kuery","query":"event.dataset:azure.auditlogs and azure.auditlogs.operation_name:\"Add service principal credentials\" and event.outcome:(success or Success)\n","related_integrations":[{"package":"azure","version":"^1.0.0"}],"required_fields":[{"ecs":false,"name":"azure.auditlogs.operation_name","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"}],"setup":"The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"f766ffaf-9568-4909-b734-75d19b35cbf4:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f772ec8a-e182-483c-91d2-72058f76a44c:103.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f772ec8a-e182-483c-91d2-72058f76a44c:103.0.0.json new file mode 100644 index 0000000000000..c6df38eebfdf3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f772ec8a-e182-483c-91d2-72058f76a44c:103.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS CloudWatch Alarm Deletion v103.0.0","rule_id":"f772ec8a-e182-483c-91d2-72058f76a44c:103.0.0","rule_version":"103.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an AWS CloudWatch alarm. An adversary may delete alarms in an attempt to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudWatch Alarm Deletion\n\nAmazon CloudWatch is a monitoring and observability service that collects monitoring and operational data in the form of\nlogs, metrics, and events for resources and applications. This data can be used to detect anomalous behavior in your environments, set alarms, visualize\nlogs and metrics side by side, take automated actions, troubleshoot issues, and discover insights to keep your\napplications running smoothly.\n\nCloudWatch Alarms is a feature that allows you to watch CloudWatch metrics and to receive notifications when the metrics\nfall outside of the levels (high or low thresholds) that you configure.\n\nThis rule looks for the deletion of a alarm using the API `DeleteAlarms` action. Attackers can do this to cover their\ntracks and evade security defenses.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if there is a justification for this behavior.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Alarm deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudwatch/delete-alarms.html","https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DeleteAlarms.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:monitoring.amazonaws.com and event.action:DeleteAlarms and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"f772ec8a-e182-483c-91d2-72058f76a44c:103.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f772ec8a-e182-483c-91d2-72058f76a44c:103.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f772ec8a-e182-483c-91d2-72058f76a44c:103.0.1.json new file mode 100644 index 0000000000000..b8aad972e52e2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f772ec8a-e182-483c-91d2-72058f76a44c:103.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS CloudWatch Alarm Deletion v103.0.1","rule_id":"f772ec8a-e182-483c-91d2-72058f76a44c:103.0.1","rule_version":"103.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an AWS CloudWatch alarm. An adversary may delete alarms in an attempt to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudWatch Alarm Deletion\n\nAmazon CloudWatch is a monitoring and observability service that collects monitoring and operational data in the form of\nlogs, metrics, and events for resources and applications. This data can be used to detect anomalous behavior in your environments, set alarms, visualize\nlogs and metrics side by side, take automated actions, troubleshoot issues, and discover insights to keep your\napplications running smoothly.\n\nCloudWatch Alarms is a feature that allows you to watch CloudWatch metrics and to receive notifications when the metrics\nfall outside of the levels (high or low thresholds) that you configure.\n\nThis rule looks for the deletion of a alarm using the API `DeleteAlarms` action. Attackers can do this to cover their\ntracks and evade security defenses.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if there is a justification for this behavior.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Alarm deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudwatch/delete-alarms.html","https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DeleteAlarms.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:monitoring.amazonaws.com and event.action:DeleteAlarms and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"f772ec8a-e182-483c-91d2-72058f76a44c:103.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f772ec8a-e182-483c-91d2-72058f76a44c:103.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f772ec8a-e182-483c-91d2-72058f76a44c:103.0.2.json new file mode 100644 index 0000000000000..230f299d8eb77 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f772ec8a-e182-483c-91d2-72058f76a44c:103.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS CloudWatch Alarm Deletion v103.0.2","rule_id":"f772ec8a-e182-483c-91d2-72058f76a44c:103.0.2","rule_version":"103.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the deletion of an AWS CloudWatch alarm. An adversary may delete alarms in an attempt to evade defenses.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating AWS CloudWatch Alarm Deletion\n\nAmazon CloudWatch is a monitoring and observability service that collects monitoring and operational data in the form of\nlogs, metrics, and events for resources and applications. This data can be used to detect anomalous behavior in your environments, set alarms, visualize\nlogs and metrics side by side, take automated actions, troubleshoot issues, and discover insights to keep your\napplications running smoothly.\n\nCloudWatch Alarms is a feature that allows you to watch CloudWatch metrics and to receive notifications when the metrics\nfall outside of the levels (high or low thresholds) that you configure.\n\nThis rule looks for the deletion of a alarm using the API `DeleteAlarms` action. Attackers can do this to cover their\ntracks and evade security defenses.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate other alerts associated with the user account during the past 48 hours.\n- Contact the account and resource owners and confirm whether they are aware of this activity.\n- Check if there is a justification for this behavior.\n- Considering the source IP address and geolocation of the user who issued the command:\n - Do they look normal for the user?\n - If the source is an EC2 IP address, is it associated with an EC2 instance in one of your accounts or is the source\n IP from an EC2 instance that's not under your control?\n - If it is an authorized EC2 instance, is the activity associated with normal behavior for the instance role or roles?\n Are there any other alerts or signs of suspicious activity involving this instance?\n- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services,\nand data accessed by the account in the last 24 hours.\n\n### False positive analysis\n\n- If this rule is noisy in your environment due to expected activity, consider adding exceptions — preferably with a\ncombination of user and IP address conditions.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Disable or limit the account during the investigation and response.\n- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:\n - Identify the account role in the cloud environment.\n - Assess the criticality of affected services and servers.\n - Work with your IT team to identify and minimize the impact on users.\n - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.\n - Identify any regulatory or legal ramifications related to this activity.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with\nyour IT teams to minimize the impact on business operations during these actions.\n- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.\n- Consider enabling multi-factor authentication for users.\n- Review the permissions assigned to the implicated user to ensure that the least privilege principle is being followed.\n- Implement security best practices [outlined](https://aws.amazon.com/premiumsupport/knowledge-center/security-best-practices/) by AWS.\n- Take the actions needed to return affected systems, data, or services to their normal operational levels.\n- Identify the initial vector abused by the attacker and take action to prevent reinfection via the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Alarm deletions by unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudwatch/delete-alarms.html","https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DeleteAlarms.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:monitoring.amazonaws.com and event.action:DeleteAlarms and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"f772ec8a-e182-483c-91d2-72058f76a44c:103.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f7c4dc5a-a58d-491d-9f14-9b66507121c0:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f7c4dc5a-a58d-491d-9f14-9b66507121c0:102.0.0.json new file mode 100644 index 0000000000000..811ec22fe57ce --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f7c4dc5a-a58d-491d-9f14-9b66507121c0:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistent Scripts in the Startup Directory v102.0.0","rule_id":"f7c4dc5a-a58d-491d-9f14-9b66507121c0:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies script engines creating files in the Startup folder, or the creation of script files in the Startup folder. Adversaries may abuse this technique to maintain persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Persistent Scripts in the Startup Directory\n\nThe Windows Startup folder is a special folder in Windows. Programs added to this folder are executed during account\nlogon, without user interaction, providing an excellent way for attackers to maintain persistence.\n\nThis rule looks for shortcuts created by wscript.exe or cscript.exe, or js/vbs scripts created by any process.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- Suspicious Startup Shell Folder Modification - c8b150f0-0164-475b-a75e-74b47800a9ff\n- Startup Folder Persistence via Unsigned Process - 2fba96c0-ade5-4bce-b92f-a5df2509da3f\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and user.domain != \"NT AUTHORITY\" and\n\n /* detect shortcuts created by wscript.exe or cscript.exe */\n (file.path : \"C:\\\\*\\\\Programs\\\\Startup\\\\*.lnk\" and\n process.name : (\"wscript.exe\", \"cscript.exe\")) or\n\n /* detect vbs or js files created by any process */\n file.path : (\"C:\\\\*\\\\Programs\\\\Startup\\\\*.vbs\",\n \"C:\\\\*\\\\Programs\\\\Startup\\\\*.vbe\",\n \"C:\\\\*\\\\Programs\\\\Startup\\\\*.wsh\",\n \"C:\\\\*\\\\Programs\\\\Startup\\\\*.wsf\",\n \"C:\\\\*\\\\Programs\\\\Startup\\\\*.js\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f7c4dc5a-a58d-491d-9f14-9b66507121c0:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f7c4dc5a-a58d-491d-9f14-9b66507121c0:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f7c4dc5a-a58d-491d-9f14-9b66507121c0:102.0.1.json new file mode 100644 index 0000000000000..631cf0a5f53ca --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f7c4dc5a-a58d-491d-9f14-9b66507121c0:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistent Scripts in the Startup Directory v102.0.1","rule_id":"f7c4dc5a-a58d-491d-9f14-9b66507121c0:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies script engines creating files in the Startup folder, or the creation of script files in the Startup folder. Adversaries may abuse this technique to maintain persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Persistent Scripts in the Startup Directory\n\nThe Windows Startup folder is a special folder in Windows. Programs added to this folder are executed during account\nlogon, without user interaction, providing an excellent way for attackers to maintain persistence.\n\nThis rule looks for shortcuts created by wscript.exe or cscript.exe, or js/vbs scripts created by any process.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- Suspicious Startup Shell Folder Modification - c8b150f0-0164-475b-a75e-74b47800a9ff\n- Startup Folder Persistence via Unsigned Process - 2fba96c0-ade5-4bce-b92f-a5df2509da3f\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and user.domain != \"NT AUTHORITY\" and\n\n /* detect shortcuts created by wscript.exe or cscript.exe */\n (file.path : \"C:\\\\*\\\\Programs\\\\Startup\\\\*.lnk\" and\n process.name : (\"wscript.exe\", \"cscript.exe\")) or\n\n /* detect vbs or js files created by any process */\n file.path : (\"C:\\\\*\\\\Programs\\\\Startup\\\\*.vbs\",\n \"C:\\\\*\\\\Programs\\\\Startup\\\\*.vbe\",\n \"C:\\\\*\\\\Programs\\\\Startup\\\\*.wsh\",\n \"C:\\\\*\\\\Programs\\\\Startup\\\\*.wsf\",\n \"C:\\\\*\\\\Programs\\\\Startup\\\\*.js\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f7c4dc5a-a58d-491d-9f14-9b66507121c0:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f7c4dc5a-a58d-491d-9f14-9b66507121c0:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f7c4dc5a-a58d-491d-9f14-9b66507121c0:102.0.2.json new file mode 100644 index 0000000000000..fade11eb7999d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f7c4dc5a-a58d-491d-9f14-9b66507121c0:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Persistent Scripts in the Startup Directory v102.0.2","rule_id":"f7c4dc5a-a58d-491d-9f14-9b66507121c0:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies script engines creating files in the Startup folder, or the creation of script files in the Startup folder. Adversaries may abuse this technique to maintain persistence in an environment.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Persistent Scripts in the Startup Directory\n\nThe Windows Startup folder is a special folder in Windows. Programs added to this folder are executed during account\nlogon, without user interaction, providing an excellent way for attackers to maintain persistence.\n\nThis rule looks for shortcuts created by wscript.exe or cscript.exe, or js/vbs scripts created by any process.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Assess whether this behavior is prevalent in the environment by looking for similar occurrences across hosts.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the file using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Related rules\n\n- Suspicious Startup Shell Folder Modification - c8b150f0-0164-475b-a75e-74b47800a9ff\n- Startup Folder Persistence via Unsigned Process - 2fba96c0-ade5-4bce-b92f-a5df2509da3f\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1547","name":"Boot or Logon Autostart Execution","reference":"https://attack.mitre.org/techniques/T1547/","subtechnique":[{"id":"T1547.001","name":"Registry Run Keys / Startup Folder","reference":"https://attack.mitre.org/techniques/T1547/001/"}]}]}],"language":"eql","query":"file where event.type != \"deletion\" and user.domain != \"NT AUTHORITY\" and\n\n /* detect shortcuts created by wscript.exe or cscript.exe */\n (file.path : \"C:\\\\*\\\\Programs\\\\Startup\\\\*.lnk\" and\n process.name : (\"wscript.exe\", \"cscript.exe\")) or\n\n /* detect vbs or js files created by any process */\n file.path : (\"C:\\\\*\\\\Programs\\\\Startup\\\\*.vbs\",\n \"C:\\\\*\\\\Programs\\\\Startup\\\\*.vbe\",\n \"C:\\\\*\\\\Programs\\\\Startup\\\\*.wsh\",\n \"C:\\\\*\\\\Programs\\\\Startup\\\\*.wsf\",\n \"C:\\\\*\\\\Programs\\\\Startup\\\\*.js\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"file.path","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"user.domain","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f7c4dc5a-a58d-491d-9f14-9b66507121c0:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f81ee52c-297e-46d9-9205-07e66931df26:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f81ee52c-297e-46d9-9205-07e66931df26:100.0.0.json new file mode 100644 index 0000000000000..a2911b1779392 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f81ee52c-297e-46d9-9205-07e66931df26:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft Exchange Worker Spawning Suspicious Processes v100.0.0","rule_id":"f81ee52c-297e-46d9-9205-07e66931df26:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious processes being spawned by the Microsoft Exchange Server worker process (w3wp). This activity may indicate exploitation activity or access to an existing web shell backdoor.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2021/03/02/hafnium-targeting-exchange-servers","https://www.volexity.com/blog/2021/03/02/active-exploitation-of-microsoft-exchange-zero-day-vulnerabilities","https://discuss.elastic.co/t/detection-and-response-for-hafnium-activity/266289"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"w3wp.exe\" and process.parent.args : \"MSExchange*AppPool\" and\n (process.name : (\"cmd.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") or\n process.pe.original_file_name in (\"cmd.exe\", \"powershell.exe\", \"pwsh.dll\", \"powershell_ise.exe\"))\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f81ee52c-297e-46d9-9205-07e66931df26:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f81ee52c-297e-46d9-9205-07e66931df26:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f81ee52c-297e-46d9-9205-07e66931df26:100.0.1.json new file mode 100644 index 0000000000000..5711e49558095 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f81ee52c-297e-46d9-9205-07e66931df26:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft Exchange Worker Spawning Suspicious Processes v100.0.1","rule_id":"f81ee52c-297e-46d9-9205-07e66931df26:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious processes being spawned by the Microsoft Exchange Server worker process (w3wp). This activity may indicate exploitation activity or access to an existing web shell backdoor.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2021/03/02/hafnium-targeting-exchange-servers","https://www.volexity.com/blog/2021/03/02/active-exploitation-of-microsoft-exchange-zero-day-vulnerabilities","https://discuss.elastic.co/t/detection-and-response-for-hafnium-activity/266289"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"w3wp.exe\" and process.parent.args : \"MSExchange*AppPool\" and\n (process.name : (\"cmd.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") or\n process.pe.original_file_name in (\"cmd.exe\", \"powershell.exe\", \"pwsh.dll\", \"powershell_ise.exe\"))\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f81ee52c-297e-46d9-9205-07e66931df26:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f81ee52c-297e-46d9-9205-07e66931df26:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f81ee52c-297e-46d9-9205-07e66931df26:100.0.2.json new file mode 100644 index 0000000000000..a3fe4ad677241 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f81ee52c-297e-46d9-9205-07e66931df26:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft Exchange Worker Spawning Suspicious Processes v100.0.2","rule_id":"f81ee52c-297e-46d9-9205-07e66931df26:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious processes being spawned by the Microsoft Exchange Server worker process (w3wp). This activity may indicate exploitation activity or access to an existing web shell backdoor.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://www.microsoft.com/security/blog/2021/03/02/hafnium-targeting-exchange-servers","https://www.volexity.com/blog/2021/03/02/active-exploitation-of-microsoft-exchange-zero-day-vulnerabilities","https://discuss.elastic.co/t/detection-and-response-for-hafnium-activity/266289"],"tags":["Elastic","Host","Windows","Threat Detection","Initial Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1190","name":"Exploit Public-Facing Application","reference":"https://attack.mitre.org/techniques/T1190/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.parent.name : \"w3wp.exe\" and process.parent.args : \"MSExchange*AppPool\" and\n (process.name : (\"cmd.exe\", \"powershell.exe\", \"pwsh.exe\", \"powershell_ise.exe\") or\n process.pe.original_file_name in (\"cmd.exe\", \"powershell.exe\", \"pwsh.dll\", \"powershell_ise.exe\"))\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f81ee52c-297e-46d9-9205-07e66931df26:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f85ce03f-d8a8-4c83-acdc-5c8cd0592be7:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f85ce03f-d8a8-4c83-acdc-5c8cd0592be7:100.0.0.json new file mode 100644 index 0000000000000..c0da0b9a31eeb --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f85ce03f-d8a8-4c83-acdc-5c8cd0592be7:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Child Process of Adobe Acrobat Reader Update Service v100.0.0","rule_id":"f85ce03f-d8a8-4c83-acdc-5c8cd0592be7:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to exploit privilege escalation vulnerabilities related to the Adobe Acrobat Reader PrivilegedHelperTool responsible for installing updates. For more information, refer to CVE-2020-9615, CVE-2020-9614 and CVE-2020-9613 and verify that the impacted system is patched.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted system or Adobe Acrobat Related processes."],"from":"now-9m","references":["https://rekken.github.io/2020/05/14/Security-Flaws-in-Adobe-Acrobat-Reader-Allow-Malicious-Program-to-Gain-Root-on-macOS-Silently/"],"tags":["Elastic","Host","macOS","Threat Detection","Privilege Escalation","CVE-2020-9615","CVE-2020-9614","CVE-2020-9613"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.parent.name:com.adobe.ARMDC.SMJobBlessHelper and\n user.name:root and\n not process.executable: (/Library/PrivilegedHelperTools/com.adobe.ARMDC.SMJobBlessHelper or\n /usr/bin/codesign or\n /private/var/folders/zz/*/T/download/ARMDCHammer or\n /usr/sbin/pkgutil or\n /usr/bin/shasum or\n /usr/bin/perl* or\n /usr/sbin/spctl or\n /usr/sbin/installer or\n /usr/bin/csrutil)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"f85ce03f-d8a8-4c83-acdc-5c8cd0592be7:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f85ce03f-d8a8-4c83-acdc-5c8cd0592be7:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f85ce03f-d8a8-4c83-acdc-5c8cd0592be7:100.0.1.json new file mode 100644 index 0000000000000..dc6acc0f376ad --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f85ce03f-d8a8-4c83-acdc-5c8cd0592be7:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Child Process of Adobe Acrobat Reader Update Service v100.0.1","rule_id":"f85ce03f-d8a8-4c83-acdc-5c8cd0592be7:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to exploit privilege escalation vulnerabilities related to the Adobe Acrobat Reader PrivilegedHelperTool responsible for installing updates. For more information, refer to CVE-2020-9615, CVE-2020-9614 and CVE-2020-9613 and verify that the impacted system is patched.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted system or Adobe Acrobat Related processes."],"from":"now-9m","references":["https://rekken.github.io/2020/05/14/Security-Flaws-in-Adobe-Acrobat-Reader-Allow-Malicious-Program-to-Gain-Root-on-macOS-Silently/"],"tags":["Elastic","Host","macOS","Threat Detection","Privilege Escalation","CVE-2020-9615","CVE-2020-9614","CVE-2020-9613"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.parent.name:com.adobe.ARMDC.SMJobBlessHelper and\n user.name:root and\n not process.executable: (/Library/PrivilegedHelperTools/com.adobe.ARMDC.SMJobBlessHelper or\n /usr/bin/codesign or\n /private/var/folders/zz/*/T/download/ARMDCHammer or\n /usr/sbin/pkgutil or\n /usr/bin/shasum or\n /usr/bin/perl* or\n /usr/sbin/spctl or\n /usr/sbin/installer or\n /usr/bin/csrutil)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"f85ce03f-d8a8-4c83-acdc-5c8cd0592be7:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f85ce03f-d8a8-4c83-acdc-5c8cd0592be7:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f85ce03f-d8a8-4c83-acdc-5c8cd0592be7:100.0.2.json new file mode 100644 index 0000000000000..e72e8e5b709e3 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f85ce03f-d8a8-4c83-acdc-5c8cd0592be7:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Child Process of Adobe Acrobat Reader Update Service v100.0.2","rule_id":"f85ce03f-d8a8-4c83-acdc-5c8cd0592be7:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects attempts to exploit privilege escalation vulnerabilities related to the Adobe Acrobat Reader PrivilegedHelperTool responsible for installing updates. For more information, refer to CVE-2020-9615, CVE-2020-9614 and CVE-2020-9613 and verify that the impacted system is patched.","risk_score":73,"severity":"high","license":"Elastic License v2","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Trusted system or Adobe Acrobat Related processes."],"from":"now-9m","references":["https://rekken.github.io/2020/05/14/Security-Flaws-in-Adobe-Acrobat-Reader-Allow-Malicious-Program-to-Gain-Root-on-macOS-Silently/"],"tags":["Elastic","Host","macOS","Threat Detection","Privilege Escalation","CVE-2020-9615","CVE-2020-9614","CVE-2020-9613"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1068","name":"Exploitation for Privilege Escalation","reference":"https://attack.mitre.org/techniques/T1068/"}]}],"type":"query","index":["auditbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:process and event.type:(start or process_started) and\n process.parent.name:com.adobe.ARMDC.SMJobBlessHelper and\n user.name:root and\n not process.executable: (/Library/PrivilegedHelperTools/com.adobe.ARMDC.SMJobBlessHelper or\n /usr/bin/codesign or\n /private/var/folders/zz/*/T/download/ARMDCHammer or\n /usr/sbin/pkgutil or\n /usr/bin/shasum or\n /usr/bin/perl* or\n /usr/sbin/spctl or\n /usr/sbin/installer or\n /usr/bin/csrutil)\n","required_fields":[{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":true,"name":"user.name","type":"keyword"}]},"id":"f85ce03f-d8a8-4c83-acdc-5c8cd0592be7:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f874315d-5188-4b4a-8521-d1c73093a7e4:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f874315d-5188-4b4a-8521-d1c73093a7e4:102.0.0.json new file mode 100644 index 0000000000000..ed600bbe1144f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f874315d-5188-4b4a-8521-d1c73093a7e4:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Modification of AmsiEnable Registry Key v102.0.0","rule_id":"f874315d-5188-4b4a-8521-d1c73093a7e4:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications of the AmsiEnable registry key to 0, which disables the Antimalware Scan Interface (AMSI). An adversary can modify this key to disable AMSI protections.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Modification of AmsiEnable Registry Key\n\nThe Windows Antimalware Scan Interface (AMSI) is a versatile interface standard that allows your applications and\nservices to integrate with any antimalware product that's present on a machine. AMSI provides integration with multiple\nWindows components, ranging from User Account Control (UAC) to VBA Macros.\n\nSince AMSI is widely used across security products for increased visibility, attackers can disable it to evade\ndetections that rely on it.\n\nThis rule monitors the modifications to the Software\\Microsoft\\Windows Script\\Settings\\AmsiEnable registry key.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate the execution of scripts and macros after the registry modification.\n- Retrieve scripts or Microsoft Office files and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Use process name, command line, and file hash to search for occurrences on other hosts.\n\n### False positive analysis\n\n- This modification should not happen legitimately. Any potential benign true positive (B-TP) should be mapped and\nmonitored by the security team, as these modifications expose the host to malware infections.\n\n### Related rules\n\n- Microsoft Windows Defender Tampering - fe794edd-487f-4a90-b285-3ee54f2af2d3\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Delete or set the key to its default value.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://hackinparis.com/data/slides/2019/talks/HIP2019-Dominic_Chell-Cracking_The_Perimeter_With_Sharpshooter.pdf","https://docs.microsoft.com/en-us/windows/win32/amsi/antimalware-scan-interface-portal"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n registry.path : (\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows Script\\\\Settings\\\\AmsiEnable\",\n \"HKU\\\\*\\\\Software\\\\Microsoft\\\\Windows Script\\\\Settings\\\\AmsiEnable\",\n \"\\\\REGISTRY\\\\USER\\\\*\\\\Software\\\\Microsoft\\\\Windows Script\\\\Settings\\\\AmsiEnable\"\n ) and\n registry.data.strings: (\"0\", \"0x00000000\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f874315d-5188-4b4a-8521-d1c73093a7e4:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f874315d-5188-4b4a-8521-d1c73093a7e4:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f874315d-5188-4b4a-8521-d1c73093a7e4:102.0.1.json new file mode 100644 index 0000000000000..ab730022d8b42 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f874315d-5188-4b4a-8521-d1c73093a7e4:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Modification of AmsiEnable Registry Key v102.0.1","rule_id":"f874315d-5188-4b4a-8521-d1c73093a7e4:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications of the AmsiEnable registry key to 0, which disables the Antimalware Scan Interface (AMSI). An adversary can modify this key to disable AMSI protections.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Modification of AmsiEnable Registry Key\n\nThe Windows Antimalware Scan Interface (AMSI) is a versatile interface standard that allows your applications and\nservices to integrate with any antimalware product that's present on a machine. AMSI provides integration with multiple\nWindows components, ranging from User Account Control (UAC) to VBA Macros.\n\nSince AMSI is widely used across security products for increased visibility, attackers can disable it to evade\ndetections that rely on it.\n\nThis rule monitors the modifications to the Software\\Microsoft\\Windows Script\\Settings\\AmsiEnable registry key.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate the execution of scripts and macros after the registry modification.\n- Retrieve scripts or Microsoft Office files and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Use process name, command line, and file hash to search for occurrences on other hosts.\n\n### False positive analysis\n\n- This modification should not happen legitimately. Any potential benign true positive (B-TP) should be mapped and\nmonitored by the security team, as these modifications expose the host to malware infections.\n\n### Related rules\n\n- Microsoft Windows Defender Tampering - fe794edd-487f-4a90-b285-3ee54f2af2d3\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Delete or set the key to its default value.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://hackinparis.com/data/slides/2019/talks/HIP2019-Dominic_Chell-Cracking_The_Perimeter_With_Sharpshooter.pdf","https://docs.microsoft.com/en-us/windows/win32/amsi/antimalware-scan-interface-portal"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n registry.path : (\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows Script\\\\Settings\\\\AmsiEnable\",\n \"HKU\\\\*\\\\Software\\\\Microsoft\\\\Windows Script\\\\Settings\\\\AmsiEnable\",\n \"\\\\REGISTRY\\\\USER\\\\*\\\\Software\\\\Microsoft\\\\Windows Script\\\\Settings\\\\AmsiEnable\"\n ) and\n registry.data.strings: (\"0\", \"0x00000000\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f874315d-5188-4b4a-8521-d1c73093a7e4:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f874315d-5188-4b4a-8521-d1c73093a7e4:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f874315d-5188-4b4a-8521-d1c73093a7e4:102.0.2.json new file mode 100644 index 0000000000000..624fe5b77c0b6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f874315d-5188-4b4a-8521-d1c73093a7e4:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Modification of AmsiEnable Registry Key v102.0.2","rule_id":"f874315d-5188-4b4a-8521-d1c73093a7e4:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies modifications of the AmsiEnable registry key to 0, which disables the Antimalware Scan Interface (AMSI). An adversary can modify this key to disable AMSI protections.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Modification of AmsiEnable Registry Key\n\nThe Windows Antimalware Scan Interface (AMSI) is a versatile interface standard that allows your applications and\nservices to integrate with any antimalware product that's present on a machine. AMSI provides integration with multiple\nWindows components, ranging from User Account Control (UAC) to VBA Macros.\n\nSince AMSI is widely used across security products for increased visibility, attackers can disable it to evade\ndetections that rely on it.\n\nThis rule monitors the modifications to the Software\\Microsoft\\Windows Script\\Settings\\AmsiEnable registry key.\n\n#### Possible investigation steps\n\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate the execution of scripts and macros after the registry modification.\n- Retrieve scripts or Microsoft Office files and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n- Use process name, command line, and file hash to search for occurrences on other hosts.\n\n### False positive analysis\n\n- This modification should not happen legitimately. Any potential benign true positive (B-TP) should be mapped and\nmonitored by the security team, as these modifications expose the host to malware infections.\n\n### Related rules\n\n- Microsoft Windows Defender Tampering - fe794edd-487f-4a90-b285-3ee54f2af2d3\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Delete or set the key to its default value.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://hackinparis.com/data/slides/2019/talks/HIP2019-Dominic_Chell-Cracking_The_Perimeter_With_Sharpshooter.pdf","https://docs.microsoft.com/en-us/windows/win32/amsi/antimalware-scan-interface-portal"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n registry.path : (\n \"HKEY_USERS\\\\*\\\\Software\\\\Microsoft\\\\Windows Script\\\\Settings\\\\AmsiEnable\",\n \"HKU\\\\*\\\\Software\\\\Microsoft\\\\Windows Script\\\\Settings\\\\AmsiEnable\",\n \"\\\\REGISTRY\\\\USER\\\\*\\\\Software\\\\Microsoft\\\\Windows Script\\\\Settings\\\\AmsiEnable\"\n ) and\n registry.data.strings: (\"0\", \"0x00000000\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f874315d-5188-4b4a-8521-d1c73093a7e4:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f9590f47-6bd5-4a49-bd49-a2f886476fb9:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f9590f47-6bd5-4a49-bd49-a2f886476fb9:100.0.0.json new file mode 100644 index 0000000000000..472009928c862 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f9590f47-6bd5-4a49-bd49-a2f886476fb9:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Linux System Network Configuration Discovery v100.0.0","rule_id":"f9590f47-6bd5-4a49-bd49-a2f886476fb9:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for commands related to system network configuration discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used by a threat actor to engage in system network configuration discovery in order to increase their understanding of connected networks and hosts. This information may be used to shape follow-up behaviors such as lateral movement or additional discovery.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user command activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1016","name":"System Network Configuration Discovery","reference":"https://attack.mitre.org/techniques/T1016/"}]}],"anomaly_threshold":25,"machine_learning_job_id":["v3_linux_network_configuration_discovery"],"type":"machine_learning"},"id":"f9590f47-6bd5-4a49-bd49-a2f886476fb9:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f9590f47-6bd5-4a49-bd49-a2f886476fb9:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f9590f47-6bd5-4a49-bd49-a2f886476fb9:100.0.1.json new file mode 100644 index 0000000000000..7ae9eb33abd5d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f9590f47-6bd5-4a49-bd49-a2f886476fb9:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Linux System Network Configuration Discovery v100.0.1","rule_id":"f9590f47-6bd5-4a49-bd49-a2f886476fb9:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for commands related to system network configuration discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used by a threat actor to engage in system network configuration discovery in order to increase their understanding of connected networks and hosts. This information may be used to shape follow-up behaviors such as lateral movement or additional discovery.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user command activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1016","name":"System Network Configuration Discovery","reference":"https://attack.mitre.org/techniques/T1016/"}]}],"anomaly_threshold":25,"machine_learning_job_id":["v3_linux_network_configuration_discovery"],"type":"machine_learning"},"id":"f9590f47-6bd5-4a49-bd49-a2f886476fb9:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f9590f47-6bd5-4a49-bd49-a2f886476fb9:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f9590f47-6bd5-4a49-bd49-a2f886476fb9:100.0.2.json new file mode 100644 index 0000000000000..283f91614aad4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f9590f47-6bd5-4a49-bd49-a2f886476fb9:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Unusual Linux System Network Configuration Discovery v100.0.2","rule_id":"f9590f47-6bd5-4a49-bd49-a2f886476fb9:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Looks for commands related to system network configuration discovery from an unusual user context. This can be due to uncommon troubleshooting activity or due to a compromised account. A compromised account may be used by a threat actor to engage in system network configuration discovery in order to increase their understanding of connected networks and hosts. This information may be used to shape follow-up behaviors such as lateral movement or additional discovery.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Uncommon user command activity can be due to an engineer logging onto a server instance in order to perform manual troubleshooting or reconfiguration."],"from":"now-45m","interval":"15m","tags":["Elastic","Host","Linux","Threat Detection","ML"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0007","name":"Discovery","reference":"https://attack.mitre.org/tactics/TA0007/"},"technique":[{"id":"T1016","name":"System Network Configuration Discovery","reference":"https://attack.mitre.org/techniques/T1016/"}]}],"anomaly_threshold":25,"machine_learning_job_id":["v3_linux_network_configuration_discovery"],"type":"machine_learning"},"id":"f9590f47-6bd5-4a49-bd49-a2f886476fb9:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f9790abf-bd0c-45f9-8b5f-d0b74015e029:1.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f9790abf-bd0c-45f9-8b5f-d0b74015e029:1.0.0.json new file mode 100644 index 0000000000000..18b4ffb8d556c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f9790abf-bd0c-45f9-8b5f-d0b74015e029:1.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Privileged Account Brute Force v1.0.0","rule_id":"f9790abf-bd0c-45f9-8b5f-d0b74015e029:1.0.0","rule_version":"1.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple consecutive logon failures targeting an Admin account from the same source address and within a short time interval. Adversaries will often brute force login attempts across multiple users with a common or known password, in an attempt to gain access to accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n#### Possible investigation steps\n\n- Investigate the logon failure reason code and the targeted user names.\n- Investigate the source IP address of the failed Network Logon attempts.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Trust relationship between the primary domain and the trusted domain issue.\n- Infrastructure or availability issue.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the host is a domain controller (DC):\n - Activate your incident response plan for total Active Directory compromise.\n - Review the privileges assigned to users that can access the DCs, to ensure that the least privilege principle is\n being followed and to reduce the attack surface.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4625"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip with maxspan=10s\n [authentication where event.action == \"logon-failed\" and\n winlog.logon.type : \"Network\" and\n source.ip != null and source.ip != \"127.0.0.1\" and source.ip != \"::1\" and user.name : \"*admin*\" and\n\n /* noisy failure status codes often associated to authentication misconfiguration */\n not winlog.event_data.Status : (\"0xC000015B\", \"0XC000005E\", \"0XC0000133\", \"0XC0000192\")] with runs=5\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.Status","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f9790abf-bd0c-45f9-8b5f-d0b74015e029:1.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f9790abf-bd0c-45f9-8b5f-d0b74015e029:1.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f9790abf-bd0c-45f9-8b5f-d0b74015e029:1.0.1.json new file mode 100644 index 0000000000000..cb060c049a929 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f9790abf-bd0c-45f9-8b5f-d0b74015e029:1.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Privileged Account Brute Force v1.0.1","rule_id":"f9790abf-bd0c-45f9-8b5f-d0b74015e029:1.0.1","rule_version":"1.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple consecutive logon failures targeting an Admin account from the same source address and within a short time interval. Adversaries will often brute force login attempts across multiple users with a common or known password, in an attempt to gain access to accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n#### Possible investigation steps\n\n- Investigate the logon failure reason code and the targeted user names.\n- Investigate the source IP address of the failed Network Logon attempts.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Trust relationship between the primary domain and the trusted domain issue.\n- Infrastructure or availability issue.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the host is a domain controller (DC):\n - Activate your incident response plan for total Active Directory compromise.\n - Review the privileges assigned to users that can access the DCs, to ensure that the least privilege principle is\n being followed and to reduce the attack surface.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4625"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip with maxspan=10s\n [authentication where event.action == \"logon-failed\" and\n winlog.logon.type : \"Network\" and\n source.ip != null and source.ip != \"127.0.0.1\" and source.ip != \"::1\" and user.name : \"*admin*\" and\n\n /* noisy failure status codes often associated to authentication misconfiguration */\n not winlog.event_data.Status : (\"0xC000015B\", \"0XC000005E\", \"0XC0000133\", \"0XC0000192\")] with runs=5\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.Status","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f9790abf-bd0c-45f9-8b5f-d0b74015e029:1.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f9790abf-bd0c-45f9-8b5f-d0b74015e029:1.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f9790abf-bd0c-45f9-8b5f-d0b74015e029:1.0.2.json new file mode 100644 index 0000000000000..29bab46350c6f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f9790abf-bd0c-45f9-8b5f-d0b74015e029:1.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Privileged Account Brute Force v1.0.2","rule_id":"f9790abf-bd0c-45f9-8b5f-d0b74015e029:1.0.2","rule_version":"1.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies multiple consecutive logon failures targeting an Admin account from the same source address and within a short time interval. Adversaries will often brute force login attempts across multiple users with a common or known password, in an attempt to gain access to accounts.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n#### Possible investigation steps\n\n- Investigate the logon failure reason code and the targeted user names.\n- Investigate the source IP address of the failed Network Logon attempts.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Identify the source and the target computer and their roles in the IT environment.\n\n### False positive analysis\n\n- Authentication misconfiguration or obsolete credentials.\n- Service account password expired.\n- Trust relationship between the primary domain and the trusted domain issue.\n- Infrastructure or availability issue.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- If the host is a domain controller (DC):\n - Activate your incident response plan for total Active Directory compromise.\n - Review the privileges assigned to users that can access the DCs, to ensure that the least privilege principle is\n being followed and to reduce the attack surface.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","author":["Elastic"],"from":"now-9m","references":["https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4625"],"tags":["Elastic","Host","Windows","Threat Detection","Credential Access"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0006","name":"Credential Access","reference":"https://attack.mitre.org/tactics/TA0006/"},"technique":[{"id":"T1110","name":"Brute Force","reference":"https://attack.mitre.org/techniques/T1110/","subtechnique":[{"id":"T1110.001","name":"Password Guessing","reference":"https://attack.mitre.org/techniques/T1110/001/"},{"id":"T1110.003","name":"Password Spraying","reference":"https://attack.mitre.org/techniques/T1110/003/"}]}]}],"language":"eql","query":"sequence by host.id, source.ip with maxspan=10s\n [authentication where event.action == \"logon-failed\" and\n winlog.logon.type : \"Network\" and\n source.ip != null and source.ip != \"127.0.0.1\" and source.ip != \"::1\" and user.name : \"*admin*\" and\n\n /* noisy failure status codes often associated to authentication misconfiguration */\n not winlog.event_data.Status : (\"0xC000015B\", \"0XC000005E\", \"0XC0000133\", \"0XC0000192\")] with runs=5\n","type":"eql","index":["winlogbeat-*","logs-system.*"],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"host.id","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"user.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.Status","type":"keyword"},{"ecs":false,"name":"winlog.logon.type","type":"unknown"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"f9790abf-bd0c-45f9-8b5f-d0b74015e029:1.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f994964f-6fce-4d75-8e79-e16ccc412588:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f994964f-6fce-4d75-8e79-e16ccc412588:102.0.0.json new file mode 100644 index 0000000000000..d4b8c0b02900d --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f994964f-6fce-4d75-8e79-e16ccc412588:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Activity Reported by Okta User v102.0.0","rule_id":"f994964f-6fce-4d75-8e79-e16ccc412588:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a user reports suspicious activity for their Okta account. These events should be investigated, as they can help security teams identify when an adversary is attempting to gain access to their network.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A user may report suspicious activity on their Okta account in error."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.account.report_suspicious_activity_by_enduser\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"f994964f-6fce-4d75-8e79-e16ccc412588:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f994964f-6fce-4d75-8e79-e16ccc412588:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f994964f-6fce-4d75-8e79-e16ccc412588:102.0.1.json new file mode 100644 index 0000000000000..80cb79b489b0a --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f994964f-6fce-4d75-8e79-e16ccc412588:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Activity Reported by Okta User v102.0.1","rule_id":"f994964f-6fce-4d75-8e79-e16ccc412588:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a user reports suspicious activity for their Okta account. These events should be investigated, as they can help security teams identify when an adversary is attempting to gain access to their network.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A user may report suspicious activity on their Okta account in error."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.account.report_suspicious_activity_by_enduser\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"f994964f-6fce-4d75-8e79-e16ccc412588:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/f994964f-6fce-4d75-8e79-e16ccc412588:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/f994964f-6fce-4d75-8e79-e16ccc412588:102.0.2.json new file mode 100644 index 0000000000000..9a12cecb302c0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/f994964f-6fce-4d75-8e79-e16ccc412588:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious Activity Reported by Okta User v102.0.2","rule_id":"f994964f-6fce-4d75-8e79-e16ccc412588:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects when a user reports suspicious activity for their Okta account. These events should be investigated, as they can help security teams identify when an adversary is attempting to gain access to their network.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A user may report suspicious activity on their Okta account in error."],"references":["https://developer.okta.com/docs/reference/api/system-log/","https://developer.okta.com/docs/reference/api/event-types/","https://www.elastic.co/security-labs/testing-okta-visibility-and-detection-dorothy"],"tags":["Elastic","Identity","Okta","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0001","name":"Initial Access","reference":"https://attack.mitre.org/tactics/TA0001/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1078","name":"Valid Accounts","reference":"https://attack.mitre.org/techniques/T1078/"}]}],"type":"query","index":["filebeat-*","logs-okta*"],"language":"kuery","query":"event.dataset:okta.system and event.action:user.account.report_suspicious_activity_by_enduser\n","related_integrations":[{"package":"okta","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The Okta Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"f994964f-6fce-4d75-8e79-e16ccc412588:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/fa01341d-6662-426b-9d0c-6d81e33c8a9d:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/fa01341d-6662-426b-9d0c-6d81e33c8a9d:101.0.0.json new file mode 100644 index 0000000000000..379247ae31614 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/fa01341d-6662-426b-9d0c-6d81e33c8a9d:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote File Copy to a Hidden Share v101.0.0","rule_id":"fa01341d-6662-426b-9d0c-6d81e33c8a9d:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a remote file copy attempt to a hidden network share. This may indicate lateral movement or data staging activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"cmd.exe\", \"powershell.exe\", \"robocopy.exe\", \"xcopy.exe\") and\n process.args : (\"copy*\", \"move*\", \"cp\", \"mv\") and process.args : \"*$*\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"fa01341d-6662-426b-9d0c-6d81e33c8a9d:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/fa01341d-6662-426b-9d0c-6d81e33c8a9d:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/fa01341d-6662-426b-9d0c-6d81e33c8a9d:101.0.1.json new file mode 100644 index 0000000000000..30885d3c84f36 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/fa01341d-6662-426b-9d0c-6d81e33c8a9d:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote File Copy to a Hidden Share v101.0.1","rule_id":"fa01341d-6662-426b-9d0c-6d81e33c8a9d:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a remote file copy attempt to a hidden network share. This may indicate lateral movement or data staging activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"cmd.exe\", \"powershell.exe\", \"robocopy.exe\", \"xcopy.exe\") and\n process.args : (\"copy*\", \"move*\", \"cp\", \"mv\") and process.args : \"*$*\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"fa01341d-6662-426b-9d0c-6d81e33c8a9d:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/fa01341d-6662-426b-9d0c-6d81e33c8a9d:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/fa01341d-6662-426b-9d0c-6d81e33c8a9d:101.0.2.json new file mode 100644 index 0000000000000..d52d9e20c674f --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/fa01341d-6662-426b-9d0c-6d81e33c8a9d:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Remote File Copy to a Hidden Share v101.0.2","rule_id":"fa01341d-6662-426b-9d0c-6d81e33c8a9d:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a remote file copy attempt to a hidden network share. This may indicate lateral movement or data staging activity.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Lateral Movement"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0008","name":"Lateral Movement","reference":"https://attack.mitre.org/tactics/TA0008/"},"technique":[{"id":"T1021","name":"Remote Services","reference":"https://attack.mitre.org/techniques/T1021/","subtechnique":[{"id":"T1021.002","name":"SMB/Windows Admin Shares","reference":"https://attack.mitre.org/techniques/T1021/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.name : (\"cmd.exe\", \"powershell.exe\", \"robocopy.exe\", \"xcopy.exe\") and\n process.args : (\"copy*\", \"move*\", \"cp\", \"mv\") and process.args : \"*$*\"\n","type":"eql","index":["logs-endpoint.events.*","winlogbeat-*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"fa01341d-6662-426b-9d0c-6d81e33c8a9d:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/fb02b8d3-71ee-4af1-bacd-215d23f17efa:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/fb02b8d3-71ee-4af1-bacd-215d23f17efa:100.0.0.json new file mode 100644 index 0000000000000..7ba6efd2745aa --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/fb02b8d3-71ee-4af1-bacd-215d23f17efa:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Network Connection via Registration Utility v100.0.0","rule_id":"fb02b8d3-71ee-4af1-bacd-215d23f17efa:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the native Windows tools regsvr32.exe, regsvr64.exe, RegSvcs.exe, or RegAsm.exe making a network connection. This may be indicative of an attacker bypassing allowlists or running arbitrary scripts via a signed Microsoft binary.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Security testing may produce events like this. Activity of this kind performed by non-engineers and ordinary users is unusual."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.010","name":"Regsvr32","reference":"https://attack.mitre.org/techniques/T1218/010/"}]}]}],"language":"eql","query":"sequence by process.entity_id\n [process where event.type == \"start\" and\n process.name : (\"regsvr32.exe\", \"RegAsm.exe\", \"RegSvcs.exe\") and\n not (\n (?process.Ext.token.integrity_level_name : \"System\" or ?winlog.event_data.IntegrityLevel : \"System\") and\n (process.parent.name : \"msiexec.exe\" or process.parent.executable : (\"C:\\\\Program Files (x86)\\\\*.exe\", \"C:\\\\Program Files\\\\*.exe\"))\n )\n ]\n [network where process.name : (\"regsvr32.exe\", \"RegAsm.exe\", \"RegSvcs.exe\") and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\",\n \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\",\n \"100.64.0.0/10\", \"192.175.48.0/24\",\"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\") and network.protocol != \"dns\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.IntegrityLevel","type":"keyword"}]},"id":"fb02b8d3-71ee-4af1-bacd-215d23f17efa:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/fb02b8d3-71ee-4af1-bacd-215d23f17efa:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/fb02b8d3-71ee-4af1-bacd-215d23f17efa:100.0.1.json new file mode 100644 index 0000000000000..f6431170c31bf --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/fb02b8d3-71ee-4af1-bacd-215d23f17efa:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Network Connection via Registration Utility v100.0.1","rule_id":"fb02b8d3-71ee-4af1-bacd-215d23f17efa:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the native Windows tools regsvr32.exe, regsvr64.exe, RegSvcs.exe, or RegAsm.exe making a network connection. This may be indicative of an attacker bypassing allowlists or running arbitrary scripts via a signed Microsoft binary.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Security testing may produce events like this. Activity of this kind performed by non-engineers and ordinary users is unusual."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.010","name":"Regsvr32","reference":"https://attack.mitre.org/techniques/T1218/010/"}]}]}],"language":"eql","query":"sequence by process.entity_id\n [process where event.type == \"start\" and\n process.name : (\"regsvr32.exe\", \"RegAsm.exe\", \"RegSvcs.exe\") and\n not (\n (?process.Ext.token.integrity_level_name : \"System\" or ?winlog.event_data.IntegrityLevel : \"System\") and\n (process.parent.name : \"msiexec.exe\" or process.parent.executable : (\"C:\\\\Program Files (x86)\\\\*.exe\", \"C:\\\\Program Files\\\\*.exe\"))\n )\n ]\n [network where process.name : (\"regsvr32.exe\", \"RegAsm.exe\", \"RegSvcs.exe\") and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\",\n \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\",\n \"100.64.0.0/10\", \"192.175.48.0/24\",\"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\") and network.protocol != \"dns\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.IntegrityLevel","type":"keyword"}]},"id":"fb02b8d3-71ee-4af1-bacd-215d23f17efa:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/fb02b8d3-71ee-4af1-bacd-215d23f17efa:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/fb02b8d3-71ee-4af1-bacd-215d23f17efa:100.0.2.json new file mode 100644 index 0000000000000..5b0545a34e417 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/fb02b8d3-71ee-4af1-bacd-215d23f17efa:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Network Connection via Registration Utility v100.0.2","rule_id":"fb02b8d3-71ee-4af1-bacd-215d23f17efa:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies the native Windows tools regsvr32.exe, regsvr64.exe, RegSvcs.exe, or RegAsm.exe making a network connection. This may be indicative of an attacker bypassing allowlists or running arbitrary scripts via a signed Microsoft binary.","risk_score":21,"severity":"low","license":"Elastic License v2","author":["Elastic"],"false_positives":["Security testing may produce events like this. Activity of this kind performed by non-engineers and ordinary users is unusual."],"from":"now-9m","references":["https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Host","Windows","Threat Detection","Execution"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1218","name":"System Binary Proxy Execution","reference":"https://attack.mitre.org/techniques/T1218/","subtechnique":[{"id":"T1218.010","name":"Regsvr32","reference":"https://attack.mitre.org/techniques/T1218/010/"}]}]}],"language":"eql","query":"sequence by process.entity_id\n [process where event.type == \"start\" and\n process.name : (\"regsvr32.exe\", \"RegAsm.exe\", \"RegSvcs.exe\") and\n not (\n (?process.Ext.token.integrity_level_name : \"System\" or ?winlog.event_data.IntegrityLevel : \"System\") and\n (process.parent.name : \"msiexec.exe\" or process.parent.executable : (\"C:\\\\Program Files (x86)\\\\*.exe\", \"C:\\\\Program Files\\\\*.exe\"))\n )\n ]\n [network where process.name : (\"regsvr32.exe\", \"RegAsm.exe\", \"RegSvcs.exe\") and\n not cidrmatch(destination.ip, \"10.0.0.0/8\", \"127.0.0.0/8\", \"169.254.0.0/16\", \"172.16.0.0/12\", \"192.0.0.0/24\",\n \"192.0.0.0/29\", \"192.0.0.8/32\", \"192.0.0.9/32\", \"192.0.0.10/32\", \"192.0.0.170/32\", \"192.0.0.171/32\",\n \"192.0.2.0/24\", \"192.31.196.0/24\", \"192.52.193.0/24\", \"192.168.0.0/16\", \"192.88.99.0/24\", \"224.0.0.0/4\",\n \"100.64.0.0/10\", \"192.175.48.0/24\",\"198.18.0.0/15\", \"198.51.100.0/24\", \"203.0.113.0/24\", \"240.0.0.0/4\", \"::1\",\n \"FE80::/10\", \"FF00::/8\") and network.protocol != \"dns\"]\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":false,"name":"process.Ext.token.integrity_level_name","type":"unknown"},{"ecs":true,"name":"process.entity_id","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.executable","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"},{"ecs":false,"name":"winlog.event_data.IntegrityLevel","type":"keyword"}]},"id":"fb02b8d3-71ee-4af1-bacd-215d23f17efa:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/fbd44836-0d69-4004-a0b4-03c20370c435:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/fbd44836-0d69-4004-a0b4-03c20370c435:101.0.0.json new file mode 100644 index 0000000000000..b2fb98815fc99 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/fbd44836-0d69-4004-a0b4-03c20370c435:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Configuration Recorder Stopped v101.0.0","rule_id":"fbd44836-0d69-4004-a0b4-03c20370c435:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an AWS configuration change to stop recording a designated set of resources.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Recording changes from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/stop-configuration-recorder.html","https://docs.aws.amazon.com/config/latest/APIReference/API_StopConfigurationRecorder.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:config.amazonaws.com and event.action:StopConfigurationRecorder and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"fbd44836-0d69-4004-a0b4-03c20370c435:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/fbd44836-0d69-4004-a0b4-03c20370c435:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/fbd44836-0d69-4004-a0b4-03c20370c435:101.0.1.json new file mode 100644 index 0000000000000..9226162451837 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/fbd44836-0d69-4004-a0b4-03c20370c435:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Configuration Recorder Stopped v101.0.1","rule_id":"fbd44836-0d69-4004-a0b4-03c20370c435:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an AWS configuration change to stop recording a designated set of resources.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Recording changes from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/stop-configuration-recorder.html","https://docs.aws.amazon.com/config/latest/APIReference/API_StopConfigurationRecorder.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:config.amazonaws.com and event.action:StopConfigurationRecorder and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"fbd44836-0d69-4004-a0b4-03c20370c435:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/fbd44836-0d69-4004-a0b4-03c20370c435:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/fbd44836-0d69-4004-a0b4-03c20370c435:101.0.2.json new file mode 100644 index 0000000000000..c33743038b80c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/fbd44836-0d69-4004-a0b4-03c20370c435:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"AWS Configuration Recorder Stopped v101.0.2","rule_id":"fbd44836-0d69-4004-a0b4-03c20370c435:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies an AWS configuration change to stop recording a designated set of resources.","risk_score":73,"severity":"high","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Verify whether the user identity, user agent, and/or hostname should be making changes in your environment. Recording changes from unfamiliar users or hosts should be investigated. If known behavior is causing false positives, it can be exempted from the rule."],"from":"now-60m","interval":"10m","references":["https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/stop-configuration-recorder.html","https://docs.aws.amazon.com/config/latest/APIReference/API_StopConfigurationRecorder.html"],"tags":["Elastic","Cloud","AWS","Continuous Monitoring","SecOps","Monitoring"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/","subtechnique":[{"id":"T1562.001","name":"Disable or Modify Tools","reference":"https://attack.mitre.org/techniques/T1562/001/"}]}]}],"type":"query","index":["filebeat-*","logs-aws*"],"language":"kuery","query":"event.dataset:aws.cloudtrail and event.provider:config.amazonaws.com and event.action:StopConfigurationRecorder and event.outcome:success\n","related_integrations":[{"integration":"cloudtrail","package":"aws","version":"^1.5.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The AWS Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"fbd44836-0d69-4004-a0b4-03c20370c435:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/fc7c0fa4-8f03-4b3e-8336-c5feab0be022:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/fc7c0fa4-8f03-4b3e-8336-c5feab0be022:101.0.0.json new file mode 100644 index 0000000000000..e10fe0a7c3e03 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/fc7c0fa4-8f03-4b3e-8336-c5feab0be022:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"UAC Bypass Attempt via Elevated COM Internet Explorer Add-On Installer v101.0.0","rule_id":"fc7c0fa4-8f03-4b3e-8336-c5feab0be022:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies User Account Control (UAC) bypass attempts by abusing an elevated COM Interface to launch a malicious program. Attackers may attempt to bypass UAC to stealthily execute code with elevated permissions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://swapcontext.blogspot.com/2020/11/uac-bypasses-from-comautoapprovallist.html"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.executable : \"C:\\\\*\\\\AppData\\\\*\\\\Temp\\\\IDC*.tmp\\\\*.exe\" and\n process.parent.name : \"ieinstal.exe\" and process.parent.args : \"-Embedding\"\n\n /* uncomment once in winlogbeat */\n /* and not (process.code_signature.subject_name == \"Microsoft Corporation\" and process.code_signature.trusted == true) */\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"fc7c0fa4-8f03-4b3e-8336-c5feab0be022:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/fc7c0fa4-8f03-4b3e-8336-c5feab0be022:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/fc7c0fa4-8f03-4b3e-8336-c5feab0be022:101.0.1.json new file mode 100644 index 0000000000000..07c491fadc267 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/fc7c0fa4-8f03-4b3e-8336-c5feab0be022:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"UAC Bypass Attempt via Elevated COM Internet Explorer Add-On Installer v101.0.1","rule_id":"fc7c0fa4-8f03-4b3e-8336-c5feab0be022:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies User Account Control (UAC) bypass attempts by abusing an elevated COM Interface to launch a malicious program. Attackers may attempt to bypass UAC to stealthily execute code with elevated permissions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://swapcontext.blogspot.com/2020/11/uac-bypasses-from-comautoapprovallist.html"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.executable : \"C:\\\\*\\\\AppData\\\\*\\\\Temp\\\\IDC*.tmp\\\\*.exe\" and\n process.parent.name : \"ieinstal.exe\" and process.parent.args : \"-Embedding\"\n\n /* uncomment once in winlogbeat */\n /* and not (process.code_signature.subject_name == \"Microsoft Corporation\" and process.code_signature.trusted == true) */\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"fc7c0fa4-8f03-4b3e-8336-c5feab0be022:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/fc7c0fa4-8f03-4b3e-8336-c5feab0be022:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/fc7c0fa4-8f03-4b3e-8336-c5feab0be022:101.0.2.json new file mode 100644 index 0000000000000..972f721afa790 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/fc7c0fa4-8f03-4b3e-8336-c5feab0be022:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"UAC Bypass Attempt via Elevated COM Internet Explorer Add-On Installer v101.0.2","rule_id":"fc7c0fa4-8f03-4b3e-8336-c5feab0be022:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies User Account Control (UAC) bypass attempts by abusing an elevated COM Interface to launch a malicious program. Attackers may attempt to bypass UAC to stealthily execute code with elevated permissions.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://swapcontext.blogspot.com/2020/11/uac-bypasses-from-comautoapprovallist.html"],"tags":["Elastic","Host","Windows","Threat Detection","Privilege Escalation"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1548","name":"Abuse Elevation Control Mechanism","reference":"https://attack.mitre.org/techniques/T1548/","subtechnique":[{"id":"T1548.002","name":"Bypass User Account Control","reference":"https://attack.mitre.org/techniques/T1548/002/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and\n process.executable : \"C:\\\\*\\\\AppData\\\\*\\\\Temp\\\\IDC*.tmp\\\\*.exe\" and\n process.parent.name : \"ieinstal.exe\" and process.parent.args : \"-Embedding\"\n\n /* uncomment once in winlogbeat */\n /* and not (process.code_signature.subject_name == \"Microsoft Corporation\" and process.code_signature.trusted == true) */\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.executable","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"fc7c0fa4-8f03-4b3e-8336-c5feab0be022:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/fd4a992d-6130-4802-9ff8-829b89ae801f:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/fd4a992d-6130-4802-9ff8-829b89ae801f:102.0.0.json new file mode 100644 index 0000000000000..c2da4aae01967 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/fd4a992d-6130-4802-9ff8-829b89ae801f:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Application Shimming via Sdbinst v102.0.0","rule_id":"fd4a992d-6130-4802-9ff8-829b89ae801f:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The Application Shim was created to allow for backward compatibility of software as the operating system codebase changes over time. This Windows functionality has been abused by attackers to stealthily gain persistence and arbitrary code execution in legitimate Windows processes.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.011","name":"Application Shimming","reference":"https://attack.mitre.org/techniques/T1546/011/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.011","name":"Application Shimming","reference":"https://attack.mitre.org/techniques/T1546/011/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.name : \"sdbinst.exe\" and \n not (process.args : \"-m\" and process.args : \"-bg\") and \n not process.args : \"-mm\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"fd4a992d-6130-4802-9ff8-829b89ae801f:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/fd4a992d-6130-4802-9ff8-829b89ae801f:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/fd4a992d-6130-4802-9ff8-829b89ae801f:102.0.1.json new file mode 100644 index 0000000000000..7a14bed5eb022 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/fd4a992d-6130-4802-9ff8-829b89ae801f:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Application Shimming via Sdbinst v102.0.1","rule_id":"fd4a992d-6130-4802-9ff8-829b89ae801f:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The Application Shim was created to allow for backward compatibility of software as the operating system codebase changes over time. This Windows functionality has been abused by attackers to stealthily gain persistence and arbitrary code execution in legitimate Windows processes.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.011","name":"Application Shimming","reference":"https://attack.mitre.org/techniques/T1546/011/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.011","name":"Application Shimming","reference":"https://attack.mitre.org/techniques/T1546/011/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.name : \"sdbinst.exe\" and \n not (process.args : \"-m\" and process.args : \"-bg\") and \n not process.args : \"-mm\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"fd4a992d-6130-4802-9ff8-829b89ae801f:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/fd4a992d-6130-4802-9ff8-829b89ae801f:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/fd4a992d-6130-4802-9ff8-829b89ae801f:102.0.2.json new file mode 100644 index 0000000000000..a4acabcaf673e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/fd4a992d-6130-4802-9ff8-829b89ae801f:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Potential Application Shimming via Sdbinst v102.0.2","rule_id":"fd4a992d-6130-4802-9ff8-829b89ae801f:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"The Application Shim was created to allow for backward compatibility of software as the operating system codebase changes over time. This Windows functionality has been abused by attackers to stealthily gain persistence and arbitrary code execution in legitimate Windows processes.","risk_score":21,"severity":"low","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Persistence"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0003","name":"Persistence","reference":"https://attack.mitre.org/tactics/TA0003/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.011","name":"Application Shimming","reference":"https://attack.mitre.org/techniques/T1546/011/"}]}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0004","name":"Privilege Escalation","reference":"https://attack.mitre.org/tactics/TA0004/"},"technique":[{"id":"T1546","name":"Event Triggered Execution","reference":"https://attack.mitre.org/techniques/T1546/","subtechnique":[{"id":"T1546.011","name":"Application Shimming","reference":"https://attack.mitre.org/techniques/T1546/011/"}]}]}],"language":"eql","query":"process where event.type == \"start\" and process.name : \"sdbinst.exe\" and \n not (process.args : \"-m\" and process.args : \"-bg\") and \n not process.args : \"-mm\"\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"fd4a992d-6130-4802-9ff8-829b89ae801f:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/fd70c98a-c410-42dc-a2e3-761c71848acf:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/fd70c98a-c410-42dc-a2e3-761c71848acf:101.0.0.json new file mode 100644 index 0000000000000..6015bf354b5c1 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/fd70c98a-c410-42dc-a2e3-761c71848acf:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious CertUtil Commands v101.0.0","rule_id":"fd70c98a-c410-42dc-a2e3-761c71848acf:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious commands being used with certutil.exe. CertUtil is a native Windows component which is part of Certificate Services. CertUtil is often abused by attackers to live off the land for stealthier command and control or data exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timeline_id":"e70679c2-6cde-4510-9764-4823df18f7db","timeline_title":"Comprehensive Process Timeline","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"from":"now-9m","references":["https://twitter.com/Moriarty_Meng/status/984380793383370752","https://twitter.com/egre55/status/1087685529016193025","https://www.sysadmins.lv/blog-en/certutil-tips-and-tricks-working-with-x509-file-format.aspx","https://docs.microsoft.com/en-us/archive/blogs/pki/basic-crl-checking-with-certutil"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1140","name":"Deobfuscate/Decode Files or Information","reference":"https://attack.mitre.org/techniques/T1140/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"certutil.exe\" or process.pe.original_file_name == \"CertUtil.exe\") and\n process.args : (\"?decode\", \"?encode\", \"?urlcache\", \"?verifyctl\", \"?encodehex\", \"?decodehex\", \"?exportPFX\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"fd70c98a-c410-42dc-a2e3-761c71848acf:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/fd70c98a-c410-42dc-a2e3-761c71848acf:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/fd70c98a-c410-42dc-a2e3-761c71848acf:101.0.1.json new file mode 100644 index 0000000000000..886e199de9e58 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/fd70c98a-c410-42dc-a2e3-761c71848acf:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious CertUtil Commands v101.0.1","rule_id":"fd70c98a-c410-42dc-a2e3-761c71848acf:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious commands being used with certutil.exe. CertUtil is a native Windows component which is part of Certificate Services. CertUtil is often abused by attackers to live off the land for stealthier command and control or data exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timeline_id":"e70679c2-6cde-4510-9764-4823df18f7db","timeline_title":"Comprehensive Process Timeline","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"from":"now-9m","references":["https://twitter.com/Moriarty_Meng/status/984380793383370752","https://twitter.com/egre55/status/1087685529016193025","https://www.sysadmins.lv/blog-en/certutil-tips-and-tricks-working-with-x509-file-format.aspx","https://docs.microsoft.com/en-us/archive/blogs/pki/basic-crl-checking-with-certutil"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1140","name":"Deobfuscate/Decode Files or Information","reference":"https://attack.mitre.org/techniques/T1140/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"certutil.exe\" or process.pe.original_file_name == \"CertUtil.exe\") and\n process.args : (\"?decode\", \"?encode\", \"?urlcache\", \"?verifyctl\", \"?encodehex\", \"?decodehex\", \"?exportPFX\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"fd70c98a-c410-42dc-a2e3-761c71848acf:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/fd70c98a-c410-42dc-a2e3-761c71848acf:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/fd70c98a-c410-42dc-a2e3-761c71848acf:101.0.2.json new file mode 100644 index 0000000000000..ffa1091cc0d0e --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/fd70c98a-c410-42dc-a2e3-761c71848acf:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Suspicious CertUtil Commands v101.0.2","rule_id":"fd70c98a-c410-42dc-a2e3-761c71848acf:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies suspicious commands being used with certutil.exe. CertUtil is a native Windows component which is part of Certificate Services. CertUtil is often abused by attackers to live off the land for stealthier command and control or data exfiltration.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timeline_id":"e70679c2-6cde-4510-9764-4823df18f7db","timeline_title":"Comprehensive Process Timeline","timestamp_override":"event.ingested","author":["Elastic","Austin Songer"],"from":"now-9m","references":["https://twitter.com/Moriarty_Meng/status/984380793383370752","https://twitter.com/egre55/status/1087685529016193025","https://www.sysadmins.lv/blog-en/certutil-tips-and-tricks-working-with-x509-file-format.aspx","https://docs.microsoft.com/en-us/archive/blogs/pki/basic-crl-checking-with-certutil"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1140","name":"Deobfuscate/Decode Files or Information","reference":"https://attack.mitre.org/techniques/T1140/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n (process.name : \"certutil.exe\" or process.pe.original_file_name == \"CertUtil.exe\") and\n process.args : (\"?decode\", \"?encode\", \"?urlcache\", \"?verifyctl\", \"?encodehex\", \"?decodehex\", \"?exportPFX\")\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.pe.original_file_name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"fd70c98a-c410-42dc-a2e3-761c71848acf:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/fd7a6052-58fa-4397-93c3-4795249ccfa2:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/fd7a6052-58fa-4397-93c3-4795249ccfa2:102.0.0.json new file mode 100644 index 0000000000000..f2a1bd299b42b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/fd7a6052-58fa-4397-93c3-4795249ccfa2:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Svchost spawning Cmd v102.0.0","rule_id":"fd7a6052-58fa-4397-93c3-4795249ccfa2:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious parent child process relationship with cmd.exe descending from svchost.exe","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Svchost spawning Cmd\n\nThe Service Host process (SvcHost) is a system process that can host one, or multiple, Windows services in the Windows\nNT family of operating systems. Note that `Svchost.exe` is reserved for use by the operating system and should not be\nused by non-Windows services.\n\nThis rule looks for the creation of the `cmd.exe` process with `svchost.exe` as its parent process. This is an unusual\nbehavior that can indicate the masquerading of a malicious process as `svchost.exe` or exploitation for privilege\nescalation.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timeline_id":"e70679c2-6cde-4510-9764-4823df18f7db","timeline_title":"Comprehensive Process Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://nasbench.medium.com/demystifying-the-svchost-exe-process-and-its-command-line-options-508e9114e747"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n\n process.parent.name : \"svchost.exe\" and process.name : \"cmd.exe\" and\n\n not process.args :\n (\"??:\\\\Program Files\\\\Npcap\\\\CheckStatus.bat?\",\n \"?:\\\\Program Files\\\\Npcap\\\\CheckStatus.bat\",\n \"\\\\system32\\\\cleanmgr.exe\",\n \"?:\\\\Windows\\\\system32\\\\silcollector.cmd\",\n \"\\\\system32\\\\AppHostRegistrationVerifier.exe\",\n \"\\\\system32\\\\ServerManagerLauncher.exe\",\n \"dir\",\n \"?:\\\\Program Files\\\\*\",\n \"?:\\\\Program Files (x86)\\\\*\",\n \"?:\\\\Windows\\\\LSDeployment\\\\Lspush.exe\",\n \"(x86)\\\\FMAuditOnsite\\\\watchdog.bat\",\n \"?:\\\\ProgramData\\\\chocolatey\\\\bin\\\\choco-upgrade-all.bat\",\n \"Files\\\\Npcap\\\\CheckStatus.bat\") and\n\n /* very noisy pattern - bat or cmd script executed via scheduled tasks */\n not (process.parent.args : \"netsvcs\" and process.args : (\"?:\\\\*.bat\", \"?:\\\\*.cmd\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"fd7a6052-58fa-4397-93c3-4795249ccfa2:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/fd7a6052-58fa-4397-93c3-4795249ccfa2:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/fd7a6052-58fa-4397-93c3-4795249ccfa2:102.0.1.json new file mode 100644 index 0000000000000..43b5c029a35b0 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/fd7a6052-58fa-4397-93c3-4795249ccfa2:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Svchost spawning Cmd v102.0.1","rule_id":"fd7a6052-58fa-4397-93c3-4795249ccfa2:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious parent child process relationship with cmd.exe descending from svchost.exe","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Svchost spawning Cmd\n\nThe Service Host process (SvcHost) is a system process that can host one, or multiple, Windows services in the Windows\nNT family of operating systems. Note that `Svchost.exe` is reserved for use by the operating system and should not be\nused by non-Windows services.\n\nThis rule looks for the creation of the `cmd.exe` process with `svchost.exe` as its parent process. This is an unusual\nbehavior that can indicate the masquerading of a malicious process as `svchost.exe` or exploitation for privilege\nescalation.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timeline_id":"e70679c2-6cde-4510-9764-4823df18f7db","timeline_title":"Comprehensive Process Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://nasbench.medium.com/demystifying-the-svchost-exe-process-and-its-command-line-options-508e9114e747"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n\n process.parent.name : \"svchost.exe\" and process.name : \"cmd.exe\" and\n\n not process.args :\n (\"??:\\\\Program Files\\\\Npcap\\\\CheckStatus.bat?\",\n \"?:\\\\Program Files\\\\Npcap\\\\CheckStatus.bat\",\n \"\\\\system32\\\\cleanmgr.exe\",\n \"?:\\\\Windows\\\\system32\\\\silcollector.cmd\",\n \"\\\\system32\\\\AppHostRegistrationVerifier.exe\",\n \"\\\\system32\\\\ServerManagerLauncher.exe\",\n \"dir\",\n \"?:\\\\Program Files\\\\*\",\n \"?:\\\\Program Files (x86)\\\\*\",\n \"?:\\\\Windows\\\\LSDeployment\\\\Lspush.exe\",\n \"(x86)\\\\FMAuditOnsite\\\\watchdog.bat\",\n \"?:\\\\ProgramData\\\\chocolatey\\\\bin\\\\choco-upgrade-all.bat\",\n \"Files\\\\Npcap\\\\CheckStatus.bat\") and\n\n /* very noisy pattern - bat or cmd script executed via scheduled tasks */\n not (process.parent.args : \"netsvcs\" and process.args : (\"?:\\\\*.bat\", \"?:\\\\*.cmd\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"fd7a6052-58fa-4397-93c3-4795249ccfa2:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/fd7a6052-58fa-4397-93c3-4795249ccfa2:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/fd7a6052-58fa-4397-93c3-4795249ccfa2:102.0.2.json new file mode 100644 index 0000000000000..aa40194d93d31 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/fd7a6052-58fa-4397-93c3-4795249ccfa2:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Svchost spawning Cmd v102.0.2","rule_id":"fd7a6052-58fa-4397-93c3-4795249ccfa2:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a suspicious parent child process relationship with cmd.exe descending from svchost.exe","risk_score":21,"severity":"low","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Svchost spawning Cmd\n\nThe Service Host process (SvcHost) is a system process that can host one, or multiple, Windows services in the Windows\nNT family of operating systems. Note that `Svchost.exe` is reserved for use by the operating system and should not be\nused by non-Windows services.\n\nThis rule looks for the creation of the `cmd.exe` process with `svchost.exe` as its parent process. This is an unusual\nbehavior that can indicate the masquerading of a malicious process as `svchost.exe` or exploitation for privilege\nescalation.\n\n> **Note**:\n> This investigation guide uses the [Osquery Markdown Plugin](https://www.elastic.co/guide/en/security/master/invest-guide-run-osquery.html) introduced in Elastic stack version 8.5.0. Older Elastic stacks versions will see unrendered markdown in this guide.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Investigate any abnormal behavior by the subject process such as network connections, registry or file modifications,\nand any spawned child processes.\n- Examine the host for derived artifacts that indicates suspicious activities:\n - Analyze the process executable using a private sandboxed analysis system.\n - Observe and collect information about the following activities in both the sandbox and the alert subject host:\n - Attempts to contact external domains and addresses.\n - Use the Elastic Defend network events to determine domains and addresses contacted by the subject process by\n filtering by the process' `process.entity_id`.\n - Examine the DNS cache for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT * FROM dns_cache\", \"label\":\"Osquery - Retrieve DNS Cache\"}}\n - Use the Elastic Defend registry events to examine registry keys accessed, modified, or created by the related\n processes in the process tree.\n - Examine the host services for suspicious or anomalous entries.\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services\",\"label\":\"Osquery - Retrieve All Services\"}}\n - !{osquery{\"query\":\"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE NOT (user_account LIKE \"%LocalSystem\" OR user_account LIKE \"%LocalService\" OR user_account LIKE \"%NetworkService\" OR user_account == null)\",\"label\":\"Osquery - Retrieve Services Running on User Accounts\"}}\n - !{osquery{\"query\":\"SELECT concat('https://www.virustotal.com/gui/file/', sha1) AS VtLink, name, description, start_type, status, pid, services.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path = authenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != \"trusted\"\",\"label\":\"Osquery - Retrieve Service Unsigned Executables with Virustotal Link\"}}\n - Retrieve the files' SHA-256 hash values using the PowerShell `Get-FileHash` cmdlet and search for the existence and\n reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n\n### False positive analysis\n\n- This activity is unlikely to happen legitimately. Benign true positives (B-TPs) can be added as exceptions if necessary.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved host to prevent further post-compromise behavior.\n- If the triage identified malware, search the environment for additional compromised hosts.\n - Implement temporary network rules, procedures, and segmentation to contain the malware.\n - Stop suspicious processes.\n - Immediately block the identified indicators of compromise (IoCs).\n - Inspect the affected systems for additional malware backdoors like reverse shells, reverse proxies, or droppers that\n attackers could use to reinfect the system.\n- Remove and block malicious artifacts identified during triage.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timeline_id":"e70679c2-6cde-4510-9764-4823df18f7db","timeline_title":"Comprehensive Process Timeline","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","references":["https://nasbench.medium.com/demystifying-the-svchost-exe-process-and-its-command-line-options-508e9114e747"],"tags":["Elastic","Host","Windows","Threat Detection","Execution","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1059","name":"Command and Scripting Interpreter","reference":"https://attack.mitre.org/techniques/T1059/"}]}],"language":"eql","query":"process where event.type == \"start\" and\n\n process.parent.name : \"svchost.exe\" and process.name : \"cmd.exe\" and\n\n not process.args :\n (\"??:\\\\Program Files\\\\Npcap\\\\CheckStatus.bat?\",\n \"?:\\\\Program Files\\\\Npcap\\\\CheckStatus.bat\",\n \"\\\\system32\\\\cleanmgr.exe\",\n \"?:\\\\Windows\\\\system32\\\\silcollector.cmd\",\n \"\\\\system32\\\\AppHostRegistrationVerifier.exe\",\n \"\\\\system32\\\\ServerManagerLauncher.exe\",\n \"dir\",\n \"?:\\\\Program Files\\\\*\",\n \"?:\\\\Program Files (x86)\\\\*\",\n \"?:\\\\Windows\\\\LSDeployment\\\\Lspush.exe\",\n \"(x86)\\\\FMAuditOnsite\\\\watchdog.bat\",\n \"?:\\\\ProgramData\\\\chocolatey\\\\bin\\\\choco-upgrade-all.bat\",\n \"Files\\\\Npcap\\\\CheckStatus.bat\") and\n\n /* very noisy pattern - bat or cmd script executed via scheduled tasks */\n not (process.parent.args : \"netsvcs\" and process.args : (\"?:\\\\*.bat\", \"?:\\\\*.cmd\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.args","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"process.parent.args","type":"keyword"},{"ecs":true,"name":"process.parent.name","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"fd7a6052-58fa-4397-93c3-4795249ccfa2:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/fe794edd-487f-4a90-b285-3ee54f2af2d3:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/fe794edd-487f-4a90-b285-3ee54f2af2d3:102.0.0.json new file mode 100644 index 0000000000000..972a11f3fa1d2 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/fe794edd-487f-4a90-b285-3ee54f2af2d3:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft Windows Defender Tampering v102.0.0","rule_id":"fe794edd-487f-4a90-b285-3ee54f2af2d3:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when one or more features on Microsoft Defender are disabled. Adversaries may disable or tamper with Microsoft Defender features to evade detection and conceal malicious behavior.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Microsoft Windows Defender Tampering\n\nMicrosoft Windows Defender is an antivirus product built into Microsoft Windows, which makes it popular across multiple\nenvironments. Disabling it is a common step in threat actor playbooks.\n\nThis rule monitors the registry for modifications that disable Windows Defender features.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine which features have been disabled, and check if this operation is done under change management and approved\naccording to the organization's policy.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity,\nthe configuration is justified (for example, it is being used to deploy other security solutions or troubleshooting),\nand no other suspicious activity has been observed.\n\n### Related rules\n\n- Windows Defender Disabled via Registry Modification - 2ffa1f1e-b6db-47fa-994b-1512743847eb\n- Disabling Windows Defender Security Settings via PowerShell - c8cccb06-faf2-4cd5-886e-2c9636cfcb87\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Take actions to restore the appropriate Windows Defender antivirus configurations.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Legitimate Windows Defender configuration changes"],"from":"now-9m","references":["https://thedfirreport.com/2021/10/18/icedid-to-xinglocker-ransomware-in-24-hours/","https://www.tenforums.com/tutorials/32236-enable-disable-microsoft-defender-pua-protection-windows-10-a.html","https://www.tenforums.com/tutorials/104025-turn-off-core-isolation-memory-integrity-windows-10-a.html","https://www.tenforums.com/tutorials/105533-enable-disable-windows-defender-exploit-protection-settings.html","https://www.tenforums.com/tutorials/123792-turn-off-tamper-protection-microsoft-defender-antivirus.html","https://www.tenforums.com/tutorials/51514-turn-off-microsoft-defender-periodic-scanning-windows-10-a.html","https://www.tenforums.com/tutorials/3569-turn-off-real-time-protection-microsoft-defender-antivirus.html","https://www.tenforums.com/tutorials/99576-how-schedule-scan-microsoft-defender-antivirus-windows-10-a.html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\PUAProtection\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender Security Center\\\\App and Browser protection\\\\DisallowExploitProtectionOverride\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\DisableAntiSpyware\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Features\\\\TamperProtection\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Real-Time Protection\\\\DisableRealtimeMonitoring\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Real-Time Protection\\\\DisableIntrusionPreventionSystem\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Real-Time Protection\\\\DisableScriptScanning\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Windows Defender Exploit Guard\\\\Controlled Folder Access\\\\EnableControlledFolderAccess\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Real-Time Protection\\\\DisableIOAVProtection\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Reporting\\\\DisableEnhancedNotifications\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\SpyNet\\\\DisableBlockAtFirstSeen\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\SpyNet\\\\SpynetReporting\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\SpyNet\\\\SubmitSamplesConsent\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Real-Time Protection\\\\DisableBehaviorMonitoring\" and\n registry.data.strings : (\"1\", \"0x00000001\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"fe794edd-487f-4a90-b285-3ee54f2af2d3:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/fe794edd-487f-4a90-b285-3ee54f2af2d3:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/fe794edd-487f-4a90-b285-3ee54f2af2d3:102.0.1.json new file mode 100644 index 0000000000000..a03a7346cb075 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/fe794edd-487f-4a90-b285-3ee54f2af2d3:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft Windows Defender Tampering v102.0.1","rule_id":"fe794edd-487f-4a90-b285-3ee54f2af2d3:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when one or more features on Microsoft Defender are disabled. Adversaries may disable or tamper with Microsoft Defender features to evade detection and conceal malicious behavior.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Microsoft Windows Defender Tampering\n\nMicrosoft Windows Defender is an antivirus product built into Microsoft Windows, which makes it popular across multiple\nenvironments. Disabling it is a common step in threat actor playbooks.\n\nThis rule monitors the registry for modifications that disable Windows Defender features.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine which features have been disabled, and check if this operation is done under change management and approved\naccording to the organization's policy.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity,\nthe configuration is justified (for example, it is being used to deploy other security solutions or troubleshooting),\nand no other suspicious activity has been observed.\n\n### Related rules\n\n- Windows Defender Disabled via Registry Modification - 2ffa1f1e-b6db-47fa-994b-1512743847eb\n- Disabling Windows Defender Security Settings via PowerShell - c8cccb06-faf2-4cd5-886e-2c9636cfcb87\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Take actions to restore the appropriate Windows Defender antivirus configurations.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Legitimate Windows Defender configuration changes"],"from":"now-9m","references":["https://thedfirreport.com/2021/10/18/icedid-to-xinglocker-ransomware-in-24-hours/","https://www.tenforums.com/tutorials/32236-enable-disable-microsoft-defender-pua-protection-windows-10-a.html","https://www.tenforums.com/tutorials/104025-turn-off-core-isolation-memory-integrity-windows-10-a.html","https://www.tenforums.com/tutorials/105533-enable-disable-windows-defender-exploit-protection-settings.html","https://www.tenforums.com/tutorials/123792-turn-off-tamper-protection-microsoft-defender-antivirus.html","https://www.tenforums.com/tutorials/51514-turn-off-microsoft-defender-periodic-scanning-windows-10-a.html","https://www.tenforums.com/tutorials/3569-turn-off-real-time-protection-microsoft-defender-antivirus.html","https://www.tenforums.com/tutorials/99576-how-schedule-scan-microsoft-defender-antivirus-windows-10-a.html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\PUAProtection\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender Security Center\\\\App and Browser protection\\\\DisallowExploitProtectionOverride\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\DisableAntiSpyware\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Features\\\\TamperProtection\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Real-Time Protection\\\\DisableRealtimeMonitoring\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Real-Time Protection\\\\DisableIntrusionPreventionSystem\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Real-Time Protection\\\\DisableScriptScanning\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Windows Defender Exploit Guard\\\\Controlled Folder Access\\\\EnableControlledFolderAccess\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Real-Time Protection\\\\DisableIOAVProtection\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Reporting\\\\DisableEnhancedNotifications\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\SpyNet\\\\DisableBlockAtFirstSeen\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\SpyNet\\\\SpynetReporting\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\SpyNet\\\\SubmitSamplesConsent\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Real-Time Protection\\\\DisableBehaviorMonitoring\" and\n registry.data.strings : (\"1\", \"0x00000001\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"fe794edd-487f-4a90-b285-3ee54f2af2d3:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/fe794edd-487f-4a90-b285-3ee54f2af2d3:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/fe794edd-487f-4a90-b285-3ee54f2af2d3:102.0.2.json new file mode 100644 index 0000000000000..20daafc2502cf --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/fe794edd-487f-4a90-b285-3ee54f2af2d3:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft Windows Defender Tampering v102.0.2","rule_id":"fe794edd-487f-4a90-b285-3ee54f2af2d3:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when one or more features on Microsoft Defender are disabled. Adversaries may disable or tamper with Microsoft Defender features to evade detection and conceal malicious behavior.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating Microsoft Windows Defender Tampering\n\nMicrosoft Windows Defender is an antivirus product built into Microsoft Windows, which makes it popular across multiple\nenvironments. Disabling it is a common step in threat actor playbooks.\n\nThis rule monitors the registry for modifications that disable Windows Defender features.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Validate the activity is not related to planned patches, updates, network administrator activity, or legitimate\nsoftware installations.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the account owner and confirm whether they are aware of this activity.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Examine which features have been disabled, and check if this operation is done under change management and approved\naccording to the organization's policy.\n\n### False positive analysis\n\n- This mechanism can be used legitimately. Analysts can dismiss the alert if the administrator is aware of the activity,\nthe configuration is justified (for example, it is being used to deploy other security solutions or troubleshooting),\nand no other suspicious activity has been observed.\n\n### Related rules\n\n- Windows Defender Disabled via Registry Modification - 2ffa1f1e-b6db-47fa-994b-1512743847eb\n- Disabling Windows Defender Security Settings via PowerShell - c8cccb06-faf2-4cd5-886e-2c9636cfcb87\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Isolate the involved hosts to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Take actions to restore the appropriate Windows Defender antivirus configurations.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Review the privileges assigned to the user to ensure that the least privilege principle is being followed.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Austin Songer"],"false_positives":["Legitimate Windows Defender configuration changes"],"from":"now-9m","references":["https://thedfirreport.com/2021/10/18/icedid-to-xinglocker-ransomware-in-24-hours/","https://www.tenforums.com/tutorials/32236-enable-disable-microsoft-defender-pua-protection-windows-10-a.html","https://www.tenforums.com/tutorials/104025-turn-off-core-isolation-memory-integrity-windows-10-a.html","https://www.tenforums.com/tutorials/105533-enable-disable-windows-defender-exploit-protection-settings.html","https://www.tenforums.com/tutorials/123792-turn-off-tamper-protection-microsoft-defender-antivirus.html","https://www.tenforums.com/tutorials/51514-turn-off-microsoft-defender-periodic-scanning-windows-10-a.html","https://www.tenforums.com/tutorials/3569-turn-off-real-time-protection-microsoft-defender-antivirus.html","https://www.tenforums.com/tutorials/99576-how-schedule-scan-microsoft-defender-antivirus-windows-10-a.html"],"tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"language":"eql","query":"registry where event.type in (\"creation\", \"change\") and\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\PUAProtection\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender Security Center\\\\App and Browser protection\\\\DisallowExploitProtectionOverride\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\DisableAntiSpyware\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Features\\\\TamperProtection\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Real-Time Protection\\\\DisableRealtimeMonitoring\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Real-Time Protection\\\\DisableIntrusionPreventionSystem\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Real-Time Protection\\\\DisableScriptScanning\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Windows Defender Exploit Guard\\\\Controlled Folder Access\\\\EnableControlledFolderAccess\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Real-Time Protection\\\\DisableIOAVProtection\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Reporting\\\\DisableEnhancedNotifications\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\SpyNet\\\\DisableBlockAtFirstSeen\" and\n registry.data.strings : (\"1\", \"0x00000001\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\SpyNet\\\\SpynetReporting\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\SpyNet\\\\SubmitSamplesConsent\" and\n registry.data.strings : (\"0\", \"0x00000000\")) or\n (registry.path : \"HKLM\\\\SOFTWARE\\\\Policies\\\\Microsoft\\\\Windows Defender\\\\Real-Time Protection\\\\DisableBehaviorMonitoring\" and\n registry.data.strings : (\"1\", \"0x00000001\"))\n","type":"eql","index":["winlogbeat-*","logs-endpoint.events.*","logs-windows.*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"fe794edd-487f-4a90-b285-3ee54f2af2d3:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/feeed87c-5e95-4339-aef1-47fd79bcfbe3:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/feeed87c-5e95-4339-aef1-47fd79bcfbe3:102.0.0.json new file mode 100644 index 0000000000000..b185ade78a841 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/feeed87c-5e95-4339-aef1-47fd79bcfbe3:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"MS Office Macro Security Registry Modifications v102.0.0","rule_id":"feeed87c-5e95-4339-aef1-47fd79bcfbe3:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Microsoft Office Products offer options for users and developers to control the security settings for running and using Macros. Adversaries may abuse these security settings to modify the default behavior of the Office Application to trust future macros and/or disable security warnings, which could increase their chances of establishing persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating MS Office Macro Security Registry Modifications\n\nMacros are small programs that are used to automate repetitive tasks in Microsoft Office applications.\nHistorically, macros have been used for a variety of reasons -- from automating part of a job, to\nbuilding entire processes and data flows. Macros are written in Visual Basic for Applications (VBA) and are saved as\npart of Microsoft Office files.\n\nMacros are often created for legitimate reasons, but they can also be written by attackers to gain access, harm a\nsystem, or bypass other security controls such as application allow listing. In fact, exploitation from malicious macros\nis one of the top ways that organizations are compromised today. These attacks are often conducted through phishing or\nspear phishing campaigns.\n\nAttackers can convince victims to modify Microsoft Office security settings, so their macros are trusted by default and\nno warnings are displayed when they are executed. These settings include:\n\n* *Trust access to the VBA project object model* - When enabled, Microsoft Office will trust all macros and run any code\nwithout showing a security warning or requiring user permission.\n* *VbaWarnings* - When set to 1, Microsoft Office will trust all macros and run any code without showing a security\nwarning or requiring user permission.\n\nThis rule looks for registry changes affecting the conditions above.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the user and check if the change was done manually.\n- Verify whether malicious macros were executed after the registry change.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve recently executed Office documents and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity should not happen legitimately. The security team should address any potential benign true\npositives (B-TPs), as this configuration can put the user and the domain at risk.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Reset the registry key value.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Explore using GPOs to manage security settings for Microsoft Office macros.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1112","name":"Modify Registry","reference":"https://attack.mitre.org/techniques/T1112/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1204","name":"User Execution","reference":"https://attack.mitre.org/techniques/T1204/","subtechnique":[{"id":"T1204.002","name":"Malicious File","reference":"https://attack.mitre.org/techniques/T1204/002/"}]}]}],"language":"eql","query":"registry where event.type == \"change\" and\n registry.path : (\n \"HKU\\\\S-1-5-21-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\AccessVBOM\",\n \"HKU\\\\S-1-5-21-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\VbaWarnings\",\n \"HKU\\\\S-1-12-1-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\AccessVBOM\",\n \"HKU\\\\S-1-12-1-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\VbaWarnings\",\n \"\\\\REGISTRY\\\\USER\\\\S-1-5-21-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\AccessVBOM\",\n \"\\\\REGISTRY\\\\USER\\\\S-1-5-21-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\VbaWarnings\",\n \"\\\\REGISTRY\\\\USER\\\\S-1-12-1-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\AccessVBOM\",\n \"\\\\REGISTRY\\\\USER\\\\S-1-12-1-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\VbaWarnings\"\n ) and\n registry.data.strings : (\"0x00000001\", \"1\") and\n process.name : (\"cscript.exe\", \"wscript.exe\", \"mshta.exe\", \"mshta.exe\", \"winword.exe\", \"excel.exe\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"feeed87c-5e95-4339-aef1-47fd79bcfbe3:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/feeed87c-5e95-4339-aef1-47fd79bcfbe3:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/feeed87c-5e95-4339-aef1-47fd79bcfbe3:102.0.1.json new file mode 100644 index 0000000000000..12e7c47450e77 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/feeed87c-5e95-4339-aef1-47fd79bcfbe3:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"MS Office Macro Security Registry Modifications v102.0.1","rule_id":"feeed87c-5e95-4339-aef1-47fd79bcfbe3:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Microsoft Office Products offer options for users and developers to control the security settings for running and using Macros. Adversaries may abuse these security settings to modify the default behavior of the Office Application to trust future macros and/or disable security warnings, which could increase their chances of establishing persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating MS Office Macro Security Registry Modifications\n\nMacros are small programs that are used to automate repetitive tasks in Microsoft Office applications.\nHistorically, macros have been used for a variety of reasons -- from automating part of a job, to\nbuilding entire processes and data flows. Macros are written in Visual Basic for Applications (VBA) and are saved as\npart of Microsoft Office files.\n\nMacros are often created for legitimate reasons, but they can also be written by attackers to gain access, harm a\nsystem, or bypass other security controls such as application allow listing. In fact, exploitation from malicious macros\nis one of the top ways that organizations are compromised today. These attacks are often conducted through phishing or\nspear phishing campaigns.\n\nAttackers can convince victims to modify Microsoft Office security settings, so their macros are trusted by default and\nno warnings are displayed when they are executed. These settings include:\n\n* *Trust access to the VBA project object model* - When enabled, Microsoft Office will trust all macros and run any code\nwithout showing a security warning or requiring user permission.\n* *VbaWarnings* - When set to 1, Microsoft Office will trust all macros and run any code without showing a security\nwarning or requiring user permission.\n\nThis rule looks for registry changes affecting the conditions above.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the user and check if the change was done manually.\n- Verify whether malicious macros were executed after the registry change.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve recently executed Office documents and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity should not happen legitimately. The security team should address any potential benign true\npositives (B-TPs), as this configuration can put the user and the domain at risk.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Reset the registry key value.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Explore using GPOs to manage security settings for Microsoft Office macros.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1112","name":"Modify Registry","reference":"https://attack.mitre.org/techniques/T1112/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1204","name":"User Execution","reference":"https://attack.mitre.org/techniques/T1204/","subtechnique":[{"id":"T1204.002","name":"Malicious File","reference":"https://attack.mitre.org/techniques/T1204/002/"}]}]}],"language":"eql","query":"registry where event.type == \"change\" and\n registry.path : (\n \"HKU\\\\S-1-5-21-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\AccessVBOM\",\n \"HKU\\\\S-1-5-21-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\VbaWarnings\",\n \"HKU\\\\S-1-12-1-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\AccessVBOM\",\n \"HKU\\\\S-1-12-1-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\VbaWarnings\",\n \"\\\\REGISTRY\\\\USER\\\\S-1-5-21-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\AccessVBOM\",\n \"\\\\REGISTRY\\\\USER\\\\S-1-5-21-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\VbaWarnings\",\n \"\\\\REGISTRY\\\\USER\\\\S-1-12-1-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\AccessVBOM\",\n \"\\\\REGISTRY\\\\USER\\\\S-1-12-1-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\VbaWarnings\"\n ) and\n registry.data.strings : (\"0x00000001\", \"1\") and\n process.name : (\"cscript.exe\", \"wscript.exe\", \"mshta.exe\", \"mshta.exe\", \"winword.exe\", \"excel.exe\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"feeed87c-5e95-4339-aef1-47fd79bcfbe3:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/feeed87c-5e95-4339-aef1-47fd79bcfbe3:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/feeed87c-5e95-4339-aef1-47fd79bcfbe3:102.0.2.json new file mode 100644 index 0000000000000..a5d954fc8bcc6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/feeed87c-5e95-4339-aef1-47fd79bcfbe3:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"MS Office Macro Security Registry Modifications v102.0.2","rule_id":"feeed87c-5e95-4339-aef1-47fd79bcfbe3:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Microsoft Office Products offer options for users and developers to control the security settings for running and using Macros. Adversaries may abuse these security settings to modify the default behavior of the Office Application to trust future macros and/or disable security warnings, which could increase their chances of establishing persistence.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Triage and analysis\n\n### Investigating MS Office Macro Security Registry Modifications\n\nMacros are small programs that are used to automate repetitive tasks in Microsoft Office applications.\nHistorically, macros have been used for a variety of reasons -- from automating part of a job, to\nbuilding entire processes and data flows. Macros are written in Visual Basic for Applications (VBA) and are saved as\npart of Microsoft Office files.\n\nMacros are often created for legitimate reasons, but they can also be written by attackers to gain access, harm a\nsystem, or bypass other security controls such as application allow listing. In fact, exploitation from malicious macros\nis one of the top ways that organizations are compromised today. These attacks are often conducted through phishing or\nspear phishing campaigns.\n\nAttackers can convince victims to modify Microsoft Office security settings, so their macros are trusted by default and\nno warnings are displayed when they are executed. These settings include:\n\n* *Trust access to the VBA project object model* - When enabled, Microsoft Office will trust all macros and run any code\nwithout showing a security warning or requiring user permission.\n* *VbaWarnings* - When set to 1, Microsoft Office will trust all macros and run any code without showing a security\nwarning or requiring user permission.\n\nThis rule looks for registry changes affecting the conditions above.\n\n#### Possible investigation steps\n\n- Investigate the process execution chain (parent process tree) for unknown processes. Examine their executable files\nfor prevalence, whether they are located in expected locations, and if they are signed with valid digital signatures.\n- Identify the user account that performed the action and whether it should perform this kind of action.\n- Contact the user and check if the change was done manually.\n- Verify whether malicious macros were executed after the registry change.\n- Investigate other alerts associated with the user/host during the past 48 hours.\n- Retrieve recently executed Office documents and determine if they are malicious:\n - Use a private sandboxed malware analysis system to perform analysis.\n - Observe and collect information about the following activities:\n - Attempts to contact external domains and addresses.\n - File and registry access, modification, and creation activities.\n - Service creation and launch activities.\n - Scheduled task creation.\n - Use the PowerShell Get-FileHash cmdlet to get the files' SHA-256 hash values.\n - Search for the existence and reputation of the hashes in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc.\n\n### False positive analysis\n\n- This activity should not happen legitimately. The security team should address any potential benign true\npositives (B-TPs), as this configuration can put the user and the domain at risk.\n\n### Response and remediation\n\n- Initiate the incident response process based on the outcome of the triage.\n- Reset the registry key value.\n- Isolate the involved host to prevent further post-compromise behavior.\n- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are\nidentified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business\nsystems, and web services.\n- Explore using GPOs to manage security settings for Microsoft Office macros.\n- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and\nmalware components.\n- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.\n- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the\nmean time to respond (MTTR).","timestamp_override":"event.ingested","author":["Elastic"],"from":"now-9m","tags":["Elastic","Host","Windows","Threat Detection","Defense Evasion","Investigation Guide","Elastic Endgame"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1112","name":"Modify Registry","reference":"https://attack.mitre.org/techniques/T1112/"}]},{"framework":"MITRE ATT&CK","tactic":{"id":"TA0002","name":"Execution","reference":"https://attack.mitre.org/tactics/TA0002/"},"technique":[{"id":"T1204","name":"User Execution","reference":"https://attack.mitre.org/techniques/T1204/","subtechnique":[{"id":"T1204.002","name":"Malicious File","reference":"https://attack.mitre.org/techniques/T1204/002/"}]}]}],"language":"eql","query":"registry where event.type == \"change\" and\n registry.path : (\n \"HKU\\\\S-1-5-21-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\AccessVBOM\",\n \"HKU\\\\S-1-5-21-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\VbaWarnings\",\n \"HKU\\\\S-1-12-1-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\AccessVBOM\",\n \"HKU\\\\S-1-12-1-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\VbaWarnings\",\n \"\\\\REGISTRY\\\\USER\\\\S-1-5-21-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\AccessVBOM\",\n \"\\\\REGISTRY\\\\USER\\\\S-1-5-21-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\VbaWarnings\",\n \"\\\\REGISTRY\\\\USER\\\\S-1-12-1-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\AccessVBOM\",\n \"\\\\REGISTRY\\\\USER\\\\S-1-12-1-*\\\\SOFTWARE\\\\Microsoft\\\\Office\\\\*\\\\Security\\\\VbaWarnings\"\n ) and\n registry.data.strings : (\"0x00000001\", \"1\") and\n process.name : (\"cscript.exe\", \"wscript.exe\", \"mshta.exe\", \"mshta.exe\", \"winword.exe\", \"excel.exe\")\n","type":"eql","index":["winlogbeat-*","logs-windows.*","endgame-*"],"required_fields":[{"ecs":true,"name":"event.type","type":"keyword"},{"ecs":true,"name":"process.name","type":"keyword"},{"ecs":true,"name":"registry.data.strings","type":"wildcard"},{"ecs":true,"name":"registry.path","type":"keyword"}],"setup":"If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work."},"id":"feeed87c-5e95-4339-aef1-47fd79bcfbe3:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ff013cb4-274d-434a-96bb-fe15ddd3ae92:100.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ff013cb4-274d-434a-96bb-fe15ddd3ae92:100.0.0.json new file mode 100644 index 0000000000000..386da346ccc2b --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ff013cb4-274d-434a-96bb-fe15ddd3ae92:100.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Roshal Archive (RAR) or PowerShell File Downloaded from the Internet v100.0.0","rule_id":"ff013cb4-274d-434a-96bb-fe15ddd3ae92:100.0.0","rule_version":"100.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects a Roshal Archive (RAR) file or PowerShell script downloaded from the internet by an internal host. Gaining initial access to a system and then downloading encoded or encrypted tools to move laterally is a common practice for adversaries as a way to protect their more valuable tools and tactics, techniques, and procedures (TTPs). This may be atypical behavior for a managed network and can be indicative of malware, exfiltration, or command and control.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Threat intel\n\nThis activity has been observed in FIN7 campaigns.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Downloading RAR or PowerShell files from the Internet may be expected for certain systems. This rule should be tailored to either exclude systems as sources or destinations in which this behavior is expected."],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2017/04/fin7-phishing-lnk.html","https://www.justice.gov/opa/press-release/file/1084361/download","https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.protocol:http and\n (url.extension:(ps1 or rar) or url.path:(*.ps1 or *.rar)) and\n not destination.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n ) and\n source.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"url.extension","type":"keyword"},{"ecs":true,"name":"url.path","type":"wildcard"}]},"id":"ff013cb4-274d-434a-96bb-fe15ddd3ae92:100.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ff013cb4-274d-434a-96bb-fe15ddd3ae92:100.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ff013cb4-274d-434a-96bb-fe15ddd3ae92:100.0.1.json new file mode 100644 index 0000000000000..10bb5f207c001 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ff013cb4-274d-434a-96bb-fe15ddd3ae92:100.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Roshal Archive (RAR) or PowerShell File Downloaded from the Internet v100.0.1","rule_id":"ff013cb4-274d-434a-96bb-fe15ddd3ae92:100.0.1","rule_version":"100.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects a Roshal Archive (RAR) file or PowerShell script downloaded from the internet by an internal host. Gaining initial access to a system and then downloading encoded or encrypted tools to move laterally is a common practice for adversaries as a way to protect their more valuable tools and tactics, techniques, and procedures (TTPs). This may be atypical behavior for a managed network and can be indicative of malware, exfiltration, or command and control.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Threat intel\n\nThis activity has been observed in FIN7 campaigns.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Downloading RAR or PowerShell files from the Internet may be expected for certain systems. This rule should be tailored to either exclude systems as sources or destinations in which this behavior is expected."],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2017/04/fin7-phishing-lnk.html","https://www.justice.gov/opa/press-release/file/1084361/download","https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.protocol:http and\n (url.extension:(ps1 or rar) or url.path:(*.ps1 or *.rar)) and\n not destination.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n ) and\n source.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"url.extension","type":"keyword"},{"ecs":true,"name":"url.path","type":"wildcard"}]},"id":"ff013cb4-274d-434a-96bb-fe15ddd3ae92:100.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ff013cb4-274d-434a-96bb-fe15ddd3ae92:100.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ff013cb4-274d-434a-96bb-fe15ddd3ae92:100.0.2.json new file mode 100644 index 0000000000000..6dd234eafe9b5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ff013cb4-274d-434a-96bb-fe15ddd3ae92:100.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Roshal Archive (RAR) or PowerShell File Downloaded from the Internet v100.0.2","rule_id":"ff013cb4-274d-434a-96bb-fe15ddd3ae92:100.0.2","rule_version":"100.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Detects a Roshal Archive (RAR) file or PowerShell script downloaded from the internet by an internal host. Gaining initial access to a system and then downloading encoded or encrypted tools to move laterally is a common practice for adversaries as a way to protect their more valuable tools and tactics, techniques, and procedures (TTPs). This may be atypical behavior for a managed network and can be indicative of malware, exfiltration, or command and control.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"## Threat intel\n\nThis activity has been observed in FIN7 campaigns.","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Downloading RAR or PowerShell files from the Internet may be expected for certain systems. This rule should be tailored to either exclude systems as sources or destinations in which this behavior is expected."],"from":"now-9m","references":["https://www.fireeye.com/blog/threat-research/2017/04/fin7-phishing-lnk.html","https://www.justice.gov/opa/press-release/file/1084361/download","https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml"],"tags":["Elastic","Network","Threat Detection","Command and Control","Host"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0011","name":"Command and Control","reference":"https://attack.mitre.org/tactics/TA0011/"},"technique":[{"id":"T1105","name":"Ingress Tool Transfer","reference":"https://attack.mitre.org/techniques/T1105/"}]}],"type":"query","index":["auditbeat-*","filebeat-*","packetbeat-*","logs-endpoint.events.*"],"language":"kuery","query":"event.category:(network or network_traffic) and network.protocol:http and\n (url.extension:(ps1 or rar) or url.path:(*.ps1 or *.rar)) and\n not destination.ip:(\n 10.0.0.0/8 or\n 127.0.0.0/8 or\n 169.254.0.0/16 or\n 172.16.0.0/12 or\n 192.0.0.0/24 or\n 192.0.0.0/29 or\n 192.0.0.8/32 or\n 192.0.0.9/32 or\n 192.0.0.10/32 or\n 192.0.0.170/32 or\n 192.0.0.171/32 or\n 192.0.2.0/24 or\n 192.31.196.0/24 or\n 192.52.193.0/24 or\n 192.168.0.0/16 or\n 192.88.99.0/24 or\n 224.0.0.0/4 or\n 100.64.0.0/10 or\n 192.175.48.0/24 or\n 198.18.0.0/15 or\n 198.51.100.0/24 or\n 203.0.113.0/24 or\n 240.0.0.0/4 or\n \"::1\" or\n \"FE80::/10\" or\n \"FF00::/8\"\n ) and\n source.ip:(\n 10.0.0.0/8 or\n 172.16.0.0/12 or\n 192.168.0.0/16\n )\n","required_fields":[{"ecs":true,"name":"destination.ip","type":"ip"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"network.protocol","type":"keyword"},{"ecs":true,"name":"source.ip","type":"ip"},{"ecs":true,"name":"url.extension","type":"keyword"},{"ecs":true,"name":"url.path","type":"wildcard"}]},"id":"ff013cb4-274d-434a-96bb-fe15ddd3ae92:100.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ff4dd44a-0ac6-44c4-8609-3f81bc820f02:101.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ff4dd44a-0ac6-44c4-8609-3f81bc820f02:101.0.0.json new file mode 100644 index 0000000000000..30d3f588a4cc5 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ff4dd44a-0ac6-44c4-8609-3f81bc820f02:101.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange Transport Rule Creation v101.0.0","rule_id":"ff4dd44a-0ac6-44c4-8609-3f81bc820f02:101.0.0","rule_version":"101.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a transport rule creation in Microsoft 365. As a best practice, Exchange Online mail transport rules should not be set to forward email to domains outside of your organization. An adversary may create transport rules to exfiltrate data.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A new transport rule may be created by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/new-transportrule?view=exchange-ps","https://docs.microsoft.com/en-us/exchange/security-and-compliance/mail-flow-rules/mail-flow-rules"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"New-TransportRule\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"ff4dd44a-0ac6-44c4-8609-3f81bc820f02:101.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ff4dd44a-0ac6-44c4-8609-3f81bc820f02:101.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ff4dd44a-0ac6-44c4-8609-3f81bc820f02:101.0.1.json new file mode 100644 index 0000000000000..a79acb067a72c --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ff4dd44a-0ac6-44c4-8609-3f81bc820f02:101.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange Transport Rule Creation v101.0.1","rule_id":"ff4dd44a-0ac6-44c4-8609-3f81bc820f02:101.0.1","rule_version":"101.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a transport rule creation in Microsoft 365. As a best practice, Exchange Online mail transport rules should not be set to forward email to domains outside of your organization. An adversary may create transport rules to exfiltrate data.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A new transport rule may be created by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/new-transportrule?view=exchange-ps","https://docs.microsoft.com/en-us/exchange/security-and-compliance/mail-flow-rules/mail-flow-rules"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"New-TransportRule\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"ff4dd44a-0ac6-44c4-8609-3f81bc820f02:101.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ff4dd44a-0ac6-44c4-8609-3f81bc820f02:101.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ff4dd44a-0ac6-44c4-8609-3f81bc820f02:101.0.2.json new file mode 100644 index 0000000000000..05042d8d68e57 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ff4dd44a-0ac6-44c4-8609-3f81bc820f02:101.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"Microsoft 365 Exchange Transport Rule Creation v101.0.2","rule_id":"ff4dd44a-0ac6-44c4-8609-3f81bc820f02:101.0.2","rule_version":"101.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies a transport rule creation in Microsoft 365. As a best practice, Exchange Online mail transport rules should not be set to forward email to domains outside of your organization. An adversary may create transport rules to exfiltrate data.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["A new transport rule may be created by a system or network administrator. Verify that the configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"from":"now-30m","references":["https://docs.microsoft.com/en-us/powershell/module/exchange/new-transportrule?view=exchange-ps","https://docs.microsoft.com/en-us/exchange/security-and-compliance/mail-flow-rules/mail-flow-rules"],"tags":["Elastic","Cloud","Microsoft 365","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0010","name":"Exfiltration","reference":"https://attack.mitre.org/tactics/TA0010/"},"technique":[{"id":"T1537","name":"Transfer Data to Cloud Account","reference":"https://attack.mitre.org/techniques/T1537/"}]}],"type":"query","index":["filebeat-*","logs-o365*"],"language":"kuery","query":"event.dataset:o365.audit and event.provider:Exchange and event.category:web and event.action:\"New-TransportRule\" and event.outcome:success\n","related_integrations":[{"package":"o365","version":"^1.3.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.category","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"},{"ecs":true,"name":"event.outcome","type":"keyword"},{"ecs":true,"name":"event.provider","type":"keyword"}],"setup":"The Office 365 Logs Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"ff4dd44a-0ac6-44c4-8609-3f81bc820f02:101.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ff9b571e-61d6-4f6c-9561-eb4cca3bafe1:102.0.0.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ff9b571e-61d6-4f6c-9561-eb4cca3bafe1:102.0.0.json new file mode 100644 index 0000000000000..4d10b9709e6d6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ff9b571e-61d6-4f6c-9561-eb4cca3bafe1:102.0.0.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Firewall Rule Deletion v102.0.0","rule_id":"ff9b571e-61d6-4f6c-9561-eb4cca3bafe1:102.0.0","rule_version":"102.0.0","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a firewall rule is deleted in Google Cloud Platform (GCP) for Virtual Private Cloud (VPC) or App Engine. These firewall rules can be configured to allow or deny connections to or from virtual machine (VM) instances or specific applications. An adversary may delete a firewall rule in order to weaken their target's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Firewall rules may be deleted by system administrators. Verify that the firewall configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/firewalls","https://cloud.google.com/appengine/docs/standard/python/understanding-firewalls"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:(*.compute.firewalls.delete or google.appengine.*.Firewall.Delete*Rule)\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"ff9b571e-61d6-4f6c-9561-eb4cca3bafe1:102.0.0","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ff9b571e-61d6-4f6c-9561-eb4cca3bafe1:102.0.1.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ff9b571e-61d6-4f6c-9561-eb4cca3bafe1:102.0.1.json new file mode 100644 index 0000000000000..232f38b3eaac4 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ff9b571e-61d6-4f6c-9561-eb4cca3bafe1:102.0.1.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Firewall Rule Deletion v102.0.1","rule_id":"ff9b571e-61d6-4f6c-9561-eb4cca3bafe1:102.0.1","rule_version":"102.0.1","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a firewall rule is deleted in Google Cloud Platform (GCP) for Virtual Private Cloud (VPC) or App Engine. These firewall rules can be configured to allow or deny connections to or from virtual machine (VM) instances or specific applications. An adversary may delete a firewall rule in order to weaken their target's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Firewall rules may be deleted by system administrators. Verify that the firewall configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/firewalls","https://cloud.google.com/appengine/docs/standard/python/understanding-firewalls"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:(*.compute.firewalls.delete or google.appengine.*.Firewall.Delete*Rule)\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"ff9b571e-61d6-4f6c-9561-eb4cca3bafe1:102.0.1","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/kibana/security_rule/ff9b571e-61d6-4f6c-9561-eb4cca3bafe1:102.0.2.json b/fleet-packages/detection-rules-flat/kibana/security_rule/ff9b571e-61d6-4f6c-9561-eb4cca3bafe1:102.0.2.json new file mode 100644 index 0000000000000..03c0bd3ce34b6 --- /dev/null +++ b/fleet-packages/detection-rules-flat/kibana/security_rule/ff9b571e-61d6-4f6c-9561-eb4cca3bafe1:102.0.2.json @@ -0,0 +1 @@ +{"attributes":{"name":"GCP Firewall Rule Deletion v102.0.2","rule_id":"ff9b571e-61d6-4f6c-9561-eb4cca3bafe1:102.0.2","rule_version":"102.0.2","stack_version_min":"8.5.0","stack_version_max":"8.7.0","description":"Identifies when a firewall rule is deleted in Google Cloud Platform (GCP) for Virtual Private Cloud (VPC) or App Engine. These firewall rules can be configured to allow or deny connections to or from virtual machine (VM) instances or specific applications. An adversary may delete a firewall rule in order to weaken their target's security controls.","risk_score":47,"severity":"medium","license":"Elastic License v2","note":"","timestamp_override":"event.ingested","author":["Elastic"],"false_positives":["Firewall rules may be deleted by system administrators. Verify that the firewall configuration change was expected. Exceptions can be added to this rule to filter expected behavior."],"references":["https://cloud.google.com/vpc/docs/firewalls","https://cloud.google.com/appengine/docs/standard/python/understanding-firewalls"],"tags":["Elastic","Cloud","GCP","Continuous Monitoring","SecOps","Configuration Audit"],"threat":[{"framework":"MITRE ATT&CK","tactic":{"id":"TA0005","name":"Defense Evasion","reference":"https://attack.mitre.org/tactics/TA0005/"},"technique":[{"id":"T1562","name":"Impair Defenses","reference":"https://attack.mitre.org/techniques/T1562/"}]}],"type":"query","index":["filebeat-*","logs-gcp*"],"language":"kuery","query":"event.dataset:gcp.audit and event.action:(*.compute.firewalls.delete or google.appengine.*.Firewall.Delete*Rule)\n","related_integrations":[{"integration":"audit","package":"gcp","version":"^2.0.0"}],"required_fields":[{"ecs":true,"name":"event.action","type":"keyword"},{"ecs":true,"name":"event.dataset","type":"keyword"}],"setup":"The GCP Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."},"id":"ff9b571e-61d6-4f6c-9561-eb4cca3bafe1:102.0.2","type":"security-rule"} \ No newline at end of file diff --git a/fleet-packages/detection-rules-flat/manifest.yml b/fleet-packages/detection-rules-flat/manifest.yml new file mode 100644 index 0000000000000..827d7f85d63fe --- /dev/null +++ b/fleet-packages/detection-rules-flat/manifest.yml @@ -0,0 +1,18 @@ +categories: + - security +conditions: + kibana.version: ^8.3.0 +description: Prebuilt detection rules (flat) +format_version: 1.0.0 +icons: + - size: 16x16 + src: /img/sample-logo.svg + type: image/svg+xml +license: basic +name: security_rules_flat +owner: + github: elastic/protections +release: ga +title: Prebuilt detection rules (flat) +type: integration +version: 8.3.2 \ No newline at end of file diff --git a/x-pack/plugins/fleet/server/saved_objects/index.ts b/x-pack/plugins/fleet/server/saved_objects/index.ts index 6c87e894e5777..03f072747a33d 100644 --- a/x-pack/plugins/fleet/server/saved_objects/index.ts +++ b/x-pack/plugins/fleet/server/saved_objects/index.ts @@ -266,19 +266,13 @@ const getSavedObjectTypes = ( }, }, installed_kibana: { - type: 'nested', - properties: { - id: { type: 'keyword' }, - type: { type: 'keyword' }, - }, + type: 'object', + enabled: false, }, installed_kibana_space_id: { type: 'keyword' }, package_assets: { - type: 'nested', - properties: { - id: { type: 'keyword' }, - type: { type: 'keyword' }, - }, + type: 'object', + enabled: false, }, install_started_at: { type: 'date' }, install_version: { type: 'keyword' }, diff --git a/x-pack/plugins/security_solution/common/detection_engine/prebuilt_rules/api/urls.ts b/x-pack/plugins/security_solution/common/detection_engine/prebuilt_rules/api/urls.ts index 449960916f239..4c035b482c4c5 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/prebuilt_rules/api/urls.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/prebuilt_rules/api/urls.ts @@ -5,7 +5,22 @@ * 2.0. */ -import { DETECTION_ENGINE_RULES_URL as RULES } from '../../../constants'; +import { + DETECTION_ENGINE_RULES_URL as RULES, + INTERNAL_DETECTION_ENGINE_URL as INTERNAL, +} from '../../../constants'; -export const PREBUILT_RULES_URL = `${RULES}/prepackaged` as const; -export const PREBUILT_RULES_STATUS_URL = `${RULES}/prepackaged/_status` as const; +const OLD_BASE_URL = `${RULES}/prepackaged` as const; +const NEW_BASE_URL = `${INTERNAL}/rules/prebuilt` as const; + +export const PREBUILT_RULES_URL = OLD_BASE_URL; +export const PREBUILT_RULES_STATUS_URL = `${OLD_BASE_URL}/_status` as const; + +export const GET_PREBUILT_RULES_STATUS_URL = `${NEW_BASE_URL}/status` as const; +export const REVIEW_RULE_UPGRADE_URL = `${NEW_BASE_URL}/upgrade/_review` as const; +export const PERFORM_RULE_UPGRADE_URL = `${NEW_BASE_URL}/upgrade/_perform` as const; +export const REVIEW_RULE_INSTALLATION_URL = `${NEW_BASE_URL}/installation/_review` as const; +export const PERFORM_RULE_INSTALLATION_URL = `${NEW_BASE_URL}/installation/_perform` as const; + +// TODO: https://github.com/elastic/kibana/pull/144060 Delete before merge +export const INSTALL_TEST_ASSETS_URL = `${NEW_BASE_URL}/_install_test_assets` as const; diff --git a/x-pack/plugins/security_solution/common/detection_engine/prebuilt_rules/model/upgrade/three_way_diff.ts b/x-pack/plugins/security_solution/common/detection_engine/prebuilt_rules/model/upgrade/three_way_diff.ts new file mode 100644 index 0000000000000..463c6341f23ea --- /dev/null +++ b/x-pack/plugins/security_solution/common/detection_engine/prebuilt_rules/model/upgrade/three_way_diff.ts @@ -0,0 +1,78 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +/** + * Represents a result of an abstract three-way diff/merge operation on a value + * (could be a whole rule JSON or a given rule field). + * + * Typical situations: + * + * 1. base=A, current=A, incoming=A => merged=A, conflict=false + * Stock rule, the value hasn't changed. + * + * 2. base=A, current=A, incoming=B => merged=B, conflict=false + * Stock rule, the value has changed. + * + * 3. base=A, current=B, incoming=A => merged=B, conflict=false + * Customized rule, the value hasn't changed. + * + * 4. base=A, current=B, incoming=B => merged=B, conflict=false + * Customized rule, the value has changed exactly the same way as in the user customization. + * + * 5. base=A, current=B, incoming=C => merged=D, conflict=false + * Customized rule, the value has changed, conflict between B and C resolved automatically. + * + * 6. base=A, current=B, incoming=C => merged=C, conflict=true + * Customized rule, the value has changed, conflict between B and C couldn't be resolved automatically. + */ +export interface ThreeWayDiff { + /** + * Corresponds to the stock version of the currently installed prebuilt rule. + */ + baseVersion: TValue; + + /** + * Corresponds exactly to the currently installed prebuilt rule: + * - to the customized version (if it's customized) + * - to the stock version (if it's not customized) + */ + currentVersion: TValue; + + /** + * Corresponds to the "new" stock version that the user is trying to upgrade to. + */ + incomingVersion: TValue; + + /** + * The result of an automatic three-way merge of three values: + * - base version + * - current version + * - incoming version + * + * Exact merge algorithm depends on the value: + * - one algo could be used for single-line strings and keywords (e.g. rule name) + * - another one could be used for multiline text (e.g. rule description) + * - another one could be used for arrays of keywords (e.g. rule tags) + * - another one could be used for the MITRE ATT&CK data structure + * - etc + * + * Merged version always has a value. We do our best to resolve conflicts automatically. + * If they can't be resolved automatically, merged version is equal to incoming version. + */ + mergedVersion: TValue; + + /** + * True if: + * - current != incoming and we couldn't automatically resolve the conflict between them + * + * False if: + * - current == incoming (value won't change) + * - current != incoming && current == base (stock rule will get a new value) + * - current != incoming and we automatically resolved the conflict between them + */ + hasConflict: boolean; +} diff --git a/x-pack/plugins/security_solution/public/common/hooks/use_upgrade_security_packages.ts b/x-pack/plugins/security_solution/public/common/hooks/use_upgrade_security_packages.ts index 848f1458502ca..e476a91cc93c2 100644 --- a/x-pack/plugins/security_solution/public/common/hooks/use_upgrade_security_packages.ts +++ b/x-pack/plugins/security_solution/public/common/hooks/use_upgrade_security_packages.ts @@ -24,6 +24,9 @@ const sendUpgradeSecurityPackages = async ( ): Promise => { return http.post(epmRouteService.getBulkInstallPath(), { ...options, + query: { + prerelease: true, + }, body: JSON.stringify({ packages: ['endpoint', 'security_detection_engine'], }), diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/api/poc/install_test_assets/route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/api/poc/install_test_assets/route.ts new file mode 100644 index 0000000000000..a3ee2bb34a336 --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/api/poc/install_test_assets/route.ts @@ -0,0 +1,186 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import * as t from 'io-ts'; +import moment from 'moment'; +import { transformError } from '@kbn/securitysolution-es-utils'; +import { PositiveIntegerGreaterThanZero } from '@kbn/securitysolution-io-ts-types'; + +import { readdir, unlink, writeFile } from 'node:fs/promises'; +import path from 'node:path'; +import type { PrebuiltRuleToInstall } from '../../../../../../../common/detection_engine/prebuilt_rules'; +import { INSTALL_TEST_ASSETS_URL } from '../../../../../../../common/detection_engine/prebuilt_rules'; + +import type { SecuritySolutionPluginRouter } from '../../../../../../types'; +import { buildRouteValidation } from '../../../../../../utils/build_validation/route_validation'; +import { buildSiemResponse } from '../../../../routes/utils'; + +import { getFleetRules } from '../../../logic/get_latest_prebuilt_rules'; +import type { RuleAssetFlatAttributes } from '../../../logic/poc/saved_objects/rule_asset_flat_saved_objects_type'; +import type { RuleAssetCompositeAttributes } from '../../../logic/poc/saved_objects/rule_asset_composite_saved_objects_type'; +import { ruleAssetSavedObjectsClientFactory } from '../../../logic/rule_asset/rule_asset_saved_objects_client'; + +// TODO: https://github.com/elastic/kibana/pull/144060 Delete this route before merge + +type RequestBody = t.TypeOf; +const RequestBody = t.exact( + t.type({ + num_versions_per_rule: PositiveIntegerGreaterThanZero, + }) +); + +export const installTestPrebuiltRuleAssetsRoute = (router: SecuritySolutionPluginRouter) => { + router.post( + { + path: INSTALL_TEST_ASSETS_URL, + validate: { + body: buildRouteValidation(RequestBody), + }, + options: { + tags: ['access:securitySolution'], + timeout: { + // FUNFACT: If we do not add a very long timeout what will happen + // is that Chrome which receive a 408 error and then do a retry. + // This retry can cause lots of connections to happen. Using a very + // long timeout will ensure that Chrome does not do retries and saturate the connections. + idleSocket: moment.duration('1', 'hour').asMilliseconds(), + }, + }, + }, + async (context, request, response) => { + const siemResponse = buildSiemResponse(response); + + try { + const ctx = await context.resolve(['core', 'alerting']); + const savedObjectsClient = ctx.core.savedObjects.client; + const ruleAssetsClient = ruleAssetSavedObjectsClientFactory(savedObjectsClient); + + const fleetRules = await getFleetRules(ruleAssetsClient); + + const versionedRuleAssets = generateVersionedRuleAssets( + fleetRules, + request.body.num_versions_per_rule + ); + + const flatDir = `${__dirname}/../../../../../../../../../../fleet-packages/detection-rules-flat/kibana/security_rule`; + for (const file of await readdir(flatDir)) { + await unlink(path.join(flatDir, file)); + } + + await Promise.all( + versionedRuleAssets.flatAssets.map(async (asset) => { + await writeFile( + `${flatDir}/${asset.rule_id}.json`, + JSON.stringify({ + attributes: asset, + id: asset.rule_id, + type: 'security-rule', + }) + ); + }) + ); + + const compositeDir = `${__dirname}/../../../../../../../../../../fleet-packages/detection-rules-composite/kibana/security_rule`; + for (const file of await readdir(compositeDir)) { + await unlink(path.join(compositeDir, file)); + } + + await Promise.all( + versionedRuleAssets.compositeAssets.map(async (asset) => { + await writeFile( + `${compositeDir}/${asset.rule_id}.json`, + JSON.stringify({ + attributes: asset, + id: asset.rule_id, + type: 'security-rule', + }) + ); + }) + ); + + return response.ok({ + body: { status: 'ok' }, + }); + } catch (err) { + const error = transformError(err); + return siemResponse.error({ + body: error.message, + statusCode: error.statusCode, + }); + } + } + ); +}; + +interface GenerateVersionedRuleAssetsResult { + flatAssets: RuleAssetFlatAttributes[]; + compositeAssets: RuleAssetCompositeAttributes[]; +} + +const generateVersionedRuleAssets = ( + rules: PrebuiltRuleToInstall[], + numberOfVersionsPerRule: number +): GenerateVersionedRuleAssetsResult => { + const flatAssets: RuleAssetFlatAttributes[] = []; + const compositeAssets: RuleAssetCompositeAttributes[] = []; + + rules.forEach((rule) => { + flatAssets.push(...generateFlatRuleAssets(rule, numberOfVersionsPerRule)); + compositeAssets.push(generateCompositeRuleAsset(rule, numberOfVersionsPerRule)); + }); + + return { flatAssets, compositeAssets }; +}; + +const generateFlatRuleAssets = ( + rule: PrebuiltRuleToInstall, + numberOfVersionsPerRule: number +): RuleAssetFlatAttributes[] => { + const { name: ruleName, rule_id: ruleId, version: ruleVersion, ...restOfRuleAttributes } = rule; + const result: RuleAssetFlatAttributes[] = []; + + for (let i = 0; i < numberOfVersionsPerRule; i++) { + const semanticVersion = getSemanticVersion(ruleVersion, i); + result.push({ + name: `${ruleName} v${semanticVersion}`, + rule_id: `${ruleId}:${semanticVersion}`, + rule_version: semanticVersion, + stack_version_min: '8.5.0', + stack_version_max: '8.7.0', + ...restOfRuleAttributes, + }); + } + + return result; +}; + +const generateCompositeRuleAsset = ( + rule: PrebuiltRuleToInstall, + numberOfVersionsPerRule: number +): RuleAssetCompositeAttributes => { + const { name: ruleName, rule_id: ruleId, version: ruleVersion, ...restOfRuleAttributes } = rule; + const result: RuleAssetCompositeAttributes = { + rule_id: ruleId, + versions: [], + }; + + for (let i = 0; i < numberOfVersionsPerRule; i++) { + const semanticVersion = getSemanticVersion(ruleVersion, i); + result.versions.push({ + name: `${ruleName} v${semanticVersion}`, + rule_version: semanticVersion, + stack_version_min: '8.5.0', + stack_version_max: '8.7.0', + ...restOfRuleAttributes, + }); + } + + return result; +}; + +const getSemanticVersion = (ruleVersion: number, patchVersion: number): string => + `${ruleVersion}.0.${patchVersion}`; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/api/register_routes.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/api/register_routes.ts index 39e822af3e147..5975e18cb3f1b 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/api/register_routes.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/api/register_routes.ts @@ -11,6 +11,7 @@ import type { SecuritySolutionPluginRouter } from '../../../../types'; import { getPrebuiltRulesAndTimelinesStatusRoute } from './get_prebuilt_rules_and_timelines_status/route'; import { installPrebuiltRulesAndTimelinesRoute } from './install_prebuilt_rules_and_timelines/route'; +import { installTestPrebuiltRuleAssetsRoute } from './poc/install_test_assets/route'; export const registerPrebuiltRulesRoutes = ( router: SecuritySolutionPluginRouter, @@ -19,4 +20,6 @@ export const registerPrebuiltRulesRoutes = ( ) => { getPrebuiltRulesAndTimelinesStatusRoute(router, config, security); installPrebuiltRulesAndTimelinesRoute(router); + // TODO: https://github.com/elastic/kibana/pull/144060 Delete before merge + installTestPrebuiltRuleAssetsRoute(router); }; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/get_latest_prebuilt_rules.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/get_latest_prebuilt_rules.ts index 914ab6b7ccf7f..6be6e8f51cfcb 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/get_latest_prebuilt_rules.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/get_latest_prebuilt_rules.ts @@ -27,7 +27,7 @@ export const getLatestPrebuiltRules = async ( /** * Retrieve and validate prebuilt rules that were installed from Fleet as saved objects. */ -const getFleetRules = async ( +export const getFleetRules = async ( client: RuleAssetSavedObjectsClient ): Promise => { const fleetResponse = await client.all(); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/poc/saved_objects/rule_asset_composite_saved_objects_client.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/poc/saved_objects/rule_asset_composite_saved_objects_client.ts new file mode 100644 index 0000000000000..c894c680b464d --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/poc/saved_objects/rule_asset_composite_saved_objects_client.ts @@ -0,0 +1,99 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { chunk } from 'lodash'; + +import type { + SavedObjectsBulkCreateObject, + SavedObjectsBulkDeleteObject, + SavedObjectsClientContract, + SavedObjectsFindOptions, + SavedObjectsFindResponse, + SavedObjectsFindResult, +} from '@kbn/core/server'; + +import { RULE_ASSET_COMPOSITE_SO_TYPE } from './rule_asset_composite_saved_objects_type'; +import type { + RuleAssetCompositeAttributes, + RuleAssetCompositeSavedObject, +} from './rule_asset_composite_saved_objects_type'; + +const MAX_RULE_ASSETS_PER_REQUEST = 100; + +export interface ICompositeRuleAssetsClient { + bulkDeleteAll(): Promise; + + bulkCreate(rules: RuleAssetCompositeAttributes[]): Promise; + + find: ( + options?: Omit + ) => Promise>; + + all: () => Promise; +} + +type FindSelector = (result: SavedObjectsFindResult) => T; + +export const createCompositeRuleAssetsClient = ( + savedObjectsClient: SavedObjectsClientContract +): ICompositeRuleAssetsClient => { + const fetchAll = async (selector: FindSelector) => { + const finder = savedObjectsClient.createPointInTimeFinder({ + perPage: MAX_RULE_ASSETS_PER_REQUEST, + type: RULE_ASSET_COMPOSITE_SO_TYPE, + }); + + const result: T[] = []; + + for await (const response of finder.find()) { + const selectedValues = response.saved_objects.map((so) => selector(so)); + result.push(...selectedValues); + } + + await finder.close(); + + return result; + }; + + return { + bulkDeleteAll: async () => { + const allIds = await fetchAll((so) => so.id); + const allObjects: SavedObjectsBulkDeleteObject[] = allIds.map((id) => { + return { type: RULE_ASSET_COMPOSITE_SO_TYPE, id }; + }); + + await savedObjectsClient.bulkDelete(allObjects, { + refresh: 'wait_for', + force: true, + }); + }, + + bulkCreate: async (rules: RuleAssetCompositeAttributes[]) => { + const objects: Array> = rules.map( + (rule) => ({ type: RULE_ASSET_COMPOSITE_SO_TYPE, attributes: rule }) + ); + + const chunks = chunk(objects, MAX_RULE_ASSETS_PER_REQUEST); + + for (const chunkOfObjects of chunks) { + await savedObjectsClient.bulkCreate(chunkOfObjects, { + overwrite: true, + }); + } + }, + + find: (options) => + savedObjectsClient.find({ + ...options, + type: RULE_ASSET_COMPOSITE_SO_TYPE, + }), + + all: () => { + return fetchAll((so) => so); + }, + }; +}; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/poc/saved_objects/rule_asset_composite_saved_objects_type.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/poc/saved_objects/rule_asset_composite_saved_objects_type.ts new file mode 100644 index 0000000000000..b9764c5876fe3 --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/poc/saved_objects/rule_asset_composite_saved_objects_type.ts @@ -0,0 +1,62 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { SavedObject, SavedObjectsType } from '@kbn/core/server'; + +export const RULE_ASSET_COMPOSITE_SO_TYPE = 'security-rule-composite'; + +export type RuleAssetCompositeSavedObject = SavedObject; + +export interface RuleAssetCompositeAttributes { + rule_id: string; + versions: IHistoricalRuleVersion[]; +} + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export interface IHistoricalRuleVersion extends Record { + name: string; + rule_version: string; + stack_version_min: string; + stack_version_max: string; +} + +const ruleAssetCompositeMappings: SavedObjectsType['mappings'] = { + dynamic: false, + properties: { + rule_id: { + type: 'keyword', + }, + versions: { + type: 'nested', + properties: { + name: { + type: 'keyword', + }, + rule_version: { + type: 'version', + }, + stack_version_min: { + type: 'version', + }, + stack_version_max: { + type: 'version', + }, + }, + }, + }, +}; + +export const ruleAssetCompositeType: SavedObjectsType = { + name: RULE_ASSET_COMPOSITE_SO_TYPE, + mappings: ruleAssetCompositeMappings, + hidden: false, + management: { + importableAndExportable: true, + visibleInManagement: false, + }, + namespaceType: 'agnostic', +}; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/poc/saved_objects/rule_asset_flat_saved_objects_client.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/poc/saved_objects/rule_asset_flat_saved_objects_client.ts new file mode 100644 index 0000000000000..403668ca3666c --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/poc/saved_objects/rule_asset_flat_saved_objects_client.ts @@ -0,0 +1,99 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { chunk } from 'lodash'; + +import type { + SavedObjectsBulkCreateObject, + SavedObjectsBulkDeleteObject, + SavedObjectsClientContract, + SavedObjectsFindOptions, + SavedObjectsFindResponse, + SavedObjectsFindResult, +} from '@kbn/core/server'; + +import { RULE_ASSET_FLAT_SO_TYPE } from './rule_asset_flat_saved_objects_type'; +import type { + RuleAssetFlatAttributes, + RuleAssetFlatSavedObject, +} from './rule_asset_flat_saved_objects_type'; + +const MAX_RULE_ASSETS_PER_REQUEST = 500; + +export interface IFlatRuleAssetsClient { + bulkDeleteAll(): Promise; + + bulkCreate(rules: RuleAssetFlatAttributes[]): Promise; + + find( + options?: Omit + ): Promise>; + + all(): Promise; +} + +type FindSelector = (result: SavedObjectsFindResult) => T; + +export const createFlatRuleAssetsClient = ( + savedObjectsClient: SavedObjectsClientContract +): IFlatRuleAssetsClient => { + const fetchAll = async (selector: FindSelector) => { + const finder = savedObjectsClient.createPointInTimeFinder({ + perPage: MAX_RULE_ASSETS_PER_REQUEST, + type: RULE_ASSET_FLAT_SO_TYPE, + }); + + const result: T[] = []; + + for await (const response of finder.find()) { + const selectedValues = response.saved_objects.map((so) => selector(so)); + result.push(...selectedValues); + } + + await finder.close(); + + return result; + }; + + return { + bulkDeleteAll: async () => { + const allIds = await fetchAll((so) => so.id); + const allObjects: SavedObjectsBulkDeleteObject[] = allIds.map((id) => { + return { type: RULE_ASSET_FLAT_SO_TYPE, id }; + }); + + await savedObjectsClient.bulkDelete(allObjects, { + refresh: 'wait_for', + force: true, + }); + }, + + bulkCreate: async (rules: RuleAssetFlatAttributes[]) => { + const objects: Array> = rules.map( + (rule) => ({ type: RULE_ASSET_FLAT_SO_TYPE, attributes: rule }) + ); + + const chunks = chunk(objects, MAX_RULE_ASSETS_PER_REQUEST); + + for (const chunkOfObjects of chunks) { + await savedObjectsClient.bulkCreate(chunkOfObjects, { + overwrite: true, + }); + } + }, + + find: (options) => + savedObjectsClient.find({ + ...options, + type: RULE_ASSET_FLAT_SO_TYPE, + }), + + all: () => { + return fetchAll((so) => so); + }, + }; +}; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/poc/saved_objects/rule_asset_flat_saved_objects_type.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/poc/saved_objects/rule_asset_flat_saved_objects_type.ts new file mode 100644 index 0000000000000..9f4f1695a3c20 --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/poc/saved_objects/rule_asset_flat_saved_objects_type.ts @@ -0,0 +1,53 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { SavedObject, SavedObjectsType } from '@kbn/core/server'; + +export const RULE_ASSET_FLAT_SO_TYPE = 'security-rule-flat'; + +export type RuleAssetFlatSavedObject = SavedObject; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export interface RuleAssetFlatAttributes extends Record { + name: string; + rule_id: string; + rule_version: string; + stack_version_min: string; + stack_version_max: string; +} + +const ruleAssetFlatMappings: SavedObjectsType['mappings'] = { + dynamic: false, + properties: { + name: { + type: 'keyword', + }, + rule_id: { + type: 'keyword', + }, + rule_version: { + type: 'version', + }, + stack_version_min: { + type: 'version', + }, + stack_version_max: { + type: 'version', + }, + }, +}; + +export const ruleAssetFlatType: SavedObjectsType = { + name: RULE_ASSET_FLAT_SO_TYPE, + mappings: ruleAssetFlatMappings, + hidden: false, + management: { + importableAndExportable: true, + visibleInManagement: false, + }, + namespaceType: 'agnostic', +};